diff --git a/.credo.exs b/.credo.exs new file mode 100644 index 00000000..34f59201 --- /dev/null +++ b/.credo.exs @@ -0,0 +1,261 @@ +# This file contains the configuration for Credo and you are probably reading +# this after creating it with `mix credo.gen.config`. +# +# If you find anything wrong or unclear in this file, please report an +# issue on GitHub: https://github.com/rrrene/credo/issues +# +%{ + # + # You can have as many configs as you like in the `configs:` field. + configs: [ + %{ + # + # Run any config using `mix credo -C `. If no config name is given + # "default" is used. + # + name: "default", + # + # These are the files included in the analysis: + files: %{ + # + # You can give explicit globs or simply directories. + # In the latter case `**/*.{ex,exs}` will be used. + # + included: [ + "lib/", + "src/", + "test/", + "web/", + "apps/*/lib/", + "apps/*/src/", + "apps/*/test/", + "apps/*/web/" + ], + excluded: [~r"/_build/", ~r"/deps/", ~r"/node_modules/"] + }, + # + # Load and configure plugins here: + # + plugins: [], + # + # If you create your own checks, you must specify the source files for + # them here, so they can be loaded by Credo before running the analysis. + # + requires: [], + # + # If you want to enforce a style guide and need a more traditional linting + # experience, you can change `strict` to `true` below: + # + strict: false, + # + # To modify the timeout for parsing files, change this value: + # + parse_timeout: 5000, + # + # If you want to use uncolored output by default, you can change `color` + # to `false` below: + # + color: true, + # + # You can customize the parameters of any check by adding a second element + # to the tuple. + # + # To disable a check put `false` as second element: + # + # {Credo.Check.Design.DuplicatedCode, false} + # + checks: %{ + enabled: [ + # + {ExSlop.Check.Warning.BlanketRescue, []}, + {ExSlop.Check.Warning.RescueWithoutReraise, []}, + {ExSlop.Check.Warning.RepoAllThenFilter, []}, + {ExSlop.Check.Warning.QueryInEnumMap, []}, + {ExSlop.Check.Warning.GenserverAsKvStore, []}, + {ExSlop.Check.Warning.PathExpandPriv, []}, + {ExSlop.Check.Warning.DualKeyAccess, []}, + {ExSlop.Check.Refactor.FilterNil, []}, + {ExSlop.Check.Refactor.RejectNil, []}, + {ExSlop.Check.Refactor.ReduceAsMap, []}, + {ExSlop.Check.Refactor.MapIntoLiteral, []}, + {ExSlop.Check.Refactor.IdentityPassthrough, []}, + {ExSlop.Check.Refactor.IdentityMap, []}, + {ExSlop.Check.Refactor.CaseTrueFalse, []}, + {ExSlop.Check.Refactor.TryRescueWithSafeAlternative, []}, + {ExSlop.Check.Refactor.WithIdentityElse, []}, + {ExSlop.Check.Refactor.WithIdentityDo, []}, + {ExSlop.Check.Refactor.SortThenReverse, []}, + {ExSlop.Check.Refactor.StringConcatInReduce, []}, + {ExSlop.Check.Refactor.ReduceMapPut, []}, + {ExSlop.Check.Refactor.RedundantBooleanIf, []}, + {ExSlop.Check.Refactor.FlatMapFilter, []}, + {ExSlop.Check.Refactor.RedundantEnumJoinSeparator, []}, + {ExSlop.Check.Refactor.UseMapJoin, []}, + {ExSlop.Check.Refactor.PreferEnumSlice, []}, + {ExSlop.Check.Refactor.GraphemesLength, []}, + {ExSlop.Check.Refactor.ManualStringReverse, []}, + {ExSlop.Check.Refactor.SortThenAt, []}, + {ExSlop.Check.Refactor.SortForTopK, []}, + {ExSlop.Check.Refactor.ListFold, []}, + {ExSlop.Check.Refactor.ListLast, []}, + {ExSlop.Check.Refactor.LengthInGuard, []}, + {ExSlop.Check.Refactor.ExplicitSumReduce, []}, + {ExSlop.Check.Readability.NarratorDoc, []}, + {ExSlop.Check.Readability.DocFalseOnPublicFunction, []}, + {ExSlop.Check.Readability.BoilerplateDocParams, []}, + {ExSlop.Check.Readability.ObviousComment, [additional_keywords: []]}, + {ExSlop.Check.Readability.StepComment, []}, + {ExSlop.Check.Readability.NarratorComment, []}, + {ExSlop.Check.Readability.UnaliasedModuleUse, []}, + ## Consistency Checks + # + {Credo.Check.Consistency.ExceptionNames, []}, + {Credo.Check.Consistency.LineEndings, []}, + {Credo.Check.Consistency.ParameterPatternMatching, []}, + {Credo.Check.Consistency.SpaceAroundOperators, []}, + {Credo.Check.Consistency.SpaceInParentheses, []}, + {Credo.Check.Consistency.TabsOrSpaces, []}, + + # + ## Design Checks + # + # You can customize the priority of any check + # Priority values are: `low, normal, high, higher` + # + {Credo.Check.Design.AliasUsage, + [priority: :low, if_nested_deeper_than: 2, if_called_more_often_than: 0]}, + {Credo.Check.Design.TagFIXME, []}, + # You can also customize the exit_status of each check. + # If you don't want TODO comments to cause `mix credo` to fail, just + # set this value to 0 (zero). + # + {Credo.Check.Design.TagTODO, [exit_status: 2]}, + + # + ## Readability Checks + # + {Credo.Check.Readability.AliasOrder, []}, + {Credo.Check.Readability.FunctionNames, []}, + {Credo.Check.Readability.LargeNumbers, []}, + {Credo.Check.Readability.MaxLineLength, [priority: :low, max_length: 120]}, + {Credo.Check.Readability.ModuleAttributeNames, []}, + {Credo.Check.Readability.ModuleDoc, []}, + {Credo.Check.Readability.ModuleNames, []}, + {Credo.Check.Readability.ParenthesesInCondition, []}, + {Credo.Check.Readability.ParenthesesOnZeroArityDefs, []}, + {Credo.Check.Readability.PipeIntoAnonymousFunctions, []}, + {Credo.Check.Readability.PredicateFunctionNames, []}, + {Credo.Check.Readability.PreferImplicitTry, []}, + {Credo.Check.Readability.RedundantBlankLines, []}, + {Credo.Check.Readability.Semicolons, []}, + {Credo.Check.Readability.SpaceAfterCommas, []}, + {Credo.Check.Readability.StringSigils, []}, + {Credo.Check.Readability.TrailingBlankLine, []}, + {Credo.Check.Readability.TrailingWhiteSpace, []}, + {Credo.Check.Readability.UnnecessaryAliasExpansion, []}, + {Credo.Check.Readability.VariableNames, []}, + {Credo.Check.Readability.WithSingleClause, []}, + + # + ## Refactoring Opportunities + # + {Credo.Check.Refactor.Apply, []}, + {Credo.Check.Refactor.CondStatements, []}, + {Credo.Check.Refactor.CyclomaticComplexity, []}, + {Credo.Check.Refactor.FilterCount, []}, + {Credo.Check.Refactor.FilterFilter, []}, + {Credo.Check.Refactor.FunctionArity, []}, + {Credo.Check.Refactor.LongQuoteBlocks, []}, + {Credo.Check.Refactor.MapJoin, []}, + {Credo.Check.Refactor.MatchInCondition, []}, + {Credo.Check.Refactor.NegatedConditionsInUnless, []}, + {Credo.Check.Refactor.NegatedConditionsWithElse, []}, + {Credo.Check.Refactor.Nesting, []}, + {Credo.Check.Refactor.RedundantWithClauseResult, []}, + {Credo.Check.Refactor.RejectReject, []}, + {Credo.Check.Refactor.UnlessWithElse, []}, + {Credo.Check.Refactor.WithClauses, []}, + + # + ## Warnings + # + {Credo.Check.Warning.ApplicationConfigInModuleAttribute, []}, + {Credo.Check.Warning.BoolOperationOnSameValues, []}, + {Credo.Check.Warning.Dbg, []}, + {Credo.Check.Warning.ExpensiveEmptyEnumCheck, []}, + {Credo.Check.Warning.IExPry, []}, + {Credo.Check.Warning.IoInspect, []}, + {Credo.Check.Warning.MissedMetadataKeyInLoggerConfig, []}, + {Credo.Check.Warning.OperationOnSameValues, []}, + {Credo.Check.Warning.OperationWithConstantResult, []}, + {Credo.Check.Warning.RaiseInsideRescue, []}, + {Credo.Check.Warning.SpecWithStruct, []}, + {Credo.Check.Warning.StructFieldAmount, []}, + {Credo.Check.Warning.UnsafeExec, []}, + {Credo.Check.Warning.UnusedEnumOperation, []}, + {Credo.Check.Warning.UnusedFileOperation, []}, + {Credo.Check.Warning.UnusedKeywordOperation, []}, + {Credo.Check.Warning.UnusedListOperation, []}, + {Credo.Check.Warning.UnusedMapOperation, []}, + {Credo.Check.Warning.UnusedPathOperation, []}, + {Credo.Check.Warning.UnusedRegexOperation, []}, + {Credo.Check.Warning.UnusedStringOperation, []}, + {Credo.Check.Warning.UnusedTupleOperation, []}, + {Credo.Check.Warning.WrongTestFilename, []} + ], + disabled: [ + # + # Checks scheduled for next check update (opt-in for now) + {Credo.Check.Refactor.UtcNowTruncate, []}, + + # + # Controversial and experimental checks (opt-in, just move the check to `:enabled` + # and be sure to use `mix credo --strict` to see low priority checks) + # + {Credo.Check.Consistency.MultiAliasImportRequireUse, []}, + {Credo.Check.Consistency.UnusedVariableNames, []}, + {Credo.Check.Design.DuplicatedCode, []}, + {Credo.Check.Design.SkipTestWithoutComment, []}, + {Credo.Check.Readability.AliasAs, []}, + {Credo.Check.Readability.BlockPipe, []}, + {Credo.Check.Readability.ImplTrue, []}, + {Credo.Check.Readability.MultiAlias, []}, + {Credo.Check.Readability.NestedFunctionCalls, []}, + {Credo.Check.Readability.OneArityFunctionInPipe, []}, + {Credo.Check.Readability.OnePipePerLine, []}, + {Credo.Check.Readability.SeparateAliasRequire, []}, + {Credo.Check.Readability.SingleFunctionToBlockPipe, []}, + {Credo.Check.Readability.SinglePipe, []}, + {Credo.Check.Readability.Specs, []}, + {Credo.Check.Readability.StrictModuleLayout, []}, + {Credo.Check.Readability.WithCustomTaggedTuple, []}, + {Credo.Check.Refactor.ABCSize, []}, + {Credo.Check.Refactor.AppendSingleItem, []}, + {Credo.Check.Refactor.CondInsteadOfIfElse, []}, + {Credo.Check.Refactor.DoubleBooleanNegation, []}, + {Credo.Check.Refactor.FilterReject, []}, + {Credo.Check.Refactor.IoPuts, []}, + {Credo.Check.Refactor.MapMap, []}, + {Credo.Check.Refactor.ModuleDependencies, []}, + {Credo.Check.Refactor.NegatedIsNil, []}, + {Credo.Check.Refactor.PassAsyncInTestCases, []}, + {Credo.Check.Refactor.PipeChainStart, []}, + {Credo.Check.Refactor.RejectFilter, []}, + {Credo.Check.Refactor.VariableRebinding, []}, + {Credo.Check.Warning.LazyLogging, []}, + {Credo.Check.Warning.LeakyEnvironment, []}, + {Credo.Check.Warning.MapGetUnsafePass, []}, + {Credo.Check.Warning.MixEnv, []}, + {Credo.Check.Warning.UnsafeToAtom, []} + # {Credo.Check.Warning.UnusedOperation, [{MyMagicModule, [:fun1, :fun2]}]} + + # {Credo.Check.Refactor.MapInto, []}, + + # + # Custom checks can be created using `mix credo.gen.check`. + # + ] + } + } + ] +} diff --git a/assets/components/listbox.ts b/assets/components/listbox.ts index 8ff8ce50..183fec6d 100644 --- a/assets/components/listbox.ts +++ b/assets/components/listbox.ts @@ -34,7 +34,9 @@ export class Listbox extends Component, Api> { } private itemsFingerprint(): string { - return `${this.hasGroups}:${JSON.stringify(this.options)}`; + const dir = this.el.dataset.dir ?? ""; + const orientation = this.el.dataset.orientation ?? ""; + return `${this.hasGroups}:${dir}:${orientation}:${JSON.stringify(this.options)}`; } getOrderedGroupIds(): string[] { @@ -70,8 +72,12 @@ export class Listbox extends Component, Api> { } init = (): void => { - this.machine.start(); - this.render(); + try { + this.machine.start(); + this.render(); + } finally { + this.el.removeAttribute("data-loading"); + } this.machine.subscribe(() => { this.api = this.initApi(); this.render(); diff --git a/assets/components/select.ts b/assets/components/select.ts index ffb13c31..2ccddcca 100644 --- a/assets/components/select.ts +++ b/assets/components/select.ts @@ -143,7 +143,7 @@ export class Select extends Component { const valueText = this.el.querySelector( '[data-scope="select"][data-part="item-text"]' ); - if (valueText) { + if (valueText && this.el.dataset.updateTrigger !== "false") { const valueAsString = this.api.valueAsString; if (this.api.value && this.api.value.length > 0 && !valueAsString) { const selectedValue = this.api.value[0]; diff --git a/assets/components/timer.ts b/assets/components/timer.ts index 9b18cac2..58ff7a66 100644 --- a/assets/components/timer.ts +++ b/assets/components/timer.ts @@ -1,7 +1,82 @@ import { connect, machine, type Props, type Api } from "@zag-js/timer"; -import type { ItemProps, ActionTriggerProps } from "@zag-js/timer"; +import type { ItemProps, ActionTriggerProps, Time } from "@zag-js/timer"; import { VanillaMachine } from "@zag-js/vanilla"; import { Component } from "../lib/core"; +import { getStringList } from "../lib/util"; + +function collapseStartIndex(vals: number[]): number { + const rec = (idx: number): number => { + if (idx > 2) return idx; + const restAfter = vals.length - idx; + if (idx < 3 && vals[idx] === 0 && restAfter > 2) { + return rec(idx + 1); + } + return idx; + }; + return rec(0); +} + +function computeItemHidden(root: HTMLElement, time: Time): boolean[] { + const types = ["days", "hours", "minutes", "seconds"] as const; + const vals = [time.days, time.hours, time.minutes, time.seconds].map(Number); + const segments = getStringList(root, "segments"); + const countdown = root.dataset.countdown === "true"; + const collapseRaw = root.dataset.collapseLeadingZeros; + + if (segments && segments.length > 0) { + return types.map((t) => !segments.includes(t)); + } + if (collapseRaw === "false") { + return [false, false, false, false]; + } + if (collapseRaw === "true" || (collapseRaw !== "false" && countdown)) { + const start = collapseStartIndex(vals); + return types.map((_, i) => i < start); + } + return [false, false, false, false]; +} + +function applyTimerItemVisibility(root: HTMLElement, api: Api): void { + const hidden = computeItemHidden(root, api.time); + const types = ["days", "hours", "minutes", "seconds"] as const; + const hostId = root.id; + + types.forEach((type, i) => { + const segmentEl = root.querySelector(`[data-timer-segment][data-type="${type}"]`); + if (segmentEl) { + if (hidden[i]) { + segmentEl.setAttribute("hidden", ""); + } else { + segmentEl.removeAttribute("hidden"); + } + } + + const itemEl = root.querySelector( + `[data-scope="timer"][data-part="item"][data-type="${type}"]` + ); + if (itemEl) { + if (hidden[i]) { + itemEl.setAttribute("hidden", ""); + itemEl.setAttribute("aria-hidden", "true"); + } else { + itemEl.removeAttribute("hidden"); + itemEl.setAttribute("aria-hidden", "false"); + } + } + }); + + for (let k = 0; k < 3; k++) { + const sepId = `timer:${hostId}:sep:${k}`; + const sepEl = root.querySelector(`[id="${CSS.escape(sepId)}"]`); + if (sepEl) { + if (hidden[k]) { + sepEl.setAttribute("hidden", ""); + } else { + sepEl.removeAttribute("hidden"); + } + } + } +} export class Timer extends Component { // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -18,9 +93,13 @@ export class Timer extends Component { (this as { api: Api }).api = this.initApi(); this.render(); }); - this.machine.start(); - (this as { api: Api }).api = this.initApi(); - this.render(); + try { + this.machine.start(); + (this as { api: Api }).api = this.initApi(); + this.render(); + } finally { + this.el.removeAttribute("data-loading"); + } }; render(): void { @@ -44,6 +123,12 @@ export class Timer extends Component { if (itemEl) { this.spreadProps(itemEl, this.api.getItemProps({ type } as ItemProps)); } + const labelEl = this.el.querySelector( + `[data-scope="timer"][data-part="item-label"][data-type="${type}"]` + ); + if (labelEl) { + this.spreadProps(labelEl, this.api.getItemLabelProps({ type } as ItemProps)); + } }); this.el @@ -63,5 +148,7 @@ export class Timer extends Component { this.api.getActionTriggerProps({ action } as ActionTriggerProps) ); }); + + applyTimerItemVisibility(this.el, this.api); } } diff --git a/assets/components/tooltip.ts b/assets/components/tooltip.ts index be8f847d..0cfd0f69 100644 --- a/assets/components/tooltip.ts +++ b/assets/components/tooltip.ts @@ -12,14 +12,23 @@ export class Tooltip extends Component { return this.zagConnect(connect); } + syncDom(): void { + this.api = this.initApi(); + this.render(); + } + render(): void { const rootEl = this.el; - const triggerEl = rootEl.querySelector( + const triggerEls = rootEl.querySelectorAll( '[data-scope="tooltip"][data-part="trigger"]' ); - if (triggerEl) this.spreadProps(triggerEl, this.api.getTriggerProps()); + triggerEls.forEach((triggerEl) => { + const raw = triggerEl.dataset.value; + const valueProps = raw != null && raw !== "" ? { value: raw } : {}; + this.spreadProps(triggerEl, this.api.getTriggerProps(valueProps)); + }); const positionerEl = rootEl.querySelector( '[data-scope="tooltip"][data-part="positioner"]' diff --git a/assets/hooks/floating-panel.ts b/assets/hooks/floating-panel.ts index 54a2fe61..42877d48 100644 --- a/assets/hooks/floating-panel.ts +++ b/assets/hooks/floating-panel.ts @@ -9,6 +9,8 @@ import type { StageChangeDetails, } from "@zag-js/floating-panel"; import { getString, getBoolean, getDir, canPushEvent } from "../lib/util"; +import { readPositioningOptions } from "../lib/positioning"; +import { anchorPointFromPositioning } from "../lib/floating-panel-anchor"; import { idMatches, notifyChange, readPayloadId } from "../lib/respond-to"; import { createHookHandleEventRegistry } from "../lib/hook-handlers"; import { createDomEventRegistry } from "../lib/dom-events"; @@ -45,6 +47,20 @@ function parsePoint(val: string | undefined): { x: number; y: number } | undefin return undefined; } +const FALLBACK_DEFAULT_SIZE = { width: 320, height: 240 }; + +function buildAnchorProps(el: HTMLElement) { + const defaultSize = parseSize(el.dataset.defaultSize) ?? FALLBACK_DEFAULT_SIZE; + const defaultPosition = parsePoint(el.dataset.defaultPosition); + const positioning = readPositioningOptions(el); + const getAnchorPosition = + defaultPosition == null && positioning + ? (details: { triggerRect: DOMRect | null; boundaryRect: DOMRect | null }) => + anchorPointFromPositioning(positioning, details, defaultSize, getDir(el)) + : undefined; + return { defaultPosition, getAnchorPosition } as const; +} + const FloatingPanelHook: Hook< object & HookInterface & FloatingPanelHookState, HTMLElement @@ -55,8 +71,7 @@ const FloatingPanelHook: Hook< const canPush = () => canPushEvent(this.liveSocket); const size = parseSize(el.dataset.size); const defaultSize = parseSize(el.dataset.defaultSize); - const position = parsePoint(el.dataset.position); - const defaultPosition = parsePoint(el.dataset.defaultPosition); + const anchorProps = buildAnchorProps(el); const zag = new FloatingPanel(el, { id: el.id, defaultOpen: false, @@ -68,8 +83,8 @@ const FloatingPanelHook: Hook< dir: getDir(el), size, defaultSize, - position, - defaultPosition, + defaultPosition: anchorProps.defaultPosition, + getAnchorPosition: anchorProps.getAnchorPosition, minSize: parseSize(el.dataset.minSize), maxSize: parseSize(el.dataset.maxSize), persistRect: getBoolean(el, "persistRect"), @@ -141,10 +156,14 @@ const FloatingPanelHook: Hook< }, updated(this: object & HookInterface & FloatingPanelHookState) { + const el = this.el; + const anchorProps = buildAnchorProps(el); this.floatingPanel?.updateProps({ - id: this.el.id, - disabled: getBoolean(this.el, "disabled"), - dir: getDir(this.el), + id: el.id, + disabled: getBoolean(el, "disabled"), + dir: getDir(el), + defaultPosition: anchorProps.defaultPosition, + getAnchorPosition: anchorProps.getAnchorPosition, } as Partial); }, diff --git a/assets/hooks/listbox.ts b/assets/hooks/listbox.ts index dd7b3f4a..8fa0d967 100644 --- a/assets/hooks/listbox.ts +++ b/assets/hooks/listbox.ts @@ -163,7 +163,6 @@ const ListboxHook: Hook = { if (this.listbox) { this.listbox.hasGroups = hasGroups; this.listbox.setOptions(newItems); - this.listbox.render(); this.listbox.updateProps({ ...listboxZagPropsBase(this.el, this.liveSocket, this.pushEvent.bind(this)), collection: this.listbox.getCollection(), diff --git a/assets/hooks/number-input.ts b/assets/hooks/number-input.ts index 45c5b497..333214af 100644 --- a/assets/hooks/number-input.ts +++ b/assets/hooks/number-input.ts @@ -14,10 +14,12 @@ const NumberInputHook: Hook = { const el = this.el; const pushEvent = this.pushEvent.bind(this); const canPush = () => canPushEvent(this.liveSocket); - const defaultValueStr = getString(el, "defaultValue"); + const controlled = getBoolean(el, "controlled"); const zag = new NumberInput(el, { id: el.id, - defaultValue: defaultValueStr, + ...(controlled + ? { value: getString(el, "value") ?? "" } + : { defaultValue: getString(el, "defaultValue") }), min: getNumber(el, "min"), max: getNumber(el, "max"), step: getNumber(el, "step"), @@ -59,11 +61,8 @@ const NumberInputHook: Hook = { }, updated(this: object & HookInterface & NumberInputHookState) { - const defaultValueStr = getString(this.el, "defaultValue"); - - this.numberInput?.updateProps({ + const next: Partial = { id: this.el.id, - defaultValue: defaultValueStr, min: getNumber(this.el, "min"), max: getNumber(this.el, "max"), step: getNumber(this.el, "step"), @@ -71,10 +70,15 @@ const NumberInputHook: Hook = { readOnly: getBoolean(this.el, "readOnly"), invalid: getBoolean(this.el, "invalid"), required: getBoolean(this.el, "required"), + allowMouseWheel: getBoolean(this.el, "allowMouseWheel"), name: getString(this.el, "name"), form: getString(this.el, "form"), dir: getDir(this.el), - } as Partial); + }; + if (getBoolean(this.el, "controlled")) { + next.value = getString(this.el, "value") ?? ""; + } + this.numberInput?.updateProps(next); }, destroyed(this: object & HookInterface & NumberInputHookState) { diff --git a/assets/hooks/timer.ts b/assets/hooks/timer.ts index 7519ae09..2a73eef6 100644 --- a/assets/hooks/timer.ts +++ b/assets/hooks/timer.ts @@ -11,6 +11,21 @@ type TimerHookState = { handlers?: Array; }; +function parseTimerTranslations(el: HTMLElement): Props["translations"] { + const raw = el.dataset.translation; + if (!raw) return undefined; + try { + const o = JSON.parse(raw) as { areaLabel?: string }; + if (typeof o.areaLabel === "string" && o.areaLabel.length > 0) { + const label = o.areaLabel; + return { areaLabel: () => label }; + } + } catch { + return undefined; + } + return undefined; +} + const TimerHook: Hook = { mounted(this: object & HookInterface & TimerHookState) { const el = this.el; @@ -24,6 +39,7 @@ const TimerHook: Hook = { interval: getNumber(el, "interval"), dir: getDir(el), orientation: getString(el, "orientation"), + translations: parseTimerTranslations(el), onTick: (details: TickDetails) => { const eventName = getString(el, "onTick"); if (eventName && canPushEvent(this.liveSocket)) { @@ -82,6 +98,7 @@ const TimerHook: Hook = { interval: getNumber(this.el, "interval"), dir: getDir(this.el), orientation: getString(this.el, "orientation"), + translations: parseTimerTranslations(this.el), } as Partial); }, diff --git a/assets/hooks/tooltip.ts b/assets/hooks/tooltip.ts index b915cb5e..11603ddc 100644 --- a/assets/hooks/tooltip.ts +++ b/assets/hooks/tooltip.ts @@ -1,10 +1,14 @@ import type { Hook } from "phoenix_live_view"; import type { HookInterface, CallbackRef } from "phoenix_live_view/assets/js/types/view_hook"; import { Tooltip } from "../components/tooltip"; -import type { OpenChangeDetails } from "@zag-js/tooltip"; -import type { Placement } from "@zag-js/popper"; +import type { + OpenChangeDetails, + Props as TooltipProps, + TriggerValueChangeDetails, +} from "@zag-js/tooltip"; import { getString, getBoolean, getNumber, getDir, canPushEvent } from "../lib/util"; +import { readPositioningOptions } from "../lib/positioning"; import { idMatches, readPayloadId } from "../lib/respond-to"; type TooltipHookState = { @@ -13,6 +17,47 @@ type TooltipHookState = { onSetOpen?: (event: Event) => void; }; +function createTooltipCallbacks( + el: HTMLElement, + pushEvent: HookInterface["pushEvent"], + liveSocket: HookInterface["liveSocket"] +): Pick { + const onTriggerValueChange = (details: TriggerValueChangeDetails) => { + const eventName = getString(el, "onTriggerValueChange"); + if (eventName && canPushEvent(liveSocket)) { + pushEvent(eventName, { + id: el.id, + value: details.value ?? "", + }); + } + }; + + const onOpenChange = (details: OpenChangeDetails) => { + const eventName = getString(el, "onOpenChange"); + if (eventName && canPushEvent(liveSocket)) { + pushEvent(eventName, { + id: el.id, + open: details.open, + }); + } + + const eventNameClient = getString(el, "onOpenChangeClient"); + if (eventNameClient) { + el.dispatchEvent( + new CustomEvent(eventNameClient, { + bubbles: true, + detail: { + id: el.id, + open: details.open, + }, + }) + ); + } + }; + + return { onOpenChange, onTriggerValueChange }; +} + function getCloseDelay(el: HTMLElement): number | undefined { const interactive = getBoolean(el, "interactive"); const raw = getNumber(el, "closeDelay"); @@ -24,15 +69,14 @@ const TooltipHook: Hook = { mounted(this: object & HookInterface & TooltipHookState) { const el = this.el; const pushEvent = this.pushEvent.bind(this); + const liveSocket = this.liveSocket; - const placement = getString(el, "placement"); - const positioning = placement ? { placement } : undefined; + const positioning = readPositioningOptions(el); + const callbacks = createTooltipCallbacks(el, pushEvent, liveSocket); const tooltip = new Tooltip(el, { id: el.id, - ...(getBoolean(el, "controlled") - ? { open: getBoolean(el, "open") } - : { defaultOpen: getBoolean(el, "defaultOpen") }), + defaultOpen: getBoolean(el, "defaultOpen"), disabled: getBoolean(el, "disabled"), dir: getDir(el), openDelay: getNumber(el, "openDelay"), @@ -43,28 +87,7 @@ const TooltipHook: Hook = { closeOnPointerDown: getBoolean(el, "closeOnPointerDown"), closeOnScroll: getBoolean(el, "closeOnScroll"), interactive: getBoolean(el, "interactive"), - onOpenChange: (details: OpenChangeDetails) => { - const eventName = getString(el, "onOpenChange"); - if (eventName && canPushEvent(this.liveSocket)) { - pushEvent(eventName, { - id: el.id, - open: details.open, - }); - } - - const eventNameClient = getString(el, "onOpenChangeClient"); - if (eventNameClient) { - el.dispatchEvent( - new CustomEvent(eventNameClient, { - bubbles: true, - detail: { - id: el.id, - open: details.open, - }, - }) - ); - } - }, + ...callbacks, }); tooltip.init(); @@ -87,26 +110,29 @@ const TooltipHook: Hook = { }, updated(this: object & HookInterface & TooltipHookState) { - const placement = getString(this.el, "placement"); - const positioning = placement ? { placement } : undefined; + const el = this.el; + const pushEvent = this.pushEvent.bind(this); + const liveSocket = this.liveSocket; + const positioning = readPositioningOptions(el); + const callbacks = createTooltipCallbacks(el, pushEvent, liveSocket); this.tooltip?.updateProps({ - id: this.el.id, - ...(getBoolean(this.el, "controlled") - ? { open: getBoolean(this.el, "open") } - : { defaultOpen: getBoolean(this.el, "defaultOpen") }), - disabled: getBoolean(this.el, "disabled"), - dir: getDir(this.el), - openDelay: getNumber(this.el, "openDelay"), - closeDelay: getCloseDelay(this.el), + id: el.id, + defaultOpen: getBoolean(el, "defaultOpen"), + disabled: getBoolean(el, "disabled"), + dir: getDir(el), + openDelay: getNumber(el, "openDelay"), + closeDelay: getCloseDelay(el), positioning, - closeOnEscape: getBoolean(this.el, "closeOnEscape"), - closeOnClick: getBoolean(this.el, "closeOnClick"), - closeOnPointerDown: getBoolean(this.el, "closeOnPointerDown"), - closeOnScroll: getBoolean(this.el, "closeOnScroll"), - interactive: getBoolean(this.el, "interactive"), + closeOnEscape: getBoolean(el, "closeOnEscape"), + closeOnClick: getBoolean(el, "closeOnClick"), + closeOnPointerDown: getBoolean(el, "closeOnPointerDown"), + closeOnScroll: getBoolean(el, "closeOnScroll"), + interactive: getBoolean(el, "interactive"), + ...callbacks, }); queueMicrotask(() => { + this.tooltip?.syncDom(); this.tooltip?.api.reposition?.(); }); }, diff --git a/assets/lib/floating-panel-anchor.ts b/assets/lib/floating-panel-anchor.ts new file mode 100644 index 00000000..5a04fc91 --- /dev/null +++ b/assets/lib/floating-panel-anchor.ts @@ -0,0 +1,80 @@ +import type { PositioningOptions } from "@zag-js/popper"; + +type PanelSize = { width: number; height: number }; + +type AnchorDetails = { + triggerRect: DOMRect | null; + boundaryRect: DOMRect | null; +}; + +export function anchorPointFromPositioning( + positioning: PositioningOptions, + details: AnchorDetails, + panelSize: PanelSize, + dir: "ltr" | "rtl" | undefined +): { x: number; y: number } | undefined { + const boundaryRect = details.boundaryRect; + if (!boundaryRect) return undefined; + + const gutter = positioning.gutter ?? 8; + const shift = positioning.shift ?? 0; + const mainAxis = positioning.offset?.mainAxis ?? 0; + const crossAxis = positioning.offset?.crossAxis ?? 0; + const placement = positioning.placement ?? "bottom"; + const { width: pw, height: ph } = panelSize; + const b = boundaryRect; + const isRtl = dir === "rtl"; + + const xInnerLeft = b.x + gutter; + const xInnerRight = b.x + b.width - pw - gutter; + const xCenter = b.x + (b.width - pw) / 2; + + const yInnerTop = b.y + gutter; + const yInnerBottom = b.y + b.height - ph - gutter; + const yCenter = b.y + (b.height - ph) / 2; + + const parts = placement.split("-") as [string, string?]; + const side = parts[0]; + const align = parts[1]; + + const xForBottomTop = () => { + if (align === "start") return isRtl ? xInnerRight : xInnerLeft; + if (align === "end") return isRtl ? xInnerLeft : xInnerRight; + return xCenter; + }; + + if (side === "bottom") { + return { + x: xForBottomTop() + shift + crossAxis, + y: yInnerBottom - mainAxis, + }; + } + + if (side === "top") { + return { + x: xForBottomTop() + shift + crossAxis, + y: yInnerTop + mainAxis, + }; + } + + if (side === "left") { + const y = align === "start" ? yInnerTop : align === "end" ? yInnerBottom : yCenter; + return { + x: b.x + gutter + mainAxis, + y: y + shift + crossAxis, + }; + } + + if (side === "right") { + const y = align === "start" ? yInnerTop : align === "end" ? yInnerBottom : yCenter; + return { + x: b.x + b.width - pw - gutter - mainAxis, + y: y + shift + crossAxis, + }; + } + + return { + x: xCenter + crossAxis, + y: yCenter + mainAxis, + }; +} diff --git a/assets/lib/positioning.ts b/assets/lib/positioning.ts index 9e837a2a..4b996a11 100644 --- a/assets/lib/positioning.ts +++ b/assets/lib/positioning.ts @@ -27,6 +27,13 @@ export function readPositioningOptions(el: HTMLElement): PositioningOptions | un if (overflowPadding !== undefined) options.overflowPadding = overflowPadding; const arrowPadding = getNumber(el, "positionArrowPadding"); if (arrowPadding !== undefined) options.arrowPadding = arrowPadding; + const offsetMainAxis = getNumber(el, "positionOffsetMainAxis"); + const offsetCrossAxis = getNumber(el, "positionOffsetCrossAxis"); + if (offsetMainAxis !== undefined || offsetCrossAxis !== undefined) { + options.offset = {}; + if (offsetMainAxis !== undefined) options.offset.mainAxis = offsetMainAxis; + if (offsetCrossAxis !== undefined) options.offset.crossAxis = offsetCrossAxis; + } const flip = readFlipAttr(el); if (flip !== undefined) options.flip = flip; const slide = getBooleanValue(el, "positionSlide"); diff --git a/assets/lib/util.ts b/assets/lib/util.ts index 2d01fa9b..3bcd3863 100644 --- a/assets/lib/util.ts +++ b/assets/lib/util.ts @@ -1,15 +1,7 @@ -/** - * Corex utility functions for working with Zag.js components. - */ - import type { Direction } from "@zag-js/types"; const DIR_VALUES: Direction[] = ["ltr", "rtl"]; -/** - * Read dir for a component: element data-dir, else , else "ltr". - * Dir is set server-side; JS only reads the attribute. - */ export function getDir(element: HTMLElement): Direction { const fromEl = element.dataset.dir; if (fromEl !== undefined && DIR_VALUES.includes(fromEl as Direction)) { diff --git a/e2e/assets/corex/components/avatar.css b/e2e/assets/corex/components/avatar.css index 1c25ecfc..2a0c9c66 100644 --- a/e2e/assets/corex/components/avatar.css +++ b/e2e/assets/corex/components/avatar.css @@ -1,6 +1,10 @@ @import "../main.css"; @layer components { + .avatar[data-loading] [data-scope="avatar"][data-part="root"] { + @apply ui-loading; + } + .avatar[dir="rtl"] [data-scope="avatar"][data-part="fallback"] { text-align: end; } diff --git a/e2e/assets/corex/components/carousel.css b/e2e/assets/corex/components/carousel.css index fe349948..91ab441b 100644 --- a/e2e/assets/corex/components/carousel.css +++ b/e2e/assets/corex/components/carousel.css @@ -1,6 +1,10 @@ @import "../main.css"; @layer components { + .carousel[data-loading] [data-scope="carousel"][data-part="root"] { + @apply ui-loading; + } + .carousel { width: 100%; max-width: var(--container-md); diff --git a/e2e/assets/corex/components/clipboard.css b/e2e/assets/corex/components/clipboard.css index d8cf7c79..1055c680 100644 --- a/e2e/assets/corex/components/clipboard.css +++ b/e2e/assets/corex/components/clipboard.css @@ -1,6 +1,10 @@ @import "../main.css"; @layer components { + .clipboard[data-loading] [data-scope="clipboard"][data-part="root"] { + @apply ui-loading; + } + .clipboard { width: fit-content; } diff --git a/e2e/assets/corex/components/code.css b/e2e/assets/corex/components/code.css index 1ff16fec..037c57c8 100644 --- a/e2e/assets/corex/components/code.css +++ b/e2e/assets/corex/components/code.css @@ -24,31 +24,36 @@ background-attachment: local; background-position: 0 0; - & code { + & code[data-part="content"] { padding-inline-end: --spacing(11); + white-space: pre-wrap; } } code.code { - display: inline-flex; - width: fit-content; + display: inline-block; max-width: 100%; - overflow: hidden; - text-overflow: ellipsis; - font-family: inherit; - font-size: inherit; - line-height: inherit; - padding-inline: var(--spacing-space); + overflow: visible; + vertical-align: baseline; + box-decoration-break: clone; + -webkit-box-decoration-break: clone; + font-family: var(--font-code); + font-size: var(--text-sm); + line-height: var(--text-sm--line-height); + padding-inline: var(--spacing-space-sm); + padding-block: 0.12em; border: 1px solid var(--color-border); border-radius: var(--radius-md); - justify-content: start; - align-items: start; - white-space: wrap; - overflow-wrap: break-word; - flex-wrap: wrap; + background-color: var(--color-layer); + color: var(--color-ink); user-select: all; } + code.code > span[data-part="content"] { + white-space: pre-wrap; + overflow-wrap: break-word; + } + pre.code.unselectable, code.code.unselectable { -webkit-touch-callout: none; @@ -150,6 +155,11 @@ font-size: inherit; line-height: inherit; } + + &:is(code.code) > span[data-part="content"] { + font-size: inherit; + line-height: inherit; + } } @utility code--max-w-none { diff --git a/e2e/assets/corex/components/collapsible.css b/e2e/assets/corex/components/collapsible.css index 79a0275f..405f9fb6 100644 --- a/e2e/assets/corex/components/collapsible.css +++ b/e2e/assets/corex/components/collapsible.css @@ -1,6 +1,9 @@ @import "../main.css"; @layer components { + .collapsible[data-loading] [data-scope="collapsible"][data-part="root"] { + @apply ui-loading; + } .collapsible { width: 100%; @@ -70,7 +73,8 @@ .collapsible [data-scope="collapsible"][data-part="root"][data-loading], [data-scope="collapsible"][data-part="root"][data-loading] { - pointer-events: none; + @apply ui-loading; + min-height: var(--spacing-size); min-width: var(--container-7xs); } diff --git a/e2e/assets/corex/components/dialog.css b/e2e/assets/corex/components/dialog.css index c82eaf7a..718302e0 100644 --- a/e2e/assets/corex/components/dialog.css +++ b/e2e/assets/corex/components/dialog.css @@ -1,6 +1,10 @@ @import "../main.css"; @layer components { + .dialog[data-loading] > * { + @apply ui-loading; + } + .dialog [data-scope="dialog"][data-part="trigger"] { @apply ui-trigger; } diff --git a/e2e/assets/corex/components/floating-panel.css b/e2e/assets/corex/components/floating-panel.css index c91ebf1a..940f8fc2 100644 --- a/e2e/assets/corex/components/floating-panel.css +++ b/e2e/assets/corex/components/floating-panel.css @@ -2,6 +2,10 @@ @import "./scrollbar.css"; @layer components { + .floating-panel[data-loading] [data-scope="floating-panel"][data-part="root"] { + @apply ui-loading; + } + .floating-panel [data-scope="floating-panel"][data-part="trigger"] { @apply ui-trigger; } diff --git a/e2e/assets/corex/components/layout-heading.css b/e2e/assets/corex/components/layout-heading.css index 66d46198..4dd98abc 100644 --- a/e2e/assets/corex/components/layout-heading.css +++ b/e2e/assets/corex/components/layout-heading.css @@ -27,6 +27,13 @@ margin: 0; } + .layout-heading [data-scope="layout-heading"][data-part="title"] { + color: var(--color-ink); + } + + .layout-heading [data-scope="layout-heading"][data-part="subtitle"] { + color: var(--color-ink-muted); + } .layout-heading [data-scope="layout-heading"][data-part="actions"] { display: flex; @@ -36,4 +43,15 @@ padding: 0; align-items: start; } -} \ No newline at end of file +} + +@utility layout-heading--* { + + [data-scope="layout-heading"][data-part="title"] { + color: --value(--color-ink-*, [color]); + } + + [data-scope="layout-heading"][data-part="subtitle"] { + color: --value(--color-ink-*, [color]); + } +} diff --git a/e2e/assets/corex/components/link.css b/e2e/assets/corex/components/link.css index b071106e..e6b779d6 100644 --- a/e2e/assets/corex/components/link.css +++ b/e2e/assets/corex/components/link.css @@ -4,6 +4,34 @@ .link { @apply ui-link; } + + .link.link--skip { + position: fixed; + inset-inline-start: var(--spacing-space-4); + inset-block-start: -9999px; + z-index: 10000; + max-width: min(100vw - var(--spacing-space-8), 20rem); + padding-block: var(--spacing-space-3); + padding-inline: var(--spacing-space-4); + margin: 0; + overflow: visible; + background: var(--color-layer); + color: var(--color-ink); + border: 1px solid var(--color-border); + box-shadow: 0 4px 24px rgb(0 0 0 / 0.12); + transition: inset-block-start 0.15s ease; + } + + .link.link--skip:focus, + .link.link--skip:focus-visible { + inset-block-start: var(--spacing-space-4); + } + + @media (prefers-reduced-motion: reduce) { + .link.link--skip { + transition: none; + } + } } @utility link--* { color: --value(--color-ink-*, [color]); diff --git a/e2e/assets/corex/components/listbox.css b/e2e/assets/corex/components/listbox.css index 00c2625d..88f51b04 100644 --- a/e2e/assets/corex/components/listbox.css +++ b/e2e/assets/corex/components/listbox.css @@ -1,18 +1,40 @@ @import "../main.css"; +@import "./scrollbar.css"; @layer components { + .listbox[data-loading] [data-scope="listbox"][data-part="root"] { + @apply ui-loading; + } + .listbox { width: 100%; max-width: var(--container-5xs); } + .listbox[data-orientation="horizontal"] { + max-width: var(--container-md); + } + .listbox [data-scope="listbox"][data-part="root"] { @apply ui-root; + flex-direction: column; + flex-wrap: nowrap; + align-items: stretch; width: 100%; gap: var(--spacing-space); } + .listbox [data-scope="listbox"][data-part="root"] > [data-scope="listbox"][data-part="content"] { + width: 100%; + min-width: 0; + } + + .listbox [data-scope="listbox"][data-part="root"][data-orientation="horizontal"] { + flex-direction: column; + flex-wrap: nowrap; + } + .listbox [data-scope="listbox"][data-part="label"] { @apply ui-label; } @@ -22,11 +44,13 @@ } .listbox [data-scope="listbox"][data-part="item-group-label"] { + display: flex; + align-items: center; font-size: var(--text-base); line-height: var(--text-base--line-height); text-align: start; - padding-inline: --spacing(4); - padding-block: --spacing(4); + min-height: var(--spacing-size); + padding-inline: var(--spacing-space); background-color: var(--color-root); color: var(--color-ink); border-bottom: 1px solid var(--color-border); @@ -38,6 +62,29 @@ flex-direction: column; } + .listbox + [data-scope="listbox"][data-part="content"][data-layout="list"][data-orientation="horizontal"] { + display: flex; + flex-direction: row; + flex-wrap: nowrap; + width: 100%; + min-width: 0; + } + + .listbox + [data-scope="listbox"][data-part="content"][data-layout="list"][data-orientation="horizontal"]:not( + :has([data-part="item-group"]) + ) { + @apply scrollbar scrollbar--sm; + + overflow-x: auto; + overflow-y: hidden; + background-color: var(--color-border); + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + gap: 1px; + } + .listbox [data-scope="listbox"][data-part="content"][data-layout="grid"]:not( :has([data-part="item-group"]) @@ -64,8 +111,8 @@ } .listbox - [data-scope="listbox"][data-part="content"]:not( - :has([data-part="item-group"]) + [data-scope="listbox"][data-part="content"]:not(:has([data-part="item-group"])):not( + [data-layout="list"][data-orientation="horizontal"] ), .listbox [data-scope="listbox"][data-part="item-group"] { background-color: var(--color-border); @@ -79,20 +126,83 @@ @apply ui-item; } + .listbox + [data-scope="listbox"][data-part="content"][data-layout="list"][data-orientation="horizontal"]:not( + :has([data-part="item-group"]) + ) + > [data-scope="listbox"][data-part="item"] { + flex: 0 0 auto; + min-width: max-content; + width: auto; + } + + .listbox [data-scope="listbox"][data-part="content"] [data-scope="listbox"][data-part="item-text"] { + flex: 1 1 0%; + min-width: 0; + max-width: 100%; + width: auto; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + display: block; + text-align: start; + } + + .listbox + [data-scope="listbox"][data-part="content"][data-layout="list"][data-orientation="horizontal"]:not( + :has([data-part="item-group"]) + ) + > [data-scope="listbox"][data-part="item"] + [data-scope="listbox"][data-part="item-text"] { + flex: none; + min-width: auto; + max-width: none; + overflow: visible; + text-overflow: clip; + white-space: nowrap; + } + + .listbox [data-scope="listbox"][data-part="content"] [data-scope="listbox"][data-part="item-indicator"] { + flex-shrink: 0; + } + + .listbox [data-scope="listbox"][data-part="content"] [data-scope="listbox"][data-part="item-indicator"] .icon, + .listbox + [data-scope="listbox"][data-part="content"] + [data-scope="listbox"][data-part="item-indicator"] + [class^="hero-"] { + transition: none !important; + } + .listbox [data-scope="listbox"][data-part="content"][dir="rtl"] - [data-scope="listbox"][data-part="item"] { - border-radius: 0; + [data-scope="listbox"][data-part="item-indicator"] + .icon, + .listbox + [data-scope="listbox"][data-part="content"][dir="rtl"] + [data-scope="listbox"][data-part="item-indicator"] + [class^="hero-"], + .listbox + [data-scope="listbox"][data-part="content"] + [data-scope="listbox"][data-part="item"][dir="rtl"] + > [data-scope="listbox"][data-part="item-indicator"] + .icon, + .listbox + [data-scope="listbox"][data-part="content"] + [data-scope="listbox"][data-part="item"][dir="rtl"] + > [data-scope="listbox"][data-part="item-indicator"] + [class^="hero-"] { + transform: scaleX(-1) !important; } - [dir="rtl"] .listbox [data-scope="listbox"][data-part="item-indicator"] { - transform: scaleX(-1); + .listbox + [data-scope="listbox"][data-part="content"][dir="rtl"] + [data-scope="listbox"][data-part="item"] { + border-radius: 0; } } @utility listbox--* { - max-width: --value(--container-*, [length]); - [data-scope="listbox"][data-part="root"] { width: 100%; gap: --value(--spacing-space-*, [length]); @@ -106,7 +216,6 @@ [data-scope="listbox"][data-part="item"] { font-size: --value(--text-*, [length]); line-height: --value(--text-*--line-height, [length]); - } [data-scope="listbox"][data-part="item"][data-selected] { diff --git a/e2e/assets/corex/components/menu.css b/e2e/assets/corex/components/menu.css index 6eea07d1..b28599a8 100644 --- a/e2e/assets/corex/components/menu.css +++ b/e2e/assets/corex/components/menu.css @@ -1,6 +1,10 @@ @import "../main.css"; @layer components { + .menu[data-loading] [data-scope="menu"][data-part="root"] { + @apply ui-loading; + } + .menu [data-scope="menu"][data-part="content"] { @apply ui-content; diff --git a/e2e/assets/corex/components/select.css b/e2e/assets/corex/components/select.css index 55381bf3..d48a6e84 100644 --- a/e2e/assets/corex/components/select.css +++ b/e2e/assets/corex/components/select.css @@ -157,423 +157,52 @@ } -@utility select--sm { +@utility select--* { [data-scope="select"][data-part="root"] { - gap: var(--spacing-space-sm); + gap: --value(--spacing-space-*, [length]); } [data-scope="select"][data-part="label"] { - font-size: var(--text-sm); - line-height: var(--text-sm--line-height); - } - - [data-scope="select"][data-part="control"] { - max-width: var(--container-sm); - gap: var(--spacing-space-sm); - } - - [data-scope="select"][data-part="trigger"] { - font-size: var(--text-sm); - line-height: var(--text-sm--line-height); - padding-inline: var(--spacing-space-sm); - gap: var(--spacing-space-sm); - min-height: var(--spacing-size-sm); - } - - [data-scope="select"][data-part="item"] { - font-size: var(--text-sm); - line-height: var(--text-sm--line-height); - padding-inline: var(--spacing-space-sm); - gap: var(--spacing-space-sm); - } - - [data-scope="select"][data-part="content"] [data-part="item-indicator"] { - padding-inline-end: var(--spacing-space-sm); - } - - [data-scope="select"][data-part="item-group-label"] { - font-size: var(--text-sm); - line-height: var(--text-sm--line-height); - } -} - -@utility select--md { - [data-scope="select"][data-part="root"] { - gap: var(--spacing-space-md); - } - - [data-scope="select"][data-part="label"] { - font-size: var(--text-base); - line-height: var(--text-base--line-height); - } - - [data-scope="select"][data-part="control"] { - max-width: var(--container-md); - gap: var(--spacing-space-md); - } - - [data-scope="select"][data-part="trigger"] { - font-size: var(--text-base); - line-height: var(--text-base--line-height); - padding-inline: var(--spacing-space-md); - gap: var(--spacing-space-md); - min-height: var(--spacing-size-md); - } - - [data-scope="select"][data-part="item"] { - font-size: var(--text-base); - line-height: var(--text-base--line-height); - padding-inline: var(--spacing-space-md); - gap: var(--spacing-space-md); - } - - [data-scope="select"][data-part="content"] [data-part="item-indicator"] { - padding-inline-end: var(--spacing-space-md); - } - - [data-scope="select"][data-part="item-group-label"] { - font-size: var(--text-base); - line-height: var(--text-base--line-height); - } -} - -@utility select--lg { - [data-scope="select"][data-part="root"] { - gap: var(--spacing-space-lg); - } - - [data-scope="select"][data-part="label"] { - font-size: var(--text-lg); - line-height: var(--text-lg--line-height); + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); } [data-scope="select"][data-part="control"] { - max-width: var(--container-lg); - gap: var(--spacing-space-lg); + max-width: --value(--container-*, [length]); + gap: --value(--spacing-space-*, [length]); } [data-scope="select"][data-part="trigger"] { - font-size: var(--text-lg); - line-height: var(--text-lg--line-height); - padding-inline: var(--spacing-space-lg); - gap: var(--spacing-space-lg); - min-height: var(--spacing-size-lg); - } - - [data-scope="select"][data-part="item"] { - font-size: var(--text-lg); - line-height: var(--text-lg--line-height); - padding-inline: var(--spacing-space-lg); - gap: var(--spacing-space-lg); - } - - [data-scope="select"][data-part="content"] [data-part="item-indicator"] { - padding-inline-end: var(--spacing-space-lg); - } - - [data-scope="select"][data-part="item-group-label"] { - font-size: var(--text-lg); - line-height: var(--text-lg--line-height); - } -} - -@utility select--xl { - [data-scope="select"][data-part="root"] { - gap: var(--spacing-space-xl); - } - - [data-scope="select"][data-part="label"] { - font-size: var(--text-xl); - line-height: var(--text-xl--line-height); + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); + padding-inline: --value(--spacing-space-*, [length]); + gap: --value(--spacing-space-*, [length]); + min-height: --value(--spacing-size-*, [length]); } - [data-scope="select"][data-part="control"] { - max-width: var(--container-xl); - gap: var(--spacing-space-xl); + [data-scope="select"][data-part="trigger"] .icon, + [data-scope="select"][data-part="trigger"] [class^="hero-"] { + color: inherit; } - [data-scope="select"][data-part="trigger"] { - font-size: var(--text-xl); - line-height: var(--text-xl--line-height); - padding-inline: var(--spacing-space-xl); - gap: var(--spacing-space-xl); - min-height: var(--spacing-size-xl); + [data-scope="select"][data-part="trigger"] svg { + fill: currentColor; } [data-scope="select"][data-part="item"] { - font-size: var(--text-xl); - line-height: var(--text-xl--line-height); - padding-inline: var(--spacing-space-xl); - gap: var(--spacing-space-xl); + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); + padding-inline: --value(--spacing-space-*, [length]); + gap: --value(--spacing-space-*, [length]); } [data-scope="select"][data-part="content"] [data-part="item-indicator"] { - padding-inline-end: var(--spacing-space-xl); + padding-inline-end: --value(--spacing-space-*, [length]); } [data-scope="select"][data-part="item-group-label"] { - font-size: var(--text-xl); - line-height: var(--text-xl--line-height); - } -} - -@utility select--accent { - & [data-scope="select"][data-part="item"][data-selected], - & [data-scope="select"][data-part="item"][data-state="checked"] { - background-color: var(--color-accent); - color: var(--color-accent-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:hover, - & [data-scope="select"][data-part="item"][data-state="checked"]:hover { - background-color: var(--color-accent-hover); - color: var(--color-accent-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:active, - & [data-scope="select"][data-part="item"][data-state="checked"]:active { - background-color: var(--color-accent-active); - color: var(--color-accent-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:focus-visible, - & [data-scope="select"][data-part="item"][data-state="checked"]:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-accent-ink); - } - - @media (hover: hover) { - & [data-scope="select"][data-part="item"][data-highlighted]:not(:hover) { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - @media (hover: none) { - & [data-scope="select"][data-part="item"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - & [data-scope="select"][data-part="item"][data-selected][data-highlighted], - & [data-scope="select"][data-part="item"][data-state="checked"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-accent-ink); - background-color: var(--color-accent-hover); - color: var(--color-accent-ink); - } -} - -@utility select--brand { - & [data-scope="select"][data-part="item"][data-selected], - & [data-scope="select"][data-part="item"][data-state="checked"] { - background-color: var(--color-brand); - color: var(--color-brand-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:hover, - & [data-scope="select"][data-part="item"][data-state="checked"]:hover { - background-color: var(--color-brand-hover); - color: var(--color-brand-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:active, - & [data-scope="select"][data-part="item"][data-state="checked"]:active { - background-color: var(--color-brand-active); - color: var(--color-brand-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:focus-visible, - & [data-scope="select"][data-part="item"][data-state="checked"]:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-brand-ink); - } - - @media (hover: hover) { - & [data-scope="select"][data-part="item"][data-highlighted]:not(:hover) { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - @media (hover: none) { - & [data-scope="select"][data-part="item"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - & [data-scope="select"][data-part="item"][data-selected][data-highlighted], - & [data-scope="select"][data-part="item"][data-state="checked"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-brand-ink); - background-color: var(--color-brand-hover); - color: var(--color-brand-ink); - } -} - -@utility select--alert { - & [data-scope="select"][data-part="item"][data-selected], - & [data-scope="select"][data-part="item"][data-state="checked"] { - background-color: var(--color-alert); - color: var(--color-alert-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:hover, - & [data-scope="select"][data-part="item"][data-state="checked"]:hover { - background-color: var(--color-alert-hover); - color: var(--color-alert-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:active, - & [data-scope="select"][data-part="item"][data-state="checked"]:active { - background-color: var(--color-alert-active); - color: var(--color-alert-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:focus-visible, - & [data-scope="select"][data-part="item"][data-state="checked"]:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-alert-ink); - } - - @media (hover: hover) { - & [data-scope="select"][data-part="item"][data-highlighted]:not(:hover) { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - @media (hover: none) { - & [data-scope="select"][data-part="item"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - & [data-scope="select"][data-part="item"][data-selected][data-highlighted], - & [data-scope="select"][data-part="item"][data-state="checked"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-alert-ink); - background-color: var(--color-alert-hover); - color: var(--color-alert-ink); - } -} - -@utility select--info { - & [data-scope="select"][data-part="item"][data-selected], - & [data-scope="select"][data-part="item"][data-state="checked"] { - background-color: var(--color-info); - color: var(--color-info-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:hover, - & [data-scope="select"][data-part="item"][data-state="checked"]:hover { - background-color: var(--color-info-hover); - color: var(--color-info-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:active, - & [data-scope="select"][data-part="item"][data-state="checked"]:active { - background-color: var(--color-info-active); - color: var(--color-info-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:focus-visible, - & [data-scope="select"][data-part="item"][data-state="checked"]:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-info-ink); - } - - @media (hover: hover) { - & [data-scope="select"][data-part="item"][data-highlighted]:not(:hover) { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - @media (hover: none) { - & [data-scope="select"][data-part="item"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - & [data-scope="select"][data-part="item"][data-selected][data-highlighted], - & [data-scope="select"][data-part="item"][data-state="checked"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-info-ink); - background-color: var(--color-info-hover); - color: var(--color-info-ink); - } -} - -@utility select--success { - & [data-scope="select"][data-part="item"][data-selected], - & [data-scope="select"][data-part="item"][data-state="checked"] { - background-color: var(--color-success); - color: var(--color-success-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:hover, - & [data-scope="select"][data-part="item"][data-state="checked"]:hover { - background-color: var(--color-success-hover); - color: var(--color-success-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:active, - & [data-scope="select"][data-part="item"][data-state="checked"]:active { - background-color: var(--color-success-active); - color: var(--color-success-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:focus-visible, - & [data-scope="select"][data-part="item"][data-state="checked"]:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-success-ink); - } - - @media (hover: hover) { - & [data-scope="select"][data-part="item"][data-highlighted]:not(:hover) { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - @media (hover: none) { - & [data-scope="select"][data-part="item"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - & [data-scope="select"][data-part="item"][data-selected][data-highlighted], - & [data-scope="select"][data-part="item"][data-state="checked"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-success-ink); - background-color: var(--color-success-hover); - color: var(--color-success-ink); + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); } } @@ -581,10 +210,6 @@ [data-scope="select"][data-part="trigger"] { border-radius: --value(--radius-*, [length]); } - - [data-scope="select"][data-part="content"] { - border-radius: --value(--radius-*, [length]); - } } @utility select--text-* { diff --git a/e2e/assets/corex/components/switch.css b/e2e/assets/corex/components/switch.css index 3eb786ee..e964dc46 100644 --- a/e2e/assets/corex/components/switch.css +++ b/e2e/assets/corex/components/switch.css @@ -6,8 +6,8 @@ } .switch [data-scope="switch"][data-part="root"] { - --switch-track-width: --spacing(8); - --switch-track-height: --spacing(4); + --switch-track-width: var(--spacing-size); + --switch-track-height: calc(var(--spacing-size) * 0.5); --switch-track-diff: calc( var(--switch-track-width) - var(--switch-track-height) ); @@ -82,7 +82,9 @@ background: var(--color-selected-ink); } - [dir="rtl"] .switch [data-scope="switch"][data-part="thumb"][data-state="checked"] { + .switch + [data-scope="switch"][data-part="root"][dir="rtl"] + [data-scope="switch"][data-part="thumb"][data-state="checked"] { transform: translateX(calc(var(--switch-thumb-x) * -1)); } @@ -101,112 +103,22 @@ } } -@utility switch--sm { - [data-scope="switch"][data-part="root"] { - max-width: var(--container-sm); - } - - [data-scope="switch"][data-part="control"] { - --switch-track-width: calc(calc(var(--spacing-size-sm) * 1.5) * 2.5); - --switch-track-height: calc(var(--spacing-size-sm) * 1.5); - --switch-track-diff: calc( - var(--switch-track-width) - var(--switch-track-height) - ); - --switch-thumb-x: var(--switch-track-diff); - } -} - -@utility switch--md { - [data-scope="switch"][data-part="root"] { - max-width: var(--container-md); - } - - [data-scope="switch"][data-part="control"] { - --switch-track-width: calc(calc(var(--spacing-size-md) * 1.5) * 2.5); - --switch-track-height: calc(var(--spacing-size-md) * 1.5); - --switch-track-diff: calc( - var(--switch-track-width) - var(--switch-track-height) - ); - --switch-thumb-x: var(--switch-track-diff); - } -} - -@utility switch--lg { - [data-scope="switch"][data-part="root"] { - max-width: var(--container-lg); - } - - [data-scope="switch"][data-part="control"] { - --switch-track-width: calc(calc(var(--spacing-size-lg) * 1.5) * 2.5); - --switch-track-height: calc(var(--spacing-size-lg) * 1.5); - --switch-track-diff: calc( - var(--switch-track-width) - var(--switch-track-height) - ); - --switch-thumb-x: var(--switch-track-diff); - } -} - -@utility switch--xl { - [data-scope="switch"][data-part="root"] { - max-width: var(--container-xl); - } +@utility switch--* { [data-scope="switch"][data-part="control"] { - --switch-track-width: calc(calc(var(--spacing-size-xl) * 1.5) * 2.5); - --switch-track-height: calc(var(--spacing-size-xl) * 1.5); + --switch-track-width: --value(--spacing-size-*, [length]); + --switch-track-height: calc(--value(--spacing-size-*, [length]) * 0.5); --switch-track-diff: calc( var(--switch-track-width) - var(--switch-track-height) ); --switch-thumb-x: var(--switch-track-diff); } -} - -@utility switch--accent { - [data-scope="switch"][data-part="control"][data-state="checked"] { - background-color: var(--color-accent); - - & [data-scope="switch"][data-part="thumb"] { - background-color: var(--color-accent-ink); - } - } -} - -@utility switch--brand { - [data-scope="switch"][data-part="control"][data-state="checked"] { - background-color: var(--color-brand); - - & [data-scope="switch"][data-part="thumb"] { - background-color: var(--color-brand-ink); - } - } -} - -@utility switch--alert { - [data-scope="switch"][data-part="control"][data-state="checked"] { - background-color: var(--color-alert); - - & [data-scope="switch"][data-part="thumb"] { - background-color: var(--color-alert-ink); - } - } -} - -@utility switch--info { - [data-scope="switch"][data-part="control"][data-state="checked"] { - background-color: var(--color-info); - - & [data-scope="switch"][data-part="thumb"] { - background-color: var(--color-info-ink); - } - } -} -@utility switch--success { [data-scope="switch"][data-part="control"][data-state="checked"] { - background-color: var(--color-success); + background-color: --value(--color-*, [color]); & [data-scope="switch"][data-part="thumb"] { - background-color: var(--color-success-ink); + background-color: --value(--color-*-ink, [color]); } } } \ No newline at end of file diff --git a/e2e/assets/corex/components/tabs.css b/e2e/assets/corex/components/tabs.css index 3e2851cd..dde6e7c0 100644 --- a/e2e/assets/corex/components/tabs.css +++ b/e2e/assets/corex/components/tabs.css @@ -1,6 +1,10 @@ @import "../main.css"; @layer components { + .tabs[data-loading] [data-scope="tabs"][data-part="root"] { + @apply ui-loading; + } + .tabs { width: 100%; max-width: none; @@ -96,178 +100,55 @@ } } -@utility tabs--sm { - [data-scope="tabs"][data-part="root"] { - gap: var(--spacing-space-sm); - } -} - -@utility tabs--md { +@utility tabs--* { [data-scope="tabs"][data-part="root"] { - gap: var(--spacing-space-md); - } -} - -@utility tabs--lg { - [data-scope="tabs"][data-part="root"] { - gap: var(--spacing-space-lg); - } -} - -@utility tabs--xl { - [data-scope="tabs"][data-part="root"] { - gap: var(--spacing-space-xl); - } -} - -@utility tabs--text-* { - [data-scope="tabs"][data-part="trigger"] { - font-size: --value(--text-*, [length]); - line-height: --value(--text-*--line-height, [length]); - } - - [data-scope="tabs"][data-part="content"] { - font-size: --value(--text-*, [length]); - line-height: --value(--text-*--line-height, [length]); - } -} - -@utility tabs--rounded-* { - [data-scope="tabs"][data-part="list"] { - border-radius: --value(--radius-*, [length]); - } - - [data-scope="tabs"][data-part="content"] { - border-radius: --value(--radius-*, [length]); + gap: --value(--spacing-space-*, [length]); } -} -@utility tabs--accent { [data-scope="tabs"][data-part="trigger"][data-selected] { - background-color: var(--color-accent); - color: var(--color-accent-ink); + background-color: --value(--color-*, [color]); + color: --value(--color-*-ink, [color]); &:hover { - background-color: var(--color-accent-hover); + background-color: --value(--color-*-hover, [color]); } &:active { - background-color: var(--color-accent-active); + background-color: --value(--color-*-active, [color]); } &:focus-visible { outline: none; - box-shadow: inset 0 0 0 2px var(--color-accent-ink); + box-shadow: inset 0 0 0 2px --value(--color-*-ink, [color]); } &:disabled, &[data-disabled], &[disabled] { - background-color: var(--color-accent-muted); + background-color: --value(--color-*-muted, [color]); } } } -@utility tabs--brand { - [data-scope="tabs"][data-part="trigger"][data-selected] { - background-color: var(--color-brand); - color: var(--color-brand-ink); - - &:hover { - background-color: var(--color-brand-hover); - } - - &:active { - background-color: var(--color-brand-active); - } - - &:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-brand-ink); - } - - &:disabled, - &[data-disabled], - &[disabled] { - background-color: var(--color-brand-muted); - } +@utility tabs--text-* { + [data-scope="tabs"][data-part="trigger"] { + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); } -} -@utility tabs--alert { - [data-scope="tabs"][data-part="trigger"][data-selected] { - background-color: var(--color-alert); - color: var(--color-alert-ink); - - &:hover { - background-color: var(--color-alert-hover); - } - - &:active { - background-color: var(--color-alert-active); - } - - &:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-alert-ink); - } - - &:disabled, - &[data-disabled], - &[disabled] { - background-color: var(--color-alert-muted); - } + [data-scope="tabs"][data-part="content"] { + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); } } -@utility tabs--info { - [data-scope="tabs"][data-part="trigger"][data-selected] { - background-color: var(--color-info); - color: var(--color-info-ink); - - &:hover { - background-color: var(--color-info-hover); - } - - &:active { - background-color: var(--color-info-active); - } - - &:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-info-ink); - } - - &:disabled, - &[data-disabled], - &[disabled] { - background-color: var(--color-info-muted); - } +@utility tabs--rounded-* { + [data-scope="tabs"][data-part="list"] { + border-radius: --value(--radius-*, [length]); } -} - -@utility tabs--success { - [data-scope="tabs"][data-part="trigger"][data-selected] { - background-color: var(--color-success); - color: var(--color-success-ink); - - &:hover { - background-color: var(--color-success-hover); - } - &:active { - background-color: var(--color-success-active); - } - - &:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-success-ink); - } - - &:disabled, - &[data-disabled], - &[disabled] { - background-color: var(--color-success-muted); - } + [data-scope="tabs"][data-part="content"] { + border-radius: --value(--radius-*, [length]); } } + diff --git a/e2e/assets/corex/components/timer.css b/e2e/assets/corex/components/timer.css index 54222518..19cc8d28 100644 --- a/e2e/assets/corex/components/timer.css +++ b/e2e/assets/corex/components/timer.css @@ -3,17 +3,42 @@ @layer components { .timer { width: 100%; - max-width: var(--container-md); + max-width: fit-content; } .timer [data-scope="timer"][data-part="area"] { display: flex; width: 100%; justify-content: center; - align-items: center; + align-items: flex-start; flex-wrap: wrap; } + .timer [data-scope="timer"][data-part="area"]:not(:has([data-scope="timer"][data-part="separator"])) { + gap: var(--spacing-space-sm); + } + + .timer [data-timer-segment] { + display: flex; + flex-direction: column; + align-items: center; + justify-content: flex-start; + min-width: 0; + gap: var(--spacing-space); + } + + .timer [data-scope="timer"][data-part="item-label"] { + font-size: var(--text-xs); + line-height: var(--text-xs--line-height); + font-weight: var(--font-weight-semibold); + letter-spacing: 0.08em; + text-transform: uppercase; + color: var(--color-ink-muted); + text-align: center; + white-space: nowrap; + max-width: 100%; + } + .timer [data-scope="timer"][data-part="item"] { display: flex; align-items: center; @@ -48,11 +73,33 @@ z-index: 1; } + .timer [data-scope="timer"][data-part="item"][data-type="days"] { + box-sizing: border-box; + min-width: max(2em, 3.5ch); + width: auto; + aspect-ratio: unset; + padding-inline: var(--spacing-space); + } + + .timer [data-scope="timer"][data-part="item"][data-type="days"]::before { + content: "000\a 001\a 002\a 003\a 004\a 005\a 006\a 007\a 008\a 009\a 010\a 011\a 012\a 013\a 014\a 015\a 016\a 017\a 018\a 019\a 020\a 021\a 022\a 023\a 024\a 025\a 026\a 027\a 028\a 029\a 030\a 031\a 032\a 033\a 034\a 035\a 036\a 037\a 038\a 039\a 040\a 041\a 042\a 043\a 044\a 045\a 046\a 047\a 048\a 049\a 050\a 051\a 052\a 053\a 054\a 055\a 056\a 057\a 058\a 059\a 060\a 061\a 062\a 063\a 064\a 065\a 066\a 067\a 068\a 069\a 070\a 071\a 072\a 073\a 074\a 075\a 076\a 077\a 078\a 079\a 080\a 081\a 082\a 083\a 084\a 085\a 086\a 087\a 088\a 089\a 090\a 091\a 092\a 093\a 094\a 095\a 096\a 097\a 098\a 099\a 100\a 101\a 102\a 103\a 104\a 105\a 106\a 107\a 108\a 109\a 110\a 111\a 112\a 113\a 114\a 115\a 116\a 117\a 118\a 119\a 120\a 121\a 122\a 123\a 124\a 125\a 126\a 127\a 128\a 129\a 130\a 131\a 132\a 133\a 134\a 135\a 136\a 137\a 138\a 139\a 140\a 141\a 142\a 143\a 144\a 145\a 146\a 147\a 148\a 149\a 150\a 151\a 152\a 153\a 154\a 155\a 156\a 157\a 158\a 159\a 160\a 161\a 162\a 163\a 164\a 165\a 166\a 167\a 168\a 169\a 170\a 171\a 172\a 173\a 174\a 175\a 176\a 177\a 178\a 179\a 180\a 181\a 182\a 183\a 184\a 185\a 186\a 187\a 188\a 189\a 190\a 191\a 192\a 193\a 194\a 195\a 196\a 197\a 198\a 199\a 200\a 201\a 202\a 203\a 204\a 205\a 206\a 207\a 208\a 209\a 210\a 211\a 212\a 213\a 214\a 215\a 216\a 217\a 218\a 219\a 220\a 221\a 222\a 223\a 224\a 225\a 226\a 227\a 228\a 229\a 230\a 231\a 232\a 233\a 234\a 235\a 236\a 237\a 238\a 239\a 240\a 241\a 242\a 243\a 244\a 245\a 246\a 247\a 248\a 249\a 250\a 251\a 252\a 253\a 254\a 255\a 256\a 257\a 258\a 259\a 260\a 261\a 262\a 263\a 264\a 265\a 266\a 267\a 268\a 269\a 270\a 271\a 272\a 273\a 274\a 275\a 276\a 277\a 278\a 279\a 280\a 281\a 282\a 283\a 284\a 285\a 286\a 287\a 288\a 289\a 290\a 291\a 292\a 293\a 294\a 295\a 296\a 297\a 298\a 299\a 300\a 301\a 302\a 303\a 304\a 305\a 306\a 307\a 308\a 309\a 310\a 311\a 312\a 313\a 314\a 315\a 316\a 317\a 318\a 319\a 320\a 321\a 322\a 323\a 324\a 325\a 326\a 327\a 328\a 329\a 330\a 331\a 332\a 333\a 334\a 335\a 336\a 337\a 338\a 339\a 340\a 341\a 342\a 343\a 344\a 345\a 346\a 347\a 348\a 349\a 350\a 351\a 352\a 353\a 354\a 355\a 356\a 357\a 358\a 359\a 360\a 361\a 362\a 363\a 364\a 365\a 366\a 367\a 368\a 369\a 370\a 371\a 372\a 373\a 374\a 375\a 376\a 377\a 378\a 379\a 380\a 381\a 382\a 383\a 384\a 385\a 386\a 387\a 388\a 389\a 390\a 391\a 392\a 393\a 394\a 395\a 396\a 397\a 398\a 399\a 400\a 401\a 402\a 403\a 404\a 405\a 406\a 407\a 408\a 409\a 410\a 411\a 412\a 413\a 414\a 415\a 416\a 417\a 418\a 419\a 420\a 421\a 422\a 423\a 424\a 425\a 426\a 427\a 428\a 429\a 430\a 431\a 432\a 433\a 434\a 435\a 436\a 437\a 438\a 439\a 440\a 441\a 442\a 443\a 444\a 445\a 446\a 447\a 448\a 449\a 450\a 451\a 452\a 453\a 454\a 455\a 456\a 457\a 458\a 459\a 460\a 461\a 462\a 463\a 464\a 465\a 466\a 467\a 468\a 469\a 470\a 471\a 472\a 473\a 474\a 475\a 476\a 477\a 478\a 479\a 480\a 481\a 482\a 483\a 484\a 485\a 486\a 487\a 488\a 489\a 490\a 491\a 492\a 493\a 494\a 495\a 496\a 497\a 498\a 499\a 500\a 501\a 502\a 503\a 504\a 505\a 506\a 507\a 508\a 509\a 510\a 511\a 512\a 513\a 514\a 515\a 516\a 517\a 518\a 519\a 520\a 521\a 522\a 523\a 524\a 525\a 526\a 527\a 528\a 529\a 530\a 531\a 532\a 533\a 534\a 535\a 536\a 537\a 538\a 539\a 540\a 541\a 542\a 543\a 544\a 545\a 546\a 547\a 548\a 549\a 550\a 551\a 552\a 553\a 554\a 555\a 556\a 557\a 558\a 559\a 560\a 561\a 562\a 563\a 564\a 565\a 566\a 567\a 568\a 569\a 570\a 571\a 572\a 573\a 574\a 575\a 576\a 577\a 578\a 579\a 580\a 581\a 582\a 583\a 584\a 585\a 586\a 587\a 588\a 589\a 590\a 591\a 592\a 593\a 594\a 595\a 596\a 597\a 598\a 599\a 600\a 601\a 602\a 603\a 604\a 605\a 606\a 607\a 608\a 609\a 610\a 611\a 612\a 613\a 614\a 615\a 616\a 617\a 618\a 619\a 620\a 621\a 622\a 623\a 624\a 625\a 626\a 627\a 628\a 629\a 630\a 631\a 632\a 633\a 634\a 635\a 636\a 637\a 638\a 639\a 640\a 641\a 642\a 643\a 644\a 645\a 646\a 647\a 648\a 649\a 650\a 651\a 652\a 653\a 654\a 655\a 656\a 657\a 658\a 659\a 660\a 661\a 662\a 663\a 664\a 665\a 666\a 667\a 668\a 669\a 670\a 671\a 672\a 673\a 674\a 675\a 676\a 677\a 678\a 679\a 680\a 681\a 682\a 683\a 684\a 685\a 686\a 687\a 688\a 689\a 690\a 691\a 692\a 693\a 694\a 695\a 696\a 697\a 698\a 699\a 700\a 701\a 702\a 703\a 704\a 705\a 706\a 707\a 708\a 709\a 710\a 711\a 712\a 713\a 714\a 715\a 716\a 717\a 718\a 719\a 720\a 721\a 722\a 723\a 724\a 725\a 726\a 727\a 728\a 729\a 730\a 731\a 732\a 733\a 734\a 735\a 736\a 737\a 738\a 739\a 740\a 741\a 742\a 743\a 744\a 745\a 746\a 747\a 748\a 749\a 750\a 751\a 752\a 753\a 754\a 755\a 756\a 757\a 758\a 759\a 760\a 761\a 762\a 763\a 764\a 765\a 766\a 767\a 768\a 769\a 770\a 771\a 772\a 773\a 774\a 775\a 776\a 777\a 778\a 779\a 780\a 781\a 782\a 783\a 784\a 785\a 786\a 787\a 788\a 789\a 790\a 791\a 792\a 793\a 794\a 795\a 796\a 797\a 798\a 799\a 800\a 801\a 802\a 803\a 804\a 805\a 806\a 807\a 808\a 809\a 810\a 811\a 812\a 813\a 814\a 815\a 816\a 817\a 818\a 819\a 820\a 821\a 822\a 823\a 824\a 825\a 826\a 827\a 828\a 829\a 830\a 831\a 832\a 833\a 834\a 835\a 836\a 837\a 838\a 839\a 840\a 841\a 842\a 843\a 844\a 845\a 846\a 847\a 848\a 849\a 850\a 851\a 852\a 853\a 854\a 855\a 856\a 857\a 858\a 859\a 860\a 861\a 862\a 863\a 864\a 865\a 866\a 867\a 868\a 869\a 870\a 871\a 872\a 873\a 874\a 875\a 876\a 877\a 878\a 879\a 880\a 881\a 882\a 883\a 884\a 885\a 886\a 887\a 888\a 889\a 890\a 891\a 892\a 893\a 894\a 895\a 896\a 897\a 898\a 899\a 900\a 901\a 902\a 903\a 904\a 905\a 906\a 907\a 908\a 909\a 910\a 911\a 912\a 913\a 914\a 915\a 916\a 917\a 918\a 919\a 920\a 921\a 922\a 923\a 924\a 925\a 926\a 927\a 928\a 929\a 930\a 931\a 932\a 933\a 934\a 935\a 936\a 937\a 938\a 939\a 940\a 941\a 942\a 943\a 944\a 945\a 946\a 947\a 948\a 949\a 950\a 951\a 952\a 953\a 954\a 955\a 956\a 957\a 958\a 959\a 960\a 961\a 962\a 963\a 964\a 965\a 966\a 967\a 968\a 969\a 970\a 971\a 972\a 973\a 974\a 975\a 976\a 977\a 978\a 979\a 980\a 981\a 982\a 983\a 984\a 985\a 986\a 987\a 988\a 989\a 990\a 991\a 992\a 993\a 994\a 995\a 996\a 997\a 998\a 999"; + } + + .timer [data-scope="timer"][data-part="separator"] { font-size: var(--text-base); line-height: var(--text-base--line-height); - font-weight: var(--font-weight-normal); - padding: --spacing(4); + font-weight: var(--font-weight-semibold); + padding-inline: var(--spacing-space); + padding-block: 0; + display: inline-flex; + align-items: center; + justify-content: center; + height: 2em; + min-height: 2em; + box-sizing: border-box; + flex-shrink: 0; + color: var(--color-ink); } .timer [data-scope="timer"][data-part="control"] { @@ -63,105 +110,90 @@ } .timer [data-scope="timer"][data-part="action-trigger"] { - @apply ui-trigger ui-trigger--square ui-trigger--sm; + @apply ui-trigger ui-trigger--square; + padding: 0 !important; + min-height: 2em !important; + height: 2em; } } -@utility timer--sm { - max-width: var(--container-sm); -} +@utility timer--* { -@utility timer--md { - max-width: var(--container-md); -} - -@utility timer--lg { - max-width: var(--container-lg); -} - -@utility timer--xl { - max-width: var(--container-xl); -} - -@utility timer--text-* { [data-scope="timer"][data-part="item"] { font-size: --value(--text-*, [length]); line-height: --value(--text-*--line-height, [length]); + background: --value(--color-*-muted, [color]); + color: --value(--color-*-ink, [color]); + border-color: --value(--color-*, [color]); } - [data-scope="timer"][data-part="separator"] { - font-size: --value(--text-*, [length]); - line-height: --value(--text-*--line-height, [length]); + [data-scope="timer"][data-part="item"][data-type="days"] { + min-width: max(2em, 3.5ch); } - [data-scope="timer"][data-part="action-trigger"] { + [data-scope="timer"][data-part="item-label"] { font-size: --value(--text-*, [length]); line-height: --value(--text-*--line-height, [length]); + color: --value(--color-*-ink-muted, [color]); } -} -@utility timer--rounded-* { - [data-scope="timer"][data-part="item"] { - border-radius: --value(--radius-*, [length]); + [data-scope="timer"][data-part="separator"] { + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); + padding-inline: --value(--spacing-space-*, [length]); + padding-block: 0; + color: --value(--color-*-ink, [color]); + font-weight: var(--font-weight-semibold); } -} -@utility timer--accent { - [data-scope="timer"][data-part="item"] { - background: var(--color-accent-muted); - color: var(--color-accent-ink); - border-color: var(--color-accent); + [data-scope="timer"][data-part="control"] { + gap: --value(--spacing-space-*, [length]); } - [data-scope="timer"][data-part="separator"] { - color: var(--color-accent-ink); + [data-scope="timer"][data-part="action-trigger"] { + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); + height: 2em; } } -@utility timer--brand { +@utility timer--text-* { [data-scope="timer"][data-part="item"] { - background: var(--color-brand-muted); - color: var(--color-brand-ink); - border-color: var(--color-brand); + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); } - [data-scope="timer"][data-part="separator"] { - color: var(--color-brand-ink); + [data-scope="timer"][data-part="item"][data-type="days"] { + min-width: max(2em, 3.5ch); } -} -@utility timer--alert { - [data-scope="timer"][data-part="item"] { - background: var(--color-alert-muted); - color: var(--color-alert-ink); - border-color: var(--color-alert); + [data-scope="timer"][data-part="item-label"] { + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); } [data-scope="timer"][data-part="separator"] { - color: var(--color-alert-ink); + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); } -} -@utility timer--info { - [data-scope="timer"][data-part="item"] { - background: var(--color-info-muted); - color: var(--color-info-ink); - border-color: var(--color-info); + [data-scope="timer"][data-part="action-trigger"] { + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); } - [data-scope="timer"][data-part="separator"] { - color: var(--color-info-ink); + [data-scope="timer"][data-part="action-trigger"] .icon, + [data-scope="timer"][data-part="action-trigger"] [class^="hero-"] { + font-size: 1em; } } -@utility timer--success { +@utility timer--rounded-* { [data-scope="timer"][data-part="item"] { - background: var(--color-success-muted); - color: var(--color-success-ink); - border-color: var(--color-success); + border-radius: --value(--radius-*, [length]); } - [data-scope="timer"][data-part="separator"] { - color: var(--color-success-ink); + [data-scope="timer"][data-part="action-trigger"] { + border-radius: --value(--radius-*, [length]); } } diff --git a/e2e/assets/corex/components/toast.css b/e2e/assets/corex/components/toast.css index cfea5b6b..51c70c67 100644 --- a/e2e/assets/corex/components/toast.css +++ b/e2e/assets/corex/components/toast.css @@ -91,7 +91,7 @@ } .toast [data-scope="toast"][data-part="root"][data-type="error"] [data-scope="toast"][data-part="title"] { - color: var(--color-alert); + color: var(--color-ink-alert); } .toast [data-scope="toast"][data-part="root"][data-type="error"] [data-scope="toast"][data-part="progressbar"] { @@ -101,7 +101,7 @@ } .toast [data-scope="toast"][data-part="root"][data-type="info"] [data-scope="toast"][data-part="title"] { - color: var(--color-info); + color: var(--color-ink-info); } .toast [data-scope="toast"][data-part="root"][data-type="info"] [data-scope="toast"][data-part="progressbar"] { @@ -111,7 +111,7 @@ } .toast [data-scope="toast"][data-part="root"][data-type="success"] [data-scope="toast"][data-part="title"] { - color: var(--color-success); + color: var(--color-ink-success); } .toast [data-scope="toast"][data-part="root"][data-type="success"] [data-scope="toast"][data-part="progressbar"] { diff --git a/e2e/assets/corex/components/toggle-group.css b/e2e/assets/corex/components/toggle-group.css index afd9d2f1..30451c10 100644 --- a/e2e/assets/corex/components/toggle-group.css +++ b/e2e/assets/corex/components/toggle-group.css @@ -1,6 +1,10 @@ @import "../main.css"; @layer components { + .toggle-group[data-loading] [data-scope="toggle-group"][data-part="root"] { + @apply ui-loading; + } + .toggle-group { width: 100%; max-width: var(--container-5xs); diff --git a/e2e/assets/corex/components/tooltip.css b/e2e/assets/corex/components/tooltip.css index b579aa50..6aad82d9 100644 --- a/e2e/assets/corex/components/tooltip.css +++ b/e2e/assets/corex/components/tooltip.css @@ -1,6 +1,15 @@ @import "../main.css"; @layer components { + .tooltip { + position: relative; + z-index: 20; + } + + .tooltip[data-loading] > * { + @apply ui-loading; + } + .tooltip [data-scope="tooltip"][data-part="positioner"] { z-index: 50; position: absolute; @@ -53,20 +62,14 @@ } @utility tooltip--* { - max-width: --value(--container-*, [length]); - [data-scope="tooltip"][data-part="content"] { - padding: --value(--spacing-space-*, [length]); - font-size: --value(--text-*, [length]); - line-height: --value(--text-*--line-height, [length]); - background: --value(--color-ui, [color]); - color: --value(--color-ink, [color]); + background: --value(--color-*, [color]); + color: --value(--color-*-ink, [color]); border-color: --value(--color-border, [color]); } [data-scope="tooltip"][data-part="arrow"] { - --arrow-size: calc(--value(--spacing-*, [length]) * 0.25); - --arrow-background: --value(--color-ui, [color]); + --arrow-background: --value(--color-*, [color]); } [data-scope="tooltip"][data-part="arrow-tip"] { @@ -74,3 +77,21 @@ border-color: --value(--color-border, [color]); } } + +@utility tooltip--text-* { + [data-scope="tooltip"][data-part="content"] { + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); + } +} + +@utility tooltip--size-* { + [data-scope="tooltip"][data-part="content"] { + max-width: --value(--container-*, [length]); + padding: --value(--spacing-space-*, [length]); + } + + [data-scope="tooltip"][data-part="arrow"] { + --arrow-size: calc(--value(--spacing-space-*, [length]) * 0.25); + } +} diff --git a/e2e/assets/corex/components/tree-view.css b/e2e/assets/corex/components/tree-view.css index 5f958695..498cbcaf 100644 --- a/e2e/assets/corex/components/tree-view.css +++ b/e2e/assets/corex/components/tree-view.css @@ -1,6 +1,9 @@ @import "../main.css"; @layer components { + .tree-view[data-loading] [data-scope="tree-view"][data-part="root"] { + @apply ui-loading; + } .tree-view { width: 100%; @@ -97,6 +100,10 @@ opacity: 0.65; } + .tree-view [data-scope="tree-view"][data-part="root"][data-loading] { + @apply ui-loading; + } + .tree-view [data-scope="tree-view"][data-part="root"][data-loading] [data-scope="tree-view"][data-part="branch-text"], .tree-view [data-scope="tree-view"][data-part="root"][data-loading] [data-scope="tree-view"][data-part="branch-indicator"], .tree-view [data-scope="tree-view"][data-part="root"][data-loading] [data-scope="tree-view"][data-part="item-text"] { diff --git a/e2e/assets/corex/components/typo.css b/e2e/assets/corex/components/typo.css index 96065aa3..b935fea7 100644 --- a/e2e/assets/corex/components/typo.css +++ b/e2e/assets/corex/components/typo.css @@ -271,4 +271,130 @@ color: var(--color-ink); border-radius: var(--radius-md); } + + .markdown ul, + .markdown ol { + margin-block: var(--spacing-space); + padding-inline-start: 1.5em; + } + + .markdown li { + margin-block: var(--spacing-space-sm); + } + + .markdown li > ul, + .markdown li > ol { + margin-block: var(--spacing-space-sm); + } + + .markdown table { + width: 100%; + border-collapse: collapse; + margin-block: var(--spacing-space-lg); + font-size: var(--text-sm); + line-height: var(--text-sm--line-height); + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + overflow: hidden; + } + + .markdown thead { + background: var(--color-layer); + color: var(--color-ink); + } + + .markdown th, + .markdown td { + padding: var(--spacing-space-sm) var(--spacing-space); + border-bottom: 1px solid var(--color-border); + text-align: start; + vertical-align: top; + } + + .markdown tbody tr:last-child td { + border-bottom: none; + } + + .markdown img { + max-width: 100%; + height: auto; + display: block; + border-radius: var(--radius-md); + border: 1px solid var(--color-border); + margin-block: var(--spacing-space); + } + + .markdown .footnotes { + margin-block-start: var(--spacing-space-xl); + padding-block-start: var(--spacing-space-lg); + border-top: 1px solid var(--color-border); + font-size: var(--text-sm); + line-height: var(--text-sm--line-height); + color: var(--color-ink-muted); + } + + .markdown .footnotes ol { + padding-inline-start: 1.25em; + } + + .markdown .footnote-ref a { + color: var(--color-link); + text-decoration: none; + } + + .markdown .markdown-alert { + margin-block: var(--spacing-space-lg); + padding: var(--spacing-space); + border-radius: var(--radius-md); + border: 1px solid var(--color-border); + background: var(--color-layer); + width: fit-content; + max-width: 100%; + box-sizing: border-box; + } + + .markdown .markdown-alert-title { + font-weight: var(--font-weight-semibold); + margin-block: 0 var(--spacing-space-sm); + } + + .markdown .markdown-alert-note { + border-inline-start: 4px solid var(--color-info); + } + + .markdown .markdown-alert-note .markdown-alert-title { + color: var(--color-info); + } + + .markdown .markdown-alert-tip { + border-inline-start: 4px solid var(--color-success); + } + + .markdown .markdown-alert-tip .markdown-alert-title { + color: var(--color-success); + } + + .markdown .markdown-alert-important { + border-inline-start: 4px solid var(--color-accent); + } + + .markdown .markdown-alert-important .markdown-alert-title { + color: var(--color-accent); + } + + .markdown .markdown-alert-warning { + border-inline-start: 4px solid var(--color-alert); + } + + .markdown .markdown-alert-warning .markdown-alert-title { + color: var(--color-alert); + } + + .markdown .markdown-alert-caution { + border-inline-start: 4px solid var(--color-border); + } + + .markdown .markdown-alert-caution .markdown-alert-title { + color: var(--color-ink-muted); + } } \ No newline at end of file diff --git a/e2e/assets/corex/tokens.css b/e2e/assets/corex/tokens.css index 9fc764ee..cd2d9f5f 100644 --- a/e2e/assets/corex/tokens.css +++ b/e2e/assets/corex/tokens.css @@ -5,3 +5,8 @@ @import "./tokens/semantic/text.css"; @import "./tokens/semantic/font.css"; @import "./tokens/semantic/effect.css"; + +@theme inline { + --text-md: var(--text-base); + --text-md--line-height: var(--text-base--line-height); +} diff --git a/e2e/assets/corex/utilities.css b/e2e/assets/corex/utilities.css index bb96d76a..69275cb3 100644 --- a/e2e/assets/corex/utilities.css +++ b/e2e/assets/corex/utilities.css @@ -148,6 +148,7 @@ &[data-disabled], &[disabled] { background-color: --value(--color-*-muted, [color]); + color: var(--color-ink-muted); cursor: not-allowed; } } @@ -488,6 +489,7 @@ &[data-disabled], &[disabled] { background-color: --value(--color-*-muted, [color]); + color: var(--color-ink-muted); cursor: not-allowed; } } diff --git a/e2e/lib/e2e/application.ex b/e2e/lib/e2e/application.ex index 2411e4a0..be0c13cf 100644 --- a/e2e/lib/e2e/application.ex +++ b/e2e/lib/e2e/application.ex @@ -7,8 +7,6 @@ defmodule E2e.Application do @impl true def start(_type, _args) do - :ok = Corex.MCP.Server.init_tools() - children = [ E2eWeb.Telemetry, E2e.Repo, diff --git a/e2e/lib/e2e_web/captures/floating_panel.ex b/e2e/lib/e2e_web/captures/floating_panel.ex index 02529d39..cb4bf65c 100644 --- a/e2e/lib/e2e_web/captures/floating_panel.ex +++ b/e2e/lib/e2e_web/captures/floating_panel.ex @@ -8,8 +8,12 @@ defmodule CorexWeb.FloatingPanel do capture variants: [ basic: %{ class: "floating-panel", - open_trigger: [%{inner_block: "Close panel"}], - closed_trigger: [%{inner_block: "Open panel"}], + trigger: [ + %{ + inner_block: + ~s(Open panelClose panel) + } + ], minimize_trigger: [ %{inner_block: ~s(<.heroicon name="hero-arrow-down-left" class="icon" />)} ], diff --git a/e2e/lib/e2e_web/components/app/aside.ex b/e2e/lib/e2e_web/components/app/aside.ex index e45f777d..2c171065 100644 --- a/e2e/lib/e2e_web/components/app/aside.ex +++ b/e2e/lib/e2e_web/components/app/aside.ex @@ -22,8 +22,8 @@ defmodule E2eWeb.App.Aside do <.tooltip id={@tip_id} trigger_tag={:span} - placement="top" - class="tooltip tooltip--sm" + positioning={%Corex.Positioning{placement: "top"}} + class="tooltip tooltip--size-sm" close_on_click={false} > <:trigger> diff --git a/e2e/lib/e2e_web/components/app/header.ex b/e2e/lib/e2e_web/components/app/header.ex index 08d87191..b28dee97 100644 --- a/e2e/lib/e2e_web/components/app/header.ex +++ b/e2e/lib/e2e_web/components/app/header.ex @@ -73,13 +73,15 @@ defmodule E2eWeb.App.Header do id="doc-menu-dialog" class="tree-view tree-view--accent max-w-3xs w-full" redirect - value={[]} + value={documentation_menu_selected_ids(@path)} items={documentation_menu_items()} > - <:label>{gettext("Documentation")} + <:label class="sr-only">{gettext("Corex Links")} <:item :let={item}> {item.label} - <.heroicon name="hero-arrow-top-right-on-square" class="icon shrink-0" /> + <%= if item_new_tab?(item) do %> + <.heroicon name="hero-arrow-top-right-on-square" class="icon shrink-0" /> + <% end %> <.aside_nav_tree_views @@ -127,9 +129,17 @@ defmodule E2eWeb.App.Header do <.navigate to={~p"/accordion/anatomy"} class="ui-link ui-link--md font-medium text-ink hover:text-link no-underline" + aria-current={header_nav_components_aria_current(@path)} > {gettext("Components")} + <.navigate + to="/templates" + class="ui-link ui-link--md font-medium text-ink hover:text-link no-underline" + aria-current={header_nav_templates_aria_current(@path)} + > + {gettext("Templates")} + <.navigate to="https://hexdocs.pm/corex" class="ui-link ui-link--md font-medium text-ink hover:text-link no-underline" @@ -193,7 +203,52 @@ defmodule E2eWeb.App.Header do to: "https://hexdocs.pm/corex/mcp.html", redirect: :href, new_tab: true + }, + %{ + id: "doc-templates", + label: gettext("Templates"), + to: "/templates", + redirect: :href, + new_tab: false } ]) end + + defp item_new_tab?(%{new_tab: true}), do: true + defp item_new_tab?(_), do: false + + defp documentation_menu_selected_ids("/templates"), do: ["doc-templates"] + defp documentation_menu_selected_ids(_), do: [] + + defp header_nav_templates_aria_current("/templates"), do: "page" + defp header_nav_templates_aria_current(_), do: nil + + defp header_nav_components_aria_current(raw_path) do + path = normalize_header_path(raw_path) + + cond do + path == "" or path == "/templates" -> nil + String.starts_with?(path, "/admins") -> nil + not doc_navigation_path?(path) -> nil + path == "/accordion/anatomy" -> "page" + true -> "location" + end + end + + defp normalize_header_path(p) when p in [nil, ""], do: "" + + defp normalize_header_path(p) when is_binary(p) do + p + |> String.trim() + |> String.trim_trailing("/") + |> then(fn s -> if s == "/", do: "", else: s end) + end + + defp doc_navigation_path?(path) when is_binary(path) and path != "" do + Enum.any?(E2eWeb.Helpers.flat_navigation_list(), fn %{to: to} -> + E2eWeb.Path.strip_after_locale(to) == path + end) + end + + defp doc_navigation_path?(_), do: false end diff --git a/e2e/lib/e2e_web/components/helpers.ex b/e2e/lib/e2e_web/components/helpers.ex index 66daa279..f4a15d37 100644 --- a/e2e/lib/e2e_web/components/helpers.ex +++ b/e2e/lib/e2e_web/components/helpers.ex @@ -463,7 +463,8 @@ defmodule E2eWeb.Helpers do playground_to: ~p"/number-input/playground", api_to: ~p"/number-input/api", events_to: ~p"/number-input/events", - pattern: false, + pattern: true, + patterns_to: ~p"/number-input/patterns", style_to: ~p"/number-input/style", forms: [ doc_form_menu_item("Controller Form", ~p"/number-input/form"), @@ -599,9 +600,11 @@ defmodule E2eWeb.Helpers do id: "tooltip", style: true, playground: false, + pattern: true, anatomy_to: ~p"/tooltip/anatomy", api_to: ~p"/tooltip/api", events_to: ~p"/tooltip/events", + patterns_to: ~p"/tooltip/patterns", style_to: ~p"/tooltip/style" }, %{ diff --git a/e2e/lib/e2e_web/components/layouts.ex b/e2e/lib/e2e_web/components/layouts.ex index 613fd40b..bc0cabf7 100644 --- a/e2e/lib/e2e_web/components/layouts.ex +++ b/e2e/lib/e2e_web/components/layouts.ex @@ -40,7 +40,7 @@ defmodule E2eWeb.Layouts do <.header path={@path} theme={@theme} mode={@mode} />
<.aside path={@path} /> -
+
<.pagination path={@path} />
@@ -89,7 +89,7 @@ defmodule E2eWeb.Layouts do ~H""" <.header path={@path} theme={@theme} mode={@mode} />
-
+
{render_slot(@inner_block)}
diff --git a/e2e/lib/e2e_web/components/layouts/captures.html.heex b/e2e/lib/e2e_web/components/layouts/captures.html.heex index 0515e6e6..155d672b 100644 --- a/e2e/lib/e2e_web/components/layouts/captures.html.heex +++ b/e2e/lib/e2e_web/components/layouts/captures.html.heex @@ -94,6 +94,7 @@ + <.navigate to="#main-content" class="link link--skip">{gettext("Skip to content")} <.toast_group id="layout-toast" class="toast" phx-update="ignore" flash={@flash}> <:loading> <.heroicon name="hero-arrow-path" class="icon" /> @@ -122,7 +123,7 @@
-
+
{@inner_content} diff --git a/e2e/lib/e2e_web/components/layouts/root.html.heex b/e2e/lib/e2e_web/components/layouts/root.html.heex index 58c65f11..92ffa3d0 100644 --- a/e2e/lib/e2e_web/components/layouts/root.html.heex +++ b/e2e/lib/e2e_web/components/layouts/root.html.heex @@ -94,6 +94,7 @@ + <.navigate to="#main-content" class="link link--skip">{gettext("Skip to content")} {@inner_content} diff --git a/e2e/lib/e2e_web/controllers/page_controller.ex b/e2e/lib/e2e_web/controllers/page_controller.ex index aefd9760..71ae584e 100644 --- a/e2e/lib/e2e_web/controllers/page_controller.ex +++ b/e2e/lib/e2e_web/controllers/page_controller.ex @@ -1800,4 +1800,20 @@ defmodule E2eWeb.PageController do def tooltip_styling_page(conn, _params) do render(conn, :tooltip_styling_page) end + + def templates_page(conn, _params) do + soonex_carousel_items = [ + %{url: "/images/templates/soonex/preview-hero.png", alt: gettext("Soonex hero")}, + %{ + url: "/images/templates/soonex/preview-highlights.png", + alt: gettext("Soonex highlights") + }, + %{url: "/images/templates/soonex/preview-waitlist.png", alt: gettext("Soonex waitlist")} + ] + + conn + |> assign(:page_title, gettext("Templates · Corex")) + |> assign(:soonex_carousel_items, soonex_carousel_items) + |> render(:templates_page) + end end diff --git a/e2e/lib/e2e_web/controllers/page_html/floating_panel_page.html.heex b/e2e/lib/e2e_web/controllers/page_html/floating_panel_page.html.heex index 54f9f8a4..69ca52d4 100644 --- a/e2e/lib/e2e_web/controllers/page_html/floating_panel_page.html.heex +++ b/e2e/lib/e2e_web/controllers/page_html/floating_panel_page.html.heex @@ -17,5 +17,29 @@ > <:preview> + + <.demo_section + id="floating-panel-anatomy-no-trigger" + title="No visible trigger" + code={E2eWeb.Demos.FloatingPanelDemo.anatomy_no_trigger_code()} + > + <:preview> + + + <.demo_section + id="floating-panel-anatomy-positioning" + title="Positioning" + code={E2eWeb.Demos.FloatingPanelDemo.anatomy_positioning_code()} + > + <:preview> + + + <.demo_section + id="floating-panel-anatomy-size" + title="Size" + code={E2eWeb.Demos.FloatingPanelDemo.anatomy_size_code()} + > + <:preview> + diff --git a/e2e/lib/e2e_web/controllers/page_html/layout_heading_styling_page.html.heex b/e2e/lib/e2e_web/controllers/page_html/layout_heading_styling_page.html.heex index 3c341d69..7f7abcc3 100644 --- a/e2e/lib/e2e_web/controllers/page_html/layout_heading_styling_page.html.heex +++ b/e2e/lib/e2e_web/controllers/page_html/layout_heading_styling_page.html.heex @@ -7,25 +7,25 @@ <.demo_page id="layout-heading-styling-page" title="Layout Heading Style" - subtitle="Use the `layout-heading` wrapper class for spacing, then utilities for width and alignment." + subtitle="Semantic colors on title and subtitle, width utilities on the root; use typography utilities on the heading slots for scale." > <.demo_section - id="layout-heading-style-wrapper" - title="Wrapper" - code={E2eWeb.Demos.LayoutHeadingDemo.styling_wrapper_code()} + id="layout-heading-styling-color" + title="Color" + code={E2eWeb.Demos.LayoutHeadingDemo.styling_color_code()} > <:preview> - + <.demo_section - id="layout-heading-style-constrained" - title="Width utilities" - code={E2eWeb.Demos.LayoutHeadingDemo.styling_constrained_code()} + id="layout-heading-styling-max-width" + title="Max Width" + code={E2eWeb.Demos.LayoutHeadingDemo.styling_max_width_code()} > <:preview> - + diff --git a/e2e/lib/e2e_web/controllers/page_html/templates_page.html.heex b/e2e/lib/e2e_web/controllers/page_html/templates_page.html.heex new file mode 100644 index 00000000..5afe9855 --- /dev/null +++ b/e2e/lib/e2e_web/controllers/page_html/templates_page.html.heex @@ -0,0 +1,87 @@ + +
+
+ <.layout_heading class="layout-heading max-w-3xl w-full"> + <:title> + {gettext("Templates")} + + <:subtitle> + {gettext("Starter kits and reference layouts")} + + + +

+ {gettext( + "Clone a layout, apply Corex themes, and ship—starting with a static coming-soon site." + )} +

+ +
+
+
+ <.heroicon name="hero-bolt" class="icon" /> + {gettext("Starter kit")} +
+ +
+ <.carousel + id="soonex-templates-carousel" + aria_label={gettext("Soonex preview slides")} + loop + items={@soonex_carousel_items} + class="carousel carousel--accent w-full max-w-none" + > + <:prev_trigger> + <.heroicon name="hero-arrow-left" /> + + <:next_trigger> + <.heroicon name="hero-arrow-right" /> + + +
+ +

+ {gettext("Soonex")} +

+

+ {gettext( + "Coming-soon landing with themes, Markdown posts, and static export ready for GitHub Pages." + )} +

+ +
+ <.navigate + to="https://corex-ui.github.io/soonex/" + class="button button--brand rounded-full" + external + > + {gettext("Live demo")} + <.heroicon name="hero-arrow-top-right-on-square" class="icon" /> + + <.navigate + to="https://github.com/corex-ui/soonex" + class="button button--ghost rounded-full" + external + > + {gettext("GitHub")} + <.heroicon name="hero-arrow-top-right-on-square" class="icon" /> + +
+
+ +
+
+ <.heroicon name="hero-sparkles" class="icon" /> + {gettext("Coming soon")} +
+

+ {gettext("More templates")} +

+

+ {gettext("Phoenix app starters and more reference layouts are on the way.")} +

+
+
+
+
+
diff --git a/e2e/lib/e2e_web/controllers/page_html/timer_page.html.heex b/e2e/lib/e2e_web/controllers/page_html/timer_page.html.heex index b39a876b..30b26100 100644 --- a/e2e/lib/e2e_web/controllers/page_html/timer_page.html.heex +++ b/e2e/lib/e2e_web/controllers/page_html/timer_page.html.heex @@ -7,9 +7,25 @@ <.demo_page id="timer-anatomy-page" title="Timer · Anatomy" - subtitle="Count up or down with controls." + subtitle="Display-only, controls, countdown, and tick interval." heading_class="layout-heading" > + <.demo_section + id="timer-anatomy-minimal" + title="Minimal" + code={E2eWeb.Demos.TimerDemo.anatomy_minimal_code()} + > + <:preview> + + + <.demo_section + id="timer-anatomy-with-triggers" + title="With triggers" + code={E2eWeb.Demos.TimerDemo.anatomy_with_triggers_code()} + > + <:preview> + + <.demo_section id="timer-anatomy-countdown" title="Countdown" @@ -19,19 +35,59 @@ <.demo_section - id="timer-anatomy-interval" - title="Interval and auto start" - code={E2eWeb.Demos.TimerDemo.anatomy_timing_code()} + id="timer-anatomy-collapse" + title="Leading-zero collapse" + code={E2eWeb.Demos.TimerDemo.anatomy_collapse_code()} > - <:preview> + <:preview> + + + <.demo_section + id="timer-layout-segments" + title="Fixed segments" + code={E2eWeb.Demos.TimerDemo.layout_segments_code()} + > + <:preview> + + + <.demo_section + id="timer-layout-separator" + title="Separator" + code={E2eWeb.Demos.TimerDemo.layout_separator_code()} + > + <:preview> + + + <.demo_section + id="timer-layout-translation" + title="Region label" + code={E2eWeb.Demos.TimerDemo.layout_translation_code()} + > + <:preview> + + + <.demo_section + id="timer-layout-unit-labels" + title="Unit labels" + code={E2eWeb.Demos.TimerDemo.layout_unit_labels_code()} + > + <:preview> <.demo_section - id="timer-anatomy-direction" - title="Direction and orientation" - code={E2eWeb.Demos.TimerDemo.anatomy_direction_code()} + id="timer-layout-separator-labels" + title="Separator and unit labels" + code={E2eWeb.Demos.TimerDemo.layout_separator_and_labels_code()} > - <:preview> + <:preview> + + + <.demo_section + id="timer-anatomy-interval" + title="Interval and auto start" + code={E2eWeb.Demos.TimerDemo.anatomy_timing_code()} + > + <:preview> diff --git a/e2e/lib/e2e_web/controllers/page_html/timer_styling_page.html.heex b/e2e/lib/e2e_web/controllers/page_html/timer_styling_page.html.heex index bcd827cd..c726c84c 100644 --- a/e2e/lib/e2e_web/controllers/page_html/timer_styling_page.html.heex +++ b/e2e/lib/e2e_web/controllers/page_html/timer_styling_page.html.heex @@ -7,7 +7,7 @@ <.demo_page id="timer-styling-page" title="Timer · Style" - subtitle="Semantic colors, typography, radius, max-width utilities, and root width scales on the timer root." + subtitle="Semantic colors, typography, radius, and composed modifier mixes on the timer root (add max-width with utilities such as max-w-md)." > <.demo_section id="timer-styling-color" @@ -49,16 +49,6 @@ - <.demo_section - id="timer-styling-max-width" - title="Max width" - code={E2eWeb.Demos.TimerDemo.styling_max_width_code()} - > - <:preview> - - - - <.demo_section id="timer-styling-mix-modifiers" title="Mix modifiers" diff --git a/e2e/lib/e2e_web/controllers/page_html/tooltip_page.html.heex b/e2e/lib/e2e_web/controllers/page_html/tooltip_page.html.heex index 65d83be7..057af7cb 100644 --- a/e2e/lib/e2e_web/controllers/page_html/tooltip_page.html.heex +++ b/e2e/lib/e2e_web/controllers/page_html/tooltip_page.html.heex @@ -7,14 +7,22 @@ <.demo_page id="tooltip-anatomy-page" title="Tooltip · Anatomy" - subtitle="Placement and variants." + subtitle="Minimal usage, arrow, placement, and Corex.Positioning." > <.demo_section - id="tooltip-anatomy-default-open" - title="Default open" - code={E2eWeb.Demos.TooltipDemo.anatomy_default_open_code()} + id="tooltip-anatomy-minimal" + title="Minimal" + code={E2eWeb.Demos.TooltipDemo.anatomy_minimal_code()} > - <:preview> + <:preview> + + + <.demo_section + id="tooltip-anatomy-with-arrow" + title="With arrow" + code={E2eWeb.Demos.TooltipDemo.anatomy_with_arrow_code()} + > + <:preview> <.demo_section @@ -26,11 +34,11 @@ <.demo_section - id="tooltip-anatomy-variants" - title="Variants" - code={E2eWeb.Demos.TooltipDemo.anatomy_variants_code()} + id="tooltip-anatomy-positioning" + title="Positioning" + code={E2eWeb.Demos.TooltipDemo.anatomy_positioning_code()} > - <:preview> + <:preview> diff --git a/e2e/lib/e2e_web/controllers/page_html/tooltip_styling_page.html.heex b/e2e/lib/e2e_web/controllers/page_html/tooltip_styling_page.html.heex index f2034577..56671b0c 100644 --- a/e2e/lib/e2e_web/controllers/page_html/tooltip_styling_page.html.heex +++ b/e2e/lib/e2e_web/controllers/page_html/tooltip_styling_page.html.heex @@ -6,26 +6,36 @@ > <.demo_page id="tooltip-styling-page" - title="Tooltip · Style" - subtitle="Size and color modifiers on the root." + title="Tooltip · Styling" + subtitle="Semantic colors, size, and typography via modifier classes on the tooltip root." > <.demo_section - id="tooltip-styling-sizes" - title="Sizes" - code={E2eWeb.Demos.TooltipDemo.styling_sizes_code()} + id="tooltip-styling-color" + title="Color" + code={E2eWeb.Demos.TooltipDemo.styling_color_code()} > <:preview> - + <.demo_section - id="tooltip-styling-colors" - title="Colors" - code={E2eWeb.Demos.TooltipDemo.styling_colors_code()} + id="tooltip-styling-size" + title="Size" + code={E2eWeb.Demos.TooltipDemo.styling_size_code()} > <:preview> - + + + + + <.demo_section + id="tooltip-styling-text" + title="Text" + code={E2eWeb.Demos.TooltipDemo.styling_text_code()} + > + <:preview> + diff --git a/e2e/lib/e2e_web/demos/date_picker_demo.ex b/e2e/lib/e2e_web/demos/date_picker_demo.ex index 6cf31a52..12e3eb9a 100644 --- a/e2e/lib/e2e_web/demos/date_picker_demo.ex +++ b/e2e/lib/e2e_web/demos/date_picker_demo.ex @@ -3,7 +3,7 @@ defmodule E2eWeb.Demos.DatePickerDemo do def minimal_code do ~S""" - <.date_picker id="date-picker-anatomy-minimal" trigger_aria_label="Select date" input_aria_label="Select date" class="date-picker"> + <.date_picker id="date-picker-anatomy-minimal" translation={%Corex.DatePicker.Translation{open_calendar: "Select date", close_calendar: "Select date", input: "Select date"}} class="date-picker"> <:label>Select a date <:trigger><.heroicon name="hero-calendar" class="icon" /> <:prev_trigger><.heroicon name="hero-chevron-left" class="icon" /> @@ -16,8 +16,13 @@ defmodule E2eWeb.Demos.DatePickerDemo do ~H""" <.date_picker id="date-picker-anatomy-minimal" - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={ + %Corex.DatePicker.Translation{ + open_calendar: "Select date", + close_calendar: "Select date", + input: "Select date" + } + } class="date-picker" > <:label>Select a date @@ -34,8 +39,7 @@ defmodule E2eWeb.Demos.DatePickerDemo do id="date-picker-anatomy-range" selection_mode="range" value="2024-06-01,2024-06-15" - trigger_aria_label="Select date range" - input_aria_label="Date range" + translation={%Corex.DatePicker.Translation{open_calendar: "Select date range", close_calendar: "Select date range", input: "Date range"}} class="date-picker" > <:label>Range @@ -52,8 +56,13 @@ defmodule E2eWeb.Demos.DatePickerDemo do id="date-picker-anatomy-range" selection_mode="range" value="2024-06-01,2024-06-15" - trigger_aria_label="Select date range" - input_aria_label="Date range" + translation={ + %Corex.DatePicker.Translation{ + open_calendar: "Select date range", + close_calendar: "Select date range", + input: "Date range" + } + } class="date-picker" > <:label>Range @@ -71,8 +80,7 @@ defmodule E2eWeb.Demos.DatePickerDemo do selection_mode="multiple" max_selected_dates={3} value="2024-06-03,2024-06-10,2024-06-17" - trigger_aria_label="Select dates" - input_aria_label="Dates" + translation={%Corex.DatePicker.Translation{open_calendar: "Select dates", close_calendar: "Select dates", input: "Dates"}} class="date-picker" > <:label>Multiple @@ -90,8 +98,13 @@ defmodule E2eWeb.Demos.DatePickerDemo do selection_mode="multiple" max_selected_dates={3} value="2024-06-03,2024-06-10,2024-06-17" - trigger_aria_label="Select dates" - input_aria_label="Dates" + translation={ + %Corex.DatePicker.Translation{ + open_calendar: "Select dates", + close_calendar: "Select dates", + input: "Dates" + } + } class="date-picker" > <:label>Multiple @@ -113,8 +126,7 @@ defmodule E2eWeb.Demos.DatePickerDemo do <.date_picker id="date-picker-api-sv-client" - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={%Corex.DatePicker.Translation{open_calendar: "Select date", close_calendar: "Select date", input: "Select date"}} class="date-picker" > <:label>Select a date @@ -144,8 +156,13 @@ defmodule E2eWeb.Demos.DatePickerDemo do <.date_picker id="date-picker-api-sv-client" - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={ + %Corex.DatePicker.Translation{ + open_calendar: "Select date", + close_calendar: "Select date", + input: "Select date" + } + } class="date-picker" > <:label>Select a date @@ -224,8 +241,13 @@ defmodule E2eWeb.Demos.DatePickerDemo do
<.date_picker id="date-picker-api-sv-js" - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={ + %Corex.DatePicker.Translation{ + open_calendar: "Select date", + close_calendar: "Select date", + input: "Select date" + } + } class="date-picker" > <:label>Select a date @@ -242,7 +264,7 @@ defmodule E2eWeb.Demos.DatePickerDemo do Set to 2024-01-15 - <.date_picker id="date-picker-api-sv-server" trigger_aria_label="Select date" input_aria_label="Select date" class="date-picker"> + <.date_picker id="date-picker-api-sv-server" translation={%Corex.DatePicker.Translation{open_calendar: "Select date", close_calendar: "Select date", input: "Select date"}} class="date-picker"> <:label>Select a date <:trigger><.heroicon name="hero-calendar" class="icon" /> <:prev_trigger><.heroicon name="hero-chevron-left" class="icon" /> @@ -279,8 +301,13 @@ defmodule E2eWeb.Demos.DatePickerDemo do
<.date_picker id="date-picker-api-sv-server" - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={ + %Corex.DatePicker.Translation{ + open_calendar: "Select date", + close_calendar: "Select date", + input: "Select date" + } + } class="date-picker" > <:label>Select a date @@ -295,8 +322,7 @@ defmodule E2eWeb.Demos.DatePickerDemo do ~S""" <.date_picker id="date-picker-e-sv" - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={%Corex.DatePicker.Translation{open_calendar: "Select date", close_calendar: "Select date", input: "Select date"}} class="date-picker" on_value_change="dpe_on_value_server" > @@ -321,8 +347,7 @@ defmodule E2eWeb.Demos.DatePickerDemo do ~S""" <.date_picker id="date-picker-e-so" - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={%Corex.DatePicker.Translation{open_calendar: "Select date", close_calendar: "Select date", input: "Select date"}} class="date-picker" on_open_change="dpe_on_open_server" > @@ -347,8 +372,7 @@ defmodule E2eWeb.Demos.DatePickerDemo do ~S""" <.date_picker id="date-picker-e-cv" - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={%Corex.DatePicker.Translation{open_calendar: "Select date", close_calendar: "Select date", input: "Select date"}} class="date-picker" on_value_change_client="date-picker-value-changed" > @@ -377,8 +401,7 @@ defmodule E2eWeb.Demos.DatePickerDemo do ~S""" <.date_picker id="date-picker-e-co" - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={%Corex.DatePicker.Translation{open_calendar: "Select date", close_calendar: "Select date", input: "Select date"}} class="date-picker" on_open_change_client="date-picker-open-changed" > @@ -411,8 +434,7 @@ defmodule E2eWeb.Demos.DatePickerDemo do controlled value={@selected && [@selected]} on_value_change="pattern_date_changed" - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={%Corex.DatePicker.Translation{open_calendar: "Select date", close_calendar: "Select date", input: "Select date"}} > <:label>Date <:trigger><.heroicon name="hero-calendar" class="icon" /> @@ -465,8 +487,7 @@ defmodule E2eWeb.Demos.DatePickerDemo do > <.date_picker field={f[:date]} - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={%Corex.DatePicker.Translation{open_calendar: "Select date", close_calendar: "Select date", input: "Select date"}} class="date-picker" id="date-picker-form-changeset-input" > @@ -521,8 +542,7 @@ defmodule E2eWeb.Demos.DatePickerDemo do > <.date_picker field={f[:date]} - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={%Corex.DatePicker.Translation{open_calendar: "Select date", close_calendar: "Select date", input: "Select date"}} class="date-picker" id="date-picker-form-validate-input" > @@ -565,8 +585,7 @@ defmodule E2eWeb.Demos.DatePickerDemo do <.date_picker name="date_picker_form[date]" id="date-picker-form-native" - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={%Corex.DatePicker.Translation{open_calendar: "Select date", close_calendar: "Select date", input: "Select date"}} class="date-picker" > <:label>Date @@ -599,8 +618,7 @@ defmodule E2eWeb.Demos.DatePickerDemo do controlled value={@date_display} on_value_change="date_changed_basic" - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={%Corex.DatePicker.Translation{open_calendar: "Select date", close_calendar: "Select date", input: "Select date"}} class="date-picker" > <:label>Date @@ -641,8 +659,7 @@ defmodule E2eWeb.Demos.DatePickerDemo do controlled value={@date_display} on_value_change="date_changed_validate" - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={%Corex.DatePicker.Translation{open_calendar: "Select date", close_calendar: "Select date", input: "Select date"}} class="date-picker" > <:label>Date (required) @@ -691,8 +708,13 @@ defmodule E2eWeb.Demos.DatePickerDemo do <.date_picker field={f[:date]} id="date-picker-form-changeset-input" - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={ + %Corex.DatePicker.Translation{ + open_calendar: "Select date", + close_calendar: "Select date", + input: "Select date" + } + } class="date-picker" > <:label>Date @@ -736,8 +758,13 @@ defmodule E2eWeb.Demos.DatePickerDemo do <.date_picker field={f[:date]} id="date-picker-form-validate-input" - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={ + %Corex.DatePicker.Translation{ + open_calendar: "Select date", + close_calendar: "Select date", + input: "Select date" + } + } class="date-picker" > <:label>Date (required) @@ -780,8 +807,13 @@ defmodule E2eWeb.Demos.DatePickerDemo do <.date_picker name="date_picker_form[date]" id="date-picker-form-native" - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={ + %Corex.DatePicker.Translation{ + open_calendar: "Select date", + close_calendar: "Select date", + input: "Select date" + } + } class="date-picker" > <:label>Date @@ -824,8 +856,13 @@ defmodule E2eWeb.Demos.DatePickerDemo do controlled value={@date_display} on_value_change="date_changed_basic" - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={ + %Corex.DatePicker.Translation{ + open_calendar: "Select date", + close_calendar: "Select date", + input: "Select date" + } + } class="date-picker" > <:label>Date @@ -872,8 +909,13 @@ defmodule E2eWeb.Demos.DatePickerDemo do controlled value={@date_display} on_value_change="date_changed_validate" - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={ + %Corex.DatePicker.Translation{ + open_calendar: "Select date", + close_calendar: "Select date", + input: "Select date" + } + } class="date-picker" > <:label>Date (required) diff --git a/e2e/lib/e2e_web/demos/floating_panel_demo.ex b/e2e/lib/e2e_web/demos/floating_panel_demo.ex index 97e051b6..c6e56662 100644 --- a/e2e/lib/e2e_web/demos/floating_panel_demo.ex +++ b/e2e/lib/e2e_web/demos/floating_panel_demo.ex @@ -4,8 +4,11 @@ defmodule E2eWeb.Demos.FloatingPanelDemo do def anatomy_basic_code do ~S""" <.floating_panel id="floating-panel-anatomy" class="floating-panel"> - <:open_trigger>Close panel - <:closed_trigger>Open panel + <:trigger> + Open panel + Close panel + + <:title>Panel <:minimize_trigger> <.heroicon name="hero-arrow-down-left" class="icon" /> @@ -103,8 +106,11 @@ defmodule E2eWeb.Demos.FloatingPanelDemo do <.floating_panel id="floating-panel-api-js" class="floating-panel"> - <:open_trigger>Close panel - <:closed_trigger>Open panel + <:trigger> + Open panel + Close panel + + <:title>Panel <:minimize_trigger> <.heroicon name="hero-arrow-down-left" class="icon" /> @@ -211,11 +217,236 @@ defmodule E2eWeb.Demos.FloatingPanelDemo do """ end + def anatomy_no_trigger_code do + ~S""" +
+
+ + +
+ <.floating_panel id="floating-panel-anatomy-no-trigger" class="floating-panel"> + <:trigger class="sr-only"> + Open auxiliary panel + Close auxiliary panel + + <:title>Auxiliary panel + <:close_trigger> + <.heroicon name="hero-x-mark" class="icon" /> + + <:content> +

Opened from external buttons; the Zag trigger stays in the tab order but is visually hidden.

+ + +
+ + """ + end + + def anatomy_no_trigger_example(assigns) do + boot = + Phoenix.HTML.raw(""" + + """) + + assigns = assign(assigns, :floating_panel_anatomy_no_trigger_boot, boot) + + ~H""" +
+
+ + +
+ <.floating_panel id="floating-panel-anatomy-no-trigger" class="floating-panel"> + <:trigger class="sr-only"> + Open auxiliary panel + Close auxiliary panel + + <:title>Auxiliary panel + <:close_trigger> + <.heroicon name="hero-x-mark" class="icon" /> + + <:content> +

+ Opened from external buttons; the Zag trigger stays in the tab order but is visually hidden. +

+ + +
+ {@floating_panel_anatomy_no_trigger_boot} + """ + end + + def anatomy_positioning_code do + ~S""" +
+ <.floating_panel + id="floating-panel-anatomy-positioning" + class="floating-panel" + positioning={%Corex.Positioning{placement: "top-start", gutter: 20, flip: true}} + > + <:trigger class="button button--ghost button--sm"> + Open anchored panel + Close anchored panel + + <:title>Placement + <:close_trigger> + <.heroicon name="hero-x-mark" class="icon" /> + + <:content> +

+ Uses positioning={%Corex.Positioning{}} so the hook passes + getAnchorPosition with placement and gutter (flip keeps it in view). +

+ + +
+ """ + end + + def anatomy_positioning_example(assigns) do + ~H""" +
+ <.floating_panel + id="floating-panel-anatomy-positioning" + class="floating-panel" + positioning={%Corex.Positioning{placement: "top-start", gutter: 20, flip: true}} + > + <:trigger class="button button--ghost button--sm"> + Open anchored panel + Close anchored panel + + <:title>Placement + <:close_trigger> + <.heroicon name="hero-x-mark" class="icon" /> + + <:content> +

+ Uses {"positioning={%Corex.Positioning{}}"} + so the hook passes getAnchorPosition + with placement and gutter (flip keeps it in view). +

+ + +
+ """ + end + + def anatomy_size_code do + ~S""" + <.floating_panel + id="floating-panel-anatomy-size" + class="floating-panel" + size={%{width: 380, height: 220}} + min_size={%{width: 280, height: 160}} + > + <:trigger class="button button--ghost button--sm"> + Open sized panel + Close sized panel + + <:title>Default size + <:close_trigger> + <.heroicon name="hero-x-mark" class="icon" /> + + <:content> +

+ size={%{width: 380, height: 220}} maps to Zag + defaultSize; optional min_size constrains resize. +

+ + + """ + end + + def anatomy_size_example(assigns) do + ~H""" + <.floating_panel + id="floating-panel-anatomy-size" + class="floating-panel" + size={%{width: 380, height: 220}} + min_size={%{width: 280, height: 160}} + > + <:trigger class="button button--ghost button--sm"> + Open sized panel + Close sized panel + + <:title>Default size + <:close_trigger> + <.heroicon name="hero-x-mark" class="icon" /> + + <:content> +

+ {"size={%{width: 380, height: 220}}"} + maps to Zag defaultSize; optional + min_size + constrains resize. +

+ + + """ + end + def anatomy_basic_example(assigns) do ~H""" <.floating_panel id="floating-panel-anatomy" class="floating-panel"> - <:open_trigger>Close panel - <:closed_trigger>Open panel + <:trigger> + Open panel + Close panel + + <:title>Panel <:minimize_trigger> <.heroicon name="hero-arrow-down-left" class="icon" /> @@ -246,8 +477,11 @@ defmodule E2eWeb.Demos.FloatingPanelDemo do on_open_change="floating_panel_open_changed" on_open_change_client="floating-panel-open-changed" > - <:open_trigger>Close panel - <:closed_trigger>Open panel + <:trigger> + Open panel + Close panel + + <:title>Panel <:minimize_trigger> <.heroicon name="hero-arrow-down-left" class="icon" /> @@ -273,8 +507,11 @@ defmodule E2eWeb.Demos.FloatingPanelDemo do def floating_panel_api_fixture(assigns) do ~H""" <.floating_panel id={@id} class="floating-panel"> - <:open_trigger>Close panel - <:closed_trigger>Open panel + <:trigger> + Open panel + Close panel + + <:title>Panel <:minimize_trigger> <.heroicon name="hero-arrow-down-left" class="icon" /> @@ -297,8 +534,11 @@ defmodule E2eWeb.Demos.FloatingPanelDemo do defp fp_api_panel_snippet(id, inner_text) do """ <.floating_panel id="#{id}" class="floating-panel"> - <:open_trigger>Close panel - <:closed_trigger>Open panel + <:trigger> + Open panel + Close panel + + <:title>Panel <:minimize_trigger> <.heroicon name="hero-arrow-down-left" class="icon" /> diff --git a/e2e/lib/e2e_web/demos/layout_heading_demo.ex b/e2e/lib/e2e_web/demos/layout_heading_demo.ex index 4e447ea0..271d3be2 100644 --- a/e2e/lib/e2e_web/demos/layout_heading_demo.ex +++ b/e2e/lib/e2e_web/demos/layout_heading_demo.ex @@ -3,7 +3,7 @@ defmodule E2eWeb.Demos.LayoutHeadingDemo do def title_only_code do ~S""" - <.layout_heading> + <.layout_heading class="layout-heading"> <:title>Page Title """ @@ -11,7 +11,7 @@ defmodule E2eWeb.Demos.LayoutHeadingDemo do def title_only_example(assigns) do ~H""" - <.layout_heading> + <.layout_heading class="layout-heading"> <:title>Page Title """ @@ -19,7 +19,7 @@ defmodule E2eWeb.Demos.LayoutHeadingDemo do def title_and_subtitle_code do ~S""" - <.layout_heading> + <.layout_heading class="layout-heading"> <:title>Page Title <:subtitle>Controller View @@ -28,7 +28,7 @@ defmodule E2eWeb.Demos.LayoutHeadingDemo do def title_and_subtitle_example(assigns) do ~H""" - <.layout_heading> + <.layout_heading class="layout-heading"> <:title>Page Title <:subtitle>Controller View @@ -37,7 +37,7 @@ defmodule E2eWeb.Demos.LayoutHeadingDemo do def with_actions_code do ~S""" - <.layout_heading> + <.layout_heading class="layout-heading"> <:title>Page Title <:subtitle>Controller View <:actions> @@ -51,7 +51,7 @@ defmodule E2eWeb.Demos.LayoutHeadingDemo do def with_actions_example(assigns) do ~H""" - <.layout_heading> + <.layout_heading class="layout-heading"> <:title>Page Title <:subtitle>Controller View <:actions> @@ -63,38 +63,186 @@ defmodule E2eWeb.Demos.LayoutHeadingDemo do """ end - def styling_wrapper_code do + def styling_color_example(assigns) do + ~H""" +
+ <.layout_heading class="layout-heading"> + <:title>Default + <:subtitle>Neutral ink on title and subtitle. + <:actions> + <.action type="button" class="button button--sm">Save + <.action type="button" class="button button--sm button--ghost">Cancel + + + <.layout_heading class="layout-heading layout-heading--accent"> + <:title>Accent + <:subtitle>Semantic accent on title and subtitle. + <:actions> + <.action type="button" class="button button--sm">Save + <.action type="button" class="button button--sm button--ghost">Cancel + + + <.layout_heading class="layout-heading layout-heading--brand"> + <:title>Brand + <:subtitle>Semantic brand on title and subtitle. + <:actions> + <.action type="button" class="button button--sm">Save + <.action type="button" class="button button--sm button--ghost">Cancel + + + <.layout_heading class="layout-heading layout-heading--alert"> + <:title>Alert + <:subtitle>Semantic alert on title and subtitle. + <:actions> + <.action type="button" class="button button--sm">Save + <.action type="button" class="button button--sm button--ghost">Cancel + + + <.layout_heading class="layout-heading layout-heading--success"> + <:title>Success + <:subtitle>Semantic success on title and subtitle. + <:actions> + <.action type="button" class="button button--sm">Save + <.action type="button" class="button button--sm button--ghost">Cancel + + + <.layout_heading class="layout-heading layout-heading--info"> + <:title>Info + <:subtitle>Semantic info on title and subtitle. + <:actions> + <.action type="button" class="button button--sm">Save + <.action type="button" class="button button--sm button--ghost">Cancel + + +
+ """ + end + + def styling_color_code do ~S""" <.layout_heading class="layout-heading"> - <:title>Full width - <:subtitle>Default spacing from the layout-heading stylesheet. + <:title>Default + <:subtitle>Neutral ink on title and subtitle. + <:actions> + <.action type="button" class="button button--sm">Save + <.action type="button" class="button button--sm button--ghost">Cancel + + + <.layout_heading class="layout-heading layout-heading--accent"> + <:title>Accent + <:subtitle>Semantic accent on title and subtitle. + <:actions> + <.action type="button" class="button button--sm">Save + <.action type="button" class="button button--sm button--ghost">Cancel + + + <.layout_heading class="layout-heading layout-heading--brand"> + <:title>Brand + <:subtitle>Semantic brand on title and subtitle. + <:actions> + <.action type="button" class="button button--sm">Save + <.action type="button" class="button button--sm button--ghost">Cancel + + + <.layout_heading class="layout-heading layout-heading--alert"> + <:title>Alert + <:subtitle>Semantic alert on title and subtitle. + <:actions> + <.action type="button" class="button button--sm">Save + <.action type="button" class="button button--sm button--ghost">Cancel + + + <.layout_heading class="layout-heading layout-heading--success"> + <:title>Success + <:subtitle>Semantic success on title and subtitle. + <:actions> + <.action type="button" class="button button--sm">Save + <.action type="button" class="button button--sm button--ghost">Cancel + + + <.layout_heading class="layout-heading layout-heading--info"> + <:title>Info + <:subtitle>Semantic info on title and subtitle. + <:actions> + <.action type="button" class="button button--sm">Save + <.action type="button" class="button button--sm button--ghost">Cancel + """ end - def styling_wrapper_example(assigns) do + def styling_max_width_example(assigns) do ~H""" - <.layout_heading class="layout-heading"> - <:title>Full width - <:subtitle>Default spacing from the layout-heading stylesheet. - +
+ <.layout_heading class="layout-heading max-w-xs"> + <:title>Narrow + <:subtitle>max-w-xs + <:actions> + <.action type="button" class="button button--sm">Save + <.action type="button" class="button button--sm button--ghost">Cancel + + + <.layout_heading class="layout-heading max-w-md"> + <:title>Medium block + <:subtitle>max-w-md + <:actions> + <.action type="button" class="button button--sm">Save + <.action type="button" class="button button--sm button--ghost">Cancel + + + <.layout_heading class="layout-heading max-w-xl"> + <:title>Wide block + <:subtitle>max-w-xl + <:actions> + <.action type="button" class="button button--sm">Save + <.action type="button" class="button button--sm button--ghost">Cancel + + + <.layout_heading class="layout-heading max-w-2xl"> + <:title>Extra wide + <:subtitle>max-w-2xl + <:actions> + <.action type="button" class="button button--sm">Save + <.action type="button" class="button button--sm button--ghost">Cancel + + +
""" end - def styling_constrained_code do + def styling_max_width_code do ~S""" - <.layout_heading class="layout-heading max-w-3xl mx-auto"> - <:title>Constrained width - <:subtitle>Combine utility classes on the same element as the component root. + <.layout_heading class="layout-heading max-w-xs"> + <:title>Narrow + <:subtitle>max-w-xs + <:actions> + <.action type="button" class="button button--sm">Save + <.action type="button" class="button button--sm button--ghost">Cancel + - """ - end - - def styling_constrained_example(assigns) do - ~H""" - <.layout_heading class="layout-heading max-w-3xl mx-auto"> - <:title>Constrained width - <:subtitle>Combine utility classes on the same element as the component root. + <.layout_heading class="layout-heading max-w-md"> + <:title>Medium block + <:subtitle>max-w-md + <:actions> + <.action type="button" class="button button--sm">Save + <.action type="button" class="button button--sm button--ghost">Cancel + + + <.layout_heading class="layout-heading max-w-xl"> + <:title>Wide block + <:subtitle>max-w-xl + <:actions> + <.action type="button" class="button button--sm">Save + <.action type="button" class="button button--sm button--ghost">Cancel + + + <.layout_heading class="layout-heading max-w-2xl"> + <:title>Extra wide + <:subtitle>max-w-2xl + <:actions> + <.action type="button" class="button button--sm">Save + <.action type="button" class="button button--sm button--ghost">Cancel + """ end diff --git a/e2e/lib/e2e_web/demos/listbox_demo.ex b/e2e/lib/e2e_web/demos/listbox_demo.ex index 7d1d40b9..e9974b0f 100644 --- a/e2e/lib/e2e_web/demos/listbox_demo.ex +++ b/e2e/lib/e2e_web/demos/listbox_demo.ex @@ -1,8 +1,6 @@ defmodule E2eWeb.Demos.ListboxDemo do use E2eWeb, :html - @pattern_snippets Path.join(__DIR__, "listbox_pattern_snippets") - def items_minimal do Corex.List.new([ %{label: "France", id: "fra"}, @@ -42,7 +40,16 @@ defmodule E2eWeb.Demos.ListboxDemo do def anatomy_minimal_code do ~S""" - <.listbox id="listbox-anatomy-minimal" class="listbox" items={items_minimal()}> + <.listbox id="listbox-anatomy-minimal" class="listbox" items={ + Corex.List.new([ + %{label: "France", id: "fra"}, + %{label: "Belgium", id: "bel"}, + %{label: "Germany", id: "deu"}, + %{label: "Netherlands", id: "nld"}, + %{label: "Switzerland", id: "che"}, + %{label: "Austria", id: "aut"} + ]) + }> <:label>Choose a country """ @@ -60,7 +67,16 @@ defmodule E2eWeb.Demos.ListboxDemo do def anatomy_with_indicator_code do ~S""" - <.listbox id="listbox-anatomy-indicator" class="listbox" items={items_minimal()}> + <.listbox id="listbox-anatomy-indicator" class="listbox" items={ + Corex.List.new([ + %{label: "France", id: "fra"}, + %{label: "Belgium", id: "bel"}, + %{label: "Germany", id: "deu"}, + %{label: "Netherlands", id: "nld"}, + %{label: "Switzerland", id: "che"}, + %{label: "Austria", id: "aut"} + ]) + }> <:label>Choose a country <:item_indicator><.heroicon name="hero-check" /> @@ -80,7 +96,16 @@ defmodule E2eWeb.Demos.ListboxDemo do def anatomy_grouped_code do ~S""" - <.listbox id="listbox-anatomy-grouped" class="listbox" items={items_grouped()}> + <.listbox id="listbox-anatomy-grouped" class="listbox" items={ + Corex.List.new([ + %{label: "France", id: "fra", group: "Europe"}, + %{label: "Belgium", id: "bel", group: "Europe"}, + %{label: "Germany", id: "deu", group: "Europe"}, + %{label: "Japan", id: "jpn", group: "Asia"}, + %{label: "China", id: "chn", group: "Asia"}, + %{label: "USA", id: "usa", group: "North America"} + ]) + }> <:label>Choose a country <:item_indicator><.heroicon name="hero-check" /> @@ -100,7 +125,16 @@ defmodule E2eWeb.Demos.ListboxDemo do def anatomy_extended_code do ~S""" - <.listbox id="listbox-anatomy-extended" class="listbox" items={items_extended()}> + <.listbox id="listbox-anatomy-extended" class="listbox" items={ + Corex.List.new([ + %{label: "France", id: "fra"}, + %{label: "Belgium", id: "bel"}, + %{label: "Germany", id: "deu"}, + %{label: "Netherlands", id: "nld"}, + %{label: "Switzerland", id: "che"}, + %{label: "Austria", id: "aut"} + ]) + }> <:label>Country of residence <:item :let={%{item: entry}}> @@ -132,7 +166,16 @@ defmodule E2eWeb.Demos.ListboxDemo do id="listbox-anatomy-extended-grouped" class="listbox" aria_label="Extended grouped countries" - items={items_extended_grouped()} + items={ + Corex.List.new([ + %{label: "France", id: "fra", group: "Europe"}, + %{label: "Belgium", id: "bel", group: "Europe"}, + %{label: "Germany", id: "deu", group: "Europe"}, + %{label: "Japan", id: "jpn", group: "Asia"}, + %{label: "China", id: "chn", group: "Asia"}, + %{label: "South Korea", id: "kor", group: "Asia"} + ]) + } > <:item :let={%{item: entry}}> @@ -182,7 +225,111 @@ defmodule E2eWeb.Demos.ListboxDemo do """ end - def patterns_stream_my_app, do: read_pattern_snippet("patterns_stream_my_app.txt") + def patterns_stream_elixir do + ~S''' + defmodule MyAppWeb.ListboxStreamDemoLive do + use MyAppWeb, :live_view + + @impl true + def mount(_params, _session, socket) do + initial = [ + %{id: "1", label: "Apple"}, + %{id: "2", label: "Banana"}, + %{id: "3", label: "Cherry"} + ] + + socket = + socket + |> stream_configure(:items, dom_id: &("listbox:stream-listbox:item:" <> to_string(&1.id))) + |> stream(:items, initial) + |> assign(:items_list, initial) + |> assign(:next_id, 4) + + if connected?(socket) do + Process.send_after(self(), :add_timestamp_item, 3_000) + end + + {:ok, socket} + end + + @impl true + def handle_info(:add_timestamp_item, socket) do + Process.send_after(self(), :add_timestamp_item, 10_000) + id = to_string(socket.assigns.next_id) + + time = + DateTime.utc_now() + |> DateTime.truncate(:second) + |> DateTime.to_time() + |> Time.to_string() + + item = %{id: id, label: "Item " <> id <> " @ " <> time} + + {:noreply, + socket + |> stream_insert(:items, item) + |> assign(:items_list, socket.assigns.items_list ++ [item]) + |> assign(:next_id, socket.assigns.next_id + 1)} + end + + @impl true + def handle_event("add_item", _params, socket) do + id = to_string(socket.assigns.next_id) + item = %{id: id, label: "Item " <> id} + + {:noreply, + socket + |> stream_insert(:items, item) + |> assign(:items_list, socket.assigns.items_list ++ [item]) + |> assign(:next_id, socket.assigns.next_id + 1)} + end + + @impl true + def handle_event("reset", _params, socket) do + initial = [ + %{id: "1", label: "Apple"}, + %{id: "2", label: "Banana"}, + %{id: "3", label: "Cherry"} + ] + + {:noreply, + socket + |> stream(:items, initial, reset: true) + |> assign(:items_list, initial) + |> assign(:next_id, 4)} + end + + @impl true + def render(assigns) do + ~H""" + +
+
+ <.action phx-click="add_item" class="button button--sm button--accent"> + <.heroicon name="hero-plus" /> Add item + + <.action phx-click="reset" class="button button--sm button--alert"> + Reset + +
+ <.listbox id="stream-listbox" class="listbox" items={Corex.List.new(@items_list)}> + <:label>Choose an item + <:empty>No items + <:item_indicator><.heroicon name="hero-check" /> + +
+
+ """ + end + end + ''' + end def patterns_stream_grouped_demo_heex do ~S""" @@ -219,8 +366,103 @@ defmodule E2eWeb.Demos.ListboxDemo do """ end - def patterns_stream_grouped_my_app, - do: read_pattern_snippet("patterns_stream_grouped_my_app.txt") + def patterns_stream_grouped_elixir do + ~S''' + defmodule MyAppWeb.ListboxStreamGroupedDemoLive do + use MyAppWeb, :live_view + + @impl true + def mount(_params, _session, socket) do + initial = [ + %{id: "g1", label: "France", group: "Europe"}, + %{id: "g2", label: "Japan", group: "Asia"}, + %{id: "g3", label: "Germany", group: "Europe"} + ] + + socket = + socket + |> stream_configure(:grouped_items, dom_id: &("listbox:stream-grouped-listbox:item:" <> to_string(&1.id))) + |> stream(:grouped_items, initial) + |> assign(:grouped_items_list, initial) + |> assign(:next_grouped_id, 4) + + {:ok, socket} + end + + @impl true + def handle_event("add_to_group", %{"group" => group}, socket) do + n = socket.assigns.next_grouped_id + id = "g" <> Integer.to_string(n) + item = %{id: id, label: "Item " <> Integer.to_string(n), group: group} + + {:noreply, + socket + |> stream_insert(:grouped_items, item) + |> assign(:grouped_items_list, socket.assigns.grouped_items_list ++ [item]) + |> assign(:next_grouped_id, n + 1)} + end + + @impl true + def handle_event("reset_grouped", _params, socket) do + initial = [ + %{id: "g1", label: "France", group: "Europe"}, + %{id: "g2", label: "Japan", group: "Asia"}, + %{id: "g3", label: "Germany", group: "Europe"} + ] + + {:noreply, + socket + |> stream(:grouped_items, initial, reset: true) + |> assign(:grouped_items_list, initial) + |> assign(:next_grouped_id, 4)} + end + + @impl true + def render(assigns) do + ~H""" + +
+
+ <.action + phx-click="add_to_group" + phx-value-group="Europe" + class="button button--sm button--accent" + > + <.heroicon name="hero-plus" /> Add to Europe + + <.action + phx-click="add_to_group" + phx-value-group="Asia" + class="button button--sm button--accent" + > + <.heroicon name="hero-plus" /> Add to Asia + + <.action phx-click="reset_grouped" class="button button--sm button--alert"> + Reset + +
+ <.listbox + id="stream-grouped-listbox" + class="listbox" + items={Corex.List.new(@grouped_items_list)} + > + <:label>Choose a country + <:empty>No items + <:item_indicator><.heroicon name="hero-check" /> + +
+
+ """ + end + end + ''' + end def patterns_controlled_heex do ~S""" @@ -252,18 +494,78 @@ defmodule E2eWeb.Demos.ListboxDemo do end def patterns_controlled_elixir do - patterns_controlled_my_app() + ~S''' + defmodule MyAppWeb.ListboxControlledDemoLive do + use MyAppWeb, :live_view + + @impl true + def mount(_params, _session, socket) do + {:ok, assign(socket, :listbox_controlled_value, ["fra", "bel"])} + end + + @impl true + def handle_event("listbox_patterns_controlled_value", %{"value" => value}, socket) + when is_list(value) do + {:noreply, assign(socket, :listbox_controlled_value, value)} + end + + @impl true + def render(assigns) do + ~H""" + +
+ <.listbox + id="listbox-patterns-controlled-field" + class="listbox" + items={ + Corex.List.new([ + %{label: "France", id: "fra"}, + %{label: "Belgium", id: "bel"}, + %{label: "Germany", id: "deu"}, + %{label: "Netherlands", id: "nld"}, + %{label: "Switzerland", id: "che"}, + %{label: "Austria", id: "aut"} + ]) + } + selection_mode="multiple" + controlled + value={@listbox_controlled_value} + on_value_change="listbox_patterns_controlled_value" + > + <:label>Choose countries + <:item_indicator><.heroicon name="hero-check" /> + +

+ value: {inspect(@listbox_controlled_value)} +

+
+
+ """ + end + end + ''' end - def patterns_controlled_my_app, do: read_pattern_snippet("patterns_controlled_my_app.txt") - - defp read_pattern_snippet(name), do: File.read!(Path.join(@pattern_snippets, name)) - def api_set_value_client_binding_code do ~S""" <.action phx-click={Corex.Listbox.set_value("listbox-api-sv-client", ["bel"])}>Belgium <.action phx-click={Corex.Listbox.set_value("listbox-api-sv-client", [])}>Clear - <.listbox id="listbox-api-sv-client" class="listbox" items={items_minimal()}> + <.listbox id="listbox-api-sv-client" class="listbox" items={ + Corex.List.new([ + %{label: "France", id: "fra"}, + %{label: "Belgium", id: "bel"}, + %{label: "Germany", id: "deu"}, + %{label: "Netherlands", id: "nld"}, + %{label: "Switzerland", id: "che"}, + %{label: "Austria", id: "aut"} + ]) + }> <:label>Choose a country <:item_indicator><.heroicon name="hero-check" /> @@ -273,7 +575,16 @@ defmodule E2eWeb.Demos.ListboxDemo do def api_set_value_server_heex do ~S""" <.action phx-click="listbox_api_set_value">Belgium - <.listbox id="listbox-api-sv-server" class="listbox" items={items_minimal()}> + <.listbox id="listbox-api-sv-server" class="listbox" items={ + Corex.List.new([ + %{label: "France", id: "fra"}, + %{label: "Belgium", id: "bel"}, + %{label: "Germany", id: "deu"}, + %{label: "Netherlands", id: "nld"}, + %{label: "Switzerland", id: "che"}, + %{label: "Austria", id: "aut"} + ]) + }> <:label>Choose a country <:item_indicator><.heroicon name="hero-check" /> @@ -303,7 +614,16 @@ defmodule E2eWeb.Demos.ListboxDemo do def api_value_client_binding_code do ~S""" <.action phx-click={Corex.Listbox.value("listbox-api-val-client")}>Read selection - <.listbox id="listbox-api-val-client" class="listbox" items={items_minimal()}> + <.listbox id="listbox-api-val-client" class="listbox" items={ + Corex.List.new([ + %{label: "France", id: "fra"}, + %{label: "Belgium", id: "bel"}, + %{label: "Germany", id: "deu"}, + %{label: "Netherlands", id: "nld"}, + %{label: "Switzerland", id: "che"}, + %{label: "Austria", id: "aut"} + ]) + }> <:label>Choose a country <:item_indicator><.heroicon name="hero-check" /> @@ -313,7 +633,16 @@ defmodule E2eWeb.Demos.ListboxDemo do def api_value_server_heex do ~S""" <.action phx-click="listbox_api_value_server">Read selection - <.listbox id="listbox-api-val-server" class="listbox" items={items_minimal()}> + <.listbox id="listbox-api-val-server" class="listbox" items={ + Corex.List.new([ + %{label: "France", id: "fra"}, + %{label: "Belgium", id: "bel"}, + %{label: "Germany", id: "deu"}, + %{label: "Netherlands", id: "nld"}, + %{label: "Switzerland", id: "che"}, + %{label: "Austria", id: "aut"} + ]) + }> <:label>Choose a country <:item_indicator><.heroicon name="hero-check" /> @@ -326,8 +655,7 @@ defmodule E2eWeb.Demos.ListboxDemo do {:noreply, Corex.Listbox.value(socket, "listbox-api-val-server")} end - def handle_event("listbox_value_response", %{"id" => id, "value" => value}, socket) do - # e.g. Corex.Toast.push_toast(...) + def handle_event("listbox_value_response", _params, socket) do {:noreply, socket} end """ @@ -338,7 +666,16 @@ defmodule E2eWeb.Demos.ListboxDemo do <.listbox id="listbox-events-server" class="listbox" - items={items_minimal()} + items={ + Corex.List.new([ + %{label: "France", id: "fra"}, + %{label: "Belgium", id: "bel"}, + %{label: "Germany", id: "deu"}, + %{label: "Netherlands", id: "nld"}, + %{label: "Switzerland", id: "che"}, + %{label: "Austria", id: "aut"} + ]) + } on_value_change="listbox_value_changed" > <:label>Choose a country @@ -361,7 +698,16 @@ defmodule E2eWeb.Demos.ListboxDemo do <.listbox id="listbox-events-client" class="listbox" - items={items_minimal()} + items={ + Corex.List.new([ + %{label: "France", id: "fra"}, + %{label: "Belgium", id: "bel"}, + %{label: "Germany", id: "deu"}, + %{label: "Netherlands", id: "nld"}, + %{label: "Switzerland", id: "che"}, + %{label: "Austria", id: "aut"} + ]) + } on_value_change_client="listbox-value-changed" > <:label>Choose a country diff --git a/e2e/lib/e2e_web/demos/listbox_pattern_snippets/patterns_controlled_my_app.txt b/e2e/lib/e2e_web/demos/listbox_pattern_snippets/patterns_controlled_my_app.txt deleted file mode 100644 index 5654bc06..00000000 --- a/e2e/lib/e2e_web/demos/listbox_pattern_snippets/patterns_controlled_my_app.txt +++ /dev/null @@ -1,54 +0,0 @@ -defmodule MyAppWeb.ListboxControlledDemoLive do - use MyAppWeb, :live_view - - @impl true - def mount(_params, _session, socket) do - {:ok, assign(socket, :listbox_controlled_value, ["fra", "bel"])} - end - - @impl true - def handle_event("listbox_patterns_controlled_value", %{"value" => value}, socket) - when is_list(value) do - {:noreply, assign(socket, :listbox_controlled_value, value)} - end - - @impl true - def render(assigns) do - ~H""" - -
- <.listbox - id="listbox-patterns-controlled-field" - class="listbox" - items={ - Corex.List.new([ - %{label: "France", id: "fra"}, - %{label: "Belgium", id: "bel"}, - %{label: "Germany", id: "deu"}, - %{label: "Netherlands", id: "nld"}, - %{label: "Switzerland", id: "che"}, - %{label: "Austria", id: "aut"} - ]) - } - selection_mode="multiple" - controlled - value={@listbox_controlled_value} - on_value_change="listbox_patterns_controlled_value" - > - <:label>Choose countries - <:item_indicator><.heroicon name="hero-check" /> - -

- value: {inspect(@listbox_controlled_value)} -

-
-
- """ - end -end diff --git a/e2e/lib/e2e_web/demos/listbox_pattern_snippets/patterns_stream_grouped_my_app.txt b/e2e/lib/e2e_web/demos/listbox_pattern_snippets/patterns_stream_grouped_my_app.txt deleted file mode 100644 index 925eb3b8..00000000 --- a/e2e/lib/e2e_web/demos/listbox_pattern_snippets/patterns_stream_grouped_my_app.txt +++ /dev/null @@ -1,93 +0,0 @@ -defmodule MyAppWeb.ListboxStreamGroupedDemoLive do - use MyAppWeb, :live_view - - @impl true - def mount(_params, _session, socket) do - initial = [ - %{id: "g1", label: "France", group: "Europe"}, - %{id: "g2", label: "Japan", group: "Asia"}, - %{id: "g3", label: "Germany", group: "Europe"} - ] - - socket = - socket - |> stream_configure(:grouped_items, dom_id: &("listbox:stream-grouped-listbox:item:" <> to_string(&1.id))) - |> stream(:grouped_items, initial) - |> assign(:grouped_items_list, initial) - |> assign(:next_grouped_id, 4) - - {:ok, socket} - end - - @impl true - def handle_event("add_to_group", %{"group" => group}, socket) do - n = socket.assigns.next_grouped_id - id = "g" <> Integer.to_string(n) - item = %{id: id, label: "Item " <> Integer.to_string(n), group: group} - - {:noreply, - socket - |> stream_insert(:grouped_items, item) - |> assign(:grouped_items_list, socket.assigns.grouped_items_list ++ [item]) - |> assign(:next_grouped_id, n + 1)} - end - - @impl true - def handle_event("reset_grouped", _params, socket) do - initial = [ - %{id: "g1", label: "France", group: "Europe"}, - %{id: "g2", label: "Japan", group: "Asia"}, - %{id: "g3", label: "Germany", group: "Europe"} - ] - - {:noreply, - socket - |> stream(:grouped_items, initial, reset: true) - |> assign(:grouped_items_list, initial) - |> assign(:next_grouped_id, 4)} - end - - @impl true - def render(assigns) do - ~H""" - -
-
- <.action - phx-click="add_to_group" - phx-value-group="Europe" - class="button button--sm button--accent" - > - <.heroicon name="hero-plus" /> Add to Europe - - <.action - phx-click="add_to_group" - phx-value-group="Asia" - class="button button--sm button--accent" - > - <.heroicon name="hero-plus" /> Add to Asia - - <.action phx-click="reset_grouped" class="button button--sm button--alert"> - Reset - -
- <.listbox - id="stream-grouped-listbox" - class="listbox" - items={Corex.List.new(@grouped_items_list)} - > - <:label>Choose a country - <:empty>No items - <:item_indicator><.heroicon name="hero-check" /> - -
-
- """ - end -end diff --git a/e2e/lib/e2e_web/demos/listbox_pattern_snippets/patterns_stream_my_app.txt b/e2e/lib/e2e_web/demos/listbox_pattern_snippets/patterns_stream_my_app.txt deleted file mode 100644 index fd32316e..00000000 --- a/e2e/lib/e2e_web/demos/listbox_pattern_snippets/patterns_stream_my_app.txt +++ /dev/null @@ -1,101 +0,0 @@ -defmodule MyAppWeb.ListboxStreamDemoLive do - use MyAppWeb, :live_view - - @impl true - def mount(_params, _session, socket) do - initial = [ - %{id: "1", label: "Apple"}, - %{id: "2", label: "Banana"}, - %{id: "3", label: "Cherry"} - ] - - socket = - socket - |> stream_configure(:items, dom_id: &("listbox:stream-listbox:item:" <> to_string(&1.id))) - |> stream(:items, initial) - |> assign(:items_list, initial) - |> assign(:next_id, 4) - - if connected?(socket) do - Process.send_after(self(), :add_timestamp_item, 3_000) - end - - {:ok, socket} - end - - @impl true - def handle_info(:add_timestamp_item, socket) do - Process.send_after(self(), :add_timestamp_item, 10_000) - id = to_string(socket.assigns.next_id) - - time = - DateTime.utc_now() - |> DateTime.truncate(:second) - |> DateTime.to_time() - |> Time.to_string() - - item = %{id: id, label: "Item " <> id <> " @ " <> time} - - {:noreply, - socket - |> stream_insert(:items, item) - |> assign(:items_list, socket.assigns.items_list ++ [item]) - |> assign(:next_id, socket.assigns.next_id + 1)} - end - - @impl true - def handle_event("add_item", _params, socket) do - id = to_string(socket.assigns.next_id) - item = %{id: id, label: "Item " <> id} - - {:noreply, - socket - |> stream_insert(:items, item) - |> assign(:items_list, socket.assigns.items_list ++ [item]) - |> assign(:next_id, socket.assigns.next_id + 1)} - end - - @impl true - def handle_event("reset", _params, socket) do - initial = [ - %{id: "1", label: "Apple"}, - %{id: "2", label: "Banana"}, - %{id: "3", label: "Cherry"} - ] - - {:noreply, - socket - |> stream(:items, initial, reset: true) - |> assign(:items_list, initial) - |> assign(:next_id, 4)} - end - - @impl true - def render(assigns) do - ~H""" - -
-
- <.action phx-click="add_item" class="button button--sm button--accent"> - <.heroicon name="hero-plus" /> Add item - - <.action phx-click="reset" class="button button--sm button--alert"> - Reset - -
- <.listbox id="stream-listbox" class="listbox" items={Corex.List.new(@items_list)}> - <:label>Choose an item - <:empty>No items - <:item_indicator><.heroicon name="hero-check" /> - -
-
- """ - end -end diff --git a/e2e/lib/e2e_web/demos/timer_demo.ex b/e2e/lib/e2e_web/demos/timer_demo.ex index 68c97686..2e029f5f 100644 --- a/e2e/lib/e2e_web/demos/timer_demo.ex +++ b/e2e/lib/e2e_web/demos/timer_demo.ex @@ -1,72 +1,86 @@ defmodule E2eWeb.Demos.TimerDemo do use E2eWeb, :html - def anatomy_countdown_code do + def anatomy_minimal_code do ~S""" - <.timer id="timer-anatomy" countdown start_ms={60_000} target_ms={0} class="timer"> - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> - + <.timer id="timer-anatomy-minimal" start_ms={60_000} class="timer" /> """ end - def anatomy_countdown_example(assigns) do + def anatomy_minimal_example(assigns) do + _ = assigns + ~H""" - <.timer id="timer-anatomy" countdown start_ms={60_000} target_ms={0} class="timer"> - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> - + <.timer id="timer-anatomy-minimal" start_ms={60_000} class="timer" /> """ end - def anatomy_timing_code do + def anatomy_with_triggers_code do ~S""" - <.timer id="timer-anatomy-interval" start_ms={60_000} interval={2000} auto_start class="timer"> - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <.timer id="timer-anatomy-controls" start_ms={60_000} class="timer"> + <:start_trigger><.heroicon name="hero-play"/> + <:pause_trigger><.heroicon name="hero-pause"/> + <:resume_trigger><.heroicon name="hero-play"/> + <:reset_trigger><.heroicon name="hero-arrow-path"/> """ end - def anatomy_timing_example(assigns) do + def anatomy_with_triggers_example(assigns) do _ = assigns ~H""" - <.timer id="timer-anatomy-interval" start_ms={60_000} interval={2000} auto_start class="timer"> - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <.timer id="timer-anatomy-controls" start_ms={60_000} class="timer"> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> """ end - def anatomy_direction_code do + def anatomy_countdown_code do ~S""" - <.timer id="timer-anatomy-dir" start_ms={0} target_ms={30_000} dir="rtl" class="timer"> - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <.timer id="timer-anatomy-countdown" countdown start_ms={60_000} target_ms={0} class="timer"> + <:start_trigger><.heroicon name="hero-play"/> + <:pause_trigger><.heroicon name="hero-pause"/> + <:resume_trigger><.heroicon name="hero-play"/> + <:reset_trigger><.heroicon name="hero-arrow-path"/> """ end - def anatomy_direction_example(assigns) do + def anatomy_countdown_example(assigns) do + ~H""" + <.timer id="timer-anatomy-countdown" countdown start_ms={60_000} target_ms={0} class="timer"> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> + + """ + end + + def anatomy_timing_code do + ~S""" + <.timer id="timer-anatomy-interval" start_ms={60_000} interval={2000} auto_start class="timer"> + <:start_trigger><.heroicon name="hero-play"/> + <:pause_trigger><.heroicon name="hero-pause"/> + <:resume_trigger><.heroicon name="hero-play"/> + <:reset_trigger><.heroicon name="hero-arrow-path"/> + + """ + end + + def anatomy_timing_example(assigns) do _ = assigns ~H""" - <.timer id="timer-anatomy-dir" start_ms={0} target_ms={30_000} dir="rtl" class="timer"> - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <.timer id="timer-anatomy-interval" start_ms={60_000} interval={2000} auto_start class="timer"> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> """ end @@ -84,10 +98,10 @@ defmodule E2eWeb.Demos.TimerDemo do on_complete="timer_complete" on_complete_client="timer-complete" > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play"/> + <:pause_trigger><.heroicon name="hero-pause"/> + <:resume_trigger><.heroicon name="hero-play"/> + <:reset_trigger><.heroicon name="hero-arrow-path"/> """ end @@ -103,10 +117,10 @@ defmodule E2eWeb.Demos.TimerDemo do on_tick="timer_tick" on_complete="timer_complete" > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play"/> + <:pause_trigger><.heroicon name="hero-pause"/> + <:resume_trigger><.heroicon name="hero-play"/> + <:reset_trigger><.heroicon name="hero-arrow-path"/> """ end @@ -122,10 +136,10 @@ defmodule E2eWeb.Demos.TimerDemo do on_tick_client="timer-tick" on_complete_client="timer-complete" > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play"/> + <:pause_trigger><.heroicon name="hero-pause"/> + <:resume_trigger><.heroicon name="hero-play"/> + <:reset_trigger><.heroicon name="hero-arrow-path"/> """ end @@ -242,10 +256,10 @@ defmodule E2eWeb.Demos.TimerDemo do ~H""" <.timer id="timer-api-tpl-countdown" countdown start_ms={60_000} target_ms={0} class="timer"> - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> """ end @@ -255,10 +269,10 @@ defmodule E2eWeb.Demos.TimerDemo do ~H""" <.timer id="timer-api-tpl-timing" start_ms={60_000} interval={2000} auto_start class="timer"> - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> """ end @@ -268,10 +282,10 @@ defmodule E2eWeb.Demos.TimerDemo do ~H""" <.timer id="timer-api-tpl-direction" start_ms={0} target_ms={30_000} dir="rtl" class="timer"> - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> """ end @@ -293,10 +307,10 @@ defmodule E2eWeb.Demos.TimerDemo do ~S""" <.action phx-click="timer_api_remount" class="button button--sm">Remount <.timer id="timer-api-remount" countdown start_ms={45_000} target_ms={0} class="timer"> - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play"/> + <:pause_trigger><.heroicon name="hero-pause"/> + <:resume_trigger><.heroicon name="hero-play"/> + <:reset_trigger><.heroicon name="hero-arrow-path"/> """ end @@ -332,10 +346,10 @@ defmodule E2eWeb.Demos.TimerDemo do target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> <.timer id="timer-style-md" @@ -344,10 +358,10 @@ defmodule E2eWeb.Demos.TimerDemo do target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> <.timer id="timer-style-lg" @@ -356,10 +370,10 @@ defmodule E2eWeb.Demos.TimerDemo do target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> <.timer id="timer-style-xl" @@ -368,10 +382,10 @@ defmodule E2eWeb.Demos.TimerDemo do target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" />
""" @@ -398,10 +412,10 @@ defmodule E2eWeb.Demos.TimerDemo do target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> <.timer id="timer-style-text-xl" @@ -410,10 +424,10 @@ defmodule E2eWeb.Demos.TimerDemo do target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> <.timer id="timer-style-text-2xl" @@ -422,10 +436,10 @@ defmodule E2eWeb.Demos.TimerDemo do target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> <.timer id="timer-style-text-4xl" @@ -434,10 +448,10 @@ defmodule E2eWeb.Demos.TimerDemo do target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" />
""" @@ -465,10 +479,10 @@ defmodule E2eWeb.Demos.TimerDemo do target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> <.timer id="timer-style-rounded-md" @@ -477,10 +491,10 @@ defmodule E2eWeb.Demos.TimerDemo do target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> <.timer id="timer-style-rounded-lg" @@ -489,10 +503,10 @@ defmodule E2eWeb.Demos.TimerDemo do target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> <.timer id="timer-style-rounded-xl" @@ -501,10 +515,10 @@ defmodule E2eWeb.Demos.TimerDemo do target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> <.timer id="timer-style-rounded-full" @@ -513,129 +527,102 @@ defmodule E2eWeb.Demos.TimerDemo do target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> """ end - def styling_max_width_code do + def styling_mix_modifiers_code do ~S""" - <.timer id="timer-style-max-2xs" class="timer w-full max-w-2xs" start_ms={60_000} target_ms={0} countdown /> - <.timer id="timer-style-max-md" class="timer w-full max-w-md" start_ms={60_000} target_ms={0} countdown /> - <.timer id="timer-style-max-xl" class="timer w-full max-w-xl" start_ms={60_000} target_ms={0} countdown /> - <.timer id="timer-style-max-2xl" class="timer w-full max-w-2xl" start_ms={60_000} target_ms={0} countdown /> + <.timer id="timer-style-mix-1" class="timer timer--sm timer--brand timer--rounded-lg w-full max-w-2xs" start_ms={60_000} target_ms={0} countdown /> + <.timer id="timer-style-mix-2" class="timer timer--lg timer--accent timer--rounded-md timer--text-xl w-full max-w-md" start_ms={60_000} target_ms={0} countdown /> + <.timer id="timer-style-mix-3" class="timer timer--md timer--alert timer--text-lg timer--rounded-none w-full max-w-lg" start_ms={60_000} target_ms={0} countdown /> + <.timer id="timer-style-mix-4" class="timer timer--xl timer--success timer--rounded-full timer--text-2xl w-full max-w-xl" start_ms={60_000} target_ms={0} countdown /> + <.timer id="timer-style-mix-5" class="timer timer--sm timer--info timer--rounded-xl timer--text-sm w-full max-w-sm" start_ms={60_000} target_ms={0} countdown /> + <.timer id="timer-style-mix-6" class="timer timer--md timer--brand timer--rounded-lg timer--text-base w-full max-w-xs mx-auto" start_ms={60_000} target_ms={0} countdown /> """ end - def styling_max_width_example(assigns) do + def styling_mix_modifiers_example(assigns) do _ = assigns ~H"""
<.timer - id="timer-style-max-2xs" - class="timer w-full max-w-2xs" + id="timer-style-mix-1" + class="timer timer--sm timer--brand timer--rounded-lg w-full max-w-2xs" start_ms={60_000} target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> <.timer - id="timer-style-max-md" - class="timer w-full max-w-md" + id="timer-style-mix-2" + class="timer timer--lg timer--accent timer--rounded-md timer--text-xl w-full max-w-md" start_ms={60_000} target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> <.timer - id="timer-style-max-xl" - class="timer w-full max-w-xl" + id="timer-style-mix-3" + class="timer timer--md timer--alert timer--text-lg timer--rounded-none w-full max-w-lg" start_ms={60_000} target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> <.timer - id="timer-style-max-2xl" - class="timer w-full max-w-2xl" + id="timer-style-mix-4" + class="timer timer--xl timer--success timer--rounded-full timer--text-2xl w-full max-w-xl" start_ms={60_000} target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> -
- """ - end - - def styling_mix_modifiers_code do - ~S""" - <.timer id="timer-style-mix-1" class="timer timer--sm timer--brand timer--rounded-lg w-full max-w-2xs" start_ms={60_000} target_ms={0} countdown /> - <.timer id="timer-style-mix-2" class="timer timer--lg timer--accent timer--rounded-md w-full max-w-md" start_ms={60_000} target_ms={0} countdown /> - <.timer id="timer-style-mix-3" class="timer timer--md timer--alert timer--text-lg w-full max-w-lg" start_ms={60_000} target_ms={0} countdown /> - """ - end - - def styling_mix_modifiers_example(assigns) do - _ = assigns - - ~H""" -
<.timer - id="timer-style-mix-1" - class="timer timer--sm timer--brand timer--rounded-lg w-full max-w-2xs" + id="timer-style-mix-5" + class="timer timer--sm timer--info timer--rounded-xl timer--text-sm w-full max-w-sm" start_ms={60_000} target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> <.timer - id="timer-style-mix-2" - class="timer timer--lg timer--accent timer--rounded-md w-full max-w-md" + id="timer-style-mix-6" + class="timer timer--md timer--brand timer--rounded-lg timer--text-base w-full max-w-xs mx-auto" start_ms={60_000} target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> - - <.timer - id="timer-style-mix-3" - class="timer timer--md timer--alert timer--text-lg w-full max-w-lg" - start_ms={60_000} - target_ms={0} - countdown - > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" />
""" @@ -664,10 +651,10 @@ defmodule E2eWeb.Demos.TimerDemo do target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> <.timer id="timer-c-ac" @@ -676,10 +663,10 @@ defmodule E2eWeb.Demos.TimerDemo do target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> <.timer id="timer-c-br" @@ -688,10 +675,10 @@ defmodule E2eWeb.Demos.TimerDemo do target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> <.timer id="timer-c-al" @@ -700,10 +687,10 @@ defmodule E2eWeb.Demos.TimerDemo do target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> <.timer id="timer-c-in" @@ -712,10 +699,10 @@ defmodule E2eWeb.Demos.TimerDemo do target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> <.timer id="timer-c-su" @@ -724,12 +711,188 @@ defmodule E2eWeb.Demos.TimerDemo do target_ms={0} countdown > - <:start_trigger><.heroicon name="hero-play" class="icon" /> - <:pause_trigger><.heroicon name="hero-pause" class="icon" /> - <:resume_trigger><.heroicon name="hero-play" class="icon" /> - <:reset_trigger><.heroicon name="hero-arrow-path" class="icon" /> + <:start_trigger><.heroicon name="hero-play" /> + <:pause_trigger><.heroicon name="hero-pause" /> + <:resume_trigger><.heroicon name="hero-play" /> + <:reset_trigger><.heroicon name="hero-arrow-path" /> """ end + + def anatomy_collapse_code do + ~S""" + <.timer + id="timer-anatomy-collapse" + countdown + start_ms={86_400_000 * 4 + 3_600_000 * 12} + target_ms={0} + class="timer" + /> + """ + end + + def anatomy_collapse_example(assigns) do + _ = assigns + + ~H""" + <.timer + id="timer-anatomy-collapse" + countdown + start_ms={86_400_000 * 4 + 3_600_000 * 12} + target_ms={0} + class="timer" + /> + """ + end + + def layout_segments_code do + ~S""" + <.timer + id="timer-segments-fixed" + countdown + start_ms={86_400_000 * 2 + 3_600_000} + target_ms={0} + class="timer" + segments={[:days, :hours, :minutes, :seconds]} + /> + """ + end + + def layout_segments_example(assigns) do + _ = assigns + + ~H""" + <.timer + id="timer-segments-fixed" + countdown + start_ms={86_400_000 * 2 + 3_600_000} + target_ms={0} + class="timer" + segments={[:days, :hours, :minutes, :seconds]} + /> + """ + end + + def layout_separator_code do + ~S""" + <.timer id="timer-separator-dot" start_ms={60_000} class="timer"> + <:separator> · + + """ + end + + def layout_separator_example(assigns) do + _ = assigns + + ~H""" + <.timer id="timer-separator-dot" start_ms={60_000} class="timer"> + <:separator>· + + """ + end + + def layout_translation_code do + ~S""" + <.timer + id="timer-translation" + countdown + start_ms={60_000} + target_ms={0} + class="timer" + translation={%Corex.Timer.Translation{area_label: "Countdown"}} + /> + """ + end + + def layout_translation_example(assigns) do + _ = assigns + + ~H""" + <.timer + id="timer-translation" + countdown + start_ms={60_000} + target_ms={0} + class="timer" + translation={%Corex.Timer.Translation{area_label: "Countdown"}} + /> + """ + end + + def layout_unit_labels_code do + ~S""" + <.timer + id="timer-unit-labels" + countdown + start_ms={86_400_000 + 3_600_000} + target_ms={0} + class="timer" + > + <:day_label>d + <:hour_label>h + <:minute_label>m + <:second_label>s + + """ + end + + def layout_unit_labels_example(assigns) do + _ = assigns + + ~H""" + <.timer + id="timer-unit-labels" + countdown + start_ms={86_400_000 + 3_600_000} + target_ms={0} + class="timer" + > + <:day_label>d + <:hour_label>h + <:minute_label>m + <:second_label>s + + """ + end + + def layout_separator_and_labels_code do + ~S""" + <.timer + id="timer-layout-separator-labels" + countdown + start_ms={86_400_000 * 2 + 3_600_000} + target_ms={0} + class="timer" + segments={[:days, :hours, :minutes, :seconds]} + > + <:separator>: + <:day_label>Days + <:hour_label>Hours + <:minute_label>Minutes + <:second_label>Seconds + + """ + end + + def layout_separator_and_labels_example(assigns) do + _ = assigns + + ~H""" + <.timer + id="timer-layout-separator-labels" + countdown + start_ms={86_400_000 * 2 + 3_600_000} + target_ms={0} + class="timer" + segments={[:days, :hours, :minutes, :seconds]} + > + <:separator>: + <:day_label>Days + <:hour_label>Hours + <:minute_label>Minutes + <:second_label>Seconds + + """ + end end diff --git a/e2e/lib/e2e_web/demos/tooltip_demo.ex b/e2e/lib/e2e_web/demos/tooltip_demo.ex index 6be43481..d48d170a 100644 --- a/e2e/lib/e2e_web/demos/tooltip_demo.ex +++ b/e2e/lib/e2e_web/demos/tooltip_demo.ex @@ -1,19 +1,41 @@ defmodule E2eWeb.Demos.TooltipDemo do use E2eWeb, :html - def anatomy_default_open_code do + def anatomy_minimal_code do ~S""" - <.tooltip id="tooltip-default-open" class="tooltip" open> - <:trigger>Hover or focus (starts open) + <.tooltip class="tooltip" show_arrow={false}> + <:trigger>Hover me <:content>Tooltip content """ end - def anatomy_default_open_example(assigns) do + def anatomy_minimal_example(assigns) do + _ = assigns + ~H""" - <.tooltip id="tooltip-default-open" class="tooltip" open> - <:trigger>Hover or focus (starts open) + <.tooltip class="tooltip" show_arrow={false}> + <:trigger>Hover me + <:content>Tooltip content + + """ + end + + def anatomy_with_arrow_code do + ~S""" + <.tooltip class="tooltip"> + <:trigger>Hover me + <:content>Tooltip content + + """ + end + + def anatomy_with_arrow_example(assigns) do + _ = assigns + + ~H""" + <.tooltip class="tooltip"> + <:trigger>Hover me <:content>Tooltip content """ @@ -22,19 +44,19 @@ defmodule E2eWeb.Demos.TooltipDemo do def anatomy_placement_code do ~S"""
- <.tooltip class="tooltip" placement="bottom"> + <.tooltip class="tooltip" positioning={%Corex.Positioning{placement: "bottom"}}> <:trigger>Bottom <:content>Tooltip below - <.tooltip class="tooltip" placement="top"> + <.tooltip class="tooltip" positioning={%Corex.Positioning{placement: "top"}}> <:trigger>Top <:content>Tooltip above - <.tooltip class="tooltip" placement="left"> + <.tooltip class="tooltip" positioning={%Corex.Positioning{placement: "left"}}> <:trigger>Left <:content>Tooltip on the left - <.tooltip class="tooltip" placement="right"> + <.tooltip class="tooltip" positioning={%Corex.Positioning{placement: "right"}}> <:trigger>Right <:content>Tooltip on the right @@ -45,19 +67,19 @@ defmodule E2eWeb.Demos.TooltipDemo do def anatomy_placement_example(assigns) do ~H"""
- <.tooltip class="tooltip" placement="bottom"> + <.tooltip class="tooltip" positioning={%Corex.Positioning{placement: "bottom"}}> <:trigger>Bottom <:content>Tooltip below - <.tooltip class="tooltip" placement="top"> + <.tooltip class="tooltip" positioning={%Corex.Positioning{placement: "top"}}> <:trigger>Top <:content>Tooltip above - <.tooltip class="tooltip" placement="left"> + <.tooltip class="tooltip" positioning={%Corex.Positioning{placement: "left"}}> <:trigger>Left <:content>Tooltip on the left - <.tooltip class="tooltip" placement="right"> + <.tooltip class="tooltip" positioning={%Corex.Positioning{placement: "right"}}> <:trigger>Right <:content>Tooltip on the right @@ -65,52 +87,208 @@ defmodule E2eWeb.Demos.TooltipDemo do """ end - def anatomy_variants_code do + def anatomy_positioning_code do ~S""" -
- <.tooltip class="tooltip tooltip--sm"> - <:trigger>Small - <:content>Small tooltip +
+ <.tooltip class="tooltip" positioning={%Corex.Positioning{placement: "top", gutter: 4}}> + <:trigger>Gutter 4 + <:content>Tight gap between trigger and tooltip - <.tooltip class="tooltip"> - <:trigger>Default - <:content>Default tooltip + <.tooltip class="tooltip" positioning={%Corex.Positioning{placement: "top", gutter: 32}}> + <:trigger>Gutter 32 + <:content>Wide gap between trigger and tooltip - <.tooltip class="tooltip tooltip--lg"> - <:trigger>Large - <:content>Large tooltip + <.tooltip class="tooltip" positioning={%Corex.Positioning{placement: "top", shift: 0}}> + <:trigger>Shift 0 + <:content>Centered along the placement edge - <.tooltip class="tooltip tooltip--accent"> - <:trigger>Accent - <:content>Accent tooltip + <.tooltip class="tooltip" positioning={%Corex.Positioning{placement: "top", shift: 32}}> + <:trigger>Shift 32 + <:content>Tooltip slid along the edge
""" end - def anatomy_variants_example(assigns) do + def anatomy_positioning_example(assigns) do + _ = assigns + ~H""" -
- <.tooltip class="tooltip tooltip--sm"> - <:trigger>Small - <:content>Small tooltip +
+ <.tooltip class="tooltip" positioning={%Corex.Positioning{placement: "top", gutter: 4}}> + <:trigger>Gutter 4 + <:content>Tight gap between trigger and tooltip - <.tooltip class="tooltip"> - <:trigger>Default - <:content>Default tooltip + <.tooltip class="tooltip" positioning={%Corex.Positioning{placement: "top", gutter: 32}}> + <:trigger>Gutter 32 + <:content>Wide gap between trigger and tooltip - <.tooltip class="tooltip tooltip--lg"> - <:trigger>Large - <:content>Large tooltip + <.tooltip class="tooltip" positioning={%Corex.Positioning{placement: "top", shift: 0}}> + <:trigger>Shift 0 + <:content>Centered along the placement edge - <.tooltip class="tooltip tooltip--accent"> - <:trigger>Accent - <:content>Accent tooltip + <.tooltip class="tooltip" positioning={%Corex.Positioning{placement: "top", shift: 32}}> + <:trigger>Shift 32 + <:content>Tooltip slid along the edge + +
+ """ + end + + def patterns_multi_trigger_heex do + ~S""" + <.tooltip + id="tooltip-pattern-users" + class="tooltip" + show_arrow={false} + on_trigger_value_change="tooltip_pattern_trigger_value" + > + <:trigger :for={user <- @users} value={user.id}> + {user.first_name} + + <:content> + {@active_user_detail} + + + """ + end + + def patterns_multi_trigger_elixir do + ~S""" + on_mount({__MODULE__, :assign_users}) + + def on_mount(:assign_users, _params, _session, socket) do + users = [ + %{id: "1", first_name: "Alice", full_name: "Alice Johnson"}, + %{id: "2", first_name: "Bob", full_name: "Bob Martinez"}, + %{id: "3", first_name: "Carol", full_name: "Carol Nguyen"} + ] + + {:cont, + socket + |> assign(:users, users) + |> assign(:active_user_detail, "Hover a first name to show the full name here.")} + end + + def mount(_params, _session, socket) do + {:ok, socket} + end + + def handle_event("tooltip_pattern_trigger_value", %{"value" => value}, socket) do + body = + case Enum.find(socket.assigns.users, &(&1.id == value)) do + nil -> socket.assigns.active_user_detail + user -> user.full_name + end + + {:noreply, assign(socket, :active_user_detail, body)} + end + """ + end + + def patterns_profile_links_heex do + ~S""" +
    +
  • + <.tooltip + id={"tooltip-profile-" <> user.id} + class="tooltip" + show_arrow={false} + trigger_tag={:span} + > + <:trigger> + <.navigate to={~p"/admins"} type="navigate" class="link"> + {user.first_name} + + + <:content> + {user.full_name} + + +
  • +
+ """ + end + + def patterns_profile_links_elixir do + ~S""" + on_mount({__MODULE__, :assign_users}) + + def on_mount(:assign_users, _params, _session, socket) do + users = [ + %{id: "1", first_name: "Alice", full_name: "Alice Johnson"}, + %{id: "2", first_name: "Bob", full_name: "Bob Martinez"}, + %{id: "3", first_name: "Carol", full_name: "Carol Nguyen"} + ] + + {:cont, assign(socket, :users, users)} + end + + def mount(_params, _session, socket) do + {:ok, socket} + end + """ + end + + def patterns_profile_links_multi_heex do + ~S""" +
+ <.tooltip + id="tooltip-pattern-profile-link-multi-tool" + class="tooltip" + show_arrow={false} + trigger_tag={:span} + on_trigger_value_change="tooltip_pattern_link_multi_value" + > + <:trigger :for={user <- @users} value={user.id}> + <.navigate to={~p"/admins"} type="navigate" class="link"> + {user.first_name} + + + <:content> + {@active_link_tooltip_detail} +
""" end + def patterns_profile_links_multi_elixir do + ~S""" + on_mount({__MODULE__, :assign_users}) + + def on_mount(:assign_users, _params, _session, socket) do + users = [ + %{id: "1", first_name: "Alice", full_name: "Alice Johnson"}, + %{id: "2", first_name: "Bob", full_name: "Bob Martinez"}, + %{id: "3", first_name: "Carol", full_name: "Carol Nguyen"} + ] + + {:cont, + socket + |> assign(:users, users) + |> assign( + :active_link_tooltip_detail, + "Hover a first name to show the full name here." + )} + end + + def mount(_params, _session, socket) do + {:ok, socket} + end + + def handle_event("tooltip_pattern_link_multi_value", %{"value" => value}, socket) do + body = + case Enum.find(socket.assigns.users, &(&1.id == value)) do + nil -> socket.assigns.active_link_tooltip_detail + user -> user.full_name + end + + {:noreply, assign(socket, :active_link_tooltip_detail, body)} + end + """ + end + def api_set_open_client_binding_heex do ~S"""
@@ -269,48 +447,55 @@ defmodule E2eWeb.Demos.TooltipDemo do def api_client_binding_example(assigns), do: api_set_open_client_binding_example(assigns) - def patterns_controlled_heex do + def patterns_set_open_heex do ~S""" - <.tooltip - id="tooltip-patterns-controlled" - class="tooltip" - controlled - open={@open} - on_open_change="tooltip_pattern_open" - > - <:trigger>Controlled - <:content>Synced with assign +
+ <.action phx-click={Corex.Tooltip.set_open("tooltip-patterns-set-open", true)} class="button button--sm">Open + <.action phx-click={Corex.Tooltip.set_open("tooltip-patterns-set-open", false)} class="button button--sm">Close +
+ <.tooltip id="tooltip-patterns-set-open" class="tooltip"> + <:trigger>Hover or buttons + <:content>Open state from Corex.Tooltip.set_open/2 """ end - def patterns_controlled_elixir do + def patterns_set_open_elixir do ~S""" - def mount(_params, _session, socket) do - {:ok, assign(socket, :open, false)} + def handle_event("tooltip_pattern_open", _params, socket) do + {:noreply, Corex.Tooltip.set_open(socket, "tooltip-patterns-set-open", true)} end - def handle_event("tooltip_pattern_open", %{"open" => open, "id" => _}, socket) do - o = open == true or open == "true" - {:noreply, assign(socket, :open, o)} + def handle_event("tooltip_pattern_close", _params, socket) do + {:noreply, Corex.Tooltip.set_open(socket, "tooltip-patterns-set-open", false)} end """ end - attr :open, :boolean, default: false + def patterns_set_open_example(assigns) do + _ = assigns - def patterns_controlled_example(assigns) do ~H""" - <.tooltip - id="tooltip-patterns-controlled" - class="tooltip" - controlled - open={@open} - on_open_change="tooltip_pattern_open" - > - <:trigger>Controlled - <:content>Synced with assign - +
+
+ <.action + phx-click={Corex.Tooltip.set_open("tooltip-patterns-set-open", true)} + class="button button--sm" + > + Open + + <.action + phx-click={Corex.Tooltip.set_open("tooltip-patterns-set-open", false)} + class="button button--sm" + > + Close + +
+ <.tooltip id="tooltip-patterns-set-open" class="tooltip"> + <:trigger>Hover or buttons + <:content>Open state from Corex.Tooltip.set_open/2 + +
""" end @@ -346,69 +531,169 @@ defmodule E2eWeb.Demos.TooltipDemo do """ end - def styling_sizes_code do + def styling_color_code do ~S""" -
- <.tooltip class="tooltip tooltip--sm"> - <:trigger>Small - <:content>Small tooltip - +
<.tooltip class="tooltip"> <:trigger>Default - <:content>Default size + <:content>Neutral surface + + <.tooltip class="tooltip tooltip--accent"> + <:trigger>Accent + <:content>tooltip--accent + + <.tooltip class="tooltip tooltip--brand"> + <:trigger>Brand + <:content>tooltip--brand + + <.tooltip class="tooltip tooltip--alert"> + <:trigger>Alert + <:content>tooltip--alert - <.tooltip class="tooltip tooltip--lg"> - <:trigger>Large - <:content>Large tooltip + <.tooltip class="tooltip tooltip--success"> + <:trigger>Success + <:content>tooltip--success + + <.tooltip class="tooltip tooltip--info"> + <:trigger>Info + <:content>tooltip--info + + <.tooltip class="tooltip tooltip--selected"> + <:trigger>Selected + <:content>tooltip--selected
""" end - def styling_sizes_example(assigns) do + def styling_color_example(assigns) do + _ = assigns + ~H""" -
- <.tooltip class="tooltip tooltip--sm"> - <:trigger>Small - <:content>Small tooltip - +
<.tooltip class="tooltip"> <:trigger>Default - <:content>Default size + <:content>Neutral surface + + <.tooltip class="tooltip tooltip--accent"> + <:trigger>Accent + <:content>tooltip--accent - <.tooltip class="tooltip tooltip--lg"> - <:trigger>Large - <:content>Large tooltip + <.tooltip class="tooltip tooltip--brand"> + <:trigger>Brand + <:content>tooltip--brand + + <.tooltip class="tooltip tooltip--alert"> + <:trigger>Alert + <:content>tooltip--alert + + <.tooltip class="tooltip tooltip--success"> + <:trigger>Success + <:content>tooltip--success + + <.tooltip class="tooltip tooltip--info"> + <:trigger>Info + <:content>tooltip--info + + <.tooltip class="tooltip tooltip--selected"> + <:trigger>Selected + <:content>tooltip--selected
""" end - def styling_colors_code do + def styling_size_code do ~S""" -
- <.tooltip class="tooltip"> - <:trigger>Default - <:content>Neutral surface +
+ <.tooltip class="tooltip tooltip--size-sm"> + <:trigger>Sm + <:content>tooltip--size-sm - <.tooltip class="tooltip tooltip--accent"> - <:trigger>Accent - <:content>Accent surface + <.tooltip class="tooltip tooltip--size-md"> + <:trigger>Md + <:content>tooltip--size-md + + <.tooltip class="tooltip tooltip--size-lg"> + <:trigger>Lg + <:content>tooltip--size-lg + + <.tooltip class="tooltip tooltip--size-xl"> + <:trigger>Xl + <:content>tooltip--size-xl
""" end - def styling_colors_example(assigns) do + def styling_size_example(assigns) do + _ = assigns + ~H""" -
- <.tooltip class="tooltip"> - <:trigger>Default - <:content>Neutral surface +
+ <.tooltip class="tooltip tooltip--size-sm"> + <:trigger>Sm + <:content>tooltip--size-sm - <.tooltip class="tooltip tooltip--accent"> - <:trigger>Accent - <:content>Accent surface + <.tooltip class="tooltip tooltip--size-md"> + <:trigger>Md + <:content>tooltip--size-md + + <.tooltip class="tooltip tooltip--size-lg"> + <:trigger>Lg + <:content>tooltip--size-lg + + <.tooltip class="tooltip tooltip--size-xl"> + <:trigger>Xl + <:content>tooltip--size-xl + +
+ """ + end + + def styling_text_code do + ~S""" +
+ <.tooltip class="tooltip tooltip--text-sm"> + <:trigger>Text sm + <:content>tooltip--text-sm + + <.tooltip class="tooltip tooltip--text-xl"> + <:trigger>Text xl + <:content>tooltip--text-xl + + <.tooltip class="tooltip tooltip--text-2xl"> + <:trigger>Text 2xl + <:content>tooltip--text-2xl + + <.tooltip class="tooltip tooltip--text-4xl"> + <:trigger>Text 4xl + <:content>tooltip--text-4xl + +
+ """ + end + + def styling_text_example(assigns) do + _ = assigns + + ~H""" +
+ <.tooltip class="tooltip tooltip--text-sm"> + <:trigger>Text sm + <:content>tooltip--text-sm + + <.tooltip class="tooltip tooltip--text-xl"> + <:trigger>Text xl + <:content>tooltip--text-xl + + <.tooltip class="tooltip tooltip--text-2xl"> + <:trigger>Text 2xl + <:content>tooltip--text-2xl + + <.tooltip class="tooltip tooltip--text-4xl"> + <:trigger>Text 4xl + <:content>tooltip--text-4xl
""" diff --git a/e2e/lib/e2e_web/doc_a11y_routes.ex b/e2e/lib/e2e_web/doc_a11y_routes.ex index 6b725545..8f26f537 100644 --- a/e2e/lib/e2e_web/doc_a11y_routes.ex +++ b/e2e/lib/e2e_web/doc_a11y_routes.ex @@ -128,6 +128,7 @@ defmodule E2eWeb.DocA11yRoutes do {"/en/number-input/anatomy", "#number-input-anatomy-page"}, {"/en/number-input/api", "#number-input-api-page"}, {"/en/number-input/events", "#number-input-events-page"}, + {"/en/number-input/patterns", "#number-input-patterns-page"}, {"/en/number-input/style", "#number-input-styling-page"}, {"/en/number-input/form", "#number-input-form-page"}, {"/en/number-input/live-form", "#number-input-form-live-page"}, @@ -194,6 +195,7 @@ defmodule E2eWeb.DocA11yRoutes do {"/en/tooltip/anatomy", "#tooltip-anatomy-page"}, {"/en/tooltip/api", "#tooltip-api-page"}, {"/en/tooltip/events", "#tooltip-events-page"}, + {"/en/tooltip/patterns", "#tooltip-patterns-page"}, {"/en/tooltip/style", "#tooltip-styling-page"}, {"/en/tree-view/playground", "#playground-tree"}, {"/en/tree-view/anatomy", "#tree-view-anatomy-page"}, diff --git a/e2e/lib/e2e_web/live/pages_live/combobox_patterns_live.ex b/e2e/lib/e2e_web/live/pages_live/combobox_patterns_live.ex index f0159a89..cb5173be 100644 --- a/e2e/lib/e2e_web/live/pages_live/combobox_patterns_live.ex +++ b/e2e/lib/e2e_web/live/pages_live/combobox_patterns_live.ex @@ -167,7 +167,7 @@ defmodule E2eWeb.ComboboxPatternsLive do ]} > <:preview> -
+
<.combobox id="combobox-patterns-controlled-field" class="combobox" diff --git a/e2e/lib/e2e_web/live/pages_live/date_picker_events_live.ex b/e2e/lib/e2e_web/live/pages_live/date_picker_events_live.ex index 65c2a666..3195a9cd 100644 --- a/e2e/lib/e2e_web/live/pages_live/date_picker_events_live.ex +++ b/e2e/lib/e2e_web/live/pages_live/date_picker_events_live.ex @@ -95,8 +95,13 @@ defmodule E2eWeb.DatePickerEventsLive do
<.date_picker id="date-picker-e-sv" - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={ + %Corex.DatePicker.Translation{ + open_calendar: "Select date", + close_calendar: "Select date", + input: "Select date" + } + } class="date-picker" on_value_change="dpe_on_value_server" > @@ -134,8 +139,13 @@ defmodule E2eWeb.DatePickerEventsLive do
<.date_picker id="date-picker-e-so" - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={ + %Corex.DatePicker.Translation{ + open_calendar: "Select date", + close_calendar: "Select date", + input: "Select date" + } + } class="date-picker" on_open_change="dpe_on_open_server" > @@ -174,8 +184,13 @@ defmodule E2eWeb.DatePickerEventsLive do
<.date_picker id="date-picker-e-cv" - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={ + %Corex.DatePicker.Translation{ + open_calendar: "Select date", + close_calendar: "Select date", + input: "Select date" + } + } class="date-picker" on_value_change_client="date-picker-value-changed" > @@ -234,8 +249,13 @@ defmodule E2eWeb.DatePickerEventsLive do
<.date_picker id="date-picker-e-co" - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={ + %Corex.DatePicker.Translation{ + open_calendar: "Select date", + close_calendar: "Select date", + input: "Select date" + } + } class="date-picker" on_open_change_client="date-picker-open-changed" > diff --git a/e2e/lib/e2e_web/live/pages_live/date_picker_patterns_live.ex b/e2e/lib/e2e_web/live/pages_live/date_picker_patterns_live.ex index 25a8f78c..ad73bdcc 100644 --- a/e2e/lib/e2e_web/live/pages_live/date_picker_patterns_live.ex +++ b/e2e/lib/e2e_web/live/pages_live/date_picker_patterns_live.ex @@ -63,8 +63,13 @@ defmodule E2eWeb.DatePickerPatternsLive do controlled value={@selected && [@selected]} on_value_change="pattern_date_changed" - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={ + %Corex.DatePicker.Translation{ + open_calendar: "Select date", + close_calendar: "Select date", + input: "Select date" + } + } > <:label>Date <:trigger><.heroicon name="hero-calendar" class="icon" /> diff --git a/e2e/lib/e2e_web/live/pages_live/date_picker_play_live.ex b/e2e/lib/e2e_web/live/pages_live/date_picker_play_live.ex index c7265d2e..6ae15ec3 100644 --- a/e2e/lib/e2e_web/live/pages_live/date_picker_play_live.ex +++ b/e2e/lib/e2e_web/live/pages_live/date_picker_play_live.ex @@ -196,8 +196,13 @@ defmodule E2eWeb.DatePickerPlayLive do <:canvas> <.date_picker id="date-picker-playground" - trigger_aria_label="Select date" - input_aria_label="Select date" + translation={ + %Corex.DatePicker.Translation{ + open_calendar: "Select date", + close_calendar: "Select date", + input: "Select date" + } + } class="date-picker" dir={@controls.dir} locale={@controls.locale} diff --git a/e2e/lib/e2e_web/live/pages_live/floating_panel_events_live.ex b/e2e/lib/e2e_web/live/pages_live/floating_panel_events_live.ex index d2d1cdca..a513a8b5 100644 --- a/e2e/lib/e2e_web/live/pages_live/floating_panel_events_live.ex +++ b/e2e/lib/e2e_web/live/pages_live/floating_panel_events_live.ex @@ -59,8 +59,11 @@ defmodule E2eWeb.FloatingPanelEventsLive do on_open_change="floating_panel_open_changed" on_open_change_client="floating-panel-open-changed" > - <:open_trigger>Close panel - <:closed_trigger>Open panel + <:trigger> + Open panel + Close panel + + <:title>Panel <:minimize_trigger> <.heroicon name="hero-arrow-down-left" class="icon" /> diff --git a/e2e/lib/e2e_web/live/pages_live/floating_panel_play_live.ex b/e2e/lib/e2e_web/live/pages_live/floating_panel_play_live.ex index eda0c9a8..c047009e 100644 --- a/e2e/lib/e2e_web/live/pages_live/floating_panel_play_live.ex +++ b/e2e/lib/e2e_web/live/pages_live/floating_panel_play_live.ex @@ -67,8 +67,11 @@ defmodule E2eWeb.FloatingPanelPlayLive do resizable={@resizable} class="floating-panel" > - <:open_trigger>Close panel - <:closed_trigger>Open panel + <:trigger> + Open panel + Close panel + + <:title>Panel <:minimize_trigger> <.heroicon name="hero-arrow-down-left" class="icon" /> diff --git a/e2e/lib/e2e_web/live/pages_live/listbox_api_live.ex b/e2e/lib/e2e_web/live/pages_live/listbox_api_live.ex index 9a3d41ea..814e78f7 100644 --- a/e2e/lib/e2e_web/live/pages_live/listbox_api_live.ex +++ b/e2e/lib/e2e_web/live/pages_live/listbox_api_live.ex @@ -62,26 +62,24 @@ defmodule E2eWeb.ListboxApiLive do ]} > <:preview> -
-
- <.action - phx-click={Corex.Listbox.set_value("listbox-api-sv-client", ["bel"])} - class="button button--sm" - > - Belgium - - <.action - phx-click={Corex.Listbox.set_value("listbox-api-sv-client", [])} - class="button button--sm" - > - Clear - -
- <.listbox id="listbox-api-sv-client" class="listbox" items={Demo.items_minimal()}> - <:label>Choose a country - <:item_indicator><.heroicon name="hero-check" /> - +
+ <.action + phx-click={Corex.Listbox.set_value("listbox-api-sv-client", ["bel"])} + class="button button--sm" + > + Belgium + + <.action + phx-click={Corex.Listbox.set_value("listbox-api-sv-client", [])} + class="button button--sm" + > + Clear +
+ <.listbox id="listbox-api-sv-client" class="listbox" items={Demo.items_minimal()}> + <:label>Choose a country + <:item_indicator><.heroicon name="hero-check" /> + @@ -99,15 +97,13 @@ defmodule E2eWeb.ListboxApiLive do ]} > <:preview> -
-
- <.action phx-click="listbox_api_set_value" class="button button--sm">Belgium -
- <.listbox id="listbox-api-sv-server" class="listbox" items={Demo.items_minimal()}> - <:label>Choose a country - <:item_indicator><.heroicon name="hero-check" /> - +
+ <.action phx-click="listbox_api_set_value" class="button button--sm">Belgium
+ <.listbox id="listbox-api-sv-server" class="listbox" items={Demo.items_minimal()}> + <:label>Choose a country + <:item_indicator><.heroicon name="hero-check" /> + @@ -119,25 +115,23 @@ defmodule E2eWeb.ListboxApiLive do ]} > <:preview> -
- <.action - type="button" - class="button button--sm" - phx-click={ - JS.dispatch("corex:listbox:set-value", - to: "#listbox-api-sv-js", - detail: %{value: ["deu"]}, - bubbles: false - ) - } - > - Germany (JS.dispatch) - - <.listbox id="listbox-api-sv-js" class="listbox" items={Demo.items_minimal()}> - <:label>Choose a country - <:item_indicator><.heroicon name="hero-check" /> - -
+ <.action + type="button" + class="button button--sm" + phx-click={ + JS.dispatch("corex:listbox:set-value", + to: "#listbox-api-sv-js", + detail: %{value: ["deu"]}, + bubbles: false + ) + } + > + Germany (JS.dispatch) + + <.listbox id="listbox-api-sv-js" class="listbox" items={Demo.items_minimal()}> + <:label>Choose a country + <:item_indicator><.heroicon name="hero-check" /> + @@ -149,18 +143,18 @@ defmodule E2eWeb.ListboxApiLive do ]} > <:preview> -
+
<.action phx-click={Corex.Listbox.value("listbox-api-val-client")} class="button button--sm" > Read selection - <.listbox id="listbox-api-val-client" class="listbox" items={Demo.items_minimal()}> - <:label>Choose a country - <:item_indicator><.heroicon name="hero-check" /> -
+ <.listbox id="listbox-api-val-client" class="listbox" items={Demo.items_minimal()}> + <:label>Choose a country + <:item_indicator><.heroicon name="hero-check" /> + @@ -178,15 +172,15 @@ defmodule E2eWeb.ListboxApiLive do ]} > <:preview> -
+
<.action phx-click="listbox_api_value_server" class="button button--sm"> Read selection - <.listbox id="listbox-api-val-server" class="listbox" items={Demo.items_minimal()}> - <:label>Choose a country - <:item_indicator><.heroicon name="hero-check" /> -
+ <.listbox id="listbox-api-val-server" class="listbox" items={Demo.items_minimal()}> + <:label>Choose a country + <:item_indicator><.heroicon name="hero-check" /> + diff --git a/e2e/lib/e2e_web/live/pages_live/listbox_patterns_live.ex b/e2e/lib/e2e_web/live/pages_live/listbox_patterns_live.ex index f9ec029a..fc055b43 100644 --- a/e2e/lib/e2e_web/live/pages_live/listbox_patterns_live.ex +++ b/e2e/lib/e2e_web/live/pages_live/listbox_patterns_live.ex @@ -116,35 +116,33 @@ defmodule E2eWeb.ListboxPatternsLive do title="Stream" code_tabs={[ %{ - value: "listbox-demo", - label: "Listbox demo", + value: "heex", + label: "Heex", language: :heex, code: Demo.patterns_stream_demo_heex() }, %{ - value: "myapp", - label: "MyApp", + value: "elixir", + label: "Elixir", language: :elixir, - code: Demo.patterns_stream_my_app() + code: Demo.patterns_stream_elixir() } ]} > <:preview> -
-
- <.action phx-click="add_item" class="button button--sm button--accent"> - <.heroicon name="hero-plus" /> Add item - - <.action phx-click="reset" class="button button--sm button--alert"> - Reset - -
- <.listbox id="stream-listbox" class="listbox" items={Corex.List.new(@items_list)}> - <:label>Choose an item - <:empty>No items - <:item_indicator><.heroicon name="hero-check" /> - +
+ <.action phx-click="add_item" class="button button--sm button--accent"> + <.heroicon name="hero-plus" /> Add item + + <.action phx-click="reset" class="button button--sm button--alert"> + Reset +
+ <.listbox id="stream-listbox" class="listbox" items={Corex.List.new(@items_list)}> + <:label>Choose an item + <:empty>No items + <:item_indicator><.heroicon name="hero-check" /> + @@ -153,50 +151,48 @@ defmodule E2eWeb.ListboxPatternsLive do title="Stream grouped" code_tabs={[ %{ - value: "listbox-demo", - label: "Listbox demo", + value: "heex", + label: "Heex", language: :heex, code: Demo.patterns_stream_grouped_demo_heex() }, %{ - value: "myapp", - label: "MyApp", + value: "elixir", + label: "Elixir", language: :elixir, - code: Demo.patterns_stream_grouped_my_app() + code: Demo.patterns_stream_grouped_elixir() } ]} > <:preview> -
-
- <.action - phx-click="add_to_group" - phx-value-group="Europe" - class="button button--sm button--accent" - > - <.heroicon name="hero-plus" /> Add to Europe - - <.action - phx-click="add_to_group" - phx-value-group="Asia" - class="button button--sm button--accent" - > - <.heroicon name="hero-plus" /> Add to Asia - - <.action phx-click="reset_grouped" class="button button--sm button--alert"> - Reset - -
- <.listbox - id="stream-grouped-listbox" - class="listbox" - items={Corex.List.new(@grouped_items_list)} +
+ <.action + phx-click="add_to_group" + phx-value-group="Europe" + class="button button--sm button--accent" > - <:label>Choose a country - <:empty>No items - <:item_indicator><.heroicon name="hero-check" /> - + <.heroicon name="hero-plus" /> Add to Europe + + <.action + phx-click="add_to_group" + phx-value-group="Asia" + class="button button--sm button--accent" + > + <.heroicon name="hero-plus" /> Add to Asia + + <.action phx-click="reset_grouped" class="button button--sm button--alert"> + Reset +
+ <.listbox + id="stream-grouped-listbox" + class="listbox" + items={Corex.List.new(@grouped_items_list)} + > + <:label>Choose a country + <:empty>No items + <:item_indicator><.heroicon name="hero-check" /> + @@ -205,21 +201,21 @@ defmodule E2eWeb.ListboxPatternsLive do title="Controlled (value)" code_tabs={[ %{ - value: "listbox-demo", - label: "Listbox demo", + value: "heex", + label: "Heex", language: :heex, code: Demo.patterns_controlled_heex() }, %{ - value: "myapp", - label: "MyApp", + value: "elixir", + label: "Elixir", language: :elixir, - code: Demo.patterns_controlled_my_app() + code: Demo.patterns_controlled_elixir() } ]} > <:preview> -
+
<.listbox id="listbox-patterns-controlled-field" class="listbox" diff --git a/e2e/lib/e2e_web/live/pages_live/listbox_play_live.ex b/e2e/lib/e2e_web/live/pages_live/listbox_play_live.ex index 72b648df..cccb5663 100644 --- a/e2e/lib/e2e_web/live/pages_live/listbox_play_live.ex +++ b/e2e/lib/e2e_web/live/pages_live/listbox_play_live.ex @@ -7,7 +7,7 @@ defmodule E2eWeb.ListboxPlayLive do @listbox_id "listbox-play" - defp country_rows do + defp rows_vertical do [ {"fra", "France"}, {"bel", "Belgium"}, @@ -18,24 +18,28 @@ defmodule E2eWeb.ListboxPlayLive do ] end + defp rows_for_controls do + rows_vertical() + end + defp listbox_items(controls) do disabled = Map.get(controls, :disabled_items, []) Corex.List.new( - for {id, label} <- country_rows() do + for {id, label} <- rows_for_controls() do %{id: id, label: label, disabled: id in disabled} end ) end defp disabled_select_items do - for {id, label} <- country_rows(), do: %{label: label, id: id} + for {id, label} <- rows_for_controls(), do: %{label: label, id: id} end defp playground_listbox_reset_value(controls) do disabled = Map.get(controls, :disabled_items, []) - case Enum.find(country_rows(), fn {id, _} -> id not in disabled end) do + case Enum.find(rows_for_controls(), fn {id, _} -> id not in disabled end) do nil -> [] {id, _} -> [id] end @@ -97,7 +101,15 @@ defmodule E2eWeb.ListboxPlayLive do defp control_id(id), do: id defp sync_items(socket) do - assign(socket, :items, listbox_items(socket.assigns.controls)) + controls = socket.assigns.controls + available_ids = rows_for_controls() |> Enum.map(&elem(&1, 0)) + filtered_disabled = Enum.filter(controls.disabled_items, &(&1 in available_ids)) + controls = %{controls | disabled_items: filtered_disabled} + + socket + |> assign(:controls, controls) + |> assign(:items, listbox_items(controls)) + |> assign(:disabled_select_items, disabled_select_items()) end defp push_playground_listbox_value(socket) do diff --git a/e2e/lib/e2e_web/live/pages_live/number_input_patterns_live.ex b/e2e/lib/e2e_web/live/pages_live/number_input_patterns_live.ex new file mode 100644 index 00000000..5d0dc0df --- /dev/null +++ b/e2e/lib/e2e_web/live/pages_live/number_input_patterns_live.ex @@ -0,0 +1,131 @@ +defmodule E2eWeb.NumberInputPatternsLive do + use E2eWeb, :live_view + + import E2eWeb.DemoPage, only: [demo_page: 1, demo_section: 1] + + @impl true + def mount(_params, _session, socket) do + {:ok, + socket + |> assign(:patterns_controlled_value, "10") + |> assign(:patterns_value_as_number, 10)} + end + + @impl true + def handle_event("number_input_patterns_value", payload, socket) do + id = payload["id"] + + if id == "number-input-patterns-controlled-field" do + v = payload["value"] || "" + n = payload["valueAsNumber"] + + {:noreply, + socket + |> assign(:patterns_controlled_value, v) + |> assign(:patterns_value_as_number, n)} + else + {:noreply, socket} + end + end + + @impl true + def render(assigns) do + ~H""" + + <.demo_page + id="number-input-patterns-page" + title="Number Input · Patterns" + subtitle="Standalone controlled value: use on_value_change so the server assigns value on each change (required for +/- with controlled)." + > + <.demo_section + id="number-input-patterns-controlled-doc" + title="Controlled (value)" + code_tabs={[ + %{value: "heex", label: "Heex", language: :heex, code: patterns_controlled_heex()}, + %{value: "elixir", label: "Elixir", language: :elixir, code: patterns_controlled_elixir()} + ]} + > + <:preview> +
+ <.number_input + id="number-input-patterns-controlled-field" + class="number-input w-full" + controlled + value={@patterns_controlled_value} + min={0.0} + step={1.0} + on_value_change="number_input_patterns_value" + > + <:label>Quantity + <:decrement_trigger> + <.heroicon name="hero-chevron-down" class="icon" /> + + <:increment_trigger> + <.heroicon name="hero-chevron-up" class="icon" /> + + +

+ value: {inspect(@patterns_controlled_value)} · valueAsNumber:{" "} + {inspect(@patterns_value_as_number)} +

+
+ + + +
+ """ + end + + defp patterns_controlled_heex do + ~S""" + <.number_input + id="number-input-patterns-controlled-field" + class="number-input w-full" + controlled + value={@patterns_controlled_value} + min={0.0} + step={1.0} + on_value_change="number_input_patterns_value" + > + <:label>Quantity + <:decrement_trigger> + <.heroicon name="hero-chevron-down" class="icon" /> + + <:increment_trigger> + <.heroicon name="hero-chevron-up" class="icon" /> + + + """ + end + + defp patterns_controlled_elixir do + ~S""" + def mount(_params, _session, socket) do + {:ok, + socket + |> assign(:patterns_controlled_value, "10") + |> assign(:patterns_value_as_number, 10)} + end + + def handle_event("number_input_patterns_value", payload, socket) do + case payload do + %{"id" => "number-input-patterns-controlled-field", "value" => v} -> + n = payload["valueAsNumber"] + + {:noreply, + socket + |> assign(:patterns_controlled_value, v || "") + |> assign(:patterns_value_as_number, n)} + + _ -> + {:noreply, socket} + end + end + """ + end +end diff --git a/e2e/lib/e2e_web/live/pages_live/toast_play_live.ex b/e2e/lib/e2e_web/live/pages_live/toast_play_live.ex index 4ad5273e..ef84d38e 100644 --- a/e2e/lib/e2e_web/live/pages_live/toast_play_live.ex +++ b/e2e/lib/e2e_web/live/pages_live/toast_play_live.ex @@ -3,20 +3,22 @@ defmodule E2eWeb.ToastPlayLive do import E2eWeb.DemoPage, only: [demo_playground: 1] + @toast_form_id "toast-playground-form" + @type_items [ %{label: "Info", id: "info"}, %{label: "Success", id: "success"}, - %{label: "Error", id: "error"}, - %{label: "Loading", id: "loading"} + %{label: "Error", id: "error"} ] - @toast_types ~w(info success error loading) + @toast_types ~w(info success error) @toast_field_types %{ title: :string, message: :string, type: :string, - duration: :string + duration: :string, + loading: :boolean } @toast_fields Map.keys(@toast_field_types) @@ -29,28 +31,34 @@ defmodule E2eWeb.ToastPlayLive do title: "Saved", message: "From the playground form.", type: "info", - duration: "5000" + duration: "5000", + loading: false }) {:ok, socket - |> assign(:form, to_form(changeset, as: :toast)) + |> assign(:form, to_form(changeset, as: :toast, id: @toast_form_id)) |> assign(:type_items, @type_items)} end @impl true def handle_event("validate_toast", %{"toast" => params}, socket) do + params = normalize_toast_params(params) + changeset = - {%{}, @toast_field_types} + socket.assigns.form.source |> Ecto.Changeset.cast(params, @toast_fields) - {:noreply, assign(socket, :form, to_form(changeset, as: :toast, action: :validate))} + {:noreply, + assign(socket, :form, to_form(changeset, as: :toast, action: :validate, id: @toast_form_id))} end @impl true def handle_event("create_toast", %{"toast" => params}, socket) do + params = normalize_toast_params(params) + changeset = - {%{}, @toast_field_types} + socket.assigns.form.source |> Ecto.Changeset.cast(params, @toast_fields) |> Ecto.Changeset.validate_required(@toast_fields) |> Ecto.Changeset.validate_inclusion(:type, @toast_types) @@ -58,13 +66,15 @@ defmodule E2eWeb.ToastPlayLive do if changeset.valid? do socket = push_layout_toast(socket, changeset) + next_changeset = toast_form_changeset_after_success(changeset) {:noreply, socket |> put_flash(:info, "Toast pushed to the shell group.") - |> assign(:form, to_form(changeset, as: :toast))} + |> assign(:form, to_form(next_changeset, as: :toast, id: @toast_form_id))} else - {:noreply, assign(socket, :form, to_form(changeset, as: :toast, action: :insert))} + {:noreply, + assign(socket, :form, to_form(changeset, as: :toast, action: :insert, id: @toast_form_id))} end end @@ -73,6 +83,33 @@ defmodule E2eWeb.ToastPlayLive do {:noreply, put_flash(socket, :error, "Missing toast params.")} end + defp normalize_toast_params(params) do + case Map.get(params, "duration") do + nil -> + params + + v -> + s = v |> to_string() |> String.trim() + + if s == "", + do: Map.delete(params, "duration"), + else: Map.put(params, "duration", s) + end + end + + defp toast_form_changeset_after_success(cs) do + applied = Ecto.Changeset.apply_changes(cs) + + {%{}, @toast_field_types} + |> Ecto.Changeset.change(%{ + title: Map.fetch!(applied, :title), + message: Map.fetch!(applied, :message), + type: Map.fetch!(applied, :type), + duration: applied |> Map.fetch!(:duration) |> to_string(), + loading: Map.fetch!(applied, :loading) + }) + end + defp validate_toast_duration(changeset) do Ecto.Changeset.validate_change(changeset, :duration, fn :duration, raw -> case Integer.parse(to_string(raw)) do @@ -86,30 +123,18 @@ defmodule E2eWeb.ToastPlayLive do title = Ecto.Changeset.get_field(changeset, :title) message = Ecto.Changeset.get_field(changeset, :message) ty = Ecto.Changeset.get_field(changeset, :type) + loading? = Ecto.Changeset.get_field(changeset, :loading) {dur_int, _} = Integer.parse(to_string(Ecto.Changeset.get_field(changeset, :duration))) duration = if dur_int == 0, do: :infinity, else: dur_int - case ty do - "loading" -> - Corex.Toast.push_toast( - socket, - "layout-toast", - title, - message, - :loading, - duration, - loading: true - ) - - other -> - type_atom = toast_type_atom(other) - Corex.Toast.push_toast(socket, "layout-toast", title, message, type_atom, duration) - end + type_atom = toast_type_atom(ty) + opts = if loading?, do: [loading: true], else: [] + + Corex.Toast.push_toast(socket, "layout-toast", title, message, type_atom, duration, opts) end defp toast_type_atom("success"), do: :success defp toast_type_atom("error"), do: :error - defp toast_type_atom("loading"), do: :loading defp toast_type_atom(_), do: :info @impl true @@ -131,15 +156,15 @@ defmodule E2eWeb.ToastPlayLive do
<.form for={@form} - id="toast-playground-form" + id={@form.id} phx-change="validate_toast" phx-submit="create_toast" class="flex flex-col gap-space" > - <.native_input field={@form[:title]} type="text" required> + <.native_input field={@form[:title]} type="text" class="native-input w-full" required> <:label>Title - <.native_input field={@form[:message]} type="text" required> + <.native_input field={@form[:message]} type="text" class="native-input w-full" required> <:label>Message <.select @@ -153,13 +178,14 @@ defmodule E2eWeb.ToastPlayLive do <.number_input + id="toast-playground-duration" field={@form[:duration]} - class="number-input" + class="number-input w-full" min={0.0} step={1.0} required > - <:label>Duration (ms, 0 = infinite) + <:label>Duration <:decrement_trigger> <.heroicon name="hero-chevron-down" class="icon" /> @@ -167,15 +193,13 @@ defmodule E2eWeb.ToastPlayLive do <.heroicon name="hero-chevron-up" class="icon" /> + <.switch field={@form[:loading]} class="switch"> + <:label>Loading +
<.action type="submit" class="button button--accent">Create toast
- <.toast_group id="toast-play-preview" class="toast" placement="bottom-end" flash={%{}}> - <:loading> - <.heroicon name="hero-arrow-path" class="icon" /> - -
diff --git a/e2e/lib/e2e_web/live/pages_live/tooltip_patterns_live.ex b/e2e/lib/e2e_web/live/pages_live/tooltip_patterns_live.ex new file mode 100644 index 00000000..0375aefc --- /dev/null +++ b/e2e/lib/e2e_web/live/pages_live/tooltip_patterns_live.ex @@ -0,0 +1,187 @@ +defmodule E2eWeb.TooltipPatternsLive do + use E2eWeb, :live_view + + import E2eWeb.DemoPage, only: [demo_page: 1, demo_section: 1] + + on_mount({__MODULE__, :assign_users}) + + def on_mount(:assign_users, _params, _session, socket) do + users = [ + %{id: "1", first_name: "Alice", full_name: "Alice Johnson"}, + %{id: "2", first_name: "Bob", full_name: "Bob Martinez"}, + %{id: "3", first_name: "Carol", full_name: "Carol Nguyen"} + ] + + {:cont, + socket + |> assign(:users, users) + |> assign(:active_user_detail, "Hover a first name to show the full name here.") + |> assign( + :active_link_tooltip_detail, + "Hover a first name to show the full name here." + )} + end + + @impl true + def mount(_params, _session, socket) do + {:ok, socket} + end + + @impl true + def handle_event("tooltip_pattern_trigger_value", %{"value" => value}, socket) do + body = + case Enum.find(socket.assigns.users, &(&1.id == value)) do + nil -> socket.assigns.active_user_detail + user -> user.full_name + end + + {:noreply, assign(socket, :active_user_detail, body)} + end + + @impl true + def handle_event("tooltip_pattern_link_multi_value", %{"value" => value}, socket) do + body = + case Enum.find(socket.assigns.users, &(&1.id == value)) do + nil -> socket.assigns.active_link_tooltip_detail + user -> user.full_name + end + + {:noreply, assign(socket, :active_link_tooltip_detail, body)} + end + + @impl true + def render(assigns) do + ~H""" + + <.demo_page + id="tooltip-patterns-page" + title="Tooltip · Pattern" + subtitle="Multi-trigger with LiveView, per-row tooltips in a ul, and one tooltip with several link triggers." + > + <.demo_section + id="tooltip-pattern-multi-trigger-lv" + title="Multi-trigger and dynamic content" + code_tabs={[ + %{ + value: "heex", + label: "Heex", + language: :heex, + code: E2eWeb.Demos.TooltipDemo.patterns_multi_trigger_heex() + }, + %{ + value: "elixir", + label: "Elixir", + language: :elixir, + code: E2eWeb.Demos.TooltipDemo.patterns_multi_trigger_elixir() + } + ]} + > + <:preview> +
+ <.tooltip + id="tooltip-pattern-users" + class="tooltip" + show_arrow={false} + on_trigger_value_change="tooltip_pattern_trigger_value" + > + <:trigger :for={user <- @users} value={user.id}> + {user.first_name} + + <:content> + {@active_user_detail} + + +
+ + + + <.demo_section + id="tooltip-pattern-profile-links" + title="List of profile links (one tooltip per row)" + code_tabs={[ + %{ + value: "heex", + label: "Heex", + language: :heex, + code: E2eWeb.Demos.TooltipDemo.patterns_profile_links_heex() + }, + %{ + value: "elixir", + label: "Elixir", + language: :elixir, + code: E2eWeb.Demos.TooltipDemo.patterns_profile_links_elixir() + } + ]} + > + <:preview> +
    +
  • + <.tooltip + id={"tooltip-profile-" <> user.id} + class="tooltip" + show_arrow={false} + trigger_tag={:span} + > + <:trigger> + <.navigate to={~p"/admins"} type="navigate" class="link"> + {user.first_name} + + + <:content> + {user.full_name} + + +
  • +
+ + + + <.demo_section + id="tooltip-pattern-profile-link-multi" + title="One tooltip, multiple profile links as triggers" + code_tabs={[ + %{ + value: "heex", + label: "Heex", + language: :heex, + code: E2eWeb.Demos.TooltipDemo.patterns_profile_links_multi_heex() + }, + %{ + value: "elixir", + label: "Elixir", + language: :elixir, + code: E2eWeb.Demos.TooltipDemo.patterns_profile_links_multi_elixir() + } + ]} + > + <:preview> +
+ <.tooltip + id="tooltip-pattern-profile-link-multi-tool" + class="tooltip" + show_arrow={false} + trigger_tag={:span} + on_trigger_value_change="tooltip_pattern_link_multi_value" + > + <:trigger :for={user <- @users} value={user.id}> + <.navigate to={~p"/admins"} type="navigate" class="link"> + {user.first_name} + + + <:content> + {@active_link_tooltip_detail} + + +
+ + + +
+ """ + end +end diff --git a/e2e/lib/e2e_web/router.ex b/e2e/lib/e2e_web/router.ex index 8a038e68..8d9c4d31 100644 --- a/e2e/lib/e2e_web/router.ex +++ b/e2e/lib/e2e_web/router.ex @@ -10,7 +10,7 @@ defmodule E2eWeb.Router do plug(E2eWeb.Plugs.Theme) plug(Localize.Plug.PutLocale, - from: [:path, :session, :accept_language, :query], + from: [:path, :session, :query], gettext: E2eWeb.Gettext, param: "locale", default: :en @@ -34,6 +34,8 @@ defmodule E2eWeb.Router do on_mount: [E2eWeb.ModeLive, E2eWeb.ThemeLive, E2eWeb.PathLive] do live("/", HomeLive, :index) end + + get("/templates", PageController, :templates_page) end scope "/:locale", E2eWeb do @@ -147,6 +149,7 @@ defmodule E2eWeb.Router do live("/number-input/playground", NumberInputPlayLive) live("/number-input/api", NumberInputApiLive) live("/number-input/events", NumberInputEventsLive) + live("/number-input/patterns", NumberInputPatternsLive) live("/number-input/live-form", NumberInputFormLive) live("/password-input/playground", PasswordInputPlayLive) @@ -201,6 +204,7 @@ defmodule E2eWeb.Router do live("/tooltip/api", TooltipApiLive) live("/tooltip/events", TooltipEventsLive) + live("/tooltip/patterns", TooltipPatternsLive) live("/", HomeLive, :index) end diff --git a/e2e/priv/gettext/ar/LC_MESSAGES/default.po b/e2e/priv/gettext/ar/LC_MESSAGES/default.po index 07300e89..b66d97a5 100644 --- a/e2e/priv/gettext/ar/LC_MESSAGES/default.po +++ b/e2e/priv/gettext/ar/LC_MESSAGES/default.po @@ -11,28 +11,27 @@ msgstr "" "Language: ar\n" "Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5);\n" -#: lib/e2e_web/components/app/header.ex:136 +#: lib/e2e_web/components/app/header.ex:133 #, elixir-autogen, elixir-format msgid "Components" msgstr "" -#: lib/e2e_web/components/app/header.ex:101 +#: lib/e2e_web/components/app/header.ex:98 #, elixir-autogen, elixir-format msgid "Display settings" msgstr "" -#: lib/e2e_web/components/app/header.ex:75 -#: lib/e2e_web/components/app/header.ex:143 +#: lib/e2e_web/components/app/header.ex:146 #, elixir-autogen, elixir-format msgid "Documentation" msgstr "" -#: lib/e2e_web/live/pages_live/home_live.ex:155 +#: lib/e2e_web/live/pages_live/home_live.ex:146 #, elixir-autogen, elixir-format msgid "Interactive preview" msgstr "" -#: lib/e2e_web/components/app/header.ex:130 +#: lib/e2e_web/components/app/header.ex:127 #, elixir-autogen, elixir-format msgid "Main" msgstr "" @@ -60,53 +59,147 @@ msgstr "" msgid "We're trying to reconnect you..." msgstr "" -#: lib/e2e_web/components/app/header.ex:66 -#, elixir-autogen, elixir-format, fuzzy -msgid "Documentation links" -msgstr "" - -#: lib/e2e_web/components/app/header.ex:150 +#: lib/e2e_web/components/app/header.ex:154 +#: lib/e2e_web/components/app/header.ex:200 #, elixir-autogen, elixir-format msgid "MCP" msgstr "" -#: lib/e2e_web/live/pages_live/home_live.ex:142 -#: lib/e2e_web/live/pages_live/home_live.ex:288 +#: lib/e2e_web/live/pages_live/home_live.ex:131 +#: lib/e2e_web/live/pages_live/home_live.ex:364 #, elixir-autogen, elixir-format msgid "Browse components" msgstr "" -#: lib/e2e_web/live/pages_live/home_live.ex:280 +#: lib/e2e_web/live/pages_live/home_live.ex:139 #, elixir-autogen, elixir-format -msgid "Get started" +msgid "Visit Hexdocs" msgstr "" -#: lib/e2e_web/live/pages_live/home_live.ex:304 +#: lib/e2e_web/components/app/header.ex:193 #, elixir-autogen, elixir-format -msgid "Visit GitHub" +msgid "Dark Mode" msgstr "" -#: lib/e2e_web/live/pages_live/home_live.ex:296 +#: lib/e2e_web/components/app/header.ex:172 #, elixir-autogen, elixir-format -msgid "Visit Hexdocs" +msgid "Installation" msgstr "" -#: lib/e2e_web/components/app/header.ex:185 +#: lib/e2e_web/components/app/header.ex:179 #, elixir-autogen, elixir-format -msgid "Dark Mode" +msgid "Localize" msgstr "" -#: lib/e2e_web/components/app/header.ex:167 +#: lib/e2e_web/components/app/header.ex:186 #, elixir-autogen, elixir-format -msgid "Installation" +msgid "Theming" msgstr "" -#: lib/e2e_web/components/app/header.ex:173 +#: lib/e2e_web/live/pages_live/home_live.ex:261 #, elixir-autogen, elixir-format -msgid "Localize" +msgid "Corex by the numbers" msgstr "" -#: lib/e2e_web/components/app/header.ex:179 +#: lib/e2e_web/components/layouts/captures.html.heex:97 +#: lib/e2e_web/components/layouts/root.html.heex:97 #, elixir-autogen, elixir-format -msgid "Theming" +msgid "Skip to content" +msgstr "تخطي إلى المحتوى" + +#: lib/e2e_web/live/pages_live/home_live.ex:372 +#, elixir-autogen, elixir-format +msgid "Star on GitHub" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:50 +#, elixir-autogen, elixir-format +msgid "%{count}+ Corex components in the bundle." +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:10 +#, elixir-autogen, elixir-format +msgid "Building static sites with Tableau and Corex—reference layouts you can clone and ship." +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:81 +#, elixir-autogen, elixir-format +msgid "Coming soon" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:45 +#, elixir-autogen, elixir-format +msgid "Coming-soon landing with Corex components, themes, Markdown posts, and GitHub Pages-ready output." +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:83 +#, elixir-autogen, elixir-format +msgid "More templates" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:86 +#, elixir-autogen, elixir-format +msgid "Phoenix application starters and additional layouts will appear here." +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:5 +#, elixir-autogen, elixir-format +msgid "Starter kits" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:42 +#, elixir-autogen, elixir-format +msgid "Static site" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:74 +#, elixir-autogen, elixir-format +msgid "Tableau + Corex guide" +msgstr "" + +#: lib/e2e_web/components/app/header.ex:139 +#: lib/e2e_web/components/app/header.ex:207 +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:7 +#, elixir-autogen, elixir-format +msgid "Templates" +msgstr "" + +#: lib/e2e_web/controllers/page_controller.ex:1806 +#, elixir-autogen, elixir-format +msgid "Templates · Corex" +msgstr "" + +#: lib/e2e_web/components/app/header.ex:79 +#, elixir-autogen, elixir-format +msgid "Corex Links" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:66 +#, elixir-autogen, elixir-format +msgid "GitHub" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:58 +#, elixir-autogen, elixir-format +msgid "Live demo" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:24 +#, elixir-autogen, elixir-format +msgid "Soonex hero" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:27 +#, elixir-autogen, elixir-format +msgid "Soonex highlights" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:21 +#, elixir-autogen, elixir-format +msgid "Soonex preview slides" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:29 +#, elixir-autogen, elixir-format +msgid "Soonex waitlist" msgstr "" diff --git a/e2e/priv/gettext/default.pot b/e2e/priv/gettext/default.pot index 3e11f924..d9f2df7d 100644 --- a/e2e/priv/gettext/default.pot +++ b/e2e/priv/gettext/default.pot @@ -11,28 +11,27 @@ msgid "" msgstr "" -#: lib/e2e_web/components/app/header.ex:136 +#: lib/e2e_web/components/app/header.ex:133 #, elixir-autogen, elixir-format msgid "Components" msgstr "" -#: lib/e2e_web/components/app/header.ex:101 +#: lib/e2e_web/components/app/header.ex:98 #, elixir-autogen, elixir-format msgid "Display settings" msgstr "" -#: lib/e2e_web/components/app/header.ex:75 -#: lib/e2e_web/components/app/header.ex:143 +#: lib/e2e_web/components/app/header.ex:146 #, elixir-autogen, elixir-format msgid "Documentation" msgstr "" -#: lib/e2e_web/live/pages_live/home_live.ex:155 +#: lib/e2e_web/live/pages_live/home_live.ex:146 #, elixir-autogen, elixir-format msgid "Interactive preview" msgstr "" -#: lib/e2e_web/components/app/header.ex:130 +#: lib/e2e_web/components/app/header.ex:127 #, elixir-autogen, elixir-format msgid "Main" msgstr "" @@ -60,53 +59,147 @@ msgstr "" msgid "We're trying to reconnect you..." msgstr "" -#: lib/e2e_web/components/app/header.ex:66 +#: lib/e2e_web/components/app/header.ex:154 +#: lib/e2e_web/components/app/header.ex:200 #, elixir-autogen, elixir-format -msgid "Documentation links" +msgid "MCP" msgstr "" -#: lib/e2e_web/components/app/header.ex:150 +#: lib/e2e_web/live/pages_live/home_live.ex:131 +#: lib/e2e_web/live/pages_live/home_live.ex:364 #, elixir-autogen, elixir-format -msgid "MCP" +msgid "Browse components" msgstr "" -#: lib/e2e_web/live/pages_live/home_live.ex:142 -#: lib/e2e_web/live/pages_live/home_live.ex:288 +#: lib/e2e_web/live/pages_live/home_live.ex:139 #, elixir-autogen, elixir-format -msgid "Browse components" +msgid "Visit Hexdocs" msgstr "" -#: lib/e2e_web/live/pages_live/home_live.ex:280 +#: lib/e2e_web/components/app/header.ex:193 #, elixir-autogen, elixir-format -msgid "Get started" +msgid "Dark Mode" msgstr "" -#: lib/e2e_web/live/pages_live/home_live.ex:304 +#: lib/e2e_web/components/app/header.ex:172 #, elixir-autogen, elixir-format -msgid "Visit GitHub" +msgid "Installation" msgstr "" -#: lib/e2e_web/live/pages_live/home_live.ex:296 +#: lib/e2e_web/components/app/header.ex:179 #, elixir-autogen, elixir-format -msgid "Visit Hexdocs" +msgid "Localize" msgstr "" -#: lib/e2e_web/components/app/header.ex:185 +#: lib/e2e_web/components/app/header.ex:186 #, elixir-autogen, elixir-format -msgid "Dark Mode" +msgid "Theming" msgstr "" -#: lib/e2e_web/components/app/header.ex:167 +#: lib/e2e_web/live/pages_live/home_live.ex:261 #, elixir-autogen, elixir-format -msgid "Installation" +msgid "Corex by the numbers" msgstr "" -#: lib/e2e_web/components/app/header.ex:173 +#: lib/e2e_web/components/layouts/captures.html.heex:97 +#: lib/e2e_web/components/layouts/root.html.heex:97 #, elixir-autogen, elixir-format -msgid "Localize" +msgid "Skip to content" msgstr "" -#: lib/e2e_web/components/app/header.ex:179 +#: lib/e2e_web/live/pages_live/home_live.ex:372 #, elixir-autogen, elixir-format -msgid "Theming" +msgid "Star on GitHub" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:50 +#, elixir-autogen, elixir-format +msgid "%{count}+ Corex components in the bundle." +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:10 +#, elixir-autogen, elixir-format +msgid "Building static sites with Tableau and Corex—reference layouts you can clone and ship." +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:81 +#, elixir-autogen, elixir-format +msgid "Coming soon" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:45 +#, elixir-autogen, elixir-format +msgid "Coming-soon landing with Corex components, themes, Markdown posts, and GitHub Pages-ready output." +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:83 +#, elixir-autogen, elixir-format +msgid "More templates" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:86 +#, elixir-autogen, elixir-format +msgid "Phoenix application starters and additional layouts will appear here." +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:5 +#, elixir-autogen, elixir-format +msgid "Starter kits" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:42 +#, elixir-autogen, elixir-format +msgid "Static site" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:74 +#, elixir-autogen, elixir-format +msgid "Tableau + Corex guide" +msgstr "" + +#: lib/e2e_web/components/app/header.ex:139 +#: lib/e2e_web/components/app/header.ex:207 +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:7 +#, elixir-autogen, elixir-format +msgid "Templates" +msgstr "" + +#: lib/e2e_web/controllers/page_controller.ex:1806 +#, elixir-autogen, elixir-format +msgid "Templates · Corex" +msgstr "" + +#: lib/e2e_web/components/app/header.ex:79 +#, elixir-autogen, elixir-format +msgid "Corex Links" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:66 +#, elixir-autogen, elixir-format +msgid "GitHub" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:58 +#, elixir-autogen, elixir-format +msgid "Live demo" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:24 +#, elixir-autogen, elixir-format +msgid "Soonex hero" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:27 +#, elixir-autogen, elixir-format +msgid "Soonex highlights" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:21 +#, elixir-autogen, elixir-format +msgid "Soonex preview slides" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:29 +#, elixir-autogen, elixir-format +msgid "Soonex waitlist" msgstr "" diff --git a/e2e/priv/gettext/en/LC_MESSAGES/default.po b/e2e/priv/gettext/en/LC_MESSAGES/default.po index 51e0a222..e9a195b7 100644 --- a/e2e/priv/gettext/en/LC_MESSAGES/default.po +++ b/e2e/priv/gettext/en/LC_MESSAGES/default.po @@ -11,28 +11,27 @@ msgstr "" "Language: en\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: lib/e2e_web/components/app/header.ex:136 +#: lib/e2e_web/components/app/header.ex:133 #, elixir-autogen, elixir-format msgid "Components" msgstr "" -#: lib/e2e_web/components/app/header.ex:101 +#: lib/e2e_web/components/app/header.ex:98 #, elixir-autogen, elixir-format msgid "Display settings" msgstr "" -#: lib/e2e_web/components/app/header.ex:75 -#: lib/e2e_web/components/app/header.ex:143 +#: lib/e2e_web/components/app/header.ex:146 #, elixir-autogen, elixir-format msgid "Documentation" msgstr "" -#: lib/e2e_web/live/pages_live/home_live.ex:155 +#: lib/e2e_web/live/pages_live/home_live.ex:146 #, elixir-autogen, elixir-format msgid "Interactive preview" msgstr "" -#: lib/e2e_web/components/app/header.ex:130 +#: lib/e2e_web/components/app/header.ex:127 #, elixir-autogen, elixir-format msgid "Main" msgstr "" @@ -60,53 +59,147 @@ msgstr "" msgid "We're trying to reconnect you..." msgstr "" -#: lib/e2e_web/components/app/header.ex:66 -#, elixir-autogen, elixir-format, fuzzy -msgid "Documentation links" -msgstr "" - -#: lib/e2e_web/components/app/header.ex:150 +#: lib/e2e_web/components/app/header.ex:154 +#: lib/e2e_web/components/app/header.ex:200 #, elixir-autogen, elixir-format msgid "MCP" msgstr "" -#: lib/e2e_web/live/pages_live/home_live.ex:142 -#: lib/e2e_web/live/pages_live/home_live.ex:288 +#: lib/e2e_web/live/pages_live/home_live.ex:131 +#: lib/e2e_web/live/pages_live/home_live.ex:364 #, elixir-autogen, elixir-format msgid "Browse components" msgstr "" -#: lib/e2e_web/live/pages_live/home_live.ex:280 +#: lib/e2e_web/live/pages_live/home_live.ex:139 #, elixir-autogen, elixir-format -msgid "Get started" +msgid "Visit Hexdocs" msgstr "" -#: lib/e2e_web/live/pages_live/home_live.ex:304 +#: lib/e2e_web/components/app/header.ex:193 #, elixir-autogen, elixir-format -msgid "Visit GitHub" +msgid "Dark Mode" msgstr "" -#: lib/e2e_web/live/pages_live/home_live.ex:296 +#: lib/e2e_web/components/app/header.ex:172 #, elixir-autogen, elixir-format -msgid "Visit Hexdocs" +msgid "Installation" msgstr "" -#: lib/e2e_web/components/app/header.ex:185 +#: lib/e2e_web/components/app/header.ex:179 #, elixir-autogen, elixir-format -msgid "Dark Mode" +msgid "Localize" msgstr "" -#: lib/e2e_web/components/app/header.ex:167 +#: lib/e2e_web/components/app/header.ex:186 #, elixir-autogen, elixir-format -msgid "Installation" +msgid "Theming" msgstr "" -#: lib/e2e_web/components/app/header.ex:173 +#: lib/e2e_web/live/pages_live/home_live.ex:261 #, elixir-autogen, elixir-format -msgid "Localize" +msgid "Corex by the numbers" msgstr "" -#: lib/e2e_web/components/app/header.ex:179 +#: lib/e2e_web/components/layouts/captures.html.heex:97 +#: lib/e2e_web/components/layouts/root.html.heex:97 #, elixir-autogen, elixir-format -msgid "Theming" +msgid "Skip to content" +msgstr "Skip to content" + +#: lib/e2e_web/live/pages_live/home_live.ex:372 +#, elixir-autogen, elixir-format +msgid "Star on GitHub" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:50 +#, elixir-autogen, elixir-format +msgid "%{count}+ Corex components in the bundle." +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:10 +#, elixir-autogen, elixir-format +msgid "Building static sites with Tableau and Corex—reference layouts you can clone and ship." +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:81 +#, elixir-autogen, elixir-format +msgid "Coming soon" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:45 +#, elixir-autogen, elixir-format +msgid "Coming-soon landing with Corex components, themes, Markdown posts, and GitHub Pages-ready output." +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:83 +#, elixir-autogen, elixir-format +msgid "More templates" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:86 +#, elixir-autogen, elixir-format +msgid "Phoenix application starters and additional layouts will appear here." +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:5 +#, elixir-autogen, elixir-format +msgid "Starter kits" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:42 +#, elixir-autogen, elixir-format +msgid "Static site" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:74 +#, elixir-autogen, elixir-format +msgid "Tableau + Corex guide" +msgstr "" + +#: lib/e2e_web/components/app/header.ex:139 +#: lib/e2e_web/components/app/header.ex:207 +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:7 +#, elixir-autogen, elixir-format +msgid "Templates" +msgstr "" + +#: lib/e2e_web/controllers/page_controller.ex:1806 +#, elixir-autogen, elixir-format +msgid "Templates · Corex" +msgstr "" + +#: lib/e2e_web/components/app/header.ex:79 +#, elixir-autogen, elixir-format +msgid "Corex Links" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:66 +#, elixir-autogen, elixir-format +msgid "GitHub" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:58 +#, elixir-autogen, elixir-format +msgid "Live demo" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:24 +#, elixir-autogen, elixir-format +msgid "Soonex hero" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:27 +#, elixir-autogen, elixir-format +msgid "Soonex highlights" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:21 +#, elixir-autogen, elixir-format +msgid "Soonex preview slides" +msgstr "" + +#: lib/e2e_web/controllers/page_html/templates_page.html.heex:29 +#, elixir-autogen, elixir-format +msgid "Soonex waitlist" msgstr "" diff --git a/e2e/priv/static/images/templates/soonex/preview-hero.png b/e2e/priv/static/images/templates/soonex/preview-hero.png new file mode 100644 index 00000000..08ab44ac Binary files /dev/null and b/e2e/priv/static/images/templates/soonex/preview-hero.png differ diff --git a/e2e/priv/static/images/templates/soonex/preview-highlights.png b/e2e/priv/static/images/templates/soonex/preview-highlights.png new file mode 100644 index 00000000..669c4ce7 Binary files /dev/null and b/e2e/priv/static/images/templates/soonex/preview-highlights.png differ diff --git a/e2e/priv/static/images/templates/soonex/preview-waitlist.png b/e2e/priv/static/images/templates/soonex/preview-waitlist.png new file mode 100644 index 00000000..09adfb0b Binary files /dev/null and b/e2e/priv/static/images/templates/soonex/preview-waitlist.png differ diff --git a/e2e/test/components/tooltip_markup_test.exs b/e2e/test/components/tooltip_markup_test.exs index dfa70c78..c935029e 100644 --- a/e2e/test/components/tooltip_markup_test.exs +++ b/e2e/test/components/tooltip_markup_test.exs @@ -33,6 +33,22 @@ defmodule E2eWeb.TooltipMarkupTest do assert html =~ ~r/data-part="content"/ end + test "patterns page wires on_trigger_value_change for multi-trigger LiveView", %{conn: conn} do + {:ok, _view, html} = live(conn, ~p"/tooltip/patterns") + + assert html =~ "tooltip-patterns-page" + assert html =~ ~s(id="tooltip-pattern-users") + assert html =~ ~s(data-on-trigger-value-change="tooltip_pattern_trigger_value") + assert html =~ ~s(id="tooltip:tooltip-pattern-users:trigger:1") + assert html =~ "tooltip-pattern-profile-links" + assert html =~ ~s(id="tooltip-profile-1") + assert html =~ ~s(id="tooltip-profile-2") + assert html =~ "tooltip-pattern-profile-link-multi" + assert html =~ ~s(id="tooltip-pattern-profile-link-multi-tool") + assert html =~ ~s(data-on-trigger-value-change="tooltip_pattern_link_multi_value") + assert html =~ ~s(id="tooltip:tooltip-pattern-profile-link-multi-tool:trigger:1") + end + test "renders arrow parts when show_arrow", %{conn: conn} do {:ok, _view, html} = live(conn, ~p"/tooltip/events") diff --git a/eslint.config.mjs b/eslint.config.mjs index ca405ead..6c24da24 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -39,6 +39,7 @@ export default [ HTMLFormElement: "readonly", SVGSVGElement: "readonly", SVGRectElement: "readonly", + DOMRect: "readonly", requestAnimationFrame: "readonly", setTimeout: "readonly", clearTimeout: "readonly", diff --git a/guides/MCP.md b/guides/MCP.md index 119061e0..482fa7a7 100644 --- a/guides/MCP.md +++ b/guides/MCP.md @@ -9,7 +9,7 @@ Corex MCP is based of [Tidewave Phoenix](https://github.com/tidewave-ai/tidewave ```elixir def deps do [ - {:corex, "~> 0.1.0-beta.2"} + {:corex, "~> 0.1.0-beta.3"} ] end ``` diff --git a/guides/localize.md b/guides/localize.md index 8d4a95ae..40794203 100644 --- a/guides/localize.md +++ b/guides/localize.md @@ -43,7 +43,7 @@ Add `localize_web` to your `mix.exs` deps: ```elixir def deps do [ - {:corex, "~> 0.1.0-beta.2"}, + {:corex, "~> 0.1.0-beta.3"}, {:localize_web, "~> 0.5"} ] end diff --git a/guides/manual_installation.md b/guides/manual_installation.md index 54d2a38f..64267438 100644 --- a/guides/manual_installation.md +++ b/guides/manual_installation.md @@ -23,7 +23,7 @@ Add `corex` to your `mix.exs` deps: ```elixir def deps do [ - {:corex, "~> 0.1.0-beta.2"} + {:corex, "~> 0.1.0-beta.3"} ] end ``` diff --git a/guides/tableau.md b/guides/tableau.md index 1a116577..6eee7b3a 100644 --- a/guides/tableau.md +++ b/guides/tableau.md @@ -1,6 +1,10 @@ # Tableau -This guide adds [Corex](installation.html) to a **[Tableau](https://hex.pm/packages/tableau)** static site generated with HEEx, Esbuild, and Tailwind. +This guide adds [Corex](installation.html) to a **[Tableau](https://hex.pm/packages/tableau)** static site generated with HEEx, Esbuild, and Tailwind. It also covers the static-site equivalents of the Phoenix flow for **light/dark mode**, **theme**, **localization**, and the **MCP** plug — none of which can rely on a request-time plug pipeline in a Tableau site. + +If you only need the minimum Corex install, stop after **§6 (Corex hooks)**. Sections **§7–§9** are independent: pull in any combination of mode/theme, localization, and MCP that your site needs. + +For the underlying ideas behind the Phoenix flow (cookies + plugs + verified routes) see [Dark mode](dark_mode.html), [Theming](theming.html), and [Localize](localize.html) — this guide owns the Tableau equivalents. ## Create the site @@ -21,7 +25,7 @@ What `tableau.new` already gives you ## 1. Elixir and the `corex` dependency ```elixir -{:corex, "~> 0.1.0-beta.2"} +{:corex, "~> 0.1.0-beta.3"} ``` Then: @@ -59,7 +63,7 @@ That creates **`assets/corex/`** from the **`corex`** package (see **`Mix.Tasks. ## 4. Tailwind entry: import Corex CSS -After **`@import "tailwindcss"`** (or your Tailwind v4 entry), import design layers. At minimum: **`main.css`**, a **theme** (here **`neo`**), **typography** and **layout**, plus **one stylesheet per component family** you render. Example: +After **`@import "tailwindcss"`** (or your Tailwind v4 entry), import design layers. At minimum: **`main.css`**, a **theme** (here **`neo`**), **typography** and **layout**, plus **one stylesheet per component family** you render. The example below already imports **`select.css`** and **`toggle-group.css`** because they style the theme picker and mode toggle introduced in §7 — drop them if you skip that section. ```css @import "tailwindcss"; @@ -69,69 +73,709 @@ After **`@import "tailwindcss"`** (or your Tailwind v4 entry), import design lay @import "../corex/components/typo.css"; @import "../corex/components/layout.css"; +@import "../corex/components/select.css"; +@import "../corex/components/toggle-group.css"; @import "../corex/components/accordion.css"; ``` +To support all four soonex-style themes at once, also import **`theme/uno.css`**, **`theme/duo.css`**, and **`theme/leo.css`**. Each `theme/*.css` file scopes its tokens under `[data-theme=""]`, so they coexist in one bundle — the active one is whichever the `` attribute names. + Add **`typo`** and **`layout`** classes on **``** ## 5. Root layout -Corex’s JS is **ESM** and Phoenix **`LiveSocket`** expects a **CSRF** token in the page. +Corex’s JS is **ESM** and Phoenix **`LiveSocket`** expects a **CSRF** token in the page. The full root layout below already includes the `data-*` attributes consumed in §7 (mode + theme), the `` attributes consumed in §8 (localization), and the inline reconciliation script defined in §7.5 — drop the pieces you don't need. -In your **`Tableau.Layout`** module (for example **`lib/layouts/root_layout.ex`**): +In your **`Tableau.Layout`** module (typically **`lib/layouts/root_layout.ex`**): -1. **`import Phoenix.Controller, only: [get_csrf_token: 0]`** -2. Inside **``**, add: - - ```heex - - ``` +```elixir +defmodule MyApp.RootLayout do + import Phoenix.Controller, only: [get_csrf_token: 0] + + use Tableau.Layout + use Phoenix.Component + use Corex + use Gettext, backend: MyApp.Gettext + + def template(assigns) do + locale = MyApp.Locale.current(assigns.page) + Gettext.put_locale(MyApp.Gettext, MyApp.Locale.lang(locale)) + + assigns = + assigns + |> Map.put(:locale, locale) + |> Map.put(:theme, MyApp.Theme.current(assigns)) + |> Map.put(:mode, MyApp.Mode.current(assigns)) + |> Map.put(:site_name, MyApp.Config.site_name()) + + ~H""" + + + + {MyApp.Appearance.head_script()} + + + + {assigns[:page_title] || @site_name} + + + """) + end +end +``` + +The root layout (§5) already calls `{MyApp.Appearance.head_script()}` inside ``. Because the script runs synchronously before the body paints, the page never flashes the wrong theme/mode. + +### 7.5. The bridge: `assets/js/appearance.js` + +Imported as the **first** statement of `assets/js/site.js` (§6). It reads **`data-themes`** / **`data-default-theme`** / **`data-locales`** from `` so the JS doesn't duplicate the config: + +```javascript +(() => { + const html = () => document.documentElement; + + const parseList = (attr) => + (html().getAttribute(attr) || "") + .split(",") + .map((s) => s.trim()) + .filter(Boolean); + + const validThemes = () => parseList("data-themes"); + const defaultTheme = () => + html().getAttribute("data-default-theme") || validThemes()[0] || "neo"; + const validLocales = () => parseList("data-locales"); + + const getSystemMode = () => + window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"; + + const applyTheme = (theme) => { + const themes = validThemes(); + const resolved = themes.includes(theme) ? theme : defaultTheme(); + localStorage.setItem("data-theme", resolved); + html().setAttribute("data-theme", resolved); + return resolved; + }; + + const applyMode = (mode) => { + const resolved = mode === "dark" || mode === "light" ? mode : getSystemMode(); + localStorage.setItem("data-mode", resolved); + html().setAttribute("data-mode", resolved); + return resolved; + }; + + const setLocale = (loc) => { + const allowed = validLocales(); + if (loc && allowed.includes(loc)) localStorage.setItem("data-locale", loc); + }; + + const firstDetailValue = (e) => { + const v = e.detail?.value; + return Array.isArray(v) && v[0] ? v[0] : null; + }; + + const whenControlReady = (id, run) => { + const iv = window.setInterval(() => { + const root = document.getElementById(id); + if (root && !root.hasAttribute("data-loading")) { + window.clearInterval(iv); + run(); + } + }, 10); + window.setTimeout(() => window.clearInterval(iv), 10_000); + }; + + const syncSelect = (id, value) => { + const root = document.getElementById(id); + if (!root || !value) return; + root.dispatchEvent( + new CustomEvent("corex:select:set-value", { detail: { value: [value] } }), + ); + }; + + const syncToggleGroup = (id, mode) => { + const root = document.getElementById(id); + if (!root) return; + root.dispatchEvent( + new CustomEvent("corex:toggle-group:set-value", { + detail: { value: mode === "dark" ? ["dark"] : [] }, + }), + ); + }; + + applyTheme(localStorage.getItem("data-theme") || html().getAttribute("data-theme") || defaultTheme()); + applyMode(localStorage.getItem("data-mode") || html().getAttribute("data-mode") || getSystemMode()); + + whenControlReady("theme-switcher", () => syncSelect("theme-switcher", html().getAttribute("data-theme"))); + whenControlReady("mode-switcher", () => syncToggleGroup("mode-switcher", html().getAttribute("data-mode"))); + whenControlReady("corex-language-switch", () => + syncSelect("corex-language-switch", html().getAttribute("data-locale-selected-path")), + ); + + window.addEventListener("storage", (e) => { + if (e.key === "data-theme" && e.newValue) applyTheme(e.newValue); + if (e.key === "data-mode" && e.newValue) applyMode(e.newValue); + if (e.key === "data-locale" && e.newValue) setLocale(e.newValue); + }); + + window.addEventListener("corex:set-theme", (e) => { + applyTheme(firstDetailValue(e) || defaultTheme()); + }); + + window.addEventListener("corex:set-mode", (e) => { + const raw = e.detail?.value; + const isDark = Array.isArray(raw) && raw.includes("dark"); + applyMode(isDark ? "dark" : "light"); + }); + + window.addEventListener("corex:set-locale", (e) => { + const raw = firstDetailValue(e); + const seg = (raw || "").replace(/^\/+|\/+$/g, "").split("/")[0] || ""; + setLocale(seg); + }); +})(); +``` + +The **`whenControlReady`** helper waits for each Corex control to finish hydrating (its hook clears the **`data-loading`** attribute once `mount` runs), then pushes the current value via **`corex:select:set-value`** / **`corex:toggle-group:set-value`**. This is what keeps the picker UI in sync with `localStorage` after the inline reconciliation script ran. + +The **`storage`** listener gives you cross-tab sync for free: change theme in one tab and every other open tab follows. + +### 7.6. Theme picker and mode toggle + +Render both inside the root layout (§5), typically in a header or a floating `<.tooltip>`. The DOM ids **`theme-switcher`** and **`mode-switcher`** must match the values the bridge looks for. + +```heex +<.select + id="theme-switcher" + class="select select--sm" + dir={MyApp.Locale.dir(@locale)} + items={MyApp.Theme.select_items()} + value={[@theme]} + close_on_select={false} + update_trigger={false} + on_value_change_client="corex:set-theme" + translation={%Corex.Select.Translation{placeholder: gettext("Theme")}} +> + <:label class="sr-only">{gettext("Theme")} + <:item :let={item}>{item.label} + <:trigger> + <.heroicon name="hero-swatch" class="icon" /> + + <:item_indicator> + <.heroicon name="hero-check" class="icon" /> + + + +<.toggle_group + id="mode-switcher" + class="toggle-group toggle-group--sm toggle-group--duo toggle-group--circle" + multiple={false} + deselectable={true} + value={MyApp.Mode.toggle_value(@mode)} + dir={MyApp.Locale.dir(@locale)} + on_value_change_client="corex:set-mode" +> + <:item value="dark" aria_label={gettext("Toggle color mode")}> + <.heroicon name="hero-sun" class="icon state-on" /> + <.heroicon name="hero-moon" class="icon state-off" /> + + +``` + +Drop **`dir={…}`** when you skip §8 and replace **`gettext(...)`** with plain strings if you don't want Gettext. The Corex Design **`state-on`** / **`state-off`** classes flip which icon is visible based on the toggle's selected value. + +## 8. Localization + +The Phoenix flow in [Localize](localize.html) plugs locale resolution into the router and wraps localized routes in **`localize do … end`**. Tableau has no router, so locales are **baked in at build time**: + +1. **App config** — supported locales + default locale. +2. **`MyApp.Gettext`** + **`MyApp.Locale`** — the Gettext backend and a small helper that drives ``, **`swap_path/2`**, and the language switcher items. +3. **Per-locale page modules** generated with **`Module.create/3`**, with permalink **`"/"`** for the default locale and **`"//..."`** for the rest. +4. **`<.select redirect>`** language switcher in the layout that navigates to the swapped path; the bridge persists the choice to `localStorage` so the next visit lands on the right locale. + +### 8.1. Add the dependencies + +```elixir +def deps do + [ + {:gettext, "~> 1.0"}, + {:localize, "~> 0.26"} + ] +end +``` + +```bash +mix deps.get +mix localize.download_locales en ar +``` + +**`mix localize.download_locales`** populates the on-disk CLDR cache that **`Localize.Locale.get/3`** (used by **`MyApp.Locale.dir/1`**) and **`Localize.Locale.display_name/2`** (used by **`MyApp.Locale.label/1`**) read from. Run it once after adding the dep, and again whenever the supported list changes; consider hooking it into **`mix setup`** so fresh clones don't have to remember. + +> **`localize_web` is not required** in a Tableau site — its plugs and **`Localize.Routes`** are Phoenix-router only. Add it only if you want its HTML helpers in templates. + +### 8.2. Configure Gettext + supported locales + +Put default and allowed locales on the Gettext backend (and optional small helpers), not scattered across `config :my_app`: + +```elixir +defmodule MyApp.Gettext do + use Gettext.Backend, + otp_app: :my_app, + default_locale: "en", + allowed_locales: ~w(en ar) + + def default_locale, do: __gettext__(:default_locale) + def locales, do: Gettext.known_locales(__MODULE__) +end +``` + +In **`config/config.exs`**, wire Corex to the host catalog via **Phoenix** (see **`Corex.Gettext`** — it reads `Application.get_env(:phoenix, :gettext_backend)`), set JSON for Phoenix, and declare **Localize** supported locales (must use literals or fixed atoms here: config is evaluated before your app modules are compiled, so you cannot call `Gettext.known_locales/1` from this file): + +```elixir +config :phoenix, + gettext_backend: MyApp.Gettext, + json_library: Jason + +config :localize, + supported_locales: ~w(en ar)a +``` + +**`config :phoenix, :gettext_backend`** is what makes Corex components (Select, Editable, Dialog, …) pull their default labels from your catalog. Override a single label with a **`Translation`** struct on the component. + +Point **`MyApp.Config`** (§7.2) at Gettext for the same list the rest of the app uses: + +```elixir +def default_locale, do: MyApp.Gettext.default_locale() +def locales, do: MyApp.Gettext.locales() +``` + +### 8.3. `MyApp.Locale` + +```elixir +defmodule MyApp.Locale do + def locales, do: MyApp.Config.locales() + def default_locale_string, do: MyApp.Config.default_locale() + + def current(page) when is_map(page) do + perm = Map.get(page, :permalink) || Map.get(page, "permalink") || "/" + + case String.split(perm, "/", trim: true) do + [first | _] -> if first in locales(), do: first, else: default_locale_string() + [] -> default_locale_string() + end + end + + def lang(locale) when is_binary(locale), do: locale + def lang(_), do: default_locale_string() + + def dir(locale) do + loc = lang(locale) + + case Localize.Locale.get(loc, [:layout, :character_order], fallback: true) do + {:ok, :rtl} -> "rtl" + {:ok, :ltr} -> "ltr" + _ -> if loc == "ar", do: "rtl", else: "ltr" + end + end + + def label(loc) when is_atom(loc), do: label(Atom.to_string(loc)) + + def label(loc) when is_binary(loc) do + case Localize.Locale.display_name(loc, locale: loc) do + {:ok, name} -> name + _ -> String.upcase(loc) + end + end + + def swap_path(request_path, target_locale) do + target = to_string(target_locale) + supported = locales() + default = default_locale_string() + + rest = + case String.split(request_path, "/", trim: true) do + [first | tail] -> if first in supported, do: tail, else: [first | tail] + [] -> [] + end + + cond do + target == default and rest == [] -> "/" + target == default -> "/" <> Enum.join(rest, "/") + rest == [] -> "/" <> target <> "/" + true -> "/" <> Enum.join([target | rest], "/") + end + end + + def current_path(%{permalink: perm}) when is_binary(perm) do + if String.starts_with?(perm, "/"), do: perm, else: "/" <> perm + end + + def current_path(_), do: "/" + + def selected_path(page, locale), do: page |> current_path() |> swap_path(locale) + + def language_select_items(current_path) do + locales() + |> Enum.map(fn loc -> + dest = swap_path(current_path, loc) + + Corex.List.Item.new(%{ + id: dest, + to: dest, + label: label(loc) + }) + end) + |> Corex.List.new() + end + + def language_select_value(current_path, locale), do: [swap_path(current_path, locale)] +end +``` + +**`current/1`** reads the page's permalink — the first path segment is the locale when supported, otherwise the default. **`swap_path/2`** is the workhorse for the language switcher: it strips the existing locale segment, prepends the target, and serves the default locale at **`/`** (instead of **`/en/`**) so canonical URLs stay clean. **`dir/1`** falls back through CLDR character order, then a hard-coded `ar → rtl` for safety. + +### 8.4. Per-locale page modules + +A single template module keeps the markup; **`Module.create/3`** builds one **`Tableau.Page`** per locale with the right permalink: + +```elixir +defmodule MyApp.HomePage do + use Phoenix.Component + use Corex + use Gettext, backend: MyApp.Gettext + + def template(assigns) do + ~H""" +
+

{gettext("Welcome")}

+

{gettext("Hello from %{name}.", name: MyApp.Config.site_name())}

+
+ """ + end +end + +for locale <- MyApp.Config.locales() do + mod = Module.concat(MyApp.HomePage, String.upcase(locale)) + + permalink = + if locale == MyApp.Config.default_locale(), do: "/", else: "/#{locale}/" + + Module.create( + mod, + quote do + use Tableau.Page, + layout: MyApp.RootLayout, + permalink: unquote(permalink), + title: unquote(MyApp.Config.site_name()), + page_kind: :home + + def template(assigns), do: MyApp.HomePage.template(assigns) + end, + __ENV__ + ) +end +``` + +Repeat the **`for`** block for every other page (about, posts index, …) you want under every locale. Markdown posts can keep a single layout (e.g. **`MyApp.PostLayout`**) and use **`permalink: /:title/`** in the front matter — the locale prefix only applies to the page modules you generate yourself. + +### 8.5. Language switcher + +The root layout in §5 already sets **``** and the **`data-locale*`** attributes, and it calls **`Gettext.put_locale/2`**. Render the language switcher anywhere in the body — typically in a footer: + +```heex +<.select + id="corex-language-switch" + class="select select--sm max-w-6xs" + dir={MyApp.Locale.dir(@locale)} + items={MyApp.Locale.language_select_items(MyApp.Locale.current_path(@page))} + value={MyApp.Locale.language_select_value(MyApp.Locale.current_path(@page), @locale)} + redirect + on_value_change_client="corex:set-locale" + translation={%Corex.Select.Translation{placeholder: gettext("Language")}} + positioning={%Corex.Positioning{same_width: true}} +> + <:label class="sr-only">{gettext("Language")} + <:item :let={item}>{item.label} + <:trigger> + <.heroicon name="hero-language" class="icon" /> + + <:item_indicator> + <.heroicon name="hero-check" class="icon" /> + + +``` + +**`redirect`** makes the **`<.select>`** navigate to **`item.to`** on selection (the **`swap_path/2`** result), and **`on_value_change_client="corex:set-locale"`** lets the bridge persist the choice in **`localStorage["data-locale"]`** so other open tabs (and the language picker after hydration) stay in sync. The active locale on each page is still driven by the URL — `/` for the default locale, `//...` for the others — so canonical links survive sharing. + +### 8.6. Translate strings + +Wrap user-facing strings in **`gettext("…")`** and run the extract / merge cycle: + +```bash +mix gettext.extract +mix gettext.merge priv/gettext +``` + +Edit **`priv/gettext//LC_MESSAGES/default.po`** and fill in the **`msgstr`**s. Corex components pick up the translations automatically through **`config :corex, :gettext_backend`**. + +## 9. MCP via Bandit (optional) + +**`mix corex.new`** for Phoenix wires **`plug Corex.MCP`** directly into the endpoint. Tableau builds static HTML and has no endpoint, so MCP runs as a **separate Bandit child** in the application supervisor on a dedicated port (default **`4004`**). + +For what **`Corex.MCP`** exposes and how it's used by AI tools, see [MCP](mcp.html). + +### 9.1. The plug + +```elixir +defmodule MyApp.McpPlug do + use Plug.Builder + + plug Corex.MCP + plug :not_found + + defp not_found(conn, _) do + if conn.halted? do + conn + else + conn + |> Plug.Conn.put_resp_content_type("text/plain") + |> Plug.Conn.send_resp(404, "Not found") + end + end +end +``` + +**`Corex.MCP`** halts the conn for the routes it handles; the **`:not_found`** fallback returns a 404 for everything else so the Bandit child doesn't sit silent on unrelated paths. + +### 9.2. The supervisor child + +```elixir +defmodule MyApp.Application do + use Application + + @impl true + def start(_type, _args) do + children = + if Application.get_env(:my_app, :mcp_enabled, false) do + [ + {Bandit, + plug: MyApp.McpPlug, + scheme: :http, + port: Application.get_env(:my_app, :mcp_port, 4004)} + ] + else + [] + end + + Supervisor.start_link(children, strategy: :one_for_one, name: MyApp.Supervisor) + end +end +``` + +Add **`{:bandit, "~> 1.0"}`** to your deps if it isn't there yet, and point **`mod:`** in **`mix.exs`** at **`{MyApp.Application, []}`** so the supervisor starts. + +### 9.3. Per-environment config + +Enable it in **`config/dev.exs`** (and **`config/test.exs`** if you also need it for tests): + +```elixir +config :my_app, :mcp_enabled, true +config :my_app, :mcp_port, 4004 +``` + +Production keeps **`:mcp_enabled`** falsey by default. With Tableau's dev server on **`:4999`** and MCP on **`:4004`**, point your MCP client at **`http://localhost:4004`**. + ## Try a component After **`mix compile`** and your usual Tableau asset build (for example **`mix tableau.build`** or watch tasks from **`config :tableau, :assets`**), use a component in a page template. @@ -151,3 +795,6 @@ After **`mix compile`** and your usual Tableau asset build (for example **`mix t - [Installation](installation.html) — **`mix corex.new`**, first components, next steps. - [Manual installation](manual_installation.html) — Esbuild details, **`mix corex.design`**, **`type="module"`**, **`use Corex`**, toasts, MCP, and Phoenix-only layout notes. +- [Dark mode](dark_mode.html) and [Theming](theming.html) — Phoenix-flow equivalents of §7 with cookies + plugs. +- [Localize](localize.html) — Phoenix-flow equivalent of §8 with **`localize_web`** plugs and **`localize do … end`**. +- [MCP](mcp.html) — what **`Corex.MCP`** does and the standard Phoenix-pipeline integration. diff --git a/installer/lib/corex_new/patches.ex b/installer/lib/corex_new/patches.ex index 5910c0f2..d65c682e 100644 --- a/installer/lib/corex_new/patches.ex +++ b/installer/lib/corex_new/patches.ex @@ -356,11 +356,11 @@ defmodule Corex.New.Patches do if trimmed != "" do ~s([path: "#{trimmed}", override: true]) else - "\"~> 0.1.0-beta.2\"" + "\"~> 0.1.0-beta.3\"" end _ -> - "\"~> 0.1.0-beta.2\"" + "\"~> 0.1.0-beta.3\"" end end diff --git a/installer/mix.exs b/installer/mix.exs index 4fa1fb08..e566273b 100644 --- a/installer/mix.exs +++ b/installer/mix.exs @@ -6,7 +6,7 @@ end defmodule Corex.New.MixProject do use Mix.Project - @version "0.1.0-beta.2" + @version "0.1.0-beta.3" @phoenix_version "1.8.4" @scm_url "https://github.com/corex-ui/corex" diff --git a/installer/templates/corex_design/corex/components/avatar.css b/installer/templates/corex_design/corex/components/avatar.css index 1c25ecfc..2a0c9c66 100644 --- a/installer/templates/corex_design/corex/components/avatar.css +++ b/installer/templates/corex_design/corex/components/avatar.css @@ -1,6 +1,10 @@ @import "../main.css"; @layer components { + .avatar[data-loading] [data-scope="avatar"][data-part="root"] { + @apply ui-loading; + } + .avatar[dir="rtl"] [data-scope="avatar"][data-part="fallback"] { text-align: end; } diff --git a/installer/templates/corex_design/corex/components/carousel.css b/installer/templates/corex_design/corex/components/carousel.css index fe349948..91ab441b 100644 --- a/installer/templates/corex_design/corex/components/carousel.css +++ b/installer/templates/corex_design/corex/components/carousel.css @@ -1,6 +1,10 @@ @import "../main.css"; @layer components { + .carousel[data-loading] [data-scope="carousel"][data-part="root"] { + @apply ui-loading; + } + .carousel { width: 100%; max-width: var(--container-md); diff --git a/installer/templates/corex_design/corex/components/clipboard.css b/installer/templates/corex_design/corex/components/clipboard.css index d8cf7c79..1055c680 100644 --- a/installer/templates/corex_design/corex/components/clipboard.css +++ b/installer/templates/corex_design/corex/components/clipboard.css @@ -1,6 +1,10 @@ @import "../main.css"; @layer components { + .clipboard[data-loading] [data-scope="clipboard"][data-part="root"] { + @apply ui-loading; + } + .clipboard { width: fit-content; } diff --git a/installer/templates/corex_design/corex/components/code.css b/installer/templates/corex_design/corex/components/code.css index 1ff16fec..037c57c8 100644 --- a/installer/templates/corex_design/corex/components/code.css +++ b/installer/templates/corex_design/corex/components/code.css @@ -24,31 +24,36 @@ background-attachment: local; background-position: 0 0; - & code { + & code[data-part="content"] { padding-inline-end: --spacing(11); + white-space: pre-wrap; } } code.code { - display: inline-flex; - width: fit-content; + display: inline-block; max-width: 100%; - overflow: hidden; - text-overflow: ellipsis; - font-family: inherit; - font-size: inherit; - line-height: inherit; - padding-inline: var(--spacing-space); + overflow: visible; + vertical-align: baseline; + box-decoration-break: clone; + -webkit-box-decoration-break: clone; + font-family: var(--font-code); + font-size: var(--text-sm); + line-height: var(--text-sm--line-height); + padding-inline: var(--spacing-space-sm); + padding-block: 0.12em; border: 1px solid var(--color-border); border-radius: var(--radius-md); - justify-content: start; - align-items: start; - white-space: wrap; - overflow-wrap: break-word; - flex-wrap: wrap; + background-color: var(--color-layer); + color: var(--color-ink); user-select: all; } + code.code > span[data-part="content"] { + white-space: pre-wrap; + overflow-wrap: break-word; + } + pre.code.unselectable, code.code.unselectable { -webkit-touch-callout: none; @@ -150,6 +155,11 @@ font-size: inherit; line-height: inherit; } + + &:is(code.code) > span[data-part="content"] { + font-size: inherit; + line-height: inherit; + } } @utility code--max-w-none { diff --git a/installer/templates/corex_design/corex/components/collapsible.css b/installer/templates/corex_design/corex/components/collapsible.css index 79a0275f..405f9fb6 100644 --- a/installer/templates/corex_design/corex/components/collapsible.css +++ b/installer/templates/corex_design/corex/components/collapsible.css @@ -1,6 +1,9 @@ @import "../main.css"; @layer components { + .collapsible[data-loading] [data-scope="collapsible"][data-part="root"] { + @apply ui-loading; + } .collapsible { width: 100%; @@ -70,7 +73,8 @@ .collapsible [data-scope="collapsible"][data-part="root"][data-loading], [data-scope="collapsible"][data-part="root"][data-loading] { - pointer-events: none; + @apply ui-loading; + min-height: var(--spacing-size); min-width: var(--container-7xs); } diff --git a/installer/templates/corex_design/corex/components/dialog.css b/installer/templates/corex_design/corex/components/dialog.css index c82eaf7a..718302e0 100644 --- a/installer/templates/corex_design/corex/components/dialog.css +++ b/installer/templates/corex_design/corex/components/dialog.css @@ -1,6 +1,10 @@ @import "../main.css"; @layer components { + .dialog[data-loading] > * { + @apply ui-loading; + } + .dialog [data-scope="dialog"][data-part="trigger"] { @apply ui-trigger; } diff --git a/installer/templates/corex_design/corex/components/floating-panel.css b/installer/templates/corex_design/corex/components/floating-panel.css index c91ebf1a..940f8fc2 100644 --- a/installer/templates/corex_design/corex/components/floating-panel.css +++ b/installer/templates/corex_design/corex/components/floating-panel.css @@ -2,6 +2,10 @@ @import "./scrollbar.css"; @layer components { + .floating-panel[data-loading] [data-scope="floating-panel"][data-part="root"] { + @apply ui-loading; + } + .floating-panel [data-scope="floating-panel"][data-part="trigger"] { @apply ui-trigger; } diff --git a/installer/templates/corex_design/corex/components/layout-heading.css b/installer/templates/corex_design/corex/components/layout-heading.css index 66d46198..2c5c9256 100644 --- a/installer/templates/corex_design/corex/components/layout-heading.css +++ b/installer/templates/corex_design/corex/components/layout-heading.css @@ -27,6 +27,13 @@ margin: 0; } + .layout-heading [data-scope="layout-heading"][data-part="title"] { + color: var(--color-ink); + } + + .layout-heading [data-scope="layout-heading"][data-part="subtitle"] { + color: var(--color-ink-muted); + } .layout-heading [data-scope="layout-heading"][data-part="actions"] { display: flex; @@ -36,4 +43,15 @@ padding: 0; align-items: start; } +} + +@utility layout-heading--* { + + [data-scope="layout-heading"][data-part="title"] { + color: --value(--color-ink-*, [color]); + } + + [data-scope="layout-heading"][data-part="subtitle"] { + color: --value(--color-ink-*, [color]); + } } \ No newline at end of file diff --git a/installer/templates/corex_design/corex/components/layout.css b/installer/templates/corex_design/corex/components/layout.css index d754ac28..b164f678 100644 --- a/installer/templates/corex_design/corex/components/layout.css +++ b/installer/templates/corex_design/corex/components/layout.css @@ -175,6 +175,21 @@ min-width: var(--container-md); } + .layout .layout__section-intro { + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + gap: var(--spacing-space); + width: 100%; + max-width: var(--container-md); + margin-inline: auto; + } + + .layout .layout__section-intro > p { + margin: 0; + } + .layout .layout__side, .layout .layout__aside { display: none; diff --git a/installer/templates/corex_design/corex/components/link.css b/installer/templates/corex_design/corex/components/link.css index 61725620..c53e5b7c 100644 --- a/installer/templates/corex_design/corex/components/link.css +++ b/installer/templates/corex_design/corex/components/link.css @@ -4,6 +4,34 @@ .link { @apply ui-link; } + + .link.link--skip { + position: fixed; + inset-inline-start: var(--spacing-space-4); + inset-block-start: -9999px; + z-index: 10000; + max-width: min(100vw - var(--spacing-space-8), 20rem); + padding-block: var(--spacing-space-3); + padding-inline: var(--spacing-space-4); + margin: 0; + overflow: visible; + background: var(--color-layer); + color: var(--color-ink); + border: 1px solid var(--color-border); + box-shadow: 0 4px 24px rgb(0 0 0 / 0.12); + transition: inset-block-start 0.15s ease; + } + + .link.link--skip:focus, + .link.link--skip:focus-visible { + inset-block-start: var(--spacing-space-4); + } + + @media (prefers-reduced-motion: reduce) { + .link.link--skip { + transition: none; + } + } } @utility link--* { color: --value(--color-ink, [color]); diff --git a/installer/templates/corex_design/corex/components/listbox.css b/installer/templates/corex_design/corex/components/listbox.css index 00c2625d..88f51b04 100644 --- a/installer/templates/corex_design/corex/components/listbox.css +++ b/installer/templates/corex_design/corex/components/listbox.css @@ -1,18 +1,40 @@ @import "../main.css"; +@import "./scrollbar.css"; @layer components { + .listbox[data-loading] [data-scope="listbox"][data-part="root"] { + @apply ui-loading; + } + .listbox { width: 100%; max-width: var(--container-5xs); } + .listbox[data-orientation="horizontal"] { + max-width: var(--container-md); + } + .listbox [data-scope="listbox"][data-part="root"] { @apply ui-root; + flex-direction: column; + flex-wrap: nowrap; + align-items: stretch; width: 100%; gap: var(--spacing-space); } + .listbox [data-scope="listbox"][data-part="root"] > [data-scope="listbox"][data-part="content"] { + width: 100%; + min-width: 0; + } + + .listbox [data-scope="listbox"][data-part="root"][data-orientation="horizontal"] { + flex-direction: column; + flex-wrap: nowrap; + } + .listbox [data-scope="listbox"][data-part="label"] { @apply ui-label; } @@ -22,11 +44,13 @@ } .listbox [data-scope="listbox"][data-part="item-group-label"] { + display: flex; + align-items: center; font-size: var(--text-base); line-height: var(--text-base--line-height); text-align: start; - padding-inline: --spacing(4); - padding-block: --spacing(4); + min-height: var(--spacing-size); + padding-inline: var(--spacing-space); background-color: var(--color-root); color: var(--color-ink); border-bottom: 1px solid var(--color-border); @@ -38,6 +62,29 @@ flex-direction: column; } + .listbox + [data-scope="listbox"][data-part="content"][data-layout="list"][data-orientation="horizontal"] { + display: flex; + flex-direction: row; + flex-wrap: nowrap; + width: 100%; + min-width: 0; + } + + .listbox + [data-scope="listbox"][data-part="content"][data-layout="list"][data-orientation="horizontal"]:not( + :has([data-part="item-group"]) + ) { + @apply scrollbar scrollbar--sm; + + overflow-x: auto; + overflow-y: hidden; + background-color: var(--color-border); + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + gap: 1px; + } + .listbox [data-scope="listbox"][data-part="content"][data-layout="grid"]:not( :has([data-part="item-group"]) @@ -64,8 +111,8 @@ } .listbox - [data-scope="listbox"][data-part="content"]:not( - :has([data-part="item-group"]) + [data-scope="listbox"][data-part="content"]:not(:has([data-part="item-group"])):not( + [data-layout="list"][data-orientation="horizontal"] ), .listbox [data-scope="listbox"][data-part="item-group"] { background-color: var(--color-border); @@ -79,20 +126,83 @@ @apply ui-item; } + .listbox + [data-scope="listbox"][data-part="content"][data-layout="list"][data-orientation="horizontal"]:not( + :has([data-part="item-group"]) + ) + > [data-scope="listbox"][data-part="item"] { + flex: 0 0 auto; + min-width: max-content; + width: auto; + } + + .listbox [data-scope="listbox"][data-part="content"] [data-scope="listbox"][data-part="item-text"] { + flex: 1 1 0%; + min-width: 0; + max-width: 100%; + width: auto; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + display: block; + text-align: start; + } + + .listbox + [data-scope="listbox"][data-part="content"][data-layout="list"][data-orientation="horizontal"]:not( + :has([data-part="item-group"]) + ) + > [data-scope="listbox"][data-part="item"] + [data-scope="listbox"][data-part="item-text"] { + flex: none; + min-width: auto; + max-width: none; + overflow: visible; + text-overflow: clip; + white-space: nowrap; + } + + .listbox [data-scope="listbox"][data-part="content"] [data-scope="listbox"][data-part="item-indicator"] { + flex-shrink: 0; + } + + .listbox [data-scope="listbox"][data-part="content"] [data-scope="listbox"][data-part="item-indicator"] .icon, + .listbox + [data-scope="listbox"][data-part="content"] + [data-scope="listbox"][data-part="item-indicator"] + [class^="hero-"] { + transition: none !important; + } + .listbox [data-scope="listbox"][data-part="content"][dir="rtl"] - [data-scope="listbox"][data-part="item"] { - border-radius: 0; + [data-scope="listbox"][data-part="item-indicator"] + .icon, + .listbox + [data-scope="listbox"][data-part="content"][dir="rtl"] + [data-scope="listbox"][data-part="item-indicator"] + [class^="hero-"], + .listbox + [data-scope="listbox"][data-part="content"] + [data-scope="listbox"][data-part="item"][dir="rtl"] + > [data-scope="listbox"][data-part="item-indicator"] + .icon, + .listbox + [data-scope="listbox"][data-part="content"] + [data-scope="listbox"][data-part="item"][dir="rtl"] + > [data-scope="listbox"][data-part="item-indicator"] + [class^="hero-"] { + transform: scaleX(-1) !important; } - [dir="rtl"] .listbox [data-scope="listbox"][data-part="item-indicator"] { - transform: scaleX(-1); + .listbox + [data-scope="listbox"][data-part="content"][dir="rtl"] + [data-scope="listbox"][data-part="item"] { + border-radius: 0; } } @utility listbox--* { - max-width: --value(--container-*, [length]); - [data-scope="listbox"][data-part="root"] { width: 100%; gap: --value(--spacing-space-*, [length]); @@ -106,7 +216,6 @@ [data-scope="listbox"][data-part="item"] { font-size: --value(--text-*, [length]); line-height: --value(--text-*--line-height, [length]); - } [data-scope="listbox"][data-part="item"][data-selected] { diff --git a/installer/templates/corex_design/corex/components/menu.css b/installer/templates/corex_design/corex/components/menu.css index 6eea07d1..b28599a8 100644 --- a/installer/templates/corex_design/corex/components/menu.css +++ b/installer/templates/corex_design/corex/components/menu.css @@ -1,6 +1,10 @@ @import "../main.css"; @layer components { + .menu[data-loading] [data-scope="menu"][data-part="root"] { + @apply ui-loading; + } + .menu [data-scope="menu"][data-part="content"] { @apply ui-content; diff --git a/installer/templates/corex_design/corex/components/select.css b/installer/templates/corex_design/corex/components/select.css index 55381bf3..d48a6e84 100644 --- a/installer/templates/corex_design/corex/components/select.css +++ b/installer/templates/corex_design/corex/components/select.css @@ -157,423 +157,52 @@ } -@utility select--sm { +@utility select--* { [data-scope="select"][data-part="root"] { - gap: var(--spacing-space-sm); + gap: --value(--spacing-space-*, [length]); } [data-scope="select"][data-part="label"] { - font-size: var(--text-sm); - line-height: var(--text-sm--line-height); - } - - [data-scope="select"][data-part="control"] { - max-width: var(--container-sm); - gap: var(--spacing-space-sm); - } - - [data-scope="select"][data-part="trigger"] { - font-size: var(--text-sm); - line-height: var(--text-sm--line-height); - padding-inline: var(--spacing-space-sm); - gap: var(--spacing-space-sm); - min-height: var(--spacing-size-sm); - } - - [data-scope="select"][data-part="item"] { - font-size: var(--text-sm); - line-height: var(--text-sm--line-height); - padding-inline: var(--spacing-space-sm); - gap: var(--spacing-space-sm); - } - - [data-scope="select"][data-part="content"] [data-part="item-indicator"] { - padding-inline-end: var(--spacing-space-sm); - } - - [data-scope="select"][data-part="item-group-label"] { - font-size: var(--text-sm); - line-height: var(--text-sm--line-height); - } -} - -@utility select--md { - [data-scope="select"][data-part="root"] { - gap: var(--spacing-space-md); - } - - [data-scope="select"][data-part="label"] { - font-size: var(--text-base); - line-height: var(--text-base--line-height); - } - - [data-scope="select"][data-part="control"] { - max-width: var(--container-md); - gap: var(--spacing-space-md); - } - - [data-scope="select"][data-part="trigger"] { - font-size: var(--text-base); - line-height: var(--text-base--line-height); - padding-inline: var(--spacing-space-md); - gap: var(--spacing-space-md); - min-height: var(--spacing-size-md); - } - - [data-scope="select"][data-part="item"] { - font-size: var(--text-base); - line-height: var(--text-base--line-height); - padding-inline: var(--spacing-space-md); - gap: var(--spacing-space-md); - } - - [data-scope="select"][data-part="content"] [data-part="item-indicator"] { - padding-inline-end: var(--spacing-space-md); - } - - [data-scope="select"][data-part="item-group-label"] { - font-size: var(--text-base); - line-height: var(--text-base--line-height); - } -} - -@utility select--lg { - [data-scope="select"][data-part="root"] { - gap: var(--spacing-space-lg); - } - - [data-scope="select"][data-part="label"] { - font-size: var(--text-lg); - line-height: var(--text-lg--line-height); + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); } [data-scope="select"][data-part="control"] { - max-width: var(--container-lg); - gap: var(--spacing-space-lg); + max-width: --value(--container-*, [length]); + gap: --value(--spacing-space-*, [length]); } [data-scope="select"][data-part="trigger"] { - font-size: var(--text-lg); - line-height: var(--text-lg--line-height); - padding-inline: var(--spacing-space-lg); - gap: var(--spacing-space-lg); - min-height: var(--spacing-size-lg); - } - - [data-scope="select"][data-part="item"] { - font-size: var(--text-lg); - line-height: var(--text-lg--line-height); - padding-inline: var(--spacing-space-lg); - gap: var(--spacing-space-lg); - } - - [data-scope="select"][data-part="content"] [data-part="item-indicator"] { - padding-inline-end: var(--spacing-space-lg); - } - - [data-scope="select"][data-part="item-group-label"] { - font-size: var(--text-lg); - line-height: var(--text-lg--line-height); - } -} - -@utility select--xl { - [data-scope="select"][data-part="root"] { - gap: var(--spacing-space-xl); - } - - [data-scope="select"][data-part="label"] { - font-size: var(--text-xl); - line-height: var(--text-xl--line-height); + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); + padding-inline: --value(--spacing-space-*, [length]); + gap: --value(--spacing-space-*, [length]); + min-height: --value(--spacing-size-*, [length]); } - [data-scope="select"][data-part="control"] { - max-width: var(--container-xl); - gap: var(--spacing-space-xl); + [data-scope="select"][data-part="trigger"] .icon, + [data-scope="select"][data-part="trigger"] [class^="hero-"] { + color: inherit; } - [data-scope="select"][data-part="trigger"] { - font-size: var(--text-xl); - line-height: var(--text-xl--line-height); - padding-inline: var(--spacing-space-xl); - gap: var(--spacing-space-xl); - min-height: var(--spacing-size-xl); + [data-scope="select"][data-part="trigger"] svg { + fill: currentColor; } [data-scope="select"][data-part="item"] { - font-size: var(--text-xl); - line-height: var(--text-xl--line-height); - padding-inline: var(--spacing-space-xl); - gap: var(--spacing-space-xl); + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); + padding-inline: --value(--spacing-space-*, [length]); + gap: --value(--spacing-space-*, [length]); } [data-scope="select"][data-part="content"] [data-part="item-indicator"] { - padding-inline-end: var(--spacing-space-xl); + padding-inline-end: --value(--spacing-space-*, [length]); } [data-scope="select"][data-part="item-group-label"] { - font-size: var(--text-xl); - line-height: var(--text-xl--line-height); - } -} - -@utility select--accent { - & [data-scope="select"][data-part="item"][data-selected], - & [data-scope="select"][data-part="item"][data-state="checked"] { - background-color: var(--color-accent); - color: var(--color-accent-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:hover, - & [data-scope="select"][data-part="item"][data-state="checked"]:hover { - background-color: var(--color-accent-hover); - color: var(--color-accent-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:active, - & [data-scope="select"][data-part="item"][data-state="checked"]:active { - background-color: var(--color-accent-active); - color: var(--color-accent-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:focus-visible, - & [data-scope="select"][data-part="item"][data-state="checked"]:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-accent-ink); - } - - @media (hover: hover) { - & [data-scope="select"][data-part="item"][data-highlighted]:not(:hover) { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - @media (hover: none) { - & [data-scope="select"][data-part="item"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - & [data-scope="select"][data-part="item"][data-selected][data-highlighted], - & [data-scope="select"][data-part="item"][data-state="checked"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-accent-ink); - background-color: var(--color-accent-hover); - color: var(--color-accent-ink); - } -} - -@utility select--brand { - & [data-scope="select"][data-part="item"][data-selected], - & [data-scope="select"][data-part="item"][data-state="checked"] { - background-color: var(--color-brand); - color: var(--color-brand-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:hover, - & [data-scope="select"][data-part="item"][data-state="checked"]:hover { - background-color: var(--color-brand-hover); - color: var(--color-brand-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:active, - & [data-scope="select"][data-part="item"][data-state="checked"]:active { - background-color: var(--color-brand-active); - color: var(--color-brand-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:focus-visible, - & [data-scope="select"][data-part="item"][data-state="checked"]:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-brand-ink); - } - - @media (hover: hover) { - & [data-scope="select"][data-part="item"][data-highlighted]:not(:hover) { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - @media (hover: none) { - & [data-scope="select"][data-part="item"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - & [data-scope="select"][data-part="item"][data-selected][data-highlighted], - & [data-scope="select"][data-part="item"][data-state="checked"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-brand-ink); - background-color: var(--color-brand-hover); - color: var(--color-brand-ink); - } -} - -@utility select--alert { - & [data-scope="select"][data-part="item"][data-selected], - & [data-scope="select"][data-part="item"][data-state="checked"] { - background-color: var(--color-alert); - color: var(--color-alert-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:hover, - & [data-scope="select"][data-part="item"][data-state="checked"]:hover { - background-color: var(--color-alert-hover); - color: var(--color-alert-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:active, - & [data-scope="select"][data-part="item"][data-state="checked"]:active { - background-color: var(--color-alert-active); - color: var(--color-alert-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:focus-visible, - & [data-scope="select"][data-part="item"][data-state="checked"]:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-alert-ink); - } - - @media (hover: hover) { - & [data-scope="select"][data-part="item"][data-highlighted]:not(:hover) { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - @media (hover: none) { - & [data-scope="select"][data-part="item"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - & [data-scope="select"][data-part="item"][data-selected][data-highlighted], - & [data-scope="select"][data-part="item"][data-state="checked"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-alert-ink); - background-color: var(--color-alert-hover); - color: var(--color-alert-ink); - } -} - -@utility select--info { - & [data-scope="select"][data-part="item"][data-selected], - & [data-scope="select"][data-part="item"][data-state="checked"] { - background-color: var(--color-info); - color: var(--color-info-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:hover, - & [data-scope="select"][data-part="item"][data-state="checked"]:hover { - background-color: var(--color-info-hover); - color: var(--color-info-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:active, - & [data-scope="select"][data-part="item"][data-state="checked"]:active { - background-color: var(--color-info-active); - color: var(--color-info-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:focus-visible, - & [data-scope="select"][data-part="item"][data-state="checked"]:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-info-ink); - } - - @media (hover: hover) { - & [data-scope="select"][data-part="item"][data-highlighted]:not(:hover) { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - @media (hover: none) { - & [data-scope="select"][data-part="item"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - & [data-scope="select"][data-part="item"][data-selected][data-highlighted], - & [data-scope="select"][data-part="item"][data-state="checked"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-info-ink); - background-color: var(--color-info-hover); - color: var(--color-info-ink); - } -} - -@utility select--success { - & [data-scope="select"][data-part="item"][data-selected], - & [data-scope="select"][data-part="item"][data-state="checked"] { - background-color: var(--color-success); - color: var(--color-success-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:hover, - & [data-scope="select"][data-part="item"][data-state="checked"]:hover { - background-color: var(--color-success-hover); - color: var(--color-success-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:active, - & [data-scope="select"][data-part="item"][data-state="checked"]:active { - background-color: var(--color-success-active); - color: var(--color-success-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:focus-visible, - & [data-scope="select"][data-part="item"][data-state="checked"]:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-success-ink); - } - - @media (hover: hover) { - & [data-scope="select"][data-part="item"][data-highlighted]:not(:hover) { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - @media (hover: none) { - & [data-scope="select"][data-part="item"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - & [data-scope="select"][data-part="item"][data-selected][data-highlighted], - & [data-scope="select"][data-part="item"][data-state="checked"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-success-ink); - background-color: var(--color-success-hover); - color: var(--color-success-ink); + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); } } @@ -581,10 +210,6 @@ [data-scope="select"][data-part="trigger"] { border-radius: --value(--radius-*, [length]); } - - [data-scope="select"][data-part="content"] { - border-radius: --value(--radius-*, [length]); - } } @utility select--text-* { diff --git a/installer/templates/corex_design/corex/components/switch.css b/installer/templates/corex_design/corex/components/switch.css index 3eb786ee..e964dc46 100644 --- a/installer/templates/corex_design/corex/components/switch.css +++ b/installer/templates/corex_design/corex/components/switch.css @@ -6,8 +6,8 @@ } .switch [data-scope="switch"][data-part="root"] { - --switch-track-width: --spacing(8); - --switch-track-height: --spacing(4); + --switch-track-width: var(--spacing-size); + --switch-track-height: calc(var(--spacing-size) * 0.5); --switch-track-diff: calc( var(--switch-track-width) - var(--switch-track-height) ); @@ -82,7 +82,9 @@ background: var(--color-selected-ink); } - [dir="rtl"] .switch [data-scope="switch"][data-part="thumb"][data-state="checked"] { + .switch + [data-scope="switch"][data-part="root"][dir="rtl"] + [data-scope="switch"][data-part="thumb"][data-state="checked"] { transform: translateX(calc(var(--switch-thumb-x) * -1)); } @@ -101,112 +103,22 @@ } } -@utility switch--sm { - [data-scope="switch"][data-part="root"] { - max-width: var(--container-sm); - } - - [data-scope="switch"][data-part="control"] { - --switch-track-width: calc(calc(var(--spacing-size-sm) * 1.5) * 2.5); - --switch-track-height: calc(var(--spacing-size-sm) * 1.5); - --switch-track-diff: calc( - var(--switch-track-width) - var(--switch-track-height) - ); - --switch-thumb-x: var(--switch-track-diff); - } -} - -@utility switch--md { - [data-scope="switch"][data-part="root"] { - max-width: var(--container-md); - } - - [data-scope="switch"][data-part="control"] { - --switch-track-width: calc(calc(var(--spacing-size-md) * 1.5) * 2.5); - --switch-track-height: calc(var(--spacing-size-md) * 1.5); - --switch-track-diff: calc( - var(--switch-track-width) - var(--switch-track-height) - ); - --switch-thumb-x: var(--switch-track-diff); - } -} - -@utility switch--lg { - [data-scope="switch"][data-part="root"] { - max-width: var(--container-lg); - } - - [data-scope="switch"][data-part="control"] { - --switch-track-width: calc(calc(var(--spacing-size-lg) * 1.5) * 2.5); - --switch-track-height: calc(var(--spacing-size-lg) * 1.5); - --switch-track-diff: calc( - var(--switch-track-width) - var(--switch-track-height) - ); - --switch-thumb-x: var(--switch-track-diff); - } -} - -@utility switch--xl { - [data-scope="switch"][data-part="root"] { - max-width: var(--container-xl); - } +@utility switch--* { [data-scope="switch"][data-part="control"] { - --switch-track-width: calc(calc(var(--spacing-size-xl) * 1.5) * 2.5); - --switch-track-height: calc(var(--spacing-size-xl) * 1.5); + --switch-track-width: --value(--spacing-size-*, [length]); + --switch-track-height: calc(--value(--spacing-size-*, [length]) * 0.5); --switch-track-diff: calc( var(--switch-track-width) - var(--switch-track-height) ); --switch-thumb-x: var(--switch-track-diff); } -} - -@utility switch--accent { - [data-scope="switch"][data-part="control"][data-state="checked"] { - background-color: var(--color-accent); - - & [data-scope="switch"][data-part="thumb"] { - background-color: var(--color-accent-ink); - } - } -} - -@utility switch--brand { - [data-scope="switch"][data-part="control"][data-state="checked"] { - background-color: var(--color-brand); - - & [data-scope="switch"][data-part="thumb"] { - background-color: var(--color-brand-ink); - } - } -} - -@utility switch--alert { - [data-scope="switch"][data-part="control"][data-state="checked"] { - background-color: var(--color-alert); - - & [data-scope="switch"][data-part="thumb"] { - background-color: var(--color-alert-ink); - } - } -} - -@utility switch--info { - [data-scope="switch"][data-part="control"][data-state="checked"] { - background-color: var(--color-info); - - & [data-scope="switch"][data-part="thumb"] { - background-color: var(--color-info-ink); - } - } -} -@utility switch--success { [data-scope="switch"][data-part="control"][data-state="checked"] { - background-color: var(--color-success); + background-color: --value(--color-*, [color]); & [data-scope="switch"][data-part="thumb"] { - background-color: var(--color-success-ink); + background-color: --value(--color-*-ink, [color]); } } } \ No newline at end of file diff --git a/installer/templates/corex_design/corex/components/tabs.css b/installer/templates/corex_design/corex/components/tabs.css index 3e2851cd..dde6e7c0 100644 --- a/installer/templates/corex_design/corex/components/tabs.css +++ b/installer/templates/corex_design/corex/components/tabs.css @@ -1,6 +1,10 @@ @import "../main.css"; @layer components { + .tabs[data-loading] [data-scope="tabs"][data-part="root"] { + @apply ui-loading; + } + .tabs { width: 100%; max-width: none; @@ -96,178 +100,55 @@ } } -@utility tabs--sm { - [data-scope="tabs"][data-part="root"] { - gap: var(--spacing-space-sm); - } -} - -@utility tabs--md { +@utility tabs--* { [data-scope="tabs"][data-part="root"] { - gap: var(--spacing-space-md); - } -} - -@utility tabs--lg { - [data-scope="tabs"][data-part="root"] { - gap: var(--spacing-space-lg); - } -} - -@utility tabs--xl { - [data-scope="tabs"][data-part="root"] { - gap: var(--spacing-space-xl); - } -} - -@utility tabs--text-* { - [data-scope="tabs"][data-part="trigger"] { - font-size: --value(--text-*, [length]); - line-height: --value(--text-*--line-height, [length]); - } - - [data-scope="tabs"][data-part="content"] { - font-size: --value(--text-*, [length]); - line-height: --value(--text-*--line-height, [length]); - } -} - -@utility tabs--rounded-* { - [data-scope="tabs"][data-part="list"] { - border-radius: --value(--radius-*, [length]); - } - - [data-scope="tabs"][data-part="content"] { - border-radius: --value(--radius-*, [length]); + gap: --value(--spacing-space-*, [length]); } -} -@utility tabs--accent { [data-scope="tabs"][data-part="trigger"][data-selected] { - background-color: var(--color-accent); - color: var(--color-accent-ink); + background-color: --value(--color-*, [color]); + color: --value(--color-*-ink, [color]); &:hover { - background-color: var(--color-accent-hover); + background-color: --value(--color-*-hover, [color]); } &:active { - background-color: var(--color-accent-active); + background-color: --value(--color-*-active, [color]); } &:focus-visible { outline: none; - box-shadow: inset 0 0 0 2px var(--color-accent-ink); + box-shadow: inset 0 0 0 2px --value(--color-*-ink, [color]); } &:disabled, &[data-disabled], &[disabled] { - background-color: var(--color-accent-muted); + background-color: --value(--color-*-muted, [color]); } } } -@utility tabs--brand { - [data-scope="tabs"][data-part="trigger"][data-selected] { - background-color: var(--color-brand); - color: var(--color-brand-ink); - - &:hover { - background-color: var(--color-brand-hover); - } - - &:active { - background-color: var(--color-brand-active); - } - - &:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-brand-ink); - } - - &:disabled, - &[data-disabled], - &[disabled] { - background-color: var(--color-brand-muted); - } +@utility tabs--text-* { + [data-scope="tabs"][data-part="trigger"] { + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); } -} -@utility tabs--alert { - [data-scope="tabs"][data-part="trigger"][data-selected] { - background-color: var(--color-alert); - color: var(--color-alert-ink); - - &:hover { - background-color: var(--color-alert-hover); - } - - &:active { - background-color: var(--color-alert-active); - } - - &:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-alert-ink); - } - - &:disabled, - &[data-disabled], - &[disabled] { - background-color: var(--color-alert-muted); - } + [data-scope="tabs"][data-part="content"] { + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); } } -@utility tabs--info { - [data-scope="tabs"][data-part="trigger"][data-selected] { - background-color: var(--color-info); - color: var(--color-info-ink); - - &:hover { - background-color: var(--color-info-hover); - } - - &:active { - background-color: var(--color-info-active); - } - - &:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-info-ink); - } - - &:disabled, - &[data-disabled], - &[disabled] { - background-color: var(--color-info-muted); - } +@utility tabs--rounded-* { + [data-scope="tabs"][data-part="list"] { + border-radius: --value(--radius-*, [length]); } -} - -@utility tabs--success { - [data-scope="tabs"][data-part="trigger"][data-selected] { - background-color: var(--color-success); - color: var(--color-success-ink); - - &:hover { - background-color: var(--color-success-hover); - } - &:active { - background-color: var(--color-success-active); - } - - &:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-success-ink); - } - - &:disabled, - &[data-disabled], - &[disabled] { - background-color: var(--color-success-muted); - } + [data-scope="tabs"][data-part="content"] { + border-radius: --value(--radius-*, [length]); } } + diff --git a/installer/templates/corex_design/corex/components/timer.css b/installer/templates/corex_design/corex/components/timer.css index 2a0ca3f3..19cc8d28 100644 --- a/installer/templates/corex_design/corex/components/timer.css +++ b/installer/templates/corex_design/corex/components/timer.css @@ -3,21 +3,42 @@ @layer components { .timer { width: 100%; - max-width: var(--container-md); - } - - .timer [data-scope="timer"][data-part="root"] { - @apply ui-root; + max-width: fit-content; } .timer [data-scope="timer"][data-part="area"] { display: flex; width: 100%; justify-content: center; - align-items: center; + align-items: flex-start; flex-wrap: wrap; } + .timer [data-scope="timer"][data-part="area"]:not(:has([data-scope="timer"][data-part="separator"])) { + gap: var(--spacing-space-sm); + } + + .timer [data-timer-segment] { + display: flex; + flex-direction: column; + align-items: center; + justify-content: flex-start; + min-width: 0; + gap: var(--spacing-space); + } + + .timer [data-scope="timer"][data-part="item-label"] { + font-size: var(--text-xs); + line-height: var(--text-xs--line-height); + font-weight: var(--font-weight-semibold); + letter-spacing: 0.08em; + text-transform: uppercase; + color: var(--color-ink-muted); + text-align: center; + white-space: nowrap; + max-width: 100%; + } + .timer [data-scope="timer"][data-part="item"] { display: flex; align-items: center; @@ -52,11 +73,33 @@ z-index: 1; } + .timer [data-scope="timer"][data-part="item"][data-type="days"] { + box-sizing: border-box; + min-width: max(2em, 3.5ch); + width: auto; + aspect-ratio: unset; + padding-inline: var(--spacing-space); + } + + .timer [data-scope="timer"][data-part="item"][data-type="days"]::before { + content: "000\a 001\a 002\a 003\a 004\a 005\a 006\a 007\a 008\a 009\a 010\a 011\a 012\a 013\a 014\a 015\a 016\a 017\a 018\a 019\a 020\a 021\a 022\a 023\a 024\a 025\a 026\a 027\a 028\a 029\a 030\a 031\a 032\a 033\a 034\a 035\a 036\a 037\a 038\a 039\a 040\a 041\a 042\a 043\a 044\a 045\a 046\a 047\a 048\a 049\a 050\a 051\a 052\a 053\a 054\a 055\a 056\a 057\a 058\a 059\a 060\a 061\a 062\a 063\a 064\a 065\a 066\a 067\a 068\a 069\a 070\a 071\a 072\a 073\a 074\a 075\a 076\a 077\a 078\a 079\a 080\a 081\a 082\a 083\a 084\a 085\a 086\a 087\a 088\a 089\a 090\a 091\a 092\a 093\a 094\a 095\a 096\a 097\a 098\a 099\a 100\a 101\a 102\a 103\a 104\a 105\a 106\a 107\a 108\a 109\a 110\a 111\a 112\a 113\a 114\a 115\a 116\a 117\a 118\a 119\a 120\a 121\a 122\a 123\a 124\a 125\a 126\a 127\a 128\a 129\a 130\a 131\a 132\a 133\a 134\a 135\a 136\a 137\a 138\a 139\a 140\a 141\a 142\a 143\a 144\a 145\a 146\a 147\a 148\a 149\a 150\a 151\a 152\a 153\a 154\a 155\a 156\a 157\a 158\a 159\a 160\a 161\a 162\a 163\a 164\a 165\a 166\a 167\a 168\a 169\a 170\a 171\a 172\a 173\a 174\a 175\a 176\a 177\a 178\a 179\a 180\a 181\a 182\a 183\a 184\a 185\a 186\a 187\a 188\a 189\a 190\a 191\a 192\a 193\a 194\a 195\a 196\a 197\a 198\a 199\a 200\a 201\a 202\a 203\a 204\a 205\a 206\a 207\a 208\a 209\a 210\a 211\a 212\a 213\a 214\a 215\a 216\a 217\a 218\a 219\a 220\a 221\a 222\a 223\a 224\a 225\a 226\a 227\a 228\a 229\a 230\a 231\a 232\a 233\a 234\a 235\a 236\a 237\a 238\a 239\a 240\a 241\a 242\a 243\a 244\a 245\a 246\a 247\a 248\a 249\a 250\a 251\a 252\a 253\a 254\a 255\a 256\a 257\a 258\a 259\a 260\a 261\a 262\a 263\a 264\a 265\a 266\a 267\a 268\a 269\a 270\a 271\a 272\a 273\a 274\a 275\a 276\a 277\a 278\a 279\a 280\a 281\a 282\a 283\a 284\a 285\a 286\a 287\a 288\a 289\a 290\a 291\a 292\a 293\a 294\a 295\a 296\a 297\a 298\a 299\a 300\a 301\a 302\a 303\a 304\a 305\a 306\a 307\a 308\a 309\a 310\a 311\a 312\a 313\a 314\a 315\a 316\a 317\a 318\a 319\a 320\a 321\a 322\a 323\a 324\a 325\a 326\a 327\a 328\a 329\a 330\a 331\a 332\a 333\a 334\a 335\a 336\a 337\a 338\a 339\a 340\a 341\a 342\a 343\a 344\a 345\a 346\a 347\a 348\a 349\a 350\a 351\a 352\a 353\a 354\a 355\a 356\a 357\a 358\a 359\a 360\a 361\a 362\a 363\a 364\a 365\a 366\a 367\a 368\a 369\a 370\a 371\a 372\a 373\a 374\a 375\a 376\a 377\a 378\a 379\a 380\a 381\a 382\a 383\a 384\a 385\a 386\a 387\a 388\a 389\a 390\a 391\a 392\a 393\a 394\a 395\a 396\a 397\a 398\a 399\a 400\a 401\a 402\a 403\a 404\a 405\a 406\a 407\a 408\a 409\a 410\a 411\a 412\a 413\a 414\a 415\a 416\a 417\a 418\a 419\a 420\a 421\a 422\a 423\a 424\a 425\a 426\a 427\a 428\a 429\a 430\a 431\a 432\a 433\a 434\a 435\a 436\a 437\a 438\a 439\a 440\a 441\a 442\a 443\a 444\a 445\a 446\a 447\a 448\a 449\a 450\a 451\a 452\a 453\a 454\a 455\a 456\a 457\a 458\a 459\a 460\a 461\a 462\a 463\a 464\a 465\a 466\a 467\a 468\a 469\a 470\a 471\a 472\a 473\a 474\a 475\a 476\a 477\a 478\a 479\a 480\a 481\a 482\a 483\a 484\a 485\a 486\a 487\a 488\a 489\a 490\a 491\a 492\a 493\a 494\a 495\a 496\a 497\a 498\a 499\a 500\a 501\a 502\a 503\a 504\a 505\a 506\a 507\a 508\a 509\a 510\a 511\a 512\a 513\a 514\a 515\a 516\a 517\a 518\a 519\a 520\a 521\a 522\a 523\a 524\a 525\a 526\a 527\a 528\a 529\a 530\a 531\a 532\a 533\a 534\a 535\a 536\a 537\a 538\a 539\a 540\a 541\a 542\a 543\a 544\a 545\a 546\a 547\a 548\a 549\a 550\a 551\a 552\a 553\a 554\a 555\a 556\a 557\a 558\a 559\a 560\a 561\a 562\a 563\a 564\a 565\a 566\a 567\a 568\a 569\a 570\a 571\a 572\a 573\a 574\a 575\a 576\a 577\a 578\a 579\a 580\a 581\a 582\a 583\a 584\a 585\a 586\a 587\a 588\a 589\a 590\a 591\a 592\a 593\a 594\a 595\a 596\a 597\a 598\a 599\a 600\a 601\a 602\a 603\a 604\a 605\a 606\a 607\a 608\a 609\a 610\a 611\a 612\a 613\a 614\a 615\a 616\a 617\a 618\a 619\a 620\a 621\a 622\a 623\a 624\a 625\a 626\a 627\a 628\a 629\a 630\a 631\a 632\a 633\a 634\a 635\a 636\a 637\a 638\a 639\a 640\a 641\a 642\a 643\a 644\a 645\a 646\a 647\a 648\a 649\a 650\a 651\a 652\a 653\a 654\a 655\a 656\a 657\a 658\a 659\a 660\a 661\a 662\a 663\a 664\a 665\a 666\a 667\a 668\a 669\a 670\a 671\a 672\a 673\a 674\a 675\a 676\a 677\a 678\a 679\a 680\a 681\a 682\a 683\a 684\a 685\a 686\a 687\a 688\a 689\a 690\a 691\a 692\a 693\a 694\a 695\a 696\a 697\a 698\a 699\a 700\a 701\a 702\a 703\a 704\a 705\a 706\a 707\a 708\a 709\a 710\a 711\a 712\a 713\a 714\a 715\a 716\a 717\a 718\a 719\a 720\a 721\a 722\a 723\a 724\a 725\a 726\a 727\a 728\a 729\a 730\a 731\a 732\a 733\a 734\a 735\a 736\a 737\a 738\a 739\a 740\a 741\a 742\a 743\a 744\a 745\a 746\a 747\a 748\a 749\a 750\a 751\a 752\a 753\a 754\a 755\a 756\a 757\a 758\a 759\a 760\a 761\a 762\a 763\a 764\a 765\a 766\a 767\a 768\a 769\a 770\a 771\a 772\a 773\a 774\a 775\a 776\a 777\a 778\a 779\a 780\a 781\a 782\a 783\a 784\a 785\a 786\a 787\a 788\a 789\a 790\a 791\a 792\a 793\a 794\a 795\a 796\a 797\a 798\a 799\a 800\a 801\a 802\a 803\a 804\a 805\a 806\a 807\a 808\a 809\a 810\a 811\a 812\a 813\a 814\a 815\a 816\a 817\a 818\a 819\a 820\a 821\a 822\a 823\a 824\a 825\a 826\a 827\a 828\a 829\a 830\a 831\a 832\a 833\a 834\a 835\a 836\a 837\a 838\a 839\a 840\a 841\a 842\a 843\a 844\a 845\a 846\a 847\a 848\a 849\a 850\a 851\a 852\a 853\a 854\a 855\a 856\a 857\a 858\a 859\a 860\a 861\a 862\a 863\a 864\a 865\a 866\a 867\a 868\a 869\a 870\a 871\a 872\a 873\a 874\a 875\a 876\a 877\a 878\a 879\a 880\a 881\a 882\a 883\a 884\a 885\a 886\a 887\a 888\a 889\a 890\a 891\a 892\a 893\a 894\a 895\a 896\a 897\a 898\a 899\a 900\a 901\a 902\a 903\a 904\a 905\a 906\a 907\a 908\a 909\a 910\a 911\a 912\a 913\a 914\a 915\a 916\a 917\a 918\a 919\a 920\a 921\a 922\a 923\a 924\a 925\a 926\a 927\a 928\a 929\a 930\a 931\a 932\a 933\a 934\a 935\a 936\a 937\a 938\a 939\a 940\a 941\a 942\a 943\a 944\a 945\a 946\a 947\a 948\a 949\a 950\a 951\a 952\a 953\a 954\a 955\a 956\a 957\a 958\a 959\a 960\a 961\a 962\a 963\a 964\a 965\a 966\a 967\a 968\a 969\a 970\a 971\a 972\a 973\a 974\a 975\a 976\a 977\a 978\a 979\a 980\a 981\a 982\a 983\a 984\a 985\a 986\a 987\a 988\a 989\a 990\a 991\a 992\a 993\a 994\a 995\a 996\a 997\a 998\a 999"; + } + + .timer [data-scope="timer"][data-part="separator"] { font-size: var(--text-base); line-height: var(--text-base--line-height); - font-weight: var(--font-weight-normal); - padding: --spacing(4); + font-weight: var(--font-weight-semibold); + padding-inline: var(--spacing-space); + padding-block: 0; + display: inline-flex; + align-items: center; + justify-content: center; + height: 2em; + min-height: 2em; + box-sizing: border-box; + flex-shrink: 0; + color: var(--color-ink); } .timer [data-scope="timer"][data-part="control"] { @@ -67,105 +110,90 @@ } .timer [data-scope="timer"][data-part="action-trigger"] { - @apply ui-trigger ui-trigger--square ui-trigger--sm; + @apply ui-trigger ui-trigger--square; + padding: 0 !important; + min-height: 2em !important; + height: 2em; } } -@utility timer--sm { - max-width: var(--container-sm); -} - -@utility timer--md { - max-width: var(--container-md); -} - -@utility timer--lg { - max-width: var(--container-lg); -} +@utility timer--* { -@utility timer--xl { - max-width: var(--container-xl); -} - -@utility timer--text-* { [data-scope="timer"][data-part="item"] { font-size: --value(--text-*, [length]); line-height: --value(--text-*--line-height, [length]); + background: --value(--color-*-muted, [color]); + color: --value(--color-*-ink, [color]); + border-color: --value(--color-*, [color]); } - [data-scope="timer"][data-part="separator"] { - font-size: --value(--text-*, [length]); - line-height: --value(--text-*--line-height, [length]); + [data-scope="timer"][data-part="item"][data-type="days"] { + min-width: max(2em, 3.5ch); } - [data-scope="timer"][data-part="action-trigger"] { + [data-scope="timer"][data-part="item-label"] { font-size: --value(--text-*, [length]); line-height: --value(--text-*--line-height, [length]); + color: --value(--color-*-ink-muted, [color]); } -} -@utility timer--rounded-* { - [data-scope="timer"][data-part="item"] { - border-radius: --value(--radius-*, [length]); + [data-scope="timer"][data-part="separator"] { + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); + padding-inline: --value(--spacing-space-*, [length]); + padding-block: 0; + color: --value(--color-*-ink, [color]); + font-weight: var(--font-weight-semibold); } -} -@utility timer--accent { - [data-scope="timer"][data-part="item"] { - background: var(--color-accent-muted); - color: var(--color-accent-ink); - border-color: var(--color-accent); + [data-scope="timer"][data-part="control"] { + gap: --value(--spacing-space-*, [length]); } - [data-scope="timer"][data-part="separator"] { - color: var(--color-accent-ink); + [data-scope="timer"][data-part="action-trigger"] { + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); + height: 2em; } } -@utility timer--brand { +@utility timer--text-* { [data-scope="timer"][data-part="item"] { - background: var(--color-brand-muted); - color: var(--color-brand-ink); - border-color: var(--color-brand); + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); } - [data-scope="timer"][data-part="separator"] { - color: var(--color-brand-ink); + [data-scope="timer"][data-part="item"][data-type="days"] { + min-width: max(2em, 3.5ch); } -} -@utility timer--alert { - [data-scope="timer"][data-part="item"] { - background: var(--color-alert-muted); - color: var(--color-alert-ink); - border-color: var(--color-alert); + [data-scope="timer"][data-part="item-label"] { + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); } [data-scope="timer"][data-part="separator"] { - color: var(--color-alert-ink); + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); } -} -@utility timer--info { - [data-scope="timer"][data-part="item"] { - background: var(--color-info-muted); - color: var(--color-info-ink); - border-color: var(--color-info); + [data-scope="timer"][data-part="action-trigger"] { + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); } - [data-scope="timer"][data-part="separator"] { - color: var(--color-info-ink); + [data-scope="timer"][data-part="action-trigger"] .icon, + [data-scope="timer"][data-part="action-trigger"] [class^="hero-"] { + font-size: 1em; } } -@utility timer--success { +@utility timer--rounded-* { [data-scope="timer"][data-part="item"] { - background: var(--color-success-muted); - color: var(--color-success-ink); - border-color: var(--color-success); + border-radius: --value(--radius-*, [length]); } - [data-scope="timer"][data-part="separator"] { - color: var(--color-success-ink); + [data-scope="timer"][data-part="action-trigger"] { + border-radius: --value(--radius-*, [length]); } } diff --git a/installer/templates/corex_design/corex/components/toast.css b/installer/templates/corex_design/corex/components/toast.css index cfea5b6b..51c70c67 100644 --- a/installer/templates/corex_design/corex/components/toast.css +++ b/installer/templates/corex_design/corex/components/toast.css @@ -91,7 +91,7 @@ } .toast [data-scope="toast"][data-part="root"][data-type="error"] [data-scope="toast"][data-part="title"] { - color: var(--color-alert); + color: var(--color-ink-alert); } .toast [data-scope="toast"][data-part="root"][data-type="error"] [data-scope="toast"][data-part="progressbar"] { @@ -101,7 +101,7 @@ } .toast [data-scope="toast"][data-part="root"][data-type="info"] [data-scope="toast"][data-part="title"] { - color: var(--color-info); + color: var(--color-ink-info); } .toast [data-scope="toast"][data-part="root"][data-type="info"] [data-scope="toast"][data-part="progressbar"] { @@ -111,7 +111,7 @@ } .toast [data-scope="toast"][data-part="root"][data-type="success"] [data-scope="toast"][data-part="title"] { - color: var(--color-success); + color: var(--color-ink-success); } .toast [data-scope="toast"][data-part="root"][data-type="success"] [data-scope="toast"][data-part="progressbar"] { diff --git a/installer/templates/corex_design/corex/components/toggle-group.css b/installer/templates/corex_design/corex/components/toggle-group.css index afd9d2f1..30451c10 100644 --- a/installer/templates/corex_design/corex/components/toggle-group.css +++ b/installer/templates/corex_design/corex/components/toggle-group.css @@ -1,6 +1,10 @@ @import "../main.css"; @layer components { + .toggle-group[data-loading] [data-scope="toggle-group"][data-part="root"] { + @apply ui-loading; + } + .toggle-group { width: 100%; max-width: var(--container-5xs); diff --git a/installer/templates/corex_design/corex/components/tooltip.css b/installer/templates/corex_design/corex/components/tooltip.css index b579aa50..6aad82d9 100644 --- a/installer/templates/corex_design/corex/components/tooltip.css +++ b/installer/templates/corex_design/corex/components/tooltip.css @@ -1,6 +1,15 @@ @import "../main.css"; @layer components { + .tooltip { + position: relative; + z-index: 20; + } + + .tooltip[data-loading] > * { + @apply ui-loading; + } + .tooltip [data-scope="tooltip"][data-part="positioner"] { z-index: 50; position: absolute; @@ -53,20 +62,14 @@ } @utility tooltip--* { - max-width: --value(--container-*, [length]); - [data-scope="tooltip"][data-part="content"] { - padding: --value(--spacing-space-*, [length]); - font-size: --value(--text-*, [length]); - line-height: --value(--text-*--line-height, [length]); - background: --value(--color-ui, [color]); - color: --value(--color-ink, [color]); + background: --value(--color-*, [color]); + color: --value(--color-*-ink, [color]); border-color: --value(--color-border, [color]); } [data-scope="tooltip"][data-part="arrow"] { - --arrow-size: calc(--value(--spacing-*, [length]) * 0.25); - --arrow-background: --value(--color-ui, [color]); + --arrow-background: --value(--color-*, [color]); } [data-scope="tooltip"][data-part="arrow-tip"] { @@ -74,3 +77,21 @@ border-color: --value(--color-border, [color]); } } + +@utility tooltip--text-* { + [data-scope="tooltip"][data-part="content"] { + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); + } +} + +@utility tooltip--size-* { + [data-scope="tooltip"][data-part="content"] { + max-width: --value(--container-*, [length]); + padding: --value(--spacing-space-*, [length]); + } + + [data-scope="tooltip"][data-part="arrow"] { + --arrow-size: calc(--value(--spacing-space-*, [length]) * 0.25); + } +} diff --git a/installer/templates/corex_design/corex/components/tree-view.css b/installer/templates/corex_design/corex/components/tree-view.css index 5f958695..498cbcaf 100644 --- a/installer/templates/corex_design/corex/components/tree-view.css +++ b/installer/templates/corex_design/corex/components/tree-view.css @@ -1,6 +1,9 @@ @import "../main.css"; @layer components { + .tree-view[data-loading] [data-scope="tree-view"][data-part="root"] { + @apply ui-loading; + } .tree-view { width: 100%; @@ -97,6 +100,10 @@ opacity: 0.65; } + .tree-view [data-scope="tree-view"][data-part="root"][data-loading] { + @apply ui-loading; + } + .tree-view [data-scope="tree-view"][data-part="root"][data-loading] [data-scope="tree-view"][data-part="branch-text"], .tree-view [data-scope="tree-view"][data-part="root"][data-loading] [data-scope="tree-view"][data-part="branch-indicator"], .tree-view [data-scope="tree-view"][data-part="root"][data-loading] [data-scope="tree-view"][data-part="item-text"] { diff --git a/installer/templates/corex_design/corex/components/typo.css b/installer/templates/corex_design/corex/components/typo.css index 96065aa3..b935fea7 100644 --- a/installer/templates/corex_design/corex/components/typo.css +++ b/installer/templates/corex_design/corex/components/typo.css @@ -271,4 +271,130 @@ color: var(--color-ink); border-radius: var(--radius-md); } + + .markdown ul, + .markdown ol { + margin-block: var(--spacing-space); + padding-inline-start: 1.5em; + } + + .markdown li { + margin-block: var(--spacing-space-sm); + } + + .markdown li > ul, + .markdown li > ol { + margin-block: var(--spacing-space-sm); + } + + .markdown table { + width: 100%; + border-collapse: collapse; + margin-block: var(--spacing-space-lg); + font-size: var(--text-sm); + line-height: var(--text-sm--line-height); + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + overflow: hidden; + } + + .markdown thead { + background: var(--color-layer); + color: var(--color-ink); + } + + .markdown th, + .markdown td { + padding: var(--spacing-space-sm) var(--spacing-space); + border-bottom: 1px solid var(--color-border); + text-align: start; + vertical-align: top; + } + + .markdown tbody tr:last-child td { + border-bottom: none; + } + + .markdown img { + max-width: 100%; + height: auto; + display: block; + border-radius: var(--radius-md); + border: 1px solid var(--color-border); + margin-block: var(--spacing-space); + } + + .markdown .footnotes { + margin-block-start: var(--spacing-space-xl); + padding-block-start: var(--spacing-space-lg); + border-top: 1px solid var(--color-border); + font-size: var(--text-sm); + line-height: var(--text-sm--line-height); + color: var(--color-ink-muted); + } + + .markdown .footnotes ol { + padding-inline-start: 1.25em; + } + + .markdown .footnote-ref a { + color: var(--color-link); + text-decoration: none; + } + + .markdown .markdown-alert { + margin-block: var(--spacing-space-lg); + padding: var(--spacing-space); + border-radius: var(--radius-md); + border: 1px solid var(--color-border); + background: var(--color-layer); + width: fit-content; + max-width: 100%; + box-sizing: border-box; + } + + .markdown .markdown-alert-title { + font-weight: var(--font-weight-semibold); + margin-block: 0 var(--spacing-space-sm); + } + + .markdown .markdown-alert-note { + border-inline-start: 4px solid var(--color-info); + } + + .markdown .markdown-alert-note .markdown-alert-title { + color: var(--color-info); + } + + .markdown .markdown-alert-tip { + border-inline-start: 4px solid var(--color-success); + } + + .markdown .markdown-alert-tip .markdown-alert-title { + color: var(--color-success); + } + + .markdown .markdown-alert-important { + border-inline-start: 4px solid var(--color-accent); + } + + .markdown .markdown-alert-important .markdown-alert-title { + color: var(--color-accent); + } + + .markdown .markdown-alert-warning { + border-inline-start: 4px solid var(--color-alert); + } + + .markdown .markdown-alert-warning .markdown-alert-title { + color: var(--color-alert); + } + + .markdown .markdown-alert-caution { + border-inline-start: 4px solid var(--color-border); + } + + .markdown .markdown-alert-caution .markdown-alert-title { + color: var(--color-ink-muted); + } } \ No newline at end of file diff --git a/installer/templates/corex_design/corex/tokens.css b/installer/templates/corex_design/corex/tokens.css index 9fc764ee..cd2d9f5f 100644 --- a/installer/templates/corex_design/corex/tokens.css +++ b/installer/templates/corex_design/corex/tokens.css @@ -5,3 +5,8 @@ @import "./tokens/semantic/text.css"; @import "./tokens/semantic/font.css"; @import "./tokens/semantic/effect.css"; + +@theme inline { + --text-md: var(--text-base); + --text-md--line-height: var(--text-base--line-height); +} diff --git a/installer/templates/corex_design/corex/utilities.css b/installer/templates/corex_design/corex/utilities.css index 8166c6d2..dfc4d859 100644 --- a/installer/templates/corex_design/corex/utilities.css +++ b/installer/templates/corex_design/corex/utilities.css @@ -148,6 +148,7 @@ &[data-disabled], &[disabled] { background-color: --value(--color-*-muted, [color]); + color: var(--color-ink-muted); cursor: not-allowed; } } @@ -488,6 +489,7 @@ &[data-disabled], &[disabled] { background-color: --value(--color-*-muted, [color]); + color: var(--color-ink-muted); cursor: not-allowed; } } diff --git a/lib/components/accordion.ex b/lib/components/accordion.ex index fab755d1..9834851d 100644 --- a/lib/components/accordion.ex +++ b/lib/components/accordion.ex @@ -903,8 +903,8 @@ defmodule Corex.Accordion do ) attr(:dir, :string, - default: "ltr", - values: ["ltr", "rtl"], + default: nil, + values: [nil, "ltr", "rtl"], doc: "The direction of the accordion. When nil, derived from document (html lang + config :rtl_locales)" ) diff --git a/lib/components/accordion/anatomy.ex b/lib/components/accordion/anatomy.ex index 24edb3d7..2e4d5ec2 100644 --- a/lib/components/accordion/anatomy.ex +++ b/lib/components/accordion/anatomy.ex @@ -12,7 +12,7 @@ defmodule Corex.Accordion.Anatomy do collapsible: true, multiple: true, orientation: "vertical", - dir: "ltr", + dir: nil, on_value_change: nil, on_value_change_client: nil, on_focus_change: nil, @@ -28,7 +28,7 @@ defmodule Corex.Accordion.Anatomy do collapsible: boolean(), multiple: boolean(), orientation: String.t(), - dir: String.t(), + dir: String.t() | nil, on_value_change: String.t(), on_value_change_client: String.t(), on_focus_change: String.t(), @@ -40,12 +40,12 @@ defmodule Corex.Accordion.Anatomy do defmodule Root do @moduledoc false - defstruct [:id, orientation: "vertical", dir: "ltr"] + defstruct [:id, orientation: "vertical", dir: nil] @type t :: %__MODULE__{ id: String.t(), orientation: String.t(), - dir: String.t() + dir: String.t() | nil } @ignored_attrs ["data-orientation", "dir", "id"] @@ -57,7 +57,7 @@ defmodule Corex.Accordion.Anatomy do defstruct [ :id, orientation: "vertical", - dir: "ltr", + dir: nil, values: [], value: nil, disabled: false, @@ -69,7 +69,7 @@ defmodule Corex.Accordion.Anatomy do id: String.t(), data: map(), orientation: String.t(), - dir: String.t(), + dir: String.t() | nil, value: String.t() | nil, disabled: boolean(), values: list(String.t()), diff --git a/lib/components/accordion/connect.ex b/lib/components/accordion/connect.ex index 3e8c5772..e67ca295 100644 --- a/lib/components/accordion/connect.ex +++ b/lib/components/accordion/connect.ex @@ -3,7 +3,9 @@ defmodule Corex.Accordion.Connect do alias Corex.Accordion.Anatomy.{Item, ItemContent, ItemIndicator, ItemTrigger, Props, Root} alias Corex.Animation.Height alias Phoenix.LiveView.JS - import Corex.Helpers, only: [validate_value!: 1, get_boolean: 1] + + import Corex.Helpers, + only: [validate_value!: 1, get_boolean: 1, maybe_put_data_dir: 2, maybe_put_dir: 2] @spec props(Props.t()) :: map() def props(assigns) do @@ -24,7 +26,6 @@ defmodule Corex.Accordion.Connect do "data-controlled" => get_boolean(assigns.controlled), "data-multiple" => get_boolean(assigns.multiple), "data-orientation" => assigns.orientation, - "data-dir" => assigns.dir, "data-on-value-change" => assigns.on_value_change, "data-on-value-change-client" => assigns.on_value_change_client, "data-on-focus-change" => assigns.on_focus_change, @@ -32,11 +33,14 @@ defmodule Corex.Accordion.Connect do "data-animation" => assigns.animation } - if assigns.animation == "js" do - Map.merge(base, Height.to_dataset(assigns.animation_options)) - else - base - end + merged = + if assigns.animation == "js" do + Map.merge(base, Height.to_dataset(assigns.animation_options)) + else + base + end + + maybe_put_data_dir(merged, assigns.dir) end # IDs match Zag's default scheme so the JS hook does not have to pass a @@ -52,10 +56,10 @@ defmodule Corex.Accordion.Connect do %{ "data-scope" => "accordion", "data-part" => "root", - "dir" => assigns.dir, "data-orientation" => assigns.orientation, "id" => root_id(assigns.id) } + |> maybe_put_dir(assigns.dir) end def ignore_root(assigns) do @@ -71,10 +75,10 @@ defmodule Corex.Accordion.Connect do "data-disabled" => get_boolean(assigns.disabled), "data-focus" => get_boolean(false), "data-orientation" => assigns.orientation, - "dir" => assigns.dir, "data-state" => if(assigns.value in assigns.values, do: "open", else: "closed"), "id" => item_id(assigns.id, assigns.value) } + |> maybe_put_dir(assigns.dir) end @spec ignore_item(Item.t()) :: JS.t() @@ -88,7 +92,7 @@ defmodule Corex.Accordion.Connect do def trigger(assigns) do expanded = assigns.value in assigns.values - %{ + base_trigger = %{ "data-scope" => "accordion", "data-part" => "item-trigger", "type" => "button", @@ -97,13 +101,14 @@ defmodule Corex.Accordion.Connect do "disabled" => assigns.disabled, "data-focus" => get_boolean(false), "data-orientation" => assigns.orientation, - "dir" => assigns.dir, "data-state" => if(expanded, do: "open", else: "closed"), "id" => trigger_id(assigns.id, assigns.value), "data-controls" => content_id(assigns.id, assigns.value), "aria-controls" => content_id(assigns.id, assigns.value), "data-ownedby" => root_id(assigns.id) } + + maybe_put_dir(base_trigger, assigns.dir) end @spec ignore_trigger(Item.t()) :: JS.t() @@ -125,21 +130,23 @@ defmodule Corex.Accordion.Connect do "data-disabled" => get_boolean(assigns.disabled), "data-focus" => get_boolean(false), "data-orientation" => assigns.orientation, - "dir" => assigns.dir, "aria-labelledby" => trigger_id(assigns.id, assigns.value), "id" => content_id(assigns.id, assigns.value) } - cond do - expanded -> - base + result = + cond do + expanded -> + base - animation in ["js", "custom"] -> - base + animation in ["js", "custom"] -> + base - true -> - Map.put(base, "hidden", true) - end + true -> + Map.put(base, "hidden", true) + end + + maybe_put_dir(result, assigns.dir) end @spec ignore_content(Item.t()) :: JS.t() @@ -160,9 +167,9 @@ defmodule Corex.Accordion.Connect do "data-state" => if(expanded, do: "open", else: "closed"), "data-disabled" => get_boolean(assigns.disabled), "data-focus" => get_boolean(false), - "data-orientation" => assigns.orientation, - "dir" => assigns.dir + "data-orientation" => assigns.orientation } + |> maybe_put_dir(assigns.dir) end @spec ignore_indicator(Item.t()) :: JS.t() diff --git a/lib/components/angle_slider.ex b/lib/components/angle_slider.ex index 7030b54e..1d2dd29a 100644 --- a/lib/components/angle_slider.ex +++ b/lib/components/angle_slider.ex @@ -222,7 +222,7 @@ defmodule Corex.AngleSlider do attr(:read_only, :boolean, default: false, doc: "Whether the slider is read-only") attr(:invalid, :boolean, default: false, doc: "Whether the slider is invalid") attr(:name, :string, default: nil, doc: "Name for form submission") - attr(:dir, :string, default: "ltr", values: ["ltr", "rtl"], doc: "Direction") + attr(:dir, :string, default: nil, values: [nil, "ltr", "rtl"], doc: "Direction") attr(:orientation, :string, default: "vertical", values: ["horizontal", "vertical"]) attr(:value_text_as, :string, diff --git a/lib/components/angle_slider/connect.ex b/lib/components/angle_slider/connect.ex index 9d2f5fe5..4ebf29c1 100644 --- a/lib/components/angle_slider/connect.ex +++ b/lib/components/angle_slider/connect.ex @@ -35,7 +35,7 @@ defmodule Corex.AngleSlider.Connect do def format_number(v) when is_number(v), do: to_string(v) defp display_angle(value, assigns) do - dir = Map.get(assigns, :dir, "ltr") + dir = Map.get(assigns, :dir) if dir == "rtl" do 360 - value diff --git a/lib/components/carousel.ex b/lib/components/carousel.ex index 0320ecc4..9ebb4396 100644 --- a/lib/components/carousel.ex +++ b/lib/components/carousel.ex @@ -88,6 +88,7 @@ defmodule Corex.Carousel do } alias Corex.Carousel.Connect + alias Corex.Carousel.Utils alias Phoenix.LiveView alias Phoenix.LiveView.JS @@ -95,13 +96,20 @@ defmodule Corex.Carousel do attr(:aria_label, :string, default: nil) attr(:items, :list, - required: true, - doc: "List of image URLs (strings) or maps with :url and optional :alt" + default: nil, + doc: + "List of image URLs (strings) or maps with :url and optional :alt. Omit in compound mode; use `item_count` when children do not pass through `items`." + ) + + attr(:item_count, :integer, + default: nil, + doc: + "When set, overrides the slide count used for the hook and compound context (use in compound mode without `items`)." ) attr(:page, :integer, default: 0) attr(:controlled, :boolean, default: false) - attr(:dir, :string, default: "ltr", values: ["ltr", "rtl"]) + attr(:dir, :string, default: nil, values: [nil, "ltr", "rtl"]) attr(:orientation, :string, default: "horizontal", values: ["horizontal", "vertical"]) attr(:slides_per_page, :integer, default: 1) @@ -144,21 +152,10 @@ defmodule Corex.Carousel do end def carousel(assigns) do - items = List.wrap(assigns.items) - slide_count = length(items) - slides_per_page = assigns.slides_per_page || 1 - - total_pages = - if slide_count == 0 do - 0 - else - div(slide_count + slides_per_page - 1, slides_per_page) - end - - page = assigns.page || 0 - loop = assigns.loop || false - prev_disabled = !loop and page <= 0 - next_disabled = !loop and (total_pages == 0 or page >= total_pages - 1) + assigns = Utils.merge_attr_defaults(assigns) + + {items, slide_count, total_pages, prev_disabled, next_disabled, slides_per_page} = + Utils.compute_slide_metrics(assigns) assigns = assigns @@ -169,6 +166,7 @@ defmodule Corex.Carousel do |> assign(:total_pages, total_pages) |> assign(:prev_disabled, prev_disabled) |> assign(:next_disabled, next_disabled) + |> assign(:slides_per_page, slides_per_page) ctx = %{ id: assigns.id, diff --git a/lib/components/carousel/connect.ex b/lib/components/carousel/connect.ex index 80b110a4..62fc109e 100644 --- a/lib/components/carousel/connect.ex +++ b/lib/components/carousel/connect.ex @@ -14,7 +14,7 @@ defmodule Corex.Carousel.Connect do alias Corex.Selectors alias Phoenix.LiveView.JS - import Corex.Helpers, only: [get_boolean: 1] + import Corex.Helpers, only: [get_boolean: 1, maybe_put_data_dir: 2, maybe_put_dir: 2] defp slides_per_move_value(nil), do: nil defp slides_per_move_value("auto"), do: "auto" @@ -30,7 +30,6 @@ defmodule Corex.Carousel.Connect do "data-page" => if(assigns.controlled, do: to_string(assigns.page), else: nil), "data-default-page" => if(assigns.controlled, do: nil, else: to_string(assigns.page)), "data-controlled" => get_boolean(assigns.controlled), - "data-dir" => assigns.dir, "data-orientation" => assigns.orientation, "data-slides-per-page" => to_string(assigns.slides_per_page), "data-loop" => get_boolean(assigns.loop), @@ -47,6 +46,7 @@ defmodule Corex.Carousel.Connect do } base + |> maybe_put_data_dir(assigns.dir) |> maybe_put("data-slides-per-move", slides_per_move_value(assigns.slides_per_move)) |> maybe_put("data-padding", assigns.padding) end @@ -65,14 +65,15 @@ defmodule Corex.Carousel.Connect do style = "width:100%;overflow:hidden;--slides-per-page:#{slides_per_page};--slide-spacing:#{spacing};--slide-item-size:#{slide_item_size};aspect-ratio:4/3" - base = %{ - "data-scope" => "carousel", - "data-part" => "root", - "data-orientation" => assigns.orientation || "horizontal", - "dir" => assigns.dir, - "id" => "carousel:#{assigns.id}", - "style" => style - } + base = + %{ + "data-scope" => "carousel", + "data-part" => "root", + "data-orientation" => assigns.orientation || "horizontal", + "id" => "carousel:#{assigns.id}", + "style" => style + } + |> maybe_put_dir(assigns.dir) case Map.get(assigns, :aria_label) do nil -> Map.put(base, "aria-label", "Carousel #{assigns.id}") @@ -117,12 +118,12 @@ defmodule Corex.Carousel.Connect do "data-scope" => "carousel", "data-part" => "item-group", "data-orientation" => assigns.orientation || "horizontal", - "dir" => assigns.dir, "id" => "carousel:#{assigns.id}:item-group", "aria-live" => "polite", "style" => style, "tabindex" => "0" } + |> maybe_put_dir(assigns.dir) end def ignore_item_group(%ItemGroup{} = assigns) do @@ -144,13 +145,13 @@ defmodule Corex.Carousel.Connect do "data-part" => "item", "data-index" => to_string(assigns.index), "data-orientation" => assigns.orientation || "horizontal", - "dir" => Map.get(assigns, :dir, "ltr"), "id" => "carousel:#{assigns.id}:item:#{assigns.index}", "role" => "group", "aria-roledescription" => "slide", "aria-label" => "#{assigns.index + 1} of #{slide_count}", "style" => style } + |> maybe_put_dir(Map.get(assigns, :dir)) end def ignore_item(%Item{} = assigns) do @@ -211,9 +212,9 @@ defmodule Corex.Carousel.Connect do "data-scope" => "carousel", "data-part" => "indicator-group", "data-orientation" => assigns.orientation || "horizontal", - "dir" => assigns.dir || "ltr", "id" => "carousel:#{assigns.id}:indicator-group" } + |> maybe_put_dir(assigns.dir) end def ignore_indicator_group(%IndicatorGroup{} = assigns) do @@ -232,10 +233,10 @@ defmodule Corex.Carousel.Connect do "data-index" => to_string(assigns.index), "data-current" => get_boolean(assigns.index == page), "data-orientation" => assigns.orientation || "horizontal", - "dir" => assigns.dir || "ltr", "type" => "button", "id" => "carousel:#{assigns.id}:indicator:#{assigns.index}" } + |> maybe_put_dir(assigns.dir) end def ignore_indicator(%Indicator{} = assigns) do diff --git a/lib/components/carousel/utils.ex b/lib/components/carousel/utils.ex new file mode 100644 index 00000000..9f71d89d --- /dev/null +++ b/lib/components/carousel/utils.ex @@ -0,0 +1,64 @@ +defmodule Corex.Carousel.Utils do + @moduledoc false + + def merge_attr_defaults(assigns) when is_map(assigns) do + defaults = %{ + aria_label: nil, + items: nil, + item_count: nil, + page: 0, + controlled: false, + dir: "ltr", + orientation: "horizontal", + slides_per_page: 1, + slides_per_move: nil, + loop: false, + autoplay: false, + autoplay_delay: 4000, + allow_mouse_drag: false, + spacing: "0px", + padding: nil, + in_view_threshold: 0.6, + snap_type: "mandatory", + auto_size: false, + on_page_change: nil, + on_page_change_client: nil, + compound: false + } + + Map.merge(defaults, assigns) + end + + def compute_slide_metrics(assigns) when is_map(assigns) do + items = assigns |> Map.get(:items) |> List.wrap() + slide_count = resolved_slide_count(assigns, items) + slides_per_page = Map.get(assigns, :slides_per_page) || 1 + total_pages = total_pages_for(slide_count, slides_per_page) + page = Map.get(assigns, :page) || 0 + loop = Map.get(assigns, :loop, false) + + prev_disabled = prev_nav_disabled?(loop, page) + next_disabled = next_nav_disabled?(loop, page, total_pages) + + {items, slide_count, total_pages, prev_disabled, next_disabled, slides_per_page} + end + + defp resolved_slide_count(assigns, items) do + case Map.get(assigns, :item_count) do + n when is_integer(n) and n >= 0 -> n + _ -> length(items) + end + end + + defp total_pages_for(0, _slides_per_page), do: 0 + + defp total_pages_for(slide_count, slides_per_page) do + div(slide_count + slides_per_page - 1, slides_per_page) + end + + defp prev_nav_disabled?(loop, page), do: !loop and page <= 0 + + defp next_nav_disabled?(loop, page, total_pages) do + !loop and (total_pages == 0 or page >= total_pages - 1) + end +end diff --git a/lib/components/checkbox.ex b/lib/components/checkbox.ex index 0ff86a59..0b46a12f 100644 --- a/lib/components/checkbox.ex +++ b/lib/components/checkbox.ex @@ -273,8 +273,8 @@ defmodule Corex.Checkbox do ) attr(:dir, :string, - default: "ltr", - values: ["ltr", "rtl"], + default: nil, + values: [nil, "ltr", "rtl"], doc: "The direction of the checkbox. When nil, derived from document (html lang + config :rtl_locales)" ) @@ -440,8 +440,8 @@ defmodule Corex.Checkbox do ) attr(:dir, :string, - default: "ltr", - values: ["ltr", "rtl"], + default: nil, + values: [nil, "ltr", "rtl"], doc: "Same as checkbox: logical direction for layout." ) diff --git a/lib/components/checkbox/connect.ex b/lib/components/checkbox/connect.ex index c2db6561..46c9ee9e 100644 --- a/lib/components/checkbox/connect.ex +++ b/lib/components/checkbox/connect.ex @@ -18,7 +18,9 @@ defmodule Corex.Checkbox.Connect do checkbox_checked_controlled_attr: 2, checkbox_checked_default_attr: 2, checkbox_native_checked: 1, - checkbox_visual_state: 1 + checkbox_visual_state: 1, + maybe_put_data_dir: 2, + maybe_put_dir: 2 ] alias Phoenix.LiveView.JS @@ -35,7 +37,6 @@ defmodule Corex.Checkbox.Connect do "data-value" => assigns.value, "data-name" => assigns.name, "data-form" => assigns.form, - "data-dir" => assigns.dir, "data-orientation" => Map.get(assigns, :orientation, "horizontal"), "data-label" => assigns.label, "data-read-only" => get_boolean(assigns.read_only), @@ -44,6 +45,7 @@ defmodule Corex.Checkbox.Connect do "data-on-checked-change" => assigns.on_checked_change, "data-on-checked-change-client" => assigns.on_checked_change_client } + |> maybe_put_data_dir(assigns.dir) end @spec root(Root.t()) :: map() @@ -55,12 +57,12 @@ defmodule Corex.Checkbox.Connect do "data-scope" => "checkbox", "data-part" => "root", "data-orientation" => orientation, - "dir" => assigns.dir, "id" => "checkbox:#{assigns.id}", "htmlFor" => "checkbox:#{assigns.id}:input", "for" => "checkbox:#{assigns.id}:input", "data-state" => state } + |> maybe_put_dir(assigns.dir) end def ignore_root(assigns) do @@ -104,10 +106,10 @@ defmodule Corex.Checkbox.Connect do "data-part" => "control", "data-orientation" => orientation, "aria-hidden" => "true", - "dir" => assigns.dir, "id" => "checkbox:#{assigns.id}:control", "data-state" => state } + |> maybe_put_dir(assigns.dir) end def ignore_control(assigns) do @@ -125,10 +127,10 @@ defmodule Corex.Checkbox.Connect do "data-scope" => "checkbox", "data-part" => "label", "data-orientation" => orientation, - "dir" => assigns.dir, "id" => "checkbox:#{assigns.id}:label", "data-state" => state } + |> maybe_put_dir(assigns.dir) end def ignore_label(assigns) do @@ -146,10 +148,10 @@ defmodule Corex.Checkbox.Connect do "data-scope" => "checkbox", "data-part" => "indicator", "data-orientation" => orientation, - "dir" => assigns.dir, "id" => "checkbox:#{assigns.id}:indicator", "data-state" => state } + |> maybe_put_dir(assigns.dir) end def ignore_indicator(assigns) do @@ -167,10 +169,10 @@ defmodule Corex.Checkbox.Connect do "data-scope" => "checkbox", "data-part" => "indeterminate", "data-orientation" => orientation, - "dir" => assigns.dir, "id" => "checkbox:#{assigns.id}:indeterminate", "data-state" => state } + |> maybe_put_dir(assigns.dir) end def ignore_indeterminate(assigns) do diff --git a/lib/components/clipboard.ex b/lib/components/clipboard.ex index 04b169e3..7bbe93ec 100644 --- a/lib/components/clipboard.ex +++ b/lib/components/clipboard.ex @@ -138,8 +138,8 @@ defmodule Corex.Clipboard do ) attr(:dir, :string, - default: "ltr", - values: ["ltr", "rtl"], + default: nil, + values: [nil, "ltr", "rtl"], doc: "The direction of the clipboard. When nil, derived from document (html lang + config :rtl_locales)" ) diff --git a/lib/components/code.ex b/lib/components/code.ex index f672f27d..da998876 100644 --- a/lib/components/code.ex +++ b/lib/components/code.ex @@ -121,7 +121,6 @@ defmodule Corex.Code do assigns = assigns - |> assign(:lexer, lexer_for(assigns.language)) |> then(&assign(&1, :highlighted_html, highlight_code(&1))) ~H""" @@ -140,26 +139,19 @@ defmodule Corex.Code do """ end - defp lexer_for(language) do - name = to_string(language) + defp highlight_code(assigns) do + name = to_string(assigns.language) registry = Module.concat(["Elixir", "Makeup", "Registry"]) + makeup = Module.concat(["Elixir", "Makeup"]) case registry.fetch_lexer_by_name(name) do - {:ok, {lexer, _opts}} -> lexer - :error -> nil - end - end + {:ok, _} -> + makeup.highlight_inner_html(assigns.code, lexer: name) - defp highlight_code(assigns) do - case assigns.lexer do - nil -> + :error -> assigns.code |> Phoenix.HTML.html_escape() |> Phoenix.HTML.safe_to_string() - - lexer -> - makeup = Module.concat(["Elixir", "Makeup"]) - makeup.highlight_inner_html(assigns.code, lexer: lexer) end end end diff --git a/lib/components/collapsible.ex b/lib/components/collapsible.ex index 75726928..d76cbdba 100644 --- a/lib/components/collapsible.ex +++ b/lib/components/collapsible.ex @@ -181,8 +181,8 @@ defmodule Corex.Collapsible do ) attr(:dir, :string, - default: "ltr", - values: ["ltr", "rtl"], + default: nil, + values: [nil, "ltr", "rtl"], doc: "The direction of the collapsible. When nil, derived from document (html lang + config :rtl_locales)" ) @@ -303,8 +303,8 @@ defmodule Corex.Collapsible do end attr(:dir, :string, - default: "ltr", - values: ["ltr", "rtl"], + default: nil, + values: [nil, "ltr", "rtl"], doc: "Same as collapsible: logical direction for the skeleton root." ) diff --git a/lib/components/color_picker.ex b/lib/components/color_picker.ex index 48469c34..5127eb51 100644 --- a/lib/components/color_picker.ex +++ b/lib/components/color_picker.ex @@ -59,7 +59,7 @@ defmodule Corex.ColorPicker do Without gettext: `translation={%ColorPicker.Translation{ hex: "Hex color value" }}` - With gettext: `translation={%ColorPicker.Translation{ hex: gettext("Hex color value") }}` + With gettext: `translation={%ColorPicker.Translation{ hex: Corex.Gettext.gettext("Hex color value") }}` """ defstruct [:hex, :alpha] end @@ -67,8 +67,6 @@ defmodule Corex.ColorPicker do @doc type: :component use Phoenix.Component - import Corex.Gettext, only: [gettext: 1] - alias Corex.ColorPicker.Anatomy.{ Area, AreaBackground, @@ -112,7 +110,7 @@ defmodule Corex.ColorPicker do attr(:invalid, :boolean, default: false) attr(:read_only, :boolean, default: false) attr(:required, :boolean, default: false) - attr(:dir, :string, default: "ltr", values: ["ltr", "rtl"]) + attr(:dir, :string, default: nil, values: [nil, "ltr", "rtl"]) attr(:positioning, :map, default: %Corex.Positioning{}) attr(:presets, :list, default: []) attr(:class, :string, default: nil) @@ -157,8 +155,8 @@ defmodule Corex.ColorPicker do def color_picker(assigns) do default_translation = %Translation{ - hex: gettext("Hex color value"), - alpha: gettext("Alpha (opacity) value") + hex: Corex.Gettext.gettext("Hex color value"), + alpha: Corex.Gettext.gettext("Alpha (opacity) value") } assigns = diff --git a/lib/components/combobox.ex b/lib/components/combobox.ex index 435399f1..794492c1 100644 --- a/lib/components/combobox.ex +++ b/lib/components/combobox.ex @@ -215,24 +215,34 @@ defmodule Corex.Combobox do ``` + ## Localization + + Default `placeholder`, `empty`, `trigger`, and `clear_selection` use English literals; at render + they are passed through `Corex.Gettext.gettext/1` unless you set `translation`. Omit keys or use + `nil` to keep the built-in default for that field. Same pattern as `Corex.Select`. + ''' defmodule Translation do @moduledoc """ Translation struct for Combobox component strings. - Without gettext: `translation={%Combobox.Translation{ placeholder: "Select...", empty: "No results" }}` + Defaults are English literals (`"Select"`, `"No results"`); at render time Corex passes them + through `Corex.Gettext.gettext/1` unless you override. Partial structs fill missing fields + the same way. + + Override: `translation={%Corex.Combobox.Translation{placeholder: "Search…", empty: "Nothing found"}}` + + Trigger and clear buttons use `translation.trigger` and `translation.clear_selection` (defaults **Open options** and **Clear selection**). - With gettext: `translation={%Combobox.Translation{ placeholder: gettext("Select..."), empty: gettext("No results") }}` + With explicit gettext at the call site: `placeholder: Corex.Gettext.gettext("…")` """ - defstruct [:placeholder, :empty] + defstruct [:placeholder, :empty, :trigger, :clear_selection] end @doc type: :component use Phoenix.Component - import Corex.Gettext, only: [gettext: 1] - import Corex.Helpers, only: [ validate_value!: 1, @@ -324,6 +334,7 @@ defmodule Corex.Combobox do attr(:dir, :string, default: nil, + values: [nil, "ltr", "rtl"], doc: "The direction of the combobox. When nil, derived from document (html lang + config :rtl_locales)" ) @@ -384,17 +395,6 @@ defmodule Corex.Combobox do doc: "The positioning of the combobox" ) - attr(:trigger_aria_label, :string, - default: nil, - doc: - "Accessible name for the open/close trigger button. Defaults to gettext(\"Open options\")." - ) - - attr(:clear_trigger_aria_label, :string, - default: nil, - doc: "Accessible name for the clear trigger button. Defaults to gettext(\"Clear selection\")." - ) - attr(:rest, :global) slot :label, required: false, doc: "The label content" do @@ -460,12 +460,7 @@ defmodule Corex.Combobox do end def combobox(assigns) do - default_translation = %Translation{ - placeholder: gettext("Select"), - empty: gettext("No results") - } - - translation = assigns[:translation] || default_translation + translation = normalize_combobox_translation(assigns[:translation]) placeholder = assigns[:placeholder] || translation.placeholder empty_text = translation.empty @@ -534,10 +529,10 @@ defmodule Corex.Combobox do
- -
@@ -626,6 +621,49 @@ defmodule Corex.Combobox do """ end + defp normalize_combobox_translation(nil) do + %Translation{ + placeholder: combobox_field(nil, "Select"), + empty: combobox_field(nil, "No results"), + trigger: combobox_field(nil, "Open options"), + clear_selection: combobox_field(nil, "Clear selection") + } + end + + defp normalize_combobox_translation(%Translation{} = t) do + %Translation{ + placeholder: combobox_field(t.placeholder, "Select"), + empty: combobox_field(t.empty, "No results"), + trigger: combobox_field(t.trigger, "Open options"), + clear_selection: combobox_field(t.clear_selection, "Clear selection") + } + end + + defp normalize_combobox_translation(m) when is_map(m) do + sm = Map.new(m, fn {k, v} -> {to_string(k), v} end) + ph = Map.get(sm, "placeholder") + em = Map.get(sm, "empty") + tr = Map.get(sm, "trigger") + cl = Map.get(sm, "clear_selection") + + normalize_combobox_translation(%Translation{ + placeholder: ph, + empty: em, + trigger: tr, + clear_selection: cl + }) + end + + defp combobox_field(nil, msgid), do: Corex.Gettext.gettext(msgid) + + defp combobox_field(s, msgid) when is_binary(s) do + case String.trim(s) do + "" -> Corex.Gettext.gettext(msgid) + ^msgid -> Corex.Gettext.gettext(msgid) + trimmed -> trimmed + end + end + defp item_attrs(id, entry, dir, orientation) do base = Connect.item(%Item{ diff --git a/lib/components/combobox/connect.ex b/lib/components/combobox/connect.ex index 8cc6119a..0a0df84d 100644 --- a/lib/components/combobox/connect.ex +++ b/lib/components/combobox/connect.ex @@ -47,7 +47,7 @@ defmodule Corex.Combobox.Connect do "data-close-on-select" => get_boolean(assigns.close_on_select), "data-always-submit-on-enter" => get_boolean(assigns.always_submit_on_enter), "data-auto-focus" => get_boolean(assigns.auto_focus), - "data-dir" => Map.get(assigns, :dir, "ltr"), + "data-dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical"), "data-input-behavior" => assigns.input_behavior, "data-loop-focus" => get_boolean(assigns.loop_focus), @@ -75,7 +75,7 @@ defmodule Corex.Combobox.Connect do %{ "data-scope" => "combobox", "data-part" => "root", - "dir" => Map.get(assigns, :dir, "ltr"), + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical"), "id" => "combobox:#{assigns.id}", "data-invalid" => get_boolean(assigns.invalid), @@ -94,7 +94,7 @@ defmodule Corex.Combobox.Connect do %{ "data-scope" => "combobox", "data-part" => "label", - "dir" => Map.get(assigns, :dir, "ltr"), + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical"), "id" => "combobox:#{assigns.id}:label", "htmlFor" => "combobox:#{assigns.id}:input", @@ -117,7 +117,7 @@ defmodule Corex.Combobox.Connect do %{ "data-scope" => "combobox", "data-part" => "control", - "dir" => Map.get(assigns, :dir, "ltr"), + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical"), "id" => "combobox:#{assigns.id}:control", "data-disabled" => get_boolean(assigns.disabled), @@ -142,7 +142,7 @@ defmodule Corex.Combobox.Connect do "spellCheck" => "false", "type" => "text", "role" => "combobox", - "dir" => Map.get(assigns, :dir, "ltr"), + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical"), "id" => "combobox:#{assigns.id}:input", "data-disabled" => get_boolean(assigns.disabled), @@ -166,7 +166,7 @@ defmodule Corex.Combobox.Connect do "data-scope" => "combobox", "data-part" => "trigger", "type" => "button", - "dir" => Map.get(assigns, :dir, "ltr"), + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical"), "id" => "combobox:#{assigns.id}:trigger", "data-disabled" => get_boolean(assigns.disabled), @@ -186,8 +186,7 @@ defmodule Corex.Combobox.Connect do "data-scope" => "combobox", "data-part" => "clear-trigger", "type" => "button", - "dir" => Map.get(assigns, :dir, "ltr"), - "aria-label" => "Clear selection", + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical"), "id" => "combobox:#{assigns.id}:clear-trigger", "data-disabled" => get_boolean(assigns.disabled), @@ -206,7 +205,7 @@ defmodule Corex.Combobox.Connect do %{ "data-scope" => "combobox", "data-part" => "positioner", - "dir" => Map.get(assigns, :dir, "ltr"), + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical"), "style" => "display: none;", "id" => "combobox:#{assigns.id}:positioner" @@ -224,7 +223,7 @@ defmodule Corex.Combobox.Connect do %{ "data-scope" => "combobox", "data-part" => "content", - "dir" => Map.get(assigns, :dir, "ltr"), + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical"), "id" => "combobox:#{assigns.id}:content", "tabindex" => -1, @@ -245,7 +244,7 @@ defmodule Corex.Combobox.Connect do %{ "data-scope" => "combobox", "data-part" => "list", - "dir" => Map.get(assigns, :dir, "ltr"), + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical"), "id" => "combobox:#{assigns.id}:list" } @@ -263,7 +262,7 @@ defmodule Corex.Combobox.Connect do "data-scope" => "combobox", "data-part" => "item-group", "data-id" => assigns.group_id, - "dir" => Map.get(assigns, :dir, "ltr"), + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical"), "id" => "combobox:#{assigns.id}:item-group:#{assigns.group_id}" } @@ -282,7 +281,7 @@ defmodule Corex.Combobox.Connect do %{ "data-scope" => "combobox", "data-part" => "item-group-label", - "dir" => Map.get(assigns, :dir, "ltr"), + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical"), "id" => "combobox:#{assigns.id}:item-group-label:#{assigns.html_for}" } @@ -302,7 +301,7 @@ defmodule Corex.Combobox.Connect do "data-scope" => "combobox", "data-part" => "item", "data-value" => assigns.value, - "dir" => Map.get(assigns, :dir, "ltr"), + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical"), "id" => "combobox:#{assigns.id}:item:#{assigns.value}" } @@ -332,9 +331,10 @@ defmodule Corex.Combobox.Connect do ) end - defp item_value(item) do - Map.get(item, :value) || Map.get(item, "value") || Map.get(item, :id) || Map.get(item, "id") || - "" + defp item_value(item) when is_map(item) do + item + |> Map.new(fn {k, v} -> {to_string(k), v} end) + |> then(fn m -> Map.get(m, "value") || Map.get(m, "id") || "" end) end @spec item_text(ItemText.t()) :: map() @@ -344,7 +344,7 @@ defmodule Corex.Combobox.Connect do %{ "data-scope" => "combobox", "data-part" => "item-text", - "dir" => Map.get(assigns, :dir, "ltr"), + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical"), "id" => "combobox:#{assigns.id}:item-text:#{val}" } @@ -367,7 +367,7 @@ defmodule Corex.Combobox.Connect do %{ "data-scope" => "combobox", "data-part" => "item-indicator", - "dir" => Map.get(assigns, :dir, "ltr"), + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical"), "id" => "combobox:#{assigns.id}:item-indicator:#{val}" } @@ -388,7 +388,7 @@ defmodule Corex.Combobox.Connect do %{ "data-scope" => "combobox", "data-part" => "empty", - "dir" => Map.get(assigns, :dir, "ltr"), + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical"), "id" => "combobox:#{assigns.id}:empty" } diff --git a/lib/components/data_list.ex b/lib/components/data_list.ex index 054a30f3..dc154e71 100644 --- a/lib/components/data_list.ex +++ b/lib/components/data_list.ex @@ -132,8 +132,8 @@ defmodule Corex.DataList do ) attr(:dir, :string, - default: "ltr", - values: ["ltr", "rtl"], + default: nil, + values: [nil, "ltr", "rtl"], doc: "Text direction" ) diff --git a/lib/components/data_table.ex b/lib/components/data_table.ex index 97f1fc64..e36ff189 100644 --- a/lib/components/data_table.ex +++ b/lib/components/data_table.ex @@ -9,14 +9,15 @@ defmodule Corex.DataTable do Without gettext: `translation={%DataTable.Translation{ actions: "Actions", select_all: "Select all", select_row: "Select row" }}` - With gettext: `translation={%DataTable.Translation{ actions: gettext("Actions"), select_all: gettext("Select all"), select_row: gettext("Select row") }}` + With gettext: `translation={%DataTable.Translation{ actions: Corex.Gettext.gettext("Actions"), select_all: Corex.Gettext.gettext("Select all"), select_row: Corex.Gettext.gettext("Select row") }}` """ defstruct [:actions, :select_all, :select_row] end @doc type: :component use Phoenix.Component - import Corex.Gettext, only: [gettext: 1] + + alias Corex.Gettext @doc ~S''' Renders a table with data. @@ -240,9 +241,9 @@ defmodule Corex.DataTable do assigns |> assign_new(:translation, fn -> %Translation{ - actions: gettext("Actions"), - select_all: gettext("Select all"), - select_row: gettext("Select row") + actions: Gettext.gettext("Actions"), + select_all: Gettext.gettext("Select all"), + select_row: Gettext.gettext("Select row") } end) |> resolve_row_id() diff --git a/lib/components/date-picker.ex b/lib/components/date-picker.ex index 6513f288..b04e4ab5 100644 --- a/lib/components/date-picker.ex +++ b/lib/components/date-picker.ex @@ -94,7 +94,15 @@ defmodule Corex.DatePicker do ```heex <.form :let={f} for={@form} id={@form.id} action={@action} method="post"> - <.date_picker field={f[:date]} class="date-picker" trigger_aria_label="Select date" input_aria_label="Select date"> + <.date_picker + field={f[:date]} + class="date-picker" + translation={%Corex.DatePicker.Translation{ + open_calendar: "Select date", + close_calendar: "Select date", + input: "Select date" + }} + > <:label>Date <:trigger> <.heroicon name="hero-calendar" class="icon" /> @@ -238,17 +246,15 @@ defmodule Corex.DatePicker do ## Localization and `translation` - Pass `translation={%Corex.DatePicker.Translation{}}` to override any string. The component merges with `Corex.DatePicker.default_translation/0` (Zag’s `translations` for open/close, prev/next, view, month/year, week, placeholders, and `input`). Without gettext, the defaults are English. With gettext, call `translation={%Corex.DatePicker.Translation{ open_calendar: gettext("Open calendar") }}` for partial overrides. - - The `trigger_aria_label` and `input_aria_label` attributes are merged with `translation` and sent to the client in `data-translation` (JSON): they set the open/close trigger strings and the input label (`translation.open_calendar`, `translation.close_calendar`, and `translation.input`). + Pass `translation={%Corex.DatePicker.Translation{}}` to override any string. The component merges with `Corex.DatePicker.default_translation/0` (Zag’s `translations` for open/close, prev/next, view, month/year, week, placeholders, and `input`). Use `open_calendar`, `close_calendar`, and `input` for the popover trigger and fields (SSR `aria-label` and client `data-translation` JSON). Without gettext, the defaults are English. With gettext, call `translation={%Corex.DatePicker.Translation{open_calendar: Corex.Gettext.gettext("Open calendar")}}` for partial overrides. ''' use Phoenix.Component - import Corex.Gettext, only: [gettext: 1] alias Corex.DatePicker.Anatomy alias Corex.DatePicker.Connect alias Corex.DatePicker.Translation, as: DatePickerTranslation + alias Corex.Gettext alias Phoenix.LiveView alias Phoenix.LiveView.JS @@ -282,8 +288,8 @@ defmodule Corex.DatePicker do ) attr(:dir, :string, - default: "ltr", - values: ["ltr", "rtl"], + default: nil, + values: [nil, "ltr", "rtl"], doc: "The direction of the date picker. When nil, derived from document (html lang + config :rtl_locales)" ) @@ -382,18 +388,6 @@ defmodule Corex.DatePicker do "Merges with `default_translation/0` to override Zag and Corex strings; see the module section on localization." ) - attr(:trigger_aria_label, :string, - default: nil, - doc: - "Overrides `translation` for the popover button’s accessible name (same in open and closed state). If unset, the client uses open/close strings from the translation (Zag: open vs. closed calendar labels)." - ) - - attr(:input_aria_label, :string, - default: nil, - doc: - "Overrides `translation.input` for the text input when the slot label is not used. Zag does not provide this; it is a Corex field." - ) - attr(:range_start_label, :string, default: nil, doc: @@ -494,7 +488,7 @@ defmodule Corex.DatePicker do assigns |> assign(field: nil) - |> assign(:errors, Enum.map(errors, &Corex.Gettext.translate_error(&1))) + |> assign(:errors, Enum.map(errors, &Gettext.translate_error(&1))) |> assign(:id, field.id) |> assign(:name, field.name) |> assign(:value, normalize_date_value(field.value)) @@ -518,8 +512,6 @@ defmodule Corex.DatePicker do id: @id, controlled: @controlled, value: @value, - trigger_aria_label: @trigger_aria_label, - input_aria_label: @input_aria_label, locale: @locale, time_zone: @time_zone, name: @name, @@ -569,28 +561,28 @@ defmodule Corex.DatePicker do phx-mounted={Connect.ignore_input(%Anatomy.Input{id: @id, dir: @dir, index: 0})} {Connect.input(%Anatomy.Input{id: @id, dir: @dir, index: 0})} aria-labelledby={@id <> "-range-start-label"} - aria-label={@input_aria_label || @translation.input} + aria-label={@translation.input} /> {@range_end_label} "-range-end-label"} - aria-label={@input_aria_label || @translation.input} + aria-label={@translation.input} />
<% else %> <% end %> @@ -781,29 +773,29 @@ defmodule Corex.DatePicker do @spec default_translation() :: DatePickerTranslation.t() def default_translation do %DatePickerTranslation{ - content: gettext("calendar"), - month_select: gettext("Select month"), - year_select: gettext("Select year"), - clear_trigger: gettext("Clear selected dates"), - week_column_header: gettext("Wk"), - open_calendar: gettext("Open calendar"), - close_calendar: gettext("Close calendar"), - view_trigger_year: gettext("Switch to month view"), - view_trigger_month: gettext("Switch to day view"), - view_trigger_day: gettext("Switch to year view"), - prev_trigger_year: gettext("Switch to previous decade"), - prev_trigger_month: gettext("Switch to previous year"), - prev_trigger_day: gettext("Switch to previous month"), - next_trigger_year: gettext("Switch to next decade"), - next_trigger_month: gettext("Switch to next year"), - next_trigger_day: gettext("Switch to next month"), - week_number: gettext("Week __N__"), - placeholder_day: gettext("dd"), - placeholder_month: gettext("mm"), - placeholder_year: gettext("yyyy"), - input: gettext("Select date"), - range_start: gettext("From"), - range_end: gettext("To") + content: Gettext.gettext("calendar"), + month_select: Gettext.gettext("Select month"), + year_select: Gettext.gettext("Select year"), + clear_trigger: Gettext.gettext("Clear selected dates"), + week_column_header: Gettext.gettext("Wk"), + open_calendar: Gettext.gettext("Open calendar"), + close_calendar: Gettext.gettext("Close calendar"), + view_trigger_year: Gettext.gettext("Switch to month view"), + view_trigger_month: Gettext.gettext("Switch to day view"), + view_trigger_day: Gettext.gettext("Switch to year view"), + prev_trigger_year: Gettext.gettext("Switch to previous decade"), + prev_trigger_month: Gettext.gettext("Switch to previous year"), + prev_trigger_day: Gettext.gettext("Switch to previous month"), + next_trigger_year: Gettext.gettext("Switch to next decade"), + next_trigger_month: Gettext.gettext("Switch to next year"), + next_trigger_day: Gettext.gettext("Switch to next month"), + week_number: Gettext.gettext("Week __N__"), + placeholder_day: Gettext.gettext("dd"), + placeholder_month: Gettext.gettext("mm"), + placeholder_year: Gettext.gettext("yyyy"), + input: Gettext.gettext("Select date"), + range_start: Gettext.gettext("From"), + range_end: Gettext.gettext("To") } end diff --git a/lib/components/date-picker/anatomy.ex b/lib/components/date-picker/anatomy.ex index dcb4820d..c6324372 100644 --- a/lib/components/date-picker/anatomy.ex +++ b/lib/components/date-picker/anatomy.ex @@ -18,8 +18,6 @@ defmodule Corex.DatePicker.Anatomy do :focused_value, :placeholder, :positioning, - :trigger_aria_label, - :input_aria_label, controlled: false, disabled: false, read_only: false, diff --git a/lib/components/date-picker/connect.ex b/lib/components/date-picker/connect.ex index 659870de..a2d319f4 100644 --- a/lib/components/date-picker/connect.ex +++ b/lib/components/date-picker/connect.ex @@ -79,41 +79,13 @@ defmodule Corex.DatePicker.Connect do defp translation_json(assigns) do case Map.get(assigns, :translation) do %DatePickerTranslation{} = t -> - t - |> apply_translation_aria_overrides( - Map.get(assigns, :trigger_aria_label), - Map.get(assigns, :input_aria_label) - ) - |> encode_translation_to_json() + encode_translation_to_json(t) _ -> nil end end - defp apply_translation_aria_overrides( - %DatePickerTranslation{} = t, - trigger_aria, - input_aria - ) do - t = - if is_binary(trigger_aria) and String.trim(trigger_aria) != "" do - %DatePickerTranslation{ - t - | open_calendar: trigger_aria, - close_calendar: trigger_aria - } - else - t - end - - if is_binary(input_aria) and String.trim(input_aria) != "" do - %DatePickerTranslation{t | input: input_aria} - else - t - end - end - defp encode_translation_to_json(%DatePickerTranslation{} = t) do t |> DatePickerTranslation.to_camel_map() diff --git a/lib/components/date-picker/translation.ex b/lib/components/date-picker/translation.ex index 8295092a..4bc9428e 100644 --- a/lib/components/date-picker/translation.ex +++ b/lib/components/date-picker/translation.ex @@ -4,9 +4,9 @@ defmodule Corex.DatePicker.Translation do These map to the [Zag.js date picker `translations` prop](https://zagjs.com/components/react/date-picker) (plus `input` and range labels, which the Corex host applies because Zag does not set every label from one place). - Without gettext: `translation={%DatePicker.Translation{ content: "calendar" }}` + Without gettext: `translation={%Corex.DatePicker.Translation{content: "calendar"}}` - With gettext: `translation={%DatePicker.Translation{ content: gettext("calendar") }}` + With gettext: `translation={%Corex.DatePicker.Translation{content: Corex.Gettext.gettext("calendar")}}` """ @enforce_keys [] diff --git a/lib/components/dialog.ex b/lib/components/dialog.ex index 6d4f07f6..4a7edc0e 100644 --- a/lib/components/dialog.ex +++ b/lib/components/dialog.ex @@ -199,7 +199,7 @@ defmodule Corex.Dialog do Without gettext: `translation={%Dialog.Translation{ close: "Close" }}` - With gettext: `translation={%Dialog.Translation{ close: gettext("Close") }}` + With gettext: `translation={%Dialog.Translation{ close: Corex.Gettext.gettext("Close") }}` """ defstruct [:close] end @@ -207,8 +207,6 @@ defmodule Corex.Dialog do @doc type: :component use Phoenix.Component - import Corex.Gettext, only: [gettext: 1] - alias Corex.Dialog.Anatomy.{ Backdrop, CloseTrigger, @@ -270,8 +268,8 @@ defmodule Corex.Dialog do ) attr(:dir, :string, - default: "ltr", - values: ["ltr", "rtl"], + default: nil, + values: [nil, "ltr", "rtl"], doc: "The direction of the dialog. When nil, derived from document (html lang + config :rtl_locales)" ) @@ -333,7 +331,7 @@ defmodule Corex.Dialog do end def dialog(assigns) do - default_translation = %Translation{close: gettext("Close")} + default_translation = %Translation{close: Corex.Gettext.gettext("Close")} assigns = assigns @@ -410,7 +408,7 @@ defmodule Corex.Dialog do @doc type: :component @doc "Renders the dialog title. Use inside `<:content>` when not using the top-level `<:title>` slot. Pass the same id as the parent dialog." attr(:id, :string, required: true) - attr(:dir, :string, default: "ltr", values: ["ltr", "rtl"]) + attr(:dir, :string, default: nil, values: [nil, "ltr", "rtl"]) attr(:rest, :global) slot(:inner_block, required: true) @@ -429,7 +427,7 @@ defmodule Corex.Dialog do @doc type: :component @doc "Renders the dialog description. Use inside `<:content>` when not using the top-level `<:description>` slot. Pass the same id as the parent dialog." attr(:id, :string, required: true) - attr(:dir, :string, default: "ltr", values: ["ltr", "rtl"]) + attr(:dir, :string, default: nil, values: [nil, "ltr", "rtl"]) attr(:rest, :global) slot(:inner_block, required: true) @@ -448,13 +446,13 @@ defmodule Corex.Dialog do @doc type: :component @doc "Renders the dialog close button. Use inside `<:content>` when not using the top-level `<:close_trigger>` slot. Pass the same id as the parent dialog." attr(:id, :string, required: true) - attr(:dir, :string, default: "ltr", values: ["ltr", "rtl"]) + attr(:dir, :string, default: nil, values: [nil, "ltr", "rtl"]) attr(:aria_label, :string, default: nil) attr(:rest, :global) slot(:inner_block, required: true) def dialog_close_trigger(assigns) do - assigns = assign_new(assigns, :aria_label, fn -> gettext("Close") end) + assigns = assign_new(assigns, :aria_label, fn -> Corex.Gettext.gettext("Close") end) ~H"""
-
Panel
+
+ {render_slot(@title)} +
- - - diff --git a/lib/components/select/anatomy.ex b/lib/components/select/anatomy.ex index 594f31f6..26ca0eb0 100644 --- a/lib/components/select/anatomy.ex +++ b/lib/components/select/anatomy.ex @@ -28,7 +28,8 @@ defmodule Corex.Select.Anatomy do on_value_change_client: nil, redirect: false, positioning: nil, - deselectable: false + deselectable: false, + update_trigger: true ] @type t :: %__MODULE__{ @@ -52,7 +53,8 @@ defmodule Corex.Select.Anatomy do on_value_change_client: String.t() | nil, redirect: boolean(), positioning: Corex.Positioning.t() | nil, - deselectable: boolean() + deselectable: boolean(), + update_trigger: boolean() } end @@ -272,7 +274,6 @@ defmodule Corex.Select.Anatomy do @ignored_attrs [ "id", - "value", "data-orientation", "dir", "name", diff --git a/lib/components/select/connect.ex b/lib/components/select/connect.ex index b6cef239..391f0df6 100644 --- a/lib/components/select/connect.ex +++ b/lib/components/select/connect.ex @@ -21,27 +21,14 @@ defmodule Corex.Select.Connect do alias Phoenix.LiveView.JS - import Corex.Helpers, only: [get_boolean: 1] + import Corex.Helpers, only: [get_boolean: 1, maybe_put_data_dir: 2, maybe_put_dir: 2] @spec props(Props.t()) :: map() def props(assigns) do sorted_items = sort_items_by_group(assigns.items || []) vlist = assigns.value || [] - joined = if vlist == [], do: nil, else: Enum.map_join(vlist, ",", &to_string/1) - - value_str = - if assigns.controlled and joined do - joined - else - nil - end - - default_value_str = - if not assigns.controlled and joined do - joined - else - nil - end + joined = joined_csv_values(vlist) + {value_str, default_value_str} = controlled_dataset_values(assigns.controlled, joined) base = %{ "id" => assigns.id, @@ -59,16 +46,35 @@ defmodule Corex.Select.Connect do "data-form" => assigns.form, "data-read-only" => get_boolean(assigns.read_only), "data-required" => get_boolean(assigns.required), - "data-dir" => assigns.dir, "data-orientation" => Map.get(assigns, :orientation, "vertical") } base |> Map.merge(Corex.Positioning.to_dataset(assigns.positioning)) + |> merge_optional_select_props(assigns) + |> maybe_put_data_dir(assigns.dir) + end + + defp joined_csv_values([]), do: nil + + defp joined_csv_values(vlist) do + Enum.map_join(vlist, ",", &to_string/1) + end + + defp controlled_dataset_values(true, joined) when is_binary(joined), do: {joined, nil} + defp controlled_dataset_values(false, joined) when is_binary(joined), do: {nil, joined} + defp controlled_dataset_values(_controlled, _joined), do: {nil, nil} + + defp merge_optional_select_props(base, assigns) do + base |> maybe_put("data-on-value-change", assigns.on_value_change) |> maybe_put("data-on-value-change-client", assigns.on_value_change_client) |> maybe_put("data-redirect", get_boolean(assigns.redirect)) |> maybe_put("data-deselectable", get_boolean(Map.get(assigns, :deselectable))) + |> maybe_put( + "data-update-trigger", + if(Map.get(assigns, :update_trigger, true), do: nil, else: "false") + ) end defp sort_items_by_group(items) do @@ -84,17 +90,17 @@ defmodule Corex.Select.Connect do @spec root(Root.t()) :: map() def root(assigns) do orientation = Map.get(assigns, :orientation, "vertical") - dir = Map.get(assigns, :dir, "ltr") + dir = Map.get(assigns, :dir) %{ "data-scope" => "select", "data-part" => "root", "data-orientation" => orientation, - "dir" => dir, "id" => "select:#{assigns.id}", "data-invalid" => get_boolean(assigns.invalid), "data-readonly" => get_boolean(assigns.read_only) } + |> maybe_put_dir(dir) end def ignore_root(assigns) do diff --git a/lib/components/select/translation.ex b/lib/components/select/translation.ex new file mode 100644 index 00000000..662db98e --- /dev/null +++ b/lib/components/select/translation.ex @@ -0,0 +1,11 @@ +defmodule Corex.Select.Translation do + @moduledoc """ + Translation struct for Select component strings. + + Without gettext: `translation={%Corex.Select.Translation{placeholder: "Choose an option"}}` + + With gettext: `translation={%Corex.Select.Translation{placeholder: Corex.Gettext.gettext("Select")}}` + """ + + defstruct [:placeholder] +end diff --git a/lib/components/signature_pad.ex b/lib/components/signature_pad.ex index 159cfae1..acec8a02 100644 --- a/lib/components/signature_pad.ex +++ b/lib/components/signature_pad.ex @@ -271,8 +271,8 @@ defmodule Corex.SignaturePad do ) attr(:dir, :string, - default: "ltr", - values: ["ltr", "rtl"], + default: nil, + values: [nil, "ltr", "rtl"], doc: "The direction of the signature pad. When nil, derived from document (html lang + config :rtl_locales)" ) diff --git a/lib/components/switch.ex b/lib/components/switch.ex index b712d134..bf64498f 100644 --- a/lib/components/switch.ex +++ b/lib/components/switch.ex @@ -232,8 +232,8 @@ defmodule Corex.Switch do ) attr(:dir, :string, - default: "ltr", - values: ["ltr", "rtl"], + default: nil, + values: [nil, "ltr", "rtl"], doc: "The direction of the switch. When nil, derived from document (html lang + config :rtl_locales)" ) @@ -323,7 +323,7 @@ defmodule Corex.Switch do
assigns.value, "data-name" => assigns.name, "data-form" => assigns.form, - "data-dir" => assigns.dir, "data-orientation" => Map.get(assigns, :orientation, "horizontal"), "data-label" => assigns.label, "data-read-only" => get_boolean(assigns.read_only), @@ -35,6 +36,7 @@ defmodule Corex.Switch.Connect do "data-on-checked-change" => assigns.on_checked_change, "data-on-checked-change-client" => assigns.on_checked_change_client } + |> maybe_put_data_dir(assigns.dir) end @spec root(Root.t()) :: map() @@ -46,12 +48,12 @@ defmodule Corex.Switch.Connect do "data-scope" => "switch", "data-part" => "root", "data-orientation" => orientation, - "dir" => assigns.dir, "id" => "switch:#{assigns.id}", "htmlFor" => "switch:#{assigns.id}:input", "for" => "switch:#{assigns.id}:input", "data-state" => state } + |> maybe_put_dir(assigns.dir) end def ignore_root(assigns) do @@ -95,10 +97,10 @@ defmodule Corex.Switch.Connect do "data-part" => "control", "data-orientation" => orientation, "aria-hidden" => "true", - "dir" => assigns.dir, "id" => "switch:#{assigns.id}:control", "data-state" => state } + |> maybe_put_dir(assigns.dir) end def ignore_control(assigns) do @@ -117,10 +119,10 @@ defmodule Corex.Switch.Connect do "data-part" => "thumb", "data-orientation" => orientation, "aria-hidden" => "true", - "dir" => assigns.dir, "id" => "switch:#{assigns.id}:thumb", "data-state" => state } + |> maybe_put_dir(assigns.dir) end def ignore_thumb(assigns) do @@ -139,10 +141,10 @@ defmodule Corex.Switch.Connect do "data-part" => "label", "data-orientation" => orientation, "aria-hidden" => "true", - "dir" => assigns.dir, "id" => "switch:#{assigns.id}:label", "data-state" => state } + |> maybe_put_dir(assigns.dir) end def ignore_label(assigns) do diff --git a/lib/components/tabs.ex b/lib/components/tabs.ex index 9b9ca6a8..8b676c36 100644 --- a/lib/components/tabs.ex +++ b/lib/components/tabs.ex @@ -281,8 +281,8 @@ defmodule Corex.Tabs do ) attr(:dir, :string, - default: "ltr", - values: ["ltr", "rtl"], + default: nil, + values: [nil, "ltr", "rtl"], doc: "The direction of the tabs. When nil, derived from document (html lang + config :rtl_locales)" ) diff --git a/lib/components/timer.ex b/lib/components/timer.ex index f0c0c5af..374af05b 100644 --- a/lib/components/timer.ex +++ b/lib/components/timer.ex @@ -2,6 +2,8 @@ defmodule Corex.Timer do @moduledoc ~S''' Phoenix implementation of [Zag.js Timer](https://zagjs.com/components/react/timer). + Countdown-only leading-zero collapse (hide unused day/hour columns) is **on by default** when `countdown` is true. Override with `collapse_leading_zeros={false}` or with fixed `segments`. + ## Examples ### Basic @@ -18,7 +20,7 @@ defmodule Corex.Timer do ### Countdown ```heex - <.timer id="t" countdown start_ms={90_000} target_ms={0} auto_start class="timer"> + <.timer id="t" countdown start_ms={90_000} target_ms={0} class="timer"> <:start_trigger><.heroicon name="hero-play" class="icon" /> <:pause_trigger><.heroicon name="hero-pause" class="icon" /> <:resume_trigger><.heroicon name="hero-play" class="icon" /> @@ -26,32 +28,59 @@ defmodule Corex.Timer do ``` - Required slots: `:start_trigger`, `:pause_trigger`, `:resume_trigger`, `:reset_trigger`. + ### Fixed segments (always four columns) - ## Styling + ```heex + <.timer id="t" countdown start_ms={@ms} segments={[:days, :hours, :minutes, :seconds]} class="timer" /> + ``` + + ### Separator slot - Use data attributes to target elements: + Omit `:separator` to render nothing between digit columns. Pass it to supply markup (for example `:` or `·`) between segments. + + ```heex + <.timer id="t" start_ms={60_000} class="timer"> + <:separator>· + + ``` + + ### Region label (a11y) + + ```heex + <.timer id="t" translation={%Corex.Timer.Translation{area_label: "Countdown"}} class="timer" /> + ``` + + ### Unit labels (optional) + + Per-column caption under each digit cell (stacked column). Omit a slot to hide that unit’s label. + + ```heex + <.timer id="t" countdown start_ms={@ms} target_ms={0} class="timer"> + <:day_label>Days + <:hour_label>Hours + <:minute_label>Minutes + <:second_label>Seconds + + ``` + + Action slots (`:start_trigger`, `:pause_trigger`, `:resume_trigger`, `:reset_trigger`) are optional. + + ## Styling ```css [data-scope="timer"][data-part="root"] {} [data-scope="timer"][data-part="area"] {} + [data-scope="timer"][data-part="item-label"] {} [data-scope="timer"][data-part="item"] {} [data-scope="timer"][data-part="separator"] {} [data-scope="timer"][data-part="control"] {} [data-scope="timer"][data-part="action-trigger"] {} ``` - If you wish to use the default Corex styling, you can use the class `timer` on the component. - This requires to install `Mix.Tasks.Corex.Design` first and import the component css file. - ```css - @import "../corex/main.css"; - @import "../corex/tokens/themes/neo/light.css"; @import "../corex/components/timer.css"; ``` - You can then use modifiers - ```heex <.timer class="timer timer--accent timer--lg"> @@ -62,23 +91,54 @@ defmodule Corex.Timer do @doc type: :component use Phoenix.Component - alias Corex.Timer.Anatomy.{ActionTrigger, Area, Control, Item, Props, Root, Separator} + alias Corex.Timer.Anatomy.{ + ActionTrigger, + Area, + Control, + Item, + ItemLabel, + Props, + Root, + Segment, + Separator + } + alias Corex.Timer.Connect + alias Corex.Timer.Translation, as: TimerTranslation + + @parts [:days, :hours, :minutes, :seconds] attr(:id, :string, required: false) attr(:countdown, :boolean, default: false) attr(:start_ms, :integer, default: 0) attr(:target_ms, :integer, default: nil) - attr(:auto_start, :boolean, default: false) + attr(:auto_start, :boolean, default: true) attr(:interval, :integer, default: 1000) attr(:on_tick, :string, default: nil) attr(:on_tick_client, :string, default: nil) attr(:on_complete, :string, default: nil) attr(:on_complete_client, :string, default: nil) + attr(:collapse_leading_zeros, :boolean, + default: nil, + doc: + "When nil and countdown without fixed segments, leading zero units are hidden (minimum minutes and seconds visible)." + ) + + attr(:segments, :list, + default: nil, + doc: + "Fixed subset of [:days, :hours, :minutes, :seconds] in natural order; disables collapse when set." + ) + + attr(:translation, TimerTranslation, + default: nil, + doc: "Zag timer translations; supports area_label for the timer region aria-label." + ) + attr(:dir, :string, - default: "ltr", - values: ["ltr", "rtl"], + default: nil, + values: [nil, "ltr", "rtl"], doc: "Text direction for styling; nil follows the document." ) @@ -90,73 +150,144 @@ defmodule Corex.Timer do attr(:rest, :global) - slot :start_trigger, required: true do + slot(:separator, required: false) + + slot(:day_label, required: false) + slot(:hour_label, required: false) + slot(:minute_label, required: false) + slot(:second_label, required: false) + + slot :start_trigger, required: false do attr(:class, :string, required: false) end - slot :pause_trigger, required: true do + slot :pause_trigger, required: false do attr(:class, :string, required: false) end - slot :resume_trigger, required: true do + slot :resume_trigger, required: false do attr(:class, :string, required: false) end - slot :reset_trigger, required: true do + slot :reset_trigger, required: false do attr(:class, :string, required: false) end def timer(assigns) do + assigns = assign_new(assigns, :id, fn -> "timer-#{System.unique_integer([:positive])}" end) + segments = normalize_segments(assigns.segments) + time_values = time_values(assigns.start_ms) + + visibility_hidden = + visibility_hidden( + assigns.countdown, + assigns.collapse_leading_zeros, + segments, + time_values + ) + assigns = assigns - |> assign_new(:id, fn -> "timer-#{System.unique_integer([:positive])}" end) - |> assign(:time_values, time_values(assigns.start_ms)) + |> assign(:time_values, time_values) |> assign(:running, assigns.auto_start) |> assign(:paused, false) + |> assign(:segments, segments) + |> assign( + :has_timer_controls?, + assigns.start_trigger != [] or assigns.pause_trigger != [] or assigns.resume_trigger != [] or + assigns.reset_trigger != [] + ) + |> assign(:visibility_hidden, visibility_hidden) + |> assign(:props_struct, props_struct(assigns, segments)) ~H"""
-
-
:
-
-
:
-
-
:
-
+ <%= for {part, i} <- Enum.with_index([:days, :hours, :minutes, :seconds]) do %> + <% hv = Enum.at(@visibility_hidden, i) %> + <% ls = label_slot(assigns, part) %> +
+
+
+ <%= if ls != [] do %> + + {render_slot(ls)} + + <% end %> +
+ <%= if i < 3 and @separator != [] do %> + <% sh = Enum.at(@visibility_hidden, i) %> +
+ {render_slot(@separator)} +
+ <% end %> + <% end %>
-
- - - -
@@ -165,6 +296,105 @@ defmodule Corex.Timer do """ end + defp label_slot(assigns, :days), do: assigns.day_label + defp label_slot(assigns, :hours), do: assigns.hour_label + defp label_slot(assigns, :minutes), do: assigns.minute_label + defp label_slot(assigns, :seconds), do: assigns.second_label + + defp props_struct(assigns, segments) do + %Props{ + id: assigns.id, + countdown: assigns.countdown, + start_ms: assigns.start_ms, + target_ms: assigns.target_ms, + auto_start: assigns.auto_start, + interval: assigns.interval, + on_tick: assigns.on_tick, + on_tick_client: assigns.on_tick_client, + on_complete: assigns.on_complete, + on_complete_client: assigns.on_complete_client, + dir: assigns.dir, + orientation: assigns.orientation, + collapse_leading_zeros: assigns.collapse_leading_zeros, + segments: segments, + translation: assigns.translation + } + end + + defp normalize_segments(nil), do: nil + + defp normalize_segments([]) do + raise ArgumentError, "Corex.Timer: segments must not be empty when provided" + end + + defp normalize_segments(list) when is_list(list) do + allowed = MapSet.new(@parts) + + unless MapSet.subset?(MapSet.new(list), allowed) do + raise ArgumentError, "Corex.Timer: segments must be a subset of #{inspect(@parts)}" + end + + idx = fn atom -> Enum.find_index(@parts, &(&1 == atom)) end + + indexes = + list + |> Enum.map(fn a -> + case idx.(a) do + nil -> raise ArgumentError, "Corex.Timer: invalid segment #{inspect(a)}" + i -> i + end + end) + + unless indexes == Enum.sort(indexes) do + raise ArgumentError, "Corex.Timer: segments must follow order #{inspect(@parts)}" + end + + list + end + + defp visibility_hidden(_countdown, _collapse_opt, segments, _time_values) + when is_list(segments) do + Enum.map(@parts, fn atom -> atom not in segments end) + end + + defp visibility_hidden(countdown, collapse_opt, nil, time_values) do + vals = Enum.map(@parts, &Map.fetch!(time_values, &1)) + + cond do + collapse_opt == false -> + [false, false, false, false] + + collapse_opt == true -> + start_i = collapse_start_index(vals) + Enum.map(0..3, fn i -> i < start_i end) + + countdown -> + start_i = collapse_start_index(vals) + Enum.map(0..3, fn i -> i < start_i end) + + true -> + [false, false, false, false] + end + end + + defp collapse_start_index(vals) do + collapse_start_index(vals, 0) + end + + defp collapse_start_index(_vals, idx) when idx > 2 do + idx + end + + defp collapse_start_index(vals, idx) do + rest_after = length(vals) - idx + + if idx < 3 && Enum.at(vals, idx) == 0 && rest_after > 2 do + collapse_start_index(vals, idx + 1) + else + idx + end + end + @doc type: :component attr(:id, :string, required: false) attr(:rest, :global) @@ -176,13 +406,21 @@ defmodule Corex.Timer do
-
+
+
+
:
-
+
+
+
:
-
+
+
+
:
-
+
+
+
diff --git a/lib/components/timer/anatomy.ex b/lib/components/timer/anatomy.ex index 93f509f3..a4407a85 100644 --- a/lib/components/timer/anatomy.ex +++ b/lib/components/timer/anatomy.ex @@ -10,14 +10,17 @@ defmodule Corex.Timer.Anatomy do countdown: false, start_ms: 0, target_ms: nil, - auto_start: false, + auto_start: true, interval: 1000, on_tick: nil, on_tick_client: nil, on_complete: nil, on_complete_client: nil, dir: nil, - orientation: "horizontal" + orientation: "horizontal", + collapse_leading_zeros: nil, + segments: nil, + translation: nil ] @type t :: %__MODULE__{ @@ -32,7 +35,10 @@ defmodule Corex.Timer.Anatomy do on_complete: String.t() | nil, on_complete_client: String.t() | nil, dir: String.t() | nil, - orientation: String.t() + orientation: String.t(), + collapse_leading_zeros: boolean() | nil, + segments: list(atom()) | nil, + translation: Corex.Timer.Translation.t() | nil } end @@ -40,7 +46,7 @@ defmodule Corex.Timer.Anatomy do @moduledoc false defstruct [:id, dir: nil, orientation: "horizontal"] - @ignored_attrs ["data-orientation", "dir", "id", "role", "aria-label", "aria-atomic"] + @ignored_attrs ["data-orientation", "dir", "id", "data-scope", "data-part"] def ignored_attrs, do: @ignored_attrs end @@ -48,7 +54,17 @@ defmodule Corex.Timer.Anatomy do @moduledoc false defstruct [:id, dir: nil, orientation: "horizontal"] - @ignored_attrs ["data-orientation", "dir", "id", "role", "aria-label", "aria-atomic"] + @ignored_attrs [ + "data-orientation", + "dir", + "id", + "role", + "aria-label", + "aria-atomic", + "data-scope", + "data-part" + ] + def ignored_attrs, do: @ignored_attrs end @@ -56,13 +72,13 @@ defmodule Corex.Timer.Anatomy do @moduledoc false defstruct [:id, dir: nil, orientation: "horizontal"] - @ignored_attrs ["data-orientation", "dir", "id"] + @ignored_attrs ["data-orientation", "dir", "id", "data-scope", "data-part"] def ignored_attrs, do: @ignored_attrs end defmodule Item do @moduledoc false - defstruct [:id, :type, :value, dir: nil, orientation: "horizontal"] + defstruct [:id, :type, :value, dir: nil, orientation: "horizontal", hidden: false] @ignored_attrs [ "id", @@ -70,17 +86,57 @@ defmodule Corex.Timer.Anatomy do "style", "data-orientation", "dir", + "data-scope", + "data-part", "data-value", - "data-state" + "data-state", + "hidden", + "aria-hidden" ] + + def ignored_attrs, do: @ignored_attrs + end + + defmodule ItemLabel do + @moduledoc false + defstruct [:id, :type, dir: nil, orientation: "horizontal"] + + @ignored_attrs [ + "id", + "data-type", + "data-orientation", + "dir", + "data-part", + "data-scope", + "aria-labelledby", + "aria-label" + ] + + def ignored_attrs, do: @ignored_attrs + end + + defmodule Segment do + @moduledoc false + defstruct [:id, :type, hidden: false] + + @ignored_attrs ["hidden", "id", "data-type"] def ignored_attrs, do: @ignored_attrs end defmodule Separator do @moduledoc false - defstruct [:id, dir: nil, orientation: "horizontal"] + defstruct [:id, dir: nil, orientation: "horizontal", hidden: false] + + @ignored_attrs [ + "id", + "aria-hidden", + "data-orientation", + "dir", + "hidden", + "data-scope", + "data-part" + ] - @ignored_attrs ["id", "aria-hidden", "data-orientation", "dir"] def ignored_attrs, do: @ignored_attrs end @@ -97,8 +153,13 @@ defmodule Corex.Timer.Anatomy do "dir", "id", "disabled", - "data-disabled" + "data-disabled", + "data-scope", + "data-part", + "tabindex", + "tabIndex" ] + def ignored_attrs, do: @ignored_attrs end end diff --git a/lib/components/timer/connect.ex b/lib/components/timer/connect.ex index ca243f7a..474b769e 100644 --- a/lib/components/timer/connect.ex +++ b/lib/components/timer/connect.ex @@ -1,7 +1,20 @@ defmodule Corex.Timer.Connect do @moduledoc false alias Corex.Selectors - alias Corex.Timer.Anatomy.{ActionTrigger, Area, Control, Item, Props, Root, Separator} + + alias Corex.Timer.Anatomy.{ + ActionTrigger, + Area, + Control, + Item, + ItemLabel, + Props, + Root, + Segment, + Separator + } + + alias Corex.Timer.Translation, as: TimerTranslation alias Phoenix.LiveView.JS import Corex.Helpers, only: [get_boolean: 1] @@ -19,18 +32,52 @@ defmodule Corex.Timer.Connect do "data-on-tick-client" => assigns.on_tick_client, "data-on-complete" => assigns.on_complete, "data-on-complete-client" => assigns.on_complete_client, - "data-dir" => Map.get(assigns, :dir, "ltr"), - "data-orientation" => Map.get(assigns, :orientation, "vertical") + "data-dir" => Map.get(assigns, :dir), + "data-orientation" => Map.get(assigns, :orientation, "vertical"), + "data-collapse-leading-zeros" => collapse_dataset(assigns), + "data-segments" => segments_dataset(assigns), + "data-translation" => translation_json(assigns) } end + defp collapse_dataset(%Props{collapse_leading_zeros: false}), do: "false" + + defp collapse_dataset(%Props{collapse_leading_zeros: true}), do: "true" + + defp collapse_dataset(%Props{segments: segs}) + when is_list(segs) and segs != [], + do: "false" + + defp collapse_dataset(%Props{countdown: true}), do: "true" + + defp collapse_dataset(%Props{}), do: "false" + + defp segments_dataset(%Props{segments: list}) when is_list(list) and list != [] do + Enum.map_join(list, ",", &Atom.to_string/1) + end + + defp segments_dataset(_), do: nil + + defp translation_json(%Props{translation: %TimerTranslation{} = t}) do + t + |> TimerTranslation.to_camel_map() + |> Enum.reject(fn {_, v} -> v in [nil, ""] end) + |> Map.new() + |> then(fn + m when map_size(m) == 0 -> nil + m -> Corex.Json.encode!(m) + end) + end + + defp translation_json(_), do: nil + @spec root(Root.t()) :: map() def root(assigns) do %{ "data-scope" => "timer", "data-part" => "root", "id" => "timer:#{assigns.id}:root", - "dir" => Map.get(assigns, :dir, "ltr"), + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical") } end @@ -47,7 +94,7 @@ defmodule Corex.Timer.Connect do "data-scope" => "timer", "data-part" => "area", "id" => "timer:#{assigns.id}:area", - "dir" => Map.get(assigns, :dir, "ltr"), + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical") } end @@ -64,7 +111,7 @@ defmodule Corex.Timer.Connect do "data-scope" => "timer", "data-part" => "control", "id" => "timer:#{assigns.id}:control", - "dir" => Map.get(assigns, :dir, "ltr"), + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical") } end @@ -79,15 +126,23 @@ defmodule Corex.Timer.Connect do def item(assigns) do value = Map.get(assigns, :value, 0) - %{ + base = %{ "data-scope" => "timer", "data-part" => "item", "data-type" => assigns.type, "id" => "timer:#{assigns.id}:item:#{assigns.type}", "style" => "--value:#{value};", - "dir" => Map.get(assigns, :dir, "ltr"), + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical") } + + if Map.get(assigns, :hidden, false) do + base + |> Map.put("hidden", "") + |> Map.put("aria-hidden", "true") + else + base + end end def ignore_item(assigns) do @@ -97,9 +152,50 @@ defmodule Corex.Timer.Connect do ) end + @spec segment(Segment.t()) :: map() + def segment(assigns) do + base = %{ + "data-timer-segment" => "", + "id" => "timer:#{assigns.id}:segment:#{assigns.type}", + "data-type" => assigns.type + } + + if Map.get(assigns, :hidden, false) do + base |> Map.put("hidden", "") + else + base + end + end + + def ignore_segment(assigns) do + JS.ignore_attributes( + Segment.ignored_attrs(), + to: Selectors.css_id("timer:#{assigns.id}:segment:#{assigns.type}") + ) + end + + @spec item_label(ItemLabel.t()) :: map() + def item_label(assigns) do + %{ + "data-scope" => "timer", + "data-part" => "item-label", + "data-type" => assigns.type, + "id" => "timer:#{assigns.id}:label:#{assigns.type}", + "dir" => Map.get(assigns, :dir), + "data-orientation" => Map.get(assigns, :orientation, "vertical") + } + end + + def ignore_item_label(assigns) do + JS.ignore_attributes( + ItemLabel.ignored_attrs(), + to: Selectors.css_id("timer:#{assigns.id}:label:#{assigns.type}") + ) + end + @spec separator(Separator.t()) :: map() def separator(assigns) do - %{ + base = %{ "data-scope" => "timer", "data-part" => "separator", "aria-hidden" => "true", @@ -107,6 +203,12 @@ defmodule Corex.Timer.Connect do "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "horizontal") } + + if Map.get(assigns, :hidden, false) do + base |> Map.put("hidden", "") + else + base + end end def ignore_separator(assigns) do @@ -128,7 +230,7 @@ defmodule Corex.Timer.Connect do "type" => "button", "aria-label" => action_label(assigns.action), "id" => "timer:#{assigns.id}:action:#{assigns.action}", - "dir" => Map.get(assigns, :dir, "ltr"), + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical") } diff --git a/lib/components/timer/translation.ex b/lib/components/timer/translation.ex new file mode 100644 index 00000000..147c1f73 --- /dev/null +++ b/lib/components/timer/translation.ex @@ -0,0 +1,19 @@ +defmodule Corex.Timer.Translation do + @moduledoc """ + Strings for Zag timer [`translations`](https://zagjs.com/components/react/timer): `areaLabel` on the timer region. + + Without gettext: `translation={%Corex.Timer.Translation{area_label: "Countdown"}}` + + With gettext: `translation={%Corex.Timer.Translation{area_label: Corex.Gettext.gettext("Countdown")}}` + """ + + defstruct [:area_label] + + @type t :: %__MODULE__{ + area_label: String.t() | nil + } + + def to_camel_map(%__MODULE__{} = t) do + %{"areaLabel" => t.area_label} + end +end diff --git a/lib/components/toast.ex b/lib/components/toast.ex index a137bd0e..de128c3e 100644 --- a/lib/components/toast.ex +++ b/lib/components/toast.ex @@ -82,7 +82,7 @@ defmodule Corex.Toast do Without gettext: `translation={%Toast.Translation{ info: "Info", error: "Error" }}` - With gettext: `translation={%Toast.Translation{ info: gettext("Info"), error: gettext("Error") }}` + With gettext: `translation={%Toast.Translation{ info: Corex.Gettext.gettext("Info"), error: Corex.Gettext.gettext("Error") }}` """ defstruct [:info, :error] end @@ -90,10 +90,8 @@ defmodule Corex.Toast do @doc type: :component use Phoenix.Component - alias Phoenix.LiveView.JS - import Corex.Gettext, only: [gettext: 1] - alias Corex.Flash + alias Phoenix.LiveView.JS @doc """ Renders a toast group (toaster) that manages multiple toast notifications. @@ -168,7 +166,11 @@ defmodule Corex.Toast do info_flash = Phoenix.Flash.get(assigns.flash, :info) error_flash = Phoenix.Flash.get(assigns.flash, :error) - default_translation = %Translation{info: gettext("Info"), error: gettext("Error")} + default_translation = %Translation{ + info: Corex.Gettext.gettext("Info"), + error: Corex.Gettext.gettext("Error") + } + translation = merge_translation(assigns[:translation], default_translation) flash_info = diff --git a/lib/components/toast/connect.ex b/lib/components/toast/connect.ex index 2245fa4b..2db7b770 100644 --- a/lib/components/toast/connect.ex +++ b/lib/components/toast/connect.ex @@ -3,6 +3,7 @@ defmodule Corex.Toast.Connect do alias Corex.Selectors alias Corex.Toast.Anatomy.Group alias Phoenix.LiveView.JS + import Corex.Helpers, only: [maybe_put_dir_from: 2] @spec group(Group.t()) :: map() def group(assigns) do @@ -10,9 +11,9 @@ defmodule Corex.Toast.Connect do "data-scope" => "toast", "data-part" => "group", "id" => "toast:#{assigns.id}:group", - "dir" => Map.get(assigns, :dir, "ltr"), "data-orientation" => Map.get(assigns, :orientation, "vertical") } + |> maybe_put_dir_from(assigns) end @spec ignore_group(Group.t()) :: JS.t() diff --git a/lib/components/toggle_group.ex b/lib/components/toggle_group.ex index b7ed96bb..540b86fc 100644 --- a/lib/components/toggle_group.ex +++ b/lib/components/toggle_group.ex @@ -166,8 +166,8 @@ defmodule Corex.ToggleGroup do ) attr(:dir, :string, - default: "ltr", - values: ["ltr", "rtl"], + default: nil, + values: [nil, "ltr", "rtl"], doc: "The direction of the toggle group. When nil, derived from document (html lang + config :rtl_locales)" ) @@ -184,6 +184,10 @@ defmodule Corex.ToggleGroup do attr(:rest, :global) + slot :label, required: false, doc: "Optional visible or screen-reader label for the group" do + attr(:class, :string, required: false) + end + slot :item, required: true do attr(:value, :string, doc: "The value of the item, useful in controlled mode and for API to identify the item" @@ -204,6 +208,14 @@ defmodule Corex.ToggleGroup do |> assign_new(:id, fn -> "toggle-group-#{System.unique_integer([:positive])}" end) |> assign_new(:dir, fn -> "ltr" end) + label_id = + case Map.get(assigns, :label, []) do + [] -> nil + _ -> "#{assigns.id}-label" + end + + assigns = assign(assigns, :label_id, label_id) + ~H"""
-
+ + {render_slot(@label)} + +
+ <%= for t <- @trigger do %> + <%= if @trigger_tag == :span do %> + + {render_slot(t, @slot_assigns)} + + <% else %> + + <% end %> <% end %>
{render_slot(Enum.at(@content, 0), @slot_assigns)}
@@ -278,4 +315,26 @@ defmodule Corex.Tooltip do open: open }) end + + defp validate_triggers!(triggers) when is_list(triggers) do + case triggers do + [] -> + :ok + + [_] -> + :ok + + many -> + values = Enum.map(many, &Map.get(&1, :value)) + + if Enum.any?(values, &(is_nil(&1) or &1 == "")) do + raise ArgumentError, + "Corex.Tooltip: each <:trigger> must include a non-empty value attribute when there are multiple triggers" + end + + if length(Enum.uniq(values)) != length(values) do + raise ArgumentError, "Corex.Tooltip: trigger value attributes must be unique" + end + end + end end diff --git a/lib/components/tooltip/anatomy.ex b/lib/components/tooltip/anatomy.ex index 9db480fa..27791f9f 100644 --- a/lib/components/tooltip/anatomy.ex +++ b/lib/components/tooltip/anatomy.ex @@ -7,46 +7,44 @@ defmodule Corex.Tooltip.Anatomy do defstruct [ :id, - open: false, - controlled: false, + positioning: %Corex.Positioning{}, disabled: false, dir: "ltr", orientation: "horizontal", open_delay: nil, close_delay: nil, - placement: nil, close_on_escape: nil, close_on_click: nil, close_on_pointer_down: nil, close_on_scroll: nil, interactive: false, on_open_change: nil, - on_open_change_client: nil + on_open_change_client: nil, + on_trigger_value_change: nil ] @type t :: %__MODULE__{ id: String.t(), - open: boolean(), - controlled: boolean(), + positioning: Corex.Positioning.t(), disabled: boolean(), dir: String.t(), orientation: String.t(), open_delay: non_neg_integer() | nil, close_delay: non_neg_integer() | nil, - placement: String.t() | nil, close_on_escape: boolean() | nil, close_on_click: boolean() | nil, close_on_pointer_down: boolean() | nil, close_on_scroll: boolean() | nil, interactive: boolean(), on_open_change: String.t() | nil, - on_open_change_client: String.t() | nil + on_open_change_client: String.t() | nil, + on_trigger_value_change: String.t() | nil } end defmodule Trigger do @moduledoc false - defstruct [:id, :dir, :open, :disabled, orientation: "horizontal", tag: :button] + defstruct [:id, :dir, :open, :disabled, orientation: "horizontal", tag: :button, value: nil] @ignored_attrs [ "type", @@ -59,7 +57,11 @@ defmodule Corex.Tooltip.Anatomy do "data-placement", "aria-describedby", "aria-expanded", - "data-focus" + "data-focus", + "data-ownedby", + "data-value", + "data-current", + "data-expanded" ] def ignored_attrs, do: @ignored_attrs end @@ -88,6 +90,7 @@ defmodule Corex.Tooltip.Anatomy do "dir", "data-orientation", "data-state", + "data-instant", "id", "role", "data-placement", diff --git a/lib/components/tooltip/connect.ex b/lib/components/tooltip/connect.ex index 8e3b738f..e5d1fc43 100644 --- a/lib/components/tooltip/connect.ex +++ b/lib/components/tooltip/connect.ex @@ -8,13 +8,12 @@ defmodule Corex.Tooltip.Connect do @spec props(Props.t()) :: map() def props(assigns) do + positioning = Map.get(assigns, :positioning, %Corex.Positioning{}) + base = %{ "id" => assigns.id, - "data-default-open" => data_default_open(assigns), - "data-open" => data_open(assigns), - "data-controlled" => get_boolean(assigns.controlled), "data-disabled" => get_boolean(assigns.disabled), - "data-dir" => Map.get(assigns, :dir, "ltr"), + "data-dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical"), "data-on-open-change" => assigns.on_open_change, "data-on-open-change-client" => assigns.on_open_change_client, @@ -28,36 +27,52 @@ defmodule Corex.Tooltip.Connect do base |> maybe_put("data-open-delay", assigns.open_delay) |> maybe_put("data-close-delay", assigns.close_delay) - |> maybe_put("data-placement", assigns.placement) + |> maybe_put("data-on-trigger-value-change", Map.get(assigns, :on_trigger_value_change)) + |> Map.merge(Corex.Positioning.to_dataset(positioning)) end defp maybe_put(map, _key, nil), do: map defp maybe_put(map, key, value), do: Map.put(map, key, value) + @spec trigger_id(String.t(), String.t() | nil) :: String.t() + def trigger_id(tooltip_id, nil), do: "tooltip:#{tooltip_id}:trigger" + + def trigger_id(tooltip_id, value) when is_binary(value), + do: "tooltip:#{tooltip_id}:trigger:#{value}" + @spec trigger(Trigger.t()) :: map() def trigger(assigns) do data_state = if assigns.open, do: "open", else: "closed" + value = Map.get(assigns, :value) + dom_id = trigger_id(assigns.id, value) base = %{ "data-scope" => "tooltip", "data-part" => "trigger", "tabindex" => if(assigns.disabled, do: -1, else: 0), "data-disabled" => assigns.disabled, - "dir" => Map.get(assigns, :dir, "ltr"), + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical"), "data-state" => data_state, - "id" => "tooltip:#{assigns.id}:trigger" + "id" => dom_id } - case Map.get(assigns, :tag, :button) do - :span -> base - _ -> Map.put(base, "type", "button") - end + base + |> maybe_put("data-value", value) + |> then(fn m -> + case Map.get(assigns, :tag, :button) do + :span -> m + _ -> Map.put(m, "type", "button") + end + end) end def ignore_trigger(assigns) do + value = Map.get(assigns, :value) + dom_id = trigger_id(assigns.id, value) + JS.ignore_attributes(Trigger.ignored_attrs(), - to: Selectors.css_id("tooltip:#{assigns.id}:trigger") + to: Selectors.css_id(dom_id) ) end @@ -66,15 +81,15 @@ defmodule Corex.Tooltip.Connect do %{ "data-scope" => "tooltip", "data-part" => "positioner", - "dir" => Map.get(assigns, :dir, "ltr"), + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical"), - "id" => "tooltip:#{assigns.id}:positioner" + "id" => "tooltip:#{assigns.id}:popper" } end def ignore_positioner(assigns) do JS.ignore_attributes(Positioner.ignored_attrs(), - to: Selectors.css_id("tooltip:#{assigns.id}:positioner") + to: Selectors.css_id("tooltip:#{assigns.id}:popper") ) end @@ -85,7 +100,7 @@ defmodule Corex.Tooltip.Connect do %{ "data-scope" => "tooltip", "data-part" => "content", - "dir" => Map.get(assigns, :dir, "ltr"), + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical"), "data-state" => data_state, "id" => "tooltip:#{assigns.id}:content" @@ -103,7 +118,7 @@ defmodule Corex.Tooltip.Connect do %{ "data-scope" => "tooltip", "data-part" => "arrow", - "dir" => Map.get(assigns, :dir, "ltr"), + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical"), "id" => "tooltip:#{assigns.id}:arrow" } @@ -120,7 +135,7 @@ defmodule Corex.Tooltip.Connect do %{ "data-scope" => "tooltip", "data-part" => "arrow-tip", - "dir" => Map.get(assigns, :dir, "ltr"), + "dir" => Map.get(assigns, :dir), "data-orientation" => Map.get(assigns, :orientation, "vertical"), "id" => "tooltip:#{assigns.id}:arrow-tip" } @@ -131,16 +146,4 @@ defmodule Corex.Tooltip.Connect do to: Selectors.css_id("tooltip:#{assigns.id}:arrow-tip") ) end - - defp data_default_open(assigns) do - if !assigns.controlled && assigns.open, do: "", else: nil - end - - defp data_open(assigns) do - if assigns.controlled do - if assigns.open, do: "", else: nil - else - nil - end - end end diff --git a/lib/components/tree_view.ex b/lib/components/tree_view.ex index a000f6db..a50905c7 100644 --- a/lib/components/tree_view.ex +++ b/lib/components/tree_view.ex @@ -484,8 +484,8 @@ defmodule Corex.TreeView do ) attr(:dir, :string, - default: "ltr", - values: ["ltr", "rtl"], + default: nil, + values: [nil, "ltr", "rtl"], doc: "The direction of the tree." ) @@ -938,14 +938,7 @@ defmodule Corex.TreeView do end def tree_branch(assigns) do - branch = - case assigns.row do - %Branch{} = b -> - %Branch{b | animation: assigns.animation} - - m when is_map(m) -> - struct(Branch, Map.put(m, :animation, assigns.animation)) - end + branch = Branch.with_animation(assigns.row, assigns.animation) assigns = assign(assigns, :branch_connect, branch) diff --git a/lib/components/tree_view/anatomy.ex b/lib/components/tree_view/anatomy.ex index 2e1b6dcc..9c13ebaf 100644 --- a/lib/components/tree_view/anatomy.ex +++ b/lib/components/tree_view/anatomy.ex @@ -175,6 +175,14 @@ defmodule Corex.TreeView.Anatomy do "aria-labelledby" ] def ignored_attrs, do: @ignored_attrs + + def with_animation(%__MODULE__{} = b, animation) when is_binary(animation) do + struct!(b, %{animation: animation}) + end + + def with_animation(m, animation) when is_map(m) and is_binary(animation) do + struct!(__MODULE__, Map.put(m, :animation, animation)) + end end defmodule BranchControl do diff --git a/lib/corex.ex b/lib/corex.ex index 4fda39b0..cd8fe230 100644 --- a/lib/corex.ex +++ b/lib/corex.ex @@ -16,7 +16,19 @@ defmodule Corex do action: {Corex.Action, [action: 1]}, angle_slider: {Corex.AngleSlider, [angle_slider: 1, angle_slider_skeleton: 1]}, avatar: {Corex.Avatar, [avatar: 1]}, - carousel: {Corex.Carousel, [carousel: 1]}, + carousel: + {Corex.Carousel, + [ + carousel: 1, + carousel_root: 1, + carousel_item_group: 1, + carousel_item: 1, + carousel_control: 1, + carousel_prev_trigger: 1, + carousel_next_trigger: 1, + carousel_indicator_group: 1, + carousel_indicator: 1 + ]}, checkbox: {Corex.Checkbox, [checkbox: 1, checkbox_skeleton: 1]}, clipboard: {Corex.Clipboard, [clipboard: 1]}, code: {Corex.Code, [code: 1]}, @@ -155,12 +167,12 @@ defmodule Corex do defp include?(name, :all, except), do: name not in except defp include?(name, only, _except) when is_list(only), do: name in only - @doc false + @doc "Returns sorted ids from the component registry for MCP and tooling." def component_ids do @components |> Map.keys() |> Enum.sort() end - @doc false + @doc "Resolves a registered component id to module and function-component metadata." def component_spec(id) when is_atom(id) do case Map.fetch(@components, id) do {:ok, {mod, functions}} -> @@ -181,7 +193,7 @@ defmodule Corex do end end - @doc false + @doc "Maps a string MCP component id to its implementing module when registered." def component_module_for_mcp_id(id) when is_binary(id) do allowed = MapSet.new(for a <- component_ids(), do: to_string(a)) diff --git a/lib/corex/flash.ex b/lib/corex/flash.ex index 7b16614a..01d6337a 100644 --- a/lib/corex/flash.ex +++ b/lib/corex/flash.ex @@ -2,9 +2,7 @@ defmodule Corex.Flash do @moduledoc false defmodule Info do - @moduledoc """ - This struct is used to configure the info flash message toast notifications in `Corex.Toast.toast_group/1` - """ + @moduledoc false defstruct [:title, :type, :duration] @type t :: %__MODULE__{ @@ -15,9 +13,7 @@ defmodule Corex.Flash do end defmodule Error do - @moduledoc """ - This struct is used to configure the error flash message toast notifications in `Corex.Toast.toast_group/1` - """ + @moduledoc false defstruct [:title, :type, :duration] @type t :: %__MODULE__{ diff --git a/lib/corex/gettext.ex b/lib/corex/gettext.ex index 4ad5297b..4aceca31 100644 --- a/lib/corex/gettext.ex +++ b/lib/corex/gettext.ex @@ -1,13 +1,24 @@ defmodule Corex.Gettext do - @moduledoc false + @moduledoc """ + Runtime gettext for Corex components. + + Host applications configure `config :phoenix, :gettext_backend, MyApp.Gettext` so + `gettext/1` and `gettext/2` resolve to the app backend at **run time**. + + **Do not** call bare `gettext(...)` inside `attr(..., default: ...)` on components: that + runs while the module compiles and can bind to the host backend before it exists when + `:corex` is a path dependency. Use a **literal** default, then call `Corex.Gettext.gettext/1` + at the start of the render function (see `Corex.Select` and `Corex.Combobox`). + + In component modules that `use Phoenix.Component`, prefer **`Corex.Gettext.gettext/1`** + and **`Corex.Gettext.gettext/2`** instead of `import Corex.Gettext` + `gettext`, so calls + are never confused with Phoenix or Gettext macros. + """ def backend do Application.get_env(:phoenix, :gettext_backend) end - @doc """ - Translates a message using gettext. - """ def gettext(msg, opts \\ []) do backend = backend() @@ -18,9 +29,6 @@ defmodule Corex.Gettext do end end - @doc """ - Translates an error message using gettext. - """ def translate_error({msg, opts}) do backend = backend() diff --git a/lib/corex/helpers.ex b/lib/corex/helpers.ex index e6f38259..def60689 100644 --- a/lib/corex/helpers.ex +++ b/lib/corex/helpers.ex @@ -147,16 +147,33 @@ defmodule Corex.Helpers do end def entry_value(entry) when is_map(entry) do - to_string( - Map.get(entry, :value) || Map.get(entry, :id) || Map.get(entry, "value") || - Map.get(entry, "id") || "" - ) + entry + |> Map.new(fn {k, v} -> {to_string(k), v} end) + |> then(fn m -> Map.get(m, "value") || Map.get(m, "id") end) + |> case do + nil -> "" + v -> to_string(v) + end end def entry_selected?(entry, value_list) when is_map(entry) and is_list(value_list) do Enum.member?(value_list, entry_value(entry)) end + def maybe_put_data_dir(map, nil), do: map + def maybe_put_data_dir(map, dir) when dir in ["ltr", "rtl"], do: Map.put(map, "data-dir", dir) + def maybe_put_data_dir(map, _), do: map + + def maybe_put_dir(map, nil), do: map + def maybe_put_dir(map, dir) when dir in ["ltr", "rtl"], do: Map.put(map, "dir", dir) + def maybe_put_dir(map, _), do: map + + def maybe_put_data_dir_from(map, assigns) when is_map(assigns), + do: maybe_put_data_dir(map, Map.get(assigns, :dir)) + + def maybe_put_dir_from(map, assigns) when is_map(assigns), + do: maybe_put_dir(map, Map.get(assigns, :dir)) + @spec respond_to_fields(keyword()) :: %{String.t() => String.t()} def respond_to_fields(opts) when is_list(opts) do case Keyword.get(opts, :respond_to, :server) do diff --git a/lib/corex/offset.ex b/lib/corex/offset.ex new file mode 100644 index 00000000..55df31a0 --- /dev/null +++ b/lib/corex/offset.ex @@ -0,0 +1,7 @@ +defmodule Corex.Offset do + @moduledoc "Main-axis and cross-axis offset pair for layout." + + defstruct main_axis: nil, cross_axis: nil + + @type t :: %__MODULE__{main_axis: number() | nil, cross_axis: number() | nil} +end diff --git a/lib/corex/point.ex b/lib/corex/point.ex new file mode 100644 index 00000000..35972aa0 --- /dev/null +++ b/lib/corex/point.ex @@ -0,0 +1,17 @@ +defmodule Corex.Point do + @moduledoc "Two-dimensional point as numeric x and y." + + @enforce_keys [:x, :y] + defstruct [:x, :y] + + @type t :: %__MODULE__{x: number(), y: number()} + + @spec to_map(t() | %{x: number(), y: number()} | nil) :: %{x: number(), y: number()} | nil + def to_map(nil), do: nil + + def to_map(%__MODULE__{x: x, y: y}) when is_number(x) and is_number(y), do: %{x: x, y: y} + + def to_map(%{x: x, y: y}) when is_number(x) and is_number(y), do: %{x: x, y: y} + + def to_map(_), do: raise(ArgumentError, "expected %Corex.Point{} or %{x: _, y: _}") +end diff --git a/lib/corex/positioning.ex b/lib/corex/positioning.ex index e03e1444..6779881d 100644 --- a/lib/corex/positioning.ex +++ b/lib/corex/positioning.ex @@ -18,7 +18,8 @@ defmodule Corex.Positioning do slide: true, overlap: false, same_width: false, - fit_viewport: true + fit_viewport: true, + offset: nil @type t :: %__MODULE__{ hide_when_detached: boolean(), @@ -32,14 +33,15 @@ defmodule Corex.Positioning do slide: boolean(), overlap: boolean(), same_width: boolean(), - fit_viewport: boolean() + fit_viewport: boolean(), + offset: Corex.Offset.t() | nil } @spec to_dataset(t() | nil) :: %{String.t() => String.t() | nil} def to_dataset(nil), do: %{} def to_dataset(%__MODULE__{} = p) do - %{ + base = %{ "data-position-strategy" => p.strategy, "data-position-placement" => p.placement, "data-position-gutter" => to_string(p.gutter), @@ -53,8 +55,23 @@ defmodule Corex.Positioning do "data-position-fit-viewport" => bool_str(p.fit_viewport), "data-position-hide-when-detached" => bool_str(p.hide_when_detached) } + + Map.merge(base, offset_to_dataset(p.offset)) + end + + defp offset_to_dataset(nil), do: %{} + + defp offset_to_dataset(%Corex.Offset{} = o) do + %{} + |> maybe_put_axis_key("data-position-offset-main-axis", o.main_axis) + |> maybe_put_axis_key("data-position-offset-cross-axis", o.cross_axis) end + defp maybe_put_axis_key(map, _key, nil), do: map + + defp maybe_put_axis_key(map, key, value) when is_number(value), + do: Map.put(map, key, to_string(value)) + defp bool_str(true), do: "true" defp bool_str(false), do: "false" defp bool_str(_), do: nil diff --git a/lib/corex/slot.ex b/lib/corex/slot.ex index 4c05c5f7..7d788d61 100644 --- a/lib/corex/slot.ex +++ b/lib/corex/slot.ex @@ -11,10 +11,10 @@ defmodule Corex.Slot do @default_fallback &__MODULE__.default_fallback/1 @default_disabled &__MODULE__.default_disabled/1 - @doc false + @doc "Fallback string key when a slot entry omits `value`." def default_fallback(index), do: "item-#{index}" - @doc false + @doc "Default disabled predicate when callers omit `:disabled`." def default_disabled(_entries), do: false @doc """ diff --git a/lib/mcp/server.ex b/lib/mcp/server.ex index d1c46a8a..2da2c72c 100644 --- a/lib/mcp/server.ex +++ b/lib/mcp/server.ex @@ -21,7 +21,7 @@ defmodule Corex.MCP.Server do |> List.flatten() end - @doc false + @doc "Loads tool specs and callbacks into `:corex_mcp_tools` ETS." def init_tools do tools = raw_tools() dispatch_map = Map.new(tools, fn tool -> {tool.name, tool.callback} end) @@ -39,7 +39,7 @@ defmodule Corex.MCP.Server do :ok end - @doc false + @doc "Returns the stored `{tools, dispatch}` tuple from ETS." def tools_and_dispatch do [{:tools, tools}] = :ets.lookup(:corex_mcp_tools, :tools) tools @@ -335,7 +335,7 @@ defmodule Corex.MCP.Server do |> send_resp(200, Corex.Json.encode!(response)) end - @doc false + @doc "Handles a JSON-RPC MCP request over HTTP." def handle_http_message(conn) do :ok = init_tools() Logger.info("Received #{conn.method} message") diff --git a/lib/mcp/tools/components.ex b/lib/mcp/tools/components.ex index d0ab3e45..25098f25 100644 --- a/lib/mcp/tools/components.ex +++ b/lib/mcp/tools/components.ex @@ -47,9 +47,16 @@ defmodule Corex.MCP.Tools.Components do def get_component(%{"id" => id}) when is_binary(id) do case Corex.component_module_for_mcp_id(id) do {:ok, mod} -> - {:ok, spec} = Corex.component_spec(String.to_existing_atom(id)) - payload = enrich_with_docs(spec, mod) - {:ok, Corex.Json.encode!(payload)} + atom_id = String.to_existing_atom(id) + + case Corex.component_spec(atom_id) do + {:ok, spec} -> + payload = enrich_with_docs(spec, mod) + {:ok, Corex.Json.encode!(payload)} + + :error -> + {:error, "Unknown component id. Use list_components for valid ids."} + end :error -> {:error, "Unknown component id. Use list_components for valid ids."} @@ -104,9 +111,9 @@ defmodule Corex.MCP.Tools.Components do end end - defp source_path_from_meta(meta) do - p = Map.get(meta, :source_path) || Map.get(meta, "source_path") - normalize_source_path_string(p) + defp source_path_from_meta(meta) when is_map(meta) do + meta = Map.new(meta, fn {k, v} -> {to_string(k), v} end) + normalize_source_path_string(Map.get(meta, "source_path")) end defp compile_source_path(mod) do diff --git a/lib/mcp/tools/installation.ex b/lib/mcp/tools/installation.ex index ace4d45c..e141981d 100644 --- a/lib/mcp/tools/installation.ex +++ b/lib/mcp/tools/installation.ex @@ -99,7 +99,7 @@ defmodule Corex.MCP.Tools.Installation do defp corex_hex_version do case Application.spec(:corex, :vsn) do nil -> - "0.1.0-beta.2" + "0.1.0-beta.3" v when is_list(v) -> List.to_string(v) diff --git a/lib/mix/corex.ex b/lib/mix/corex.ex index aa8d68b0..61dfc093 100644 --- a/lib/mix/corex.ex +++ b/lib/mix/corex.ex @@ -1,7 +1,8 @@ defmodule Mix.Corex do - # Conveniences for Corex tasks. @moduledoc false + alias Phoenix.Naming + @doc """ Evals EEx files from source dir. @@ -145,12 +146,12 @@ defmodule Mix.Corex do def inflect(singular) do base = Mix.Corex.base() web_module = base |> web_module() |> inspect() - scoped = Phoenix.Naming.camelize(singular) - path = Phoenix.Naming.underscore(scoped) + scoped = Naming.camelize(singular) + path = Naming.underscore(scoped) singular = String.split(path, "/") |> List.last() module = Module.concat(base, scoped) |> inspect alias = String.split(module, ".") |> List.last() - human = Phoenix.Naming.humanize(singular) + human = Naming.humanize(singular) [ alias: alias, diff --git a/lib/mix/corex/gen/context.ex b/lib/mix/corex/gen/context.ex index 02bcda25..8ca47dc4 100644 --- a/lib/mix/corex/gen/context.ex +++ b/lib/mix/corex/gen/context.ex @@ -1,6 +1,7 @@ defmodule Mix.Corex.Gen.Context do @moduledoc false + alias Mix.Corex, as: MixCorex alias Mix.Phoenix.{Context, Schema} def files_to_be_generated(%Context{schema: schema} = context) do @@ -42,13 +43,13 @@ defmodule Mix.Corex.Gen.Context do end defp copy_schema_and_migration(schema, binding) do - roots = Mix.Corex.generator_template_dirs("corex.gen.schema") - content = Mix.Corex.eval_from_roots(roots, "schema.ex", binding) + roots = MixCorex.generator_template_dirs("corex.gen.schema") + content = MixCorex.eval_from_roots(roots, "schema.ex", binding) Mix.Generator.create_file(schema.file, content) if schema.migration? do path = migration_path_for(schema) - migration_content = Mix.Corex.eval_from_roots(roots, "migration.exs", binding) + migration_content = MixCorex.eval_from_roots(roots, "migration.exs", binding) File.mkdir_p!(Path.dirname(path)) Mix.Generator.create_file(path, migration_content) end @@ -83,18 +84,18 @@ defmodule Mix.Corex.Gen.Context do defp ensure_context_file_exists(%Context{file: file} = context, binding) do unless Context.pre_existing?(context) do - roots = Mix.Corex.generator_template_dirs("corex.gen.context") - content = Mix.Corex.eval_from_roots(roots, "context.ex", binding) + roots = MixCorex.generator_template_dirs("corex.gen.context") + content = MixCorex.eval_from_roots(roots, "context.ex", binding) Mix.Generator.create_file(file, content) end end defp inject_schema_access(context, binding) do ensure_context_file_exists(context, binding) - roots = Mix.Corex.generator_template_dirs("corex.gen.context") + roots = MixCorex.generator_template_dirs("corex.gen.context") template = schema_access_template(context) - content = Mix.Corex.eval_from_roots(roots, template, binding) - Mix.Corex.inject_eex_before_final_end(content, context.file, binding) + content = MixCorex.eval_from_roots(roots, template, binding) + MixCorex.inject_eex_before_final_end(content, context.file, binding) end defp schema_access_template(%Context{schema: schema}) do @@ -108,34 +109,34 @@ defmodule Mix.Corex.Gen.Context do defp ensure_test_file_exists(context, binding) do unless Context.pre_existing_tests?(context) do - roots = Mix.Corex.generator_template_dirs("corex.gen.context") - content = Mix.Corex.eval_from_roots(roots, "context_test.exs", binding) + roots = MixCorex.generator_template_dirs("corex.gen.context") + content = MixCorex.eval_from_roots(roots, "context_test.exs", binding) Mix.Generator.create_file(context.test_file, content) end end defp inject_tests(context, binding) do ensure_test_file_exists(context, binding) - roots = Mix.Corex.generator_template_dirs("corex.gen.context") + roots = MixCorex.generator_template_dirs("corex.gen.context") file = if context.schema.scope, do: "test_cases_scope.exs", else: "test_cases.exs" - content = Mix.Corex.eval_from_roots(roots, file, binding) - Mix.Corex.inject_eex_before_final_end(content, context.test_file, binding) + content = MixCorex.eval_from_roots(roots, file, binding) + MixCorex.inject_eex_before_final_end(content, context.test_file, binding) end defp ensure_test_fixtures_file_exists(context, binding) do unless Context.pre_existing_test_fixtures?(context) do - roots = Mix.Corex.generator_template_dirs("corex.gen.context") - content = Mix.Corex.eval_from_roots(roots, "fixtures_module.ex", binding) + roots = MixCorex.generator_template_dirs("corex.gen.context") + content = MixCorex.eval_from_roots(roots, "fixtures_module.ex", binding) Mix.Generator.create_file(context.test_fixtures_file, content) end end defp inject_test_fixture(context, binding) do ensure_test_fixtures_file_exists(context, binding) - roots = Mix.Corex.generator_template_dirs("corex.gen.context") - content = Mix.Corex.eval_from_roots(roots, "fixtures.ex", binding) - content = Mix.Corex.prepend_newline(content) - Mix.Corex.inject_eex_before_final_end(content, context.test_fixtures_file, binding) + roots = MixCorex.generator_template_dirs("corex.gen.context") + content = MixCorex.eval_from_roots(roots, "fixtures.ex", binding) + content = MixCorex.prepend_newline(content) + MixCorex.inject_eex_before_final_end(content, context.test_fixtures_file, binding) end defp maybe_print_unimplemented_fixture_functions(%Context{} = context) do diff --git a/lib/mix/tasks/corex.gen.html.ex b/lib/mix/tasks/corex.gen.html.ex index 995b8cc3..4b863033 100644 --- a/lib/mix/tasks/corex.gen.html.ex +++ b/lib/mix/tasks/corex.gen.html.ex @@ -126,7 +126,7 @@ defmodule Mix.Tasks.Corex.Gen.Html do alias Mix.Phoenix.{Context, Schema, Scope} alias Mix.Tasks.Phx.Gen - @doc false + @impl Mix.Task def run(args) do if Mix.Project.umbrella?() do Mix.raise( @@ -200,7 +200,7 @@ defmodule Mix.Tasks.Corex.Gen.Html do [] end - @doc false + @doc "Lists files emitted by the HTML generator for conflict prompts." def files_to_be_generated(%Context{schema: schema, context_app: context_app}) do singular = schema.singular web_prefix = Mix.Corex.web_path(context_app) @@ -223,8 +223,7 @@ defmodule Mix.Tasks.Corex.Gen.Html do ] end - @doc false - def copy_new_files(%Context{} = context, binding) do + defp copy_new_files(%Context{} = context, binding) do files = files_to_be_generated(context) template_dirs = Mix.Corex.generator_template_dirs("corex.gen.html") Mix.Corex.copy_from(template_dirs, "", binding, files) @@ -234,8 +233,7 @@ defmodule Mix.Tasks.Corex.Gen.Html do context end - @doc false - def print_shell_instructions(%Context{schema: schema, context_app: ctx_app} = context) do + defp print_shell_instructions(%Context{schema: schema, context_app: ctx_app} = context) do layout_opts = layout_generators_opts(context, web_app_name(context)) layout_locale = layout_locale?(layout_opts) @@ -282,7 +280,7 @@ defmodule Mix.Tasks.Corex.Gen.Html do if context.generate?, do: Mix.Corex.Gen.Context.print_shell_instructions(context) end - @doc false + @doc "Builds HEEx snippets for each schema attribute used by corex.gen.html templates." def inputs(%Schema{} = schema) do schema.attrs |> Enum.reject(fn {_key, type} -> type == :map end) @@ -497,7 +495,7 @@ defmodule Mix.Tasks.Corex.Gen.Html do is_list(themes) end - @doc false + @doc "Pads generated input snippets when emitted into generator templates." def indent_inputs(inputs, column_padding) do columns = String.duplicate(" ", column_padding) diff --git a/lib/mix/tasks/corex.gen.live.ex b/lib/mix/tasks/corex.gen.live.ex index 2b820e14..a0216c55 100644 --- a/lib/mix/tasks/corex.gen.live.ex +++ b/lib/mix/tasks/corex.gen.live.ex @@ -128,7 +128,7 @@ defmodule Mix.Tasks.Corex.Gen.Live do alias Mix.Phoenix.{Context, Schema, Scope} alias Mix.Tasks.Phx.Gen - @doc false + @impl Mix.Task def run(args) do if Mix.Project.umbrella?() do Mix.raise( @@ -253,8 +253,7 @@ defmodule Mix.Tasks.Corex.Gen.Live do context end - @doc false - def print_shell_instructions(%Context{schema: schema, context_app: ctx_app} = context) do + defp print_shell_instructions(%Context{schema: schema, context_app: ctx_app} = context) do layout_opts = layout_generators_opts(context, web_app_name(context)) layout_locale = layout_locale?(layout_opts) prefix = Module.concat(context.web_module, schema.web_namespace) @@ -326,7 +325,7 @@ defmodule Mix.Tasks.Corex.Gen.Live do ] end - @doc false + @doc "Builds HEEx snippets for each schema attribute used by corex.gen.live templates." def inputs(%Schema{} = schema) do schema.attrs |> Enum.reject(fn {_key, type} -> type == :map end) diff --git a/mix.exs b/mix.exs index c0a0776b..7c4bc2fc 100644 --- a/mix.exs +++ b/mix.exs @@ -1,7 +1,7 @@ defmodule Corex.MixProject do use Mix.Project - @version "0.1.0-beta.2" + @version "0.1.0-beta.3" @elixir_requirement "~> 1.17" def project do @@ -60,7 +60,8 @@ defmodule Corex.MixProject do {:phoenix_ecto, "~> 4.0", only: :test}, {:excoveralls, "~> 0.18", only: :test}, {:bandit, "~> 1.0", only: :dev}, - {:sobelow, "~> 0.13", only: [:dev, :test], runtime: false} + {:sobelow, "~> 0.13", only: [:dev, :test], runtime: false}, + {:ex_slop, "~> 0.1", only: [:dev, :test], runtime: false} ] end @@ -238,7 +239,9 @@ defmodule Corex.MixProject do Corex.Flash.Error ], Positioning: [ - Corex.Positioning + Corex.Positioning, + Corex.Offset, + Corex.Point ], Animation: [ Corex.Animation, diff --git a/mix.lock b/mix.lock index 125ee627..9830febd 100644 --- a/mix.lock +++ b/mix.lock @@ -3,18 +3,19 @@ "bunt": {:hex, :bunt, "1.0.0", "081c2c665f086849e6d57900292b3a161727ab40431219529f13c4ddcf3e7a44", [:mix], [], "hexpm", "dc5f86aa08a5f6fa6b8096f0735c4e76d54ae5c9fa2c143e5a1fc7c1cd9bb6b5"}, "castore": {:hex, :castore, "1.0.18", "5e43ef0ec7d31195dfa5a65a86e6131db999d074179d2ba5a8de11fe14570f55", [:mix], [], "hexpm", "f393e4fe6317829b158fb74d86eb681f737d2fe326aa61ccf6293c4104957e34"}, "credo": {:hex, :credo, "1.7.18", "5c5596bf7aedf9c8c227f13272ac499fe8eae6237bd326f2f07dfc173786f042", [:mix], [{:bunt, "~> 0.2.1 or ~> 1.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "a189d164685fd945809e862fe76a7420c4398fa288d76257662aecb909d6b3e5"}, - "decimal": {:hex, :decimal, "2.3.0", "3ad6255aa77b4a3c4f818171b12d237500e63525c2fd056699967a3e7ea20f62", [:mix], [], "hexpm", "a4d66355cb29cb47c3cf30e71329e58361cfcb37c34235ef3bf1d7bf3773aeac"}, + "decimal": {:hex, :decimal, "3.0.0", "ce2befbd7218427e4a57d1c6efa6bf50cfc7d0c480c422e70f4fb533074a5f33", [:mix], [], "hexpm", "7a6ab3f806f09738991fc951b2fd2390b3377113feec605a540121aaf772a87b"}, "earmark_parser": {:hex, :earmark_parser, "1.4.44", "f20830dd6b5c77afe2b063777ddbbff09f9759396500cdbe7523efd58d7a339c", [:mix], [], "hexpm", "4778ac752b4701a5599215f7030989c989ffdc4f6df457c5f36938cc2d2a2750"}, - "ecto": {:hex, :ecto, "3.13.5", "9d4a69700183f33bf97208294768e561f5c7f1ecf417e0fa1006e4a91713a834", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "df9efebf70cf94142739ba357499661ef5dbb559ef902b68ea1f3c1fabce36de"}, + "ecto": {:hex, :ecto, "3.13.6", "352135b474f91d1ab99a1b502171d207e9db60421c9e3d0ecab4c7ab96b24d14", [:mix], [{:decimal, "~> 2.0 or ~> 3.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "8afa059bc16cd2c94739ec0a11e3e5df69d828125119109bef35f20a21a76af2"}, "esbuild": {:hex, :esbuild, "0.10.0", "b0aa3388a1c23e727c5a3e7427c932d89ee791746b0081bbe56103e9ef3d291f", [:mix], [{:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "468489cda427b974a7cc9f03ace55368a83e1a7be12fba7e30969af78e5f8c70"}, "ex_doc": {:hex, :ex_doc, "0.40.1", "67542e4b6dde74811cfd580e2c0149b78010fd13001fda7cfeb2b2c2ffb1344d", [:mix], [{:earmark_parser, "~> 1.4.44", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "bcef0e2d360d93ac19f01a85d58f91752d930c0a30e2681145feea6bd3516e00"}, + "ex_slop": {:hex, :ex_slop, "0.4.0", "06c39628e2a278a9adeaf76047f7b98002a453b53a38b48faa3921835675c680", [:mix], [{:credo, "~> 1.7", [hex: :credo, repo: "hexpm", optional: false]}], "hexpm", "563da973e0251ebd69785a21873ea566158c95b123a5dccf075c0c687e4acc2e"}, "excoveralls": {:hex, :excoveralls, "0.18.5", "e229d0a65982613332ec30f07940038fe451a2e5b29bce2a5022165f0c9b157e", [:mix], [{:castore, "~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "523fe8a15603f86d64852aab2abe8ddbd78e68579c8525ae765facc5eae01562"}, "expo": {:hex, :expo, "1.1.1", "4202e1d2ca6e2b3b63e02f69cfe0a404f77702b041d02b58597c00992b601db5", [:mix], [], "hexpm", "5fb308b9cb359ae200b7e23d37c76978673aa1b06e2b3075d814ce12c5811640"}, "file_system": {:hex, :file_system, "1.1.1", "31864f4685b0148f25bd3fbef2b1228457c0c89024ad67f7a81a3ffbc0bbad3a", [:mix], [], "hexpm", "7a15ff97dfe526aeefb090a7a9d3d03aa907e100e262a0f8f7746b78f8f87a5d"}, "floki": {:hex, :floki, "0.38.1", "f002ccac94b3bcb21d40d9b34cc2cc9fd88a8311879120330075b5dde657ebee", [:mix], [], "hexpm", "e744bf0db7ee34b2c8b62767f04071107af0516a81144b9a2f73fe0494200e5b"}, "gettext": {:hex, :gettext, "1.0.2", "5457e1fd3f4abe47b0e13ff85086aabae760497a3497909b8473e0acee57673b", [:mix], [{:expo, "~> 0.5.1 or ~> 1.0", [hex: :expo, repo: "hexpm", optional: false]}], "hexpm", "eab805501886802071ad290714515c8c4a17196ea76e5afc9d06ca85fb1bfeb3"}, "hpax": {:hex, :hpax, "1.0.3", "ed67ef51ad4df91e75cc6a1494f851850c0bd98ebc0be6e81b026e765ee535aa", [:mix], [], "hexpm", "8eab6e1cfa8d5918c2ce4ba43588e894af35dbd8e91e6e55c817bca5847df34a"}, - "jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"}, + "jason": {:hex, :jason, "1.4.5", "2e3a008590b0b8d7388c20293e9dcc9cf3e5d642fd2a114e4cbbb52e595d940a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0 or ~> 3.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "b0c823996102bcd0239b3c2444eb00409b72f6a140c1950bc8b457d836b30684"}, "makeup": {:hex, :makeup, "1.2.1", "e90ac1c65589ef354378def3ba19d401e739ee7ee06fb47f94c687016e3713d1", [:mix], [{:nimble_parsec, "~> 1.4", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "d36484867b0bae0fea568d10131197a4c2e47056a6fbe84922bf6ba71c8d17ce"}, "makeup_eex": {:hex, :makeup_eex, "2.0.2", "88983b72aadb2e8408b06f7c9413804ce7eae2ca2a5a35cb738c6a9cb393c155", [:mix], [{:makeup, "~> 1.2.1 or ~> 1.3", [hex: :makeup, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_html, "~> 0.2.0 or ~> 1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}, {:nimble_parsec, "~> 1.2", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "30ac121dda580298ff3378324ffaec94aad5a5b67e0cc6af177c67d5f45629b9"}, "makeup_elixir": {:hex, :makeup_elixir, "1.0.1", "e928a4f984e795e41e3abd27bfc09f51db16ab8ba1aebdba2b3a575437efafc2", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "7284900d412a3e5cfd97fdaed4f5ed389b8f2b4cb49efc0eb3bd10e2febf9507"}, @@ -22,10 +23,10 @@ "makeup_syntect": {:hex, :makeup_syntect, "0.1.4", "e1230c9e0513c667b226b21c83eb182e1ab581f65af9441edab1f9ac626acba6", [:mix], [{:makeup, "~> 1.2", [hex: :makeup, repo: "hexpm", optional: false]}, {:rustler, "~> 0.37.1", [hex: :rustler, repo: "hexpm", optional: true]}, {:rustler_precompiled, "~> 0.8.2", [hex: :rustler_precompiled, repo: "hexpm", optional: false]}], "hexpm", "5b624a434d9665786b9a352a5f3502b6c98e1996ede9936b20035ec140daef70"}, "mime": {:hex, :mime, "2.0.7", "b8d739037be7cd402aee1ba0306edfdef982687ee7e9859bee6198c1e7e2f128", [:mix], [], "hexpm", "6171188e399ee16023ffc5b76ce445eb6d9672e2e241d2df6050f3c771e80ccd"}, "nimble_parsec": {:hex, :nimble_parsec, "1.4.2", "8efba0122db06df95bfaa78f791344a89352ba04baedd3849593bfce4d0dc1c6", [:mix], [], "hexpm", "4b21398942dda052b403bbe1da991ccd03a053668d147d53fb8c4e0efe09c973"}, - "phoenix": {:hex, :phoenix, "1.8.5", "919db335247e6d4891764dc3063415b0d2457641c5f9b3751b5df03d8e20bbcf", [:mix], [{:bandit, "~> 1.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.7", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.5.3", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "83b2bb125127e02e9f475c8e3e92736325b5b01b0b9b05407bcb4083b7a32485"}, + "phoenix": {:hex, :phoenix, "1.8.7", "d8d755b4ff4b449f610223dd706b4ae64155cb720d3dc09c706c079ecea189e4", [:mix], [{:bandit, "~> 1.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.7", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.5.3", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "47352f72d6ab31009ef77516b1b3a14745be97b54061fd458031b9d8294869d5"}, "phoenix_ecto": {:hex, :phoenix_ecto, "4.7.0", "75c4b9dfb3efdc42aec2bd5f8bccd978aca0651dbcbc7a3f362ea5d9d43153c6", [:mix], [{:ecto, "~> 3.5", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.1", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}], "hexpm", "1d75011e4254cb4ddf823e81823a9629559a1be93b4321a6a5f11a5306fbf4cc"}, "phoenix_html": {:hex, :phoenix_html, "4.3.0", "d3577a5df4b6954cd7890c84d955c470b5310bb49647f0a114a6eeecc850f7ad", [:mix], [], "hexpm", "3eaa290a78bab0f075f791a46a981bbe769d94bc776869f4f3063a14f30497ad"}, - "phoenix_live_view": {:hex, :phoenix_live_view, "1.1.28", "8a8e123d018025f756605a2fb02a4854f0d3cd7b207f710fef1fd5d9d72d0254", [:mix], [{:igniter, ">= 0.6.16 and < 1.0.0-0", [hex: :igniter, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:lazy_html, "~> 0.1.0", [hex: :lazy_html, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6.15 or ~> 1.7.0 or ~> 1.8.0-rc", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.3 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.15", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "24faad535b65089642c3a7d84088109dc58f49c1f1c5a978659855d643466353"}, + "phoenix_live_view": {:hex, :phoenix_live_view, "1.1.30", "a84af1610755dc208da35d4d45564485edbf18c3f3c77373c4a650dc994cdcdb", [:mix], [{:igniter, ">= 0.6.16 and < 1.0.0-0", [hex: :igniter, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:lazy_html, "~> 0.1.0", [hex: :lazy_html, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6.15 or ~> 1.7.0 or ~> 1.8.0-rc", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.3 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.15", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "a353c51ac1e3190910f01a6100c7d5cc02c5e22e7374fd817bd3aedd21149039"}, "phoenix_pubsub": {:hex, :phoenix_pubsub, "2.2.0", "ff3a5616e1bed6804de7773b92cbccfc0b0f473faf1f63d7daf1206c7aeaaa6f", [:mix], [], "hexpm", "adc313a5bf7136039f63cfd9668fde73bba0765e0614cba80c06ac9460ff3e96"}, "phoenix_template": {:hex, :phoenix_template, "1.0.4", "e2092c132f3b5e5b2d49c96695342eb36d0ed514c5b252a77048d5969330d639", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "2c0c81f0e5c6753faf5cca2f229c9709919aba34fab866d3bc05060c9c444206"}, "plug": {:hex, :plug, "1.19.1", "09bac17ae7a001a68ae393658aa23c7e38782be5c5c00c80be82901262c394c0", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "560a0017a8f6d5d30146916862aaf9300b7280063651dd7e532b8be168511e62"}, diff --git a/package.json b/package.json index 50b64b5d..75406ed7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "corex", - "version": "0.1.0-beta.2", + "version": "0.1.0-beta.3", "description": "The official JavaScript client for the Corex Phoenix Hooks.", "license": "MIT", "module": "./priv/static/corex.mjs", diff --git a/priv/design/corex/components/avatar.css b/priv/design/corex/components/avatar.css index 1c25ecfc..2a0c9c66 100644 --- a/priv/design/corex/components/avatar.css +++ b/priv/design/corex/components/avatar.css @@ -1,6 +1,10 @@ @import "../main.css"; @layer components { + .avatar[data-loading] [data-scope="avatar"][data-part="root"] { + @apply ui-loading; + } + .avatar[dir="rtl"] [data-scope="avatar"][data-part="fallback"] { text-align: end; } diff --git a/priv/design/corex/components/carousel.css b/priv/design/corex/components/carousel.css index fe349948..91ab441b 100644 --- a/priv/design/corex/components/carousel.css +++ b/priv/design/corex/components/carousel.css @@ -1,6 +1,10 @@ @import "../main.css"; @layer components { + .carousel[data-loading] [data-scope="carousel"][data-part="root"] { + @apply ui-loading; + } + .carousel { width: 100%; max-width: var(--container-md); diff --git a/priv/design/corex/components/clipboard.css b/priv/design/corex/components/clipboard.css index d8cf7c79..1055c680 100644 --- a/priv/design/corex/components/clipboard.css +++ b/priv/design/corex/components/clipboard.css @@ -1,6 +1,10 @@ @import "../main.css"; @layer components { + .clipboard[data-loading] [data-scope="clipboard"][data-part="root"] { + @apply ui-loading; + } + .clipboard { width: fit-content; } diff --git a/priv/design/corex/components/code.css b/priv/design/corex/components/code.css index 1ff16fec..037c57c8 100644 --- a/priv/design/corex/components/code.css +++ b/priv/design/corex/components/code.css @@ -24,31 +24,36 @@ background-attachment: local; background-position: 0 0; - & code { + & code[data-part="content"] { padding-inline-end: --spacing(11); + white-space: pre-wrap; } } code.code { - display: inline-flex; - width: fit-content; + display: inline-block; max-width: 100%; - overflow: hidden; - text-overflow: ellipsis; - font-family: inherit; - font-size: inherit; - line-height: inherit; - padding-inline: var(--spacing-space); + overflow: visible; + vertical-align: baseline; + box-decoration-break: clone; + -webkit-box-decoration-break: clone; + font-family: var(--font-code); + font-size: var(--text-sm); + line-height: var(--text-sm--line-height); + padding-inline: var(--spacing-space-sm); + padding-block: 0.12em; border: 1px solid var(--color-border); border-radius: var(--radius-md); - justify-content: start; - align-items: start; - white-space: wrap; - overflow-wrap: break-word; - flex-wrap: wrap; + background-color: var(--color-layer); + color: var(--color-ink); user-select: all; } + code.code > span[data-part="content"] { + white-space: pre-wrap; + overflow-wrap: break-word; + } + pre.code.unselectable, code.code.unselectable { -webkit-touch-callout: none; @@ -150,6 +155,11 @@ font-size: inherit; line-height: inherit; } + + &:is(code.code) > span[data-part="content"] { + font-size: inherit; + line-height: inherit; + } } @utility code--max-w-none { diff --git a/priv/design/corex/components/collapsible.css b/priv/design/corex/components/collapsible.css index 79a0275f..405f9fb6 100644 --- a/priv/design/corex/components/collapsible.css +++ b/priv/design/corex/components/collapsible.css @@ -1,6 +1,9 @@ @import "../main.css"; @layer components { + .collapsible[data-loading] [data-scope="collapsible"][data-part="root"] { + @apply ui-loading; + } .collapsible { width: 100%; @@ -70,7 +73,8 @@ .collapsible [data-scope="collapsible"][data-part="root"][data-loading], [data-scope="collapsible"][data-part="root"][data-loading] { - pointer-events: none; + @apply ui-loading; + min-height: var(--spacing-size); min-width: var(--container-7xs); } diff --git a/priv/design/corex/components/dialog.css b/priv/design/corex/components/dialog.css index c82eaf7a..718302e0 100644 --- a/priv/design/corex/components/dialog.css +++ b/priv/design/corex/components/dialog.css @@ -1,6 +1,10 @@ @import "../main.css"; @layer components { + .dialog[data-loading] > * { + @apply ui-loading; + } + .dialog [data-scope="dialog"][data-part="trigger"] { @apply ui-trigger; } diff --git a/priv/design/corex/components/floating-panel.css b/priv/design/corex/components/floating-panel.css index c91ebf1a..940f8fc2 100644 --- a/priv/design/corex/components/floating-panel.css +++ b/priv/design/corex/components/floating-panel.css @@ -2,6 +2,10 @@ @import "./scrollbar.css"; @layer components { + .floating-panel[data-loading] [data-scope="floating-panel"][data-part="root"] { + @apply ui-loading; + } + .floating-panel [data-scope="floating-panel"][data-part="trigger"] { @apply ui-trigger; } diff --git a/priv/design/corex/components/layout-heading.css b/priv/design/corex/components/layout-heading.css index 66d46198..2c5c9256 100644 --- a/priv/design/corex/components/layout-heading.css +++ b/priv/design/corex/components/layout-heading.css @@ -27,6 +27,13 @@ margin: 0; } + .layout-heading [data-scope="layout-heading"][data-part="title"] { + color: var(--color-ink); + } + + .layout-heading [data-scope="layout-heading"][data-part="subtitle"] { + color: var(--color-ink-muted); + } .layout-heading [data-scope="layout-heading"][data-part="actions"] { display: flex; @@ -36,4 +43,15 @@ padding: 0; align-items: start; } +} + +@utility layout-heading--* { + + [data-scope="layout-heading"][data-part="title"] { + color: --value(--color-ink-*, [color]); + } + + [data-scope="layout-heading"][data-part="subtitle"] { + color: --value(--color-ink-*, [color]); + } } \ No newline at end of file diff --git a/priv/design/corex/components/layout.css b/priv/design/corex/components/layout.css index d754ac28..b164f678 100644 --- a/priv/design/corex/components/layout.css +++ b/priv/design/corex/components/layout.css @@ -175,6 +175,21 @@ min-width: var(--container-md); } + .layout .layout__section-intro { + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + gap: var(--spacing-space); + width: 100%; + max-width: var(--container-md); + margin-inline: auto; + } + + .layout .layout__section-intro > p { + margin: 0; + } + .layout .layout__side, .layout .layout__aside { display: none; diff --git a/priv/design/corex/components/link.css b/priv/design/corex/components/link.css index 61725620..c53e5b7c 100644 --- a/priv/design/corex/components/link.css +++ b/priv/design/corex/components/link.css @@ -4,6 +4,34 @@ .link { @apply ui-link; } + + .link.link--skip { + position: fixed; + inset-inline-start: var(--spacing-space-4); + inset-block-start: -9999px; + z-index: 10000; + max-width: min(100vw - var(--spacing-space-8), 20rem); + padding-block: var(--spacing-space-3); + padding-inline: var(--spacing-space-4); + margin: 0; + overflow: visible; + background: var(--color-layer); + color: var(--color-ink); + border: 1px solid var(--color-border); + box-shadow: 0 4px 24px rgb(0 0 0 / 0.12); + transition: inset-block-start 0.15s ease; + } + + .link.link--skip:focus, + .link.link--skip:focus-visible { + inset-block-start: var(--spacing-space-4); + } + + @media (prefers-reduced-motion: reduce) { + .link.link--skip { + transition: none; + } + } } @utility link--* { color: --value(--color-ink, [color]); diff --git a/priv/design/corex/components/listbox.css b/priv/design/corex/components/listbox.css index 00c2625d..88f51b04 100644 --- a/priv/design/corex/components/listbox.css +++ b/priv/design/corex/components/listbox.css @@ -1,18 +1,40 @@ @import "../main.css"; +@import "./scrollbar.css"; @layer components { + .listbox[data-loading] [data-scope="listbox"][data-part="root"] { + @apply ui-loading; + } + .listbox { width: 100%; max-width: var(--container-5xs); } + .listbox[data-orientation="horizontal"] { + max-width: var(--container-md); + } + .listbox [data-scope="listbox"][data-part="root"] { @apply ui-root; + flex-direction: column; + flex-wrap: nowrap; + align-items: stretch; width: 100%; gap: var(--spacing-space); } + .listbox [data-scope="listbox"][data-part="root"] > [data-scope="listbox"][data-part="content"] { + width: 100%; + min-width: 0; + } + + .listbox [data-scope="listbox"][data-part="root"][data-orientation="horizontal"] { + flex-direction: column; + flex-wrap: nowrap; + } + .listbox [data-scope="listbox"][data-part="label"] { @apply ui-label; } @@ -22,11 +44,13 @@ } .listbox [data-scope="listbox"][data-part="item-group-label"] { + display: flex; + align-items: center; font-size: var(--text-base); line-height: var(--text-base--line-height); text-align: start; - padding-inline: --spacing(4); - padding-block: --spacing(4); + min-height: var(--spacing-size); + padding-inline: var(--spacing-space); background-color: var(--color-root); color: var(--color-ink); border-bottom: 1px solid var(--color-border); @@ -38,6 +62,29 @@ flex-direction: column; } + .listbox + [data-scope="listbox"][data-part="content"][data-layout="list"][data-orientation="horizontal"] { + display: flex; + flex-direction: row; + flex-wrap: nowrap; + width: 100%; + min-width: 0; + } + + .listbox + [data-scope="listbox"][data-part="content"][data-layout="list"][data-orientation="horizontal"]:not( + :has([data-part="item-group"]) + ) { + @apply scrollbar scrollbar--sm; + + overflow-x: auto; + overflow-y: hidden; + background-color: var(--color-border); + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + gap: 1px; + } + .listbox [data-scope="listbox"][data-part="content"][data-layout="grid"]:not( :has([data-part="item-group"]) @@ -64,8 +111,8 @@ } .listbox - [data-scope="listbox"][data-part="content"]:not( - :has([data-part="item-group"]) + [data-scope="listbox"][data-part="content"]:not(:has([data-part="item-group"])):not( + [data-layout="list"][data-orientation="horizontal"] ), .listbox [data-scope="listbox"][data-part="item-group"] { background-color: var(--color-border); @@ -79,20 +126,83 @@ @apply ui-item; } + .listbox + [data-scope="listbox"][data-part="content"][data-layout="list"][data-orientation="horizontal"]:not( + :has([data-part="item-group"]) + ) + > [data-scope="listbox"][data-part="item"] { + flex: 0 0 auto; + min-width: max-content; + width: auto; + } + + .listbox [data-scope="listbox"][data-part="content"] [data-scope="listbox"][data-part="item-text"] { + flex: 1 1 0%; + min-width: 0; + max-width: 100%; + width: auto; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + display: block; + text-align: start; + } + + .listbox + [data-scope="listbox"][data-part="content"][data-layout="list"][data-orientation="horizontal"]:not( + :has([data-part="item-group"]) + ) + > [data-scope="listbox"][data-part="item"] + [data-scope="listbox"][data-part="item-text"] { + flex: none; + min-width: auto; + max-width: none; + overflow: visible; + text-overflow: clip; + white-space: nowrap; + } + + .listbox [data-scope="listbox"][data-part="content"] [data-scope="listbox"][data-part="item-indicator"] { + flex-shrink: 0; + } + + .listbox [data-scope="listbox"][data-part="content"] [data-scope="listbox"][data-part="item-indicator"] .icon, + .listbox + [data-scope="listbox"][data-part="content"] + [data-scope="listbox"][data-part="item-indicator"] + [class^="hero-"] { + transition: none !important; + } + .listbox [data-scope="listbox"][data-part="content"][dir="rtl"] - [data-scope="listbox"][data-part="item"] { - border-radius: 0; + [data-scope="listbox"][data-part="item-indicator"] + .icon, + .listbox + [data-scope="listbox"][data-part="content"][dir="rtl"] + [data-scope="listbox"][data-part="item-indicator"] + [class^="hero-"], + .listbox + [data-scope="listbox"][data-part="content"] + [data-scope="listbox"][data-part="item"][dir="rtl"] + > [data-scope="listbox"][data-part="item-indicator"] + .icon, + .listbox + [data-scope="listbox"][data-part="content"] + [data-scope="listbox"][data-part="item"][dir="rtl"] + > [data-scope="listbox"][data-part="item-indicator"] + [class^="hero-"] { + transform: scaleX(-1) !important; } - [dir="rtl"] .listbox [data-scope="listbox"][data-part="item-indicator"] { - transform: scaleX(-1); + .listbox + [data-scope="listbox"][data-part="content"][dir="rtl"] + [data-scope="listbox"][data-part="item"] { + border-radius: 0; } } @utility listbox--* { - max-width: --value(--container-*, [length]); - [data-scope="listbox"][data-part="root"] { width: 100%; gap: --value(--spacing-space-*, [length]); @@ -106,7 +216,6 @@ [data-scope="listbox"][data-part="item"] { font-size: --value(--text-*, [length]); line-height: --value(--text-*--line-height, [length]); - } [data-scope="listbox"][data-part="item"][data-selected] { diff --git a/priv/design/corex/components/menu.css b/priv/design/corex/components/menu.css index 6eea07d1..b28599a8 100644 --- a/priv/design/corex/components/menu.css +++ b/priv/design/corex/components/menu.css @@ -1,6 +1,10 @@ @import "../main.css"; @layer components { + .menu[data-loading] [data-scope="menu"][data-part="root"] { + @apply ui-loading; + } + .menu [data-scope="menu"][data-part="content"] { @apply ui-content; diff --git a/priv/design/corex/components/select.css b/priv/design/corex/components/select.css index 55381bf3..d48a6e84 100644 --- a/priv/design/corex/components/select.css +++ b/priv/design/corex/components/select.css @@ -157,423 +157,52 @@ } -@utility select--sm { +@utility select--* { [data-scope="select"][data-part="root"] { - gap: var(--spacing-space-sm); + gap: --value(--spacing-space-*, [length]); } [data-scope="select"][data-part="label"] { - font-size: var(--text-sm); - line-height: var(--text-sm--line-height); - } - - [data-scope="select"][data-part="control"] { - max-width: var(--container-sm); - gap: var(--spacing-space-sm); - } - - [data-scope="select"][data-part="trigger"] { - font-size: var(--text-sm); - line-height: var(--text-sm--line-height); - padding-inline: var(--spacing-space-sm); - gap: var(--spacing-space-sm); - min-height: var(--spacing-size-sm); - } - - [data-scope="select"][data-part="item"] { - font-size: var(--text-sm); - line-height: var(--text-sm--line-height); - padding-inline: var(--spacing-space-sm); - gap: var(--spacing-space-sm); - } - - [data-scope="select"][data-part="content"] [data-part="item-indicator"] { - padding-inline-end: var(--spacing-space-sm); - } - - [data-scope="select"][data-part="item-group-label"] { - font-size: var(--text-sm); - line-height: var(--text-sm--line-height); - } -} - -@utility select--md { - [data-scope="select"][data-part="root"] { - gap: var(--spacing-space-md); - } - - [data-scope="select"][data-part="label"] { - font-size: var(--text-base); - line-height: var(--text-base--line-height); - } - - [data-scope="select"][data-part="control"] { - max-width: var(--container-md); - gap: var(--spacing-space-md); - } - - [data-scope="select"][data-part="trigger"] { - font-size: var(--text-base); - line-height: var(--text-base--line-height); - padding-inline: var(--spacing-space-md); - gap: var(--spacing-space-md); - min-height: var(--spacing-size-md); - } - - [data-scope="select"][data-part="item"] { - font-size: var(--text-base); - line-height: var(--text-base--line-height); - padding-inline: var(--spacing-space-md); - gap: var(--spacing-space-md); - } - - [data-scope="select"][data-part="content"] [data-part="item-indicator"] { - padding-inline-end: var(--spacing-space-md); - } - - [data-scope="select"][data-part="item-group-label"] { - font-size: var(--text-base); - line-height: var(--text-base--line-height); - } -} - -@utility select--lg { - [data-scope="select"][data-part="root"] { - gap: var(--spacing-space-lg); - } - - [data-scope="select"][data-part="label"] { - font-size: var(--text-lg); - line-height: var(--text-lg--line-height); + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); } [data-scope="select"][data-part="control"] { - max-width: var(--container-lg); - gap: var(--spacing-space-lg); + max-width: --value(--container-*, [length]); + gap: --value(--spacing-space-*, [length]); } [data-scope="select"][data-part="trigger"] { - font-size: var(--text-lg); - line-height: var(--text-lg--line-height); - padding-inline: var(--spacing-space-lg); - gap: var(--spacing-space-lg); - min-height: var(--spacing-size-lg); - } - - [data-scope="select"][data-part="item"] { - font-size: var(--text-lg); - line-height: var(--text-lg--line-height); - padding-inline: var(--spacing-space-lg); - gap: var(--spacing-space-lg); - } - - [data-scope="select"][data-part="content"] [data-part="item-indicator"] { - padding-inline-end: var(--spacing-space-lg); - } - - [data-scope="select"][data-part="item-group-label"] { - font-size: var(--text-lg); - line-height: var(--text-lg--line-height); - } -} - -@utility select--xl { - [data-scope="select"][data-part="root"] { - gap: var(--spacing-space-xl); - } - - [data-scope="select"][data-part="label"] { - font-size: var(--text-xl); - line-height: var(--text-xl--line-height); + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); + padding-inline: --value(--spacing-space-*, [length]); + gap: --value(--spacing-space-*, [length]); + min-height: --value(--spacing-size-*, [length]); } - [data-scope="select"][data-part="control"] { - max-width: var(--container-xl); - gap: var(--spacing-space-xl); + [data-scope="select"][data-part="trigger"] .icon, + [data-scope="select"][data-part="trigger"] [class^="hero-"] { + color: inherit; } - [data-scope="select"][data-part="trigger"] { - font-size: var(--text-xl); - line-height: var(--text-xl--line-height); - padding-inline: var(--spacing-space-xl); - gap: var(--spacing-space-xl); - min-height: var(--spacing-size-xl); + [data-scope="select"][data-part="trigger"] svg { + fill: currentColor; } [data-scope="select"][data-part="item"] { - font-size: var(--text-xl); - line-height: var(--text-xl--line-height); - padding-inline: var(--spacing-space-xl); - gap: var(--spacing-space-xl); + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); + padding-inline: --value(--spacing-space-*, [length]); + gap: --value(--spacing-space-*, [length]); } [data-scope="select"][data-part="content"] [data-part="item-indicator"] { - padding-inline-end: var(--spacing-space-xl); + padding-inline-end: --value(--spacing-space-*, [length]); } [data-scope="select"][data-part="item-group-label"] { - font-size: var(--text-xl); - line-height: var(--text-xl--line-height); - } -} - -@utility select--accent { - & [data-scope="select"][data-part="item"][data-selected], - & [data-scope="select"][data-part="item"][data-state="checked"] { - background-color: var(--color-accent); - color: var(--color-accent-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:hover, - & [data-scope="select"][data-part="item"][data-state="checked"]:hover { - background-color: var(--color-accent-hover); - color: var(--color-accent-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:active, - & [data-scope="select"][data-part="item"][data-state="checked"]:active { - background-color: var(--color-accent-active); - color: var(--color-accent-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:focus-visible, - & [data-scope="select"][data-part="item"][data-state="checked"]:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-accent-ink); - } - - @media (hover: hover) { - & [data-scope="select"][data-part="item"][data-highlighted]:not(:hover) { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - @media (hover: none) { - & [data-scope="select"][data-part="item"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - & [data-scope="select"][data-part="item"][data-selected][data-highlighted], - & [data-scope="select"][data-part="item"][data-state="checked"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-accent-ink); - background-color: var(--color-accent-hover); - color: var(--color-accent-ink); - } -} - -@utility select--brand { - & [data-scope="select"][data-part="item"][data-selected], - & [data-scope="select"][data-part="item"][data-state="checked"] { - background-color: var(--color-brand); - color: var(--color-brand-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:hover, - & [data-scope="select"][data-part="item"][data-state="checked"]:hover { - background-color: var(--color-brand-hover); - color: var(--color-brand-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:active, - & [data-scope="select"][data-part="item"][data-state="checked"]:active { - background-color: var(--color-brand-active); - color: var(--color-brand-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:focus-visible, - & [data-scope="select"][data-part="item"][data-state="checked"]:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-brand-ink); - } - - @media (hover: hover) { - & [data-scope="select"][data-part="item"][data-highlighted]:not(:hover) { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - @media (hover: none) { - & [data-scope="select"][data-part="item"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - & [data-scope="select"][data-part="item"][data-selected][data-highlighted], - & [data-scope="select"][data-part="item"][data-state="checked"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-brand-ink); - background-color: var(--color-brand-hover); - color: var(--color-brand-ink); - } -} - -@utility select--alert { - & [data-scope="select"][data-part="item"][data-selected], - & [data-scope="select"][data-part="item"][data-state="checked"] { - background-color: var(--color-alert); - color: var(--color-alert-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:hover, - & [data-scope="select"][data-part="item"][data-state="checked"]:hover { - background-color: var(--color-alert-hover); - color: var(--color-alert-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:active, - & [data-scope="select"][data-part="item"][data-state="checked"]:active { - background-color: var(--color-alert-active); - color: var(--color-alert-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:focus-visible, - & [data-scope="select"][data-part="item"][data-state="checked"]:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-alert-ink); - } - - @media (hover: hover) { - & [data-scope="select"][data-part="item"][data-highlighted]:not(:hover) { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - @media (hover: none) { - & [data-scope="select"][data-part="item"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - & [data-scope="select"][data-part="item"][data-selected][data-highlighted], - & [data-scope="select"][data-part="item"][data-state="checked"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-alert-ink); - background-color: var(--color-alert-hover); - color: var(--color-alert-ink); - } -} - -@utility select--info { - & [data-scope="select"][data-part="item"][data-selected], - & [data-scope="select"][data-part="item"][data-state="checked"] { - background-color: var(--color-info); - color: var(--color-info-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:hover, - & [data-scope="select"][data-part="item"][data-state="checked"]:hover { - background-color: var(--color-info-hover); - color: var(--color-info-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:active, - & [data-scope="select"][data-part="item"][data-state="checked"]:active { - background-color: var(--color-info-active); - color: var(--color-info-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:focus-visible, - & [data-scope="select"][data-part="item"][data-state="checked"]:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-info-ink); - } - - @media (hover: hover) { - & [data-scope="select"][data-part="item"][data-highlighted]:not(:hover) { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - @media (hover: none) { - & [data-scope="select"][data-part="item"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - & [data-scope="select"][data-part="item"][data-selected][data-highlighted], - & [data-scope="select"][data-part="item"][data-state="checked"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-info-ink); - background-color: var(--color-info-hover); - color: var(--color-info-ink); - } -} - -@utility select--success { - & [data-scope="select"][data-part="item"][data-selected], - & [data-scope="select"][data-part="item"][data-state="checked"] { - background-color: var(--color-success); - color: var(--color-success-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:hover, - & [data-scope="select"][data-part="item"][data-state="checked"]:hover { - background-color: var(--color-success-hover); - color: var(--color-success-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:active, - & [data-scope="select"][data-part="item"][data-state="checked"]:active { - background-color: var(--color-success-active); - color: var(--color-success-ink); - } - - & [data-scope="select"][data-part="item"][data-selected]:focus-visible, - & [data-scope="select"][data-part="item"][data-state="checked"]:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-success-ink); - } - - @media (hover: hover) { - & [data-scope="select"][data-part="item"][data-highlighted]:not(:hover) { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - @media (hover: none) { - & [data-scope="select"][data-part="item"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-ink); - background-color: var(--color-ui-hover); - color: var(--color-ink); - } - } - - & [data-scope="select"][data-part="item"][data-selected][data-highlighted], - & [data-scope="select"][data-part="item"][data-state="checked"][data-highlighted] { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-success-ink); - background-color: var(--color-success-hover); - color: var(--color-success-ink); + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); } } @@ -581,10 +210,6 @@ [data-scope="select"][data-part="trigger"] { border-radius: --value(--radius-*, [length]); } - - [data-scope="select"][data-part="content"] { - border-radius: --value(--radius-*, [length]); - } } @utility select--text-* { diff --git a/priv/design/corex/components/switch.css b/priv/design/corex/components/switch.css index 3eb786ee..e964dc46 100644 --- a/priv/design/corex/components/switch.css +++ b/priv/design/corex/components/switch.css @@ -6,8 +6,8 @@ } .switch [data-scope="switch"][data-part="root"] { - --switch-track-width: --spacing(8); - --switch-track-height: --spacing(4); + --switch-track-width: var(--spacing-size); + --switch-track-height: calc(var(--spacing-size) * 0.5); --switch-track-diff: calc( var(--switch-track-width) - var(--switch-track-height) ); @@ -82,7 +82,9 @@ background: var(--color-selected-ink); } - [dir="rtl"] .switch [data-scope="switch"][data-part="thumb"][data-state="checked"] { + .switch + [data-scope="switch"][data-part="root"][dir="rtl"] + [data-scope="switch"][data-part="thumb"][data-state="checked"] { transform: translateX(calc(var(--switch-thumb-x) * -1)); } @@ -101,112 +103,22 @@ } } -@utility switch--sm { - [data-scope="switch"][data-part="root"] { - max-width: var(--container-sm); - } - - [data-scope="switch"][data-part="control"] { - --switch-track-width: calc(calc(var(--spacing-size-sm) * 1.5) * 2.5); - --switch-track-height: calc(var(--spacing-size-sm) * 1.5); - --switch-track-diff: calc( - var(--switch-track-width) - var(--switch-track-height) - ); - --switch-thumb-x: var(--switch-track-diff); - } -} - -@utility switch--md { - [data-scope="switch"][data-part="root"] { - max-width: var(--container-md); - } - - [data-scope="switch"][data-part="control"] { - --switch-track-width: calc(calc(var(--spacing-size-md) * 1.5) * 2.5); - --switch-track-height: calc(var(--spacing-size-md) * 1.5); - --switch-track-diff: calc( - var(--switch-track-width) - var(--switch-track-height) - ); - --switch-thumb-x: var(--switch-track-diff); - } -} - -@utility switch--lg { - [data-scope="switch"][data-part="root"] { - max-width: var(--container-lg); - } - - [data-scope="switch"][data-part="control"] { - --switch-track-width: calc(calc(var(--spacing-size-lg) * 1.5) * 2.5); - --switch-track-height: calc(var(--spacing-size-lg) * 1.5); - --switch-track-diff: calc( - var(--switch-track-width) - var(--switch-track-height) - ); - --switch-thumb-x: var(--switch-track-diff); - } -} - -@utility switch--xl { - [data-scope="switch"][data-part="root"] { - max-width: var(--container-xl); - } +@utility switch--* { [data-scope="switch"][data-part="control"] { - --switch-track-width: calc(calc(var(--spacing-size-xl) * 1.5) * 2.5); - --switch-track-height: calc(var(--spacing-size-xl) * 1.5); + --switch-track-width: --value(--spacing-size-*, [length]); + --switch-track-height: calc(--value(--spacing-size-*, [length]) * 0.5); --switch-track-diff: calc( var(--switch-track-width) - var(--switch-track-height) ); --switch-thumb-x: var(--switch-track-diff); } -} - -@utility switch--accent { - [data-scope="switch"][data-part="control"][data-state="checked"] { - background-color: var(--color-accent); - - & [data-scope="switch"][data-part="thumb"] { - background-color: var(--color-accent-ink); - } - } -} - -@utility switch--brand { - [data-scope="switch"][data-part="control"][data-state="checked"] { - background-color: var(--color-brand); - - & [data-scope="switch"][data-part="thumb"] { - background-color: var(--color-brand-ink); - } - } -} - -@utility switch--alert { - [data-scope="switch"][data-part="control"][data-state="checked"] { - background-color: var(--color-alert); - - & [data-scope="switch"][data-part="thumb"] { - background-color: var(--color-alert-ink); - } - } -} - -@utility switch--info { - [data-scope="switch"][data-part="control"][data-state="checked"] { - background-color: var(--color-info); - - & [data-scope="switch"][data-part="thumb"] { - background-color: var(--color-info-ink); - } - } -} -@utility switch--success { [data-scope="switch"][data-part="control"][data-state="checked"] { - background-color: var(--color-success); + background-color: --value(--color-*, [color]); & [data-scope="switch"][data-part="thumb"] { - background-color: var(--color-success-ink); + background-color: --value(--color-*-ink, [color]); } } } \ No newline at end of file diff --git a/priv/design/corex/components/tabs.css b/priv/design/corex/components/tabs.css index 3e2851cd..dde6e7c0 100644 --- a/priv/design/corex/components/tabs.css +++ b/priv/design/corex/components/tabs.css @@ -1,6 +1,10 @@ @import "../main.css"; @layer components { + .tabs[data-loading] [data-scope="tabs"][data-part="root"] { + @apply ui-loading; + } + .tabs { width: 100%; max-width: none; @@ -96,178 +100,55 @@ } } -@utility tabs--sm { - [data-scope="tabs"][data-part="root"] { - gap: var(--spacing-space-sm); - } -} - -@utility tabs--md { +@utility tabs--* { [data-scope="tabs"][data-part="root"] { - gap: var(--spacing-space-md); - } -} - -@utility tabs--lg { - [data-scope="tabs"][data-part="root"] { - gap: var(--spacing-space-lg); - } -} - -@utility tabs--xl { - [data-scope="tabs"][data-part="root"] { - gap: var(--spacing-space-xl); - } -} - -@utility tabs--text-* { - [data-scope="tabs"][data-part="trigger"] { - font-size: --value(--text-*, [length]); - line-height: --value(--text-*--line-height, [length]); - } - - [data-scope="tabs"][data-part="content"] { - font-size: --value(--text-*, [length]); - line-height: --value(--text-*--line-height, [length]); - } -} - -@utility tabs--rounded-* { - [data-scope="tabs"][data-part="list"] { - border-radius: --value(--radius-*, [length]); - } - - [data-scope="tabs"][data-part="content"] { - border-radius: --value(--radius-*, [length]); + gap: --value(--spacing-space-*, [length]); } -} -@utility tabs--accent { [data-scope="tabs"][data-part="trigger"][data-selected] { - background-color: var(--color-accent); - color: var(--color-accent-ink); + background-color: --value(--color-*, [color]); + color: --value(--color-*-ink, [color]); &:hover { - background-color: var(--color-accent-hover); + background-color: --value(--color-*-hover, [color]); } &:active { - background-color: var(--color-accent-active); + background-color: --value(--color-*-active, [color]); } &:focus-visible { outline: none; - box-shadow: inset 0 0 0 2px var(--color-accent-ink); + box-shadow: inset 0 0 0 2px --value(--color-*-ink, [color]); } &:disabled, &[data-disabled], &[disabled] { - background-color: var(--color-accent-muted); + background-color: --value(--color-*-muted, [color]); } } } -@utility tabs--brand { - [data-scope="tabs"][data-part="trigger"][data-selected] { - background-color: var(--color-brand); - color: var(--color-brand-ink); - - &:hover { - background-color: var(--color-brand-hover); - } - - &:active { - background-color: var(--color-brand-active); - } - - &:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-brand-ink); - } - - &:disabled, - &[data-disabled], - &[disabled] { - background-color: var(--color-brand-muted); - } +@utility tabs--text-* { + [data-scope="tabs"][data-part="trigger"] { + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); } -} -@utility tabs--alert { - [data-scope="tabs"][data-part="trigger"][data-selected] { - background-color: var(--color-alert); - color: var(--color-alert-ink); - - &:hover { - background-color: var(--color-alert-hover); - } - - &:active { - background-color: var(--color-alert-active); - } - - &:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-alert-ink); - } - - &:disabled, - &[data-disabled], - &[disabled] { - background-color: var(--color-alert-muted); - } + [data-scope="tabs"][data-part="content"] { + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); } } -@utility tabs--info { - [data-scope="tabs"][data-part="trigger"][data-selected] { - background-color: var(--color-info); - color: var(--color-info-ink); - - &:hover { - background-color: var(--color-info-hover); - } - - &:active { - background-color: var(--color-info-active); - } - - &:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-info-ink); - } - - &:disabled, - &[data-disabled], - &[disabled] { - background-color: var(--color-info-muted); - } +@utility tabs--rounded-* { + [data-scope="tabs"][data-part="list"] { + border-radius: --value(--radius-*, [length]); } -} - -@utility tabs--success { - [data-scope="tabs"][data-part="trigger"][data-selected] { - background-color: var(--color-success); - color: var(--color-success-ink); - - &:hover { - background-color: var(--color-success-hover); - } - &:active { - background-color: var(--color-success-active); - } - - &:focus-visible { - outline: none; - box-shadow: inset 0 0 0 2px var(--color-success-ink); - } - - &:disabled, - &[data-disabled], - &[disabled] { - background-color: var(--color-success-muted); - } + [data-scope="tabs"][data-part="content"] { + border-radius: --value(--radius-*, [length]); } } + diff --git a/priv/design/corex/components/timer.css b/priv/design/corex/components/timer.css index 2a0ca3f3..19cc8d28 100644 --- a/priv/design/corex/components/timer.css +++ b/priv/design/corex/components/timer.css @@ -3,21 +3,42 @@ @layer components { .timer { width: 100%; - max-width: var(--container-md); - } - - .timer [data-scope="timer"][data-part="root"] { - @apply ui-root; + max-width: fit-content; } .timer [data-scope="timer"][data-part="area"] { display: flex; width: 100%; justify-content: center; - align-items: center; + align-items: flex-start; flex-wrap: wrap; } + .timer [data-scope="timer"][data-part="area"]:not(:has([data-scope="timer"][data-part="separator"])) { + gap: var(--spacing-space-sm); + } + + .timer [data-timer-segment] { + display: flex; + flex-direction: column; + align-items: center; + justify-content: flex-start; + min-width: 0; + gap: var(--spacing-space); + } + + .timer [data-scope="timer"][data-part="item-label"] { + font-size: var(--text-xs); + line-height: var(--text-xs--line-height); + font-weight: var(--font-weight-semibold); + letter-spacing: 0.08em; + text-transform: uppercase; + color: var(--color-ink-muted); + text-align: center; + white-space: nowrap; + max-width: 100%; + } + .timer [data-scope="timer"][data-part="item"] { display: flex; align-items: center; @@ -52,11 +73,33 @@ z-index: 1; } + .timer [data-scope="timer"][data-part="item"][data-type="days"] { + box-sizing: border-box; + min-width: max(2em, 3.5ch); + width: auto; + aspect-ratio: unset; + padding-inline: var(--spacing-space); + } + + .timer [data-scope="timer"][data-part="item"][data-type="days"]::before { + content: "000\a 001\a 002\a 003\a 004\a 005\a 006\a 007\a 008\a 009\a 010\a 011\a 012\a 013\a 014\a 015\a 016\a 017\a 018\a 019\a 020\a 021\a 022\a 023\a 024\a 025\a 026\a 027\a 028\a 029\a 030\a 031\a 032\a 033\a 034\a 035\a 036\a 037\a 038\a 039\a 040\a 041\a 042\a 043\a 044\a 045\a 046\a 047\a 048\a 049\a 050\a 051\a 052\a 053\a 054\a 055\a 056\a 057\a 058\a 059\a 060\a 061\a 062\a 063\a 064\a 065\a 066\a 067\a 068\a 069\a 070\a 071\a 072\a 073\a 074\a 075\a 076\a 077\a 078\a 079\a 080\a 081\a 082\a 083\a 084\a 085\a 086\a 087\a 088\a 089\a 090\a 091\a 092\a 093\a 094\a 095\a 096\a 097\a 098\a 099\a 100\a 101\a 102\a 103\a 104\a 105\a 106\a 107\a 108\a 109\a 110\a 111\a 112\a 113\a 114\a 115\a 116\a 117\a 118\a 119\a 120\a 121\a 122\a 123\a 124\a 125\a 126\a 127\a 128\a 129\a 130\a 131\a 132\a 133\a 134\a 135\a 136\a 137\a 138\a 139\a 140\a 141\a 142\a 143\a 144\a 145\a 146\a 147\a 148\a 149\a 150\a 151\a 152\a 153\a 154\a 155\a 156\a 157\a 158\a 159\a 160\a 161\a 162\a 163\a 164\a 165\a 166\a 167\a 168\a 169\a 170\a 171\a 172\a 173\a 174\a 175\a 176\a 177\a 178\a 179\a 180\a 181\a 182\a 183\a 184\a 185\a 186\a 187\a 188\a 189\a 190\a 191\a 192\a 193\a 194\a 195\a 196\a 197\a 198\a 199\a 200\a 201\a 202\a 203\a 204\a 205\a 206\a 207\a 208\a 209\a 210\a 211\a 212\a 213\a 214\a 215\a 216\a 217\a 218\a 219\a 220\a 221\a 222\a 223\a 224\a 225\a 226\a 227\a 228\a 229\a 230\a 231\a 232\a 233\a 234\a 235\a 236\a 237\a 238\a 239\a 240\a 241\a 242\a 243\a 244\a 245\a 246\a 247\a 248\a 249\a 250\a 251\a 252\a 253\a 254\a 255\a 256\a 257\a 258\a 259\a 260\a 261\a 262\a 263\a 264\a 265\a 266\a 267\a 268\a 269\a 270\a 271\a 272\a 273\a 274\a 275\a 276\a 277\a 278\a 279\a 280\a 281\a 282\a 283\a 284\a 285\a 286\a 287\a 288\a 289\a 290\a 291\a 292\a 293\a 294\a 295\a 296\a 297\a 298\a 299\a 300\a 301\a 302\a 303\a 304\a 305\a 306\a 307\a 308\a 309\a 310\a 311\a 312\a 313\a 314\a 315\a 316\a 317\a 318\a 319\a 320\a 321\a 322\a 323\a 324\a 325\a 326\a 327\a 328\a 329\a 330\a 331\a 332\a 333\a 334\a 335\a 336\a 337\a 338\a 339\a 340\a 341\a 342\a 343\a 344\a 345\a 346\a 347\a 348\a 349\a 350\a 351\a 352\a 353\a 354\a 355\a 356\a 357\a 358\a 359\a 360\a 361\a 362\a 363\a 364\a 365\a 366\a 367\a 368\a 369\a 370\a 371\a 372\a 373\a 374\a 375\a 376\a 377\a 378\a 379\a 380\a 381\a 382\a 383\a 384\a 385\a 386\a 387\a 388\a 389\a 390\a 391\a 392\a 393\a 394\a 395\a 396\a 397\a 398\a 399\a 400\a 401\a 402\a 403\a 404\a 405\a 406\a 407\a 408\a 409\a 410\a 411\a 412\a 413\a 414\a 415\a 416\a 417\a 418\a 419\a 420\a 421\a 422\a 423\a 424\a 425\a 426\a 427\a 428\a 429\a 430\a 431\a 432\a 433\a 434\a 435\a 436\a 437\a 438\a 439\a 440\a 441\a 442\a 443\a 444\a 445\a 446\a 447\a 448\a 449\a 450\a 451\a 452\a 453\a 454\a 455\a 456\a 457\a 458\a 459\a 460\a 461\a 462\a 463\a 464\a 465\a 466\a 467\a 468\a 469\a 470\a 471\a 472\a 473\a 474\a 475\a 476\a 477\a 478\a 479\a 480\a 481\a 482\a 483\a 484\a 485\a 486\a 487\a 488\a 489\a 490\a 491\a 492\a 493\a 494\a 495\a 496\a 497\a 498\a 499\a 500\a 501\a 502\a 503\a 504\a 505\a 506\a 507\a 508\a 509\a 510\a 511\a 512\a 513\a 514\a 515\a 516\a 517\a 518\a 519\a 520\a 521\a 522\a 523\a 524\a 525\a 526\a 527\a 528\a 529\a 530\a 531\a 532\a 533\a 534\a 535\a 536\a 537\a 538\a 539\a 540\a 541\a 542\a 543\a 544\a 545\a 546\a 547\a 548\a 549\a 550\a 551\a 552\a 553\a 554\a 555\a 556\a 557\a 558\a 559\a 560\a 561\a 562\a 563\a 564\a 565\a 566\a 567\a 568\a 569\a 570\a 571\a 572\a 573\a 574\a 575\a 576\a 577\a 578\a 579\a 580\a 581\a 582\a 583\a 584\a 585\a 586\a 587\a 588\a 589\a 590\a 591\a 592\a 593\a 594\a 595\a 596\a 597\a 598\a 599\a 600\a 601\a 602\a 603\a 604\a 605\a 606\a 607\a 608\a 609\a 610\a 611\a 612\a 613\a 614\a 615\a 616\a 617\a 618\a 619\a 620\a 621\a 622\a 623\a 624\a 625\a 626\a 627\a 628\a 629\a 630\a 631\a 632\a 633\a 634\a 635\a 636\a 637\a 638\a 639\a 640\a 641\a 642\a 643\a 644\a 645\a 646\a 647\a 648\a 649\a 650\a 651\a 652\a 653\a 654\a 655\a 656\a 657\a 658\a 659\a 660\a 661\a 662\a 663\a 664\a 665\a 666\a 667\a 668\a 669\a 670\a 671\a 672\a 673\a 674\a 675\a 676\a 677\a 678\a 679\a 680\a 681\a 682\a 683\a 684\a 685\a 686\a 687\a 688\a 689\a 690\a 691\a 692\a 693\a 694\a 695\a 696\a 697\a 698\a 699\a 700\a 701\a 702\a 703\a 704\a 705\a 706\a 707\a 708\a 709\a 710\a 711\a 712\a 713\a 714\a 715\a 716\a 717\a 718\a 719\a 720\a 721\a 722\a 723\a 724\a 725\a 726\a 727\a 728\a 729\a 730\a 731\a 732\a 733\a 734\a 735\a 736\a 737\a 738\a 739\a 740\a 741\a 742\a 743\a 744\a 745\a 746\a 747\a 748\a 749\a 750\a 751\a 752\a 753\a 754\a 755\a 756\a 757\a 758\a 759\a 760\a 761\a 762\a 763\a 764\a 765\a 766\a 767\a 768\a 769\a 770\a 771\a 772\a 773\a 774\a 775\a 776\a 777\a 778\a 779\a 780\a 781\a 782\a 783\a 784\a 785\a 786\a 787\a 788\a 789\a 790\a 791\a 792\a 793\a 794\a 795\a 796\a 797\a 798\a 799\a 800\a 801\a 802\a 803\a 804\a 805\a 806\a 807\a 808\a 809\a 810\a 811\a 812\a 813\a 814\a 815\a 816\a 817\a 818\a 819\a 820\a 821\a 822\a 823\a 824\a 825\a 826\a 827\a 828\a 829\a 830\a 831\a 832\a 833\a 834\a 835\a 836\a 837\a 838\a 839\a 840\a 841\a 842\a 843\a 844\a 845\a 846\a 847\a 848\a 849\a 850\a 851\a 852\a 853\a 854\a 855\a 856\a 857\a 858\a 859\a 860\a 861\a 862\a 863\a 864\a 865\a 866\a 867\a 868\a 869\a 870\a 871\a 872\a 873\a 874\a 875\a 876\a 877\a 878\a 879\a 880\a 881\a 882\a 883\a 884\a 885\a 886\a 887\a 888\a 889\a 890\a 891\a 892\a 893\a 894\a 895\a 896\a 897\a 898\a 899\a 900\a 901\a 902\a 903\a 904\a 905\a 906\a 907\a 908\a 909\a 910\a 911\a 912\a 913\a 914\a 915\a 916\a 917\a 918\a 919\a 920\a 921\a 922\a 923\a 924\a 925\a 926\a 927\a 928\a 929\a 930\a 931\a 932\a 933\a 934\a 935\a 936\a 937\a 938\a 939\a 940\a 941\a 942\a 943\a 944\a 945\a 946\a 947\a 948\a 949\a 950\a 951\a 952\a 953\a 954\a 955\a 956\a 957\a 958\a 959\a 960\a 961\a 962\a 963\a 964\a 965\a 966\a 967\a 968\a 969\a 970\a 971\a 972\a 973\a 974\a 975\a 976\a 977\a 978\a 979\a 980\a 981\a 982\a 983\a 984\a 985\a 986\a 987\a 988\a 989\a 990\a 991\a 992\a 993\a 994\a 995\a 996\a 997\a 998\a 999"; + } + + .timer [data-scope="timer"][data-part="separator"] { font-size: var(--text-base); line-height: var(--text-base--line-height); - font-weight: var(--font-weight-normal); - padding: --spacing(4); + font-weight: var(--font-weight-semibold); + padding-inline: var(--spacing-space); + padding-block: 0; + display: inline-flex; + align-items: center; + justify-content: center; + height: 2em; + min-height: 2em; + box-sizing: border-box; + flex-shrink: 0; + color: var(--color-ink); } .timer [data-scope="timer"][data-part="control"] { @@ -67,105 +110,90 @@ } .timer [data-scope="timer"][data-part="action-trigger"] { - @apply ui-trigger ui-trigger--square ui-trigger--sm; + @apply ui-trigger ui-trigger--square; + padding: 0 !important; + min-height: 2em !important; + height: 2em; } } -@utility timer--sm { - max-width: var(--container-sm); -} - -@utility timer--md { - max-width: var(--container-md); -} - -@utility timer--lg { - max-width: var(--container-lg); -} +@utility timer--* { -@utility timer--xl { - max-width: var(--container-xl); -} - -@utility timer--text-* { [data-scope="timer"][data-part="item"] { font-size: --value(--text-*, [length]); line-height: --value(--text-*--line-height, [length]); + background: --value(--color-*-muted, [color]); + color: --value(--color-*-ink, [color]); + border-color: --value(--color-*, [color]); } - [data-scope="timer"][data-part="separator"] { - font-size: --value(--text-*, [length]); - line-height: --value(--text-*--line-height, [length]); + [data-scope="timer"][data-part="item"][data-type="days"] { + min-width: max(2em, 3.5ch); } - [data-scope="timer"][data-part="action-trigger"] { + [data-scope="timer"][data-part="item-label"] { font-size: --value(--text-*, [length]); line-height: --value(--text-*--line-height, [length]); + color: --value(--color-*-ink-muted, [color]); } -} -@utility timer--rounded-* { - [data-scope="timer"][data-part="item"] { - border-radius: --value(--radius-*, [length]); + [data-scope="timer"][data-part="separator"] { + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); + padding-inline: --value(--spacing-space-*, [length]); + padding-block: 0; + color: --value(--color-*-ink, [color]); + font-weight: var(--font-weight-semibold); } -} -@utility timer--accent { - [data-scope="timer"][data-part="item"] { - background: var(--color-accent-muted); - color: var(--color-accent-ink); - border-color: var(--color-accent); + [data-scope="timer"][data-part="control"] { + gap: --value(--spacing-space-*, [length]); } - [data-scope="timer"][data-part="separator"] { - color: var(--color-accent-ink); + [data-scope="timer"][data-part="action-trigger"] { + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); + height: 2em; } } -@utility timer--brand { +@utility timer--text-* { [data-scope="timer"][data-part="item"] { - background: var(--color-brand-muted); - color: var(--color-brand-ink); - border-color: var(--color-brand); + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); } - [data-scope="timer"][data-part="separator"] { - color: var(--color-brand-ink); + [data-scope="timer"][data-part="item"][data-type="days"] { + min-width: max(2em, 3.5ch); } -} -@utility timer--alert { - [data-scope="timer"][data-part="item"] { - background: var(--color-alert-muted); - color: var(--color-alert-ink); - border-color: var(--color-alert); + [data-scope="timer"][data-part="item-label"] { + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); } [data-scope="timer"][data-part="separator"] { - color: var(--color-alert-ink); + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); } -} -@utility timer--info { - [data-scope="timer"][data-part="item"] { - background: var(--color-info-muted); - color: var(--color-info-ink); - border-color: var(--color-info); + [data-scope="timer"][data-part="action-trigger"] { + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); } - [data-scope="timer"][data-part="separator"] { - color: var(--color-info-ink); + [data-scope="timer"][data-part="action-trigger"] .icon, + [data-scope="timer"][data-part="action-trigger"] [class^="hero-"] { + font-size: 1em; } } -@utility timer--success { +@utility timer--rounded-* { [data-scope="timer"][data-part="item"] { - background: var(--color-success-muted); - color: var(--color-success-ink); - border-color: var(--color-success); + border-radius: --value(--radius-*, [length]); } - [data-scope="timer"][data-part="separator"] { - color: var(--color-success-ink); + [data-scope="timer"][data-part="action-trigger"] { + border-radius: --value(--radius-*, [length]); } } diff --git a/priv/design/corex/components/toast.css b/priv/design/corex/components/toast.css index cfea5b6b..51c70c67 100644 --- a/priv/design/corex/components/toast.css +++ b/priv/design/corex/components/toast.css @@ -91,7 +91,7 @@ } .toast [data-scope="toast"][data-part="root"][data-type="error"] [data-scope="toast"][data-part="title"] { - color: var(--color-alert); + color: var(--color-ink-alert); } .toast [data-scope="toast"][data-part="root"][data-type="error"] [data-scope="toast"][data-part="progressbar"] { @@ -101,7 +101,7 @@ } .toast [data-scope="toast"][data-part="root"][data-type="info"] [data-scope="toast"][data-part="title"] { - color: var(--color-info); + color: var(--color-ink-info); } .toast [data-scope="toast"][data-part="root"][data-type="info"] [data-scope="toast"][data-part="progressbar"] { @@ -111,7 +111,7 @@ } .toast [data-scope="toast"][data-part="root"][data-type="success"] [data-scope="toast"][data-part="title"] { - color: var(--color-success); + color: var(--color-ink-success); } .toast [data-scope="toast"][data-part="root"][data-type="success"] [data-scope="toast"][data-part="progressbar"] { diff --git a/priv/design/corex/components/toggle-group.css b/priv/design/corex/components/toggle-group.css index afd9d2f1..30451c10 100644 --- a/priv/design/corex/components/toggle-group.css +++ b/priv/design/corex/components/toggle-group.css @@ -1,6 +1,10 @@ @import "../main.css"; @layer components { + .toggle-group[data-loading] [data-scope="toggle-group"][data-part="root"] { + @apply ui-loading; + } + .toggle-group { width: 100%; max-width: var(--container-5xs); diff --git a/priv/design/corex/components/tooltip.css b/priv/design/corex/components/tooltip.css index b579aa50..6aad82d9 100644 --- a/priv/design/corex/components/tooltip.css +++ b/priv/design/corex/components/tooltip.css @@ -1,6 +1,15 @@ @import "../main.css"; @layer components { + .tooltip { + position: relative; + z-index: 20; + } + + .tooltip[data-loading] > * { + @apply ui-loading; + } + .tooltip [data-scope="tooltip"][data-part="positioner"] { z-index: 50; position: absolute; @@ -53,20 +62,14 @@ } @utility tooltip--* { - max-width: --value(--container-*, [length]); - [data-scope="tooltip"][data-part="content"] { - padding: --value(--spacing-space-*, [length]); - font-size: --value(--text-*, [length]); - line-height: --value(--text-*--line-height, [length]); - background: --value(--color-ui, [color]); - color: --value(--color-ink, [color]); + background: --value(--color-*, [color]); + color: --value(--color-*-ink, [color]); border-color: --value(--color-border, [color]); } [data-scope="tooltip"][data-part="arrow"] { - --arrow-size: calc(--value(--spacing-*, [length]) * 0.25); - --arrow-background: --value(--color-ui, [color]); + --arrow-background: --value(--color-*, [color]); } [data-scope="tooltip"][data-part="arrow-tip"] { @@ -74,3 +77,21 @@ border-color: --value(--color-border, [color]); } } + +@utility tooltip--text-* { + [data-scope="tooltip"][data-part="content"] { + font-size: --value(--text-*, [length]); + line-height: --value(--text-*--line-height, [length]); + } +} + +@utility tooltip--size-* { + [data-scope="tooltip"][data-part="content"] { + max-width: --value(--container-*, [length]); + padding: --value(--spacing-space-*, [length]); + } + + [data-scope="tooltip"][data-part="arrow"] { + --arrow-size: calc(--value(--spacing-space-*, [length]) * 0.25); + } +} diff --git a/priv/design/corex/components/tree-view.css b/priv/design/corex/components/tree-view.css index 5f958695..498cbcaf 100644 --- a/priv/design/corex/components/tree-view.css +++ b/priv/design/corex/components/tree-view.css @@ -1,6 +1,9 @@ @import "../main.css"; @layer components { + .tree-view[data-loading] [data-scope="tree-view"][data-part="root"] { + @apply ui-loading; + } .tree-view { width: 100%; @@ -97,6 +100,10 @@ opacity: 0.65; } + .tree-view [data-scope="tree-view"][data-part="root"][data-loading] { + @apply ui-loading; + } + .tree-view [data-scope="tree-view"][data-part="root"][data-loading] [data-scope="tree-view"][data-part="branch-text"], .tree-view [data-scope="tree-view"][data-part="root"][data-loading] [data-scope="tree-view"][data-part="branch-indicator"], .tree-view [data-scope="tree-view"][data-part="root"][data-loading] [data-scope="tree-view"][data-part="item-text"] { diff --git a/priv/design/corex/components/typo.css b/priv/design/corex/components/typo.css index 96065aa3..b935fea7 100644 --- a/priv/design/corex/components/typo.css +++ b/priv/design/corex/components/typo.css @@ -271,4 +271,130 @@ color: var(--color-ink); border-radius: var(--radius-md); } + + .markdown ul, + .markdown ol { + margin-block: var(--spacing-space); + padding-inline-start: 1.5em; + } + + .markdown li { + margin-block: var(--spacing-space-sm); + } + + .markdown li > ul, + .markdown li > ol { + margin-block: var(--spacing-space-sm); + } + + .markdown table { + width: 100%; + border-collapse: collapse; + margin-block: var(--spacing-space-lg); + font-size: var(--text-sm); + line-height: var(--text-sm--line-height); + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + overflow: hidden; + } + + .markdown thead { + background: var(--color-layer); + color: var(--color-ink); + } + + .markdown th, + .markdown td { + padding: var(--spacing-space-sm) var(--spacing-space); + border-bottom: 1px solid var(--color-border); + text-align: start; + vertical-align: top; + } + + .markdown tbody tr:last-child td { + border-bottom: none; + } + + .markdown img { + max-width: 100%; + height: auto; + display: block; + border-radius: var(--radius-md); + border: 1px solid var(--color-border); + margin-block: var(--spacing-space); + } + + .markdown .footnotes { + margin-block-start: var(--spacing-space-xl); + padding-block-start: var(--spacing-space-lg); + border-top: 1px solid var(--color-border); + font-size: var(--text-sm); + line-height: var(--text-sm--line-height); + color: var(--color-ink-muted); + } + + .markdown .footnotes ol { + padding-inline-start: 1.25em; + } + + .markdown .footnote-ref a { + color: var(--color-link); + text-decoration: none; + } + + .markdown .markdown-alert { + margin-block: var(--spacing-space-lg); + padding: var(--spacing-space); + border-radius: var(--radius-md); + border: 1px solid var(--color-border); + background: var(--color-layer); + width: fit-content; + max-width: 100%; + box-sizing: border-box; + } + + .markdown .markdown-alert-title { + font-weight: var(--font-weight-semibold); + margin-block: 0 var(--spacing-space-sm); + } + + .markdown .markdown-alert-note { + border-inline-start: 4px solid var(--color-info); + } + + .markdown .markdown-alert-note .markdown-alert-title { + color: var(--color-info); + } + + .markdown .markdown-alert-tip { + border-inline-start: 4px solid var(--color-success); + } + + .markdown .markdown-alert-tip .markdown-alert-title { + color: var(--color-success); + } + + .markdown .markdown-alert-important { + border-inline-start: 4px solid var(--color-accent); + } + + .markdown .markdown-alert-important .markdown-alert-title { + color: var(--color-accent); + } + + .markdown .markdown-alert-warning { + border-inline-start: 4px solid var(--color-alert); + } + + .markdown .markdown-alert-warning .markdown-alert-title { + color: var(--color-alert); + } + + .markdown .markdown-alert-caution { + border-inline-start: 4px solid var(--color-border); + } + + .markdown .markdown-alert-caution .markdown-alert-title { + color: var(--color-ink-muted); + } } \ No newline at end of file diff --git a/priv/design/corex/tokens.css b/priv/design/corex/tokens.css index 9fc764ee..cd2d9f5f 100644 --- a/priv/design/corex/tokens.css +++ b/priv/design/corex/tokens.css @@ -5,3 +5,8 @@ @import "./tokens/semantic/text.css"; @import "./tokens/semantic/font.css"; @import "./tokens/semantic/effect.css"; + +@theme inline { + --text-md: var(--text-base); + --text-md--line-height: var(--text-base--line-height); +} diff --git a/priv/design/corex/utilities.css b/priv/design/corex/utilities.css index 8166c6d2..dfc4d859 100644 --- a/priv/design/corex/utilities.css +++ b/priv/design/corex/utilities.css @@ -148,6 +148,7 @@ &[data-disabled], &[disabled] { background-color: --value(--color-*-muted, [color]); + color: var(--color-ink-muted); cursor: not-allowed; } } @@ -488,6 +489,7 @@ &[data-disabled], &[disabled] { background-color: --value(--color-*-muted, [color]); + color: var(--color-ink-muted); cursor: not-allowed; } } diff --git a/priv/static/chunks/chunk-4EUE6P2Z.mjs b/priv/static/chunks/chunk-6QZYI6OY.mjs similarity index 83% rename from priv/static/chunks/chunk-4EUE6P2Z.mjs rename to priv/static/chunks/chunk-6QZYI6OY.mjs index b8196e4e..f486cc81 100644 --- a/priv/static/chunks/chunk-4EUE6P2Z.mjs +++ b/priv/static/chunks/chunk-6QZYI6OY.mjs @@ -27,6 +27,13 @@ function readPositioningOptions(el) { if (overflowPadding !== void 0) options.overflowPadding = overflowPadding; const arrowPadding = getNumber(el, "positionArrowPadding"); if (arrowPadding !== void 0) options.arrowPadding = arrowPadding; + const offsetMainAxis = getNumber(el, "positionOffsetMainAxis"); + const offsetCrossAxis = getNumber(el, "positionOffsetCrossAxis"); + if (offsetMainAxis !== void 0 || offsetCrossAxis !== void 0) { + options.offset = {}; + if (offsetMainAxis !== void 0) options.offset.mainAxis = offsetMainAxis; + if (offsetCrossAxis !== void 0) options.offset.crossAxis = offsetCrossAxis; + } const flip = readFlipAttr(el); if (flip !== void 0) options.flip = flip; const slide = getBooleanValue(el, "positionSlide"); diff --git a/priv/static/color-picker.mjs b/priv/static/color-picker.mjs index c3868488..d1525f63 100644 --- a/priv/static/color-picker.mjs +++ b/priv/static/color-picker.mjs @@ -1,6 +1,3 @@ -import { - readPositioningOptions -} from "./chunks/chunk-4EUE6P2Z.mjs"; import { getPlacement, getPlacementStyles @@ -9,6 +6,9 @@ import { trackDismissableElement } from "./chunks/chunk-ZZR3S6PP.mjs"; import "./chunks/chunk-K2P3QAIZ.mjs"; +import { + readPositioningOptions +} from "./chunks/chunk-6QZYI6OY.mjs"; import { clampValue, getPercentValue, diff --git a/priv/static/combobox.mjs b/priv/static/combobox.mjs index b6e2e766..b2f67e65 100644 --- a/priv/static/combobox.mjs +++ b/priv/static/combobox.mjs @@ -1,9 +1,6 @@ import { createLiveRegion } from "./chunks/chunk-7BZGUIUZ.mjs"; -import { - readPositioningOptions -} from "./chunks/chunk-4EUE6P2Z.mjs"; import { getPlacement, getPlacementStyles @@ -12,6 +9,9 @@ import { trackDismissableElement } from "./chunks/chunk-ZZR3S6PP.mjs"; import "./chunks/chunk-K2P3QAIZ.mjs"; +import { + readPositioningOptions +} from "./chunks/chunk-6QZYI6OY.mjs"; import { zagComboboxCollectionConfig } from "./chunks/chunk-7NUJK5QP.mjs"; diff --git a/priv/static/corex.js b/priv/static/corex.js index 779e4070..7e8adc62 100644 --- a/priv/static/corex.js +++ b/priv/static/corex.js @@ -7516,50 +7516,6 @@ var Corex = (() => { } }); - // ../priv/static/chunks/chunk-4EUE6P2Z.mjs - function readFlipAttr(el) { - const raw = el.dataset.positionFlip; - if (raw == null) return void 0; - if (raw === "true") return true; - if (raw === "false") return false; - const list = raw.split(",").map((v2) => v2.trim()).filter(Boolean); - return list.length > 0 ? list : void 0; - } - function readPositioningOptions(el) { - const options = {}; - const strategy = getString(el, "positionStrategy"); - if (strategy) options.strategy = strategy; - const placement = getString(el, "positionPlacement"); - if (placement) options.placement = placement; - const gutter = getNumber(el, "positionGutter"); - if (gutter !== void 0) options.gutter = gutter; - const shift3 = getNumber(el, "positionShift"); - if (shift3 !== void 0) options.shift = shift3; - const overflowPadding = getNumber(el, "positionOverflowPadding"); - if (overflowPadding !== void 0) options.overflowPadding = overflowPadding; - const arrowPadding = getNumber(el, "positionArrowPadding"); - if (arrowPadding !== void 0) options.arrowPadding = arrowPadding; - const flip3 = readFlipAttr(el); - if (flip3 !== void 0) options.flip = flip3; - const slide = getBooleanValue(el, "positionSlide"); - if (slide !== void 0) options.slide = slide; - const overlap = getBooleanValue(el, "positionOverlap"); - if (overlap !== void 0) options.overlap = overlap; - const sameWidth = getBooleanValue(el, "positionSameWidth"); - if (sameWidth !== void 0) options.sameWidth = sameWidth; - const fitViewport = getBooleanValue(el, "positionFitViewport"); - if (fitViewport !== void 0) options.fitViewport = fitViewport; - const hideWhenDetached = getBooleanValue(el, "positionHideWhenDetached"); - if (hideWhenDetached !== void 0) options.hideWhenDetached = hideWhenDetached; - return Object.keys(options).length > 0 ? options : void 0; - } - var init_chunk_4EUE6P2Z = __esm({ - "../priv/static/chunks/chunk-4EUE6P2Z.mjs"() { - "use strict"; - init_chunk_LTYT3NRU(); - } - }); - // ../priv/static/chunks/chunk-RJABPW5C.mjs function getPlacementDetails(placement) { const [side, align] = placement.split("-"); @@ -10159,6 +10115,57 @@ var Corex = (() => { } }); + // ../priv/static/chunks/chunk-6QZYI6OY.mjs + function readFlipAttr(el) { + const raw = el.dataset.positionFlip; + if (raw == null) return void 0; + if (raw === "true") return true; + if (raw === "false") return false; + const list = raw.split(",").map((v2) => v2.trim()).filter(Boolean); + return list.length > 0 ? list : void 0; + } + function readPositioningOptions(el) { + const options = {}; + const strategy = getString(el, "positionStrategy"); + if (strategy) options.strategy = strategy; + const placement = getString(el, "positionPlacement"); + if (placement) options.placement = placement; + const gutter = getNumber(el, "positionGutter"); + if (gutter !== void 0) options.gutter = gutter; + const shift3 = getNumber(el, "positionShift"); + if (shift3 !== void 0) options.shift = shift3; + const overflowPadding = getNumber(el, "positionOverflowPadding"); + if (overflowPadding !== void 0) options.overflowPadding = overflowPadding; + const arrowPadding = getNumber(el, "positionArrowPadding"); + if (arrowPadding !== void 0) options.arrowPadding = arrowPadding; + const offsetMainAxis = getNumber(el, "positionOffsetMainAxis"); + const offsetCrossAxis = getNumber(el, "positionOffsetCrossAxis"); + if (offsetMainAxis !== void 0 || offsetCrossAxis !== void 0) { + options.offset = {}; + if (offsetMainAxis !== void 0) options.offset.mainAxis = offsetMainAxis; + if (offsetCrossAxis !== void 0) options.offset.crossAxis = offsetCrossAxis; + } + const flip3 = readFlipAttr(el); + if (flip3 !== void 0) options.flip = flip3; + const slide = getBooleanValue(el, "positionSlide"); + if (slide !== void 0) options.slide = slide; + const overlap = getBooleanValue(el, "positionOverlap"); + if (overlap !== void 0) options.overlap = overlap; + const sameWidth = getBooleanValue(el, "positionSameWidth"); + if (sameWidth !== void 0) options.sameWidth = sameWidth; + const fitViewport = getBooleanValue(el, "positionFitViewport"); + if (fitViewport !== void 0) options.fitViewport = fitViewport; + const hideWhenDetached = getBooleanValue(el, "positionHideWhenDetached"); + if (hideWhenDetached !== void 0) options.hideWhenDetached = hideWhenDetached; + return Object.keys(options).length > 0 ? options : void 0; + } + var init_chunk_6QZYI6OY = __esm({ + "../priv/static/chunks/chunk-6QZYI6OY.mjs"() { + "use strict"; + init_chunk_LTYT3NRU(); + } + }); + // ../priv/static/chunks/chunk-7NUJK5QP.mjs function itemToIdOrValue(item) { var _a4, _b; @@ -12164,10 +12171,10 @@ var Corex = (() => { "../priv/static/combobox.mjs"() { "use strict"; init_chunk_7BZGUIUZ(); - init_chunk_4EUE6P2Z(); init_chunk_RJABPW5C(); init_chunk_ZZR3S6PP(); init_chunk_K2P3QAIZ(); + init_chunk_6QZYI6OY(); init_chunk_7NUJK5QP(); init_chunk_5M7MXCQU(); init_chunk_FOQSALVP(); @@ -14327,10 +14334,10 @@ var Corex = (() => { var init_color_picker = __esm({ "../priv/static/color-picker.mjs"() { "use strict"; - init_chunk_4EUE6P2Z(); init_chunk_RJABPW5C(); init_chunk_ZZR3S6PP(); init_chunk_K2P3QAIZ(); + init_chunk_6QZYI6OY(); init_chunk_PE34YET2(); init_chunk_LIWT33BG(); init_chunk_LTYT3NRU(); @@ -18263,10 +18270,10 @@ var Corex = (() => { "use strict"; init_chunk_TDQG4Q55(); init_chunk_7BZGUIUZ(); - init_chunk_4EUE6P2Z(); init_chunk_RJABPW5C(); init_chunk_ZZR3S6PP(); init_chunk_K2P3QAIZ(); + init_chunk_6QZYI6OY(); init_chunk_PE34YET2(); init_chunk_LIWT33BG(); init_chunk_LTYT3NRU(); @@ -24229,6 +24236,63 @@ ${err}`); } }; } + function anchorPointFromPositioning(positioning, details, panelSize, dir) { + var _a4, _b, _c, _d, _e, _f, _g; + const boundaryRect = details.boundaryRect; + if (!boundaryRect) return void 0; + const gutter = (_a4 = positioning.gutter) != null ? _a4 : 8; + const shift3 = (_b = positioning.shift) != null ? _b : 0; + const mainAxis = (_d = (_c = positioning.offset) == null ? void 0 : _c.mainAxis) != null ? _d : 0; + const crossAxis = (_f = (_e = positioning.offset) == null ? void 0 : _e.crossAxis) != null ? _f : 0; + const placement = (_g = positioning.placement) != null ? _g : "bottom"; + const { width: pw, height: ph } = panelSize; + const b2 = boundaryRect; + const isRtl = dir === "rtl"; + const xInnerLeft = b2.x + gutter; + const xInnerRight = b2.x + b2.width - pw - gutter; + const xCenter = b2.x + (b2.width - pw) / 2; + const yInnerTop = b2.y + gutter; + const yInnerBottom = b2.y + b2.height - ph - gutter; + const yCenter = b2.y + (b2.height - ph) / 2; + const parts210 = placement.split("-"); + const side = parts210[0]; + const align = parts210[1]; + const xForBottomTop = () => { + if (align === "start") return isRtl ? xInnerRight : xInnerLeft; + if (align === "end") return isRtl ? xInnerLeft : xInnerRight; + return xCenter; + }; + if (side === "bottom") { + return { + x: xForBottomTop() + shift3 + crossAxis, + y: yInnerBottom - mainAxis + }; + } + if (side === "top") { + return { + x: xForBottomTop() + shift3 + crossAxis, + y: yInnerTop + mainAxis + }; + } + if (side === "left") { + const y2 = align === "start" ? yInnerTop : align === "end" ? yInnerBottom : yCenter; + return { + x: b2.x + gutter + mainAxis, + y: y2 + shift3 + crossAxis + }; + } + if (side === "right") { + const y2 = align === "start" ? yInnerTop : align === "end" ? yInnerBottom : yCenter; + return { + x: b2.x + b2.width - pw - gutter - mainAxis, + y: y2 + shift3 + crossAxis + }; + } + return { + x: xCenter + crossAxis, + y: yCenter + mainAxis + }; + } function parseSize(val) { if (!val) return void 0; try { @@ -24251,10 +24315,19 @@ ${err}`); } return void 0; } - var anatomy14, parts14, AffineTransform, clamp4, clampPoint, defaultMinSize, defaultMaxSize, clampSize, constrainRect, isSizeEqual, isPointEqual, styleCache2, px, sum, compassDirectionMap, oppositeDirectionMap, sign2, abs2, min3, getTriggerId7, getPositionerId5, getContentId6, getTitleId2, getHeaderId, getTriggerEl4, getPositionerEl5, getContentEl6, getHeaderEl, getBoundaryRect, validStages, panelStack, not4, and5, defaultTranslations2, FALLBACK_SIZE, FALLBACK_POSITION, machine14, FloatingPanel, FloatingPanelHook; + function buildAnchorProps(el) { + var _a4; + const defaultSize = (_a4 = parseSize(el.dataset.defaultSize)) != null ? _a4 : FALLBACK_DEFAULT_SIZE; + const defaultPosition = parsePoint(el.dataset.defaultPosition); + const positioning = readPositioningOptions(el); + const getAnchorPosition = defaultPosition == null && positioning ? (details) => anchorPointFromPositioning(positioning, details, defaultSize, getDir(el)) : void 0; + return { defaultPosition, getAnchorPosition }; + } + var anatomy14, parts14, AffineTransform, clamp4, clampPoint, defaultMinSize, defaultMaxSize, clampSize, constrainRect, isSizeEqual, isPointEqual, styleCache2, px, sum, compassDirectionMap, oppositeDirectionMap, sign2, abs2, min3, getTriggerId7, getPositionerId5, getContentId6, getTitleId2, getHeaderId, getTriggerEl4, getPositionerEl5, getContentEl6, getHeaderEl, getBoundaryRect, validStages, panelStack, not4, and5, defaultTranslations2, FALLBACK_SIZE, FALLBACK_POSITION, machine14, FloatingPanel, FALLBACK_DEFAULT_SIZE, FloatingPanelHook; var init_floating_panel = __esm({ "../priv/static/floating-panel.mjs"() { "use strict"; + init_chunk_6QZYI6OY(); init_chunk_QB2YSZP6(); init_chunk_PE34YET2(); init_chunk_77HPO22C(); @@ -25155,6 +25228,7 @@ ${err}`); }); } }; + FALLBACK_DEFAULT_SIZE = { width: 320, height: 240 }; FloatingPanelHook = { mounted() { const el = this.el; @@ -25162,8 +25236,7 @@ ${err}`); const canPush = () => canPushEvent(this.liveSocket); const size3 = parseSize(el.dataset.size); const defaultSize = parseSize(el.dataset.defaultSize); - const position = parsePoint(el.dataset.position); - const defaultPosition = parsePoint(el.dataset.defaultPosition); + const anchorProps = buildAnchorProps(el); const zag = new FloatingPanel(el, { id: el.id, defaultOpen: false, @@ -25175,8 +25248,8 @@ ${err}`); dir: getDir(el), size: size3, defaultSize, - position, - defaultPosition, + defaultPosition: anchorProps.defaultPosition, + getAnchorPosition: anchorProps.getAnchorPosition, minSize: parseSize(el.dataset.minSize), maxSize: parseSize(el.dataset.maxSize), persistRect: getBoolean(el, "persistRect"), @@ -25244,10 +25317,14 @@ ${err}`); }, updated() { var _a4; + const el = this.el; + const anchorProps = buildAnchorProps(el); (_a4 = this.floatingPanel) == null ? void 0 : _a4.updateProps({ - id: this.el.id, - disabled: getBoolean(this.el, "disabled"), - dir: getDir(this.el) + id: el.id, + disabled: getBoolean(el, "disabled"), + dir: getDir(el), + defaultPosition: anchorProps.defaultPosition, + getAnchorPosition: anchorProps.getAnchorPosition }); }, destroyed() { @@ -26180,8 +26257,12 @@ ${err}`); __publicField(this, "hasGroups", false); __publicField(this, "lastItemsFingerprint", ""); __publicField(this, "init", () => { - this.machine.start(); - this.render(); + try { + this.machine.start(); + this.render(); + } finally { + this.el.removeAttribute("data-loading"); + } this.machine.subscribe(() => { this.api = this.initApi(); this.render(); @@ -26197,7 +26278,10 @@ ${err}`); this._options = Array.isArray(options) ? options : []; } itemsFingerprint() { - return `${this.hasGroups}:${JSON.stringify(this.options)}`; + var _a4, _b; + const dir = (_a4 = this.el.dataset.dir) != null ? _a4 : ""; + const orientation = (_b = this.el.dataset.orientation) != null ? _b : ""; + return `${this.hasGroups}:${dir}:${orientation}:${JSON.stringify(this.options)}`; } getOrderedGroupIds() { var _a4; @@ -26410,7 +26494,6 @@ ${err}`); if (this.listbox) { this.listbox.hasGroups = hasGroups; this.listbox.setOptions(newItems); - this.listbox.render(); this.listbox.updateProps(__spreadValues(__spreadProps(__spreadValues({}, listboxZagPropsBase(this.el, this.liveSocket, this.pushEvent.bind(this))), { collection: this.listbox.getCollection() }), controlled && valueList ? { value: valueList } : { defaultValue: defaultValueList != null ? defaultValueList : [] })); @@ -27621,10 +27704,10 @@ ${err}`); var init_menu = __esm({ "../priv/static/menu.mjs"() { "use strict"; - init_chunk_4EUE6P2Z(); init_chunk_RJABPW5C(); init_chunk_ZZR3S6PP(); init_chunk_K2P3QAIZ(); + init_chunk_6QZYI6OY(); init_chunk_FOQSALVP(); init_chunk_QB2YSZP6(); init_chunk_MG52DTQN(); @@ -30233,13 +30316,14 @@ ${err}`); }; NumberInputHook = { mounted() { + var _a4; const el = this.el; const pushEvent = this.pushEvent.bind(this); const canPush = () => canPushEvent(this.liveSocket); - const defaultValueStr = getString(el, "defaultValue"); - const zag = new NumberInput(el, { - id: el.id, - defaultValue: defaultValueStr, + const controlled = getBoolean(el, "controlled"); + const zag = new NumberInput(el, __spreadProps(__spreadValues({ + id: el.id + }, controlled ? { value: (_a4 = getString(el, "value")) != null ? _a4 : "" } : { defaultValue: getString(el, "defaultValue") }), { min: getNumber(el, "min"), max: getNumber(el, "max"), step: getNumber(el, "step"), @@ -30252,13 +30336,13 @@ ${err}`); form: getString(el, "form"), dir: getDir(el), onValueChange: (details) => { - var _a4; + var _a5; if (details.value !== void 0) { const valueInput = el.querySelector( '[data-scope="number-input"][data-part="value-input"]' ); if (valueInput) { - valueInput.value = (_a4 = details.value) != null ? _a4 : ""; + valueInput.value = (_a5 = details.value) != null ? _a5 : ""; valueInput.dispatchEvent(new Event("input", { bubbles: true })); valueInput.dispatchEvent(new Event("change", { bubbles: true })); } @@ -30276,16 +30360,14 @@ ${err}`); clientEventName: getString(el, "onValueChangeClient") }); } - }); + })); zag.init(); this.numberInput = zag; }, updated() { - var _a4; - const defaultValueStr = getString(this.el, "defaultValue"); - (_a4 = this.numberInput) == null ? void 0 : _a4.updateProps({ + var _a4, _b; + const next2 = { id: this.el.id, - defaultValue: defaultValueStr, min: getNumber(this.el, "min"), max: getNumber(this.el, "max"), step: getNumber(this.el, "step"), @@ -30293,10 +30375,15 @@ ${err}`); readOnly: getBoolean(this.el, "readOnly"), invalid: getBoolean(this.el, "invalid"), required: getBoolean(this.el, "required"), + allowMouseWheel: getBoolean(this.el, "allowMouseWheel"), name: getString(this.el, "name"), form: getString(this.el, "form"), dir: getDir(this.el) - }); + }; + if (getBoolean(this.el, "controlled")) { + next2.value = (_a4 = getString(this.el, "value")) != null ? _a4 : ""; + } + (_b = this.numberInput) == null ? void 0 : _b.updateProps(next2); }, destroyed() { var _a4; @@ -32465,10 +32552,10 @@ ${err}`); var init_select = __esm({ "../priv/static/select.mjs"() { "use strict"; - init_chunk_4EUE6P2Z(); init_chunk_RJABPW5C(); init_chunk_ZZR3S6PP(); init_chunk_K2P3QAIZ(); + init_chunk_6QZYI6OY(); init_chunk_7NUJK5QP(); init_chunk_5M7MXCQU(); init_chunk_FOQSALVP(); @@ -33375,7 +33462,7 @@ ${err}`); const valueText = this.el.querySelector( '[data-scope="select"][data-part="item-text"]' ); - if (valueText) { + if (valueText && this.el.dataset.updateTrigger !== "false") { const valueAsString = this.api.valueAsString; if (this.api.value && this.api.value.length > 0 && !valueAsString) { const selectedValue = this.api.value[0]; @@ -35553,6 +35640,87 @@ ${err}`); ); } } + function collapseStartIndex(vals) { + const rec = (idx) => { + if (idx > 2) return idx; + const restAfter = vals.length - idx; + if (idx < 3 && vals[idx] === 0 && restAfter > 2) { + return rec(idx + 1); + } + return idx; + }; + return rec(0); + } + function computeItemHidden(root, time) { + const types = ["days", "hours", "minutes", "seconds"]; + const vals = [time.days, time.hours, time.minutes, time.seconds].map(Number); + const segments = getStringList(root, "segments"); + const countdown = root.dataset.countdown === "true"; + const collapseRaw = root.dataset.collapseLeadingZeros; + if (segments && segments.length > 0) { + return types.map((t2) => !segments.includes(t2)); + } + if (collapseRaw === "false") { + return [false, false, false, false]; + } + if (collapseRaw === "true" || collapseRaw !== "false" && countdown) { + const start = collapseStartIndex(vals); + return types.map((_2, i2) => i2 < start); + } + return [false, false, false, false]; + } + function applyTimerItemVisibility(root, api) { + const hidden = computeItemHidden(root, api.time); + const types = ["days", "hours", "minutes", "seconds"]; + const hostId = root.id; + types.forEach((type, i2) => { + const segmentEl = root.querySelector(`[data-timer-segment][data-type="${type}"]`); + if (segmentEl) { + if (hidden[i2]) { + segmentEl.setAttribute("hidden", ""); + } else { + segmentEl.removeAttribute("hidden"); + } + } + const itemEl = root.querySelector( + `[data-scope="timer"][data-part="item"][data-type="${type}"]` + ); + if (itemEl) { + if (hidden[i2]) { + itemEl.setAttribute("hidden", ""); + itemEl.setAttribute("aria-hidden", "true"); + } else { + itemEl.removeAttribute("hidden"); + itemEl.setAttribute("aria-hidden", "false"); + } + } + }); + for (let k2 = 0; k2 < 3; k2++) { + const sepId = `timer:${hostId}:sep:${k2}`; + const sepEl = root.querySelector(`[id="${CSS.escape(sepId)}"]`); + if (sepEl) { + if (hidden[k2]) { + sepEl.setAttribute("hidden", ""); + } else { + sepEl.removeAttribute("hidden"); + } + } + } + } + function parseTimerTranslations(el) { + const raw = el.dataset.translation; + if (!raw) return void 0; + try { + const o2 = JSON.parse(raw); + if (typeof o2.areaLabel === "string" && o2.areaLabel.length > 0) { + const label = o2.areaLabel; + return { areaLabel: () => label }; + } + } catch (e2) { + return void 0; + } + return void 0; + } var anatomy26, parts26, getRootId21, getAreaId3, validActions, machine26, Timer2, TimerHook; var init_timer = __esm({ "../priv/static/timer.mjs"() { @@ -35744,9 +35912,13 @@ ${err}`); this.api = this.initApi(); this.render(); }); - this.machine.start(); - this.api = this.initApi(); - this.render(); + try { + this.machine.start(); + this.api = this.initApi(); + this.render(); + } finally { + this.el.removeAttribute("data-loading"); + } }); } // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -35774,6 +35946,12 @@ ${err}`); if (itemEl) { this.spreadProps(itemEl, this.api.getItemProps({ type })); } + const labelEl = this.el.querySelector( + `[data-scope="timer"][data-part="item-label"][data-type="${type}"]` + ); + if (labelEl) { + this.spreadProps(labelEl, this.api.getItemLabelProps({ type })); + } }); this.el.querySelectorAll('[data-scope="timer"][data-part="separator"]').forEach((separatorEl) => { this.spreadProps(separatorEl, this.api.getSeparatorProps()); @@ -35789,6 +35967,7 @@ ${err}`); this.api.getActionTriggerProps({ action }) ); }); + applyTimerItemVisibility(this.el, this.api); } }; TimerHook = { @@ -35804,6 +35983,7 @@ ${err}`); interval: getNumber(el, "interval"), dir: getDir(el), orientation: getString(el, "orientation"), + translations: parseTimerTranslations(el), onTick: (details) => { const eventName = getString(el, "onTick"); if (eventName && canPushEvent(this.liveSocket)) { @@ -35859,7 +36039,8 @@ ${err}`); autoStart: getBoolean(this.el, "autoStart"), interval: getNumber(this.el, "interval"), dir: getDir(this.el), - orientation: getString(this.el, "orientation") + orientation: getString(this.el, "orientation"), + translations: parseTimerTranslations(this.el) }); }, destroyed() { @@ -37525,6 +37706,40 @@ ${err}`); } }; } + function createTooltipCallbacks(el, pushEvent, liveSocket) { + const onTriggerValueChange = (details) => { + var _a4; + const eventName = getString(el, "onTriggerValueChange"); + if (eventName && canPushEvent(liveSocket)) { + pushEvent(eventName, { + id: el.id, + value: (_a4 = details.value) != null ? _a4 : "" + }); + } + }; + const onOpenChange = (details) => { + const eventName = getString(el, "onOpenChange"); + if (eventName && canPushEvent(liveSocket)) { + pushEvent(eventName, { + id: el.id, + open: details.open + }); + } + const eventNameClient = getString(el, "onOpenChangeClient"); + if (eventNameClient) { + el.dispatchEvent( + new CustomEvent(eventNameClient, { + bubbles: true, + detail: { + id: el.id, + open: details.open + } + }) + ); + } + }; + return { onOpenChange, onTriggerValueChange }; + } function getCloseDelay(el) { const interactive = getBoolean(el, "interactive"); const raw = getNumber(el, "closeDelay"); @@ -37536,6 +37751,7 @@ ${err}`); "../priv/static/tooltip.mjs"() { "use strict"; init_chunk_RJABPW5C(); + init_chunk_6QZYI6OY(); init_chunk_MG52DTQN(); init_chunk_LIWT33BG(); init_chunk_LTYT3NRU(); @@ -37986,12 +38202,20 @@ ${err}`); initApi() { return this.zagConnect(connect28); } + syncDom() { + this.api = this.initApi(); + this.render(); + } render() { const rootEl = this.el; - const triggerEl = rootEl.querySelector( + const triggerEls = rootEl.querySelectorAll( '[data-scope="tooltip"][data-part="trigger"]' ); - if (triggerEl) this.spreadProps(triggerEl, this.api.getTriggerProps()); + triggerEls.forEach((triggerEl) => { + const raw = triggerEl.dataset.value; + const valueProps = raw != null && raw !== "" ? { value: raw } : {}; + this.spreadProps(triggerEl, this.api.getTriggerProps(valueProps)); + }); const positionerEl = rootEl.querySelector( '[data-scope="tooltip"][data-part="positioner"]' ); @@ -38012,11 +38236,12 @@ ${err}`); mounted() { const el = this.el; const pushEvent = this.pushEvent.bind(this); - const placement = getString(el, "placement"); - const positioning = placement ? { placement } : void 0; - const tooltip = new Tooltip(el, __spreadProps(__spreadValues({ - id: el.id - }, getBoolean(el, "controlled") ? { open: getBoolean(el, "open") } : { defaultOpen: getBoolean(el, "defaultOpen") }), { + const liveSocket = this.liveSocket; + const positioning = readPositioningOptions(el); + const callbacks = createTooltipCallbacks(el, pushEvent, liveSocket); + const tooltip = new Tooltip(el, __spreadValues({ + id: el.id, + defaultOpen: getBoolean(el, "defaultOpen"), disabled: getBoolean(el, "disabled"), dir: getDir(el), openDelay: getNumber(el, "openDelay"), @@ -38026,29 +38251,8 @@ ${err}`); closeOnClick: getBoolean(el, "closeOnClick"), closeOnPointerDown: getBoolean(el, "closeOnPointerDown"), closeOnScroll: getBoolean(el, "closeOnScroll"), - interactive: getBoolean(el, "interactive"), - onOpenChange: (details) => { - const eventName = getString(el, "onOpenChange"); - if (eventName && canPushEvent(this.liveSocket)) { - pushEvent(eventName, { - id: el.id, - open: details.open - }); - } - const eventNameClient = getString(el, "onOpenChangeClient"); - if (eventNameClient) { - el.dispatchEvent( - new CustomEvent(eventNameClient, { - bubbles: true, - detail: { - id: el.id, - open: details.open - } - }) - ); - } - } - })); + interactive: getBoolean(el, "interactive") + }, callbacks)); tooltip.init(); this.tooltip = tooltip; this.onSetOpen = (event) => { @@ -38066,25 +38270,29 @@ ${err}`); }, updated() { var _a4; - const placement = getString(this.el, "placement"); - const positioning = placement ? { placement } : void 0; - (_a4 = this.tooltip) == null ? void 0 : _a4.updateProps(__spreadProps(__spreadValues({ - id: this.el.id - }, getBoolean(this.el, "controlled") ? { open: getBoolean(this.el, "open") } : { defaultOpen: getBoolean(this.el, "defaultOpen") }), { - disabled: getBoolean(this.el, "disabled"), - dir: getDir(this.el), - openDelay: getNumber(this.el, "openDelay"), - closeDelay: getCloseDelay(this.el), + const el = this.el; + const pushEvent = this.pushEvent.bind(this); + const liveSocket = this.liveSocket; + const positioning = readPositioningOptions(el); + const callbacks = createTooltipCallbacks(el, pushEvent, liveSocket); + (_a4 = this.tooltip) == null ? void 0 : _a4.updateProps(__spreadValues({ + id: el.id, + defaultOpen: getBoolean(el, "defaultOpen"), + disabled: getBoolean(el, "disabled"), + dir: getDir(el), + openDelay: getNumber(el, "openDelay"), + closeDelay: getCloseDelay(el), positioning, - closeOnEscape: getBoolean(this.el, "closeOnEscape"), - closeOnClick: getBoolean(this.el, "closeOnClick"), - closeOnPointerDown: getBoolean(this.el, "closeOnPointerDown"), - closeOnScroll: getBoolean(this.el, "closeOnScroll"), - interactive: getBoolean(this.el, "interactive") - })); + closeOnEscape: getBoolean(el, "closeOnEscape"), + closeOnClick: getBoolean(el, "closeOnClick"), + closeOnPointerDown: getBoolean(el, "closeOnPointerDown"), + closeOnScroll: getBoolean(el, "closeOnScroll"), + interactive: getBoolean(el, "interactive") + }, callbacks)); queueMicrotask(() => { - var _a5, _b, _c; - (_c = (_a5 = this.tooltip) == null ? void 0 : (_b = _a5.api).reposition) == null ? void 0 : _c.call(_b); + var _a5, _b, _c, _d; + (_a5 = this.tooltip) == null ? void 0 : _a5.syncDom(); + (_d = (_b = this.tooltip) == null ? void 0 : (_c = _b.api).reposition) == null ? void 0 : _d.call(_c); }); }, destroyed() { diff --git a/priv/static/corex.min.js b/priv/static/corex.min.js index 60f43274..a5f29cbd 100644 --- a/priv/static/corex.min.js +++ b/priv/static/corex.min.js @@ -1,15 +1,15 @@ -"use strict";var Corex=(()=>{var go=Object.defineProperty,Gb=Object.defineProperties,Ub=Object.getOwnPropertyDescriptor,qb=Object.getOwnPropertyDescriptors,Wb=Object.getOwnPropertyNames,uo=Object.getOwnPropertySymbols;var Cl=Object.prototype.hasOwnProperty,Vu=Object.prototype.propertyIsEnumerable;var Sl=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e),xu=e=>{throw TypeError(e)};var Pl=(e,t,n)=>t in e?go(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,p=(e,t)=>{for(var n in t||(t={}))Cl.call(t,n)&&Pl(e,n,t[n]);if(uo)for(var n of uo(t))Vu.call(t,n)&&Pl(e,n,t[n]);return e},v=(e,t)=>Gb(e,qb(t));var ft=(e,t)=>{var n={};for(var r in e)Cl.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&uo)for(var r of uo(e))t.indexOf(r)<0&&Vu.call(e,r)&&(n[r]=e[r]);return n};var ne=(e,t)=>()=>(e&&(t=e(e=0)),t);var fe=(e,t)=>{for(var n in t)go(e,n,{get:t[n],enumerable:!0})},Kb=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Wb(t))!Cl.call(e,i)&&i!==n&&go(e,i,{get:()=>t[i],enumerable:!(r=Ub(t,i))||r.enumerable});return e};var jb=e=>Kb(go({},"__esModule",{value:!0}),e);var Z=(e,t,n)=>Pl(e,typeof t!="symbol"?t+"":t,n);var ho=(e,t,n)=>t.has(e)?xu("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n);var Ge=(e,t,n)=>new Promise((r,i)=>{var a=l=>{try{s(n.next(l))}catch(c){i(c)}},o=l=>{try{s(n.throw(l))}catch(c){i(c)}},s=l=>l.done?r(l.value):Promise.resolve(l.value).then(a,o);s((n=n.apply(e,t)).next())}),zb=function(e,t){this[0]=e,this[1]=t};var Au=e=>{var t=e[Sl("asyncIterator")],n=!1,r,i={};return t==null?(t=e[Sl("iterator")](),r=a=>i[a]=o=>t[a](o)):(t=t.call(e),r=a=>i[a]=o=>{if(n){if(n=!1,a==="throw")throw o;return o}return n=!0,{done:!1,value:new zb(new Promise(s=>{var l=t[a](o);l instanceof Object||xu("Object expected"),s(l)}),1)}}),i[Sl("iterator")]=()=>i,r("next"),"throw"in t?r("throw"):i.throw=a=>{throw a},"return"in t&&r("return"),i};function ea(e,t){let n=e.filter(i=>!t.includes(i)),r=t.filter(i=>!e.includes(i));return{added:n,removed:r}}var Il=ne(()=>{"use strict"});function U(e){let t=e.dataset.dir;if(t!==void 0&&Yb.includes(t))return t;let n=document.documentElement.getAttribute("dir");return n==="ltr"||n==="rtl"?n:"ltr"}function en(e,t){let n=e.dataset[t];return n==="indeterminate"?"indeterminate":n==="true"}function xo(e,t){let n=e.querySelector(`[data-templates="${t}"]`);return n?n instanceof HTMLTemplateElement?n.content:n:null}function J(e){return!e.main.isDead&&e.main.isConnected()}function ia(e){return e==null?[]:Array.isArray(e)?e:[e]}function hi(e,t,n={}){let{step:r=1,loop:i=!0}=n,a=t+r,o=e.length,s=o-1;return t===-1?r>0?0:s:a<0?i?s:0:a>=o?i?0:t>o?o:t:a}function Qu(e,t,n={}){return e[hi(e,t,n)]}function aa(e,t,n={}){let{step:r=1,loop:i=!0}=n;return hi(e,t,{step:-r,loop:i})}function eg(e,t,n={}){return e[aa(e,t,n)]}function oa(e,t){return e.reduce((n,r,i)=>{var a;return i%t===0?n.push([r]):(a=qt(n))==null||a.push(r),n},[])}function Ll(e){return e.reduce((t,n)=>Array.isArray(n)?t.concat(Ll(n)):t.concat(n),[])}function Ml(e,t){return e.reduce(([n,r],i)=>(t(i)?n.push(i):r.push(i),[n,r]),[[],[]])}function Me(e,t,...n){var i;if(e in t){let a=t[e];return Xe(a)?a(...n):a}let r=new Error(`No matching key: ${JSON.stringify(e)} in ${JSON.stringify(Object.keys(t))}`);throw(i=Error.captureStackTrace)==null||i.call(Error,r,Me),r}function ag(e,t=0){let n=0,r=null;return(...i)=>{let a=Date.now(),o=a-n;o>=t?(r&&(clearTimeout(r),r=null),e(...i),n=a):r||(r=setTimeout(()=>{e(...i),n=Date.now(),r=null},t-o))}}function cE(e){let t="",n;for(n=Math.abs(e);n>52;n=n/52|0)t=Hu(n%52)+t;return Hu(n%52)+t}function dE(e,t){let n=t.length;for(;n;)e=e*33^t.charCodeAt(--n);return e}function On(e){if(!na(e)||e===void 0)return e;let t=Reflect.ownKeys(e).filter(r=>typeof r=="string"),n={};for(let r of t){let i=e[r];i!==void 0&&(n[r]=On(i))}return n}function Jn(e,t){let n={};for(let r of t){let i=e[r];i!==void 0&&(n[r]=i)}return n}function Ut(...e){let t=e.length===1?e[0]:e[1];(e.length===2?e[0]:!0)&&console.warn(t)}function ui(...e){let t=e.length===1?e[0]:e[1];if(e.length===2?e[0]:!0)throw new Error(t)}function jt(e,t){if(e==null)throw new Error(t())}function rn(e,t,n){let r=[];for(let i of t)e[i]==null&&r.push(i);if(r.length>0)throw new Error(`[zag-js${n?` > ${n}`:""}] missing required props: ${r.join(", ")}`)}function xl(e){return e.join(Qn)}function uE(e){return e.includes(Qn)}function cg(e){return e.startsWith(sg)}function gE(e){return e.startsWith(Qn)}function hE(e){return cg(e)?e.slice(sg.length):e}function Al(e,t){return e?`${e}${Qn}${t}`:t}function pE(e){let t=new Map,n=new Map,r=(i,a)=>{t.set(i,a);let o=a.id;o&&(n.has(o)&&ui(`[zag-js] Duplicate state id: "${o}"`),n.set(o,i));let s=a.states;if(s){jt(a.initial,()=>`[zag-js] Compound state "${i}" has child states but no "initial" property`),a.initial in s||ui(`[zag-js] Compound state "${i}" has initial "${String(a.initial)}" which is not a child state`);for(let[l,c]of Object.entries(s)){if(!c)continue;let d=Al(i,l);r(d,c)}}};for(let[i,a]of Object.entries(e.states))a&&r(i,a);return{index:t,idIndex:n}}function ca(e){let t=Bu.get(e);if(t)return t;let{index:n,idIndex:r}=pE(e);return Bu.set(e,n),lg.set(e,r),n}function fE(e,t){var n;return ca(e),(n=lg.get(e))==null?void 0:n.get(t)}function Hl(e){return e?String(e).split(Qn).filter(Boolean):[]}function Io(e,t){if(!t)return[];let n=ca(e),r=Hl(t),i=[],a=[];for(let o of r){a.push(o);let s=xl(a),l=n.get(s);if(!l)break;i.push({path:s,state:l})}return i}function ta(e,t){let n=ca(e),r=Hl(t);if(!r.length)return t;let i=[];for(let s of r){i.push(s);let l=xl(i);if(!n.has(l))return t}let a=xl(i),o=n.get(a);for(;o!=null&&o.initial;){let s=`${a}${Qn}${o.initial}`,l=n.get(s);if(!l)break;a=s,o=l}return a}function Gu(e,t){return ca(e).has(t)}function Uu(e,t,n){let r=String(t);if(cg(r)){let i=hE(r),a=fE(e,i);return jt(a,()=>`[zag-js] Unknown state id: "${i}"`),ta(e,a)}if(gE(r)&&n){let i=Al(n,r.slice(1));return ta(e,i)}if(!uE(r)&&n){let i=Hl(n);for(let a=i.length-1;a>=1;a--){let o=i.slice(0,a).join(Qn),s=Al(o,r);if(Gu(e,s))return ta(e,s)}if(Gu(e,r))return ta(e,r)}return ta(e,r)}function mE(e,t,n){var a,o;let r=Io(e,t);for(let s=r.length-1;s>=0;s--){let l=(a=r[s])==null?void 0:a.state.on,c=l==null?void 0:l[n];if(c)return{transitions:c,source:(o=r[s])==null?void 0:o.path}}let i=e.on;return{transitions:i==null?void 0:i[n],source:void 0}}function vE(e,t,n,r){var d,g,h,u;let i=t?Io(e,t):[],a=Io(e,n),o=0;for(;o{var i;return(i=r.state.tags)==null?void 0:i.includes(n)})}function Te(){return{and:(...e)=>function(n){return e.every(r=>n.guard(r))},or:(...e)=>function(n){return e.some(r=>n.guard(r))},not:e=>function(n){return!n.guard(e)}}}function te(e){return ca(e),e}function Ot(){return{guards:Te(),createMachine:e=>te(e),choose:e=>function({choose:n}){var r;return(r=n(e))==null?void 0:r.actions}}}function pi(e){if(e)try{if(e.ownerDocument.activeElement!==e)return;let t=e.value.length;e.setSelectionRange(t,t)}catch(t){}}function OE(e){return["html","body","#document"].includes(dg(e))}function To(e){if(!e)return!1;let t=e.getRootNode();return er(t)===e}function xt(e){if(e==null||!ye(e))return!1;try{return gg(e)&&e.selectionStart!=null||xE.test(e.localName)||e.isContentEditable||e.getAttribute("contenteditable")==="true"||e.getAttribute("contenteditable")===""}catch(t){return!1}}function ge(e,t){var r;if(!e||!t||!ye(e)||!ug(t))return!1;if(ye(t)&&e===t||e.contains(t))return!0;let n=(r=t.getRootNode)==null?void 0:r.call(t);if(n&&Vr(n)){let i=t;for(;i;){if(e===i)return!0;i=i.parentNode||i.host}}return!1}function We(e){var t;return da(e)?e:wE(e)?e.document:(t=e==null?void 0:e.ownerDocument)!=null?t:document}function AE(e){return We(e).documentElement}function be(e){var t,n,r;return Vr(e)?be(e.host):da(e)?(t=e.defaultView)!=null?t:window:ye(e)&&(r=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?r:window}function er(e){let t=e.activeElement;for(;t!=null&&t.shadowRoot;){let n=t.shadowRoot.activeElement;if(!n||n===t)break;t=n}return t}function RE(e){if(dg(e)==="html")return e;let t=e.assignedSlot||e.parentNode||Vr(e)&&e.host||AE(e);return Vr(t)?t.host:t}function Bl(e){var n;let t;try{if(t=e.getRootNode({composed:!0}),da(t)||Vr(t))return t}catch(r){}return(n=e.ownerDocument)!=null?n:document}function At(e){return Vl.has(e)||Vl.set(e,be(e).getComputedStyle(e)),Vl.get(e)}function No(e,t){let n=new Set,r=Bl(e),i=a=>{let o=a.querySelectorAll("[aria-controls]");for(let s of o){if(s.getAttribute("aria-expanded")!=="true")continue;let l=hg(s);for(let c of l){if(!c||n.has(c))continue;n.add(c);let d=r.getElementById(c);if(d){let g=d.getAttribute("role"),h=d.getAttribute("aria-modal")==="true";if(g&&kE(g)&&!h&&(d===t||d.contains(t)||i(d)))return!0}}}return!1};return i(e)}function Ul(e,t){let n=Bl(e),r=new Set,i=a=>{let o=a.querySelectorAll("[aria-controls]");for(let s of o){if(s.getAttribute("aria-expanded")!=="true")continue;let l=hg(s);for(let c of l){if(!c||r.has(c))continue;r.add(c);let d=n.getElementById(c);if(d){let g=d.getAttribute("role"),h=d.getAttribute("aria-modal")==="true";g&&Gl.has(g)&&!h&&(t(d),i(d))}}}};i(e)}function pg(e){let t=new Set;return Ul(e,n=>{e.contains(n)||t.add(n)}),Array.from(t)}function NE(e){let t=e.getAttribute("role");return!!(t&&Gl.has(t))}function DE(e){return e.hasAttribute("aria-controls")&&e.getAttribute("aria-expanded")==="true"}function fg(e){var t;return DE(e)?!0:!!((t=e.querySelector)!=null&&t.call(e,'[aria-controls][aria-expanded="true"]'))}function mg(e){if(!e.id)return!1;let t=Bl(e),n=CSS.escape(e.id),r=`[aria-controls~="${n}"][aria-expanded="true"], [aria-controls="${n}"][aria-expanded="true"]`;return!!(t.querySelector(r)&&NE(e))}function vg(e,t){let{type:n,quality:r=.92,background:i}=t;if(!e)throw new Error("[zag-js > getDataUrl]: Could not find the svg element");let a=be(e),o=a.document,s=e.getBoundingClientRect(),l=e.cloneNode(!0);l.hasAttribute("viewBox")||l.setAttribute("viewBox",`0 0 ${s.width} ${s.height}`);let d=`\r -`+new a.XMLSerializer().serializeToString(l),g="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(d);if(n==="image/svg+xml")return Promise.resolve(g).then(P=>(l.remove(),P));let h=a.devicePixelRatio||1,u=o.createElement("canvas"),f=new a.Image;f.src=g,u.width=s.width*h,u.height=s.height*h;let m=u.getContext("2d");return(n==="image/jpeg"||i)&&(m.fillStyle=i||"white",m.fillRect(0,0,u.width,u.height)),new Promise(P=>{f.onload=()=>{m==null||m.drawImage(f,0,0,u.width,u.height),P(u.toDataURL(n,r)),l.remove()}})}function LE(){var t;let e=navigator.userAgentData;return(t=e==null?void 0:e.platform)!=null?t:navigator.platform}function ME(){let e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map(({brand:t,version:n})=>`${t}/${n}`).join(" "):navigator.userAgent}function bg(e){let{selectionStart:t,selectionEnd:n,value:r}=e.currentTarget,i=e.data;return r.slice(0,t)+(i!=null?i:"")+r.slice(n)}function GE(e){var t,n,r,i;return(i=(t=e.composedPath)==null?void 0:t.call(e))!=null?i:(r=(n=e.nativeEvent)==null?void 0:n.composedPath)==null?void 0:r.call(n)}function Q(e){var n;let t=GE(e);return(n=t==null?void 0:t[0])!=null?n:e.target}function Vn(e){let t=e.currentTarget;if(!t||!t.matches("a[href], button[type='submit'], input[type='submit']"))return!1;let r=e.button===1,i=Lo(e);return r||i}function xr(e){let t=e.currentTarget;if(!t)return!1;let n=t.localName;return e.altKey?n==="a"||n==="button"&&t.type==="submit"||n==="input"&&t.type==="submit":!1}function $e(e){return zt(e).isComposing||e.keyCode===229}function Lo(e){return fi()?e.metaKey:e.ctrlKey}function Eg(e){return e.key.length===1&&!e.ctrlKey&&!e.metaKey}function Sg(e){return e.pointerType===""&&e.isTrusted?!0:BE()&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function ve(e,t={}){var o;let{dir:n="ltr",orientation:r="horizontal"}=t,i=e.key;return i=(o=qE[i])!=null?o:i,n==="rtl"&&r==="horizontal"&&i in Wu&&(i=Wu[i]),i}function zt(e){var t;return(t=e.nativeEvent)!=null?t:e}function xn(e){return e.ctrlKey||e.metaKey?.1:WE.has(e.key)||e.shiftKey&&KE.has(e.key)?10:1}function Ze(e,t="client"){let n=UE(e)?e.touches[0]||e.changedTouches[0]:e;return{x:n[`${t}X`],y:n[`${t}Y`]}}function Pg(e,t){var a;let{type:n="HTMLInputElement",property:r="value"}=t,i=be(e)[n].prototype;return(a=Object.getOwnPropertyDescriptor(i,r))!=null?a:{}}function jE(e){if(e.localName==="input")return"HTMLInputElement";if(e.localName==="textarea")return"HTMLTextAreaElement";if(e.localName==="select")return"HTMLSelectElement"}function He(e,t,n="value"){var i;if(!e)return;let r=jE(e);r&&((i=Pg(e,{type:r,property:n}).set)==null||i.call(e,t)),e.setAttribute(n,t)}function ha(e,t){var r;if(!e)return;(r=Pg(e,{type:"HTMLInputElement",property:"checked"}).set)==null||r.call(e,t),t?e.setAttribute("checked",""):e.removeAttribute("checked")}function Mo(e,t){let{value:n,bubbles:r=!0}=t;if(!e)return;let i=be(e);if(!(e instanceof i.HTMLInputElement))return;He(e,`${n}`);let a=new i.Event("input",{bubbles:r});e.dispatchEvent(Fo(a))}function mi(e,t){let{checked:n,bubbles:r=!0}=t;if(!e)return;let i=be(e);if(!(e instanceof i.HTMLInputElement))return;ha(e,n);let a=new i.Event("click",{bubbles:r});e.dispatchEvent(Fo(a))}function zE(e){return e.matches("textarea, input, select, button")}function YE(e,t){if(!e)return;let n=zE(e)?e.form:e.closest("form"),r=i=>{i.defaultPrevented||t()};return n==null||n.addEventListener("reset",r,{passive:!0}),()=>n==null?void 0:n.removeEventListener("reset",r)}function XE(e,t){let n=e==null?void 0:e.closest("fieldset");if(!n)return;t(n.disabled);let r=be(n),i=new r.MutationObserver(()=>t(n.disabled));return i.observe(n,{attributes:!0,attributeFilter:["disabled"]}),()=>i.disconnect()}function Rt(e,t){if(!e)return;let{onFieldsetDisabledChange:n,onFormReset:r}=t,i=[YE(e,r),XE(e,n)];return()=>i.forEach(a=>a==null?void 0:a())}function Kl(e){return Object.prototype.hasOwnProperty.call(e,Cg)}function Fo(e){return Kl(e)||Object.defineProperty(e,Cg,{value:!0}),e}function Tg(e){let t=e.getAttribute("tabindex");return t?parseInt(t,10):NaN}function eS(e){return gg(e)&&e.type==="radio"}function tS(e){var a;if(!eS(e)||!e.name||e.checked)return!0;let t=`input[type="radio"][name="${CSS.escape(e.name)}"]`,n=(a=e.form)!=null?a:e.ownerDocument,r=Array.from(n.querySelectorAll(t)).filter(o=>o.form===e.form&<(o)),i=r.find(o=>o.checked);return i?i===e:r[0]===e}function nS(e,t){if(!t)return null;if(t===!0)return e.shadowRoot||null;let n=t(e);return(n===!0?e.shadowRoot:n)||null}function wg(e,t,n){let r=[...e],i=[...e],a=new Set,o=new Map;e.forEach((l,c)=>o.set(l,c));let s=0;for(;s{o.set(u,h+f)});for(let u=h+d.length;u{o.set(u,h+f)})}i.push(...d)}}return r}function lt(e){return!ye(e)||e.closest("[inert]")?!1:e.matches(_o)&&VE(e)}function An(e,t={}){if(!e)return[];let{includeContainer:n,getShadowRoot:r}=t,i=Array.from(e.querySelectorAll(_o));n&&Xn(e)&&i.unshift(e);let a=[];for(let o of i)if(Xn(o)){if(Ig(o)&&o.contentDocument){let s=o.contentDocument.body;a.push(...An(s,{getShadowRoot:r}));continue}a.push(o)}if(r){let o=wg(a,r,Xn);return!o.length&&n?i:o}return!a.length&&n?i:a}function Xn(e){return ye(e)&&e.tabIndex>0?!0:!lt(e)||QE(e)?!1:tS(e)}function rS(e,t={}){let n=An(e,t),r=n[0]||null,i=n[n.length-1]||null;return[r,i]}function vi(e){return e.tabIndex<0&&(ZE.test(e.localName)||xt(e))&&!JE(e)?0:e.tabIndex}function nr(e){let{root:t,getInitialEl:n,filter:r,enabled:i=!0}=e;if(!i)return;let a=null;if(a||(a=typeof n=="function"?n():n),a||(a=t==null?void 0:t.querySelector("[data-autofocus],[autofocus]")),!a){let o=An(t);a=r?o.filter(r)[0]:o[0]}return a||t||void 0}function $o(e){let t=e.currentTarget;if(!t)return!1;let[n,r]=rS(t);return!(To(n)&&e.shiftKey||To(r)&&!e.shiftKey||!n&&!r)}function $(e){let t=jl.create();return t.request(e),t.cleanup}function Ar(e){let t=new Set;function n(r){let i=globalThis.requestAnimationFrame(r);t.add(()=>globalThis.cancelAnimationFrame(i))}return n(()=>n(e)),function(){t.forEach(i=>i())}}function iS(e,t,n){let r=$(()=>{e.removeEventListener(t,i,!0),n()}),i=()=>{r(),n()};return e.addEventListener(t,i,{once:!0,capture:!0}),r}function aS(e,t){if(!e)return;let{attributes:n,callback:r}=t,i=e.ownerDocument.defaultView||window,a=new i.MutationObserver(o=>{for(let s of o)s.type==="attributes"&&s.attributeName&&n.includes(s.attributeName)&&r(s)});return a.observe(e,{attributes:!0,attributeFilter:n}),()=>a.disconnect()}function kt(e,t){let{defer:n}=t,r=n?$:a=>a(),i=[];return i.push(r(()=>{let a=typeof e=="function"?e():e;i.push(aS(a,t))})),()=>{i.forEach(a=>a==null?void 0:a())}}function oS(e,t){let{callback:n}=t;if(!e)return;let r=e.ownerDocument.defaultView||window,i=new r.MutationObserver(n);return i.observe(e,{childList:!0,subtree:!0}),()=>i.disconnect()}function Ho(e,t){let{defer:n}=t,r=n?$:a=>a(),i=[];return i.push(r(()=>{let a=typeof e=="function"?e():e;i.push(oS(a,t))})),()=>{i.forEach(a=>a==null?void 0:a())}}function yi(e){let t=()=>{let n=be(e);e.dispatchEvent(new n.MouseEvent("click"))};HE()?iS(e,"keyup",t):queueMicrotask(t)}function fa(e){let t=RE(e);return OE(t)?We(t).body:ye(t)&&Yl(t)?t:fa(t)}function zl(e,t=[]){let n=fa(e),r=n===e.ownerDocument.body,i=be(n);return r?t.concat(i,i.visualViewport||[],Yl(n)?n:[]):t.concat(n,zl(n,[]))}function Yl(e){let t=be(e),{overflow:n,overflowX:r,overflowY:i,display:a}=t.getComputedStyle(e);return sS.test(n+i+r)&&!lS.has(a)}function cS(e){return e.scrollHeight>e.clientHeight||e.scrollWidth>e.clientWidth}function Rn(e,t){let i=t||{},{rootEl:n}=i,r=ft(i,["rootEl"]);!e||!n||!Yl(n)||!cS(n)||e.scrollIntoView(r)}function bi(e,t){let{left:n,top:r,width:i,height:a}=t.getBoundingClientRect(),o={x:e.x-n,y:e.y-r},s={x:qu(o.x/i),y:qu(o.y/a)};function l(c={}){let{dir:d="ltr",orientation:g="horizontal",inverted:h}=c,u=typeof h=="object"?h.x:h,f=typeof h=="object"?h.y:h;return g==="horizontal"?d==="rtl"||u?1-s.x:s.x:f?1-s.y:s.y}return{offset:o,percent:s,getPercentValue:l}}function Vg(e,t){let n=e.body,r="pointerLockElement"in e||"mozPointerLockElement"in e,i=()=>!!e.pointerLockElement;function a(){t==null||t(i())}function o(l){i()&&(t==null||t(!1)),console.error("PointerLock error occurred:",l),e.exitPointerLock()}if(!r)return;try{n.requestPointerLock()}catch(l){}let s=[re(e,"pointerlockchange",a,!1),re(e,"pointerlockerror",o,!1)];return()=>{s.forEach(l=>l()),e.exitPointerLock()}}function dS(e={}){let{target:t,doc:n}=e,r=n!=null?n:document,i=r.documentElement;return ua()?(di==="default"&&(Rl=i.style.webkitUserSelect,i.style.webkitUserSelect="none"),di="disabled"):t&&(Po.set(t,t.style.userSelect),t.style.userSelect="none"),()=>Xl({target:t,doc:r})}function Xl(e={}){let{target:t,doc:n}=e,i=(n!=null?n:document).documentElement;if(ua()){if(di!=="disabled")return;di="restoring",setTimeout(()=>{Ar(()=>{di==="restoring"&&(i.style.webkitUserSelect==="none"&&(i.style.webkitUserSelect=Rl||""),Rl="",di="default")})},300)}else if(t&&Po.has(t)){let a=Po.get(t);t.style.userSelect==="none"&&(t.style.userSelect=a!=null?a:""),t.getAttribute("style")===""&&t.removeAttribute("style"),Po.delete(t)}}function ma(e={}){let o=e,{defer:t,target:n}=o,r=ft(o,["defer","target"]),i=t?$:s=>s(),a=[];return a.push(i(()=>{let s=typeof n=="function"?n():n;a.push(dS(v(p({},r),{target:s})))})),()=>{a.forEach(s=>s==null?void 0:s())}}function an(e,t){let{onPointerMove:n,onPointerUp:r}=t,i=s=>{let l=Ze(s),c=Math.sqrt(l.x**2+l.y**2),d=s.pointerType==="touch"?10:5;if(!(c{let l=Ze(s);r({point:l,event:s})},o=[re(e,"pointermove",i,!1),re(e,"pointerup",a,!1),re(e,"pointercancel",a,!1),re(e,"contextmenu",a,!1),ma({doc:e})];return()=>{o.forEach(s=>s())}}function Bo(e){let{pointerNode:t,keyboardNode:n=t,onPress:r,onPressStart:i,onPressEnd:a,isValidKey:o=x=>x.key==="Enter"}=e;if(!t)return Tn;let s=be(t),l=Tn,c=Tn,d=Tn,g=x=>({point:Ze(x),event:x});function h(x){i==null||i(g(x))}function u(x){a==null||a(g(x))}let m=re(t,"pointerdown",x=>{c();let b=re(s,"pointerup",S=>{let A=Q(S);ge(t,A)?r==null||r(g(S)):a==null||a(g(S))},{passive:!r,once:!0}),y=re(s,"pointercancel",u,{passive:!a,once:!0});c=Ol(b,y),To(n)&&x.pointerType==="mouse"&&x.preventDefault(),h(x)},{passive:!i}),P=re(n,"focus",C);l=Ol(m,P);function C(){let x=S=>{if(!o(S))return;let A=O=>{if(!o(O))return;let w=new s.PointerEvent("pointerup"),k=g(w);r==null||r(k),a==null||a(k)};c(),c=re(n,"keyup",A);let N=new s.PointerEvent("pointerdown");h(N)},T=()=>{let S=new s.PointerEvent("pointercancel");u(S)},b=re(n,"keydown",x),y=re(n,"blur",T);d=Ol(b,y)}return()=>{l(),c(),d()}}function xe(e,t){var n;return Array.from((n=e==null?void 0:e.querySelectorAll(t))!=null?n:[])}function rr(e,t){var n;return(n=e==null?void 0:e.querySelector(t))!=null?n:null}function Jl(e,t,n=Zl){return e.find(r=>n(r)===t)}function Ql(e,t,n=Zl){let r=Jl(e,t,n);return r?e.indexOf(r):-1}function Ei(e,t,n=!0){let r=Ql(e,t);return r=n?(r+1)%e.length:Math.min(r+1,e.length-1),e[r]}function Si(e,t,n=!0){let r=Ql(e,t);return r===-1?n?e[e.length-1]:null:(r=n?(r-1+e.length)%e.length:Math.max(0,r-1),e[r])}function uS(e){let t=new WeakMap,n,r=new WeakMap,i=s=>n||(n=new s.ResizeObserver(l=>{for(let c of l){r.set(c.target,c);let d=t.get(c.target);if(d)for(let g of d)g(c)}}),n);return{observe:(s,l)=>{let c=t.get(s)||new Set;c.add(l),t.set(s,c);let d=be(s);return i(d).observe(s,e),()=>{let g=t.get(s);g&&(g.delete(l),g.size===0&&(t.delete(s),i(d).unobserve(s)))}},unobserve:s=>{t.delete(s),n==null||n.unobserve(s)}}}function xg(e){let t=e.getBoundingClientRect(),n=e.offsetWidth,r=e.offsetHeight,i=Math.round(t.width)!==n||Math.round(t.height)!==r,a=i?Math.round(t.width)/n:1,o=i?Math.round(t.height)/r:1;return(!a||!Number.isFinite(a))&&(a=1),(!o||!Number.isFinite(o))&&(o=1),{x:a,y:o}}function fS(e,t,n,r=Zl){let i=n?Ql(e,n,r):-1,a=n?PE(e,i):e;return t.length===1&&(a=a.filter(s=>r(s)!==n)),a.find(s=>pS(hS(s),t))}function Ag(e,t,n){let r=e.getAttribute(t),i=r!=null;return r===n?Tn:(e.setAttribute(t,n),()=>{i?e.setAttribute(t,r):e.removeAttribute(t)})}function Rr(e,t){if(!e)return Tn;let n=Object.keys(t).reduce((r,i)=>(r[i]=e.style.getPropertyValue(i),r),{});return mS(n,t)?Tn:(Object.assign(e.style,t),()=>{Object.assign(e.style,n),e.style.length===0&&e.removeAttribute("style")})}function Rg(e,t,n){if(!e)return Tn;let r=e.style.getPropertyValue(t);return r===n?Tn:(e.style.setProperty(t,n),()=>{e.style.setProperty(t,r),e.style.length===0&&e.removeAttribute("style")})}function mS(e,t){return Object.keys(e).every(n=>e[n]===t[n])}function vS(e,t){let{state:n,activeId:r,key:i,timeout:a=350,itemToId:o}=t,s=n.keysSoFar+i,c=s.length>1&&Array.from(s).every(f=>f===s[0])?s[0]:s,d=e.slice(),g=fS(d,c,r,o);function h(){clearTimeout(n.timer),n.timer=-1}function u(f){n.keysSoFar=f,h(),f!==""&&(n.timer=+setTimeout(()=>{u(""),h()},a))}return u(s),g}function yS(e){return e.key.length===1&&!e.ctrlKey&&!e.metaKey}function bS(e,t,n){let{signal:r}=t;return[new Promise((o,s)=>{let l=setTimeout(()=>{s(new Error(`Timeout of ${n}ms exceeded`))},n);r.addEventListener("abort",()=>{clearTimeout(l),s(new DOMException("Promise aborted","AbortError"))}),e.then(c=>{r.aborted||(clearTimeout(l),o(c))}).catch(c=>{r.aborted||(clearTimeout(l),s(c))})}),()=>t.abort()]}function kg(e,t){let{timeout:n,rootNode:r}=t,i=be(r),a=We(r),o=new i.AbortController;return bS(new Promise(s=>{let l=e();if(l){s(l);return}let c=new i.MutationObserver(()=>{let d=e();d&&d.isConnected&&(c.disconnect(),s(d))});c.observe(a.body,{childList:!0,subtree:!0})}),o,n)}function ES(e){let t=()=>{var o,s;return(s=(o=e.getRootNode)==null?void 0:o.call(e))!=null?s:document},n=()=>We(t()),r=()=>{var o;return(o=n().defaultView)!=null?o:window},i=()=>er(t()),a=o=>t().getElementById(o);return v(p({},e),{getRootNode:t,getDoc:n,getWin:r,getActiveElement:i,isActiveElement:To,getById:a})}function SS(){if(typeof globalThis!="undefined")return globalThis;if(typeof self!="undefined")return self;if(typeof window!="undefined")return window;if(typeof global!="undefined")return global}function Ng(e,t){let n=SS();return n?(n[e]||(n[e]=t()),n[e]):t()}function Go(e={}){return AS(e)}function Oo(e,t,n){let r=Or.get(e);wo()&&!r&&console.warn("Please use proxy object");let i,a=[],o=r[3],s=!1,c=o(d=>{if(a.push(d),n){t(a.splice(0));return}i||(i=Promise.resolve().then(()=>{i=void 0,s&&t(a.splice(0))}))});return s=!0,()=>{s=!1,c()}}function RS(e){let t=Or.get(e);wo()&&!t&&console.warn("Please use proxy object");let[n,r,i]=t;return i(n,r())}function Vo(e){var a,o;let t=(a=e().value)!=null?a:e().defaultValue;e().debug&&console.log(`[bindable > ${e().debug}] initial`,t);let n=(o=e().isEqual)!=null?o:Object.is,r=Go({value:t}),i=()=>e().value!==void 0;return{initial:t,ref:r,get(){return i()?e().value:r.value},set(s){var d,g;let l=i()?e().value:r.value,c=Xe(s)?s(l):s;e().debug&&console.log(`[bindable > ${e().debug}] setValue`,{next:c,prev:l}),i()||(r.value=c),n(c,l)||(g=(d=e()).onChange)==null||g.call(d,c,l)},invoke(s,l){var c,d;(d=(c=e()).onChange)==null||d.call(c,s,l)},hash(s){var l,c,d;return(d=(c=(l=e()).hash)==null?void 0:c.call(l,s))!=null?d:String(s)}}}function kS(e){let t={current:e};return{get(n){return t.current[n]},set(n,r){t.current[n]=r}}}function Dg(e,t){if(!na(e)||!na(t))return t===void 0?e:t;let n=p({},e);for(let r of Object.keys(t)){let i=t[r],a=e[r];i!==void 0&&(na(a)&&na(i)?n[r]=Dg(a,i):n[r]=i)}return n}function NS(e){return new Proxy({},{get(t,n){return n==="style"?r=>e({style:r}).style:e}})}function $S(e,t,n){let r=n||"default",i=Eo.get(e);i||(i=new Map,Eo.set(e,i));let a=i.get(r)||{},o=Object.keys(t),s=(m,P)=>{e.addEventListener(m.toLowerCase(),P)},l=(m,P)=>{e.removeEventListener(m.toLowerCase(),P)},c=m=>m.startsWith("on"),d=m=>!m.startsWith("on"),g=m=>s(m.substring(2),t[m]),h=m=>l(m.substring(2),t[m]),u=m=>{let P=t[m],C=a[m];if(P!==C){if(m==="class"){e.className=P!=null?P:"";return}if(Xu.has(m)){e[m]=P!=null?P:"";return}if(typeof P=="boolean"&&!m.includes("aria-")){e.toggleAttribute(So(e,m),P);return}if(m==="children"){e.innerHTML=P;return}if(P!=null){e.setAttribute(So(e,m),P);return}e.removeAttribute(So(e,m))}};for(let m in a)t[m]==null&&(m==="class"?e.className="":Xu.has(m)?e[m]="":e.removeAttribute(So(e,m)));return Object.keys(a).filter(c).forEach(m=>{l(m.substring(2),a[m])}),o.filter(c).forEach(g),o.filter(d).forEach(u),i.set(r,t),function(){o.filter(c).forEach(h);let P=Eo.get(e);P&&(P.delete(r),P.size===0&&Eo.delete(e))}}var Yb,V,ie,q,I,wn,gi,Xb,Zb,Se,Jb,Zu,Qb,tn,eE,Dl,Ju,Tt,qt,tE,mt,wt,Wt,Ao,Kt,$u,nE,Ie,Zn,tg,ng,nn,sa,Xe,rg,tt,rE,ig,iE,na,aE,oE,sE,In,Fl,lE,_l,vt,la,$l,Hu,og,Qn,sg,Bu,lg,ra,Tl,EE,SE,wl,qu,PE,Ol,Tn,Ro,ko,E,oe,CE,IE,TE,ye,da,wE,dg,ug,Vr,gg,Vt,VE,xE,Vl,Gl,kE,hg,Do,ql,yg,FE,Wl,_E,$E,ua,ga,fi,yt,HE,BE,Ee,tr,Fe,UE,qE,Wu,WE,KE,re,Cg,Ig,ZE,JE,QE,_o,pa,jl,sS,lS,di,Rl,Po,Zl,kn,gS,hS,pS,ct,dt,Co,PS,CS,IS,TS,kl,Ku,wo,YN,wS,ju,Nl,OS,VS,zu,Or,xS,AS,Y,Yu,DS,LS,MS,Eo,Xu,FS,_S,So,X,j,ci,HS,se=ne(()=>{"use strict";Yb=["ltr","rtl"];V=(e,t,n)=>{let r=e.dataset[t];if(r!==void 0&&(!n||n.includes(r)))return r},ie=(e,t)=>{let n=e.dataset[t];if(typeof n=="string")return n.split(",").map(r=>r.trim()).filter(r=>r.length>0)},q=(e,t,n)=>{let r=e.dataset[t];if(r===void 0)return;let i=Number(r);if(!Number.isNaN(i))return n&&!n.includes(i)?0:i},I=(e,t)=>{let n=t.replace(/([A-Z])/g,"-$1").toLowerCase();return e.hasAttribute(`data-${n}`)},wn=(e,t)=>{let n=e.dataset[t];return n==="true"?!0:n==="false"?!1:void 0};gi=(e,t="element")=>e!=null&&e.id?e.id:`${t}-${Math.random().toString(36).substring(2,9)}`;Xb=Object.defineProperty,Zb=(e,t,n)=>t in e?Xb(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Se=(e,t,n)=>Zb(e,typeof t!="symbol"?t+"":t,n),Jb=Object.defineProperty,Zu=e=>{throw TypeError(e)},Qb=(e,t,n)=>t in e?Jb(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,tn=(e,t,n)=>Qb(e,typeof t!="symbol"?t+"":t,n),eE=(e,t,n)=>t.has(e)||Zu("Cannot "+n),Dl=(e,t,n)=>(eE(e,t,"read from private field"),n?n.call(e):t.get(e)),Ju=(e,t,n)=>t.has(e)?Zu("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n);Tt=e=>e[0],qt=e=>e[e.length-1],tE=(e,t)=>e.indexOf(t)!==-1,mt=(e,...t)=>e.concat(t),wt=(e,...t)=>e.filter(n=>!t.includes(n)),Wt=e=>Array.from(new Set(e)),Ao=(e,t)=>{let n=new Set(t);return e.filter(r=>!n.has(r))},Kt=(e,t)=>tE(e,t)?wt(e,t):mt(e,t);$u=e=>(e==null?void 0:e.constructor.name)==="Array",nE=(e,t)=>{if(e.length!==t.length)return!1;for(let n=0;n{if(Object.is(e,t))return!0;if(e==null&&t!=null||e!=null&&t==null)return!1;if(typeof(e==null?void 0:e.isEqual)=="function"&&typeof(t==null?void 0:t.isEqual)=="function")return e.isEqual(t);if(typeof e=="function"&&typeof t=="function")return e.toString()===t.toString();if($u(e)&&$u(t))return nE(Array.from(e),Array.from(t));if(typeof e!="object"||typeof t!="object")return!1;let n=Object.keys(t!=null?t:Object.create(null)),r=n.length;for(let i=0;iArray.isArray(e),tg=e=>e===!0||e===!1,ng=e=>e!=null&&typeof e=="object",nn=e=>ng(e)&&!Zn(e),sa=e=>typeof e=="string",Xe=e=>typeof e=="function",rg=e=>e==null,tt=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),rE=e=>Object.prototype.toString.call(e),ig=Function.prototype.toString,iE=ig.call(Object),na=e=>{if(!ng(e)||rE(e)!="[object Object]"||sE(e))return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let n=tt(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&ig.call(n)==iE},aE=e=>typeof e=="object"&&e!==null&&"$$typeof"in e&&"props"in e,oE=e=>typeof e=="object"&&e!==null&&"__v_isVNode"in e,sE=e=>aE(e)||oE(e),In=(e,...t)=>{let n=typeof e=="function"?e(...t):e;return n!=null?n:void 0},Fl=e=>e,lE=e=>e(),_l=()=>{},vt=(...e)=>(...t)=>{e.forEach(function(n){n==null||n(...t)})},la=(()=>{let e=0;return()=>(e++,e.toString(36))})();$l=(e,t)=>{var n;try{return e()}catch(r){return r instanceof Error&&((n=Error.captureStackTrace)==null||n.call(Error,r,$l)),t==null?void 0:t()}};Hu=e=>String.fromCharCode(e+(e>25?39:97));og=e=>cE(dE(5381,e)>>>0);Qn=".",sg="#",Bu=new WeakMap,lg=new WeakMap;ra=(e=>(e.NotStarted="Not Started",e.Started="Started",e.Stopped="Stopped",e))(ra||{}),Tl="__init__",EE=Object.defineProperty,SE=(e,t,n)=>t in e?EE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,wl=(e,t,n)=>SE(e,typeof t!="symbol"?t+"":t,n);qu=e=>Math.max(0,Math.min(1,e)),PE=(e,t)=>e.map((n,r)=>e[(Math.max(t,0)+r)%e.length]),Ol=(...e)=>t=>e.reduce((n,r)=>r(n),t),Tn=()=>{},Ro=e=>typeof e=="object"&&e!==null,ko=2147483647,E=e=>e?"":void 0,oe=e=>e?"true":void 0,CE=1,IE=9,TE=11,ye=e=>Ro(e)&&e.nodeType===CE&&typeof e.nodeName=="string",da=e=>Ro(e)&&e.nodeType===IE,wE=e=>Ro(e)&&e===e.window,dg=e=>ye(e)?e.localName||"":"#document";ug=e=>Ro(e)&&e.nodeType!==void 0,Vr=e=>ug(e)&&e.nodeType===TE&&"host"in e,gg=e=>ye(e)&&e.localName==="input",Vt=e=>!!(e!=null&&e.matches("a[href]")),VE=e=>ye(e)?e.offsetWidth>0||e.offsetHeight>0||e.getClientRects().length>0:!1;xE=/(textarea|select)/;Vl=new WeakMap;Gl=new Set(["menu","listbox","dialog","grid","tree","region"]),kE=e=>Gl.has(e),hg=e=>{var t;return((t=e.getAttribute("aria-controls"))==null?void 0:t.split(" "))||[]};Do=()=>typeof document!="undefined";ql=e=>Do()&&e.test(LE()),yg=e=>Do()&&e.test(ME()),FE=e=>Do()&&e.test(navigator.vendor),Wl=()=>Do()&&!!navigator.maxTouchPoints,_E=()=>ql(/^iPhone/i),$E=()=>ql(/^iPad/i)||fi()&&navigator.maxTouchPoints>1,ua=()=>_E()||$E(),ga=()=>fi()||ua(),fi=()=>ql(/^Mac/i),yt=()=>ga()&&FE(/apple/i),HE=()=>yg(/Firefox/i),BE=()=>yg(/Android/i);Ee=e=>e.button===0,tr=e=>e.button===2||fi()&&e.ctrlKey&&e.button===0,Fe=e=>e.ctrlKey||e.altKey||e.metaKey,UE=e=>"touches"in e&&e.touches.length>0,qE={Up:"ArrowUp",Down:"ArrowDown",Esc:"Escape"," ":"Space",",":"Comma",Left:"ArrowLeft",Right:"ArrowRight"},Wu={ArrowLeft:"ArrowRight",ArrowRight:"ArrowLeft"};WE=new Set(["PageUp","PageDown"]),KE=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"]);re=(e,t,n,r)=>{let i=typeof e=="function"?e():e;return i==null||i.addEventListener(t,n,r),()=>{i==null||i.removeEventListener(t,n,r)}};Cg=Symbol.for("zag.changeEvent");Ig=e=>ye(e)&&e.tagName==="IFRAME",ZE=/^(audio|video|details)$/;JE=e=>!Number.isNaN(Tg(e)),QE=e=>Tg(e)<0;_o="input:not([type='hidden']):not([disabled]), select:not([disabled]), textarea:not([disabled]), a[href], button:not([disabled]), [tabindex], iframe, object, embed, area[href], audio[controls], video[controls], [contenteditable]:not([contenteditable='false']), details > summary:first-of-type",pa=(e,t={})=>{if(!e)return[];let{includeContainer:n=!1,getShadowRoot:r}=t,i=Array.from(e.querySelectorAll(_o));(n==!0||n=="if-empty"&&i.length===0)&&ye(e)&<(e)&&i.unshift(e);let o=[];for(let s of i)if(lt(s)){if(Ig(s)&&s.contentDocument){let l=s.contentDocument.body;o.push(...pa(l,{getShadowRoot:r}));continue}o.push(s)}return r?wg(o,r,lt):o};jl=class Og{constructor(){wl(this,"id",null),wl(this,"fn_cleanup"),wl(this,"cleanup",()=>{this.cancel()})}static create(){return new Og}request(t){this.cancel(),this.id=globalThis.requestAnimationFrame(()=>{this.id=null,this.fn_cleanup=t==null?void 0:t()})}cancel(){var t;this.id!==null&&(globalThis.cancelAnimationFrame(this.id),this.id=null),(t=this.fn_cleanup)==null||t.call(this),this.fn_cleanup=void 0}isActive(){return this.id!==null}};sS=/auto|scroll|overlay|hidden|clip/,lS=new Set(["inline","contents"]);di="default",Rl="",Po=new WeakMap;Zl=e=>e.id;kn=uS({box:"border-box"});gS=e=>e.split("").map(t=>{let n=t.charCodeAt(0);return n>0&&n<128?t:n>=128&&n<=255?`/x${n.toString(16)}`.replace("/","\\"):""}).join("").trim(),hS=e=>{var t,n,r;return gS((r=(n=(t=e.dataset)==null?void 0:t.valuetext)!=null?n:e.textContent)!=null?r:"")},pS=(e,t)=>e.trim().toLowerCase().startsWith(t.toLowerCase());ct=Object.assign(vS,{defaultOptions:{keysSoFar:"",timer:-1},isValidEvent:yS});dt={border:"0",clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:"0",position:"absolute",width:"1px",whiteSpace:"nowrap",wordWrap:"normal"};Co=Ng("__zag__refSet",()=>new WeakSet),PS=e=>typeof e=="object"&&e!==null&&"$$typeof"in e&&"props"in e,CS=e=>typeof e=="object"&&e!==null&&"__v_isVNode"in e,IS=e=>typeof e=="object"&&e!==null&&"nodeType"in e&&typeof e.nodeName=="string",TS=e=>PS(e)||CS(e)||IS(e),kl=e=>e!==null&&typeof e=="object",Ku=e=>kl(e)&&!Co.has(e)&&(Array.isArray(e)||!(Symbol.iterator in e))&&!TS(e)&&!(e instanceof WeakMap)&&!(e instanceof WeakSet)&&!(e instanceof Error)&&!(e instanceof Number)&&!(e instanceof Date)&&!(e instanceof String)&&!(e instanceof RegExp)&&!(e instanceof ArrayBuffer)&&!(e instanceof Promise)&&!(e instanceof File)&&!(e instanceof Blob)&&!(e instanceof AbortController),wo=()=>!0,YN=Symbol(),wS=Symbol(),ju=Object.getPrototypeOf,Nl=new WeakMap,OS=e=>e&&(Nl.has(e)?Nl.get(e):ju(e)===Object.prototype||ju(e)===Array.prototype),VS=e=>OS(e)&&e[wS]||null,zu=(e,t=!0)=>{Nl.set(e,t)},Or=Ng("__zag__proxyStateMap",()=>new WeakMap),xS=(e=Object.is,t=(s,l)=>new Proxy(s,l),n=new WeakMap,r=(s,l)=>{let c=n.get(s);if((c==null?void 0:c[0])===l)return c[1];let d=Array.isArray(s)?[]:Object.create(Object.getPrototypeOf(s));return zu(d,!0),n.set(s,[l,d]),Reflect.ownKeys(s).forEach(g=>{let h=Reflect.get(s,g);Co.has(h)?(zu(h,!1),d[g]=h):Or.has(h)?d[g]=RS(h):d[g]=h}),Object.freeze(d)},i=new WeakMap,a=[1,1],o=s=>{if(!kl(s))throw new Error("object required");let l=i.get(s);if(l)return l;let c=a[0],d=new Set,g=(A,N=++a[0])=>{c!==N&&(c=N,d.forEach(O=>O(A,N)))},h=a[1],u=(A=++a[1])=>(h!==A&&!d.size&&(h=A,m.forEach(([N])=>{let O=N[1](A);O>c&&(c=O)})),c),f=A=>(N,O)=>{let w=[...N];w[1]=[A,...w[1]],g(w,O)},m=new Map,P=(A,N)=>{if(wo()&&m.has(A))throw new Error("prop listener already exists");if(d.size){let O=N[3](f(A));m.set(A,[N,O])}else m.set(A,[N])},C=A=>{var O;let N=m.get(A);N&&(m.delete(A),(O=N[1])==null||O.call(N))},x=A=>(d.add(A),d.size===1&&m.forEach(([O,w],k)=>{if(wo()&&w)throw new Error("remove already exists");let R=O[3](f(k));m.set(k,[O,R])}),()=>{d.delete(A),d.size===0&&m.forEach(([O,w],k)=>{w&&(w(),m.set(k,[O]))})}),T=Array.isArray(s)?[]:Object.create(Object.getPrototypeOf(s)),y=t(T,{deleteProperty(A,N){let O=Reflect.get(A,N);C(N);let w=Reflect.deleteProperty(A,N);return w&&g(["delete",[N],O]),w},set(A,N,O,w){var W;let k=Reflect.has(A,N),R=Reflect.get(A,N,w);if(k&&(e(R,O)||i.has(O)&&e(R,i.get(O))))return!0;C(N),kl(O)&&(O=VS(O)||O);let D=O;if(!((W=Object.getOwnPropertyDescriptor(A,N))!=null&&W.set)){!Or.has(O)&&Ku(O)&&(D=Go(O));let ee=!Co.has(D)&&Or.get(D);ee&&P(N,ee)}return Reflect.set(A,N,D,w),g(["set",[N],O,R]),!0}});i.set(s,y);let S=[T,u,r,x];return Or.set(y,S),Reflect.ownKeys(s).forEach(A=>{let N=Object.getOwnPropertyDescriptor(s,A);N.get||N.set?Object.defineProperty(T,A,N):y[A]=s[A]}),y})=>[o,Or,Co,e,t,Ku,n,r,i,a],[AS]=xS();Vo.cleanup=e=>{};Vo.ref=e=>{let t=e;return{get:()=>t,set:n=>{t=n}}};Y=class{constructor(e,t={}){var g,h,u;Se(this,"machine",e),Se(this,"scope"),Se(this,"context"),Se(this,"prop"),Se(this,"state"),Se(this,"refs"),Se(this,"computed"),Se(this,"event",{type:""}),Se(this,"previousEvent",{type:""}),Se(this,"effects",new Map),Se(this,"transition",null),Se(this,"cleanups",[]),Se(this,"subscriptions",[]),Se(this,"userPropsRef"),Se(this,"getEvent",()=>v(p({},this.event),{current:()=>this.event,previous:()=>this.previousEvent})),Se(this,"getState",()=>v(p({},this.state),{matches:(...f)=>f.some(m=>yE(this.state.get(),m)),hasTag:f=>bE(this.machine,this.state.get(),f)})),Se(this,"debug",(...f)=>{this.machine.debug&&console.log(...f)}),Se(this,"notify",()=>{this.publish()}),Se(this,"send",f=>{this.status===ra.Started&&queueMicrotask(()=>{var S;if(!f)return;this.previousEvent=this.event,this.event=f,this.debug("send",f);let m=this.state.get(),P=f.type,{transitions:C,source:x}=mE(this.machine,m,P),T=this.choose(C);if(!T)return;this.transition=T;let b=Uu(this.machine,(S=T.target)!=null?S:m,x);this.debug("transition",T),b!==m?this.state.set(b):T.reenter?this.state.invoke(m,m):this.action(T.actions)})}),Se(this,"action",f=>{let m=Xe(f)?f(this.getParams()):f;if(!m)return;let P=m.map(C=>{var T,b;let x=(b=(T=this.machine.implementations)==null?void 0:T.actions)==null?void 0:b[C];return x||Ut(`[zag-js] No implementation found for action "${JSON.stringify(C)}"`),x});for(let C of P)C==null||C(this.getParams())}),Se(this,"guard",f=>{var m,P;return Xe(f)?f(this.getParams()):(P=(m=this.machine.implementations)==null?void 0:m.guards)==null?void 0:P[f](this.getParams())}),Se(this,"effect",f=>{let m=Xe(f)?f(this.getParams()):f;if(!m)return;let P=m.map(x=>{var b,y;let T=(y=(b=this.machine.implementations)==null?void 0:b.effects)==null?void 0:y[x];return T||Ut(`[zag-js] No implementation found for effect "${JSON.stringify(x)}"`),T}),C=[];for(let x of P){let T=x==null?void 0:x(this.getParams());T&&C.push(T)}return()=>C.forEach(x=>x==null?void 0:x())}),Se(this,"choose",f=>ia(f).find(m=>{let P=!m.guard;return sa(m.guard)?P=!!this.guard(m.guard):Xe(m.guard)&&(P=m.guard(this.getParams())),P})),Se(this,"subscribe",f=>(this.subscriptions.push(f),()=>{let m=this.subscriptions.indexOf(f);m>-1&&this.subscriptions.splice(m,1)})),Se(this,"status",ra.NotStarted),Se(this,"publish",()=>{this.callTrackers(),this.subscriptions.forEach(f=>f(this.service))}),Se(this,"trackers",[]),Se(this,"setupTrackers",()=>{var f,m;(m=(f=this.machine).watch)==null||m.call(f,this.getParams())}),Se(this,"callTrackers",()=>{this.trackers.forEach(({deps:f,fn:m})=>{let P=f.map(C=>C());Ie(m.prev,P)||(m(),m.prev=P)})}),Se(this,"getParams",()=>({state:this.getState(),context:this.context,event:this.getEvent(),prop:this.prop,send:this.send,action:this.action,guard:this.guard,track:(f,m)=>{m.prev=f.map(P=>P()),this.trackers.push({deps:f,fn:m})},refs:this.refs,computed:this.computed,flush:lE,scope:this.scope,choose:this.choose})),this.userPropsRef={current:t};let{id:n,ids:r,getRootNode:i}=In(t);this.scope=ES({id:n,ids:r,getRootNode:i});let a=f=>{var C,x;let m=In(this.userPropsRef.current);return((x=(C=e.props)==null?void 0:C.call(e,{props:On(m),scope:this.scope}))!=null?x:m)[f]};this.prop=a;let o=(g=e.context)==null?void 0:g.call(e,{prop:a,bindable:Vo,scope:this.scope,flush(f){queueMicrotask(f)},getContext(){return s},getComputed(){return l},getRefs(){return c},getEvent:this.getEvent.bind(this)});o&&Object.values(o).forEach(f=>{let m=Oo(f.ref,()=>this.notify());this.cleanups.push(m)});let s={get(f){return o==null?void 0:o[f].get()},set(f,m){o==null||o[f].set(m)},initial(f){return o==null?void 0:o[f].initial},hash(f){let m=o==null?void 0:o[f].get();return o==null?void 0:o[f].hash(m)}};this.context=s;let l=f=>(jt(e.computed,()=>"[zag-js] No computed object found on machine"),e.computed[f]({context:s,event:this.getEvent(),prop:a,refs:this.refs,scope:this.scope,computed:l}));this.computed=l;let c=kS((u=(h=e.refs)==null?void 0:h.call(e,{prop:a,context:s}))!=null?u:{});this.refs=c;let d=Vo(()=>({defaultValue:Uu(e,e.initialState({prop:a})),onChange:(f,m)=>{var x,T;let{exiting:P,entering:C}=vE(this.machine,m,f,(x=this.transition)==null?void 0:x.reenter);if(P.forEach(b=>{let y=this.effects.get(b.path);y==null||y(),this.effects.delete(b.path)}),P.forEach(b=>{var y;this.action((y=b.state)==null?void 0:y.exit)}),this.action((T=this.transition)==null?void 0:T.actions),C.forEach(b=>{var S;let y=this.effect((S=b.state)==null?void 0:S.effects);y&&this.effects.set(b.path,y)}),m===Tl){this.action(e.entry);let b=this.effect(e.effects);b&&this.effects.set(Tl,b)}C.forEach(b=>{var y;this.action((y=b.state)==null?void 0:y.entry)})}}));this.state=d,this.cleanups.push(Oo(this.state.ref,()=>this.notify()))}updateProps(e){let t=this.userPropsRef.current;this.userPropsRef.current=()=>{let n=In(t),r=In(e);return Dg(n,r)},this.notify()}start(){this.status=ra.Started,this.debug("initializing..."),this.state.invoke(this.state.initial,Tl),this.setupTrackers()}stop(){this.effects.forEach(e=>e==null?void 0:e()),this.effects.clear(),this.transition=null,this.action(this.machine.exit),this.cleanups.forEach(e=>e()),this.cleanups=[],this.subscriptions=[],this.status=ra.Stopped,this.debug("unmounting...")}get service(){return{state:this.getState(),send:this.send,context:this.context,prop:this.prop,scope:this.scope,refs:this.refs,computed:this.computed,event:this.getEvent(),getStatus:()=>this.status}}};Yu={onFocus:"onFocusin",onBlur:"onFocusout",onChange:"onInput",onDoubleClick:"onDblclick",htmlFor:"for",className:"class",defaultValue:"value",defaultChecked:"checked"},DS=new Set(["viewBox","preserveAspectRatio"]),LS=e=>{let t="";for(let n in e){let r=e[n];r!=null&&(n.startsWith("--")||(n=n.replace(/[A-Z]/g,i=>`-${i.toLowerCase()}`)),t+=`${n}:${r};`)}return t},MS=NS(e=>Object.entries(e).reduce((t,[n,r])=>{if(r===void 0)return t;if(n in Yu&&(n=Yu[n]),n==="style"&&typeof r=="object")return t.style=LS(r),t;let i=DS.has(n)?n:n.toLowerCase();return t[i]=r,t},{})),Eo=new WeakMap,Xu=new Set(["value","checked","selected"]),FS=new Set(["viewBox","preserveAspectRatio","clipPath","clipRule","fillRule","strokeWidth","strokeLinecap","strokeLinejoin","strokeDasharray","strokeDashoffset","strokeMiterlimit"]),_S=e=>e.tagName==="svg"||e.namespaceURI==="http://www.w3.org/2000/svg",So=(e,t)=>_S(e)&&FS.has(t)?t:t.toLowerCase();X=class{constructor(e,t){Z(this,"el");Z(this,"doc");Z(this,"machine");Z(this,"api");Z(this,"init",()=>{try{this.machine.start(),this.render()}finally{this.el.removeAttribute("data-loading")}this.machine.subscribe(()=>{this.api=this.initApi(),this.render()})});Z(this,"destroy",()=>{this.el.removeAttribute("data-loading"),this.machine.stop()});Z(this,"spreadProps",(e,t)=>{$S(e,t,this.machine.scope.id)});Z(this,"updateProps",e=>{this.machine.updateProps(e)});if(!e)throw new Error("Root element not found");this.el=e,this.doc=document,this.machine=this.initMachine(t),this.api=this.initApi()}zagConnect(e){return e(this.machine.service,MS)}},j=(e,t=[])=>({parts:(...n)=>{if(HS(t))return j(e,n);throw new Error("createAnatomy().parts(...) should only be called once. Did you mean to use .extendWith(...) ?")},extendWith:(...n)=>j(e,[...t,...n]),omit:(...n)=>j(e,t.filter(r=>!n.includes(r))),rename:n=>j(n,t),keys:()=>t,build:()=>[...new Set(t)].reduce((n,r)=>Object.assign(n,{[r]:{selector:[`&[data-scope="${ci(e)}"][data-part="${ci(r)}"]`,`& [data-scope="${ci(e)}"][data-part="${ci(r)}"]`].join(", "),attrs:{"data-scope":ci(e),"data-part":ci(r)}}}),{})}),ci=e=>e.replace(/([A-Z])([A-Z])/g,"$1-$2").replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase(),HS=e=>e.length===0});function ec(e,t,n){let r=e.getAttribute(t);if(r===null)throw new Error(`[corex] missing ${n} on #${e.id}`);return r}function ir(e,t,n){let r=ec(e,t,n),i=parseFloat(r);if(Number.isNaN(i))throw new Error(`[corex] invalid ${n} on #${e.id}`);return i}function ar(e){return{duration:ir(e,"data-anim-height-duration","data-anim-height-duration"),easing:ec(e,"data-anim-height-easing","data-anim-height-easing"),opacityStart:ir(e,"data-anim-height-opacity-start","data-anim-height-opacity-start"),opacityEnd:ir(e,"data-anim-height-opacity-end","data-anim-height-opacity-end"),blockInteraction:wn(e,"animHeightBlockInteraction")!==!1}}function tc(e){return{duration:ir(e,"data-anim-scale-duration","data-anim-scale-duration"),easing:ec(e,"data-anim-scale-easing","data-anim-scale-easing"),opacityStart:ir(e,"data-anim-scale-opacity-start","data-anim-scale-opacity-start"),opacityEnd:ir(e,"data-anim-scale-opacity-end","data-anim-scale-opacity-end"),scaleStart:ir(e,"data-anim-transform-scale-start","data-anim-transform-scale-start"),scaleEnd:ir(e,"data-anim-transform-scale-end","data-anim-transform-scale-end"),blockInteraction:wn(e,"animScaleBlockInteraction")!==!1}}function Lg(e){var n;let t=((n=va.get(e))!=null?n:0)+1;va.set(e,t),t===1&&(e.style.pointerEvents="none")}function Mg(e){var n;let t=((n=va.get(e))!=null?n:0)-1;t<=0?(va.delete(e),e.style.removeProperty("pointer-events")):va.set(e,t)}function BS(e,t,n){let r=e.dataset.part==="backdrop",i=(n==null?void 0:n.scale)!==!1&&!r&&(t.scaleStart!==t.scaleEnd||t.scaleStart!==1||t.scaleEnd!==1);e.style.opacity=String(t.opacityStart),i?e.style.transform=`scale(${t.scaleStart})`:e.style.removeProperty("transform")}function GS(e,t){e.style.opacity=String(t.opacityStart),e.style.height="0px",e.style.overflow="hidden",e.style.removeProperty("transform")}function kr(e){let t=p({},e);return delete t.hidden,t}function Fg(e){e.style.opacity="",e.style.height="",e.style.overflow="",e.style.removeProperty("transform")}function Uo(e,t,n){e.querySelectorAll(t).forEach(r=>{r.dataset.state==="open"?Fg(r):GS(r,n)})}function _g(e,t,n,r){e.querySelectorAll(t).forEach(i=>{i.dataset.state==="open"?Fg(i):BS(i,n,r==null?void 0:r(i))})}function Pi(e){let{rootEl:t,selector:n,opts:r,isOpen:i,wasOpen:a}=e,o=r.blockInteraction?t:void 0;t.querySelectorAll(n).forEach(s=>{let l=a?a(s):s.dataset.state==="open",c=i(s);l!==c&&US(s,c,r,o)})}function US(e,t,n,r){e.getAnimations().forEach(h=>h.cancel());let i=t?n.opacityStart:n.opacityEnd,a=t?n.opacityEnd:n.opacityStart;e.style.overflow="hidden",e.style.height="auto";let o=`${e.scrollHeight}px`;e.style.height=t?"0px":o;let s={opacity:i,height:t?"0px":o},l={opacity:a,height:t?o:"0px"};r&&n.blockInteraction&&Lg(r);let c=e.animate([s,l],{duration:n.duration*1e3,easing:n.easing,fill:"forwards"}),d=!1,g=()=>{d||(d=!0,c.cancel(),r&&n.blockInteraction&&Mg(r),t?(e.style.height="auto",e.style.opacity="",e.style.overflow=""):(e.style.height="0px",e.style.opacity=String(n.opacityStart),e.style.overflow="hidden"))};return c.onfinish=()=>{g()},c.oncancel=()=>{g()},c}function nc(e,t,n,r){e.getAnimations().forEach(m=>m.cancel());let i=e.dataset.part==="backdrop",a=!i&&(n.scaleStart!==n.scaleEnd||n.scaleStart!==1||n.scaleEnd!==1),o=t?n.opacityStart:n.opacityEnd,s=t?n.opacityEnd:n.opacityStart,l=t?n.scaleStart:n.scaleEnd,c=t?n.scaleEnd:n.scaleStart,d={opacity:o},g={opacity:s};a&&(d.transform=`scale(${l})`,g.transform=`scale(${c})`),r&&n.blockInteraction&&Lg(r);let h=e.animate([d,g],{duration:n.duration*1e3,easing:n.easing,fill:"forwards"}),u=!1,f=()=>{u||(u=!0,h.cancel(),r&&n.blockInteraction&&Mg(r),t?(e.style.opacity="",e.style.removeProperty("transform")):(e.style.opacity=String(n.opacityStart),i?e.style.removeProperty("transform"):a?e.style.transform=`scale(${n.scaleStart})`:e.style.removeProperty("transform")))};return h.onfinish=()=>{f()},h.oncancel=()=>{f()},h}var va,qo=ne(()=>{"use strict";se();va=new WeakMap});function ce(e){let t=[];return{add(n,r){t.push(e.handleEvent(n,r))},teardown(){for(let n of t)e.removeHandleEvent(n);t.length=0}}}function de(e){let t=[];return{add(n,r){let i=r;e.addEventListener(n,i),t.push({eventName:n,listener:i})},teardown(){for(let{eventName:n,listener:r}of t)e.removeEventListener(n,r);t.length=0}}}var _e=ne(()=>{"use strict"});function we(e){var t,n,r;if(e&&typeof e=="object"){let i=e,a=(r=(n=(t=i.respond_to)!=null?t:i.respondTo)!=null?n:typeof i.respond_to=="string"?i.respond_to:void 0)!=null?r:typeof i.respondTo=="string"?i.respondTo:void 0;if(a==="server"||a==="client"||a==="both")return a}return"server"}function B(e,t){return t==null||t===""?!0:e===t}function Wo(e){var r;if(!e||typeof e!="object")return;let t=e,n=(r=t.checked)!=null?r:t.checked;if(n===!0||n==="true"||n===1)return!0;if(n===!1||n==="false"||n===0)return!1}function $g(e){var r;if(!e||typeof e!="object")return;let t=e,n=(r=t.visible)!=null?r:t.visible;if(n===!0||n==="true"||n===1)return!0;if(n===!1||n==="false"||n===0)return!1}function G(e){if(!e||typeof e!="object")return;let t=e,n;for(let r of Object.keys(t)){let i=t[r];if(!(typeof i!="string"||i==="")){if(r==="id"||r==="Id")n=i;else if(r.includes("_id")||r.length>2&&r.endsWith("Id"))return i}}return n}function Hg(e){var r;if(!e||typeof e!="object")return"";let t=e,n=(r=t.value)!=null?r:t.value;return n==null?"":String(n)}function K(e){let{el:t,canPushServer:n,pushEvent:r,payload:i,serverEventName:a,clientEventName:o}=e;a&&n&&r(a,p({},i)),o&&t.dispatchEvent(new CustomEvent(o,{bubbles:!0,detail:i}))}function Ke(e){let{respondTo:t,canPushServer:n,pushEvent:r,serverEventName:i,serverPayload:a,el:o,domEventName:s,domDetail:l}=e;t!=="client"&&n&&r(i,a),t!=="server"&&o.dispatchEvent(new CustomEvent(s,{bubbles:!0,detail:l}))}var Ce=ne(()=>{"use strict"});var Bg={};fe(Bg,{Accordion:()=>nP});function ZS(e,t){let{send:n,context:r,prop:i,scope:a,computed:o}=e,s=r.get("focusedValue"),l=r.get("value"),c=i("multiple");function d(h){let u=h;!c&&u.length>1&&(u=[u[0]]),n({type:"VALUE.SET",value:u})}function g(h){var u;return{expanded:l.includes(h.value),focused:s===h.value,disabled:!!((u=h.disabled)!=null?u:i("disabled"))}}return{focusedValue:s,value:l,setValue:d,getItemState:g,getRootProps(){return t.element(v(p({},ya.root.attrs),{dir:i("dir"),id:Ko(a),"data-orientation":i("orientation")}))},getItemProps(h){let u=g(h);return t.element(v(p({},ya.item.attrs),{dir:i("dir"),id:WS(a,h.value),"data-state":u.expanded?"open":"closed","data-focus":E(u.focused),"data-disabled":E(u.disabled),"data-orientation":i("orientation")}))},getItemContentProps(h){let u=g(h);return t.element(v(p({},ya.itemContent.attrs),{dir:i("dir"),role:"region",id:rc(a,h.value),"aria-labelledby":jo(a,h.value),hidden:!u.expanded,"data-state":u.expanded?"open":"closed","data-disabled":E(u.disabled),"data-focus":E(u.focused),"data-orientation":i("orientation")}))},getItemIndicatorProps(h){let u=g(h);return t.element(v(p({},ya.itemIndicator.attrs),{dir:i("dir"),"aria-hidden":!0,"data-state":u.expanded?"open":"closed","data-disabled":E(u.disabled),"data-focus":E(u.focused),"data-orientation":i("orientation")}))},getItemTriggerProps(h){let{value:u}=h,f=g(h);return t.button(v(p({},ya.itemTrigger.attrs),{type:"button",dir:i("dir"),id:jo(a,u),"aria-controls":rc(a,u),"data-controls":rc(a,u),"aria-expanded":f.expanded,disabled:f.disabled,"data-orientation":i("orientation"),"aria-disabled":f.disabled,"data-state":f.expanded?"open":"closed","data-focus":E(f.focused),"data-ownedby":Ko(a),onFocus(){f.disabled||n({type:"TRIGGER.FOCUS",value:u})},onBlur(){f.disabled||n({type:"TRIGGER.BLUR"})},onClick(m){f.disabled||(yt()&&m.currentTarget.focus(),n({type:"TRIGGER.CLICK",value:u}))},onKeyDown(m){if(m.defaultPrevented||f.disabled)return;let P={ArrowDown(){o("isHorizontal")||n({type:"GOTO.NEXT",value:u})},ArrowUp(){o("isHorizontal")||n({type:"GOTO.PREV",value:u})},ArrowRight(){o("isHorizontal")&&n({type:"GOTO.NEXT",value:u})},ArrowLeft(){o("isHorizontal")&&n({type:"GOTO.PREV",value:u})},Home(){n({type:"GOTO.FIRST",value:u})},End(){n({type:"GOTO.LAST",value:u})}},C=ve(m,{dir:i("dir"),orientation:i("orientation")}),x=P[C];x&&(x(m),m.preventDefault())}}))}}}var qS,ya,Ko,WS,rc,jo,KS,zo,jS,zS,YS,XS,JS,QS,eP,tP,nP,Gg=ne(()=>{"use strict";Il();qo();_e();Ce();se();qS=j("accordion").parts("root","item","itemTrigger","itemContent","itemIndicator"),ya=qS.build(),Ko=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`accordion:${e.id}`},WS=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.item)==null?void 0:r.call(n,t))!=null?i:`accordion:${e.id}:item:${t}`},rc=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemContent)==null?void 0:r.call(n,t))!=null?i:`accordion:${e.id}:content:${t}`},jo=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemTrigger)==null?void 0:r.call(n,t))!=null?i:`accordion:${e.id}:trigger:${t}`},KS=e=>e.getById(Ko(e)),zo=e=>{let n=`[data-controls][data-ownedby='${CSS.escape(Ko(e))}']:not([disabled])`;return xe(KS(e),n)},jS=e=>Tt(zo(e)),zS=e=>qt(zo(e)),YS=(e,t)=>Ei(zo(e),jo(e,t)),XS=(e,t)=>Si(zo(e),jo(e,t));({and:JS,not:QS}=Te()),eP=te({props({props:e}){return p({collapsible:!1,multiple:!1,orientation:"vertical",defaultValue:[]},e)},initialState(){return"idle"},context({prop:e,bindable:t}){return{focusedValue:t(()=>({defaultValue:null,sync:!0,onChange(n){var r;(r=e("onFocusChange"))==null||r({value:n})}})),value:t(()=>({defaultValue:e("defaultValue"),value:e("value"),onChange(n){var r;(r=e("onValueChange"))==null||r({value:n})}}))}},computed:{isHorizontal:({prop:e})=>e("orientation")==="horizontal"},on:{"VALUE.SET":{actions:["setValue"]}},states:{idle:{on:{"TRIGGER.FOCUS":{target:"focused",actions:["setFocusedValue"]}}},focused:{on:{"GOTO.NEXT":{actions:["focusNextTrigger"]},"GOTO.PREV":{actions:["focusPrevTrigger"]},"TRIGGER.CLICK":[{guard:JS("isExpanded","canToggle"),actions:["collapse"]},{guard:QS("isExpanded"),actions:["expand"]}],"GOTO.FIRST":{actions:["focusFirstTrigger"]},"GOTO.LAST":{actions:["focusLastTrigger"]},"TRIGGER.BLUR":{target:"idle",actions:["clearFocusedValue"]}}}},implementations:{guards:{canToggle:({prop:e})=>!!e("collapsible")||!!e("multiple"),isExpanded:({context:e,event:t})=>e.get("value").includes(t.value)},actions:{collapse({context:e,prop:t,event:n}){let r=t("multiple")?wt(e.get("value"),n.value):[];e.set("value",r)},expand({context:e,prop:t,event:n}){let r=t("multiple")?mt(e.get("value"),n.value):[n.value];e.set("value",r)},focusFirstTrigger({scope:e}){var t;(t=jS(e))==null||t.focus()},focusLastTrigger({scope:e}){var t;(t=zS(e))==null||t.focus()},focusNextTrigger({context:e,scope:t}){let n=e.get("focusedValue");if(!n)return;let r=YS(t,n);r==null||r.focus()},focusPrevTrigger({context:e,scope:t}){let n=e.get("focusedValue");if(!n)return;let r=XS(t,n);r==null||r.focus()},setFocusedValue({context:e,event:t}){e.set("focusedValue",t.value)},clearFocusedValue({context:e}){e.set("focusedValue",null)},setValue({context:e,event:t}){e.set("value",t.value)},coarseValue({context:e,prop:t}){!t("multiple")&&e.get("value").length>1&&(Ut("The value of accordion should be a single value when multiple is false."),e.set("value",[e.get("value")[0]]))}}}}),tP=class extends X{initMachine(e){return new Y(eP,e)}initApi(){return this.zagConnect(ZS)}render(){var a,o;let e=(a=this.el.querySelector('[data-scope="accordion"][data-part="root"]'))!=null?a:this.el;this.spreadProps(e,this.api.getRootProps());let t=this.el.id,n=t?`accordion:${t}:item:`:"",r=e.querySelectorAll('[data-scope="accordion"][data-part="item"]'),i=(o=this.el.dataset.animation)!=null?o:"instant";for(let s of r){if(n&&!s.id.startsWith(n))continue;let l=s.dataset.value;if(!l)continue;let c=s.dataset.disabled==="";this.spreadProps(s,this.api.getItemProps({value:l,disabled:c}));let d=s.querySelector('[data-scope="accordion"][data-part="item-trigger"]');d&&this.spreadProps(d,this.api.getItemTriggerProps({value:l,disabled:c}));let g=s.querySelector('[data-scope="accordion"][data-part="item-indicator"]');g&&this.spreadProps(g,this.api.getItemIndicatorProps({value:l,disabled:c}));let h=s.querySelector('[data-scope="accordion"][data-part="item-content"]');h&&(i==="instant"?this.spreadProps(h,this.api.getItemContentProps({value:l,disabled:c})):(i==="js"||i==="custom")&&(this.spreadProps(h,kr(this.api.getItemContentProps({value:l,disabled:c}))),h.removeAttribute("hidden")))}}},nP={mounted(){var d,g;let e=this.el,t=this,n=this.pushEvent.bind(this),r=()=>J(this.liveSocket);t.lastValue=I(e,"controlled")?(d=ie(e,"value"))!=null?d:[]:(g=ie(e,"defaultValue"))!=null?g:[];let i=new tP(e,v(p({id:e.id},I(e,"controlled")?{value:ie(e,"value")}:{defaultValue:ie(e,"defaultValue")}),{collapsible:I(e,"collapsible"),multiple:I(e,"multiple"),orientation:V(e,"orientation"),dir:U(e),onValueChange:h=>{var x,T;let u=(x=h.value)!=null?x:[],f=(T=t.lastValue)!=null?T:[],{added:m,removed:P}=ea(u,f);t.lastValue=u;let C={id:e.id,value:u,previousValue:f,added:m,removed:P};K({el:e,canPushServer:r(),pushEvent:n,payload:C,serverEventName:V(e,"onValueChange"),clientEventName:V(e,"onValueChangeClient")}),e.dataset.animation==="js"&&!I(e,"controlled")&&Pi({rootEl:e,selector:'[data-scope="accordion"][data-part="item-content"]',opts:ar(e),isOpen:b=>{let y=b.closest('[data-scope="accordion"][data-part="item"]'),S=y==null?void 0:y.dataset.value;return!!S&&u.includes(S)}})},onFocusChange:h=>{var u;K({el:e,canPushServer:r(),pushEvent:n,payload:{id:e.id,value:(u=h.value)!=null?u:null},serverEventName:V(e,"onFocusChange"),clientEventName:V(e,"onFocusChangeClient")})}}));if(i.init(),this.accordion=i,e.dataset.animation==="js"){let h=ar(e);Uo(e,'[data-scope="accordion"][data-part="item-content"]',h)}let a=h=>{let u=i.api.value;Ke({respondTo:h,canPushServer:r(),pushEvent:n,serverEventName:"accordion_value_response",serverPayload:{id:e.id,value:u},el:e,domEventName:"accordion-value",domDetail:{id:e.id,value:u}})},o=h=>{let u=i.api.focusedValue;Ke({respondTo:h,canPushServer:r(),pushEvent:n,serverEventName:"accordion_focused_response",serverPayload:{id:e.id,value:u},el:e,domEventName:"accordion-focused",domDetail:{id:e.id,value:u}})},s=(h,u,f)=>{let m={value:h,disabled:u},P=i.api.getItemState(m);Ke({respondTo:f,canPushServer:r(),pushEvent:n,serverEventName:"accordion_item_state_response",serverPayload:{id:e.id,value:h,state:{expanded:P.expanded,focused:P.focused,disabled:P.disabled}},el:e,domEventName:"accordion-item-state",domDetail:{id:e.id,value:h,state:P}})},l=de(e);this.domRegistry=l,l.add("corex:accordion:set-value",h=>{i.api.setValue(h.detail.value)}),l.add("corex:accordion:value",h=>{a(we(h.detail))}),l.add("corex:accordion:focused",h=>{o(we(h.detail))}),l.add("corex:accordion:item-state",h=>{let u=h.detail,f=u==null?void 0:u.value;typeof f!="string"||f===""||s(f,(u==null?void 0:u.disabled)===!0,we(u))});let c=ce(this);this.handleRegistry=c,c.add("accordion_set_value",h=>{B(e.id,G(h))&&i.api.setValue(h.value)}),c.add("accordion_value",h=>{B(e.id,G(h))&&a(we(h))}),c.add("accordion_focused",h=>{B(e.id,G(h))&&o(we(h))}),c.add("accordion_item_state",h=>{B(e.id,G(h))&&(typeof(h==null?void 0:h.value)!="string"||h.value===""||s(h.value,h.disabled===!0,we(h)))})},beforeUpdate(){var e;I(this.el,"controlled")&&this.el.dataset.animation==="js"&&(this.previousValue=(e=ie(this.el,"value"))!=null?e:[])},updated(){var t,n,r,i;let e=I(this.el,"controlled");if(e){let a=(t=ie(this.el,"value"))!=null?t:[],o=(r=(n=this.previousValue)!=null?n:this.lastValue)!=null?r:[];this.previousValue=void 0,this.lastValue=a,this.el.dataset.animation==="js"&&Pi({rootEl:this.el,selector:'[data-scope="accordion"][data-part="item-content"]',opts:ar(this.el),wasOpen:s=>{let l=s.closest('[data-scope="accordion"][data-part="item"]'),c=l==null?void 0:l.dataset.value;return!!c&&o.includes(c)},isOpen:s=>{let l=s.closest('[data-scope="accordion"][data-part="item"]'),c=l==null?void 0:l.dataset.value;return!!c&&a.includes(c)}})}(i=this.accordion)==null||i.updateProps(v(p({id:this.el.id},e?{value:ie(this.el,"value")}:{defaultValue:ie(this.el,"defaultValue")}),{collapsible:I(this.el,"collapsible"),multiple:I(this.el,"multiple"),orientation:V(this.el,"orientation"),dir:U(this.el)}))},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.accordion)==null||n.destroy()}}});function Ug(e,t,n){return I(e,"controlled")?{value:Yo(V(e,t))}:{defaultValue:Yo(V(e,n))}}function qg(e,t,n){return I(e,"controlled")?{value:Yo(V(e,t))}:{defaultValue:Yo(V(e,n))}}function ic(e){let t=q(e,"step");return I(e,"controlled")?{value:q(e,"value"),step:t}:{defaultValue:q(e,"defaultValue"),step:t}}var Yo,ac=ne(()=>{"use strict";se();Yo=e=>e===void 0?null:e});function Nn(e){let{x:t,y:n,width:r,height:i}=e,a=t+r/2,o=n+i/2;return{x:t,y:n,width:r,height:i,minX:t,minY:n,maxX:t+r,maxY:n+i,midX:a,midY:o,center:Nr(a,o)}}function Kg(e){let t=Nr(e.minX,e.minY),n=Nr(e.maxX,e.minY),r=Nr(e.maxX,e.maxY),i=Nr(e.minX,e.maxY);return{top:t,right:n,bottom:r,left:i}}var rP,iP,on,Nr,oc,Wg,Xo=ne(()=>{"use strict";rP=Object.defineProperty,iP=(e,t,n)=>t in e?rP(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,on=(e,t,n)=>iP(e,typeof t!="symbol"?t+"":t,n),Nr=(e,t)=>({x:e,y:t}),oc=(e,t)=>t?Nr(e.x-t.x,e.y-t.y):e,Wg=(e,t)=>Nr(e.x+t.x,e.y+t.y)});var Xg,jg,Zo,aP,oP,sP,lP,sc,or,lc,Zg,Jg,Qg,Ci,cP,Oe,eh,th,zg,Ii,ba,cc,Ve,Yg,nh,rh,ih,Re,Nt=ne(()=>{"use strict";({floor:Xg,abs:jg,round:Zo,min:aP,max:oP,pow:sP,sign:lP}=Math),sc=e=>Number.isNaN(e),or=e=>sc(e)?0:e,lc=(e,t)=>(e%t+t)%t,Zg=(e,t)=>(e%t+t)%t,Jg=(e,t)=>or(e)>=t,Qg=(e,t)=>or(e)<=t,Ci=(e,t,n)=>{let r=or(e),i=t==null||r>=t,a=n==null||r<=n;return i&&a},cP=(e,t,n)=>Zo((or(e)-t)/n)*n+t,Oe=(e,t,n)=>aP(oP(or(e),t),n),eh=(e,t,n)=>(or(e)-t)/(n-t),th=(e,t,n,r)=>Oe(cP(e*(n-t)+t,t,r),t,n),zg=(e,t)=>{let n=e,r=t.toString(),i=r.indexOf("."),a=i>=0?r.length-i:0;if(a>0){let o=sP(10,a);n=Zo(n*o)/o}return n},Ii=(e,t)=>typeof t=="number"?Xg(e*t+.5)/t:Zo(e),ba=(e,t,n,r)=>{let i=t!=null?Number(t):0,a=Number(n),o=(e-i)%r,s=jg(o)*2>=r?e+lP(o)*(r-jg(o)):e-o;if(s=zg(s,r),!sc(i)&&sa){let l=Xg((a-i)/r),c=i+l*r;s=l<=0||ce[t]===n?e:[...e.slice(0,t),n,...e.slice(t+1)],Ve=(e,t=0,n=10)=>{let r=Math.pow(n,t);return Zo(e*r)/r},Yg=e=>{if(!Number.isFinite(e))return 0;let t=1,n=0;for(;Math.round(e*t)/t!==e;)t*=10,n+=1;return n},nh=(e,t,n)=>{let r=t==="+"?e+n:e-n;if(e%1!==0||n%1!==0){let i=10**Math.max(Yg(e),Yg(n));e=Math.round(e*i),n=Math.round(n*i),r=t==="+"?e+n:e-n,r/=i}return r},rh=(e,t)=>nh(or(e),"+",t),ih=(e,t)=>nh(or(e),"-",t),Re=e=>typeof e=="number"?`${e}px`:e});var hh={};fe(hh,{AngleSlider:()=>SP});function fP(e,t,n=e.center){let r=t.x-n.x,i=t.y-n.y;return 360-(Math.atan2(r,i)*(180/Math.PI)+180)}function uh(e){return(360-e)%360}function hc(e,t,n,r){let i=Nn(e.getBoundingClientRect()),a=fP(i,t);return n!=null?a-n:(r==="rtl"&&(a=uh(a)),a)}function mP(e,t,n,r,i){if(n==null)return hc(e,t,null,i);let a=hc(e,t),o=r+n;return i==="rtl"?r+o-a:a-n}function oh(e,t){return t==="rtl"?uh(e):e}function gh(e){return Math.min(Math.max(e,Jo),Qo)}function vP(e,t){let n=gh(e),r=Math.ceil(n/t),i=Math.round(n/t);return r>=n/t?r*t===Qo?Jo:r*t:i*t}function sh(e,t){return ba(e,Jo,Qo,t)}function yP(e,t){let{state:n,send:r,context:i,prop:a,computed:o,scope:s}=e,l=n.matches("dragging"),c=i.get("value"),d=o("valueAsDegree"),g=a("dir"),h=oh(c,g),u=a("disabled"),f=a("invalid"),m=a("readOnly"),P=o("interactive"),C=a("aria-label"),x=a("aria-labelledby");return{value:c,valueAsDegree:d,dragging:l,setValue(T){r({type:"VALUE.SET",value:T})},getRootProps(){return t.element(v(p({},Dr.root.attrs),{id:uP(s),dir:a("dir"),"data-disabled":E(u),"data-invalid":E(f),"data-readonly":E(m),style:{"--value":c,"--angle":`${h}deg`}}))},getLabelProps(){return t.label(v(p({},Dr.label.attrs),{id:ah(s),htmlFor:uc(s),dir:a("dir"),"data-disabled":E(u),"data-invalid":E(f),"data-readonly":E(m),onClick(T){var b;P&&(T.preventDefault(),(b=gc(s))==null||b.focus())}}))},getHiddenInputProps(){return t.element({type:"hidden",value:c,name:a("name"),id:uc(s),dir:a("dir")})},getControlProps(){return t.element(v(p({},Dr.control.attrs),{role:"presentation",id:dh(s),dir:a("dir"),"data-disabled":E(u),"data-invalid":E(f),"data-readonly":E(m),onPointerDown(T){if(!P||!Ee(T))return;let b=Ze(T),y=T.currentTarget,S=gc(s),A=zt(T).composedPath(),N=S&&A.includes(S),O=null;N&&(O=hc(y,b)-c),r({type:"CONTROL.POINTER_DOWN",point:b,angularOffset:O}),T.stopPropagation()},style:{touchAction:"none",userSelect:"none",WebkitUserSelect:"none"}}))},getThumbProps(){return t.element(v(p({},Dr.thumb.attrs),{id:ch(s),role:"slider",dir:a("dir"),"aria-label":C,"aria-labelledby":x!=null?x:ah(s),"aria-valuemax":360,"aria-valuemin":0,"aria-valuenow":c,tabIndex:m||P?0:void 0,"data-disabled":E(u),"data-invalid":E(f),"data-readonly":E(m),onFocus(){r({type:"THUMB.FOCUS"})},onBlur(){r({type:"THUMB.BLUR"})},onKeyDown(T){if(!P)return;let b=xn(T)*a("step"),y={ArrowLeft(){r({type:"THUMB.ARROW_DEC",step:b})},ArrowUp(){r({type:"THUMB.ARROW_DEC",step:b})},ArrowRight(){r({type:"THUMB.ARROW_INC",step:b})},ArrowDown(){r({type:"THUMB.ARROW_INC",step:b})},Home(){r({type:"THUMB.HOME"})},End(){r({type:"THUMB.END"})}},S=ve(T,{dir:a("dir"),orientation:"horizontal"}),A=y[S];A&&(A(T),T.preventDefault())},style:{rotate:"var(--angle)"}}))},getValueTextProps(){return t.element(v(p({},Dr.valueText.attrs),{id:gP(s),dir:a("dir")}))},getMarkerGroupProps(){return t.element(v(p({},Dr.markerGroup.attrs),{dir:a("dir")}))},getMarkerProps(T){let b;T.valuec?b="over-value":b="at-value";let y=oh(T.value,g);return t.element(v(p({},Dr.marker.attrs),{dir:a("dir"),"data-value":T.value,"data-state":b,"data-disabled":E(u),style:{"--marker-value":T.value,"--marker-display-value":y,rotate:"calc(var(--marker-display-value) * 1deg)"}}))}}}function lh(e,t){return{id:e.id,value:t.value,valueAsDegree:t.valueAsDegree}}function dc(e,t){queueMicrotask(()=>{let n=t(),r=e.querySelector('[data-scope="angle-slider"][data-part="hidden-input"]');if(!r)return;let i=n.api.value;String(r.value)!==String(i)&&(r.value=String(i)),r.dispatchEvent(new Event("input",{bubbles:!0})),r.dispatchEvent(new Event("change",{bubbles:!0}))})}var dP,Dr,uP,ch,uc,dh,gP,ah,hP,pP,gc,Jo,Qo,bP,EP,SP,ph=ne(()=>{"use strict";ac();Xo();Nt();_e();Ce();se();dP=j("angle-slider").parts("root","label","thumb","valueText","control","track","markerGroup","marker"),Dr=dP.build(),uP=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`angle-slider:${e.id}`},ch=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.thumb)!=null?n:`angle-slider:${e.id}:thumb`},uc=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.hiddenInput)!=null?n:`angle-slider:${e.id}:input`},dh=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.control)!=null?n:`angle-slider:${e.id}:control`},gP=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.valueText)!=null?n:`angle-slider:${e.id}:value-text`},ah=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`angle-slider:${e.id}:label`},hP=e=>e.getById(uc(e)),pP=e=>e.getById(dh(e)),gc=e=>e.getById(ch(e));Jo=0,Qo=359;bP=te({props({props:e}){return p({step:1,defaultValue:0},e)},context({prop:e,bindable:t}){return{value:t(()=>({defaultValue:e("defaultValue"),value:e("value"),onChange(n){var r;(r=e("onValueChange"))==null||r({value:n,valueAsDegree:`${n}deg`})}}))}},refs(){return{thumbDragOffset:null}},computed:{interactive:({prop:e})=>!(e("disabled")||e("readOnly")),valueAsDegree:({context:e})=>`${e.get("value")}deg`},watch({track:e,context:t,action:n}){e([()=>t.get("value")],()=>{n(["syncInputElement"])})},initialState(){return"idle"},on:{"VALUE.SET":{actions:["setValue"]}},states:{idle:{on:{"CONTROL.POINTER_DOWN":{target:"dragging",actions:["setThumbDragOffset","setPointerValue","focusThumb"]},"THUMB.FOCUS":{target:"focused"}}},focused:{on:{"CONTROL.POINTER_DOWN":{target:"dragging",actions:["setThumbDragOffset","setPointerValue","focusThumb"]},"THUMB.ARROW_DEC":{actions:["decrementValue","invokeOnChangeEnd"]},"THUMB.ARROW_INC":{actions:["incrementValue","invokeOnChangeEnd"]},"THUMB.HOME":{actions:["setValueToMin","invokeOnChangeEnd"]},"THUMB.END":{actions:["setValueToMax","invokeOnChangeEnd"]},"THUMB.BLUR":{target:"idle"}}},dragging:{entry:["focusThumb"],effects:["trackPointerMove"],on:{"DOC.POINTER_UP":{target:"focused",actions:["invokeOnChangeEnd","clearThumbDragOffset"]},"DOC.POINTER_MOVE":{actions:["setPointerValue"]}}}},implementations:{effects:{trackPointerMove({scope:e,send:t}){return an(e.getDoc(),{onPointerMove(n){t({type:"DOC.POINTER_MOVE",point:n.point})},onPointerUp(){t({type:"DOC.POINTER_UP"})}})}},actions:{syncInputElement({scope:e,context:t}){let n=hP(e);He(n,t.get("value").toString())},invokeOnChangeEnd({context:e,prop:t,computed:n}){var r;(r=t("onValueChangeEnd"))==null||r({value:e.get("value"),valueAsDegree:n("valueAsDegree")})},setPointerValue({scope:e,event:t,context:n,prop:r,refs:i}){let a=pP(e);if(!a)return;let o=i.get("thumbDragOffset"),s=n.get("value"),l=mP(a,t.point,o,s,r("dir"));n.set("value",vP(l,r("step")))},setValueToMin({context:e}){e.set("value",Jo)},setValueToMax({context:e}){e.set("value",Qo)},setValue({context:e,event:t}){e.set("value",gh(t.value))},decrementValue({context:e,event:t,prop:n}){var i;let r=sh(e.get("value")-t.step,(i=t.step)!=null?i:n("step"));e.set("value",r)},incrementValue({context:e,event:t,prop:n}){var i;let r=sh(e.get("value")+t.step,(i=t.step)!=null?i:n("step"));e.set("value",r)},focusThumb({scope:e}){$(()=>{var t;(t=gc(e))==null||t.focus({preventScroll:!0})})},setThumbDragOffset({refs:e,event:t}){var n;e.set("thumbDragOffset",(n=t.angularOffset)!=null?n:null)},clearThumbDragOffset({refs:e}){e.set("thumbDragOffset",null)}}}}),EP=class extends X{initMachine(e){return new Y(bP,e)}initApi(){return this.zagConnect(yP)}render(){var s,l;let e=(s=this.el.querySelector('[data-scope="angle-slider"][data-part="root"]'))!=null?s:this.el;this.spreadProps(e,this.api.getRootProps());let t=this.el.querySelector('[data-scope="angle-slider"][data-part="label"]');t&&this.spreadProps(t,this.api.getLabelProps());let n=this.el.querySelector('[data-scope="angle-slider"][data-part="hidden-input"]');n&&this.spreadProps(n,this.api.getHiddenInputProps());let r=this.el.querySelector('[data-scope="angle-slider"][data-part="control"]');r&&this.spreadProps(r,this.api.getControlProps());let i=this.el.querySelector('[data-scope="angle-slider"][data-part="thumb"]');i&&this.spreadProps(i,this.api.getThumbProps());let a=this.el.querySelector('[data-scope="angle-slider"][data-part="value-text"]');if(a){this.spreadProps(a,this.api.getValueTextProps());let c=a.querySelector('[data-scope="angle-slider"][data-part="value"]'),d=this.el.dataset.valueTextAs,g=String(d==="raw"?this.api.value:(l=this.api.valueAsDegree)!=null?l:this.api.value);c&&c.textContent!==g&&(c.textContent=g)}let o=this.el.querySelector('[data-scope="angle-slider"][data-part="marker-group"]');o&&this.spreadProps(o,this.api.getMarkerGroupProps()),this.el.querySelectorAll('[data-scope="angle-slider"][data-part="marker"]').forEach(c=>{let d=c.dataset.value;if(d==null)return;let g=Number(d);Number.isNaN(g)||this.spreadProps(c,this.api.getMarkerProps({value:g}))})}};SP={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>J(this.liveSocket),r=new EP(e,v(p({id:e.id},ic(e)),{disabled:I(e,"disabled"),readOnly:I(e,"readOnly"),invalid:I(e,"invalid"),name:V(e,"name"),dir:U(e),"aria-label":V(e,"aria-label"),"aria-labelledby":V(e,"aria-labelledby"),onValueChange:s=>{K({el:e,canPushServer:n(),pushEvent:t,payload:lh(e,s),serverEventName:V(e,"onValueChange"),clientEventName:V(e,"onValueChangeClient")})},onValueChangeEnd:s=>{K({el:e,canPushServer:n(),pushEvent:t,payload:lh(e,s),serverEventName:V(e,"onValueChangeEnd"),clientEventName:V(e,"onValueChangeEndClient")}),dc(e,()=>r)}}));r.init(),this.angleSlider=r;let i=s=>{Ke({respondTo:s,canPushServer:n(),pushEvent:t,serverEventName:"angle_slider_value_response",serverPayload:{id:e.id,value:r.api.value,valueAsDegree:r.api.valueAsDegree,dragging:r.api.dragging},el:e,domEventName:"angle-slider-value",domDetail:{id:e.id,value:r.api.value,valueAsDegree:r.api.valueAsDegree,dragging:r.api.dragging}})},a=de(e);this.domRegistry=a,a.add("corex:angle-slider:set-value",s=>{r.api.setValue(s.detail.value),dc(e,()=>r)}),a.add("corex:angle-slider:value",s=>{i(we(s.detail))});let o=ce(this);this.handleRegistry=o,o.add("angle_slider_set_value",s=>{B(e.id,G(s))&&(r.api.setValue(s.value),dc(e,()=>r))}),o.add("angle_slider_value",s=>{B(e.id,G(s))&&i(we(s))})},updated(){var e;(e=this.angleSlider)==null||e.updateProps(v(p({id:this.el.id},ic(this.el)),{disabled:I(this.el,"disabled"),readOnly:I(this.el,"readOnly"),invalid:I(this.el,"invalid"),name:V(this.el,"name"),dir:U(this.el)}))},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.angleSlider)==null||n.destroy()}}});var vh={};fe(vh,{Avatar:()=>AP});function TP(e,t){let{state:n,send:r,prop:i,scope:a}=e,o=n.matches("loaded");return{loaded:o,setSrc(s){let l=fc(a);l==null||l.setAttribute("src",s)},setLoaded(){r({type:"img.loaded",src:"api"})},setError(){r({type:"img.error",src:"api"})},getRootProps(){return t.element(v(p({},pc.root.attrs),{dir:i("dir"),id:fh(a)}))},getImageProps(){return t.img(v(p({},pc.image.attrs),{hidden:!o,dir:i("dir"),id:mh(a),"data-state":o?"visible":"hidden",onLoad(){r({type:"img.loaded",src:"element"})},onError(){r({type:"img.error",src:"element"})}}))},getFallbackProps(){return t.element(v(p({},pc.fallback.attrs),{dir:i("dir"),id:CP(a),hidden:o,"data-state":o?"hidden":"visible"}))}}}function OP(e){return e.complete&&e.naturalWidth!==0&&e.naturalHeight!==0}function xP(e,t){return{id:e.id,status:t.status}}var PP,pc,fh,mh,CP,IP,fc,wP,VP,AP,yh=ne(()=>{"use strict";_e();Ce();se();PP=j("avatar").parts("root","image","fallback"),pc=PP.build(),fh=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`avatar:${e.id}`},mh=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.image)!=null?n:`avatar:${e.id}:image`},CP=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.fallback)!=null?n:`avatar:${e.id}:fallback`},IP=e=>e.getById(fh(e)),fc=e=>e.getById(mh(e));wP=te({initialState(){return"loading"},effects:["trackImageRemoval","trackSrcChange"],on:{"src.change":{target:"loading"},"img.unmount":{target:"error"}},states:{loading:{entry:["checkImageStatus"],on:{"img.loaded":{target:"loaded",actions:["invokeOnLoad"]},"img.error":{target:"error",actions:["invokeOnError"]}}},error:{on:{"img.loaded":{target:"loaded",actions:["invokeOnLoad"]}}},loaded:{on:{"img.error":{target:"error",actions:["invokeOnError"]}}}},implementations:{actions:{invokeOnLoad({prop:e}){var t;(t=e("onStatusChange"))==null||t({status:"loaded"})},invokeOnError({prop:e}){var t;(t=e("onStatusChange"))==null||t({status:"error"})},checkImageStatus({send:e,scope:t}){let n=fc(t);if(!(n!=null&&n.complete))return;let r=OP(n)?"img.loaded":"img.error";e({type:r,src:"ssr"})}},effects:{trackImageRemoval({send:e,scope:t}){let n=IP(t);return Ho(n,{callback(r){Array.from(r[0].removedNodes).find(o=>o.nodeType===Node.ELEMENT_NODE&&o.matches("[data-scope=avatar][data-part=image]"))&&e({type:"img.unmount"})}})},trackSrcChange({send:e,scope:t}){let n=fc(t);return kt(n,{attributes:["src","srcset"],callback(){e({type:"src.change"})}})}}}});VP=class extends X{initMachine(e){return new Y(wP,e)}initApi(){return this.zagConnect(TP)}render(){var i;let e=(i=this.el.querySelector('[data-scope="avatar"][data-part="root"]'))!=null?i:this.el;this.spreadProps(e,this.api.getRootProps());let t=this.el.querySelector('[data-scope="avatar"][data-part="image"]');t&&this.spreadProps(t,this.api.getImageProps());let n=this.el.querySelector('[data-scope="avatar"][data-part="fallback"]');n&&this.spreadProps(n,this.api.getFallbackProps());let r=this.el.querySelector('[data-scope="avatar"][data-part="skeleton"]');if(r){let a=this.machine.service.state,o=a.matches("loaded"),s=a.matches("error");r.hidden=o||s,r.setAttribute("data-state",o||s?"hidden":"visible")}}};AP={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>J(this.liveSocket),r=V(e,"src"),i=new VP(e,{id:e.id,dir:V(e,"dir"),onStatusChange:l=>{let c=xP(e,l);K({el:e,canPushServer:n(),pushEvent:t,payload:c,serverEventName:V(e,"onStatusChange"),clientEventName:V(e,"onStatusChangeClient")})}});i.init(),this.avatar=i,this.lastSrc=r;let a=l=>{let c=i.api.loaded;Ke({respondTo:l,canPushServer:n(),pushEvent:t,serverEventName:"avatar_loaded_response",serverPayload:{id:e.id,loaded:c},el:e,domEventName:"avatar-loaded",domDetail:{id:e.id,loaded:c}})},o=de(e);this.domRegistry=o,o.add("corex:avatar:set-src",l=>{var d;let c=(d=l.detail)==null?void 0:d.src;typeof c=="string"&&(i.api.setSrc(c),this.lastSrc=c,e.dataset.src=c)}),o.add("corex:avatar:loaded",l=>{a(we(l.detail))});let s=ce(this);this.handleRegistry=s,s.add("avatar_set_src",l=>{B(e.id,G(l))&&(i.api.setSrc(l.src),this.lastSrc=l.src,e.dataset.src=l.src)}),s.add("avatar_loaded",l=>{B(e.id,G(l))&&a(we(l))})},updated(){let e=V(this.el,"src"),t=V(this.el,"dir");this.avatar&&this.avatar.updateProps(p({},t!==void 0?{dir:t}:{})),this.avatar&&e!==void 0&&e!==this.lastSrc&&(this.avatar.api.setSrc(e),this.lastSrc=e),this.avatar&&e===void 0&&this.lastSrc!==void 0&&(this.avatar.api.setSrc(""),this.lastSrc=void 0)},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.avatar)==null||n.destroy()}}});var Th={};fe(Th,{Carousel:()=>KP});function _P(e,t){let{state:n,context:r,computed:i,send:a,scope:o,prop:s}=e,l=n.matches("autoplay"),c=n.matches("dragging"),d=i("canScrollNext"),g=i("canScrollPrev"),h=i("isHorizontal"),u=s("autoSize"),f=Array.from(r.get("pageSnapPoints")),m=r.get("page"),P=f.length?Oe(m,0,f.length-1):0,C=s("slidesPerPage"),x=s("padding"),T=s("translations");return{isPlaying:l,isDragging:c,page:P,pageSnapPoints:f,canScrollNext:d,canScrollPrev:g,getProgress(){return P/f.length},getProgressText(){var y,S;let b={page:P+1,totalPages:f.length};return(S=(y=T.progressText)==null?void 0:y.call(T,b))!=null?S:""},scrollToIndex(b,y){a({type:"INDEX.SET",index:b,instant:y})},scrollTo(b,y){a({type:"PAGE.SET",index:b,instant:y})},scrollNext(b){a({type:"PAGE.NEXT",instant:b})},scrollPrev(b){a({type:"PAGE.PREV",instant:b})},play(){a({type:"AUTOPLAY.START"})},pause(){a({type:"AUTOPLAY.PAUSE"})},isInView(b){return Array.from(r.get("slidesInView")).includes(b)},refresh(){a({type:"SNAP.REFRESH"})},getRootProps(){return t.element(v(p({},sn.root.attrs),{id:kP(o),role:"region","aria-roledescription":"carousel","data-orientation":s("orientation"),dir:s("dir"),style:{"--slides-per-page":C,"--slide-spacing":s("spacing"),"--slide-item-size":u?"auto":"calc(100% / var(--slides-per-page) - var(--slide-spacing) * (var(--slides-per-page) - 1) / var(--slides-per-page))"}}))},getItemGroupProps(){return t.element(v(p({},sn.itemGroup.attrs),{id:ns(o),"data-orientation":s("orientation"),"data-dragging":E(c),dir:s("dir"),"aria-live":l?"off":"polite",onFocus(b){ge(b.currentTarget,Q(b))&&a({type:"VIEWPORT.FOCUS"})},onBlur(b){ge(b.currentTarget,b.relatedTarget)||a({type:"VIEWPORT.BLUR"})},onMouseDown(b){if(b.defaultPrevented||!s("allowMouseDrag")||!Ee(b))return;let y=Q(b);lt(y)&&y!==b.currentTarget||(b.preventDefault(),a({type:"DRAGGING.START"}))},onWheel:ag(b=>{let y=s("orientation")==="horizontal"?"deltaX":"deltaY";b[y]<0&&!i("canScrollPrev")||b[y]>0&&!i("canScrollNext")||a({type:"USER.SCROLL"})},150),onTouchStart(){a({type:"USER.SCROLL"})},style:{display:u?"flex":"grid",gap:"var(--slide-spacing)",scrollSnapType:[h?"x":"y",s("snapType")].join(" "),gridAutoFlow:h?"column":"row",scrollbarWidth:"none",overscrollBehaviorX:"contain",[h?"gridAutoColumns":"gridAutoRows"]:u?void 0:"var(--slide-item-size)",[h?"scrollPaddingInline":"scrollPaddingBlock"]:x,[h?"paddingInline":"paddingBlock"]:x,[h?"overflowX":"overflowY"]:"auto"}}))},getItemProps(b){let y=r.get("slidesInView").includes(b.index);return t.element(v(p({},sn.item.attrs),{id:NP(o,b.index),dir:s("dir"),role:"group","data-index":b.index,"data-inview":E(y),"aria-roledescription":"slide","data-orientation":s("orientation"),"aria-label":T.item(b.index,s("slideCount")),"aria-hidden":oe(!y),style:{flex:"0 0 auto",[h?"maxWidth":"maxHeight"]:"100%",scrollSnapAlign:(()=>{var w;let S=(w=b.snapAlign)!=null?w:"start",A=s("slidesPerMove"),N=A==="auto"?Math.floor(s("slidesPerPage")):A;return(b.index+N)%N===0?S:void 0})()}}))},getControlProps(){return t.element(v(p({},sn.control.attrs),{"data-orientation":s("orientation")}))},getPrevTriggerProps(){return t.button(v(p({},sn.prevTrigger.attrs),{id:LP(o),type:"button",disabled:!g,dir:s("dir"),"aria-label":T.prevTrigger,"data-orientation":s("orientation"),"aria-controls":ns(o),onClick(b){b.defaultPrevented||a({type:"PAGE.PREV",src:"trigger"})}}))},getNextTriggerProps(){return t.button(v(p({},sn.nextTrigger.attrs),{dir:s("dir"),id:DP(o),type:"button","aria-label":T.nextTrigger,"data-orientation":s("orientation"),"aria-controls":ns(o),disabled:!d,onClick(b){b.defaultPrevented||a({type:"PAGE.NEXT",src:"trigger"})}}))},getIndicatorGroupProps(){return t.element(v(p({},sn.indicatorGroup.attrs),{dir:s("dir"),id:MP(o),"data-orientation":s("orientation"),onKeyDown(b){if(b.defaultPrevented)return;let y="indicator",S={ArrowDown(O){h||(a({type:"PAGE.NEXT",src:y}),O.preventDefault())},ArrowUp(O){h||(a({type:"PAGE.PREV",src:y}),O.preventDefault())},ArrowRight(O){h&&(a({type:"PAGE.NEXT",src:y}),O.preventDefault())},ArrowLeft(O){h&&(a({type:"PAGE.PREV",src:y}),O.preventDefault())},Home(O){a({type:"PAGE.SET",index:0,src:y}),O.preventDefault()},End(O){a({type:"PAGE.SET",index:f.length-1,src:y}),O.preventDefault()}},A=ve(b,{dir:s("dir"),orientation:s("orientation")}),N=S[A];N==null||N(b)}}))},getIndicatorProps(b){return t.button(v(p({},sn.indicator.attrs),{dir:s("dir"),id:Sh(o,b.index),type:"button","data-orientation":s("orientation"),"data-index":b.index,"data-readonly":E(b.readOnly),"data-current":E(b.index===P),"aria-label":T.indicator(b.index),onClick(y){y.defaultPrevented||b.readOnly||a({type:"PAGE.SET",index:b.index,src:"indicator"})}}))},getAutoplayTriggerProps(){return t.button(v(p({},sn.autoplayTrigger.attrs),{type:"button","data-orientation":s("orientation"),"data-pressed":E(l),"aria-label":l?T.autoplayStop:T.autoplayStart,onClick(b){b.defaultPrevented||a({type:l?"AUTOPLAY.PAUSE":"AUTOPLAY.START"})}}))},getProgressTextProps(){return t.element(p({},sn.progressText.attrs))}}}function Ph(e){let t=At(e),n=e.offsetWidth,r=e.offsetHeight,i=t.getPropertyValue("scroll-padding-left").replace("auto","0px"),a=t.getPropertyValue("scroll-padding-top").replace("auto","0px"),o=t.getPropertyValue("scroll-padding-right").replace("auto","0px"),s=t.getPropertyValue("scroll-padding-bottom").replace("auto","0px"),l=es(i,n),c=es(a,r),d=es(o,n),g=es(s,r);return{x:{before:l,after:d},y:{before:c,after:g}}}function $P(e,t,n="both"){return n==="x"&&e.right>=t.left&&e.left<=t.right||n==="y"&&e.bottom>=t.top&&e.top<=t.bottom||n==="both"&&e.right>=t.left&&e.left<=t.right&&e.bottom>=t.top&&e.top<=t.bottom}function Ch(e){let t=[];for(let n of e.children)t=t.concat(n,Ch(n));return t}function Ih(e,t=!1){let n=e.getBoundingClientRect(),i=yc(e)==="rtl",a=xg(e),o={x:{start:[],center:[],end:[]},y:{start:[],center:[],end:[]}},s=t?Ch(e):e.children;for(let l of["x","y"]){let c=l==="x"?"y":"x",d=l==="x"?"left":"top",g=l==="x"?"right":"bottom",h=l==="x"?"width":"height",u=l==="x"?"scrollLeft":"scrollTop",f=l==="x"?a.x:a.y,m=i&&l==="x";for(let P of s){let C=P.getBoundingClientRect();if(!$P(n,C,c))continue;let x=At(P),[T,b]=x.getPropertyValue("scroll-snap-align").split(" ");typeof b=="undefined"&&(b=T);let y=l==="x"?b:T,S,A,N;if(m){let O=Math.abs(e[u]),w=(n[g]-C[g])/f+O;S=w,A=w+C[h]/f,N=w+C[h]/(2*f)}else S=(C[d]-n[d])/f+e[u],A=S+C[h]/f,N=S+C[h]/(2*f);switch(y){case"none":break;case"start":o[l].start.push({node:P,position:S});break;case"center":o[l].center.push({node:P,position:N});break;case"end":o[l].end.push({node:P,position:A});break}}}return o}function HP(e){let t=yc(e),n=Ph(e),r=Ih(e),i=e.offsetWidth,a=e.offsetHeight,o={x:e.scrollWidth-e.offsetWidth,y:e.scrollHeight-e.offsetHeight},s=t==="rtl",l=s&&e.scrollLeft<=0,c;return s?(c=mc([...r.x.start.map(d=>d.position-n.x.after),...r.x.center.map(d=>d.position-i/2),...r.x.end.map(d=>d.position-i+n.x.before)].map(vc(0,o.x))),l&&(c=c.map(d=>-d))):c=mc([...r.x.start.map(d=>d.position-n.x.before),...r.x.center.map(d=>d.position-i/2),...r.x.end.map(d=>d.position-i+n.x.after)].map(vc(0,o.x))),{x:c,y:mc([...r.y.start.map(d=>d.position-n.y.before),...r.y.center.map(d=>d.position-a/2),...r.y.end.map(d=>d.position-a+n.y.after)].map(vc(0,o.y)))}}function BP(e,t,n){let r=yc(e),i=Ph(e),a=Ih(e),o=[...a[t].start,...a[t].center,...a[t].end],s=r==="rtl",l=s&&t==="x"&&e.scrollLeft<=0;for(let c of o)if(n(c.node)){let d;return t==="x"&&s?(d=c.position-i.x.after,l&&(d=-d)):d=c.position-(t==="x"?i.x.before:i.y.before),d}}function qP(e,t,n){if(e==null||n<=0)return[];let r=[],i=t==="auto"?Math.floor(n):t;if(i<=0)return[];for(let a=0;ae);a+=i)r.push(a);return r}function ts(e){if(e&&typeof e=="object"&&"instant"in e){let t=e.instant;return t===!0||t==="true"}return!1}var RP,sn,kP,NP,ns,DP,LP,MP,Sh,Je,bh,FP,Eh,yc,es,mc,vc,GP,UP,WP,KP,wh=ne(()=>{"use strict";Nt();_e();Ce();se();RP=j("carousel").parts("root","itemGroup","item","control","nextTrigger","prevTrigger","indicatorGroup","indicator","autoplayTrigger","progressText"),sn=RP.build(),kP=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`carousel:${e.id}`},NP=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.item)==null?void 0:r.call(n,t))!=null?i:`carousel:${e.id}:item:${t}`},ns=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.itemGroup)!=null?n:`carousel:${e.id}:item-group`},DP=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.nextTrigger)!=null?n:`carousel:${e.id}:next-trigger`},LP=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.prevTrigger)!=null?n:`carousel:${e.id}:prev-trigger`},MP=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.indicatorGroup)!=null?n:`carousel:${e.id}:indicator-group`},Sh=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.indicator)==null?void 0:r.call(n,t))!=null?i:`carousel:${e.id}:indicator:${t}`},Je=e=>e.getById(ns(e)),bh=e=>xe(Je(e),"[data-part=item]"),FP=(e,t)=>e.getById(Sh(e,t)),Eh=e=>{let t=Je(e);if(!t)return;let n=An(t);t.setAttribute("tabindex",n.length>0?"-1":"0")};yc=e=>At(e).direction,es=(e,t)=>{let n=parseFloat(e);return/%/.test(e)&&(n/=100,n*=t),Number.isNaN(n)?0:n};mc=e=>[...new Set(e)],vc=(e,t)=>n=>Math.max(e,Math.min(t,n)),GP=1,UP=te({props({props:e}){return rn(e,["slideCount"],"carousel"),v(p({dir:"ltr",defaultPage:0,orientation:"horizontal",snapType:"mandatory",loop:!!e.autoplay,slidesPerPage:1,slidesPerMove:"auto",spacing:"0px",autoplay:!1,allowMouseDrag:!1,inViewThreshold:.6,autoSize:!1},e),{translations:p({nextTrigger:"Next slide",prevTrigger:"Previous slide",indicator:t=>`Go to slide ${t+1}`,item:(t,n)=>`${t+1} of ${n}`,autoplayStart:"Start slide rotation",autoplayStop:"Stop slide rotation",progressText:({page:t,totalPages:n})=>`${t} / ${n}`},e.translations)})},refs(){return{timeoutRef:void 0}},initialState({prop:e}){return e("autoplay")?"autoplay":"idle"},context({prop:e,bindable:t,getContext:n}){return{page:t(()=>({defaultValue:e("defaultPage"),value:e("page"),onChange(r){var o;let a=n().get("pageSnapPoints");(o=e("onPageChange"))==null||o({page:r,pageSnapPoint:a[r]})}})),pageSnapPoints:t(()=>({defaultValue:e("autoSize")?Array.from({length:e("slideCount")},(r,i)=>i):qP(e("slideCount"),e("slidesPerMove"),e("slidesPerPage"))})),slidesInView:t(()=>({defaultValue:[]}))}},computed:{isRtl:({prop:e})=>e("dir")==="rtl",isHorizontal:({prop:e})=>e("orientation")==="horizontal",canScrollNext:({prop:e,context:t})=>e("loop")||t.get("page")e("loop")||t.get("page")>0,autoplayInterval:({prop:e})=>{let t=e("autoplay");return nn(t)?t.delay:4e3}},watch({track:e,action:t,context:n,prop:r,send:i}){e([()=>r("slidesPerPage"),()=>r("slidesPerMove")],()=>{t(["setSnapPoints"])}),e([()=>n.get("page")],()=>{t(["scrollToPage","focusIndicatorEl"])}),e([()=>r("orientation"),()=>r("autoSize"),()=>r("dir")],()=>{t(["setSnapPoints","scrollToPage"])}),e([()=>r("slideCount")],()=>{i({type:"SNAP.REFRESH",src:"slide.count"})}),e([()=>!!r("autoplay")],()=>{i({type:r("autoplay")?"AUTOPLAY.START":"AUTOPLAY.PAUSE",src:"autoplay.prop.change"})})},on:{"PAGE.NEXT":{target:"idle",actions:["clearScrollEndTimer","setNextPage"]},"PAGE.PREV":{target:"idle",actions:["clearScrollEndTimer","setPrevPage"]},"PAGE.SET":{target:"idle",actions:["clearScrollEndTimer","setPage"]},"INDEX.SET":{target:"idle",actions:["clearScrollEndTimer","setMatchingPage"]},"SNAP.REFRESH":{actions:["setSnapPoints","scrollToPageIfDrifted"]},"PAGE.SCROLL":{actions:["scrollToPage"]}},effects:["trackSlideMutation","trackSlideIntersections","trackSlideResize"],entry:["setSnapPoints","setPage"],exit:["clearScrollEndTimer"],states:{idle:{on:{"DRAGGING.START":{target:"dragging",actions:["invokeDragStart"]},"AUTOPLAY.START":{target:"autoplay",actions:["invokeAutoplayStart"]},"USER.SCROLL":{target:"userScroll"},"VIEWPORT.FOCUS":{target:"focus"}}},focus:{effects:["trackKeyboardScroll"],on:{"VIEWPORT.BLUR":{target:"idle"},"PAGE.NEXT":{actions:["clearScrollEndTimer","setNextPage"]},"PAGE.PREV":{actions:["clearScrollEndTimer","setPrevPage"]},"PAGE.SET":{actions:["clearScrollEndTimer","setPage"]},"INDEX.SET":{actions:["clearScrollEndTimer","setMatchingPage"]},"USER.SCROLL":{target:"userScroll"}}},dragging:{effects:["trackPointerMove"],entry:["disableScrollSnap"],on:{DRAGGING:{actions:["scrollSlides","invokeDragging"]},"DRAGGING.END":{target:"settling",actions:["endDragging"]}}},settling:{effects:["trackSettlingScroll"],on:{"DRAGGING.START":{target:"dragging",actions:["clearScrollEndTimer","invokeDragStart"]},"SCROLL.END":[{guard:"isFocused",target:"focus",actions:["clearScrollEndTimer","setClosestPage","invokeDraggingEnd"]},{target:"idle",actions:["clearScrollEndTimer","setClosestPage","invokeDraggingEnd"]}]}},userScroll:{effects:["trackScroll"],on:{"DRAGGING.START":{target:"dragging",actions:["invokeDragStart"]},"SCROLL.END":[{guard:"isFocused",target:"focus",actions:["setClosestPage"]},{target:"idle",actions:["setClosestPage"]}]}},autoplay:{effects:["trackDocumentVisibility","trackScroll","autoUpdateSlide"],exit:["invokeAutoplayEnd"],on:{"AUTOPLAY.TICK":{actions:["setNextPage","invokeAutoplay"]},"DRAGGING.START":{target:"dragging",actions:["invokeDragStart"]},"AUTOPLAY.PAUSE":{target:"idle"}}}},implementations:{guards:{isFocused:({scope:e})=>e.isActiveElement(Je(e))},effects:{autoUpdateSlide({computed:e,send:t}){let n=setInterval(()=>{t({type:e("canScrollNext")?"AUTOPLAY.TICK":"AUTOPLAY.PAUSE",src:"autoplay.interval"})},e("autoplayInterval"));return()=>clearInterval(n)},trackSlideMutation({scope:e,send:t}){let n=Je(e);if(!n)return;let r=e.getWin(),i=new r.MutationObserver(()=>{t({type:"SNAP.REFRESH",src:"slide.mutation"}),Eh(e)});return Eh(e),i.observe(n,{childList:!0,subtree:!0}),()=>i.disconnect()},trackSlideResize({scope:e,send:t}){let n=Je(e);if(!n)return;let r=()=>{t({type:"SNAP.REFRESH",src:"slide.resize"})};$(()=>{r(),$(()=>{t({type:"PAGE.SCROLL",instant:!0})})});let i=bh(e);i.forEach(r);let a=[kn.observe(n,r),...i.map(o=>kn.observe(o,r))];return vt(...a)},trackSlideIntersections({scope:e,prop:t,context:n}){let r=Je(e),i=e.getWin(),a=new i.IntersectionObserver(o=>{let s=o.reduce((l,c)=>{var h;let d=c.target,g=Number((h=d.dataset.index)!=null?h:"-1");return g==null||Number.isNaN(g)||g===-1?l:c.isIntersecting?mt(l,g):wt(l,g)},n.get("slidesInView"));n.set("slidesInView",Wt(s))},{root:r,threshold:t("inViewThreshold")});return bh(e).forEach(o=>a.observe(o)),()=>a.disconnect()},trackScroll({send:e,refs:t,scope:n}){let r=Je(n);return r?re(r,"scroll",()=>{clearTimeout(t.get("timeoutRef")),t.set("timeoutRef",void 0),t.set("timeoutRef",setTimeout(()=>{e({type:"SCROLL.END"})},150))},{passive:!0}):void 0},trackSettlingScroll({send:e,refs:t,scope:n}){let r=Je(n);if(!r)return;let i=()=>{clearTimeout(t.get("timeoutRef")),t.set("timeoutRef",void 0),t.set("timeoutRef",setTimeout(()=>{e({type:"SCROLL.END"})},200))};i();let o=re(r,"scroll",()=>{i()},{passive:!0});return()=>{o(),clearTimeout(t.get("timeoutRef")),t.set("timeoutRef",void 0)}},trackDocumentVisibility({scope:e,send:t}){let n=e.getDoc();return re(n,"visibilitychange",()=>{n.visibilityState!=="visible"&&t({type:"AUTOPLAY.PAUSE",src:"doc.hidden"})})},trackPointerMove({scope:e,send:t}){let n=e.getDoc();return an(n,{onPointerMove({event:r}){t({type:"DRAGGING",left:-r.movementX,top:-r.movementY})},onPointerUp(){t({type:"DRAGGING.END"})}})},trackKeyboardScroll({scope:e,send:t,context:n}){let r=e.getWin();return re(r,"keydown",a=>{switch(a.key){case"ArrowRight":a.preventDefault(),t({type:"PAGE.NEXT"});break;case"ArrowLeft":a.preventDefault(),t({type:"PAGE.PREV"});break;case"Home":a.preventDefault(),t({type:"PAGE.SET",index:0});break;case"End":a.preventDefault(),t({type:"PAGE.SET",index:n.get("pageSnapPoints").length-1})}},{capture:!0})}},actions:{clearScrollEndTimer({refs:e}){e.get("timeoutRef")!=null&&(clearTimeout(e.get("timeoutRef")),e.set("timeoutRef",void 0))},scrollToPage({context:e,event:t,scope:n,computed:r,flush:i}){var c;let a=t.instant?"instant":"smooth",o=Oe((c=t.index)!=null?c:e.get("page"),0,e.get("pageSnapPoints").length-1),s=Je(n);if(!s)return;let l=r("isHorizontal")?"left":"top";i(()=>{s.scrollTo({[l]:e.get("pageSnapPoints")[o],behavior:a})})},scrollToPageIfDrifted({context:e,scope:t,computed:n}){let r=Je(t);if(!r)return;let i=e.get("pageSnapPoints")[e.get("page")];if(i==null)return;let a=n("isHorizontal")?r.scrollLeft:r.scrollTop;if(Math.abs(a-i)<=GP)return;let o=n("isHorizontal")?"left":"top";r.scrollTo({[o]:i,behavior:"instant"})},setClosestPage({context:e,scope:t,computed:n}){let r=Je(t);if(!r)return;let i=n("isHorizontal")?r.scrollLeft:r.scrollTop,a=e.get("pageSnapPoints");if(!a.length)return;let o=a.reduce((s,l,c)=>{let d=Math.abs(l-i),g=Math.abs(a[s]-i);return ds.dataset.index===t.index.toString());if(a==null)return;let o=e.get("pageSnapPoints").findIndex(s=>Math.abs(s-a)<1);e.set("page",o)},setPage({context:e,event:t}){var r;let n=(r=t.index)!=null?r:e.get("page");e.set("page",n)},setSnapPoints({context:e,computed:t,scope:n}){let r=Je(n);if(!r)return;let i=HP(r),a=t("isHorizontal")?i.x:i.y;if(e.set("pageSnapPoints",a),!a.length)return;let o=Oe(e.get("page"),0,a.length-1);e.set("page",o)},disableScrollSnap({scope:e}){let t=Je(e);if(!t)return;let n=getComputedStyle(t);t.dataset.scrollSnapType=n.getPropertyValue("scroll-snap-type"),t.style.setProperty("scroll-snap-type","none")},scrollSlides({scope:e,event:t}){let n=Je(e);n==null||n.scrollBy({left:t.left,top:t.top,behavior:"instant"})},endDragging({scope:e,context:t,computed:n}){let r=Je(e);if(!r)return;let i=n("isHorizontal"),a=i?r.scrollLeft:r.scrollTop,o=t.get("pageSnapPoints");if(!o.length)return;let s=o.reduce((l,c)=>Math.abs(c-a){r.scrollTo({left:i?s:r.scrollLeft,top:i?r.scrollTop:s,behavior:"smooth"});let l=r.dataset.scrollSnapType;l&&(r.style.setProperty("scroll-snap-type",l),delete r.dataset.scrollSnapType)})},focusIndicatorEl({context:e,event:t,scope:n}){if(t.src!=="indicator")return;let r=FP(n,e.get("page"));r&&$(()=>r.focus({preventScroll:!0}))},invokeDragStart({context:e,prop:t}){var n;(n=t("onDragStatusChange"))==null||n({type:"dragging.start",isDragging:!0,page:e.get("page")})},invokeDragging({context:e,prop:t}){var n;(n=t("onDragStatusChange"))==null||n({type:"dragging",isDragging:!0,page:e.get("page")})},invokeDraggingEnd({context:e,prop:t}){var n;(n=t("onDragStatusChange"))==null||n({type:"dragging.end",isDragging:!1,page:e.get("page")})},invokeAutoplay({context:e,prop:t}){var n;(n=t("onAutoplayStatusChange"))==null||n({type:"autoplay",isPlaying:!0,page:e.get("page")})},invokeAutoplayStart({context:e,prop:t}){var n;(n=t("onAutoplayStatusChange"))==null||n({type:"autoplay.start",isPlaying:!0,page:e.get("page")})},invokeAutoplayEnd({context:e,prop:t}){var n;(n=t("onAutoplayStatusChange"))==null||n({type:"autoplay.stop",isPlaying:!1,page:e.get("page")})}}}});WP=class extends X{initMachine(e){return new Y(UP,e)}initApi(){return this.zagConnect(_P)}render(){var d;let e=(d=this.el.querySelector('[data-scope="carousel"][data-part="root"]'))!=null?d:this.el;this.spreadProps(e,this.api.getRootProps());let t=this.el.querySelector('[data-scope="carousel"][data-part="control"]');t&&this.spreadProps(t,this.api.getControlProps());let n=this.el.querySelector('[data-scope="carousel"][data-part="item-group"]');n&&this.spreadProps(n,this.api.getItemGroupProps());let r=Number(this.el.dataset.slideCount)||0;for(let g=0;gJ(this.liveSocket),r=I(e,"controlled"),i=q(e,"slideCount");if(i==null||i<1)return;let a=new WP(e,v(p({id:e.id,slideCount:i},r?{page:q(e,"page")}:{defaultPage:q(e,"defaultPage")}),{dir:U(e),orientation:V(e,"orientation"),slidesPerPage:q(e,"slidesPerPage"),slidesPerMove:V(e,"slidesPerMove")==="auto"?"auto":q(e,"slidesPerMove"),loop:I(e,"loop"),autoplay:I(e,"autoplay")?{delay:q(e,"autoplayDelay")}:!1,allowMouseDrag:I(e,"allowMouseDrag"),spacing:V(e,"spacing"),padding:V(e,"padding"),inViewThreshold:q(e,"inViewThreshold"),snapType:V(e,"snapType"),autoSize:I(e,"autoSize"),onPageChange:l=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,page:l.page,pageSnapPoint:l.pageSnapPoint},serverEventName:V(e,"onPageChange"),clientEventName:V(e,"onPageChangeClient")})}}));a.init(),this.carousel=a;let o=de(e);this.domRegistry=o,o.add("corex:carousel:play",()=>{a.api.play()}),o.add("corex:carousel:pause",()=>{a.api.pause()}),o.add("corex:carousel:scroll-next",l=>{a.api.scrollNext(ts(l.detail))}),o.add("corex:carousel:scroll-prev",l=>{a.api.scrollPrev(ts(l.detail))});let s=ce(this);this.handleRegistry=s,s.add("carousel_play",l=>{B(e.id,G(l))&&a.api.play()}),s.add("carousel_pause",l=>{B(e.id,G(l))&&a.api.pause()}),s.add("carousel_scroll_next",l=>{B(e.id,G(l))&&a.api.scrollNext(ts(l))}),s.add("carousel_scroll_prev",l=>{B(e.id,G(l))&&a.api.scrollPrev(ts(l))})},updated(){var n;let e=q(this.el,"slideCount");if(e==null||e<1)return;let t=I(this.el,"controlled");(n=this.carousel)==null||n.updateProps(v(p({id:this.el.id,slideCount:e},t?{page:q(this.el,"page")}:{defaultPage:q(this.el,"defaultPage")}),{dir:U(this.el),orientation:V(this.el,"orientation"),slidesPerPage:q(this.el,"slidesPerPage"),slidesPerMove:V(this.el,"slidesPerMove")==="auto"?"auto":q(this.el,"slidesPerMove"),loop:I(this.el,"loop"),autoplay:I(this.el,"autoplay")?{delay:q(this.el,"autoplayDelay")}:!1,allowMouseDrag:I(this.el,"allowMouseDrag"),spacing:V(this.el,"spacing"),padding:V(this.el,"padding"),inViewThreshold:q(this.el,"inViewThreshold"),snapType:V(this.el,"snapType"),autoSize:I(this.el,"autoSize")}))},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.carousel)==null||n.destroy()}}});function jP(e){return!(e.metaKey||!fi()&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}function YP(e,t,n){let r=n?Q(n):null,i=We(r),a=be(r),o=er(i);return e=e||o instanceof a.HTMLInputElement&&!zP.has(o==null?void 0:o.type)||o instanceof a.HTMLTextAreaElement||o instanceof a.HTMLElement&&o.isContentEditable,!(e&&t==="keyboard"&&n instanceof a.KeyboardEvent&&!Reflect.has(XP,n.key))}function as(e,t){for(let n of bc)n(e,t)}function is(e){Lr=!0,jP(e)&&(Dn="keyboard",as("keyboard",e))}function Dt(e){Dn="pointer",(e.type==="mousedown"||e.type==="pointerdown")&&(Lr=!0,as("pointer",e))}function Vh(e){Sg(e)&&(Lr=!0,Dn="virtual")}function xh(e){let t=Q(e);t===be(t)||t===We(t)||Oh||!e.isTrusted||(!Lr&&!Ec&&(Dn="virtual",as("virtual",e)),Lr=!1,Ec=!1)}function Ah(){Oh||(Lr=!1,Ec=!0)}function ZP(e){if(typeof window=="undefined"||rs.get(be(e)))return;let t=be(e),n=We(e),r=t.HTMLElement.prototype.focus;function i(){Lr=!0,r.apply(this,arguments)}try{Object.defineProperty(t.HTMLElement.prototype,"focus",{configurable:!0,value:i})}catch(a){}n.addEventListener("keydown",is,!0),n.addEventListener("keyup",is,!0),n.addEventListener("click",Vh,!0),t.addEventListener("focus",xh,!0),t.addEventListener("blur",Ah,!1),typeof t.PointerEvent!="undefined"?(n.addEventListener("pointerdown",Dt,!0),n.addEventListener("pointermove",Dt,!0),n.addEventListener("pointerup",Dt,!0)):(n.addEventListener("mousedown",Dt,!0),n.addEventListener("mousemove",Dt,!0),n.addEventListener("mouseup",Dt,!0)),t.addEventListener("beforeunload",()=>{JP(e)},{once:!0}),rs.set(t,{focus:r})}function sr(){return Dn}function lr(e){Dn=e,as(e,null)}function ln(){return Dn==="keyboard"||Dn==="virtual"}function Qe(e={}){let{isTextInput:t,autoFocus:n,onChange:r,root:i}=e;ZP(i),r==null||r({isFocusVisible:n||ln(),modality:Dn});let a=(o,s)=>{YP(!!t,o,s)&&(r==null||r({isFocusVisible:ln(),modality:o}))};return bc.add(a),()=>{bc.delete(a)}}var zP,Dn,bc,rs,Lr,Ec,Oh,XP,JP,Ln=ne(()=>{"use strict";se();zP=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);Dn=null,bc=new Set,rs=new Map,Lr=!1,Ec=!1,Oh=!1,XP={Tab:!0,Escape:!0};JP=(e,t)=>{let n=be(e),r=We(e);t&&r.removeEventListener("DOMContentLoaded",t);let i=rs.get(n);if(i){try{Object.defineProperty(n.HTMLElement.prototype,"focus",{configurable:!0,value:i.focus})}catch(a){}r.removeEventListener("keydown",is,!0),r.removeEventListener("keyup",is,!0),r.removeEventListener("click",Vh,!0),n.removeEventListener("focus",xh,!0),n.removeEventListener("blur",Ah,!1),typeof n.PointerEvent!="undefined"?(r.removeEventListener("pointerdown",Dt,!0),r.removeEventListener("pointermove",Dt,!0),r.removeEventListener("pointerup",Dt,!0)):(r.removeEventListener("mousedown",Dt,!0),r.removeEventListener("mousemove",Dt,!0),r.removeEventListener("mouseup",Dt,!0)),rs.delete(n)}}});var Dh={};fe(Dh,{Checkbox:()=>sC});function nC(e,t){let{send:n,context:r,prop:i,computed:a,scope:o}=e,s=!!i("disabled"),l=!!i("readOnly"),c=!!i("required"),d=!!i("invalid"),g=!s&&r.get("focused"),h=!s&&r.get("focusVisible"),u=a("checked"),f=a("indeterminate"),m=r.get("checked"),P={"data-active":E(r.get("active")),"data-focus":E(g),"data-focus-visible":E(h),"data-readonly":E(l),"data-hover":E(r.get("hovered")),"data-disabled":E(s),"data-state":f?"indeterminate":u?"checked":"unchecked","data-invalid":E(d),"data-required":E(c)};return{checked:u,disabled:s,indeterminate:f,focused:g,checkedState:m,setChecked(C){n({type:"CHECKED.SET",checked:C,isTrusted:!1})},toggleChecked(){n({type:"CHECKED.TOGGLE",checked:u,isTrusted:!1})},getRootProps(){return t.label(v(p(p({},os.root.attrs),P),{dir:i("dir"),id:Nh(o),htmlFor:Sc(o),onPointerMove(){s||n({type:"CONTEXT.SET",context:{hovered:!0}})},onPointerLeave(){s||n({type:"CONTEXT.SET",context:{hovered:!1}})},onClick(C){Q(C)===Ea(o)&&C.stopPropagation()}}))},getLabelProps(){return t.element(v(p(p({},os.label.attrs),P),{dir:i("dir"),id:Rh(o)}))},getControlProps(){return t.element(v(p(p({},os.control.attrs),P),{dir:i("dir"),id:eC(o),"aria-hidden":!0}))},getIndicatorProps(){return t.element(v(p(p({},os.indicator.attrs),P),{dir:i("dir"),hidden:!f&&!u}))},getHiddenInputProps(){return t.input({id:Sc(o),type:"checkbox",required:i("required"),defaultChecked:u,disabled:s,"aria-labelledby":Rh(o),"aria-invalid":d,name:i("name"),form:i("form"),value:i("value"),style:dt,onFocus(){let C=ln();n({type:"CONTEXT.SET",context:{focused:!0,focusVisible:C}})},onBlur(){n({type:"CONTEXT.SET",context:{focused:!1,focusVisible:!1}})},onClick(C){if(l){C.preventDefault();return}let x=C.currentTarget.checked;n({type:"CHECKED.SET",checked:x,isTrusted:!0})}})}}}function ss(e){return e==="indeterminate"}function iC(e){return ss(e)?!1:!!e}function oC(e,t){return{id:e.id,checked:t.checked}}var QP,os,Nh,Rh,eC,Sc,tC,Ea,kh,rC,aC,sC,Lh=ne(()=>{"use strict";Ln();_e();Ce();se();QP=j("checkbox").parts("root","label","control","indicator"),os=QP.build(),Nh=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`checkbox:${e.id}`},Rh=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`checkbox:${e.id}:label`},eC=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.control)!=null?n:`checkbox:${e.id}:control`},Sc=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.hiddenInput)!=null?n:`checkbox:${e.id}:input`},tC=e=>e.getById(Nh(e)),Ea=e=>e.getById(Sc(e));({not:kh}=Te()),rC=te({props({props:e}){var t;return v(p({value:"on"},e),{defaultChecked:(t=e.defaultChecked)!=null?t:!1})},initialState(){return"ready"},context({prop:e,bindable:t}){return{checked:t(()=>({defaultValue:e("defaultChecked"),value:e("checked"),onChange(n){var r;(r=e("onCheckedChange"))==null||r({checked:n})}})),fieldsetDisabled:t(()=>({defaultValue:!1})),focusVisible:t(()=>({defaultValue:!1})),active:t(()=>({defaultValue:!1})),focused:t(()=>({defaultValue:!1})),hovered:t(()=>({defaultValue:!1}))}},watch({track:e,context:t,prop:n,action:r}){e([()=>n("disabled")],()=>{r(["removeFocusIfNeeded"])}),e([()=>t.get("checked")],()=>{r(["syncInputElement"])})},effects:["trackFormControlState","trackPressEvent","trackFocusVisible"],on:{"CHECKED.TOGGLE":[{guard:kh("isTrusted"),actions:["toggleChecked","dispatchChangeEvent"]},{actions:["toggleChecked"]}],"CHECKED.SET":[{guard:kh("isTrusted"),actions:["setChecked","dispatchChangeEvent"]},{actions:["setChecked"]}],"CONTEXT.SET":{actions:["setContext"]}},computed:{indeterminate:({context:e})=>ss(e.get("checked")),checked:({context:e})=>iC(e.get("checked")),disabled:({context:e,prop:t})=>!!t("disabled")||e.get("fieldsetDisabled")},states:{ready:{}},implementations:{guards:{isTrusted:({event:e})=>!!e.isTrusted},effects:{trackPressEvent({context:e,computed:t,scope:n}){if(!t("disabled"))return Bo({pointerNode:tC(n),keyboardNode:Ea(n),isValidKey:r=>r.key===" ",onPress:()=>e.set("active",!1),onPressStart:()=>e.set("active",!0),onPressEnd:()=>e.set("active",!1)})},trackFocusVisible({computed:e,scope:t}){var n;if(!e("disabled"))return Qe({root:(n=t.getRootNode)==null?void 0:n.call(t)})},trackFormControlState({context:e,scope:t}){return Rt(Ea(t),{onFieldsetDisabledChange(n){e.set("fieldsetDisabled",n)},onFormReset(){e.set("checked",e.initial("checked"))}})}},actions:{setContext({context:e,event:t}){for(let n in t.context)e.set(n,t.context[n])},syncInputElement({context:e,computed:t,scope:n}){let r=Ea(n);r&&(ha(r,t("checked")),r.indeterminate=ss(e.get("checked")))},removeFocusIfNeeded({context:e,prop:t}){t("disabled")&&e.get("focused")&&(e.set("focused",!1),e.set("focusVisible",!1))},setChecked({context:e,event:t}){e.set("checked",t.checked)},toggleChecked({context:e,computed:t}){let n=ss(t("checked"))?!0:!t("checked");e.set("checked",n)},dispatchChangeEvent({computed:e,scope:t}){queueMicrotask(()=>{let n=Ea(t);mi(n,{checked:e("checked")})})}}}});aC=class extends X{initMachine(e){return new Y(rC,e)}initApi(){return this.zagConnect(nC)}render(){let e=this.el.querySelector('[data-scope="checkbox"][data-part="root"]');if(!e)return;this.spreadProps(e,this.api.getRootProps());let t=e.querySelector(':scope > [data-scope="checkbox"][data-part="hidden-input"]');t&&this.spreadProps(t,this.api.getHiddenInputProps());let n=e.querySelector(':scope > [data-scope="checkbox"][data-part="label"]');n&&this.spreadProps(n,this.api.getLabelProps());let r=e.querySelector(':scope > [data-scope="checkbox"][data-part="control"]');if(r){this.spreadProps(r,this.api.getControlProps());let i=r.querySelector(':scope > [data-scope="checkbox"][data-part="indicator"]');i&&this.spreadProps(i,this.api.getIndicatorProps())}}};sC={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>J(this.liveSocket),r=new aC(e,v(p({id:e.id},I(e,"controlled")?{checked:en(e,"checked")}:{defaultChecked:en(e,"defaultChecked")}),{disabled:I(e,"disabled"),name:V(e,"name"),form:V(e,"form"),value:V(e,"value"),dir:U(e),invalid:I(e,"invalid"),required:I(e,"required"),readOnly:I(e,"readOnly"),onCheckedChange:o=>{K({el:e,canPushServer:n(),pushEvent:t,payload:oC(e,o),serverEventName:V(e,"onCheckedChange"),clientEventName:V(e,"onCheckedChangeClient")})}}));r.init(),this.checkbox=r;let i=de(e);this.domRegistry=i,i.add("corex:checkbox:set-checked",o=>{let{checked:s}=o.detail;r.api.setChecked(s)}),i.add("corex:checkbox:toggle-checked",()=>{r.api.toggleChecked()});let a=ce(this);this.handleRegistry=a,a.add("checkbox_set_checked",o=>{if(!B(e.id,G(o)))return;let s=Wo(o);typeof s=="boolean"&&r.api.setChecked(s)}),a.add("checkbox_toggle_checked",o=>{B(e.id,G(o))&&r.api.toggleChecked()}),a.add("checkbox_checked",o=>{B(e.id,G(o))&&n()&&this.pushEvent("checkbox_checked_response",{id:e.id,value:r.api.checked})}),a.add("checkbox_focused",o=>{B(e.id,G(o))&&n()&&this.pushEvent("checkbox_focused_response",{id:e.id,value:r.api.focused})}),a.add("checkbox_disabled",o=>{B(e.id,G(o))&&n()&&this.pushEvent("checkbox_disabled_response",{id:e.id,value:r.api.disabled})})},updated(){var e;(e=this.checkbox)==null||e.updateProps(v(p({id:this.el.id},I(this.el,"controlled")?{checked:en(this.el,"checked")}:{defaultChecked:en(this.el,"defaultChecked")}),{disabled:I(this.el,"disabled"),name:V(this.el,"name"),form:V(this.el,"form"),value:V(this.el,"value"),dir:U(this.el),invalid:I(this.el,"invalid"),required:I(this.el,"required"),readOnly:I(this.el,"readOnly")}))},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.checkbox)==null||n.destroy()}}});function Fh(e,t){let n=new Mh(({now:r,deltaMs:i})=>{if(i>=t){let a=t>0?r-i%t:r;n.setStartMs(a),e({startMs:a,deltaMs:i})}});return n.start(),()=>n.stop()}function cr(e,t){let n=new Mh(({deltaMs:r})=>{if(r>=t)return e(),!1});return n.start(),()=>n.stop()}var ls,cs,Mh,ds=ne(()=>{"use strict";se();ls=()=>performance.now(),Mh=class{constructor(e){tn(this,"onTick",e),tn(this,"frameId",null),tn(this,"pausedAtMs",null),tn(this,"context"),tn(this,"cancelFrame",()=>{this.frameId!==null&&(cancelAnimationFrame(this.frameId),this.frameId=null)}),tn(this,"setStartMs",t=>{this.context.startMs=t}),tn(this,"start",()=>{if(this.frameId!==null)return;let t=ls();this.pausedAtMs!==null?(this.context.startMs+=t-this.pausedAtMs,this.pausedAtMs=null):this.context.startMs=t,this.frameId=requestAnimationFrame(Dl(this,cs))}),tn(this,"pause",()=>{this.frameId!==null&&(this.cancelFrame(),this.pausedAtMs=ls())}),tn(this,"stop",()=>{this.frameId!==null&&(this.cancelFrame(),this.pausedAtMs=null)}),Ju(this,cs,t=>{if(this.context.now=t,this.context.deltaMs=t-this.context.startMs,this.onTick(this.context)===!1){this.stop();return}this.frameId=requestAnimationFrame(Dl(this,cs))}),this.context={now:0,startMs:ls(),deltaMs:0}}get elapsedMs(){return this.pausedAtMs!==null?this.pausedAtMs-this.context.startMs:ls()-this.context.startMs}};cs=new WeakMap});var _h={};fe(_h,{Clipboard:()=>bC});function hC(e,t){let n=e.createElement("pre");return Object.assign(n.style,{width:"1px",height:"1px",position:"fixed",top:"5px"}),n.textContent=t,n}function pC(e){let n=be(e).getSelection();if(n==null)return Promise.reject(new Error);n.removeAllRanges();let r=e.ownerDocument,i=r.createRange();return i.selectNodeContents(e),n.addRange(i),r.execCommand("copy"),n.removeAllRanges(),Promise.resolve()}function fC(e,t){var i;let n=e.defaultView||window;if(((i=n.navigator.clipboard)==null?void 0:i.writeText)!==void 0)return n.navigator.clipboard.writeText(t);if(!e.body)return Promise.reject(new Error);let r=hC(e,t);return e.body.appendChild(r),pC(r),e.body.removeChild(r),Promise.resolve()}function mC(e,t){let{state:n,send:r,context:i,scope:a,prop:o}=e,s=n.matches("copied"),l=o("translations");return{copied:s,value:i.get("value"),setValue(c){r({type:"VALUE.SET",value:c})},copy(){r({type:"COPY"})},getRootProps(){return t.element(v(p({},Ti.root.attrs),{"data-copied":E(s),id:cC(a)}))},getLabelProps(){return t.label(v(p({},Ti.label.attrs),{htmlFor:Pc(a),"data-copied":E(s),id:dC(a)}))},getControlProps(){return t.element(v(p({},Ti.control.attrs),{"data-copied":E(s)}))},getInputProps(){return t.input(v(p({},Ti.input.attrs),{defaultValue:i.get("value"),"data-copied":E(s),readOnly:!0,"data-readonly":"true",id:Pc(a),onFocus(c){c.currentTarget.select()},onCopy(){r({type:"INPUT.COPY"})}}))},getTriggerProps(){var c;return t.button(v(p({},Ti.trigger.attrs),{type:"button","aria-label":(c=l.triggerLabel)==null?void 0:c.call(l,s),"data-copied":E(s),onClick(){r({type:"COPY"})}}))},getIndicatorProps(c){return t.element(v(p({},Ti.indicator.attrs),{hidden:c.copied!==s}))}}}var lC,Ti,cC,Pc,dC,uC,gC,vC,yC,bC,$h=ne(()=>{"use strict";ds();_e();Ce();se();lC=j("clipboard").parts("root","control","trigger","indicator","input","label"),Ti=lC.build(),cC=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`clip:${e.id}`},Pc=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.input)!=null?n:`clip:${e.id}:input`},dC=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`clip:${e.id}:label`},uC=e=>e.getById(Pc(e)),gC=(e,t)=>fC(e.getDoc(),t);vC=te({props({props:e}){return v(p({timeout:3e3,defaultValue:""},e),{translations:p({triggerLabel:t=>t?"Copied to clipboard":"Copy to clipboard"},e.translations)})},initialState(){return"idle"},context({prop:e,bindable:t}){return{value:t(()=>({defaultValue:e("defaultValue"),value:e("value"),onChange(n){var r;(r=e("onValueChange"))==null||r({value:n})}}))}},watch({track:e,context:t,action:n}){e([()=>t.get("value")],()=>{n(["syncInputElement"])})},on:{"VALUE.SET":{actions:["setValue"]},COPY:{target:"copied",actions:["copyToClipboard","invokeOnCopy"]}},states:{idle:{on:{"INPUT.COPY":{target:"copied",actions:["invokeOnCopy"]}}},copied:{effects:["waitForTimeout"],on:{"COPY.DONE":{target:"idle"},COPY:{target:"copied",actions:["copyToClipboard","invokeOnCopy"]},"INPUT.COPY":{actions:["invokeOnCopy"]}}}},implementations:{effects:{waitForTimeout({prop:e,send:t}){return cr(()=>{t({type:"COPY.DONE"})},e("timeout"))}},actions:{setValue({context:e,event:t}){e.set("value",t.value)},copyToClipboard({context:e,scope:t}){gC(t,e.get("value"))},invokeOnCopy({prop:e}){var t;(t=e("onStatusChange"))==null||t({copied:!0})},syncInputElement({context:e,scope:t}){let n=uC(t);n&&He(n,e.get("value"))}}}}),yC=class extends X{initMachine(e){return new Y(vC,e)}initApi(){return this.zagConnect(mC)}render(){let e=this.el.querySelector('[data-scope="clipboard"][data-part="root"]');if(e){this.spreadProps(e,this.api.getRootProps());let t=e.querySelector('[data-scope="clipboard"][data-part="label"]');t&&this.spreadProps(t,this.api.getLabelProps());let n=e.querySelector('[data-scope="clipboard"][data-part="control"]');if(n){this.spreadProps(n,this.api.getControlProps());let r=n.querySelector('[data-scope="clipboard"][data-part="input"]');if(r){let a=p({},this.api.getInputProps()),o=this.el.dataset.inputAriaLabel;o&&(a["aria-label"]=o),this.spreadProps(r,a)}let i=n.querySelector('[data-scope="clipboard"][data-part="trigger"]');if(i){let a=p({},this.api.getTriggerProps()),o=this.el.dataset.triggerAriaLabel;o&&(a["aria-label"]=o),this.spreadProps(i,a)}}}}},bC={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>J(this.liveSocket),r=new yC(e,{id:e.id,timeout:q(e,"timeout"),defaultValue:V(e,"defaultValue"),onStatusChange:o=>{var l;if((o==null?void 0:o.copied)!==!0)return;let s=(l=r.api.value)!=null?l:V(e,"defaultValue");K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,value:s},serverEventName:V(e,"onCopy"),clientEventName:V(e,"onCopyClient")})}});r.init(),this.clipboard=r;let i=de(e);this.domRegistry=i,i.add("corex:clipboard:copy",()=>{r.api.copy()}),i.add("corex:clipboard:set-value",o=>{var l;let s=(l=o.detail)==null?void 0:l.value;typeof s=="string"&&r.api.setValue(s)});let a=ce(this);this.handleRegistry=a,a.add("clipboard_copy",o=>{B(e.id,G(o))&&r.api.copy()}),a.add("clipboard_set_value",o=>{var c;if(!B(e.id,G(o))||!o||typeof o!="object")return;let s=o,l=(c=s.value)!=null?c:s.value;typeof l=="string"&&r.api.setValue(l)})},updated(){var e;(e=this.clipboard)==null||e.updateProps({id:this.el.id,timeout:q(this.el,"timeout"),defaultValue:V(this.el,"defaultValue")})},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.clipboard)==null||n.destroy()}}});var Hh={};fe(Hh,{Code:()=>EC});var EC,Bh=ne(()=>{"use strict";EC={mounted(){this.el.tagName==="PRE"&&(this._scrollTop=this.el.scrollTop,this._scrollLeft=this.el.scrollLeft)},beforeUpdate(){this.el.tagName==="PRE"&&(this._scrollTop=this.el.scrollTop,this._scrollLeft=this.el.scrollLeft)},updated(){var n,r;if(this.el.tagName!=="PRE")return;let e=(n=this._scrollTop)!=null?n:0,t=(r=this._scrollLeft)!=null?r:0;requestAnimationFrame(()=>{this.el.scrollTop=e,this.el.scrollLeft=t})}}});var Gh={};fe(Gh,{Collapsible:()=>VC});function IC(e,t){let{state:n,send:r,context:i,scope:a,prop:o}=e,s=n.matches("open")||n.matches("closing"),l=n.matches("open"),c=n.matches("closed"),{width:d,height:g}=i.get("size"),h=!!o("disabled"),u=o("collapsedHeight"),f=o("collapsedWidth"),m=u!=null,P=f!=null,C=m||P,x=!i.get("initial")&&l;return{disabled:h,visible:s,open:l,measureSize(){r({type:"size.measure"})},setOpen(T){n.matches("open")!==T&&r({type:T?"open":"close"})},getRootProps(){return t.element(v(p({},us.root.attrs),{"data-state":l?"open":"closed",dir:o("dir"),id:PC(a)}))},getContentProps(){return t.element(v(p({},us.content.attrs),{id:Cc(a),"data-collapsible":"","data-state":x?void 0:l?"open":"closed","data-disabled":E(h),"data-has-collapsed-size":E(C),hidden:!s&&!C,dir:o("dir"),style:p(p({"--height":Re(g),"--width":Re(d),"--collapsed-height":Re(u),"--collapsed-width":Re(f)},c&&m&&{overflow:"hidden",minHeight:Re(u),maxHeight:Re(u)}),c&&P&&{overflow:"hidden",minWidth:Re(f),maxWidth:Re(f)})}))},getTriggerProps(){return t.element(v(p({},us.trigger.attrs),{id:CC(a),dir:o("dir"),type:"button","data-state":l?"open":"closed","data-disabled":E(h),"aria-controls":Cc(a),"aria-expanded":s||!1,onClick(T){T.defaultPrevented||h||r({type:l?"close":"open"})}}))},getIndicatorProps(){return t.element(v(p({},us.indicator.attrs),{dir:o("dir"),"data-state":l?"open":"closed","data-disabled":E(h)}))}}}function OC(e,t){return{id:e.id,open:t.open}}var SC,us,PC,Cc,CC,Sa,TC,wC,VC,Uh=ne(()=>{"use strict";Nt();_e();Ce();se();SC=j("collapsible").parts("root","trigger","content","indicator"),us=SC.build(),PC=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`collapsible:${e.id}`},Cc=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.content)!=null?n:`collapsible:${e.id}:content`},CC=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.trigger)!=null?n:`collapsible:${e.id}:trigger`},Sa=e=>e.getById(Cc(e));TC=te({initialState({prop:e}){return e("open")||e("defaultOpen")?"open":"closed"},context({bindable:e}){return{size:e(()=>({defaultValue:{height:0,width:0},sync:!0})),initial:e(()=>({defaultValue:!1}))}},refs(){return{cleanup:void 0,stylesRef:void 0}},watch({track:e,prop:t,action:n}){e([()=>t("open")],()=>{n(["setInitial","computeSize","toggleVisibility"])})},exit:["cleanupNode"],states:{closed:{effects:["trackTabbableElements"],on:{"controlled.open":{target:"open"},open:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["setInitial","computeSize","invokeOnOpen"]}]}},closing:{effects:["trackExitAnimation"],on:{"controlled.close":{target:"closed"},"controlled.open":{target:"open"},open:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["setInitial","invokeOnOpen"]}],close:[{guard:"isOpenControlled",actions:["invokeOnExitComplete"]},{target:"closed",actions:["setInitial","computeSize","invokeOnExitComplete"]}],"animation.end":{target:"closed",actions:["invokeOnExitComplete","clearInitial"]}}},open:{effects:["trackEnterAnimation"],on:{"controlled.close":{target:"closing"},close:[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closing",actions:["setInitial","computeSize","invokeOnClose"]}],"size.measure":{actions:["measureSize"]},"animation.end":{actions:["clearInitial"]}}}},implementations:{guards:{isOpenControlled:({prop:e})=>e("open")!=null},effects:{trackEnterAnimation:({send:e,scope:t})=>{let n,r=$(()=>{let i=Sa(t);if(!i)return;let a=At(i).animationName;if(!a||a==="none"){e({type:"animation.end"});return}let s=l=>{Q(l)===i&&e({type:"animation.end"})};i.addEventListener("animationend",s),n=()=>{i.removeEventListener("animationend",s)}});return()=>{r(),n==null||n()}},trackExitAnimation:({send:e,scope:t})=>{let n,r=$(()=>{let i=Sa(t);if(!i)return;let a=At(i).animationName;if(!a||a==="none"){e({type:"animation.end"});return}let s=c=>{Q(c)===i&&e({type:"animation.end"})};i.addEventListener("animationend",s);let l=Rr(i,{animationFillMode:"forwards"});n=()=>{i.removeEventListener("animationend",s),Ar(()=>l())}});return()=>{r(),n==null||n()}},trackTabbableElements:({scope:e,prop:t})=>{if(!t("collapsedHeight")&&!t("collapsedWidth"))return;let n=Sa(e);if(!n)return;let r=()=>{let s=An(n).map(l=>Ag(l,"inert",""));return()=>{s.forEach(l=>l())}},i=r(),a=Ho(n,{callback(){i(),i=r()}});return()=>{i(),a()}}},actions:{setInitial:({context:e,flush:t})=>{t(()=>{e.set("initial",!0)})},clearInitial:({context:e})=>{e.set("initial",!1)},cleanupNode:({refs:e})=>{e.set("stylesRef",null)},measureSize:({context:e,scope:t})=>{let n=Sa(t);if(!n)return;let{height:r,width:i}=n.getBoundingClientRect();e.set("size",{height:r,width:i})},computeSize:({refs:e,scope:t,context:n})=>{var i;(i=e.get("cleanup"))==null||i();let r=$(()=>{let a=Sa(t);if(!a)return;let o=a.hidden;a.style.animationName="none",a.style.animationDuration="0s",a.hidden=!1;let s=a.getBoundingClientRect();n.set("size",{height:s.height,width:s.width}),n.get("initial")&&(a.style.animationName="",a.style.animationDuration=""),a.hidden=o});e.set("cleanup",r)},invokeOnOpen:({prop:e})=>{var t;(t=e("onOpenChange"))==null||t({open:!0})},invokeOnClose:({prop:e})=>{var t;(t=e("onOpenChange"))==null||t({open:!1})},invokeOnExitComplete:({prop:e})=>{var t;(t=e("onExitComplete"))==null||t()},toggleVisibility:({prop:e,send:t})=>{t({type:e("open")?"controlled.open":"controlled.close"})}}}}),wC=class extends X{initMachine(e){return new Y(TC,e)}initApi(){return this.zagConnect(IC)}render(){let e=this.el.querySelector('[data-scope="collapsible"][data-part="root"]');if(e){this.spreadProps(e,this.api.getRootProps());let t=e.querySelector('[data-scope="collapsible"][data-part="trigger"]');t&&this.spreadProps(t,this.api.getTriggerProps());let n=e.querySelector('[data-scope="collapsible"][data-part="content"]');n&&this.spreadProps(n,this.api.getContentProps())}}};VC={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>J(this.liveSocket),r=new wC(e,v(p({id:e.id},I(e,"controlled")?{open:I(e,"open")}:{defaultOpen:I(e,"defaultOpen")}),{disabled:I(e,"disabled"),dir:U(e),onOpenChange:s=>{K({el:e,canPushServer:n(),pushEvent:t,payload:OC(e,s),serverEventName:V(e,"onOpenChange"),clientEventName:V(e,"onOpenChangeClient")})}}));r.init(),this.collapsible=r;let i=s=>{Ke({respondTo:s,canPushServer:n(),pushEvent:t,serverEventName:"collapsible_open_response",serverPayload:{id:e.id,open:r.api.open,disabled:r.api.disabled},el:e,domEventName:"collapsible-open",domDetail:{id:e.id,open:r.api.open,disabled:r.api.disabled}})},a=de(e);this.domRegistry=a,a.add("corex:collapsible:set-open",s=>{let{open:l}=s.detail;r.api.setOpen(l)}),a.add("corex:collapsible:open",s=>{i(we(s.detail))});let o=ce(this);this.handleRegistry=o,o.add("collapsible_set_open",s=>{B(e.id,G(s))&&r.api.setOpen(s.open)}),o.add("collapsible_open",s=>{B(e.id,G(s))&&i(we(s))})},updated(){var e;(e=this.collapsible)==null||e.updateProps(v(p({id:this.el.id},I(this.el,"controlled")?{open:I(this.el,"open")}:{defaultOpen:I(this.el,"defaultOpen")}),{disabled:I(this.el,"disabled"),dir:U(this.el)}))},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.collapsible)==null||n.destroy()}}});function hs(e={}){var c;let{level:t="polite",document:n=document,root:r,delay:i=0}=e,a=(c=n.defaultView)!=null?c:window,o=r!=null?r:n.body;function s(d,g){let h=n.getElementById(gs);h==null||h.remove(),g=g!=null?g:i;let u=n.createElement("span");u.id=gs,u.dataset.liveAnnouncer="true";let f=t!=="assertive"?"status":"alert";u.setAttribute("aria-live",t),u.setAttribute("role",f),Object.assign(u.style,{border:"0",clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:"0",position:"absolute",width:"1px",whiteSpace:"nowrap",wordWrap:"normal"}),o.appendChild(u),a.setTimeout(()=>{u.textContent=d},g)}function l(){let d=n.getElementById(gs);d==null||d.remove()}return{announce:s,destroy:l,toJSON(){return gs}}}var gs,Ic=ne(()=>{"use strict";gs="__live-region__"});function xC(e){let t=e.dataset.positionFlip;if(t==null)return;if(t==="true")return!0;if(t==="false")return!1;let n=t.split(",").map(r=>r.trim()).filter(Boolean);return n.length>0?n:void 0}function nt(e){let t={},n=V(e,"positionStrategy");n&&(t.strategy=n);let r=V(e,"positionPlacement");r&&(t.placement=r);let i=q(e,"positionGutter");i!==void 0&&(t.gutter=i);let a=q(e,"positionShift");a!==void 0&&(t.shift=a);let o=q(e,"positionOverflowPadding");o!==void 0&&(t.overflowPadding=o);let s=q(e,"positionArrowPadding");s!==void 0&&(t.arrowPadding=s);let l=xC(e);l!==void 0&&(t.flip=l);let c=wn(e,"positionSlide");c!==void 0&&(t.slide=c);let d=wn(e,"positionOverlap");d!==void 0&&(t.overlap=d);let g=wn(e,"positionSameWidth");g!==void 0&&(t.sameWidth=g);let h=wn(e,"positionFitViewport");h!==void 0&&(t.fitViewport=h);let u=wn(e,"positionHideWhenDetached");return u!==void 0&&(t.hideWhenDetached=u),Object.keys(t).length>0?t:void 0}var wi=ne(()=>{"use strict";se()});function AC(e){let[t,n]=e.split("-");return{side:t,align:n,hasAlign:n!=null}}function rp(e){return e.split("-")[0]}function Oc(e,t,n){return bt(e,dr(t,n))}function Fn(e,t){return typeof e=="function"?e(t):e}function _n(e){return e.split("-")[0]}function Ai(e){return e.split("-")[1]}function Ac(e){return e==="x"?"y":"x"}function Rc(e){return e==="y"?"height":"width"}function cn(e){let t=e[0];return t==="t"||t==="b"?"y":"x"}function kc(e){return Ac(cn(e))}function NC(e,t,n){n===void 0&&(n=!1);let r=Ai(e),i=kc(e),a=Rc(i),o=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[a]>t.floating[a]&&(o=ms(o)),[o,ms(o)]}function DC(e){let t=ms(e);return[Vc(e),t,Vc(t)]}function Vc(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}function FC(e,t,n){switch(e){case"top":case"bottom":return n?t?Wh:qh:t?qh:Wh;case"left":case"right":return t?LC:MC;default:return[]}}function _C(e,t,n,r){let i=Ai(e),a=FC(_n(e),n==="start",r);return i&&(a=a.map(o=>o+"-"+i),t&&(a=a.concat(a.map(Vc)))),a}function ms(e){let t=_n(e);return kC[t]+e.slice(t.length)}function $C(e){return p({top:0,right:0,bottom:0,left:0},e)}function ip(e){return typeof e!="number"?$C(e):{top:e,right:e,bottom:e,left:e}}function vs(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function Kh(e,t,n){let{reference:r,floating:i}=e,a=cn(t),o=kc(t),s=Rc(o),l=_n(t),c=a==="y",d=r.x+r.width/2-i.width/2,g=r.y+r.height/2-i.height/2,h=r[s]/2-i[s]/2,u;switch(l){case"top":u={x:d,y:r.y-i.height};break;case"bottom":u={x:d,y:r.y+r.height};break;case"right":u={x:r.x+r.width,y:g};break;case"left":u={x:r.x-i.width,y:g};break;default:u={x:r.x,y:r.y}}switch(Ai(t)){case"start":u[o]-=h*(n&&c?-1:1);break;case"end":u[o]+=h*(n&&c?-1:1);break}return u}function HC(e,t){return Ge(this,null,function*(){var n;t===void 0&&(t={});let{x:r,y:i,platform:a,rects:o,elements:s,strategy:l}=e,{boundary:c="clippingAncestors",rootBoundary:d="viewport",elementContext:g="floating",altBoundary:h=!1,padding:u=0}=Fn(t,e),f=ip(u),P=s[h?g==="floating"?"reference":"floating":g],C=vs(yield a.getClippingRect({element:(n=yield a.isElement==null?void 0:a.isElement(P))==null||n?P:P.contextElement||(yield a.getDocumentElement==null?void 0:a.getDocumentElement(s.floating)),boundary:c,rootBoundary:d,strategy:l})),x=g==="floating"?{x:r,y:i,width:o.floating.width,height:o.floating.height}:o.reference,T=yield a.getOffsetParent==null?void 0:a.getOffsetParent(s.floating),b=(yield a.isElement==null?void 0:a.isElement(T))?(yield a.getScale==null?void 0:a.getScale(T))||{x:1,y:1}:{x:1,y:1},y=vs(a.convertOffsetParentRelativeRectToViewportRelativeRect?yield a.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:x,offsetParent:T,strategy:l}):x);return{top:(C.top-y.top+f.top)/b.y,bottom:(y.bottom-C.bottom+f.bottom)/b.y,left:(C.left-y.left+f.left)/b.x,right:(y.right-C.right+f.right)/b.x}})}function jh(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function zh(e){return RC.some(t=>e[t]>=0)}function KC(e,t){return Ge(this,null,function*(){let{placement:n,platform:r,elements:i}=e,a=yield r.isRTL==null?void 0:r.isRTL(i.floating),o=_n(n),s=Ai(n),l=cn(n)==="y",c=ap.has(o)?-1:1,d=a&&l?-1:1,g=Fn(t,e),{mainAxis:h,crossAxis:u,alignmentAxis:f}=typeof g=="number"?{mainAxis:g,crossAxis:0,alignmentAxis:null}:{mainAxis:g.mainAxis||0,crossAxis:g.crossAxis||0,alignmentAxis:g.alignmentAxis};return s&&typeof f=="number"&&(u=s==="end"?f*-1:f),l?{x:u*d,y:h*c}:{x:h*c,y:u*d}})}function ys(){return typeof window!="undefined"}function Ri(e){return op(e)?(e.nodeName||"").toLowerCase():"#document"}function Et(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function un(e){var t;return(t=(op(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function op(e){return ys()?e instanceof Node||e instanceof Et(e).Node:!1}function Yt(e){return ys()?e instanceof Element||e instanceof Et(e).Element:!1}function $n(e){return ys()?e instanceof HTMLElement||e instanceof Et(e).HTMLElement:!1}function Yh(e){return!ys()||typeof ShadowRoot=="undefined"?!1:e instanceof ShadowRoot||e instanceof Et(e).ShadowRoot}function Ia(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=Xt(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!=="inline"&&i!=="contents"}function ZC(e){return/^(table|td|th)$/.test(Ri(e))}function bs(e){try{if(e.matches(":popover-open"))return!0}catch(t){}try{return e.matches(":modal")}catch(t){return!1}}function Nc(e){let t=Yt(e)?Xt(e):e;return Mr(t.transform)||Mr(t.translate)||Mr(t.scale)||Mr(t.rotate)||Mr(t.perspective)||!Dc()&&(Mr(t.backdropFilter)||Mr(t.filter))||JC.test(t.willChange||"")||QC.test(t.contain||"")}function eI(e){let t=ur(e);for(;$n(t)&&!xi(t);){if(Nc(t))return t;if(bs(t))return null;t=ur(t)}return null}function Dc(){return Tc==null&&(Tc=typeof CSS!="undefined"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Tc}function xi(e){return/^(html|body|#document)$/.test(Ri(e))}function Xt(e){return Et(e).getComputedStyle(e)}function Es(e){return Yt(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function ur(e){if(Ri(e)==="html")return e;let t=e.assignedSlot||e.parentNode||Yh(e)&&e.host||un(e);return Yh(t)?t.host:t}function sp(e){let t=ur(e);return xi(t)?e.ownerDocument?e.ownerDocument.body:e.body:$n(t)&&Ia(t)?t:sp(t)}function Ca(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);let i=sp(e),a=i===((r=e.ownerDocument)==null?void 0:r.body),o=Et(i);if(a){let s=xc(o);return t.concat(o,o.visualViewport||[],Ia(i)?i:[],s&&n?Ca(s):[])}else return t.concat(i,Ca(i,[],n))}function xc(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function lp(e){let t=Xt(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=$n(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=fs(n)!==a||fs(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function Lc(e){return Yt(e)?e:e.contextElement}function Vi(e){let t=Lc(e);if(!$n(t))return dn(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=lp(t),o=(a?fs(n.width):n.width)/r,s=(a?fs(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}function cp(e){let t=Et(e);return!Dc()||!t.visualViewport?tI:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function nI(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==Et(e)?!1:t}function Fr(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=Lc(e),o=dn(1);t&&(r?Yt(r)&&(o=Vi(r)):o=Vi(e));let s=nI(a,n,r)?cp(a):dn(0),l=(i.left+s.x)/o.x,c=(i.top+s.y)/o.y,d=i.width/o.x,g=i.height/o.y;if(a){let h=Et(a),u=r&&Yt(r)?Et(r):r,f=h,m=xc(f);for(;m&&r&&u!==f;){let P=Vi(m),C=m.getBoundingClientRect(),x=Xt(m),T=C.left+(m.clientLeft+parseFloat(x.paddingLeft))*P.x,b=C.top+(m.clientTop+parseFloat(x.paddingTop))*P.y;l*=P.x,c*=P.y,d*=P.x,g*=P.y,l+=T,c+=b,f=Et(m),m=xc(f)}}return vs({width:d,height:g,x:l,y:c})}function Ss(e,t){let n=Es(e).scrollLeft;return t?t.left+n:Fr(un(e)).left+n}function dp(e,t){let n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-Ss(e,n),i=n.top+t.scrollTop;return{x:r,y:i}}function rI(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i==="fixed",o=un(r),s=t?bs(t.floating):!1;if(r===o||s&&a)return n;let l={scrollLeft:0,scrollTop:0},c=dn(1),d=dn(0),g=$n(r);if((g||!g&&!a)&&((Ri(r)!=="body"||Ia(o))&&(l=Es(r)),g)){let u=Fr(r);c=Vi(r),d.x=u.x+r.clientLeft,d.y=u.y+r.clientTop}let h=o&&!g&&!a?dp(o,l):dn(0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-l.scrollLeft*c.x+d.x+h.x,y:n.y*c.y-l.scrollTop*c.y+d.y+h.y}}function iI(e){return Array.from(e.getClientRects())}function aI(e){let t=un(e),n=Es(e),r=e.ownerDocument.body,i=bt(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=bt(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+Ss(e),s=-n.scrollTop;return Xt(r).direction==="rtl"&&(o+=bt(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}function oI(e,t){let n=Et(e),r=un(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,l=0;if(i){a=i.width,o=i.height;let d=Dc();(!d||d&&t==="fixed")&&(s=i.offsetLeft,l=i.offsetTop)}let c=Ss(r);if(c<=0){let d=r.ownerDocument,g=d.body,h=getComputedStyle(g),u=d.compatMode==="CSS1Compat"&&parseFloat(h.marginLeft)+parseFloat(h.marginRight)||0,f=Math.abs(r.clientWidth-g.clientWidth-u);f<=Xh&&(a-=f)}else c<=Xh&&(a+=c);return{width:a,height:o,x:s,y:l}}function sI(e,t){let n=Fr(e,!0,t==="fixed"),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=$n(e)?Vi(e):dn(1),o=e.clientWidth*a.x,s=e.clientHeight*a.y,l=i*a.x,c=r*a.y;return{width:o,height:s,x:l,y:c}}function Zh(e,t,n){let r;if(t==="viewport")r=oI(e,n);else if(t==="document")r=aI(un(e));else if(Yt(t))r=sI(t,n);else{let i=cp(e);r={x:t.x-i.x,y:t.y-i.y,width:t.width,height:t.height}}return vs(r)}function up(e,t){let n=ur(e);return n===t||!Yt(n)||xi(n)?!1:Xt(n).position==="fixed"||up(n,t)}function lI(e,t){let n=t.get(e);if(n)return n;let r=Ca(e,[],!1).filter(s=>Yt(s)&&Ri(s)!=="body"),i=null,a=Xt(e).position==="fixed",o=a?ur(e):e;for(;Yt(o)&&!xi(o);){let s=Xt(o),l=Nc(o);!l&&s.position==="fixed"&&(i=null),(a?!l&&!i:!l&&s.position==="static"&&!!i&&(i.position==="absolute"||i.position==="fixed")||Ia(o)&&!l&&up(e,o))?r=r.filter(d=>d!==o):i=s,o=ur(o)}return t.set(e,r),r}function cI(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,o=[...n==="clippingAncestors"?bs(t)?[]:lI(t,this._c):[].concat(n),r],s=Zh(t,o[0],i),l=s.top,c=s.right,d=s.bottom,g=s.left;for(let h=1;h{o(!1,1e-7)},1e3)}A===1&&!hp(c,e.getBoundingClientRect())&&o(),b=!1}try{n=new IntersectionObserver(y,v(p({},T),{root:i.ownerDocument}))}catch(S){n=new IntersectionObserver(y,T)}n.observe(e)}return o(!0),a}function mI(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:l=!1}=r,c=Lc(e),d=i||a?[...c?Ca(c):[],...t?Ca(t):[]]:[];d.forEach(C=>{i&&C.addEventListener("scroll",n,{passive:!0}),a&&C.addEventListener("resize",n)});let g=c&&s?fI(c,n):null,h=-1,u=null;o&&(u=new ResizeObserver(C=>{let[x]=C;x&&x.target===c&&u&&t&&(u.unobserve(t),cancelAnimationFrame(h),h=requestAnimationFrame(()=>{var T;(T=u)==null||T.observe(t)})),n()}),c&&!l&&u.observe(c),t&&u.observe(t));let f,m=l?Fr(e):null;l&&P();function P(){let C=Fr(e);m&&!hp(m,C)&&n(),m=C,f=requestAnimationFrame(P)}return n(),()=>{var C;d.forEach(x=>{i&&x.removeEventListener("scroll",n),a&&x.removeEventListener("resize",n)}),g==null||g(),(C=u)==null||C.disconnect(),u=null,l&&cancelAnimationFrame(f)}}function Qh(e=0,t=0,n=0,r=0){if(typeof DOMRect=="function")return new DOMRect(e,t,n,r);let i={x:e,y:t,width:n,height:r,top:t,right:e+n,bottom:t+r,left:e};return v(p({},i),{toJSON:()=>i})}function TI(e){if(!e)return Qh();let{x:t,y:n,width:r,height:i}=e;return Qh(t,n,r,i)}function wI(e,t){return{contextElement:ye(e)?e:e==null?void 0:e.contextElement,getBoundingClientRect:()=>{let n=e,r=t==null?void 0:t(n);return r||!n?TI(r):n.getBoundingClientRect()}}}function VI(e,t){return{name:"transformOrigin",fn(n){var O,w,k,R,D;let{elements:r,middlewareData:i,placement:a,rects:o,y:s}=n,l=a.split("-")[0],c=OI(l),d=((O=i.arrow)==null?void 0:O.x)||0,g=((w=i.arrow)==null?void 0:w.y)||0,h=(t==null?void 0:t.clientWidth)||0,u=(t==null?void 0:t.clientHeight)||0,f=d+h/2,m=g+u/2,P=Math.abs(((k=i.shift)==null?void 0:k.y)||0),C=o.reference.height/2,x=u/2,T=(D=(R=e.offset)==null?void 0:R.mainAxis)!=null?D:e.gutter,b=typeof T=="number"?T+x:T!=null?T:x,y=P>b,S={top:`${f}px calc(100% + ${b}px)`,bottom:`${f}px ${-b}px`,left:`calc(100% + ${b}px) ${m}px`,right:`${-b}px ${m}px`}[l],A=`${f}px ${o.reference.y+C-s}px`,N=!!e.overlap&&c==="y"&&y;return r.floating.style.setProperty(Mn.transformOrigin.variable,N?A:S),{data:{transformOrigin:N?A:S}}}}}function ep(e,t){let n=e.devicePixelRatio||1;return Math.round(t*n)/n}function Oi(e,t){return e!=null&&Math.abs(e-t)<.5}function Mc(e){return typeof e=="function"?e():e==="clipping-ancestors"?"clippingAncestors":e}function kI(e,t,n){let r=e||t.createElement("div");return PI({element:r,padding:n.arrowPadding})}function NI(e,t){var n;if(!rg((n=t.offset)!=null?n:t.gutter))return vI(({placement:r})=>{var d,g,h,u;let i=((e==null?void 0:e.clientHeight)||0)/2,a=(g=(d=t.offset)==null?void 0:d.mainAxis)!=null?g:t.gutter,o=typeof a=="number"?a+i:a!=null?a:i,{hasAlign:s}=AC(r),l=s?void 0:t.shift,c=(u=(h=t.offset)==null?void 0:h.crossAxis)!=null?u:l;return On({crossAxis:c,mainAxis:o,alignmentAxis:t.shift})})}function DI(e){if(!e.flip)return;let t=Mc(e.boundary);return bI(v(p({},t?{boundary:t}:void 0),{padding:e.overflowPadding,fallbackPlacements:e.flip===!0?void 0:e.flip}))}function LI(e){if(!e.slide&&!e.overlap)return;let t=Mc(e.boundary);return yI(v(p({},t?{boundary:t}:void 0),{mainAxis:e.slide,crossAxis:e.overlap,padding:e.overflowPadding,limiter:CI()}))}function MI(e){if(e.sizeMiddleware===!1&&!e.sameWidth&&!e.fitViewport)return;let t,n,r,i;return EI({padding:e.overflowPadding,apply({elements:a,rects:o,availableHeight:s,availableWidth:l}){let c=a.floating,d=Math.round(o.reference.width),g=Math.round(o.reference.height);l=Math.floor(l),s=Math.floor(s),Oi(t,d)||(c.style.setProperty("--reference-width",`${d}px`),t=d),Oi(n,g)||(c.style.setProperty("--reference-height",`${g}px`),n=g),Oi(r,l)||(c.style.setProperty("--available-width",`${l}px`),r=l),Oi(i,s)||(c.style.setProperty("--available-height",`${s}px`),i=s)}})}function FI(e){var t;if(e.hideWhenDetached)return SI({strategy:"referenceHidden",boundary:(t=Mc(e.boundary))!=null?t:"clippingAncestors"})}function _I(e){return e?e===!0?{ancestorResize:!0,ancestorScroll:!0,elementResize:!0,layoutShift:!0}:e:{}}function tp(e,t){if(!e)return _l;let n=new Map(t.map(r=>[r,e.style.getPropertyValue(r)]));return()=>{n.forEach((r,i)=>{r?e.style.setProperty(i,r):e.style.removeProperty(i)}),e.style.length===0&&e.removeAttribute("style")}}function np(e){return e==null?null:ye(e)?e:typeof e=="object"&&e&&"contextElement"in e&&e.contextElement?e.contextElement:e}function BI(e,t,n={}){let r=()=>{let w=typeof t=="function"?t():t;return w!=null?w:null},i=()=>{var k,R;let w=typeof e=="function"?e():e;return(R=(k=n.getAnchorElement)==null?void 0:k.call(n))!=null?R:w},a=()=>{let w=i();return!w&&!n.getAnchorRect?null:wI(w,n.getAnchorRect)},o=Object.assign({},RI,n),s=[],l=null,c,d;function g(w){c==null||c(),d==null||d(),l=w,c=o.restoreStyles?tp(w,$I):void 0;let k=w.querySelector("[data-part=arrow]");d=o.restoreStyles?tp(k,HI):void 0,s=[NI(k,o),DI(o),LI(o),kI(k,w.ownerDocument,o),AI(k),VI({gutter:o.gutter,offset:o.offset,overlap:o.overlap},k),MI(o),FI(o),xI]}let{placement:h,strategy:u,onComplete:f,onPositioned:m}=o,P,C,x=!1,T,b,y=_l,S=_I(o.listeners);function A(){if(!o.listeners)return;let w=i(),k=a(),R=r();if(!k||!R)return;(np(w)!==np(T)||R!==b)&&(y(),T=w,b=R,y=mI(k,R,O,S))}function N(){return Ge(this,null,function*(){var ue;A();let w=r();if(!w)return;w!==l&&(g(w),x=!1);let k=a();if(!k)return;let R=yield II(k,w,{placement:h,middleware:s,strategy:u});f==null||f(R);let D=be(w),W=ep(D,R.x),ee=ep(D,R.y);if(Oi(P,W)||(w.style.setProperty("--x",`${W}px`),P=W),Oi(C,ee)||(w.style.setProperty("--y",`${ee}px`),C=ee),o.hideWhenDetached&&(((ue=R.middlewareData.hide)==null?void 0:ue.referenceHidden)?(w.style.setProperty("visibility","hidden"),w.style.setProperty("pointer-events","none")):(w.style.removeProperty("visibility"),w.style.removeProperty("pointer-events"))),!x){let z=w.firstElementChild;z&&(w.style.setProperty("--z-index",At(z).zIndex),x=!0)}})}function O(){return Ge(this,null,function*(){n.updatePosition?(yield n.updatePosition({updatePosition:N,floatingElement:r()}),m==null||m({placed:!0})):yield N()})}return O(),()=>{y(),d==null||d(),c==null||c(),m==null||m({placed:!1})}}function je(e,t,n={}){let s=n,{defer:r}=s,i=ft(s,["defer"]),a=r?$:l=>l(),o=[];return o.push(a(()=>{o.push(BI(e,t,i))})),()=>{o.forEach(l=>l==null?void 0:l())}}function Lt(e={}){let{placement:t,sameWidth:n,fitViewport:r,strategy:i="absolute"}=e;return{arrow:{position:"absolute",width:Mn.arrowSize.reference,height:Mn.arrowSize.reference,[Mn.arrowSizeHalf.variable]:`calc(${Mn.arrowSize.reference} / 2)`,[Mn.arrowOffset.variable]:`calc(${Mn.arrowSizeHalf.reference} * -1)`},arrowTip:{transform:t?GI[t.split("-")[0]]:void 0,background:Mn.arrowBg.reference,top:"0",left:"0",width:"100%",height:"100%",position:"absolute",zIndex:"inherit"},floating:{position:i,isolation:"isolate",minWidth:n?void 0:"max-content",width:n?"var(--reference-width)":void 0,maxWidth:r?"var(--available-width)":void 0,maxHeight:r?"var(--available-height)":void 0,pointerEvents:t?void 0:"none",top:"0px",left:"0px",transform:t?"translate3d(var(--x), var(--y), 0)":"translate3d(0, -100vh, 0)",zIndex:"var(--z-index)"}}}var RC,dr,bt,fs,ps,dn,kC,qh,Wh,LC,MC,BC,GC,UC,qC,WC,ap,jC,zC,YC,XC,JC,QC,Mr,Tc,tI,Xh,gI,pI,vI,yI,bI,EI,SI,PI,CI,II,Pa,Mn,OI,xI,AI,RI,$I,HI,GI,_r=ne(()=>{"use strict";se();RC=["top","right","bottom","left"],dr=Math.min,bt=Math.max,fs=Math.round,ps=Math.floor,dn=e=>({x:e,y:e}),kC={left:"right",right:"left",bottom:"top",top:"bottom"};qh=["left","right"],Wh=["right","left"],LC=["top","bottom"],MC=["bottom","top"];BC=50,GC=(e,t,n)=>Ge(null,null,function*(){let{placement:r="bottom",strategy:i="absolute",middleware:a=[],platform:o}=n,s=o.detectOverflow?o:v(p({},o),{detectOverflow:HC}),l=yield o.isRTL==null?void 0:o.isRTL(t),c=yield o.getElementRects({reference:e,floating:t,strategy:i}),{x:d,y:g}=Kh(c,r,l),h=r,u=0,f={};for(let m=0;m({name:"arrow",options:e,fn(n){return Ge(this,null,function*(){let{x:r,y:i,placement:a,rects:o,platform:s,elements:l,middlewareData:c}=n,{element:d,padding:g=0}=Fn(e,n)||{};if(d==null)return{};let h=ip(g),u={x:r,y:i},f=kc(a),m=Rc(f),P=yield s.getDimensions(d),C=f==="y",x=C?"top":"left",T=C?"bottom":"right",b=C?"clientHeight":"clientWidth",y=o.reference[m]+o.reference[f]-u[f]-o.floating[m],S=u[f]-o.reference[f],A=yield s.getOffsetParent==null?void 0:s.getOffsetParent(d),N=A?A[b]:0;(!N||!(yield s.isElement==null?void 0:s.isElement(A)))&&(N=l.floating[b]||o.floating[m]);let O=y/2-S/2,w=N/2-P[m]/2-1,k=dr(h[x],w),R=dr(h[T],w),D=k,W=N-P[m]-R,ee=N/2-P[m]/2+O,ue=Oc(D,ee,W),z=!c.arrow&&Ai(a)!=null&&ee!==ue&&o.reference[m]/2-(eeue<=0)){var R,D;let ue=(((R=o.flip)==null?void 0:R.index)||0)+1,z=N[ue];if(z&&(!(h==="alignment"?T!==cn(z):!1)||k.every(ae=>cn(ae.placement)===T?ae.overflows[0]>0:!0)))return{data:{index:ue,overflows:k},reset:{placement:z}};let le=(D=k.filter(he=>he.overflows[0]<=0).sort((he,ae)=>he.overflows[1]-ae.overflows[1])[0])==null?void 0:D.placement;if(!le)switch(f){case"bestFit":{var W;let he=(W=k.filter(ae=>{if(A){let De=cn(ae.placement);return De===T||De==="y"}return!0}).map(ae=>[ae.placement,ae.overflows.filter(De=>De>0).reduce((De,Le)=>De+Le,0)]).sort((ae,De)=>ae[1]-De[1])[0])==null?void 0:W[0];he&&(le=he);break}case"initialPlacement":le=l;break}if(a!==le)return{reset:{placement:le}}}return{}})}}};WC=function(e){return e===void 0&&(e={}),{name:"hide",options:e,fn(n){return Ge(this,null,function*(){let{rects:r,platform:i}=n,s=Fn(e,n),{strategy:a="referenceHidden"}=s,o=ft(s,["strategy"]);switch(a){case"referenceHidden":{let l=yield i.detectOverflow(n,v(p({},o),{elementContext:"reference"})),c=jh(l,r.reference);return{data:{referenceHiddenOffsets:c,referenceHidden:zh(c)}}}case"escaped":{let l=yield i.detectOverflow(n,v(p({},o),{altBoundary:!0})),c=jh(l,r.floating);return{data:{escapedOffsets:c,escaped:zh(c)}}}default:return{}}})}}},ap=new Set(["left","top"]);jC=function(e){return e===void 0&&(e=0),{name:"offset",options:e,fn(n){return Ge(this,null,function*(){var r,i;let{x:a,y:o,placement:s,middlewareData:l}=n,c=yield KC(n,e);return s===((r=l.offset)==null?void 0:r.placement)&&(i=l.arrow)!=null&&i.alignmentOffset?{}:{x:a+c.x,y:o+c.y,data:v(p({},c),{placement:s})}})}}},zC=function(e){return e===void 0&&(e={}),{name:"shift",options:e,fn(n){return Ge(this,null,function*(){let{x:r,y:i,placement:a,platform:o}=n,x=Fn(e,n),{mainAxis:s=!0,crossAxis:l=!1,limiter:c={fn:T=>{let{x:b,y}=T;return{x:b,y}}}}=x,d=ft(x,["mainAxis","crossAxis","limiter"]),g={x:r,y:i},h=yield o.detectOverflow(n,d),u=cn(_n(a)),f=Ac(u),m=g[f],P=g[u];if(s){let T=f==="y"?"top":"left",b=f==="y"?"bottom":"right",y=m+h[T],S=m-h[b];m=Oc(y,m,S)}if(l){let T=u==="y"?"top":"left",b=u==="y"?"bottom":"right",y=P+h[T],S=P-h[b];P=Oc(y,P,S)}let C=c.fn(v(p({},n),{[f]:m,[u]:P}));return v(p({},C),{data:{x:C.x-r,y:C.y-i,enabled:{[f]:s,[u]:l}}})})}}},YC=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:l=!0,crossAxis:c=!0}=Fn(e,t),d={x:n,y:r},g=cn(i),h=Ac(g),u=d[h],f=d[g],m=Fn(s,t),P=typeof m=="number"?{mainAxis:m,crossAxis:0}:p({mainAxis:0,crossAxis:0},m);if(l){let T=h==="y"?"height":"width",b=a.reference[h]-a.floating[T]+P.mainAxis,y=a.reference[h]+a.reference[T]-P.mainAxis;uy&&(u=y)}if(c){var C,x;let T=h==="y"?"width":"height",b=ap.has(_n(i)),y=a.reference[g]-a.floating[T]+(b&&((C=o.offset)==null?void 0:C[g])||0)+(b?0:P.crossAxis),S=a.reference[g]+a.reference[T]+(b?0:((x=o.offset)==null?void 0:x[g])||0)-(b?P.crossAxis:0);fS&&(f=S)}return{[h]:u,[g]:f}}}},XC=function(e){return e===void 0&&(e={}),{name:"size",options:e,fn(n){return Ge(this,null,function*(){var r,i;let{placement:a,rects:o,platform:s,elements:l}=n,k=Fn(e,n),{apply:c=()=>{}}=k,d=ft(k,["apply"]),g=yield s.detectOverflow(n,d),h=_n(a),u=Ai(a),f=cn(a)==="y",{width:m,height:P}=o.floating,C,x;h==="top"||h==="bottom"?(C=h,x=u===((yield s.isRTL==null?void 0:s.isRTL(l.floating))?"start":"end")?"left":"right"):(x=h,C=u==="end"?"top":"bottom");let T=P-g.top-g.bottom,b=m-g.left-g.right,y=dr(P-g[C],T),S=dr(m-g[x],b),A=!n.middlewareData.shift,N=y,O=S;if((r=n.middlewareData.shift)!=null&&r.enabled.x&&(O=b),(i=n.middlewareData.shift)!=null&&i.enabled.y&&(N=T),A&&!u){let R=bt(g.left,0),D=bt(g.right,0),W=bt(g.top,0),ee=bt(g.bottom,0);f?O=m-2*(R!==0||D!==0?R+D:bt(g.left,g.right)):N=P-2*(W!==0||ee!==0?W+ee:bt(g.top,g.bottom))}yield c(v(p({},n),{availableWidth:O,availableHeight:N}));let w=yield s.getDimensions(l.floating);return m!==w.width||P!==w.height?{reset:{rects:!0}}:{}})}}};JC=/transform|translate|scale|rotate|perspective|filter/,QC=/paint|layout|strict|content/,Mr=e=>!!e&&e!=="none";tI=dn(0);Xh=25;gI=function(e){return Ge(this,null,function*(){let t=this.getOffsetParent||gp,n=this.getDimensions,r=yield n(e.floating);return{reference:uI(e.reference,yield t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}})};pI={convertOffsetParentRelativeRectToViewportRelativeRect:rI,getDocumentElement:un,getClippingRect:cI,getOffsetParent:gp,getElementRects:gI,getClientRects:iI,getDimensions:dI,getScale:Vi,isElement:Yt,isRTL:hI};vI=jC,yI=zC,bI=qC,EI=XC,SI=WC,PI=UC,CI=YC,II=(e,t,n)=>{let r=new Map,i=p({platform:pI},n),a=v(p({},i.platform),{_c:r});return GC(e,t,v(p({},i),{platform:a}))};Pa=e=>({variable:e,reference:`var(${e})`}),Mn={arrowSize:Pa("--arrow-size"),arrowSizeHalf:Pa("--arrow-size-half"),arrowBg:Pa("--arrow-background"),transformOrigin:Pa("--transform-origin"),arrowOffset:Pa("--arrow-offset")},OI=e=>e==="top"||e==="bottom"?"y":"x";xI={name:"rects",fn({rects:e}){return{data:e}}},AI=e=>{if(e)return{name:"shiftArrow",fn({placement:t,middlewareData:n}){if(!n.arrow)return{};let{x:r,y:i}=n.arrow,a=t.split("-")[0];return Object.assign(e.style,{left:r!=null?`${r}px`:"",top:i!=null?`${i}px`:"",[a]:`calc(100% + ${Mn.arrowOffset.reference})`}),{}}}},RI={strategy:"absolute",placement:"bottom",listeners:!0,restoreStyles:!1,gutter:8,flip:!0,slide:!0,overlap:!1,sameWidth:!1,fitViewport:!1,overflowPadding:8,arrowPadding:4};$I=["transform","visibility","pointer-events","--x","--y","--z-index","--reference-width","--reference-height","--available-width","--available-height","--transform-origin"],HI=["top","right","bottom","left"];GI={bottom:"rotate(45deg)",left:"rotate(135deg)",top:"rotate(225deg)",right:"rotate(315deg)"}});function UI(e){let t={each(n){var r;for(let i=0;i<((r=e.frames)==null?void 0:r.length);i+=1){let a=e.frames[i];a&&n(a)}},addEventListener(n,r,i){return t.each(a=>{try{a.document.addEventListener(n,r,i)}catch(o){}}),()=>{try{t.removeEventListener(n,r,i)}catch(a){}}},removeEventListener(n,r,i){t.each(a=>{try{a.document.removeEventListener(n,r,i)}catch(o){}})}};return t}function qI(e){let t=e.frameElement!=null?e.parent:null;return{addEventListener:(n,r,i)=>{try{t==null||t.addEventListener(n,r,i)}catch(a){}return()=>{try{t==null||t.removeEventListener(n,r,i)}catch(a){}}},removeEventListener:(n,r,i)=>{try{t==null||t.removeEventListener(n,r,i)}catch(a){}}}}function WI(e){for(let t of e)if(ye(t)&<(t))return!0;return!1}function KI(e,t){if(!yp(t)||!e)return!1;let n=e.getBoundingClientRect();return n.width===0||n.height===0?!1:n.top<=t.clientY&&t.clientY<=n.top+n.height&&n.left<=t.clientX&&t.clientX<=n.left+n.width}function jI(e,t){return e.y<=t.y&&t.y<=e.y+e.height&&e.x<=t.x&&t.x<=e.x+e.width}function mp(e,t){if(!t||!yp(e))return!1;let n=t.scrollHeight>t.clientHeight,r=n&&e.clientX>t.offsetLeft+t.clientWidth,i=t.scrollWidth>t.clientWidth,a=i&&e.clientY>t.offsetTop+t.clientHeight,o={x:t.offsetLeft,y:t.offsetTop,width:t.clientWidth+(n?16:0),height:t.clientHeight+(i?16:0)},s={x:e.clientX,y:e.clientY};return jI(o,s)?r||a:!1}function zI(e,t){let{exclude:n,onFocusOutside:r,onPointerDownOutside:i,onInteractOutside:a,defer:o,followControlledElements:s=!0}=t;if(!e)return;let l=We(e),c=be(e),d=UI(c),g=qI(c);function h(b,y){if(!ye(y)||!y.isConnected||ge(e,y)||KI(e,b)||s&&No(e,y))return!1;let S=l.querySelector(`[aria-controls="${e.id}"]`);if(S){let N=fa(S);if(mp(b,N))return!1}let A=fa(e);return mp(b,A)?!1:!(n!=null&&n(y))}let u=new Set,f=Vr(e==null?void 0:e.getRootNode()),m=!1;function P(b){m=!0;let y=()=>{m=!1};l.addEventListener("pointerup",y,{once:!0}),c.addEventListener("pointerup",y,{once:!0});function S(A){var k,R;let N=o&&!Wl()?$:D=>D(),O=A!=null?A:b,w=(R=(k=O==null?void 0:O.composedPath)==null?void 0:k.call(O))!=null?R:[O==null?void 0:O.target];N(()=>{let D=f?w[0]:Q(b);if(!(!e||!h(b,D))){if(i||a){let W=vt(i,a);e.addEventListener(pp,W,{once:!0})}vp(e,pp,{bubbles:!1,cancelable:!0,detail:{originalEvent:O,contextmenu:tr(O),focusable:WI(w),target:D}})}})}b.pointerType==="touch"?(u.forEach(A=>A()),u.add(re(l,"click",S,{once:!0})),u.add(g.addEventListener("click",S,{once:!0})),u.add(d.addEventListener("click",S,{once:!0}))):S()}let C=new Set,x=setTimeout(()=>{C.add(re(l,"pointerdown",P,!0)),C.add(g.addEventListener("pointerdown",P,!0)),C.add(d.addEventListener("pointerdown",P,!0))},0);function T(b){if(m)return;(o?$:S=>S())(()=>{var N,O;let S=(O=(N=b==null?void 0:b.composedPath)==null?void 0:N.call(b))!=null?O:[b==null?void 0:b.target],A=f?S[0]:Q(b);if(!(!e||!h(b,A))){if(r||a){let w=vt(r,a);e.addEventListener(fp,w,{once:!0})}vp(e,fp,{bubbles:!1,cancelable:!0,detail:{originalEvent:b,contextmenu:!1,focusable:lt(A),target:A}})}})}return Wl()||(C.add(re(l,"focusin",T,!0)),C.add(g.addEventListener("focusin",T,!0)),C.add(d.addEventListener("focusin",T,!0))),()=>{clearTimeout(x),u.forEach(b=>b()),C.forEach(b=>b())}}function Ps(e,t){let{defer:n}=t,r=n?$:a=>a(),i=[];return i.push(r(()=>{let a=typeof e=="function"?e():e;i.push(zI(a,t))})),()=>{i.forEach(a=>a==null?void 0:a())}}function vp(e,t,n){let r=e.ownerDocument.defaultView||window,i=new r.CustomEvent(t,n);return e.dispatchEvent(i)}var pp,fp,yp,gn=ne(()=>{"use strict";se();pp="pointerdown.outside",fp="focus.outside";yp=e=>"clientY"in e});function YI(e,t){let n=r=>{r.key==="Escape"&&(r.isComposing||t==null||t(r))};return re(We(e),"keydown",n,{capture:!0})}function XI(e,t,n){let r=e.ownerDocument.defaultView||window,i=new r.CustomEvent(t,{cancelable:!0,bubbles:!0,detail:n});return e.dispatchEvent(i)}function ZI(e,t,n){e.addEventListener(t,n,{once:!0})}function Sp(){ut.layers.forEach(({node:e})=>{e.style.pointerEvents=ut.isBelowPointerBlockingLayer(e)?"none":"auto"})}function JI(e){e.style.pointerEvents=""}function QI(e,t){let n=We(e),r=[];return ut.hasPointerBlockingLayer()&&!n.body.hasAttribute("data-inert")&&(Ep=document.body.style.pointerEvents,queueMicrotask(()=>{n.body.style.pointerEvents="none",n.body.setAttribute("data-inert","")})),t==null||t.forEach(i=>{let[a,o]=kg(()=>{let s=i();return ye(s)?s:null},{timeout:1e3});a.then(s=>r.push(Rr(s,{pointerEvents:"auto"}))),r.push(o)}),()=>{ut.hasPointerBlockingLayer()||(queueMicrotask(()=>{n.body.style.pointerEvents=Ep,n.body.removeAttribute("data-inert"),n.body.style.length===0&&n.body.removeAttribute("style")}),r.forEach(i=>i()))}}function eT(e,t){let{warnOnMissingNode:n=!0}=t;if(n&&!e){Ut("[@zag-js/dismissable] node is `null` or `undefined`");return}if(!e)return;let{onDismiss:r,onRequestDismiss:i,pointerBlocking:a,exclude:o,debug:s,type:l="dialog"}=t,c={dismiss:r,node:e,type:l,pointerBlocking:a,requestDismiss:i};ut.add(c),Sp();function d(m){var C,x;let P=Q(m.detail.originalEvent);ut.isBelowPointerBlockingLayer(e)||ut.isInBranch(P)||((C=t.onPointerDownOutside)==null||C.call(t,m),(x=t.onInteractOutside)==null||x.call(t,m),!m.defaultPrevented&&(s&&console.log("onPointerDownOutside:",m.detail.originalEvent),r==null||r()))}function g(m){var C,x;let P=Q(m.detail.originalEvent);ut.isInBranch(P)||((C=t.onFocusOutside)==null||C.call(t,m),(x=t.onInteractOutside)==null||x.call(t,m),!m.defaultPrevented&&(s&&console.log("onFocusOutside:",m.detail.originalEvent),r==null||r()))}function h(m){var P;ut.isTopMost(e)&&((P=t.onEscapeKeyDown)==null||P.call(t,m),!m.defaultPrevented&&r&&(m.preventDefault(),r()))}function u(m){var T;if(!e)return!1;let P=typeof o=="function"?o():o,C=Array.isArray(P)?P:[P],x=(T=t.persistentElements)==null?void 0:T.map(b=>b()).filter(ye);return x&&C.push(...x),C.some(b=>ge(b,m))||ut.isInNestedLayer(e,m)}let f=[a?QI(e,t.persistentElements):void 0,YI(e,h),Ps(e,{exclude:u,onFocusOutside:g,onPointerDownOutside:d,defer:t.defer})];return()=>{ut.remove(e),Sp(),JI(e),f.forEach(m=>m==null?void 0:m())}}function Mt(e,t){let{defer:n}=t,r=n?$:a=>a(),i=[];return i.push(r(()=>{let a=Xe(e)?e():e;i.push(eT(a,t))})),()=>{i.forEach(a=>a==null?void 0:a())}}function Pp(e,t={}){let{defer:n}=t,r=n?$:a=>a(),i=[];return i.push(r(()=>{let a=Xe(e)?e():e;if(!a){Ut("[@zag-js/dismissable] branch node is `null` or `undefined`");return}ut.addBranch(a),i.push(()=>{ut.removeBranch(a)})})),()=>{i.forEach(a=>a==null?void 0:a())}}var bp,ut,Ep,gr=ne(()=>{"use strict";gn();se();bp="layer:request-dismiss",ut={layers:[],branches:[],recentlyRemoved:new Set,count(){return this.layers.length},pointerBlockingLayers(){return this.layers.filter(e=>e.pointerBlocking)},topMostPointerBlockingLayer(){return[...this.pointerBlockingLayers()].slice(-1)[0]},hasPointerBlockingLayer(){return this.pointerBlockingLayers().length>0},isBelowPointerBlockingLayer(e){var r;let t=this.indexOf(e),n=this.topMostPointerBlockingLayer()?this.indexOf((r=this.topMostPointerBlockingLayer())==null?void 0:r.node):-1;return tt.type===e)},getNestedLayersByType(e,t){let n=this.indexOf(e);return n===-1?[]:this.layers.slice(n+1).filter(r=>r.type===t)},getParentLayerOfType(e,t){let n=this.indexOf(e);if(!(n<=0))return this.layers.slice(0,n).reverse().find(r=>r.type===t)},countNestedLayersOfType(e,t){return this.getNestedLayersByType(e,t).length},isInNestedLayer(e,t){return!!(this.getNestedLayers(e).some(r=>ge(r.node,t))||this.recentlyRemoved.size>0)},isInBranch(e){return Array.from(this.branches).some(t=>ge(t,e))},add(e){this.layers.push(e),this.syncLayers()},addBranch(e){this.branches.push(e)},remove(e){let t=this.indexOf(e);t<0||(this.recentlyRemoved.add(e),Ar(()=>this.recentlyRemoved.delete(e)),tut.dismiss(r.node,e)),this.layers.splice(t,1),this.syncLayers())},removeBranch(e){let t=this.branches.indexOf(e);t>=0&&this.branches.splice(t,1)},syncLayers(){this.layers.forEach((e,t)=>{e.node.style.setProperty("--layer-index",`${t}`),e.node.removeAttribute("data-nested"),e.node.removeAttribute("data-has-nested"),this.getParentLayerOfType(e.node,e.type)&&e.node.setAttribute("data-nested",e.type);let r=this.countNestedLayersOfType(e.node,e.type);r>0&&e.node.setAttribute("data-has-nested",e.type),e.node.style.setProperty("--nested-layer-count",`${r}`)})},indexOf(e){return this.layers.findIndex(t=>t.node===e)},dismiss(e,t){let n=this.indexOf(e);if(n===-1)return;let r=this.layers[n];ZI(e,bp,i=>{var a;(a=r.requestDismiss)==null||a.call(r,i),i.defaultPrevented||r==null||r.dismiss()}),XI(e,bp,{originalLayer:e,targetLayer:t,originalIndex:n,targetIndex:t?this.indexOf(t):-1}),this.syncLayers()},clear(){this.remove(this.layers[0].node)}}});function Cp(e){var t,n;return(n=(t=e.id)!=null?t:e.value)!=null?n:""}function Cs(e,t){return t?{items:e,itemToValue:n=>Cp(n),itemToString:n=>n.label,isItemDisabled:n=>!!n.disabled,groupBy:n=>{var r;return(r=n.group)!=null?r:""}}:{items:e,itemToValue:n=>Cp(n),itemToString:n=>n.label,isItemDisabled:n=>!!n.disabled}}function Ip(e,t){return t?{items:e,itemToValue:n=>{var r;return(r=n.id)!=null?r:""},itemToString:n=>n.label,isItemDisabled:n=>!!n.disabled,groupBy:n=>{var r;return(r=n.group)!=null?r:""}}:{items:e,itemToValue:n=>{var r;return(r=n.id)!=null?r:""},itemToString:n=>n.label,isItemDisabled:n=>!!n.disabled}}var Is=ne(()=>{"use strict"});function Ta(e,t,...n){return[...e.slice(0,t),...n,...e.slice(t)]}function Ts(e,t,n){t=[...t].sort((i,a)=>i-a);let r=t.map(i=>e[i]);for(let i=t.length-1;i>=0;i--)e=[...e.slice(0,t[i]),...e.slice(t[i]+1)];return n=Math.max(0,n-t.filter(i=>it.getItemValue(n)).filter(Boolean),selectedItems:e,collection:t})}function Ap(e,t,n){for(let r=0;rt[n])return 1}return e.length-t.length}function aT(e){return e.sort(Rp)}function oT(e,t){let n;return St(e,v(p({},t),{onEnter:(r,i)=>{if(t.predicate(r,i))return n=r,"stop"}})),n}function sT(e,t){let n=[];return St(e,{onEnter:(r,i)=>{t.predicate(r,i)&&n.push(r)},getChildren:t.getChildren}),n}function Tp(e,t){let n;return St(e,{onEnter:(r,i)=>{if(t.predicate(r,i))return n=[...i],"stop"},getChildren:t.getChildren}),n}function lT(e,t){let n=t.initialResult;return St(e,v(p({},t),{onEnter:(r,i)=>{n=t.nextResult(n,r,i)}})),n}function cT(e,t){return lT(e,v(p({},t),{initialResult:[],nextResult:(n,r,i)=>(n.push(...t.transform(r,i)),n)}))}function dT(e,t){let{predicate:n,create:r,getChildren:i}=t,a=(o,s)=>{let l=i(o,s),c=[];l.forEach((u,f)=>{let m=[...s,f],P=a(u,m);P&&c.push(P)});let d=s.length===0,g=n(o,s),h=c.length>0;return d||g||h?r(o,c,s):null};return a(e,[])||r(e,[],[])}function uT(e,t){let n=[],r=0,i=new Map,a=new Map;return St(e,{getChildren:t.getChildren,onEnter:(o,s)=>{i.has(o)||i.set(o,r++);let l=t.getChildren(o,s);l.forEach(u=>{a.has(u)||a.set(u,o),i.has(u)||i.set(u,r++)});let c=l.length>0?l.map(u=>i.get(u)):void 0,d=a.get(o),g=d?i.get(d):void 0,h=i.get(o);n.push(v(p({},o),{_children:c,_parent:g,_index:h}))}}),n}function gT(e,t){return{type:"insert",index:e,nodes:t}}function hT(e){return{type:"remove",indexes:e}}function _c(){return{type:"replace"}}function kp(e){return[e.slice(0,-1),e[e.length-1]]}function Np(e,t,n=new Map){var o;let[r,i]=kp(e);for(let s=r.length-1;s>=0;s--){let l=r.slice(0,s).join();switch((o=n.get(l))==null?void 0:o.type){case"remove":continue}n.set(l,_c())}let a=n.get(r.join());switch(a==null?void 0:a.type){case"remove":n.set(r.join(),{type:"removeThenInsert",removeIndexes:a.indexes,insertIndex:i,insertNodes:t});break;default:n.set(r.join(),gT(i,t))}return n}function Dp(e){var r;let t=new Map,n=new Map;for(let i of e){let a=i.slice(0,-1).join(),o=(r=n.get(a))!=null?r:[];o.push(i[i.length-1]),n.set(a,o.sort((s,l)=>s-l))}for(let i of e)for(let a=i.length-2;a>=0;a--){let o=i.slice(0,a).join();t.has(o)||t.set(o,_c())}for(let[i,a]of n)t.set(i,hT(a));return t}function pT(e,t){let n=new Map,[r,i]=kp(e);for(let a=r.length-1;a>=0;a--){let o=r.slice(0,a).join();n.set(o,_c())}return n.set(r.join(),{type:"removeThenInsert",removeIndexes:[i],insertIndex:i,insertNodes:[t]}),n}function Vs(e,t,n){return fT(e,v(p({},n),{getChildren:(r,i)=>{let a=i.join(),o=t.get(a);switch(o==null?void 0:o.type){case"replace":case"remove":case"removeThenInsert":case"insert":return n.getChildren(r,i);default:return[]}},transform:(r,i,a)=>{let o=a.join(),s=t.get(o);switch(s==null?void 0:s.type){case"remove":return n.create(r,i.filter((d,g)=>!s.indexes.includes(g)),a);case"removeThenInsert":let l=i.filter((d,g)=>!s.removeIndexes.includes(g)),c=s.removeIndexes.reduce((d,g)=>g{var d,g;let a=[0,...i],o=a.join(),s=t.transform(r,(d=n[o])!=null?d:[],i),l=a.slice(0,-1).join(),c=(g=n[l])!=null?g:[];c.push(s),n[l]=c}})),n[""][0]}function mT(e,t){let{nodes:n,at:r}=t;if(r.length===0)throw new Error("Can't insert nodes at the root");let i=Np(r,n);return Vs(e,i,t)}function vT(e,t){if(t.at.length===0)return t.node;let n=pT(t.at,t.node);return Vs(e,n,t)}function yT(e,t){if(t.indexPaths.length===0)return e;for(let r of t.indexPaths)if(r.length===0)throw new Error("Can't remove the root node");let n=Dp(t.indexPaths);return Vs(e,n,t)}function bT(e,t){if(t.indexPaths.length===0)return e;for(let a of t.indexPaths)if(a.length===0)throw new Error("Can't move the root node");if(t.to.length===0)throw new Error("Can't move nodes to the root");let n=iT(t.indexPaths),r=n.map(a=>Ap(e,a,t)),i=Np(t.to,r,Dp(n));return Vs(e,i,t)}function St(e,t){let{onEnter:n,onLeave:r,getChildren:i}=t,a=[],o=[{node:e}],s=t.reuseIndexPath?()=>a:()=>a.slice();for(;o.length>0;){let l=o[o.length-1];if(l.state===void 0){let d=n==null?void 0:n(l.node,s());if(d==="stop")return;l.state=d==="skip"?-1:0}let c=l.children||i(l.node,s());if(l.children||(l.children=c),l.state!==-1){if(l.state{"use strict";se();tT=Object.defineProperty,nT=(e,t,n)=>t in e?tT(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,F=(e,t,n)=>nT(e,typeof t!="symbol"?t+"":t,n),ws={itemToValue(e){return typeof e=="string"?e:nn(e)&&tt(e,"value")?e.value:""},itemToString(e){return typeof e=="string"?e:nn(e)&&tt(e,"label")?e.label:ws.itemToValue(e)},isItemDisabled(e){return nn(e)&&tt(e,"disabled")?!!e.disabled:!1}},hn=class Op{constructor(t){F(this,"options",t),F(this,"items"),F(this,"indexMap",null),F(this,"copy",n=>new Op(v(p({},this.options),{items:n!=null?n:[...this.items]}))),F(this,"isEqual",n=>Ie(this.items,n.items)),F(this,"setItems",n=>this.copy(n)),F(this,"getValues",(n=this.items)=>{let r=[];for(let i of n){let a=this.getItemValue(i);a!=null&&r.push(a)}return r}),F(this,"find",n=>{if(n==null)return null;let r=this.indexOf(n);return r!==-1?this.at(r):null}),F(this,"findMany",n=>{let r=[];for(let i of n){let a=this.find(i);a!=null&&r.push(a)}return r}),F(this,"at",n=>{var a;if(!this.options.groupBy&&!this.options.groupSort)return(a=this.items[n])!=null?a:null;let r=0,i=this.group();for(let[,o]of i)for(let s of o){if(r===n)return s;r++}return null}),F(this,"sortFn",(n,r)=>{let i=this.indexOf(n),a=this.indexOf(r);return(i!=null?i:0)-(a!=null?a:0)}),F(this,"sort",n=>[...n].sort(this.sortFn.bind(this))),F(this,"getItemValue",n=>{var r,i,a;return n==null?null:(a=(i=(r=this.options).itemToValue)==null?void 0:i.call(r,n))!=null?a:ws.itemToValue(n)}),F(this,"getItemDisabled",n=>{var r,i,a;return n==null?!1:(a=(i=(r=this.options).isItemDisabled)==null?void 0:i.call(r,n))!=null?a:ws.isItemDisabled(n)}),F(this,"stringifyItem",n=>{var r,i,a;return n==null?null:(a=(i=(r=this.options).itemToString)==null?void 0:i.call(r,n))!=null?a:ws.itemToString(n)}),F(this,"stringify",n=>n==null?null:this.stringifyItem(this.find(n))),F(this,"stringifyItems",(n,r=", ")=>{let i=[];for(let a of n){let o=this.stringifyItem(a);o!=null&&i.push(o)}return i.join(r)}),F(this,"stringifyMany",(n,r)=>this.stringifyItems(this.findMany(n),r)),F(this,"has",n=>this.indexOf(n)!==-1),F(this,"hasItem",n=>n==null?!1:this.has(this.getItemValue(n))),F(this,"group",()=>{let{groupBy:n,groupSort:r}=this.options;if(!n)return[["",[...this.items]]];let i=new Map;this.items.forEach((o,s)=>{let l=n(o,s);i.has(l)||i.set(l,[]),i.get(l).push(o)});let a=Array.from(i.entries());return r&&a.sort(([o],[s])=>{if(typeof r=="function")return r(o,s);if(Array.isArray(r)){let l=r.indexOf(o),c=r.indexOf(s);return l===-1?1:c===-1?-1:l-c}return r==="asc"?o.localeCompare(s):r==="desc"?s.localeCompare(o):0}),a}),F(this,"getNextValue",(n,r=1,i=!1)=>{let a=this.indexOf(n);if(a===-1)return null;for(a=i?Math.min(a+r,this.size-1):a+r;a<=this.size&&this.getItemDisabled(this.at(a));)a++;return this.getItemValue(this.at(a))}),F(this,"getPreviousValue",(n,r=1,i=!1)=>{let a=this.indexOf(n);if(a===-1)return null;for(a=i?Math.max(a-r,0):a-r;a>=0&&this.getItemDisabled(this.at(a));)a--;return this.getItemValue(this.at(a))}),F(this,"indexOf",n=>{var r;if(n==null)return-1;if(!this.options.groupBy&&!this.options.groupSort)return this.items.findIndex(i=>this.getItemValue(i)===n);if(!this.indexMap){this.indexMap=new Map;let i=0,a=this.group();for(let[,o]of a)for(let s of o){let l=this.getItemValue(s);l!=null&&this.indexMap.set(l,i),i++}}return(r=this.indexMap.get(n))!=null?r:-1}),F(this,"getByText",(n,r)=>{let i=r!=null?this.indexOf(r):-1,a=n.length===1;for(let o=0;o{let{state:i,currentValue:a,timeout:o=350}=r,s=i.keysSoFar+n,c=s.length>1&&Array.from(s).every(f=>f===s[0])?s[0]:s,d=this.getByText(c,a),g=this.getItemValue(d);function h(){clearTimeout(i.timer),i.timer=-1}function u(f){i.keysSoFar=f,h(),f!==""&&(i.timer=+setTimeout(()=>{u(""),h()},o))}return u(s),g}),F(this,"update",(n,r)=>{let i=this.indexOf(n);return i===-1?this:this.copy([...this.items.slice(0,i),r,...this.items.slice(i+1)])}),F(this,"upsert",(n,r,i="append")=>{let a=this.indexOf(n);return a===-1?(i==="append"?this.append:this.prepend)(r):this.copy([...this.items.slice(0,a),r,...this.items.slice(a+1)])}),F(this,"insert",(n,...r)=>this.copy(Ta(this.items,n,...r))),F(this,"insertBefore",(n,...r)=>{let i=this.indexOf(n);if(i===-1)if(this.items.length===0)i=0;else return this;return this.copy(Ta(this.items,i,...r))}),F(this,"insertAfter",(n,...r)=>{let i=this.indexOf(n);if(i===-1)if(this.items.length===0)i=0;else return this;return this.copy(Ta(this.items,i+1,...r))}),F(this,"prepend",(...n)=>this.copy(Ta(this.items,0,...n))),F(this,"append",(...n)=>this.copy(Ta(this.items,this.items.length,...n))),F(this,"filter",n=>{let r=this.items.filter((i,a)=>n(this.stringifyItem(i),a,i));return this.copy(r)}),F(this,"remove",(...n)=>{let r=n.map(i=>typeof i=="string"?i:this.getItemValue(i));return this.copy(this.items.filter(i=>{let a=this.getItemValue(i);return a==null?!1:!r.includes(a)}))}),F(this,"move",(n,r)=>{let i=this.indexOf(n);return i===-1?this:this.copy(Ts(this.items,[i],r))}),F(this,"moveBefore",(n,...r)=>{let i=this.items.findIndex(o=>this.getItemValue(o)===n);if(i===-1)return this;let a=r.map(o=>this.items.findIndex(s=>this.getItemValue(s)===o)).sort((o,s)=>o-s);return this.copy(Ts(this.items,a,i))}),F(this,"moveAfter",(n,...r)=>{let i=this.items.findIndex(o=>this.getItemValue(o)===n);if(i===-1)return this;let a=r.map(o=>this.items.findIndex(s=>this.getItemValue(s)===o)).sort((o,s)=>o-s);return this.copy(Ts(this.items,a,i+1))}),F(this,"reorder",(n,r)=>this.copy(Ts(this.items,[n],r))),F(this,"compareValue",(n,r)=>{let i=this.indexOf(n),a=this.indexOf(r);return ia?1:0}),F(this,"range",(n,r)=>{let i=[],a=n;for(;a!=null;){if(this.find(a)&&i.push(a),a===r)return i;a=this.getNextValue(a)}return[]}),F(this,"getValueRange",(n,r)=>n&&r?this.compareValue(n,r)<=0?this.range(n,r):this.range(r,n):[]),F(this,"toString",()=>{let n="";for(let r of this.items){let i=this.getItemValue(r),a=this.stringifyItem(r),o=this.getItemDisabled(r),s=[i,a,o].filter(Boolean).join(":");n+=s+","}return n}),F(this,"toJSON",()=>({size:this.size,first:this.firstValue,last:this.lastValue})),this.items=[...t.items]}get size(){return this.items.length}get firstValue(){let t=0;for(;this.getItemDisabled(this.at(t));)t++;return this.getItemValue(this.at(t))}get lastValue(){let t=this.size-1;for(;this.getItemDisabled(this.at(t));)t--;return this.getItemValue(this.at(t))}*[Symbol.iterator](){yield*Au(this.items)}},rT=(e,t)=>!!(e!=null&&e.toLowerCase().startsWith(t.toLowerCase()));Fc=class extends hn{constructor(e){let{columnCount:t}=e;super(e),F(this,"columnCount"),F(this,"rows",null),F(this,"getRows",()=>(this.rows||(this.rows=oa([...this.items],this.columnCount)),this.rows)),F(this,"getRowCount",()=>Math.ceil(this.items.length/this.columnCount)),F(this,"getCellIndex",(n,r)=>n*this.columnCount+r),F(this,"getCell",(n,r)=>this.at(this.getCellIndex(n,r))),F(this,"getValueCell",n=>{let r=this.indexOf(n);if(r===-1)return null;let i=Math.floor(r/this.columnCount),a=r%this.columnCount;return{row:i,column:a}}),F(this,"getLastEnabledColumnIndex",n=>{for(let r=this.columnCount-1;r>=0;r--){let i=this.getCell(n,r);if(i&&!this.getItemDisabled(i))return r}return null}),F(this,"getFirstEnabledColumnIndex",n=>{for(let r=0;r{let i=this.getValueCell(n);if(i===null)return null;let a=this.getRows(),o=a.length,s=i.row,l=i.column;for(let c=1;c<=o;c++){s=aa(a,s,{loop:r});let d=a[s];if(!d)continue;if(!d[l]){let u=this.getLastEnabledColumnIndex(s);u!=null&&(l=u)}let h=this.getCell(s,l);if(!this.getItemDisabled(h))return this.getItemValue(h)}return this.firstValue}),F(this,"getNextRowValue",(n,r=!1)=>{let i=this.getValueCell(n);if(i===null)return null;let a=this.getRows(),o=a.length,s=i.row,l=i.column;for(let c=1;c<=o;c++){s=hi(a,s,{loop:r});let d=a[s];if(!d)continue;if(!d[l]){let u=this.getLastEnabledColumnIndex(s);u!=null&&(l=u)}let h=this.getCell(s,l);if(!this.getItemDisabled(h))return this.getItemValue(h)}return this.lastValue}),this.columnCount=t}};xp=class Os extends Set{constructor(t=[]){super(t),F(this,"selectionMode","single"),F(this,"deselectable",!0),F(this,"copy",()=>{let n=new Os([...this]);return this.sync(n)}),F(this,"sync",n=>(n.selectionMode=this.selectionMode,n.deselectable=this.deselectable,n)),F(this,"isEmpty",()=>this.size===0),F(this,"isSelected",n=>this.selectionMode==="none"||n==null?!1:this.has(n)),F(this,"canSelect",(n,r)=>this.selectionMode!=="none"||!n.getItemDisabled(n.find(r))),F(this,"firstSelectedValue",n=>{let r=null;for(let i of this)(!r||n.compareValue(i,r)<0)&&(r=i);return r}),F(this,"lastSelectedValue",n=>{let r=null;for(let i of this)(!r||n.compareValue(i,r)>0)&&(r=i);return r}),F(this,"extendSelection",(n,r,i)=>{if(this.selectionMode==="none")return this;if(this.selectionMode==="single")return this.replaceSelection(n,i);let a=this.copy(),o=Array.from(this).pop();for(let s of n.getValueRange(r,o!=null?o:i))a.delete(s);for(let s of n.getValueRange(i,r))this.canSelect(n,s)&&a.add(s);return a}),F(this,"toggleSelection",(n,r)=>{if(this.selectionMode==="none")return this;if(this.selectionMode==="single"&&!this.isSelected(r))return this.replaceSelection(n,r);let i=this.copy();return i.has(r)?i.delete(r):i.canSelect(n,r)&&i.add(r),i}),F(this,"replaceSelection",(n,r)=>{if(this.selectionMode==="none")return this;if(r==null)return this;if(!this.canSelect(n,r))return this;let i=new Os([r]);return this.sync(i)}),F(this,"setSelection",n=>{if(this.selectionMode==="none")return this;let r=new Os;for(let i of n)if(i!=null&&(r.add(i),this.selectionMode==="single"))break;return this.sync(r)}),F(this,"clearSelection",()=>{let n=this.copy();return n.deselectable&&n.size>0&&n.clear(),n}),F(this,"select",(n,r,i)=>this.selectionMode==="none"?this:this.selectionMode==="single"?this.isSelected(r)&&this.deselectable?this.toggleSelection(n,r):this.replaceSelection(n,r):this.selectionMode==="multiple"||i?this.toggleSelection(n,r):this.replaceSelection(n,r)),F(this,"deselect",n=>{let r=this.copy();return r.delete(n),r}),F(this,"isEqual",n=>Ie(Array.from(this),Array.from(n)))}};$c=class Lp{constructor(t){F(this,"options",t),F(this,"rootNode"),F(this,"isEqual",n=>Ie(this.rootNode,n.rootNode)),F(this,"getNodeChildren",n=>{var r,i,a,o;return(o=(a=(i=(r=this.options).nodeToChildren)==null?void 0:i.call(r,n))!=null?a:ki.nodeToChildren(n))!=null?o:[]}),F(this,"resolveIndexPath",n=>typeof n=="string"?this.getIndexPath(n):n),F(this,"resolveNode",n=>{let r=this.resolveIndexPath(n);return r?this.at(r):void 0}),F(this,"getNodeChildrenCount",n=>{var r,i,a;return(a=(i=(r=this.options).nodeToChildrenCount)==null?void 0:i.call(r,n))!=null?a:ki.nodeToChildrenCount(n)}),F(this,"getNodeValue",n=>{var r,i,a;return(a=(i=(r=this.options).nodeToValue)==null?void 0:i.call(r,n))!=null?a:ki.nodeToValue(n)}),F(this,"getNodeDisabled",n=>{var r,i,a;return(a=(i=(r=this.options).isNodeDisabled)==null?void 0:i.call(r,n))!=null?a:ki.isNodeDisabled(n)}),F(this,"stringify",n=>{let r=this.findNode(n);return r?this.stringifyNode(r):null}),F(this,"stringifyNode",n=>{var r,i,a;return(a=(i=(r=this.options).nodeToString)==null?void 0:i.call(r,n))!=null?a:ki.nodeToString(n)}),F(this,"getFirstNode",(n=this.rootNode,r={})=>{let i;return St(n,{getChildren:this.getNodeChildren,onEnter:(a,o)=>{var s;if(!this.isSameNode(a,n)){if((s=r.skip)!=null&&s.call(r,{value:this.getNodeValue(a),node:a,indexPath:o}))return"skip";if(!i&&o.length>0&&!this.getNodeDisabled(a))return i=a,"stop"}}}),i}),F(this,"getLastNode",(n=this.rootNode,r={})=>{let i;return St(n,{getChildren:this.getNodeChildren,onEnter:(a,o)=>{var s;if(!this.isSameNode(a,n)){if((s=r.skip)!=null&&s.call(r,{value:this.getNodeValue(a),node:a,indexPath:o}))return"skip";o.length>0&&!this.getNodeDisabled(a)&&(i=a)}}}),i}),F(this,"at",n=>Ap(this.rootNode,n,{getChildren:this.getNodeChildren})),F(this,"findNode",(n,r=this.rootNode)=>oT(r,{getChildren:this.getNodeChildren,predicate:i=>this.getNodeValue(i)===n})),F(this,"findNodes",(n,r=this.rootNode)=>{let i=new Set(n.filter(a=>a!=null));return sT(r,{getChildren:this.getNodeChildren,predicate:a=>i.has(this.getNodeValue(a))})}),F(this,"sort",n=>n.reduce((r,i)=>{let a=this.getIndexPath(i);return a&&r.push({value:i,indexPath:a}),r},[]).sort((r,i)=>Rp(r.indexPath,i.indexPath)).map(({value:r})=>r)),F(this,"getValue",n=>{let r=this.at(n);return r?this.getNodeValue(r):void 0}),F(this,"getValuePath",n=>{if(!n)return[];let r=[],i=[...n];for(;i.length>0;){let a=this.at(i);a&&r.unshift(this.getNodeValue(a)),i.pop()}return r}),F(this,"getDepth",n=>{var i;let r=Tp(this.rootNode,{getChildren:this.getNodeChildren,predicate:a=>this.getNodeValue(a)===n});return(i=r==null?void 0:r.length)!=null?i:0}),F(this,"isSameNode",(n,r)=>this.getNodeValue(n)===this.getNodeValue(r)),F(this,"isRootNode",n=>this.isSameNode(n,this.rootNode)),F(this,"contains",(n,r)=>!n||!r?!1:r.slice(0,n.length).every((i,a)=>n[a]===r[a])),F(this,"getNextNode",(n,r={})=>{let i=!1,a;return St(this.rootNode,{getChildren:this.getNodeChildren,onEnter:(o,s)=>{var c;if(this.isRootNode(o))return;let l=this.getNodeValue(o);if((c=r.skip)!=null&&c.call(r,{value:l,node:o,indexPath:s}))return l===n&&(i=!0),"skip";if(i&&!this.getNodeDisabled(o))return a=o,"stop";l===n&&(i=!0)}}),a}),F(this,"getPreviousNode",(n,r={})=>{let i,a=!1;return St(this.rootNode,{getChildren:this.getNodeChildren,onEnter:(o,s)=>{var c;if(this.isRootNode(o))return;let l=this.getNodeValue(o);if((c=r.skip)!=null&&c.call(r,{value:l,node:o,indexPath:s}))return"skip";if(l===n)return a=!0,"stop";this.getNodeDisabled(o)||(i=o)}}),a?i:void 0}),F(this,"getParentNodes",n=>{var a;let r=(a=this.resolveIndexPath(n))==null?void 0:a.slice();if(!r)return[];let i=[];for(;r.length>0;){r.pop();let o=this.at(r);o&&!this.isRootNode(o)&&i.unshift(o)}return i}),F(this,"getDescendantNodes",(n,r)=>{let i=this.resolveNode(n);if(!i)return[];let a=[];return St(i,{getChildren:this.getNodeChildren,onEnter:(o,s)=>{s.length!==0&&(!(r!=null&&r.withBranch)&&this.isBranchNode(o)||a.push(o))}}),a}),F(this,"getDescendantValues",(n,r)=>this.getDescendantNodes(n,r).map(a=>this.getNodeValue(a))),F(this,"getParentIndexPath",n=>n.slice(0,-1)),F(this,"getParentNode",n=>{let r=this.resolveIndexPath(n);return r?this.at(this.getParentIndexPath(r)):void 0}),F(this,"visit",n=>{let a=n,{skip:r}=a,i=ft(a,["skip"]);St(this.rootNode,v(p({},i),{getChildren:this.getNodeChildren,onEnter:(o,s)=>{var l;if(!this.isRootNode(o))return r!=null&&r({value:this.getNodeValue(o),node:o,indexPath:s})?"skip":(l=i.onEnter)==null?void 0:l.call(i,o,s)}}))}),F(this,"getPreviousSibling",n=>{let r=this.getParentNode(n);if(!r)return;let i=this.getNodeChildren(r),a=n[n.length-1];for(;--a>=0;){let o=i[a];if(!this.getNodeDisabled(o))return o}}),F(this,"getNextSibling",n=>{let r=this.getParentNode(n);if(!r)return;let i=this.getNodeChildren(r),a=n[n.length-1];for(;++a{let r=this.getParentNode(n);return r?this.getNodeChildren(r):[]}),F(this,"getValues",(n=this.rootNode)=>cT(n,{getChildren:this.getNodeChildren,transform:i=>[this.getNodeValue(i)]}).slice(1)),F(this,"isValidDepth",(n,r)=>r==null?!0:typeof r=="function"?r(n.length):n.length===r),F(this,"isBranchNode",n=>this.getNodeChildren(n).length>0||this.getNodeChildrenCount(n)!=null),F(this,"getBranchValues",(n=this.rootNode,r={})=>{let i=[];return St(n,{getChildren:this.getNodeChildren,onEnter:(a,o)=>{var l;if(o.length===0)return;let s=this.getNodeValue(a);if((l=r.skip)!=null&&l.call(r,{value:s,node:a,indexPath:o}))return"skip";this.isBranchNode(a)&&this.isValidDepth(o,r.depth)&&i.push(this.getNodeValue(a))}}),i}),F(this,"flatten",(n=this.rootNode)=>uT(n,{getChildren:this.getNodeChildren})),F(this,"_create",(n,r)=>this.getNodeChildren(n).length>0||r.length>0?v(p({},n),{children:r}):p({},n)),F(this,"_insert",(n,r,i)=>this.copy(mT(n,{at:r,nodes:i,getChildren:this.getNodeChildren,create:this._create}))),F(this,"copy",n=>new Lp(v(p({},this.options),{rootNode:n}))),F(this,"_replace",(n,r,i)=>this.copy(vT(n,{at:r,node:i,getChildren:this.getNodeChildren,create:this._create}))),F(this,"_move",(n,r,i)=>this.copy(bT(n,{indexPaths:r,to:i,getChildren:this.getNodeChildren,create:this._create}))),F(this,"_remove",(n,r)=>this.copy(yT(n,{indexPaths:r,getChildren:this.getNodeChildren,create:this._create}))),F(this,"replace",(n,r)=>this._replace(this.rootNode,n,r)),F(this,"remove",n=>this._remove(this.rootNode,n)),F(this,"insertBefore",(n,r)=>this.getParentNode(n)?this._insert(this.rootNode,n,r):void 0),F(this,"insertAfter",(n,r)=>{if(!this.getParentNode(n))return;let a=[...n.slice(0,-1),n[n.length-1]+1];return this._insert(this.rootNode,a,r)}),F(this,"move",(n,r)=>this._move(this.rootNode,n,r)),F(this,"filter",n=>{let r=dT(this.rootNode,{predicate:n,getChildren:this.getNodeChildren,create:this._create});return this.copy(r)}),F(this,"toJSON",()=>this.getValues(this.rootNode)),this.rootNode=t.rootNode}getIndexPath(t){if(Array.isArray(t)){if(t.length===0)return[];let n=[],r=this.getNodeChildren(this.rootNode);for(let i=0;ithis.getNodeValue(s)===a);if(o===-1)break;if(n.push(o),ithis.getNodeValue(n)===t})}},ki={nodeToValue(e){return typeof e=="string"?e:nn(e)&&tt(e,"value")?e.value:""},nodeToString(e){return typeof e=="string"?e:nn(e)&&tt(e,"label")?e.label:ki.nodeToValue(e)},isNodeDisabled(e){return nn(e)&&tt(e,"disabled")?!!e.disabled:!1},nodeToChildren(e){return e.children},nodeToChildrenCount(e){if(nn(e)&&tt(e,"childrenCount"))return e.childrenCount}}});function fn(e,t){if(!e)return t?{destination:t}:null;let n=e.getAttribute("data-redirect");if(n==="false")return null;let r=e.getAttribute("data-to")||t||e.getAttribute("data-value")||"";if(!r)return null;let i=ET.includes(n)?n:void 0,a=e.hasAttribute("data-new-tab");return{destination:r,mode:i,newTab:a}}function mn(e,t){if(!e||!e.destination)return!1;let{destination:n,newTab:r,mode:i}=e;if(r)return window.open(n,"_blank","noopener,noreferrer"),!0;let a=t.liveSocket.main;if(!(!a.isDead&&a.isConnected())||!i||i==="href")return window.location.href=n,!0;let s=t.liveSocket.js();return i==="patch"?s.patch(n):s.navigate(n),!0}var ET,Di=ne(()=>{"use strict";ET=["href","patch","navigate"]});var Wp={};fe(Wp,{Combobox:()=>DT});function wT(e,t){let{context:n,prop:r,state:i,send:a,scope:o,computed:s,event:l}=e,c=r("translations"),d=r("collection"),g=!!r("disabled"),h=s("isInteractive"),u=!!r("invalid"),f=!!r("required"),m=!!r("readOnly"),P=i.hasTag("open"),C=i.hasTag("focused"),x=r("composite"),T=n.get("highlightedValue"),b=Lt(v(p({},r("positioning")),{placement:n.get("currentPlacement")}));function y(S){let A=d.getItemDisabled(S.item),N=d.getItemValue(S.item);return jt(N,()=>`[zag-js] No value found for item ${JSON.stringify(S.item)}`),{value:N,disabled:!!(g||A),highlighted:T===N,selected:n.get("value").includes(N)}}return{focused:C,open:P,inputValue:n.get("inputValue"),highlightedValue:T,highlightedItem:n.get("highlightedItem"),value:n.get("value"),valueAsString:s("valueAsString"),hasSelectedItems:s("hasSelectedItems"),selectedItems:s("selectedItems"),collection:r("collection"),multiple:!!r("multiple"),disabled:!!g,syncSelectedItems(){a({type:"SELECTED_ITEMS.SYNC"})},reposition(S={}){a({type:"POSITIONING.SET",options:S})},setHighlightValue(S){a({type:"HIGHLIGHTED_VALUE.SET",value:S})},clearHighlightValue(){a({type:"HIGHLIGHTED_VALUE.CLEAR"})},selectValue(S){a({type:"ITEM.SELECT",value:S})},setValue(S){a({type:"VALUE.SET",value:S})},setInputValue(S,A="script"){a({type:"INPUT_VALUE.SET",value:S,src:A})},clearValue(S){S!=null?a({type:"ITEM.CLEAR",value:S}):a({type:"VALUE.CLEAR"})},focus(){var S;(S=Mi(o))==null||S.focus()},setOpen(S,A="script"){i.hasTag("open")!==S&&a({type:S?"OPEN":"CLOSE",src:A})},getRootProps(){return t.element(v(p({},gt.root.attrs),{dir:r("dir"),id:PT(o),"data-invalid":E(u),"data-readonly":E(m)}))},getLabelProps(){return t.label(v(p({},gt.label.attrs),{dir:r("dir"),htmlFor:xs(o),id:Hc(o),"data-readonly":E(m),"data-disabled":E(g),"data-invalid":E(u),"data-required":E(f),"data-focus":E(C),onClick(S){var A;x||(S.preventDefault(),(A=Oa(o))==null||A.focus({preventScroll:!0}))}}))},getControlProps(){return t.element(v(p({},gt.control.attrs),{dir:r("dir"),id:Bp(o),"data-state":P?"open":"closed","data-focus":E(C),"data-disabled":E(g),"data-invalid":E(u)}))},getPositionerProps(){return t.element(v(p({},gt.positioner.attrs),{dir:r("dir"),id:Gp(o),style:b.floating}))},getInputProps(){return t.input(v(p({},gt.input.attrs),{dir:r("dir"),"aria-invalid":oe(u),"data-invalid":E(u),"data-autofocus":E(r("autoFocus")),name:r("name"),form:r("form"),disabled:g,required:r("required"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"none",spellCheck:"false",readOnly:m,placeholder:r("placeholder"),id:xs(o),type:"text",role:"combobox",defaultValue:n.get("inputValue"),"aria-autocomplete":s("autoComplete")?"both":"list","aria-controls":As(o),"aria-expanded":P,"data-state":P?"open":"closed","aria-activedescendant":T?Fp(o,T):void 0,onClick(S){S.defaultPrevented||r("openOnClick")&&h&&a({type:"INPUT.CLICK",src:"input-click"})},onFocus(){g||a({type:"INPUT.FOCUS"})},onBlur(){g||a({type:"INPUT.BLUR"})},onChange(S){a({type:"INPUT.CHANGE",value:S.currentTarget.value,src:"input-change"})},onKeyDown(S){if(S.defaultPrevented||!h||S.ctrlKey||S.shiftKey||$e(S))return;let A=r("openOnKeyPress"),N=S.ctrlKey||S.metaKey||S.shiftKey,O=!0,w={ArrowDown(D){!A&&!P||(a({type:D.altKey?"OPEN":"INPUT.ARROW_DOWN",keypress:O,src:"arrow-key"}),D.preventDefault())},ArrowUp(){!A&&!P||(a({type:S.altKey?"CLOSE":"INPUT.ARROW_UP",keypress:O,src:"arrow-key"}),S.preventDefault())},Home(D){N||(a({type:"INPUT.HOME",keypress:O}),P&&D.preventDefault())},End(D){N||(a({type:"INPUT.END",keypress:O}),P&&D.preventDefault())},Enter(D){var le;a({type:"INPUT.ENTER",keypress:O,src:"item-select"});let W=s("isCustomValue")&&r("allowCustomValue"),ee=T!=null,ue=r("alwaysSubmitOnEnter");if(P&&!W&&!ue&&ee&&D.preventDefault(),T==null)return;let z=Li(o,T);Vt(z)&&((le=r("navigate"))==null||le({value:T,node:z,href:z.href}))},Escape(){a({type:"INPUT.ESCAPE",keypress:O,src:"escape-key"}),S.preventDefault()}},k=ve(S,{dir:r("dir")}),R=w[k];R==null||R(S)}}))},getTriggerProps(S={}){return t.button(v(p({},gt.trigger.attrs),{dir:r("dir"),id:Up(o),"aria-haspopup":x?"listbox":"dialog",type:"button",tabIndex:S.focusable?void 0:-1,"aria-label":c.triggerLabel,"aria-expanded":P,"data-state":P?"open":"closed","aria-controls":P?As(o):void 0,disabled:g,"data-invalid":E(u),"data-focusable":E(S.focusable),"data-readonly":E(m),"data-disabled":E(g),onFocus(){S.focusable&&a({type:"INPUT.FOCUS",src:"trigger"})},onClick(A){A.defaultPrevented||h&&Ee(A)&&a({type:"TRIGGER.CLICK",src:"trigger-click"})},onPointerDown(A){h&&A.pointerType!=="touch"&&Ee(A)&&(A.preventDefault(),queueMicrotask(()=>{Bc(o)}))},onKeyDown(A){if(A.defaultPrevented||x)return;let N={ArrowDown(){a({type:"INPUT.ARROW_DOWN",src:"arrow-key"})},ArrowUp(){a({type:"INPUT.ARROW_UP",src:"arrow-key"})}},O=ve(A,{dir:r("dir")}),w=N[O];w&&(w(A),A.preventDefault())}}))},getContentProps(){return t.element(v(p({},gt.content.attrs),{dir:r("dir"),id:As(o),role:x?"listbox":"dialog",tabIndex:-1,hidden:!P,"data-state":P?"open":"closed","data-placement":n.get("currentPlacement"),"aria-labelledby":Hc(o),"aria-multiselectable":r("multiple")&&x?!0:void 0,"data-empty":E(d.size===0),onPointerDown(S){Ee(S)&&S.preventDefault()}}))},getListProps(){return t.element(v(p({},gt.list.attrs),{role:x?void 0:"listbox","data-empty":E(d.size===0),"aria-labelledby":Hc(o),"aria-multiselectable":r("multiple")&&!x?!0:void 0}))},getClearTriggerProps(){return t.button(v(p({},gt.clearTrigger.attrs),{dir:r("dir"),id:qp(o),type:"button",tabIndex:-1,disabled:g,"data-invalid":E(u),"aria-label":c.clearTriggerLabel,"aria-controls":xs(o),hidden:!n.get("value").length,onPointerDown(S){Ee(S)&&S.preventDefault()},onClick(S){S.defaultPrevented||h&&a({type:"VALUE.CLEAR",src:"clear-trigger"})}}))},getItemState:y,getItemProps(S){let A=y(S),N=A.value;return t.element(v(p({},gt.item.attrs),{dir:r("dir"),id:Fp(o,N),role:"option",tabIndex:-1,"data-highlighted":E(A.highlighted),"data-state":A.selected?"checked":"unchecked","aria-selected":oe(A.selected),"aria-disabled":oe(A.disabled),"data-disabled":E(A.disabled),"data-value":A.value,onPointerMove(){A.disabled||A.highlighted||a({type:"ITEM.POINTER_MOVE",value:N})},onPointerLeave(){if(S.persistFocus||A.disabled)return;let O=l.previous();O!=null&&O.type.includes("POINTER")&&a({type:"ITEM.POINTER_LEAVE",value:N})},onClick(O){xr(O)||Vn(O)||tr(O)||A.disabled||a({type:"ITEM.CLICK",src:"item-select",value:N})}}))},getItemTextProps(S){let A=y(S);return t.element(v(p({},gt.itemText.attrs),{dir:r("dir"),"data-state":A.selected?"checked":"unchecked","data-disabled":E(A.disabled),"data-highlighted":E(A.highlighted)}))},getItemIndicatorProps(S){let A=y(S);return t.element(v(p({"aria-hidden":!0},gt.itemIndicator.attrs),{dir:r("dir"),"data-state":A.selected?"checked":"unchecked",hidden:!A.selected}))},getItemGroupProps(S){let{id:A}=S;return t.element(v(p({},gt.itemGroup.attrs),{dir:r("dir"),id:CT(o,A),"aria-labelledby":Mp(o,A),"data-empty":E(d.size===0),role:"group"}))},getItemGroupLabelProps(S){let{htmlFor:A}=S;return t.element(v(p({},gt.itemGroupLabel.attrs),{dir:r("dir"),id:Mp(o,A),role:"presentation"}))}}}function Hp(e){return(e.previousEvent||e).src}function kT(e){var n,r;return I(e,"controlled")?{value:(n=ie(e,"value"))!=null?n:[]}:{defaultValue:(r=ie(e,"defaultValue"))!=null?r:[]}}function NT(e,t,n,r){let i=I(e,"redirect");return{id:e.id,disabled:I(e,"disabled"),placeholder:V(e,"placeholder"),alwaysSubmitOnEnter:I(e,"alwaysSubmitOnEnter"),autoFocus:I(e,"autoFocus"),closeOnSelect:I(e,"closeOnSelect"),dir:U(e),inputBehavior:V(e,"inputBehavior"),loopFocus:I(e,"loopFocus"),multiple:i?!1:I(e,"multiple"),invalid:I(e,"invalid"),allowCustomValue:!1,selectionBehavior:"replace",name:V(e,"name"),form:V(e,"form"),readOnly:I(e,"readOnly"),required:I(e,"required"),positioning:nt(e),onOpenChange:a=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,open:a.open,reason:a.reason,value:a.value},serverEventName:V(e,"onOpenChange"),clientEventName:V(e,"onOpenChangeClient")})},onInputValueChange:a=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,value:a.inputValue,reason:a.reason},serverEventName:V(e,"onInputValueChange"),clientEventName:V(e,"onInputValueChangeClient")})},onValueChange:a=>{var s;let o=a.value.length>0?String(a.value[0]):null;if(i&&o){let l=e.querySelector(`[data-scope="combobox"][data-part="item"][data-value="${CSS.escape(o)}"]`);mn(fn(l,o),{liveSocket:r})}{let l=e.querySelector('[data-scope="combobox"][data-part="hidden-input"]');if(l){let c=a.value.map(d=>String(d));l.value=c.length===0?"":I(e,"multiple")?c.join(","):(s=c[0])!=null?s:"",l.dispatchEvent(new Event("input",{bubbles:!0})),l.dispatchEvent(new Event("change",{bubbles:!0}))}}K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,value:a.value,items:a.items},serverEventName:V(e,"onValueChange"),clientEventName:V(e,"onValueChangeClient")})}}}var ST,gt,Gc,PT,Hc,Bp,xs,As,Gp,Up,qp,CT,Mp,Fp,Br,Mi,_p,$p,Oa,IT,Li,Bc,TT,OT,VT,xT,ht,Hr,AT,RT,DT,Kp=ne(()=>{"use strict";Ic();wi();_r();gr();gn();Is();wa();Di();Ln();_e();Ce();se();ST=j("combobox").parts("root","clearTrigger","content","control","input","item","itemGroup","itemGroupLabel","itemIndicator","itemText","label","list","positioner","trigger"),gt=ST.build(),Gc=e=>new hn(e);Gc.empty=()=>new hn({items:[]});PT=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`combobox:${e.id}`},Hc=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`combobox:${e.id}:label`},Bp=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.control)!=null?n:`combobox:${e.id}:control`},xs=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.input)!=null?n:`combobox:${e.id}:input`},As=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.content)!=null?n:`combobox:${e.id}:content`},Gp=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.positioner)!=null?n:`combobox:${e.id}:popper`},Up=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.trigger)!=null?n:`combobox:${e.id}:toggle-btn`},qp=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.clearTrigger)!=null?n:`combobox:${e.id}:clear-btn`},CT=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemGroup)==null?void 0:r.call(n,t))!=null?i:`combobox:${e.id}:optgroup:${t}`},Mp=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemGroupLabel)==null?void 0:r.call(n,t))!=null?i:`combobox:${e.id}:optgroup-label:${t}`},Fp=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.item)==null?void 0:r.call(n,t))!=null?i:`combobox:${e.id}:option:${t}`},Br=e=>e.getById(As(e)),Mi=e=>e.getById(xs(e)),_p=e=>e.getById(Gp(e)),$p=e=>e.getById(Bp(e)),Oa=e=>e.getById(Up(e)),IT=e=>e.getById(qp(e)),Li=(e,t)=>{if(t==null)return null;let n=`[role=option][data-value="${CSS.escape(t)}"]`;return rr(Br(e),n)},Bc=e=>{let t=Mi(e);e.isActiveElement(t)||t==null||t.focus({preventScroll:!0}),pi(t)},TT=e=>{let t=Oa(e);e.isActiveElement(t)||t==null||t.focus({preventScroll:!0})};({guards:OT,createMachine:VT,choose:xT}=Ot()),{and:ht,not:Hr}=OT,AT=VT({props({props:e}){return v(p({loopFocus:!0,openOnClick:!1,defaultValue:[],defaultInputValue:"",closeOnSelect:!e.multiple,allowCustomValue:!1,alwaysSubmitOnEnter:!1,inputBehavior:"none",selectionBehavior:e.multiple?"clear":"replace",openOnKeyPress:!0,openOnChange:!0,composite:!0,navigate({node:t}){yi(t)},collection:Gc.empty()},e),{positioning:p({placement:"bottom",sameWidth:!0},e.positioning),translations:p({triggerLabel:"Toggle suggestions",clearTriggerLabel:"Clear value"},e.translations)})},initialState({prop:e}){return e("open")||e("defaultOpen")?"open.suggesting":"closed.idle"},context({prop:e,bindable:t,getContext:n,getEvent:r}){var o,s;let i=(s=(o=e("value"))!=null?o:e("defaultValue"))!=null?s:[],a=e("collection").findMany(i);return{currentPlacement:t(()=>({defaultValue:void 0})),value:t(()=>({defaultValue:e("defaultValue"),value:e("value"),isEqual:Ie,hash(l){return l.join(",")},onChange(l){var m,P;let c=n(),d=e("collection"),g=c.get("selectedItemMap"),h=Pt({values:l,collection:d,selectedItemMap:g}),u=(m=e("value"))!=null?m:l,f=u===l?h:Pt({values:u,collection:d,selectedItemMap:h.nextSelectedItemMap});c.set("selectedItemMap",f.nextSelectedItemMap),(P=e("onValueChange"))==null||P({value:l,items:h.selectedItems})}})),highlightedValue:t(()=>({defaultValue:e("defaultHighlightedValue")||null,value:e("highlightedValue"),onChange(l){var d;let c=e("collection").find(l);(d=e("onHighlightChange"))==null||d({highlightedValue:l,highlightedItem:c})}})),inputValue:t(()=>{let l=e("inputValue")||e("defaultInputValue"),c=e("value")||e("defaultValue");if(!l.trim()&&!e("multiple")){let d=e("collection").stringifyMany(c);l=Me(e("selectionBehavior"),{preserve:l||d,replace:d,clear:""})}return{defaultValue:l,value:e("inputValue"),onChange(d){var u;let g=r(),h=(g.previousEvent||g).src;(u=e("onInputValueChange"))==null||u({inputValue:d,reason:h})}}}),highlightedItem:t(()=>{let l=e("highlightedValue");return{defaultValue:e("collection").find(l)}}),selectedItemMap:t(()=>({defaultValue:Ni({selectedItems:a,collection:e("collection")})}))}},computed:{isInputValueEmpty:({context:e})=>e.get("inputValue").length===0,isInteractive:({prop:e})=>!(e("readOnly")||e("disabled")),autoComplete:({prop:e})=>e("inputBehavior")==="autocomplete",autoHighlight:({prop:e})=>e("inputBehavior")==="autohighlight",hasSelectedItems:({context:e})=>e.get("value").length>0,selectedItems:({context:e,prop:t})=>$r({values:e.get("value"),collection:t("collection"),selectedItemMap:e.get("selectedItemMap")}),valueAsString:({computed:e,prop:t})=>t("collection").stringifyItems(e("selectedItems")),isCustomValue:({context:e,computed:t})=>e.get("inputValue")!==t("valueAsString")},watch({context:e,prop:t,track:n,action:r,send:i}){n([()=>e.hash("value")],()=>{r(["syncSelectedItems"])}),n([()=>e.get("inputValue")],()=>{r(["syncInputValue"])}),n([()=>e.get("highlightedValue")],()=>{r(["syncHighlightedItem","autofillInputValue","announceHighlightedItem"])}),n([()=>t("open")],()=>{r(["toggleVisibility"])}),n([()=>t("collection").toString()],()=>{i({type:"CHILDREN_CHANGE"})})},on:{"SELECTED_ITEMS.SYNC":{actions:["syncSelectedItems"]},"HIGHLIGHTED_VALUE.SET":{actions:["setHighlightedValue"]},"HIGHLIGHTED_VALUE.CLEAR":{actions:["clearHighlightedValue"]},"ITEM.SELECT":{actions:["selectItem"]},"ITEM.CLEAR":{actions:["clearItem"]},"VALUE.SET":{actions:["setValue"]},"INPUT_VALUE.SET":{actions:["setInputValue"]},"POSITIONING.SET":{actions:["reposition"]}},entry:xT([{guard:"autoFocus",actions:["setInitialFocus"]}]),states:{closed:{tags:["closed"],initial:"idle",states:{idle:{tags:["idle"],entry:["scrollContentToTop","clearHighlightedValue"],on:{"CONTROLLED.OPEN":{target:"open.interacting"},"TRIGGER.CLICK":[{guard:"isOpenControlled",actions:["setInitialFocus","highlightFirstSelectedItem","invokeOnOpen"]},{target:"open.interacting",actions:["setInitialFocus","highlightFirstSelectedItem","invokeOnOpen"]}],"INPUT.CLICK":[{guard:"isOpenControlled",actions:["highlightFirstSelectedItem","invokeOnOpen"]},{target:"open.interacting",actions:["highlightFirstSelectedItem","invokeOnOpen"]}],"INPUT.FOCUS":{target:"focused"},OPEN:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open.interacting",actions:["invokeOnOpen"]}],"VALUE.CLEAR":{target:"focused",actions:["clearInputValue","clearSelectedItems","setInitialFocus"]}}},focused:{tags:["focused"],entry:["scrollContentToTop","clearHighlightedValue"],on:{"CONTROLLED.OPEN":[{guard:"isChangeEvent",target:"open.suggesting"},{target:"open.interacting"}],"INPUT.CHANGE":[{guard:ht("isOpenControlled","openOnChange"),actions:["setInputValue","invokeOnOpen","highlightFirstItemIfNeeded"]},{guard:"openOnChange",target:"open.suggesting",actions:["setInputValue","invokeOnOpen","highlightFirstItemIfNeeded"]},{actions:["setInputValue"]}],"LAYER.INTERACT_OUTSIDE":{target:"idle"},"INPUT.ESCAPE":{guard:ht("isCustomValue",Hr("allowCustomValue")),actions:["revertInputValue"]},"INPUT.BLUR":{target:"idle"},"INPUT.CLICK":[{guard:"isOpenControlled",actions:["highlightFirstSelectedItem","invokeOnOpen"]},{target:"open.interacting",actions:["highlightFirstSelectedItem","invokeOnOpen"]}],"TRIGGER.CLICK":[{guard:"isOpenControlled",actions:["setInitialFocus","highlightFirstSelectedItem","invokeOnOpen"]},{target:"open.interacting",actions:["setInitialFocus","highlightFirstSelectedItem","invokeOnOpen"]}],"INPUT.ARROW_DOWN":[{guard:ht("isOpenControlled","autoComplete"),actions:["invokeOnOpen"]},{guard:"autoComplete",target:"open.interacting",actions:["invokeOnOpen"]},{guard:"isOpenControlled",actions:["highlightFirstOrSelectedItem","invokeOnOpen"]},{target:"open.interacting",actions:["highlightFirstOrSelectedItem","invokeOnOpen"]}],"INPUT.ARROW_UP":[{guard:ht("isOpenControlled","autoComplete"),actions:["invokeOnOpen"]},{guard:"autoComplete",target:"open.interacting",actions:["invokeOnOpen"]},{guard:"isOpenControlled",actions:["highlightLastOrSelectedItem","invokeOnOpen"]},{target:"open.interacting",actions:["highlightLastOrSelectedItem","invokeOnOpen"]}],OPEN:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open.interacting",actions:["invokeOnOpen"]}],"VALUE.CLEAR":{actions:["clearInputValue","clearSelectedItems"]}}}}},open:{tags:["open","focused"],entry:["setInitialFocus"],effects:["trackFocusVisible","scrollToHighlightedItem","trackDismissableLayer","trackPlacement","trackLiveRegion"],on:{"CONTROLLED.CLOSE":[{guard:"restoreFocus",target:"closed.focused",actions:["setFinalFocus"]},{target:"closed.idle"}],"INPUT.ENTER":[{guard:ht("isOpenControlled","isCustomValue",Hr("hasHighlightedItem"),Hr("allowCustomValue")),actions:["revertInputValue","invokeOnClose"]},{guard:ht("isCustomValue",Hr("hasHighlightedItem"),Hr("allowCustomValue")),target:"closed.focused",actions:["revertInputValue","invokeOnClose"]},{guard:ht("isOpenControlled","closeOnSelect"),actions:["selectHighlightedItem","invokeOnClose"]},{guard:"closeOnSelect",target:"closed.focused",actions:["selectHighlightedItem","invokeOnClose","setFinalFocus"]},{actions:["selectHighlightedItem"]}],"ITEM.CLICK":[{guard:ht("isOpenControlled","closeOnSelect"),actions:["selectItem","invokeOnClose"]},{guard:"closeOnSelect",target:"closed.focused",actions:["selectItem","invokeOnClose","setFinalFocus"]},{actions:["selectItem"]}],"TRIGGER.CLICK":[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed.focused",actions:["invokeOnClose"]}],"LAYER.INTERACT_OUTSIDE":[{guard:ht("isOpenControlled","isCustomValue",Hr("allowCustomValue")),actions:["revertInputValue","invokeOnClose"]},{guard:ht("isCustomValue",Hr("allowCustomValue")),target:"closed.idle",actions:["revertInputValue","invokeOnClose"]},{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed.idle",actions:["invokeOnClose"]}],CLOSE:[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed.focused",actions:["invokeOnClose","setFinalFocus"]}],"VALUE.CLEAR":[{guard:"isOpenControlled",actions:["clearInputValue","clearSelectedItems","invokeOnClose"]},{target:"closed.focused",actions:["clearInputValue","clearSelectedItems","invokeOnClose","setFinalFocus"]}]},initial:"interacting",states:{interacting:{on:{CHILDREN_CHANGE:[{guard:"isHighlightedItemRemoved",actions:["clearHighlightedValue"]},{actions:["scrollToHighlightedItem"]}],"INPUT.HOME":{actions:["highlightFirstItem"]},"INPUT.END":{actions:["highlightLastItem"]},"INPUT.ARROW_DOWN":[{guard:ht("autoComplete","isLastItemHighlighted"),actions:["clearHighlightedValue","scrollContentToTop"]},{actions:["highlightNextItem"]}],"INPUT.ARROW_UP":[{guard:ht("autoComplete","isFirstItemHighlighted"),actions:["clearHighlightedValue"]},{actions:["highlightPrevItem"]}],"INPUT.CHANGE":[{guard:"autoComplete",target:"suggesting",actions:["setInputValue"]},{target:"suggesting",actions:["clearHighlightedValue","setInputValue"]}],"ITEM.POINTER_MOVE":{actions:["setHighlightedValue"]},"ITEM.POINTER_LEAVE":{actions:["clearHighlightedValue"]},"LAYER.ESCAPE":[{guard:ht("isOpenControlled","autoComplete"),actions:["syncInputValue","invokeOnClose"]},{guard:"autoComplete",target:"closed.focused",actions:["syncInputValue","invokeOnClose"]},{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed.focused",actions:["invokeOnClose","setFinalFocus"]}]}},suggesting:{on:{CHILDREN_CHANGE:[{guard:ht("isHighlightedItemRemoved","hasCollectionItems","autoHighlight"),actions:["clearHighlightedValue","highlightFirstItem"]},{guard:"isHighlightedItemRemoved",actions:["clearHighlightedValue"]},{guard:"autoHighlight",actions:["highlightFirstItem"]}],"INPUT.ARROW_DOWN":{target:"interacting",actions:["highlightNextItem"]},"INPUT.ARROW_UP":{target:"interacting",actions:["highlightPrevItem"]},"INPUT.HOME":{target:"interacting",actions:["highlightFirstItem"]},"INPUT.END":{target:"interacting",actions:["highlightLastItem"]},"INPUT.CHANGE":{actions:["setInputValue"]},"LAYER.ESCAPE":[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed.focused",actions:["invokeOnClose"]}],"ITEM.POINTER_MOVE":{target:"interacting",actions:["setHighlightedValue"]},"ITEM.POINTER_LEAVE":{actions:["clearHighlightedValue"]}}}}}},implementations:{guards:{isInputValueEmpty:({computed:e})=>e("isInputValueEmpty"),autoComplete:({computed:e,prop:t})=>e("autoComplete")&&!t("multiple"),autoHighlight:({computed:e})=>e("autoHighlight"),isFirstItemHighlighted:({prop:e,context:t})=>e("collection").firstValue===t.get("highlightedValue"),isLastItemHighlighted:({prop:e,context:t})=>e("collection").lastValue===t.get("highlightedValue"),isCustomValue:({computed:e})=>e("isCustomValue"),allowCustomValue:({prop:e})=>!!e("allowCustomValue"),hasHighlightedItem:({context:e})=>e.get("highlightedValue")!=null,closeOnSelect:({prop:e})=>!!e("closeOnSelect"),isOpenControlled:({prop:e})=>e("open")!=null,openOnChange:({prop:e,context:t})=>{let n=e("openOnChange");return tg(n)?n:!!(n!=null&&n({inputValue:t.get("inputValue")}))},restoreFocus:({event:e})=>{var n,r;let t=(r=e.restoreFocus)!=null?r:(n=e.previousEvent)==null?void 0:n.restoreFocus;return t==null?!0:!!t},isChangeEvent:({event:e})=>{var t;return((t=e.previousEvent)==null?void 0:t.type)==="INPUT.CHANGE"},autoFocus:({prop:e})=>!!e("autoFocus"),isHighlightedItemRemoved:({prop:e,context:t})=>!e("collection").has(t.get("highlightedValue")),hasCollectionItems:({prop:e})=>e("collection").size>0},effects:{trackFocusVisible({scope:e}){var t;return Qe({root:(t=e.getRootNode)==null?void 0:t.call(e)})},trackDismissableLayer({send:e,prop:t,scope:n}){return t("disableLayer")?void 0:Mt(()=>Br(n),{type:"listbox",defer:!0,exclude:()=>[Mi(n),Oa(n),IT(n)],onFocusOutside:t("onFocusOutside"),onPointerDownOutside:t("onPointerDownOutside"),onInteractOutside:t("onInteractOutside"),onEscapeKeyDown(i){i.preventDefault(),i.stopPropagation(),e({type:"LAYER.ESCAPE",src:"escape-key"})},onDismiss(){e({type:"LAYER.INTERACT_OUTSIDE",src:"interact-outside",restoreFocus:!1})}})},trackLiveRegion({refs:e,scope:t}){let n=hs({level:"assertive",document:t.getDoc()});return e.set("liveRegion",n),()=>n.destroy()},trackPlacement({context:e,prop:t,scope:n}){let r=()=>$p(n)||Oa(n),i=()=>_p(n);return e.set("currentPlacement",t("positioning").placement),je(r,i,v(p({},t("positioning")),{defer:!0,onComplete(a){e.set("currentPlacement",a.placement)}}))},scrollToHighlightedItem({context:e,prop:t,scope:n}){let r=Mi(n),i=[],a=l=>{if(sr()==="pointer")return;let d=e.get("highlightedValue");if(!d)return;let g=Br(n),h=t("scrollToIndexFn");if(h){let m=t("collection").indexOf(d);h({index:m,immediate:l,getElement:()=>Li(n,d)});return}let u=Li(n,d),f=$(()=>{Rn(u,{rootEl:g,block:"nearest"})});i.push(f)},o=$(()=>{lr("virtual"),a(!0)});i.push(o);let s=kt(r,{attributes:["aria-activedescendant"],callback:()=>a(!1)});return i.push(s),()=>{i.forEach(l=>l())}}},actions:{reposition({context:e,prop:t,scope:n,event:r}){je(()=>$p(n),()=>_p(n),v(p(p({},t("positioning")),r.options),{defer:!0,listeners:!1,onComplete(o){e.set("currentPlacement",o.placement)}}))},setHighlightedValue({context:e,event:t}){t.value!=null&&e.set("highlightedValue",t.value)},clearHighlightedValue({context:e}){e.set("highlightedValue",null)},selectHighlightedItem(e){var s;let{context:t,prop:n}=e,r=n("collection"),i=t.get("highlightedValue");if(!i||!r.has(i))return;let a=n("multiple")?Kt(t.get("value"),i):[i];(s=n("onSelect"))==null||s({value:a,itemValue:i}),t.set("value",a);let o=Me(n("selectionBehavior"),{preserve:t.get("inputValue"),replace:r.stringifyMany(a),clear:""});t.set("inputValue",o)},scrollToHighlightedItem({context:e,prop:t,scope:n}){Ar(()=>{let r=e.get("highlightedValue");if(r==null)return;let i=Li(n,r),a=Br(n),o=t("scrollToIndexFn");if(o){let s=t("collection").indexOf(r);o({index:s,immediate:!0,getElement:()=>Li(n,r)});return}Rn(i,{rootEl:a,block:"nearest"})})},selectItem(e){let{context:t,event:n,flush:r,prop:i}=e;n.value!=null&&r(()=>{var s;let a=i("multiple")?Kt(t.get("value"),n.value):[n.value];(s=i("onSelect"))==null||s({value:a,itemValue:n.value}),t.set("value",a);let o=Me(i("selectionBehavior"),{preserve:t.get("inputValue"),replace:i("collection").stringifyMany(a),clear:""});t.set("inputValue",o)})},clearItem(e){let{context:t,event:n,flush:r,prop:i}=e;n.value!=null&&r(()=>{let a=wt(t.get("value"),n.value);t.set("value",a);let o=Me(i("selectionBehavior"),{preserve:t.get("inputValue"),replace:i("collection").stringifyMany(a),clear:""});t.set("inputValue",o)})},setInitialFocus({scope:e}){$(()=>{Bc(e)})},setFinalFocus({scope:e}){$(()=>{let t=Oa(e);(t==null?void 0:t.dataset.focusable)==null?Bc(e):TT(e)})},syncInputValue({context:e,scope:t,event:n}){let r=Mi(t);r&&(r.value=e.get("inputValue"),queueMicrotask(()=>{n.current().type!=="INPUT.CHANGE"&&pi(r)}))},setInputValue({context:e,event:t}){e.set("inputValue",t.value)},clearInputValue({context:e}){e.set("inputValue","")},revertInputValue({context:e,prop:t,computed:n}){let r=t("selectionBehavior"),i=Me(r,{replace:n("hasSelectedItems")?n("valueAsString"):"",preserve:e.get("inputValue"),clear:""});e.set("inputValue",i)},setValue(e){let{context:t,flush:n,event:r,prop:i}=e;n(()=>{t.set("value",r.value);let a=Me(i("selectionBehavior"),{preserve:t.get("inputValue"),replace:i("collection").stringifyMany(r.value),clear:""});t.set("inputValue",a)})},clearSelectedItems(e){let{context:t,flush:n,prop:r}=e;n(()=>{t.set("value",[]);let i=Me(r("selectionBehavior"),{preserve:t.get("inputValue"),replace:r("collection").stringifyMany([]),clear:""});t.set("inputValue",i)})},scrollContentToTop({prop:e,scope:t}){let n=e("scrollToIndexFn");if(n){let r=e("collection").firstValue;n({index:0,immediate:!0,getElement:()=>Li(t,r)})}else{let r=Br(t);if(!r)return;r.scrollTop=0}},invokeOnOpen({prop:e,event:t,context:n}){var i;let r=Hp(t);(i=e("onOpenChange"))==null||i({open:!0,reason:r,value:n.get("value")})},invokeOnClose({prop:e,event:t,context:n}){var i;let r=Hp(t);(i=e("onOpenChange"))==null||i({open:!1,reason:r,value:n.get("value")})},highlightFirstItem({context:e,prop:t,scope:n}){(Br(n)?queueMicrotask:$)(()=>{let i=t("collection").firstValue;i&&e.set("highlightedValue",i)})},highlightFirstItemIfNeeded({computed:e,action:t}){e("autoHighlight")&&t(["highlightFirstItem"])},highlightLastItem({context:e,prop:t,scope:n}){(Br(n)?queueMicrotask:$)(()=>{let i=t("collection").lastValue;i&&e.set("highlightedValue",i)})},highlightNextItem({context:e,prop:t}){let n=null,r=e.get("highlightedValue"),i=t("collection");r?(n=i.getNextValue(r),!n&&t("loopFocus")&&(n=i.firstValue)):n=i.firstValue,n&&e.set("highlightedValue",n)},highlightPrevItem({context:e,prop:t}){let n=null,r=e.get("highlightedValue"),i=t("collection");r?(n=i.getPreviousValue(r),!n&&t("loopFocus")&&(n=i.lastValue)):n=i.lastValue,n&&e.set("highlightedValue",n)},highlightFirstSelectedItem({context:e,prop:t}){$(()=>{let[n]=t("collection").sort(e.get("value"));n&&e.set("highlightedValue",n)})},highlightFirstOrSelectedItem({context:e,prop:t,computed:n}){$(()=>{let r=null;n("hasSelectedItems")?r=t("collection").sort(e.get("value"))[0]:r=t("collection").firstValue,r&&e.set("highlightedValue",r)})},highlightLastOrSelectedItem({context:e,prop:t,computed:n}){$(()=>{let r=t("collection"),i=null;n("hasSelectedItems")?i=r.sort(e.get("value"))[0]:i=r.lastValue,i&&e.set("highlightedValue",i)})},autofillInputValue({context:e,computed:t,prop:n,event:r,scope:i}){let a=Mi(i),o=n("collection");if(!t("autoComplete")||!a||!r.keypress)return;let s=o.stringify(e.get("highlightedValue"));$(()=>{a.value=s||e.get("inputValue")})},syncSelectedItems(e){queueMicrotask(()=>{let{context:t,prop:n}=e,r=n("collection"),i=t.get("value"),a=t.get("selectedItemMap"),o=Pt({values:i,collection:r,selectedItemMap:a});t.set("selectedItemMap",o.nextSelectedItemMap);let s=Me(n("selectionBehavior"),{preserve:t.get("inputValue"),replace:r.stringifyMany(i),clear:""});t.set("inputValue",s)})},syncHighlightedItem({context:e,prop:t}){let n=t("collection").find(e.get("highlightedValue"));e.set("highlightedItem",n)},announceHighlightedItem({context:e,prop:t,refs:n}){var o;if(!ga())return;let r=e.get("highlightedValue"),i=r?t("collection").stringifyItem(t("collection").find(r)):null;if(!i)return;let a=r?e.get("value").includes(r):!1;(o=n.get("liveRegion"))==null||o.announce(a?`${i}, selected`:i)},toggleVisibility({event:e,send:t,prop:n}){t({type:n("open")?"CONTROLLED.OPEN":"CONTROLLED.CLOSE",previousEvent:e})}}}});RT=class extends X{constructor(){super(...arguments);Z(this,"options",[]);Z(this,"allOptions",[]);Z(this,"hasGroups",!1)}setAllOptions(t){this.allOptions=t,this.options=t}getCollection(){let t=this.options||this.allOptions||[];return Gc(Ip(t,this.hasGroups))}initMachine(t){let n=()=>this.getCollection();return new Y(AT,v(p({},t),{get collection(){return n()},onOpenChange:r=>{r.open&&(this.options=this.allOptions),t.onOpenChange&&t.onOpenChange(r)},onInputValueChange:r=>{var i;if(t.onInputValueChange&&t.onInputValueChange(r),this.el.hasAttribute("data-filter")){let a=String((i=r.inputValue)!=null?i:"").toLowerCase(),o=this.allOptions.filter(s=>{var c;return String((c=s.label)!=null?c:"").toLowerCase().includes(a)});this.options=o.length>0?o:this.allOptions}else this.options=this.allOptions}}))}initApi(){return this.zagConnect(wT)}getItemValue(t){var r,i,a;let n=(i=(r=this.api.collection).getItemValue)==null?void 0:i.call(r,t);return(a=n!=null?n:t.id)!=null?a:""}buildOrderedBlocks(t){var i;let n=[],r=null;for(let a of t){let o=(i=a.group)!=null?i:"";o===""?((r==null?void 0:r.type)!=="default"&&(r={type:"default",items:[]},n.push(r)),r.items.push(a)):(((r==null?void 0:r.type)!=="group"||r.groupId!==o)&&(r={type:"group",groupId:o,items:[]},n.push(r)),r.items.push(a))}return n}renderItems(){var a;let t=this.el.querySelector('[data-scope="combobox"][data-part="list"]');if(!t)return;let n=o=>o.closest('[data-scope="combobox"][data-part="list"]')===t,r=xo(this.el,"combobox");if(!r)return;["empty","item-group","item"].forEach(o=>{Array.from(t.querySelectorAll(`[data-scope="combobox"][data-part="${o}"]:not([data-template])`)).filter(n).forEach(s=>s.remove())});let i=(a=this.options)!=null&&a.length?this.options:this.allOptions;if(i.length===0){let o=r.querySelector('[data-scope="combobox"][data-part="empty"][data-template]');if(o){let s=o.cloneNode(!0);s.removeAttribute("data-template"),t.appendChild(s)}return}this.hasGroups?this.renderGroupedItems(t,r,i):this.renderFlatItems(t,r,i)}renderGroupedItems(t,n,r){let i=this.buildOrderedBlocks(r);for(let a of i){if(a.type!=="group")continue;let o=n.querySelector(`[data-scope="combobox"][data-part="item-group"][data-id="${CSS.escape(a.groupId)}"][data-template]`);if(!o)continue;let s=o.cloneNode(!0);s.removeAttribute("data-template"),s.querySelectorAll("[data-template]").forEach(c=>c.removeAttribute("data-template"));let l=new Set(a.items.map(c=>this.getItemValue(c)));s.querySelectorAll('[data-scope="combobox"][data-part="item"]').forEach(c=>{var g;let d=(g=c.dataset.value)!=null?g:"";l.has(d)||c.remove()}),t.appendChild(s)}}renderFlatItems(t,n,r){for(let i of r){let a=this.getItemValue(i),o=n.querySelector(`:scope > [data-scope="combobox"][data-part="item"][data-value="${CSS.escape(a)}"][data-template]`);if(!o)continue;let s=o.cloneNode(!0);s.removeAttribute("data-template"),t.appendChild(s)}}applyItemProps(){var a;let t=this.el.querySelector('[data-scope="combobox"][data-part="list"]');if(!t)return;let n=o=>o.closest('[data-scope="combobox"][data-part="list"]')===t;t.querySelectorAll('[data-scope="combobox"][data-part="item-group"]').forEach(o=>{var c;if(!n(o))return;let s=(c=o.dataset.id)!=null?c:"";this.spreadProps(o,this.api.getItemGroupProps({id:s}));let l=o.querySelector('[data-scope="combobox"][data-part="item-group-label"]');l&&this.spreadProps(l,this.api.getItemGroupLabelProps({htmlFor:s}))});let r=(a=this.options)!=null&&a.length?this.options:this.allOptions,i=new Map;for(let o of r)i.set(this.getItemValue(o),o);for(let o of this.allOptions){let s=this.getItemValue(o);i.has(s)||i.set(s,o)}t.querySelectorAll('[data-scope="combobox"][data-part="item"]').forEach(o=>{var g;if(!n(o))return;let s=(g=o.dataset.value)!=null?g:"",l=i.get(s);if(!l)return;this.spreadProps(o,this.api.getItemProps({item:l}));let c=o.querySelector('[data-scope="combobox"][data-part="item-text"]');c&&this.spreadProps(c,this.api.getItemTextProps({item:l}));let d=o.querySelector('[data-scope="combobox"][data-part="item-indicator"]');d&&this.spreadProps(d,this.api.getItemIndicatorProps({item:l}))})}render(){let t=this.el.querySelector('[data-scope="combobox"][data-part="root"]');t&&(this.spreadProps(t,this.api.getRootProps()),["label","control","input","trigger","clear-trigger","positioner","content","list"].forEach(n=>{let r=this.el.querySelector(`[data-scope="combobox"][data-part="${n}"]`);if(!r)return;let i="get"+n.split("-").map(a=>a[0].toUpperCase()+a.slice(1)).join("")+"Props";this.spreadProps(r,this.api[i]())}),this.renderItems(),this.applyItemProps())}};DT={mounted(){var c;let e=this.el,t=this.pushEvent.bind(this),n=()=>J(this.liveSocket),r=JSON.parse((c=e.getAttribute("data-items"))!=null?c:"[]"),i=r.some(d=>!!d.group),a=p(p({},NT(e,t,n,this.liveSocket)),kT(e)),o=new RT(e,a);o.hasGroups=i,o.setAllOptions(r),o.init(),this.combobox=o;let s=de(e);this.domRegistry=s,s.add("corex:combobox:set-value",d=>{o.api.setValue(d.detail.value)});let l=ce(this);this.handleRegistry=l,l.add("combobox_set_value",d=>{B(e.id,G(d))&&o.api.setValue(d.value)})},updated(){var i,a,o;let e=JSON.parse((i=this.el.getAttribute("data-items"))!=null?i:"[]"),t=e.some(s=>!!s.group);if(!this.combobox)return;this.combobox.hasGroups=t,this.combobox.setAllOptions(e);let n=I(this.el,"redirect"),r=I(this.el,"controlled");this.combobox.updateProps(v(p({collection:this.combobox.getCollection(),id:this.el.id},r?{value:(a=ie(this.el,"value"))!=null?a:[]}:{defaultValue:(o=ie(this.el,"defaultValue"))!=null?o:[]}),{name:V(this.el,"name"),form:V(this.el,"form"),dir:U(this.el),disabled:I(this.el,"disabled"),multiple:n?!1:I(this.el,"multiple"),invalid:I(this.el,"invalid"),required:I(this.el,"required"),readOnly:I(this.el,"readOnly"),placeholder:V(this.el,"placeholder")})),this.combobox.api.open&&this.combobox.api.reposition()},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.combobox)==null||n.destroy()}}});var pf={};fe(pf,{ColorPicker:()=>V0});function jp(e,t){let{xChannel:n,yChannel:r,dir:i="ltr"}=t,{zChannel:a}=e.getColorAxes({xChannel:n,yChannel:r}),o=e.getChannelValue(a),{minValue:s,maxValue:l}=e.getChannelRange(a),c=["top",i==="rtl"?"left":"right"],d=!1,g={areaStyles:{},areaGradientStyles:{}},h=(o-s)/(l-s),u=e.getFormat()==="hsla";switch(a){case"red":{d=n==="green",g=_T(c,d,o);break}case"green":{d=n==="red",g=$T(c,d,o);break}case"blue":{d=n==="red",g=HT(c,d,o);break}case"hue":{d=n!=="saturation",u?g=BT(c,d,o):g=qT(c,d,o);break}case"saturation":{d=n==="hue",u?g=GT(c,d,h):g=WT(c,d,h);break}case"brightness":{d=n==="hue",g=KT(c,d,h);break}case"lightness":{d=n==="hue",g=UT(c,d,o);break}}return g}function h0(e,t){switch(t){case"hue":return hr(`hsl(${e.getChannelValue("hue")}, 100%, 50%)`);case"lightness":case"brightness":case"saturation":case"red":case"green":case"blue":return e.withChannelValue("alpha",1);case"alpha":return e;default:throw new Error("Unknown color channel: "+t)}}function jc(e,t){if(t==null)return"";if(t==="hex")return e.toString("hex");if(t==="css")return e.toString("css");if(t in e)return e.getChannelValue(t).toString();let n=e.getFormat()==="hsla";switch(t){case"hue":return n?e.toFormat("hsla").getChannelValue("hue").toString():e.toFormat("hsba").getChannelValue("hue").toString();case"saturation":return n?e.toFormat("hsla").getChannelValue("saturation").toString():e.toFormat("hsba").getChannelValue("saturation").toString();case"lightness":return e.toFormat("hsla").getChannelValue("lightness").toString();case"brightness":return e.toFormat("hsba").getChannelValue("brightness").toString();case"red":case"green":case"blue":return e.toFormat("rgba").getChannelValue(t).toString();default:return e.getChannelValue(t).toString()}}function p0(e,t){switch(t){case"hex":let n=hr("#000000"),r=hr("#FFFFFF");return{minValue:n.toHexInt(),maxValue:r.toHexInt(),pageSize:10,step:1};case"css":return;case"hue":case"saturation":case"lightness":return e.toFormat("hsla").getChannelRange(t);case"brightness":return e.toFormat("hsba").getChannelRange(t);case"red":case"green":case"blue":return e.toFormat("rgba").getChannelRange(t);default:return e.getChannelRange(t)}}function f0(e,t){return e==="vertical"?"top":t==="ltr"?"right":"left"}function v0(e,t){let{context:n,send:r,prop:i,computed:a,state:o,scope:s}=e,l=n.get("value"),c=n.get("format"),d=a("areaValue"),g=a("valueAsString"),h=a("disabled"),u=!!i("readOnly"),f=!!i("invalid"),m=!!i("required"),P=a("interactive"),C=o.hasTag("dragging"),x=o.hasTag("open"),T=o.hasTag("focused"),b=N=>{var w,k;let O=d.getChannels();return{xChannel:(w=N.xChannel)!=null?w:O[1],yChannel:(k=N.yChannel)!=null?k:O[2]}},y=n.get("currentPlacement"),S=Lt(v(p({},i("positioning")),{placement:y}));function A(N){let O=Yp(N.value).toFormat(n.get("format"));return{value:O,valueAsString:O.toString("hex"),checked:O.isEqual(l),disabled:N.disabled||!P}}return{dragging:C,open:x,valueAsString:g,value:l,inline:!!i("inline"),setOpen(N){i("inline")||o.hasTag("open")===N||r({type:N?"OPEN":"CLOSE"})},setValue(N){r({type:"VALUE.SET",value:Yp(N),src:"set-color"})},getChannelValue(N){return jc(l,N)},getChannelValueText(N,O){return l.formatChannelValue(N,O)},setChannelValue(N,O){let w=l.withChannelValue(N,O);r({type:"VALUE.SET",value:w,src:"set-channel"})},format:n.get("format"),setFormat(N){let O=l.toFormat(N);r({type:"VALUE.SET",value:O,src:"set-format"})},alpha:l.getChannelValue("alpha"),setAlpha(N){let O=l.withChannelValue("alpha",N);r({type:"VALUE.SET",value:O,src:"set-alpha"})},getRootProps(){return t.element(v(p({},ke.root.attrs),{dir:i("dir"),id:t0(s),"data-disabled":E(h),"data-readonly":E(u),"data-invalid":E(f),style:{"--value":l.toString("css")}}))},getLabelProps(){return t.element(v(p({},ke.label.attrs),{dir:i("dir"),id:Xp(s),htmlFor:qc(s),"data-disabled":E(h),"data-readonly":E(u),"data-invalid":E(f),"data-required":E(m),"data-focus":E(T),onClick(N){N.preventDefault();let O=rr(hf(s),"[data-channel=hex]");O==null||O.focus({preventScroll:!0})}}))},getControlProps(){return t.element(v(p({},ke.control.attrs),{id:sf(s),dir:i("dir"),"data-disabled":E(h),"data-readonly":E(u),"data-invalid":E(f),"data-state":x?"open":"closed","data-focus":E(T)}))},getTriggerProps(){return t.button(v(p({},ke.trigger.attrs),{id:lf(s),dir:i("dir"),disabled:h,"aria-label":`select color. current color is ${g}`,"aria-controls":Wc(s),"aria-labelledby":Xp(s),"aria-haspopup":i("inline")?void 0:"dialog","data-disabled":E(h),"data-readonly":E(u),"data-invalid":E(f),"data-placement":y,"aria-expanded":x,"data-state":x?"open":"closed","data-focus":E(T),type:"button",onClick(){P&&r({type:"TRIGGER.CLICK"})},onBlur(){P&&r({type:"TRIGGER.BLUR"})},style:{position:"relative"}}))},getPositionerProps(){return t.element(v(p({},ke.positioner.attrs),{id:cf(s),dir:i("dir"),style:S.floating}))},getContentProps(){return t.element(v(p({},ke.content.attrs),{id:Wc(s),dir:i("dir"),role:i("inline")?void 0:"dialog",tabIndex:-1,"data-placement":y,"data-state":x?"open":"closed",hidden:!x}))},getValueTextProps(){return t.element(v(p({},ke.valueText.attrs),{dir:i("dir"),"data-disabled":E(h),"data-focus":E(T)}))},getAreaProps(N={}){let{xChannel:O,yChannel:w}=b(N),{areaStyles:k}=jp(d,{xChannel:O,yChannel:w,dir:i("dir")});return t.element(v(p({},ke.area.attrs),{id:df(s),role:"group","data-invalid":E(f),"data-disabled":E(h),"data-readonly":E(u),onPointerDown(R){if(!P||!Ee(R)||Fe(R))return;let D=Ze(R);r({type:"AREA.POINTER_DOWN",point:D,channel:{xChannel:O,yChannel:w},id:"area"}),R.preventDefault()},style:p({position:"relative",touchAction:"none",forcedColorAdjust:"none"},k)}))},getAreaBackgroundProps(N={}){let{xChannel:O,yChannel:w}=b(N),{areaGradientStyles:k}=jp(d,{xChannel:O,yChannel:w,dir:i("dir")});return t.element(v(p({},ke.areaBackground.attrs),{id:r0(s),"data-invalid":E(f),"data-disabled":E(h),"data-readonly":E(u),style:p({position:"relative",touchAction:"none",forcedColorAdjust:"none"},k)}))},getAreaThumbProps(N={}){let{xChannel:O,yChannel:w}=b(N),k={xChannel:O,yChannel:w},R=d.getChannelValuePercent(O),D=1-d.getChannelValuePercent(w),ee=i("dir")==="rtl"?1-R:R,ue=d.getChannelValue(O),z=d.getChannelValue(w),le=d.withChannelValue("alpha",1).toString("css");return t.element(v(p({},ke.areaThumb.attrs),{id:uf(s),dir:i("dir"),tabIndex:h?void 0:0,"data-disabled":E(h),"data-invalid":E(f),"data-readonly":E(u),role:"slider","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":ue,"aria-label":`${O} and ${w}`,"aria-roledescription":"2d slider","aria-valuetext":`${O} ${ue}, ${w} ${z}`,style:{position:"absolute",left:`${ee*100}%`,top:`${D*100}%`,transform:"translate(-50%, -50%)",touchAction:"none",forcedColorAdjust:"none","--color":le,background:le},onFocus(){P&&r({type:"AREA.FOCUS",id:"area",channel:k})},onKeyDown(he){if(he.defaultPrevented||!P)return;let ae=xn(he),Le={ArrowUp(){r({type:"AREA.ARROW_UP",channel:k,step:ae})},ArrowDown(){r({type:"AREA.ARROW_DOWN",channel:k,step:ae})},ArrowLeft(){r({type:"AREA.ARROW_LEFT",channel:k,step:ae})},ArrowRight(){r({type:"AREA.ARROW_RIGHT",channel:k,step:ae})},PageUp(){r({type:"AREA.PAGE_UP",channel:k,step:ae})},PageDown(){r({type:"AREA.PAGE_DOWN",channel:k,step:ae})},Escape(Gt){Gt.stopPropagation()}}[ve(he,{dir:i("dir")})];Le&&(Le(he),he.preventDefault())}}))},getTransparencyGridProps(N={}){let{size:O="12px"}=N;return t.element(v(p({},ke.transparencyGrid.attrs),{style:{"--size":O,width:"100%",height:"100%",position:"absolute",backgroundColor:"#fff",backgroundImage:"conic-gradient(#eeeeee 0 25%, transparent 0 50%, #eeeeee 0 75%, transparent 0)",backgroundSize:"var(--size) var(--size)",inset:"0px",zIndex:"auto",pointerEvents:"none"}}))},getChannelSliderProps(N){let{orientation:O="horizontal",channel:w,format:k}=N;return t.element(v(p({},ke.channelSlider.attrs),{"data-channel":w,"data-orientation":O,role:"presentation",onPointerDown(R){if(!P||!Ee(R)||Fe(R))return;let D=Ze(R);r({type:"CHANNEL_SLIDER.POINTER_DOWN",channel:w,format:k,point:D,id:w,orientation:O}),R.preventDefault()},style:{position:"relative",touchAction:"none"}}))},getChannelSliderTrackProps(N){let{orientation:O="horizontal",channel:w,format:k}=N,R=k?l.toFormat(k):d;return t.element(v(p({},ke.channelSliderTrack.attrs),{id:gf(s,w),role:"group","data-channel":w,"data-orientation":O,style:{position:"relative",forcedColorAdjust:"none",backgroundImage:m0({orientation:O,channel:w,dir:i("dir"),value:R})}}))},getChannelSliderLabelProps(N){let{channel:O}=N;return t.element(v(p({},ke.channelSliderLabel.attrs),{"data-channel":O,onClick(w){var R;if(!P)return;w.preventDefault();let k=Kc(s,O);(R=s.getById(k))==null||R.focus({preventScroll:!0})},style:{userSelect:"none",WebkitUserSelect:"none"}}))},getChannelSliderValueTextProps(N){return t.element(v(p({},ke.channelSliderValueText.attrs),{"data-channel":N.channel}))},getChannelSliderThumbProps(N){let{orientation:O="horizontal",channel:w,format:k}=N,R=k?l.toFormat(k):d,D=R.getChannelRange(w),W=R.getChannelValue(w),ee=(W-D.minValue)/(D.maxValue-D.minValue),ue=i("dir")==="rtl",z=O==="horizontal"&&ue?1-ee:ee,le=O==="horizontal"?{left:`${z*100}%`,top:"50%"}:{top:`${ee*100}%`,left:"50%"};return t.element(v(p({},ke.channelSliderThumb.attrs),{id:Kc(s,w),role:"slider","aria-label":w,tabIndex:h?void 0:0,"data-channel":w,"data-disabled":E(h),"data-orientation":O,"aria-disabled":E(h),"aria-orientation":O,"aria-valuemax":D.maxValue,"aria-valuemin":D.minValue,"aria-valuenow":W,"aria-valuetext":`${w} ${W}`,style:p({forcedColorAdjust:"none",position:"absolute",background:h0(d,w).toString("css")},le),onFocus(){P&&r({type:"CHANNEL_SLIDER.FOCUS",channel:w})},onKeyDown(he){if(he.defaultPrevented||!P)return;let ae=xn(he)*D.step,Le={ArrowUp(){r({type:"CHANNEL_SLIDER.ARROW_UP",channel:w,step:ae})},ArrowDown(){r({type:"CHANNEL_SLIDER.ARROW_DOWN",channel:w,step:ae})},ArrowLeft(){r({type:"CHANNEL_SLIDER.ARROW_LEFT",channel:w,step:ae})},ArrowRight(){r({type:"CHANNEL_SLIDER.ARROW_RIGHT",channel:w,step:ae})},PageUp(){r({type:"CHANNEL_SLIDER.PAGE_UP",channel:w})},PageDown(){r({type:"CHANNEL_SLIDER.PAGE_DOWN",channel:w})},Home(){r({type:"CHANNEL_SLIDER.HOME",channel:w})},End(){r({type:"CHANNEL_SLIDER.END",channel:w})},Escape(Gt){Gt.stopPropagation()}}[ve(he,{dir:i("dir")})];Le&&(Le(he),he.preventDefault())}}))},getChannelInputProps(N){let{channel:O}=N,w=O==="hex"||O==="css",k=p0(l,O);return t.input(v(p({},ke.channelInput.attrs),{dir:i("dir"),type:w?"text":"number","data-channel":O,"aria-label":O,spellCheck:!1,autoComplete:"off",disabled:h,"data-disabled":E(h),"data-invalid":E(f),"data-readonly":E(u),readOnly:u,defaultValue:jc(l,O),min:k==null?void 0:k.minValue,max:k==null?void 0:k.maxValue,step:k==null?void 0:k.step,onBeforeInput(R){if(w||!P)return;R.currentTarget.value.match(/[^0-9.]/g)&&R.preventDefault()},onFocus(R){P&&(r({type:"CHANNEL_INPUT.FOCUS",channel:O}),R.currentTarget.select())},onBlur(R){if(!P)return;let D=w?R.currentTarget.value:R.currentTarget.valueAsNumber;r({type:"CHANNEL_INPUT.BLUR",channel:O,value:D,isTextField:w})},onKeyDown(R){if(!R.defaultPrevented&&P&&R.key==="Enter"){let D=w?R.currentTarget.value:R.currentTarget.valueAsNumber;r({type:"CHANNEL_INPUT.CHANGE",channel:O,value:D,isTextField:w}),R.preventDefault()}},style:{appearance:"none",WebkitAppearance:"none",MozAppearance:"textfield"}}))},getHiddenInputProps(){return t.input({type:"text",disabled:h,name:i("name"),tabIndex:-1,readOnly:u,required:m,id:qc(s),style:dt,defaultValue:g})},getEyeDropperTriggerProps(){return t.button(v(p({},ke.eyeDropperTrigger.attrs),{type:"button",dir:i("dir"),disabled:h,"data-disabled":E(h),"data-invalid":E(f),"data-readonly":E(u),"aria-label":"Pick a color from the screen",onClick(){P&&r({type:"EYEDROPPER.CLICK"})}}))},getSwatchGroupProps(){return t.element(v(p({},ke.swatchGroup.attrs),{role:"group"}))},getSwatchTriggerState:A,getSwatchTriggerProps(N){let O=A(N);return t.button(v(p({},ke.swatchTrigger.attrs),{disabled:O.disabled,dir:i("dir"),type:"button","aria-label":`select ${O.valueAsString} as the color`,"data-state":O.checked?"checked":"unchecked","data-value":O.valueAsString,"data-disabled":E(O.disabled),onClick(){O.disabled||r({type:"SWATCH_TRIGGER.CLICK",value:O.value})},style:{"--color":O.valueAsString,position:"relative"}}))},getSwatchIndicatorProps(N){let O=A(N);return t.element(v(p({},ke.swatchIndicator.attrs),{dir:i("dir"),hidden:!O.checked}))},getSwatchProps(N){let{respectAlpha:O=!0}=N,w=A(N),k=w.value.toString(O?"css":"hex");return t.element(v(p({},ke.swatch.attrs),{dir:i("dir"),"data-state":w.checked?"checked":"unchecked","data-value":w.valueAsString,style:{"--color":k,position:"relative",background:k}}))},getFormatTriggerProps(){return t.button(v(p({},ke.formatTrigger.attrs),{dir:i("dir"),type:"button","aria-label":`change color format to ${Jp(c)}`,onClick(N){if(N.currentTarget.disabled)return;let O=Jp(c);r({type:"FORMAT.SET",format:O,src:"format-trigger"})}}))},getFormatSelectProps(){return t.select(v(p({},ke.formatSelect.attrs),{"aria-label":"change color format",dir:i("dir"),defaultValue:i("format"),disabled:h,onChange(N){let O=b0(N.currentTarget.value);r({type:"FORMAT.SET",format:O,src:"format-select"})}}))}}}function Jp(e){var n;let t=Ls.indexOf(e);return(n=Ls[t+1])!=null?n:Ls[0]}function b0(e){if(y0.test(e))return e;throw new Error(`Unsupported color format: ${e}`)}function S0(e){return E0.test(e)}function P0(e){return e.startsWith("#")?e:S0(e)?`#${e}`:e}function ef(e,t,n){let r=g0(e);$(()=>{r.forEach(i=>{let a=i.dataset.channel;He(i,jc(n||t,a))})})}function w0(e,t){let n=o0(e);n&&$(()=>He(n,t))}function tf(e,t){if(t===void 0)return;let n=e.querySelector('[data-scope="color-picker"][data-part="hidden-input"]');n&&(n.value=t,n.dispatchEvent(new Event("input",{bubbles:!0})),n.dispatchEvent(new Event("change",{bubbles:!0})))}function nf(e){let t=V(e,"defaultValue");return{defaultValue:t?Jc(t):void 0}}var LT,ke,MT,FT,rt,_T,$T,HT,BT,GT,UT,qT,WT,KT,jT,zc,zT,YT,XT,rf,Yc,ZT,af,Xc,JT,of,Zc,QT,e0,zp,hr,Yp,t0,Xp,qc,sf,lf,Wc,cf,n0,df,r0,uf,gf,Kc,Ds,i0,a0,o0,Zp,s0,l0,hf,Uc,c0,d0,u0,g0,m0,Ls,y0,Jc,E0,C0,I0,Qp,T0,O0,V0,ff=ne(()=>{"use strict";wi();_r();gr();gn();Nt();Ce();se();LT=j("color-picker",["root","label","control","trigger","positioner","content","area","areaThumb","valueText","areaBackground","channelSlider","channelSliderLabel","channelSliderTrack","channelSliderThumb","channelSliderValueText","channelInput","transparencyGrid","swatchGroup","swatchTrigger","swatchIndicator","swatch","eyeDropperTrigger","formatTrigger","formatSelect"]),ke=LT.build(),MT=Object.defineProperty,FT=(e,t,n)=>t in e?MT(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,rt=(e,t,n)=>FT(e,typeof t!="symbol"?t+"":t,n),_T=(e,t,n)=>{let r=`linear-gradient(to ${e[+!t]}, transparent, #000)`;return{areaStyles:{backgroundImage:`linear-gradient(to ${e[Number(t)]},rgb(${n},0,0),rgb(${n},255,0))`},areaGradientStyles:{backgroundImage:`linear-gradient(to ${e[Number(t)]},rgb(${n},0,255),rgb(${n},255,255))`,WebkitMaskImage:r,maskImage:r}}},$T=(e,t,n)=>{let r=`linear-gradient(to ${e[+!t]}, transparent, #000)`;return{areaStyles:{backgroundImage:`linear-gradient(to ${e[Number(t)]},rgb(0,${n},0),rgb(255,${n},0))`},areaGradientStyles:{backgroundImage:`linear-gradient(to ${e[Number(t)]},rgb(0,${n},255),rgb(255,${n},255))`,WebkitMaskImage:r,maskImage:r}}},HT=(e,t,n)=>{let r=`linear-gradient(to ${e[+!t]}, transparent, #000)`;return{areaStyles:{backgroundImage:`linear-gradient(to ${e[Number(t)]},rgb(0,0,${n}),rgb(255,0,${n}))`},areaGradientStyles:{backgroundImage:`linear-gradient(to ${e[Number(t)]},rgb(0,255,${n}),rgb(255,255,${n}))`,WebkitMaskImage:r,maskImage:r}}},BT=(e,t,n)=>({areaStyles:{},areaGradientStyles:{background:[`linear-gradient(to ${e[Number(t)]}, hsla(0,0%,0%,1) 0%, hsla(0,0%,0%,0) 50%, hsla(0,0%,100%,0) 50%, hsla(0,0%,100%,1) 100%)`,`linear-gradient(to ${e[+!t]},hsl(0,0%,50%),hsla(0,0%,50%,0))`,`hsl(${n}, 100%, 50%)`].join(",")}}),GT=(e,t,n)=>({areaStyles:{},areaGradientStyles:{background:[`linear-gradient(to ${e[+!t]}, hsla(0,0%,0%,${n}) 0%, hsla(0,0%,0%,0) 50%, hsla(0,0%,100%,0) 50%, hsla(0,0%,100%,${n}) 100%)`,`linear-gradient(to ${e[Number(t)]},hsla(0,100%,50%,${n}),hsla(60,100%,50%,${n}),hsla(120,100%,50%,${n}),hsla(180,100%,50%,${n}),hsla(240,100%,50%,${n}),hsla(300,100%,50%,${n}),hsla(359,100%,50%,${n}))`,"hsl(0, 0%, 50%)"].join(",")}}),UT=(e,t,n)=>({areaStyles:{},areaGradientStyles:{backgroundImage:[`linear-gradient(to ${e[+!t]},hsl(0,0%,${n}%),hsla(0,0%,${n}%,0))`,`linear-gradient(to ${e[Number(t)]},hsl(0,100%,${n}%),hsl(60,100%,${n}%),hsl(120,100%,${n}%),hsl(180,100%,${n}%),hsl(240,100%,${n}%),hsl(300,100%,${n}%),hsl(360,100%,${n}%))`].join(",")}}),qT=(e,t,n)=>({areaStyles:{},areaGradientStyles:{background:[`linear-gradient(to ${e[Number(t)]},hsl(0,0%,0%),hsla(0,0%,0%,0))`,`linear-gradient(to ${e[+!t]},hsl(0,0%,100%),hsla(0,0%,100%,0))`,`hsl(${n}, 100%, 50%)`].join(",")}}),WT=(e,t,n)=>({areaStyles:{},areaGradientStyles:{background:[`linear-gradient(to ${e[+!t]},hsla(0,0%,0%,${n}),hsla(0,0%,0%,0))`,`linear-gradient(to ${e[Number(t)]},hsla(0,100%,50%,${n}),hsla(60,100%,50%,${n}),hsla(120,100%,50%,${n}),hsla(180,100%,50%,${n}),hsla(240,100%,50%,${n}),hsla(300,100%,50%,${n}),hsla(359,100%,50%,${n}))`,`linear-gradient(to ${e[+!t]},hsl(0,0%,0%),hsl(0,0%,100%))`].join(",")}}),KT=(e,t,n)=>({areaStyles:{},areaGradientStyles:{background:[`linear-gradient(to ${e[+!t]},hsla(0,0%,100%,${n}),hsla(0,0%,100%,0))`,`linear-gradient(to ${e[Number(t)]},hsla(0,100%,50%,${n}),hsla(60,100%,50%,${n}),hsla(120,100%,50%,${n}),hsla(180,100%,50%,${n}),hsla(240,100%,50%,${n}),hsla(300,100%,50%,${n}),hsla(359,100%,50%,${n}))`,"#000"].join(",")}});jT=(e,t)=>{if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0},zc=class{toHexInt(){return this.toFormat("rgba").toHexInt()}getChannelValue(e){if(e in this)return this[e];throw new Error("Unsupported color channel: "+e)}getChannelValuePercent(e,t){let n=t!=null?t:this.getChannelValue(e),{minValue:r,maxValue:i}=this.getChannelRange(e);return eh(n,r,i)}getChannelPercentValue(e,t){let{minValue:n,maxValue:r,step:i}=this.getChannelRange(e),a=th(t,n,r,i);return ba(a,n,r,i)}withChannelValue(e,t){let{minValue:n,maxValue:r}=this.getChannelRange(e);if(e in this){let i=this.clone();return i[e]=Oe(t,n,r),i}throw new Error("Unsupported color channel: "+e)}getColorAxes(e){let{xChannel:t,yChannel:n}=e,r=t||this.getChannels().find(o=>o!==n),i=n||this.getChannels().find(o=>o!==r),a=this.getChannels().find(o=>o!==r&&o!==i);return{xChannel:r,yChannel:i,zChannel:a}}incrementChannel(e,t){let{minValue:n,maxValue:r,step:i}=this.getChannelRange(e),a=ba(Oe(this.getChannelValue(e)+t,n,r),n,r,i);return this.withChannelValue(e,a)}decrementChannel(e,t){return this.incrementChannel(e,-t)}isEqual(e){return jT(this.toJSON(),e.toJSON())&&this.getChannelValue("alpha")===e.getChannelValue("alpha")}},zT=/^#[\da-f]+$/i,YT=/^rgba?\((.*)\)$/,XT=/[^#]/gi,rf=class Rs extends zc{constructor(t,n,r,i){super(),rt(this,"red",t),rt(this,"green",n),rt(this,"blue",r),rt(this,"alpha",i)}static parse(t){var i;let n=[];if(zT.test(t)&&[4,5,7,9].includes(t.length)){let a=(t.length<6?t.replace(XT,"$&$&"):t).slice(1).split("");for(;a.length>0;)n.push(parseInt(a.splice(0,2).join(""),16));n[3]=n[3]!==void 0?n[3]/255:void 0}let r=t.match(YT);return r!=null&&r[1]&&(n=r[1].split(",").map(a=>Number(a.trim())).map((a,o)=>Oe(a,0,o<3?255:1))),n.length<3?void 0:new Rs(n[0],n[1],n[2],(i=n[3])!=null?i:1)}toString(t="css"){switch(t){case"hex":return"#"+(this.red.toString(16).padStart(2,"0")+this.green.toString(16).padStart(2,"0")+this.blue.toString(16).padStart(2,"0")).toUpperCase();case"hexa":return"#"+(this.red.toString(16).padStart(2,"0")+this.green.toString(16).padStart(2,"0")+this.blue.toString(16).padStart(2,"0")+Math.round(this.alpha*255).toString(16).padStart(2,"0")).toUpperCase();case"rgb":return`rgb(${this.red}, ${this.green}, ${this.blue})`;case"css":case"rgba":return`rgba(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`;case"hsl":return this.toHSL().toString("hsl");case"hsb":return this.toHSB().toString("hsb");default:return this.toFormat(t).toString(t)}}toFormat(t){switch(t){case"rgba":return this;case"hsba":return this.toHSB();case"hsla":return this.toHSL();default:throw new Error("Unsupported color conversion: rgb -> "+t)}}toHexInt(){return this.red<<16|this.green<<8|this.blue}toHSB(){let t=this.red/255,n=this.green/255,r=this.blue/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=a-i,s=a===0?0:o/a,l=0;if(o!==0){switch(a){case t:l=(n-r)/o+(nNumber(l.trim().replace("%","")));return new ks(lc(i,360),Oe(a,0,100),Oe(o,0,100),Oe(s!=null?s:1,0,1))}}toString(t="css"){switch(t){case"hex":return this.toRGB().toString("hex");case"hexa":return this.toRGB().toString("hexa");case"hsl":return`hsl(${this.hue}, ${Ve(this.saturation,2)}%, ${Ve(this.lightness,2)}%)`;case"css":case"hsla":return`hsla(${this.hue}, ${Ve(this.saturation,2)}%, ${Ve(this.lightness,2)}%, ${this.alpha})`;case"hsb":return this.toHSB().toString("hsb");case"rgb":return this.toRGB().toString("rgb");default:return this.toFormat(t).toString(t)}}toFormat(t){switch(t){case"hsla":return this;case"hsba":return this.toHSB();case"rgba":return this.toRGB();default:throw new Error("Unsupported color conversion: hsl -> "+t)}}toHSB(){let t=this.saturation/100,n=this.lightness/100,r=n+t*Math.min(n,1-n);return t=r===0?0:2*(1-n/r),new Zc(Ve(this.hue,2),Ve(t*100,2),Ve(r*100,2),Ve(this.alpha,2))}toRGB(){let t=this.hue,n=this.saturation/100,r=this.lightness/100,i=n*Math.min(r,1-r),a=(o,s=(o+t/30)%12)=>r-i*Math.max(Math.min(s-3,9-s,1),-1);return new Yc(Math.round(a(0)*255),Math.round(a(8)*255),Math.round(a(4)*255),Ve(this.alpha,2))}clone(){return new ks(this.hue,this.saturation,this.lightness,this.alpha)}getChannelFormatOptions(t){switch(t){case"hue":return{style:"unit",unit:"degree",unitDisplay:"narrow"};case"saturation":case"lightness":case"alpha":return{style:"percent"};default:throw new Error("Unknown color channel: "+t)}}formatChannelValue(t,n){let r=this.getChannelFormatOptions(t),i=this.getChannelValue(t);return(t==="saturation"||t==="lightness")&&(i/=100),new Intl.NumberFormat(n,r).format(i)}getChannelRange(t){switch(t){case"hue":return{minValue:0,maxValue:360,step:1,pageSize:15};case"saturation":case"lightness":return{minValue:0,maxValue:100,step:1,pageSize:10};case"alpha":return{minValue:0,maxValue:1,step:.01,pageSize:.1};default:throw new Error("Unknown color channel: "+t)}}toJSON(){return{h:this.hue,s:this.saturation,l:this.lightness,a:this.alpha}}getFormat(){return"hsla"}getChannels(){return ks.colorChannels}};rt(af,"colorChannels",["hue","saturation","lightness"]);Xc=af,JT=/hsb\(([-+]?\d+(?:.\d+)?\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d+(?:.\d+)?%)\)|hsba\(([-+]?\d+(?:.\d+)?\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d(.\d+)?)\)/,of=class Ns extends zc{constructor(t,n,r,i){super(),rt(this,"hue",t),rt(this,"saturation",n),rt(this,"brightness",r),rt(this,"alpha",i)}static parse(t){var r;let n;if(n=t.match(JT)){let[i,a,o,s]=((r=n[1])!=null?r:n[2]).split(",").map(l=>Number(l.trim().replace("%","")));return new Ns(lc(i,360),Oe(a,0,100),Oe(o,0,100),Oe(s!=null?s:1,0,1))}}toString(t="css"){switch(t){case"css":return this.toHSL().toString("css");case"hex":return this.toRGB().toString("hex");case"hexa":return this.toRGB().toString("hexa");case"hsb":return`hsb(${this.hue}, ${Ve(this.saturation,2)}%, ${Ve(this.brightness,2)}%)`;case"hsba":return`hsba(${this.hue}, ${Ve(this.saturation,2)}%, ${Ve(this.brightness,2)}%, ${this.alpha})`;case"hsl":return this.toHSL().toString("hsl");case"rgb":return this.toRGB().toString("rgb");default:return this.toFormat(t).toString(t)}}toFormat(t){switch(t){case"hsba":return this;case"hsla":return this.toHSL();case"rgba":return this.toRGB();default:throw new Error("Unsupported color conversion: hsb -> "+t)}}toHSL(){let t=this.saturation/100,n=this.brightness/100,r=n*(1-t/2);return t=r===0||r===1?0:(n-r)/Math.min(r,1-r),new Xc(Ve(this.hue,2),Ve(t*100,2),Ve(r*100,2),Ve(this.alpha,2))}toRGB(){let t=this.hue,n=this.saturation/100,r=this.brightness/100,i=(a,o=(a+t/60)%6)=>r-n*r*Math.max(Math.min(o,4-o,1),0);return new Yc(Math.round(i(5)*255),Math.round(i(3)*255),Math.round(i(1)*255),Ve(this.alpha,2))}clone(){return new Ns(this.hue,this.saturation,this.brightness,this.alpha)}getChannelFormatOptions(t){switch(t){case"hue":return{style:"unit",unit:"degree",unitDisplay:"narrow"};case"saturation":case"brightness":case"alpha":return{style:"percent"};default:throw new Error("Unknown color channel: "+t)}}formatChannelValue(t,n){let r=this.getChannelFormatOptions(t),i=this.getChannelValue(t);return(t==="saturation"||t==="brightness")&&(i/=100),new Intl.NumberFormat(n,r).format(i)}getChannelRange(t){switch(t){case"hue":return{minValue:0,maxValue:360,step:1,pageSize:15};case"saturation":case"brightness":return{minValue:0,maxValue:100,step:1,pageSize:10};case"alpha":return{minValue:0,maxValue:1,step:.01,pageSize:.1};default:throw new Error("Unknown color channel: "+t)}}toJSON(){return{h:this.hue,s:this.saturation,b:this.brightness,a:this.alpha}}getFormat(){return"hsba"}getChannels(){return Ns.colorChannels}};rt(of,"colorChannels",["hue","saturation","brightness"]);Zc=of,QT="aliceblue:f0f8ff,antiquewhite:faebd7,aqua:00ffff,aquamarine:7fffd4,azure:f0ffff,beige:f5f5dc,bisque:ffe4c4,black:000000,blanchedalmond:ffebcd,blue:0000ff,blueviolet:8a2be2,brown:a52a2a,burlywood:deb887,cadetblue:5f9ea0,chartreuse:7fff00,chocolate:d2691e,coral:ff7f50,cornflowerblue:6495ed,cornsilk:fff8dc,crimson:dc143c,cyan:00ffff,darkblue:00008b,darkcyan:008b8b,darkgoldenrod:b8860b,darkgray:a9a9a9,darkgreen:006400,darkkhaki:bdb76b,darkmagenta:8b008b,darkolivegreen:556b2f,darkorange:ff8c00,darkorchid:9932cc,darkred:8b0000,darksalmon:e9967a,darkseagreen:8fbc8f,darkslateblue:483d8b,darkslategray:2f4f4f,darkturquoise:00ced1,darkviolet:9400d3,deeppink:ff1493,deepskyblue:00bfff,dimgray:696969,dodgerblue:1e90ff,firebrick:b22222,floralwhite:fffaf0,forestgreen:228b22,fuchsia:ff00ff,gainsboro:dcdcdc,ghostwhite:f8f8ff,gold:ffd700,goldenrod:daa520,gray:808080,green:008000,greenyellow:adff2f,honeydew:f0fff0,hotpink:ff69b4,indianred:cd5c5c,indigo:4b0082,ivory:fffff0,khaki:f0e68c,lavender:e6e6fa,lavenderblush:fff0f5,lawngreen:7cfc00,lemonchiffon:fffacd,lightblue:add8e6,lightcoral:f08080,lightcyan:e0ffff,lightgoldenrodyellow:fafad2,lightgrey:d3d3d3,lightgreen:90ee90,lightpink:ffb6c1,lightsalmon:ffa07a,lightseagreen:20b2aa,lightskyblue:87cefa,lightslategray:778899,lightsteelblue:b0c4de,lightyellow:ffffe0,lime:00ff00,limegreen:32cd32,linen:faf0e6,magenta:ff00ff,maroon:800000,mediumaquamarine:66cdaa,mediumblue:0000cd,mediumorchid:ba55d3,mediumpurple:9370d8,mediumseagreen:3cb371,mediumslateblue:7b68ee,mediumspringgreen:00fa9a,mediumturquoise:48d1cc,mediumvioletred:c71585,midnightblue:191970,mintcream:f5fffa,mistyrose:ffe4e1,moccasin:ffe4b5,navajowhite:ffdead,navy:000080,oldlace:fdf5e6,olive:808000,olivedrab:6b8e23,orange:ffa500,orangered:ff4500,orchid:da70d6,palegoldenrod:eee8aa,palegreen:98fb98,paleturquoise:afeeee,palevioletred:d87093,papayawhip:ffefd5,peachpuff:ffdab9,peru:cd853f,pink:ffc0cb,plum:dda0dd,powderblue:b0e0e6,purple:800080,rebeccapurple:663399,red:ff0000,rosybrown:bc8f8f,royalblue:4169e1,saddlebrown:8b4513,salmon:fa8072,sandybrown:f4a460,seagreen:2e8b57,seashell:fff5ee,sienna:a0522d,silver:c0c0c0,skyblue:87ceeb,slateblue:6a5acd,slategray:708090,snow:fffafa,springgreen:00ff7f,steelblue:4682b4,tan:d2b48c,teal:008080,thistle:d8bfd8,tomato:ff6347,turquoise:40e0d0,violet:ee82ee,wheat:f5deb3,white:ffffff,whitesmoke:f5f5f5,yellow:ffff00,yellowgreen:9acd32",e0=e=>{let t=new Map,n=e.split(",");for(let r=0;r{var n;if(zp.has(e))return hr(zp.get(e));let t=Yc.parse(e)||Zc.parse(e)||Xc.parse(e);if(!t){let r=new Error("Invalid color value: "+e);throw(n=Error.captureStackTrace)==null||n.call(Error,r,hr),r}return t},Yp=e=>typeof e=="string"?hr(e):e,t0=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`color-picker:${e.id}`},Xp=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`color-picker:${e.id}:label`},qc=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.hiddenInput)!=null?n:`color-picker:${e.id}:hidden-input`},sf=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.control)!=null?n:`color-picker:${e.id}:control`},lf=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.trigger)!=null?n:`color-picker:${e.id}:trigger`},Wc=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.content)!=null?n:`color-picker:${e.id}:content`},cf=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.positioner)!=null?n:`color-picker:${e.id}:positioner`},n0=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.formatSelect)!=null?n:`color-picker:${e.id}:format-select`},df=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.area)!=null?n:`color-picker:${e.id}:area`},r0=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.areaGradient)!=null?n:`color-picker:${e.id}:area-gradient`},uf=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.areaThumb)!=null?n:`color-picker:${e.id}:area-thumb`},gf=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.channelSliderTrack)==null?void 0:r.call(n,t))!=null?i:`color-picker:${e.id}:slider-track:${t}`},Kc=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.channelSliderThumb)==null?void 0:r.call(n,t))!=null?i:`color-picker:${e.id}:slider-thumb:${t}`},Ds=e=>e.getById(Wc(e)),i0=e=>e.getById(uf(e)),a0=(e,t)=>e.getById(Kc(e,t)),o0=e=>e.getById(n0(e)),Zp=e=>e.getById(qc(e)),s0=e=>e.getById(df(e)),l0=(e,t,n)=>{let r=s0(e);if(!r)return;let{getPercentValue:i}=bi(t,r);return{x:i({dir:n,orientation:"horizontal"}),y:i({orientation:"vertical"})}},hf=e=>e.getById(sf(e)),Uc=e=>e.getById(lf(e)),c0=e=>e.getById(cf(e)),d0=(e,t)=>e.getById(gf(e,t)),u0=(e,t,n,r)=>{let i=d0(e,n);if(!i)return;let{getPercentValue:a}=bi(t,i);return{x:a({dir:r,orientation:"horizontal"}),y:a({orientation:"vertical"})}},g0=e=>[...xe(Ds(e),"input[data-channel]"),...xe(hf(e),"input[data-channel]")];m0=e=>{let{channel:t,value:n,dir:r,orientation:i}=e,a=f0(i,r),{minValue:o,maxValue:s}=n.getChannelRange(t);switch(t){case"hue":return`linear-gradient(to ${a}, rgb(255, 0, 0) 0%, rgb(255, 255, 0) 17%, rgb(0, 255, 0) 33%, rgb(0, 255, 255) 50%, rgb(0, 0, 255) 67%, rgb(255, 0, 255) 83%, rgb(255, 0, 0) 100%)`;case"lightness":{let l=n.withChannelValue(t,o).toString("css"),c=n.withChannelValue(t,(s-o)/2).toString("css"),d=n.withChannelValue(t,s).toString("css");return`linear-gradient(to ${a}, ${l}, ${c}, ${d})`}case"saturation":case"brightness":case"red":case"green":case"blue":case"alpha":{let l=n.withChannelValue(t,o).toString("css"),c=n.withChannelValue(t,s).toString("css");return`linear-gradient(to ${a}, ${l}, ${c})`}default:throw new Error("Unknown color channel: "+t)}};Ls=["hsba","hsla","rgba"],y0=new RegExp(`^(${Ls.join("|")})$`);Jc=e=>hr(e),E0=/^[0-9a-fA-F]{3,8}$/;({and:C0}=Te()),I0=e=>{var n;let t="";for(let r in e)t+=`${r}:${(n=e[r])!=null?n:""};`;return t},Qp=Jc("#000000"),T0=te({props({props:e}){var n,r;let t=(r=(n=e.value)!=null?n:e.defaultValue)!=null?r:Qp;return v(p({dir:"ltr",defaultValue:Qp,defaultFormat:t.getFormat(),openAutoFocus:!0},e),{positioning:p({placement:"bottom"},e.positioning)})},initialState({prop:e}){return e("open")||e("defaultOpen")||e("inline")?"open":"idle"},context({prop:e,bindable:t,getContext:n}){return{value:t(()=>{var r,i,a;return{defaultValue:e("defaultValue").toFormat((r=e("format"))!=null?r:e("defaultFormat")),value:(a=e("value"))==null?void 0:a.toFormat((i=e("format"))!=null?i:e("defaultFormat")),isEqual(o,s){return s!=null&&o.isEqual(s)},hash(o){return I0(o.toJSON())},onChange(o){var c;let l=n().get("format");(c=e("onValueChange"))==null||c({value:o,valueAsString:o.toString(l)})}}}),format:t(()=>({defaultValue:e("defaultFormat"),value:e("format"),onChange(r){var i;(i=e("onFormatChange"))==null||i({format:r})}})),activeId:t(()=>({defaultValue:null})),activeChannel:t(()=>({defaultValue:null})),activeOrientation:t(()=>({defaultValue:null})),fieldsetDisabled:t(()=>({defaultValue:!1})),restoreFocus:t(()=>({defaultValue:!0})),currentPlacement:t(()=>({defaultValue:void 0}))}},computed:{rtl:({prop:e})=>e("dir")==="rtl",disabled:({prop:e,context:t})=>!!e("disabled")||t.get("fieldsetDisabled"),interactive:({prop:e})=>!(e("disabled")||e("readOnly")),valueAsString:({context:e})=>e.get("value").toString(e.get("format")),areaValue:({context:e})=>{let t=e.get("format").startsWith("hsl")?"hsla":"hsba";return e.get("value").toFormat(t)}},effects:["trackFormControl"],watch({prop:e,context:t,action:n,track:r}){r([()=>t.hash("value")],()=>{n(["syncInputElements","dispatchChangeEvent"])}),r([()=>t.get("format")],()=>{n(["syncFormatSelectElement","syncValueWithFormat"])}),r([()=>e("open")],()=>{n(["toggleVisibility"])})},on:{"VALUE.SET":{actions:["setValue"]},"FORMAT.SET":{actions:["setFormat"]},"CHANNEL_INPUT.CHANGE":{actions:["setChannelColorFromInput"]},"EYEDROPPER.CLICK":{actions:["openEyeDropper"]},"SWATCH_TRIGGER.CLICK":{actions:["setValue"]}},states:{idle:{tags:["closed"],on:{"CONTROLLED.OPEN":{target:"open",actions:["setInitialFocus"]},OPEN:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["invokeOnOpen","setInitialFocus"]}],"TRIGGER.CLICK":[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["invokeOnOpen","setInitialFocus"]}],"CHANNEL_INPUT.FOCUS":{target:"focused",actions:["setActiveChannel"]}}},focused:{id:"color-picker-focused",tags:["closed","focused"],on:{"CONTROLLED.OPEN":{target:"open",actions:["setInitialFocus"]},OPEN:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["invokeOnOpen","setInitialFocus"]}],"TRIGGER.CLICK":[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["invokeOnOpen","setInitialFocus"]}],"CHANNEL_INPUT.FOCUS":{actions:["setActiveChannel"]},"CHANNEL_INPUT.BLUR":{target:"idle",actions:["setChannelColorFromInput"]},"TRIGGER.BLUR":{target:"idle"}}},open:{tags:["open"],effects:["trackPositioning","trackDismissableElement"],initial:"idle",on:{"CONTROLLED.CLOSE":[{guard:"shouldRestoreFocus",target:"focused",actions:["setReturnFocus"]},{target:"idle"}],INTERACT_OUTSIDE:[{guard:"isOpenControlled",actions:["invokeOnClose"]},{guard:"shouldRestoreFocus",target:"focused",actions:["invokeOnClose","setReturnFocus"]},{target:"idle",actions:["invokeOnClose"]}],CLOSE:[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"idle",actions:["invokeOnClose"]}]},states:{idle:{on:{"TRIGGER.CLICK":[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"#color-picker-focused",actions:["invokeOnClose"]}],"AREA.POINTER_DOWN":{target:"dragging",actions:["setActiveChannel","setAreaColorFromPoint","focusAreaThumb"]},"AREA.FOCUS":{actions:["setActiveChannel"]},"CHANNEL_SLIDER.POINTER_DOWN":{target:"dragging",actions:["setActiveChannel","setChannelColorFromPoint","focusChannelThumb"]},"CHANNEL_SLIDER.FOCUS":{actions:["setActiveChannel"]},"AREA.ARROW_LEFT":{actions:["decrementAreaXChannel"]},"AREA.ARROW_RIGHT":{actions:["incrementAreaXChannel"]},"AREA.ARROW_UP":{actions:["incrementAreaYChannel"]},"AREA.ARROW_DOWN":{actions:["decrementAreaYChannel"]},"AREA.PAGE_UP":{actions:["incrementAreaXChannel"]},"AREA.PAGE_DOWN":{actions:["decrementAreaXChannel"]},"CHANNEL_SLIDER.ARROW_LEFT":{actions:["decrementChannel"]},"CHANNEL_SLIDER.ARROW_RIGHT":{actions:["incrementChannel"]},"CHANNEL_SLIDER.ARROW_UP":{actions:["incrementChannel"]},"CHANNEL_SLIDER.ARROW_DOWN":{actions:["decrementChannel"]},"CHANNEL_SLIDER.PAGE_UP":{actions:["incrementChannel"]},"CHANNEL_SLIDER.PAGE_DOWN":{actions:["decrementChannel"]},"CHANNEL_SLIDER.HOME":{actions:["setChannelToMin"]},"CHANNEL_SLIDER.END":{actions:["setChannelToMax"]},"CHANNEL_INPUT.BLUR":{actions:["setChannelColorFromInput"]},"SWATCH_TRIGGER.CLICK":[{guard:C0("isOpenControlled","closeOnSelect"),actions:["setValue","invokeOnClose"]},{guard:"closeOnSelect",target:"focused",actions:["setValue","invokeOnClose","setReturnFocus"]},{actions:["setValue"]}]}},dragging:{tags:["dragging"],exit:["clearActiveChannel"],effects:["trackPointerMove","disableTextSelection"],on:{"AREA.POINTER_MOVE":{actions:["setAreaColorFromPoint","focusAreaThumb"]},"AREA.POINTER_UP":{target:"idle",actions:["invokeOnChangeEnd"]},"CHANNEL_SLIDER.POINTER_MOVE":{actions:["setChannelColorFromPoint","focusChannelThumb"]},"CHANNEL_SLIDER.POINTER_UP":{target:"idle",actions:["invokeOnChangeEnd"]}}}}}},implementations:{guards:{closeOnSelect:({prop:e})=>!!e("closeOnSelect"),isOpenControlled:({prop:e})=>e("open")!=null||!!e("inline"),shouldRestoreFocus:({context:e})=>!!e.get("restoreFocus")},effects:{trackPositioning({context:e,prop:t,scope:n}){var a;if(t("inline"))return;e.get("currentPlacement")||e.set("currentPlacement",(a=t("positioning"))==null?void 0:a.placement);let r=Uc(n);return je(r,()=>c0(n),v(p({},t("positioning")),{defer:!0,onComplete(o){e.set("currentPlacement",o.placement)}}))},trackDismissableElement({context:e,scope:t,prop:n,send:r}){return n("inline")?void 0:Mt(()=>Ds(t),{type:"popover",exclude:Uc(t),defer:!0,onInteractOutside(a){var o;(o=n("onInteractOutside"))==null||o(a),!a.defaultPrevented&&e.set("restoreFocus",!(a.detail.focusable||a.detail.contextmenu))},onPointerDownOutside:n("onPointerDownOutside"),onFocusOutside:n("onFocusOutside"),onDismiss(){r({type:"INTERACT_OUTSIDE"})}})},trackFormControl({context:e,scope:t,send:n}){let r=Zp(t);return Rt(r,{onFieldsetDisabledChange(i){e.set("fieldsetDisabled",i)},onFormReset(){n({type:"VALUE.SET",value:e.initial("value"),src:"form.reset"})}})},trackPointerMove({context:e,scope:t,event:n,send:r}){return an(t.getDoc(),{onPointerMove({point:i}){var o;let a=e.get("activeId")==="area"?"AREA.POINTER_MOVE":"CHANNEL_SLIDER.POINTER_MOVE";r({type:a,point:i,format:n.format,orientation:(o=e.get("activeOrientation"))!=null?o:void 0})},onPointerUp(){let i=e.get("activeId")==="area"?"AREA.POINTER_UP":"CHANNEL_SLIDER.POINTER_UP";r({type:i})}})},disableTextSelection({scope:e}){return ma({doc:e.getDoc(),target:Ds(e)})}},actions:{openEyeDropper({scope:e,context:t}){let n=e.getWin();if(!("EyeDropper"in n))return;new n.EyeDropper().open().then(({sRGBHex:a})=>{let o=t.get("value").getFormat(),s=hr(a).toFormat(o);t.set("value",s)}).catch(()=>{})},setActiveChannel({context:e,event:t}){e.set("activeId",t.id),t.channel&&e.set("activeChannel",t.channel),t.orientation&&e.set("activeOrientation",t.orientation)},clearActiveChannel({context:e}){e.set("activeChannel",null),e.set("activeId",null),e.set("activeOrientation",null)},setAreaColorFromPoint({context:e,event:t,computed:n,scope:r,prop:i}){let a=t.format?e.get("value").toFormat(t.format):n("areaValue"),{xChannel:o,yChannel:s}=t.channel||e.get("activeChannel"),l=l0(r,t.point,i("dir"));if(!l)return;let c=a.getChannelPercentValue(o,l.x),d=a.getChannelPercentValue(s,1-l.y),g=a.withChannelValue(o,c).withChannelValue(s,d);e.set("value",g)},setChannelColorFromPoint({context:e,event:t,computed:n,scope:r,prop:i}){let a=t.channel||e.get("activeId"),o=t.format?e.get("value").toFormat(t.format):n("areaValue"),s=u0(r,t.point,a,i("dir"));if(!s)return;let c=(t.orientation||e.get("activeOrientation")||"horizontal")==="horizontal"?s.x:s.y,d=o.getChannelPercentValue(a,c),g=o.withChannelValue(a,d);e.set("value",g)},setValue({context:e,event:t}){let n=e.get("format");e.set("value",t.value.toFormat(n))},setFormat({context:e,event:t}){e.set("format",t.format)},dispatchChangeEvent({scope:e,computed:t}){Mo(Zp(e),{value:t("valueAsString")})},syncInputElements({context:e,scope:t}){ef(t,e.get("value"))},invokeOnChangeEnd({context:e,prop:t,computed:n}){var r;(r=t("onValueChangeEnd"))==null||r({value:e.get("value"),valueAsString:n("valueAsString")})},setChannelColorFromInput({context:e,event:t,scope:n,prop:r}){var c;let{channel:i,isTextField:a,value:o}=t,s=e.get("value").getChannelValue("alpha"),l;if(i==="alpha"){let d=parseFloat(o);d=Number.isNaN(d)?s:d,l=e.get("value").withChannelValue("alpha",d)}else if(a)l=$l(()=>{let d=i==="hex"?P0(o):o;return Jc(d).withChannelValue("alpha",s)},()=>e.get("value"));else{let d=e.get("value").toFormat(e.get("format")),g=Number.isNaN(o)?d.getChannelValue(i):o;l=d.withChannelValue(i,g)}ef(n,e.get("value"),l),e.set("value",l),(c=r("onValueChangeEnd"))==null||c({value:l,valueAsString:l.toString(e.get("format"))})},incrementChannel({context:e,event:t}){let n=e.get("value").incrementChannel(t.channel,t.step);e.set("value",n)},decrementChannel({context:e,event:t}){let n=e.get("value").decrementChannel(t.channel,t.step);e.set("value",n)},incrementAreaXChannel({context:e,event:t,computed:n}){let{xChannel:r}=t.channel,i=n("areaValue").incrementChannel(r,t.step);e.set("value",i)},decrementAreaXChannel({context:e,event:t,computed:n}){let{xChannel:r}=t.channel,i=n("areaValue").decrementChannel(r,t.step);e.set("value",i)},incrementAreaYChannel({context:e,event:t,computed:n}){let{yChannel:r}=t.channel,i=n("areaValue").incrementChannel(r,t.step);e.set("value",i)},decrementAreaYChannel({context:e,event:t,computed:n}){let{yChannel:r}=t.channel,i=n("areaValue").decrementChannel(r,t.step);e.set("value",i)},setChannelToMax({context:e,event:t}){let n=e.get("value"),r=n.getChannelRange(t.channel),i=n.withChannelValue(t.channel,r.maxValue);e.set("value",i)},setChannelToMin({context:e,event:t}){let n=e.get("value"),r=n.getChannelRange(t.channel),i=n.withChannelValue(t.channel,r.minValue);e.set("value",i)},focusAreaThumb({scope:e}){$(()=>{var t;(t=i0(e))==null||t.focus({preventScroll:!0})})},focusChannelThumb({event:e,scope:t}){$(()=>{var n;(n=a0(t,e.channel))==null||n.focus({preventScroll:!0})})},setInitialFocus({prop:e,scope:t}){e("openAutoFocus")&&$(()=>{let n=nr({root:Ds(t),getInitialEl:e("initialFocusEl")});n==null||n.focus({preventScroll:!0})})},setReturnFocus({scope:e}){$(()=>{var t;(t=Uc(e))==null||t.focus({preventScroll:!0})})},syncFormatSelectElement({context:e,scope:t}){w0(t,e.get("format"))},syncValueWithFormat({context:e}){let t=e.get("value"),n=t.toFormat(e.get("format"));n.isEqual(t)||e.set("value",n)},invokeOnOpen({prop:e,context:t}){var n;e("inline")||(n=e("onOpenChange"))==null||n({open:!0,value:t.get("value")})},invokeOnClose({prop:e,context:t}){var n;e("inline")||(n=e("onOpenChange"))==null||n({open:!1,value:t.get("value")})},toggleVisibility({prop:e,event:t,send:n}){n({type:e("open")?"CONTROLLED.OPEN":"CONTROLLED.CLOSE",previousEvent:t})}}}});O0=class extends X{initMachine(e){return new Y(T0,e)}initApi(){return this.zagConnect(v0)}render(){let e=this.el.querySelector('[data-part="root"]');e&&this.spreadProps(e,this.api.getRootProps());let t=this.el.querySelector('[data-part="label"]');t&&this.spreadProps(t,this.api.getLabelProps());let n=this.el.querySelector('[data-part="hidden-input"]');n&&this.spreadProps(n,this.api.getHiddenInputProps());let r=this.el.querySelector('[data-part="control"]');r&&this.spreadProps(r,this.api.getControlProps());let i=this.el.querySelector('[data-part="trigger"]');i&&this.spreadProps(i,this.api.getTriggerProps()),this.el.querySelectorAll('[data-part="transparency-grid"][data-size="10px"]').forEach(k=>this.spreadProps(k,this.api.getTransparencyGridProps({size:"10px"})));let o=i==null?void 0:i.querySelector('[data-part="swatch"]');o&&this.spreadProps(o,this.api.getSwatchProps({value:this.api.value})),this.el.querySelectorAll('[data-part="channel-input"][data-channel="hex"]').forEach(k=>this.spreadProps(k,this.api.getChannelInputProps({channel:"hex"}))),this.el.querySelectorAll('[data-part="channel-input"][data-channel="alpha"]').forEach(k=>this.spreadProps(k,this.api.getChannelInputProps({channel:"alpha"})));let c=this.el.querySelector('[data-part="positioner"]');c&&this.spreadProps(c,this.api.getPositionerProps());let d=this.el.querySelector('[data-part="content"]');d&&this.spreadProps(d,this.api.getContentProps());let g=this.el.querySelector('[data-part="area"]');g&&this.spreadProps(g,this.api.getAreaProps());let h=this.el.querySelector('[data-part="area-background"]');h&&this.spreadProps(h,this.api.getAreaBackgroundProps());let u=this.el.querySelector('[data-part="area-thumb"]');u&&this.spreadProps(u,this.api.getAreaThumbProps());let f=this.el.querySelector('[data-part="channel-slider"][data-channel="hue"]');f&&this.spreadProps(f,this.api.getChannelSliderProps({channel:"hue"}));let m=this.el.querySelector('[data-part="channel-slider-track"][data-channel="hue"]');m&&this.spreadProps(m,this.api.getChannelSliderTrackProps({channel:"hue"}));let P=this.el.querySelector('[data-part="channel-slider-thumb"][data-channel="hue"]');P&&this.spreadProps(P,this.api.getChannelSliderThumbProps({channel:"hue"}));let C=this.el.querySelector('[data-part="channel-slider"][data-channel="alpha"]');C&&this.spreadProps(C,this.api.getChannelSliderProps({channel:"alpha"})),this.el.querySelectorAll('[data-part="transparency-grid"][data-size="12px"]').forEach(k=>this.spreadProps(k,this.api.getTransparencyGridProps({size:"12px"})));let T=this.el.querySelector('[data-part="channel-slider-track"][data-channel="alpha"]');T&&this.spreadProps(T,this.api.getChannelSliderTrackProps({channel:"alpha"}));let b=this.el.querySelector('[data-part="channel-slider-thumb"][data-channel="alpha"]');b&&this.spreadProps(b,this.api.getChannelSliderThumbProps({channel:"alpha"})),this.el.querySelectorAll('[data-part="channel-input"][data-channel="red"]').forEach(k=>this.spreadProps(k,this.api.getChannelInputProps({channel:"red"}))),this.el.querySelectorAll('[data-part="channel-input"][data-channel="green"]').forEach(k=>this.spreadProps(k,this.api.getChannelInputProps({channel:"green"}))),this.el.querySelectorAll('[data-part="channel-input"][data-channel="blue"]').forEach(k=>this.spreadProps(k,this.api.getChannelInputProps({channel:"blue"})));let N=this.el.querySelector('[data-part="swatch-group"]');N&&this.spreadProps(N,this.api.getSwatchGroupProps()),this.el.querySelectorAll('[data-part="swatch-trigger"][data-value]').forEach(k=>{let R=k.getAttribute("data-value");R&&this.spreadProps(k,this.api.getSwatchTriggerProps({value:R}));let D=k.querySelector('[data-part="swatch"][data-value]');if(D){let W=D.getAttribute("data-value");W&&this.spreadProps(D,this.api.getSwatchProps({value:W}))}}),this.el.querySelectorAll('[data-part="transparency-grid"][data-size="var(--spacing-mini)"]').forEach(k=>this.spreadProps(k,this.api.getTransparencyGridProps({size:"var(--spacing-mini)"})))}};V0={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>J(this.liveSocket),r=nf(e),i=new O0(e,v(p({id:e.id},r),{name:V(e,"name"),defaultFormat:"rgba",closeOnSelect:I(e,"closeOnSelect"),defaultOpen:!1,openAutoFocus:I(e,"openAutoFocus"),disabled:I(e,"disabled"),invalid:I(e,"invalid"),readOnly:I(e,"readOnly"),required:I(e,"required"),dir:U(e),positioning:nt(e),onValueChange:a=>{tf(e,a.valueAsString),K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,valueAsString:a.valueAsString},serverEventName:V(e,"onValueChange"),clientEventName:V(e,"onValueChangeClient")})},onValueChangeEnd:a=>{tf(e,a.valueAsString),K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,valueAsString:a.valueAsString},serverEventName:V(e,"onValueChangeEnd"),clientEventName:V(e,"onValueChangeEndClient")})},onOpenChange:a=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,open:a.open},serverEventName:V(e,"onOpenChange"),clientEventName:V(e,"onOpenChangeClient")})},onFormatChange:a=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,format:a.format},serverEventName:V(e,"onFormatChange"),clientEventName:V(e,"onFormatChangeClient")})},onPointerDownOutside:()=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id},serverEventName:V(e,"onPointerDownOutside"),clientEventName:V(e,"onPointerDownOutsideClient")})},onFocusOutside:()=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id},serverEventName:V(e,"onFocusOutside"),clientEventName:V(e,"onFocusOutsideClient")})},onInteractOutside:()=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id},serverEventName:V(e,"onInteractOutside"),clientEventName:V(e,"onInteractOutsideClient")})}}));i.init(),this.colorPicker=i,this.handlers=[],this.onSetValue=a=>{let{value:o}=a.detail;i.api.setValue(o)},e.addEventListener("corex:color-picker:set-value",this.onSetValue),this.handlers.push(this.handleEvent("color_picker_set_value",a=>{B(e.id,G(a))&&i.api.setValue(a.value)}))},updated(){var n;let e=this.el,t=nf(e);(n=this.colorPicker)==null||n.updateProps(v(p({},t),{name:V(e,"name"),closeOnSelect:I(e,"closeOnSelect"),openAutoFocus:I(e,"openAutoFocus"),disabled:I(e,"disabled"),invalid:I(e,"invalid"),readOnly:I(e,"readOnly"),required:I(e,"required"),dir:U(e),positioning:nt(e)}))},destroyed(){var e;if(this.onSetValue&&this.el.removeEventListener("corex:color-picker:set-value",this.onSetValue),this.handlers)for(let t of this.handlers)this.removeHandleEvent(t);(e=this.colorPicker)==null||e.destroy()}}});function Gr(e,t,n){let r=[],i;return a=>{var l;let o=e(a);return(o.length!==r.length||o.some((c,d)=>!Ie(r[d],c)))&&(r=o,i=t(o,a),(l=n==null?void 0:n.onChange)==null||l.call(n,i)),i}}var Ms=ne(()=>{"use strict";se()});var fm={};fe(fm,{DatePicker:()=>hO});function Qc(e,t){return e-t*Math.floor(e/t)}function Fs(e,t,n,r){t=yd(e,t);let i=t-1,a=-2;return n<=2?a=0:qs(t)&&(a=-1),kf-1+365*i+Math.floor(i/4)-Math.floor(i/100)+Math.floor(i/400)+Math.floor((367*n-362)/12+a+r)}function qs(e){return e%4===0&&(e%100!==0||e%400===0)}function yd(e,t){return e==="BC"?1-t:t}function A0(e){let t="AD";return e<=0&&(t="BC",e=1-e),[t,e]}function Ct(e,t){return t=ze(t,e.calendar),e.era===t.era&&e.year===t.year&&e.month===t.month&&e.day===t.day}function N0(e,t){return t=ze(t,e.calendar),e=Bn(e),t=Bn(t),e.era===t.era&&e.year===t.year&&e.month===t.month}function D0(e,t){return t=ze(t,e.calendar),e=Na(e),t=Na(t),e.era===t.era&&e.year===t.year}function L0(e,t){return zs(e.calendar,t.calendar)&&Ct(e,t)}function Va(e,t){return zs(e.calendar,t.calendar)&&N0(e,t)}function xa(e,t){return zs(e.calendar,t.calendar)&&D0(e,t)}function zs(e,t){var n,r,i,a;return(a=(i=(n=e.isEqual)==null?void 0:n.call(e,t))!=null?i:(r=t.isEqual)==null?void 0:r.call(t,e))!=null?a:e.identifier===t.identifier}function M0(e,t){return Ct(e,Ys(t))}function Nf(e,t,n){let r=e.calendar.toJulianDay(e),i=n?F0[n]:B0(t),a=Math.ceil(r+1-i)%7;return a<0&&(a+=7),a}function Df(e){return Gn(Date.now(),e)}function Ys(e){return Ur(Df(e))}function Lf(e,t){return e.calendar.toJulianDay(e)-t.calendar.toJulianDay(t)}function _0(e,t){return mf(e)-mf(t)}function mf(e){return e.hour*36e5+e.minute*6e4+e.second*1e3+e.millisecond}function bd(){return ed==null&&(ed=new Intl.DateTimeFormat().resolvedOptions().timeZone),ed}function Mf(){return $0}function Bn(e){return e.subtract({days:e.day-1})}function cd(e){return e.add({days:e.calendar.getDaysInMonth(e)-e.day})}function Na(e){return Bn(e.subtract({months:e.month-1}))}function H0(e){return cd(e.add({months:e.calendar.getMonthsInYear(e)-e.month}))}function fr(e,t,n){let r=Nf(e,t,n);return e.subtract({days:r})}function vf(e,t,n){return fr(e,t,n).add({days:6})}function Ff(e){if(Intl.Locale){let n=yf.get(e);return n||(n=new Intl.Locale(e).maximize().region,n&&yf.set(e,n)),n}let t=e.split("-")[1];return t==="u"?void 0:t}function B0(e){let t=td.get(e);if(!t){if(Intl.Locale){let r=new Intl.Locale(e);if("getWeekInfo"in r&&(t=r.getWeekInfo(),t))return td.set(e,t),t.firstDay}let n=Ff(e);if(e.includes("-fw-")){let r=e.split("-fw-")[1].split("-")[0];r==="mon"?t={firstDay:1}:r==="tue"?t={firstDay:2}:r==="wed"?t={firstDay:3}:r==="thu"?t={firstDay:4}:r==="fri"?t={firstDay:5}:r==="sat"?t={firstDay:6}:t={firstDay:0}}else e.includes("-ca-iso8601")?t={firstDay:1}:t={firstDay:n&&k0[n]||0};td.set(e,t)}return t.firstDay}function G0(e,t,n){let r=e.calendar.getDaysInMonth(e);return Math.ceil((Nf(Bn(e),t,n)+r)/7)}function _f(e,t){return e&&t?e.compare(t)<=0?e:t:e||t}function $f(e,t){return e&&t?e.compare(t)>=0?e:t:e||t}function q0(e,t){let n=e.calendar.toJulianDay(e),r=Math.ceil(n+1)%7;r<0&&(r+=7);let i=Ff(t),[a,o]=U0[i]||[6,0];return r===a||r===o}function Hi(e){e=ze(e,new $i);let t=yd(e.era,e.year);return Hf(t,e.month,e.day,e.hour,e.minute,e.second,e.millisecond)}function Hf(e,t,n,r,i,a,o){let s=new Date;return s.setUTCHours(r,i,a,o),s.setUTCFullYear(e,t-1,n),s.getTime()}function dd(e,t){if(t==="UTC")return 0;if(e>0&&t===bd()&&!Mf())return new Date(e).getTimezoneOffset()*-6e4;let{year:n,month:r,day:i,hour:a,minute:o,second:s}=Bf(e,t);return Hf(n,r,i,a,o,s,0)-Math.floor(e/1e3)*1e3}function Bf(e,t){let n=bf.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"}),bf.set(t,n));let r=n.formatToParts(new Date(e)),i={};for(let a of r)a.type!=="literal"&&(i[a.type]=a.value);return{year:i.era==="BC"||i.era==="B"?-i.year+1:+i.year,month:+i.month,day:+i.day,hour:i.hour==="24"?0:+i.hour,minute:+i.minute,second:+i.second}}function W0(e,t,n,r){return(n===r?[n]:[n,r]).filter(a=>K0(e,t,a))}function K0(e,t,n){let r=Bf(n,t);return e.year===r.year&&e.month===r.month&&e.day===r.day&&e.hour===r.hour&&e.minute===r.minute&&e.second===r.second}function Hn(e,t,n="compatible"){let r=$t(e);if(t==="UTC")return Hi(r);if(t===bd()&&n==="compatible"&&!Mf()){r=ze(r,new $i);let l=new Date,c=yd(r.era,r.year);return l.setFullYear(c,r.month-1,r.day),l.setHours(r.hour,r.minute,r.second,r.millisecond),l.getTime()}let i=Hi(r),a=dd(i-Ef,t),o=dd(i+Ef,t),s=W0(r,t,i-a,i-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(i-a,i-o);case"compatible":case"later":return Math.max(i-a,i-o);case"reject":throw new RangeError("No such absolute time found")}}function Gf(e,t,n="compatible"){return new Date(Hn(e,t,n))}function Gn(e,t){let n=dd(e,t),r=new Date(e+n),i=r.getUTCFullYear(),a=r.getUTCMonth()+1,o=r.getUTCDate(),s=r.getUTCHours(),l=r.getUTCMinutes(),c=r.getUTCSeconds(),d=r.getUTCMilliseconds();return new Zf(i<1?"BC":"AD",i<1?-i+1:i,a,o,t,n,s,l,c,d)}function Ur(e){return new mr(e.calendar,e.era,e.year,e.month,e.day)}function $t(e,t){let n=0,r=0,i=0,a=0;if("timeZone"in e)({hour:n,minute:r,second:i,millisecond:a}=e);else if("hour"in e&&!t)return e;return t&&({hour:n,minute:r,second:i,millisecond:a}=t),new cw(e.calendar,e.era,e.year,e.month,e.day,n,r,i,a)}function ze(e,t){if(zs(e.calendar,t))return e;let n=t.fromJulianDay(e.calendar.toJulianDay(e)),r=e.copy();return r.calendar=t,r.era=n.era,r.year=n.year,r.month=n.month,r.day=n.day,jr(r),r}function Uf(e,t,n){if(e instanceof Zf)return e.timeZone===t?e:z0(e,t);let r=Hn(e,t,n);return Gn(r,t)}function j0(e){let t=Hi(e)-e.offset;return new Date(t)}function z0(e,t){let n=Hi(e)-e.offset;return ze(Gn(n,t),e.calendar)}function Xs(e,t){var o,s;let n=e.copy(),r="hour"in n?J0(n,t):0;ud(n,t.years||0),n.calendar.balanceYearMonth&&n.calendar.balanceYearMonth(n,e),n.month+=t.months||0,gd(n),qf(n),n.day+=(t.weeks||0)*7,n.day+=t.days||0,n.day+=r,Y0(n),n.calendar.balanceDate&&n.calendar.balanceDate(n),n.year<1&&(n.year=1,n.month=1,n.day=1);let i=n.calendar.getYearsInEra(n);if(n.year>i){let l=(s=(o=n.calendar).isInverseEra)==null?void 0:s.call(o,n);n.year=i,n.month=l?1:n.calendar.getMonthsInYear(n),n.day=l?1:n.calendar.getDaysInMonth(n)}n.month<1&&(n.month=1,n.day=1);let a=n.calendar.getMonthsInYear(n);return n.month>a&&(n.month=a,n.day=n.calendar.getDaysInMonth(n)),n.day=Math.max(1,Math.min(n.calendar.getDaysInMonth(n),n.day)),n}function ud(e,t){var n,r;(r=(n=e.calendar).isInverseEra)!=null&&r.call(n,e)&&(t=-t),e.year+=t}function gd(e){for(;e.month<1;)ud(e,-1),e.month+=e.calendar.getMonthsInYear(e);let t=0;for(;e.month>(t=e.calendar.getMonthsInYear(e));)e.month-=t,ud(e,1)}function Y0(e){for(;e.day<1;)e.month--,gd(e),e.day+=e.calendar.getDaysInMonth(e);for(;e.day>e.calendar.getDaysInMonth(e);)e.day-=e.calendar.getDaysInMonth(e),e.month++,gd(e)}function qf(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 jr(e){e.calendar.constrainDate&&e.calendar.constrainDate(e),e.year=Math.max(1,Math.min(e.calendar.getYearsInEra(e),e.year)),qf(e)}function Wf(e){let t={};for(let n in e)typeof e[n]=="number"&&(t[n]=-e[n]);return t}function Kf(e,t){return Xs(e,Wf(t))}function Ed(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),jr(n),n}function js(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),Z0(n),n}function X0(e){e.second+=Math.floor(e.millisecond/1e3),e.millisecond=_s(e.millisecond,1e3),e.minute+=Math.floor(e.second/60),e.second=_s(e.second,60),e.hour+=Math.floor(e.minute/60),e.minute=_s(e.minute,60);let t=Math.floor(e.hour/24);return e.hour=_s(e.hour,24),t}function Z0(e){e.millisecond=Math.max(0,Math.min(e.millisecond,1e3)),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 _s(e,t){let n=e%t;return n<0&&(n+=t),n}function J0(e,t){return e.hour+=t.hours||0,e.minute+=t.minutes||0,e.second+=t.seconds||0,e.millisecond+=t.milliseconds||0,X0(e)}function Sd(e,t,n,r){var a,o;let i=e.copy();switch(t){case"era":{let s=e.calendar.getEras(),l=s.indexOf(e.era);if(l<0)throw new Error("Invalid era: "+e.era);l=Un(l,n,0,s.length-1,r==null?void 0:r.round),i.era=s[l],jr(i);break}case"year":(o=(a=i.calendar).isInverseEra)!=null&&o.call(a,i)&&(n=-n),i.year=Un(e.year,n,-1/0,9999,r==null?void 0:r.round),i.year===-1/0&&(i.year=1),i.calendar.balanceYearMonth&&i.calendar.balanceYearMonth(i,e);break;case"month":i.month=Un(e.month,n,1,e.calendar.getMonthsInYear(e),r==null?void 0:r.round);break;case"day":i.day=Un(e.day,n,1,e.calendar.getDaysInMonth(e),r==null?void 0:r.round);break;default:throw new Error("Unsupported field "+t)}return e.calendar.balanceDate&&e.calendar.balanceDate(i),jr(i),i}function jf(e,t,n,r){let i=e.copy();switch(t){case"hour":{let a=e.hour,o=0,s=23;if((r==null?void 0:r.hourCycle)===12){let l=a>=12;o=l?12:0,s=l?23:11}i.hour=Un(a,n,o,s,r==null?void 0:r.round);break}case"minute":i.minute=Un(e.minute,n,0,59,r==null?void 0:r.round);break;case"second":i.second=Un(e.second,n,0,59,r==null?void 0:r.round);break;case"millisecond":i.millisecond=Un(e.millisecond,n,0,999,r==null?void 0:r.round);break;default:throw new Error("Unsupported field "+t)}return i}function Un(e,t,n,r,i=!1){if(i){e+=Math.sign(t),e0?e=Math.ceil(e/a)*a:e=Math.floor(e/a)*a,e>r&&(e=n)}else e+=t,er&&(e=n+(e-r-1));return e}function zf(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 i=Xs($t(e),{years:t.years,months:t.months,weeks:t.weeks,days:t.days});n=Hn(i,e.timeZone)}else n=Hi(e)-e.offset;n+=t.milliseconds||0,n+=(t.seconds||0)*1e3,n+=(t.minutes||0)*6e4,n+=(t.hours||0)*36e5;let r=Gn(n,e.timeZone);return ze(r,e.calendar)}function Q0(e,t){return zf(e,Wf(t))}function ew(e,t,n,r){switch(t){case"hour":{let i=0,a=23;if((r==null?void 0:r.hourCycle)===12){let f=e.hour>=12;i=f?12:0,a=f?23:11}let o=$t(e),s=ze(js(o,{hour:i}),new $i),l=[Hn(s,e.timeZone,"earlier"),Hn(s,e.timeZone,"later")].filter(f=>Gn(f,e.timeZone).day===s.day)[0],c=ze(js(o,{hour:a}),new $i),d=[Hn(c,e.timeZone,"earlier"),Hn(c,e.timeZone,"later")].filter(f=>Gn(f,e.timeZone).day===c.day).pop(),g=Hi(e)-e.offset,h=Math.floor(g/Aa),u=g%Aa;return g=Un(h,n,Math.floor(l/Aa),Math.floor(d/Aa),r==null?void 0:r.round)*Aa+u,ze(Gn(g,e.timeZone),e.calendar)}case"minute":case"second":case"millisecond":return jf(e,t,n,r);case"era":case"year":case"month":case"day":{let i=Sd($t(e),t,n,r),a=Hn(i,e.timeZone);return ze(Gn(a,e.timeZone),e.calendar)}default:throw new Error("Unsupported field "+t)}}function tw(e,t,n){let r=$t(e),i=js(Ed(r,t),t);if(i.compare(r)===0)return e;let a=Hn(i,e.timeZone,n);return ze(Gn(a,e.timeZone),e.calendar)}function aw(e){let t=e.match(nw);if(!t)throw rw.test(e)?new Error(`Invalid ISO 8601 date string: ${e}. Use parseAbsolute() instead.`):new Error("Invalid ISO 8601 date string: "+e);let n=new mr(nd(t[1],0,9999),nd(t[2],1,12),1);return n.day=nd(t[3],1,n.calendar.getDaysInMonth(n)),n}function nd(e,t,n){let r=Number(e);if(rn)throw new RangeError(`Value out of range: ${t} <= ${r} <= ${n}`);return r}function ow(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 Yf(e){let t=ze(e,new $i),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 Xf(e){return`${Yf(e)}T${ow(e)}`}function sw(e){let t=Math.sign(e)<0?"-":"+";e=Math.abs(e);let n=Math.floor(e/36e5),r=Math.floor(e%36e5/6e4),i=Math.floor(e%36e5%6e4/1e3),a=`${t}${String(n).padStart(2,"0")}:${String(r).padStart(2,"0")}`;return i!==0&&(a+=`:${String(i).padStart(2,"0")}`),a}function lw(e){return`${Xf(e)}${sw(e.offset)}[${e.timeZone}]`}function Pd(e){let t=typeof e[0]=="object"?e.shift():new $i,n;if(typeof e[0]=="string")n=e.shift();else{let o=t.getEras();n=o[o.length-1]}let r=e.shift(),i=e.shift(),a=e.shift();return[t,n,r,i,a]}function Jf(e,t={}){if(typeof t.hour12=="boolean"&&uw()){t=p({},t);let i=dw[String(t.hour12)][e.split("-")[0]],a=t.hour12?"h12":"h23";t.hourCycle=i!=null?i:a,delete t.hour12}let n=e+(t?Object.entries(t).sort((i,a)=>i[0]a.type==="hour").value,10),i=parseInt(n.formatToParts(new Date(2020,2,3,23)).find(a=>a.type==="hour").value,10);if(r===0&&i===23)return"h23";if(r===24&&i===23)return"h24";if(r===0&&i===11)return"h11";if(r===12&&i===11)return"h12";throw new Error("Unexpected hour cycle result")}function pw(e,t,n,r,i){let a={};for(let s in t){let l=s,c=t[l];c!=null&&(a[l]=Math.floor(c/2),a[l]>0&&c%2===0&&a[l]--)}let o=zr(e,t,n).subtract(a);return Da(e,o,t,n,r,i)}function zr(e,t,n,r,i){let a=e;return t.years?a=Na(e):t.months?a=Bn(e):t.weeks&&(a=fr(e,n)),Da(e,a,t,n,r,i)}function Cd(e,t,n,r,i){let a=p({},t);a.days?a.days--:a.weeks?a.weeks--:a.months?a.months--:a.years&&a.years--;let o=zr(e,t,n).subtract(a);return Da(e,o,t,n,r,i)}function Da(e,t,n,r,i,a){return i&&e.compare(i)>=0&&(t=$f(t,zr(Ur(i),n,r))),a&&e.compare(a)<=0&&(t=_f(t,Cd(Ur(a),n,r))),t}function Ft(e,t,n){let r=Ur(e),i=t?Ur(t):void 0,a=n?Ur(n):void 0,o=r;return i&&(o=$f(o,i)),a&&(o=_f(o,a)),o.compare(r)===0?e:"hour"in e?e.set({year:o.year,month:o.month,day:o.day}):o}function Sf(e,t,n,r,i,a){switch(t){case"start":return zr(e,n,r,i,a);case"end":return Cd(e,n,r,i,a);case"center":default:return pw(e,n,r,i,a)}}function pr(e,t){return e==null||t==null?e===t:!("hour"in e)&&!("hour"in t)?Ct(e,t):$t(e).compare($t(t))===0}function Pf(e,t,n,r,i){return e?t!=null&&t(e,n)?!0:vn(e,r,i):!1}function vn(e,t,n){return t!=null&&e.compare(t)<0||n!=null&&e.compare(n)>0}function fw(e,t,n){let r=e.subtract({days:1});return Ct(r,e)||vn(r,t,n)}function mw(e,t,n){let r=e.add({days:1});return Ct(r,e)||vn(r,t,n)}function Id(e){let t=p({},e);for(let n in t)t[n]=1;return t}function Qf(e,t){let n=p({},t);return n.days?n.days--:n.days=-1,e.add(n)}function em(e){if(!e)return;let t=e.calendar.identifier;return t==="gregory"||t==="iso8601"?e.era==="BC"?"short":void 0:"short"}function tm(e,t,n){let r=n!=null?n:$t(Ys(t));return new _t(e,{weekday:"long",month:"long",year:"numeric",day:"numeric",era:em(r),calendar:r.calendar.identifier,timeZone:t})}function Cf(e,t,n){let r=n!=null?n:Ys(t);return new _t(e,{month:"long",year:"numeric",era:em(r),calendar:r.calendar.identifier,timeZone:t})}function vw(e,t,n,r,i){let a=n.formatRangeToParts(e.toDate(i),t.toDate(i)),o=-1;for(let c=0;co&&(l+=a[c].value);return r(s,l)}function $s(e,t,n,r){if(!e)return"";let i=e,a=t!=null?t:e,o=tm(n,r);return Ct(i,a)?o.format(i.toDate(r)):vw(i,a,o,(s,l)=>`${s} \u2013 ${l}`,r)}function nm(e){return e!=null?yw[e]:void 0}function rm(e,t,n){let r=nm(n);return fr(e,t,r)}function im(e,t,n,r){let i=t.add({weeks:e}),a=[],o=rm(i,n,r);for(;a.length<7;){a.push(o);let s=o.add({days:1});if(Ct(o,s))break;o=s}return a}function bw(e,t,n,r){let i=nm(r),a=n!=null?n:G0(e,t,i);return[...new Array(a).keys()].map(s=>im(s,e,t,r))}function Ew(e,t){let n=new _t(e,{weekday:"long",timeZone:t}),r=new _t(e,{weekday:"short",timeZone:t}),i=new _t(e,{weekday:"narrow",timeZone:t});return a=>{let o=a instanceof Date?a:a.toDate(t);return{value:a,short:r.format(o),long:n.format(o),narrow:i.format(o)}}}function Sw(e,t,n,r){let i=rm(e,r,t),a=[...new Array(7).keys()],o=Ew(r,n);return a.map(s=>o(i.add({days:s})))}function Pw(e,t="long",n){if(!n||n.calendar.identifier==="gregory"||n.calendar.identifier==="iso8601"){let o=new Date(2021,0,1),s=[];for(let l=0;l<12;l++)s.push(o.toLocaleString(e,{month:t})),o.setMonth(o.getMonth()+1);return s}let r=n.calendar.getMonthsInYear(n),i=new _t(e,{month:t,calendar:n.calendar.identifier}),a=[];for(let o=1;o<=r;o++){let s=n.set({month:o});a.push(i.format(s.toDate("UTC")))}return a}function If(e,t){let n=fr(e,t,"mon"),r=n.year,i=n.set({month:1,day:4}),a=fr(i,t,"mon"),o=n.calendar.toJulianDay(n),s=a.calendar.toJulianDay(a);if(o>=s)return 1+Math.floor((o-s)/7);let l=n.set({year:r-1,month:1,day:4}),c=fr(l,t,"mon"),d=c.calendar.toJulianDay(c);return 1+Math.floor((o-d)/7)}function Cw(e){let t=[];for(let n=e.from;n<=e.to;n+=1)t.push(n);return t}function ww(e,t,n){var o,s;let r=e.calendar,i=(o=t==null?void 0:t.year)!=null?o:ze(new mr(Iw,1,1),r).year,a=(s=n==null?void 0:n.year)!=null?s:ze(new mr(Tw,12,31),r).year;return{from:i,to:a}}function Vw(e){if(e){if(e.length===3)return e.padEnd(4,"0");if(e.length===2){let t=new Date().getFullYear(),n=Math.floor(t/100)*100,r=parseInt(e.slice(-2),10),i=n+r;return i>t+Ow?(i-100).toString():i.toString()}return e}}function _i(e,t){let n=t!=null&&t.strict?10:12,r=e-e%10,i=[];for(let a=0;a0?{startDate:zr(s,e,t,n,r),endDate:l,focusedDate:Ft(s,n,r)}:{startDate:o,endDate:l,focusedDate:Ft(s,n,r)}}}function am(e,t,n,r,i,a){let o=La(n,r,i,a),s=t.add(n);return o({focusedDate:e.add(n),startDate:zr(Da(e,s,n,r,i,a),n,r)})}function om(e,t,n,r,i,a){let o=La(n,r,i,a),s=t.subtract(n);return o({focusedDate:e.subtract(n),startDate:zr(Da(e,s,n,r,i,a),n,r)})}function xw(e,t,n,r,i,a,o){let s=La(r,i,a,o);if(!n&&!r.days)return s({focusedDate:e.add(Id(r)),startDate:t});if(r.days)return am(e,t,r,i,a,o);if(r.weeks)return s({focusedDate:e.add({months:1}),startDate:t});if(r.months||r.years)return s({focusedDate:e.add({years:1}),startDate:t})}function Aw(e,t,n,r,i,a,o){let s=La(r,i,a,o);if(!n&&!r.days)return s({focusedDate:e.subtract(Id(r)),startDate:t});if(r.days)return om(e,t,r,i,a,o);if(r.weeks)return s({focusedDate:e.subtract({months:1}),startDate:t});if(r.months||r.years)return s({focusedDate:e.subtract({years:1}),startDate:t})}function Nw(e,t,n){var c;let r=Dw(t,n),{year:i,month:a,day:o}=(c=Lw(r,e))!=null?c:{};if(i!=null||a!=null||o!=null){let d=new Date;i||(i=d.getFullYear().toString()),a||(a=(d.getMonth()+1).toString()),o||(o=d.getDate().toString())}if(Tf(i)||(i=Vw(i)),Tf(i)&&Rw(a)&&kw(o))return new mr(+i,+a,+o);let l=Date.parse(e);if(!isNaN(l)){let d=new Date(l);return new mr(d.getFullYear(),d.getMonth()+1,d.getDate())}}function Dw(e,t){return new _t(e,{day:"numeric",month:"numeric",year:"numeric",timeZone:t}).formatToParts(new Date(2e3,11,25)).map(({type:i,value:a})=>i==="literal"?`${a}?`:`((?!=<${i}>)\\d+)?`).join("")}function Lw(e,t){var r;let n=t.match(e);return(r=e.toString().match(/<(.+?)>/g))==null?void 0:r.map(i=>{var o;let a=i.match(/<(.+)>/);return!a||a.length<=0?null:(o=i.match(/<(.+)>/))==null?void 0:o[1]}).reduce((i,a,o)=>(a&&(n&&n.length>o?i[a]=n[o+1]:i[a]=null),i),{})}function wf(e,t,n){let r=Ur(Df(n));switch(e){case"thisWeek":return[fr(r,t),vf(r,t)];case"thisMonth":return[Bn(r),r];case"thisQuarter":return[Bn(r).add({months:-((r.month-1)%3)}),r];case"thisYear":return[Na(r),r];case"last3Days":return[r.add({days:-2}),r];case"last7Days":return[r.add({days:-6}),r];case"last14Days":return[r.add({days:-13}),r];case"last30Days":return[r.add({days:-29}),r];case"last90Days":return[r.add({days:-89}),r];case"lastMonth":return[Bn(r.add({months:-1})),cd(r.add({months:-1}))];case"lastQuarter":return[Bn(r.add({months:-((r.month-1)%3)-3})),cd(r.add({months:-((r.month-1)%3)-1}))];case"lastWeek":return[fr(r,t).add({weeks:-1}),vf(r,t).add({weeks:-1})];case"lastYear":return[Na(r.add({years:-1})),H0(r.add({years:-1}))];default:throw new Error(`Invalid date range preset: ${e}`)}}function pd(e){let[t,n]=e,r;return!t||!n?r=e:r=t.compare(n)<=0?e:[n,t],r}function Fi(e,t){let[n,r]=t;return!n||!r?!1:n.compare(e)<=0&&r.compare(e)>=0}function Bs(e){return e.slice().filter(t=>t!=null).sort((t,n)=>t.compare(n))}function Kw(e){return Me(e,{year:"calendar decade",month:"calendar year",day:"calendar month"})}function zw(e){return new _t(e).formatToParts(new Date).map(t=>{var n;return(n=jw[t.type])!=null?n:t.value}).join("")}function Xw(e){let r=new Intl.DateTimeFormat(e).formatToParts(new Date).find(i=>i.type==="literal");return r?r.value:"/"}function qn(e,t){return e?e==="day"?0:e==="month"?1:2:t||0}function Td(e){return e===0?"day":e===1?"month":"year"}function wd(e,t,n){return Td(Oe(qn(e,0),qn(t,0),qn(n,2)))}function Jw(e,t){return qn(e,0)>qn(t,0)}function Qw(e,t){return qn(e,0)e(t))}function aO(e,t){let{state:n,context:r,prop:i,send:a,computed:o,scope:s}=e,l=r.get("startValue"),c=o("endValue"),d=r.get("value"),g=r.get("focusedValue"),h=r.get("hoveredValue"),u=h?pd([d[0],h]):[],f=!!i("disabled"),m=!!i("readOnly"),P=!!i("invalid"),C=o("isInteractive"),x=d.length===0,T=i("min"),b=i("max"),y=i("locale"),S=i("timeZone"),A=i("startOfWeek"),N=n.matches("focused"),O=n.matches("open"),w=i("selectionMode")==="range",k=i("selectionMode")==="multiple",R=i("isDateUnavailable"),D=i("maxSelectedDates"),W=k&&D!=null&&d.length>=D,ee=r.get("currentPlacement"),ue=Lt(v(p({},i("positioning")),{placement:ee})),z=Xw(y),le=p(p({},Zw),i("translations"));function he(M=l){let L=i("fixedWeeks")?6:void 0;return bw(M,y,L,A)}function ae(M={}){let{format:L}=M;return Pw(y,L,g).map((_,H)=>{let pe=H+1,et=g.set({month:pe}),Be=vn(et,T,b);return{label:_,value:pe,disabled:Be}})}function De(){let M=ww(g,T,b);return Cw(M).map(_=>({label:_.toString(),value:_,disabled:!Ci(_,T==null?void 0:T.year,b==null?void 0:b.year)}))}function Le(M){return Pf(M,R,y,T,b)}function Gt(M){let L=l!=null?l:ka(S,g.calendar);a({type:"FOCUS.SET",value:L.set({month:M})})}function oo(M){let L=l!=null?l:ka(S,g.calendar);a({type:"FOCUS.SET",value:L.set({year:M})})}function oi(M){let{value:L,disabled:_}=M,H=g.set({year:L}),et=!_i(l.year,{strict:!0}).includes(L),Be=Ci(L,T==null?void 0:T.year,b==null?void 0:b.year),st=w&&Fi(H,d),jn=w&&d[0]&&xa(H,d[0]),si=w&&d[1]&&xa(H,d[1]),wr=w&&u.length>0,li=wr&&Fi(H,u),zn=wr&&u[0]&&xa(H,u[0]),Yn=wr&&u[1]&&xa(H,u[1]),so={focused:g.year===M.value,selectable:!et&&Be,outsideRange:et,selected:!!d.find(lo=>lo&&lo.year===L),valueText:L.toString(),inRange:st||li,firstInRange:!!jn,lastInRange:!!si,inHoveredRange:!!li,firstInHoveredRange:!!zn,lastInHoveredRange:!!Yn,value:H,get disabled(){return _||!so.selectable}};return so}function Ir(M){let{value:L,disabled:_}=M,H=g.set({month:L}),pe=Cf(y,S,g),et=w&&Fi(H,d),Be=w&&d[0]&&Va(H,d[0]),st=w&&d[1]&&Va(H,d[1]),jn=w&&u.length>0,si=jn&&Fi(H,u),wr=jn&&u[0]&&Va(H,u[0]),li=jn&&u[1]&&Va(H,u[1]),zn={focused:g.month===M.value,selectable:!vn(H,T,b),selected:!!d.find(Yn=>Yn&&Yn.month===L&&Yn.year===g.year),valueText:pe.format(H.toDate(S)),inRange:et||si,firstInRange:!!Be,lastInRange:!!st,inHoveredRange:!!si,firstInHoveredRange:!!wr,lastInHoveredRange:!!li,outsideRange:!1,value:H,get disabled(){return _||!zn.selectable}};return zn}function Tr(M){let{value:L,disabled:_,visibleRange:H=o("visibleRange")}=M,pe=tm(y,S,g),et=Id(o("visibleDuration")),Be=i("outsideDaySelectable"),st=H.start.add(et).subtract({days:1}),jn=vn(L,H.start,st),si=w&&Fi(L,d),wr=w&&d[0]&&Ct(L,d[0]),li=w&&d[1]&&Ct(L,d[1]),zn=w&&u.length>0,Yn=zn&&Fi(L,u),so=zn&&u[0]&&Ct(L,u[0]),lo=zn&&u[1]&&Ct(L,u[1]),wu=d.some(Ou=>Ou!=null&&Ct(L,Ou)),co={invalid:vn(L,T,b),disabled:_||!Be&&jn||vn(L,T,b)||W&&!wu,selected:wu,unavailable:Pf(L,R,y,T,b)&&!_,outsideRange:jn,today:M0(L,S),weekend:q0(L,y),value:L,valueText:pe.format(L.toDate(S)),get focused(){return g!=null&&Ct(L,g)&&(!co.outsideRange||Be)},get selectable(){return!co.disabled&&!co.unavailable},inRange:si||Yn,firstInRange:wr,lastInRange:li,inHoveredRange:Yn,firstInHoveredRange:so,lastInHoveredRange:lo};return co}function El(M){let{view:L="day",id:_}=M;return[L,_].filter(Boolean).join(" ")}return{focused:N,open:O,disabled:f,invalid:P,readOnly:m,inline:!!i("inline"),numOfMonths:i("numOfMonths"),showWeekNumbers:!!i("showWeekNumbers"),selectionMode:i("selectionMode"),maxSelectedDates:D,isMaxSelected:W,view:r.get("view"),getRangePresetValue(M){return wf(M,y,S)},getWeekNumber(M){let L=M[0];return L?If(L,y):0},getDaysInWeek(M,L=l){return im(M,L,y,A)},getOffset(M){let L=l.add(M),_=c.add(M),H=Cf(y,S,g);return{visibleRange:{start:L,end:_},weeks:he(L),visibleRangeText:{start:H.format(L.toDate(S)),end:H.format(_.toDate(S))}}},getMonthWeeks:he,isUnavailable:Le,weeks:he(),weekDays:Sw(l,A,S,y),visibleRangeText:o("visibleRangeText"),value:d,valueAsDate:d.filter(M=>M!=null).map(M=>M.toDate(S)),valueAsString:o("valueAsString"),focusedValue:g,focusedValueAsDate:g==null?void 0:g.toDate(S),focusedValueAsString:i("format")(g,{locale:y,timeZone:S}),visibleRange:o("visibleRange"),selectToday(){let M=Ft(ka(S,g.calendar),T,b);a({type:"VALUE.SET",value:[M]})},setValue(M){let L=M.map(_=>Ft(_,T,b));a({type:"VALUE.SET",value:L})},setTime(M,L=0){var pe,et,Be,st;let _=Array.from(d),H=_[L];H&&("hour"in H||(H=$t(H)),H=H.set({hour:(pe=M.hour)!=null?pe:"hour"in H?H.hour:0,minute:(et=M.minute)!=null?et:"minute"in H?H.minute:0,second:(Be=M.second)!=null?Be:"second"in H?H.second:0,millisecond:(st=M.millisecond)!=null?st:"millisecond"in H?H.millisecond:0}),_[L]=Ft(H,T,b),a({type:"VALUE.SET",value:_}))},clearValue(M={}){let{focus:L=!0}=M;a({type:"VALUE.CLEAR",focus:L})},setFocusedValue(M){a({type:"FOCUS.SET",value:M})},setOpen(M){i("inline")||n.matches("open")===M||a({type:M?"OPEN":"CLOSE"})},focusMonth:Gt,focusYear:oo,getYears:De,getMonths:ae,getYearsGrid(M={}){let{columns:L=1}=M,_=_i(l.year,{strict:!0}).map(H=>({label:H.toString(),value:H,disabled:!Ci(H,T==null?void 0:T.year,b==null?void 0:b.year)}));return oa(_,L)},getDecade(){let M=_i(l.year,{strict:!0});return{start:M.at(0),end:M.at(-1)}},getMonthsGrid(M={}){let{columns:L=1,format:_}=M;return oa(ae({format:_}),L)},format(M,L={month:"long",year:"numeric"}){return new _t(y,v(p({},L),{calendar:M.calendar.identifier})).format(M.toDate(S))},setView(M){a({type:"VIEW.SET",view:M})},goToNext(){a({type:"GOTO.NEXT",view:r.get("view")})},goToPrev(){a({type:"GOTO.PREV",view:r.get("view")})},getRootProps(){return t.element(v(p({},Pe.root.attrs),{dir:i("dir"),id:Fw(s),"data-state":O?"open":"closed","data-disabled":E(f),"data-readonly":E(m),"data-empty":E(x)}))},getLabelProps(M={}){let{index:L=0}=M;return t.label(v(p({},Pe.label.attrs),{id:Mw(s,L),dir:i("dir"),htmlFor:Of(s,L),"data-state":O?"open":"closed","data-index":L,"data-disabled":E(f),"data-readonly":E(m)}))},getControlProps(){return t.element(v(p({},Pe.control.attrs),{dir:i("dir"),id:lm(s),"data-disabled":E(f),"data-placeholder-shown":E(x)}))},getRangeTextProps(){return t.element(v(p({},Pe.rangeText.attrs),{dir:i("dir")}))},getContentProps(){return t.element(v(p({},Pe.content.attrs),{hidden:!O,dir:i("dir"),"data-state":O?"open":"closed","data-placement":ee,"data-inline":E(i("inline")),id:hd(s),tabIndex:-1,role:"application","aria-roledescription":"datepicker","aria-label":le.content}))},getTableProps(M={}){let{view:L="day",columns:_=L==="day"?7:4}=M,H=El(M);return t.element(v(p({},Pe.table.attrs),{role:"grid","data-columns":_,"aria-roledescription":Kw(L),id:_w(s,H),"aria-readonly":oe(m),"aria-disabled":oe(f),"aria-multiselectable":oe(i("selectionMode")!=="single"),"data-view":L,dir:i("dir"),tabIndex:-1,onKeyDown(pe){if(pe.defaultPrevented)return;let Be={Enter(){L==="day"&&Le(g)||L==="month"&&!Ir({value:g.month}).selectable||L==="year"&&!oi({value:g.year}).selectable||a({type:"TABLE.ENTER",view:L,columns:_,focus:!0})},ArrowLeft(){a({type:"TABLE.ARROW_LEFT",view:L,columns:_,focus:!0})},ArrowRight(){a({type:"TABLE.ARROW_RIGHT",view:L,columns:_,focus:!0})},ArrowUp(){a({type:"TABLE.ARROW_UP",view:L,columns:_,focus:!0})},ArrowDown(){a({type:"TABLE.ARROW_DOWN",view:L,columns:_,focus:!0})},PageUp(st){a({type:"TABLE.PAGE_UP",larger:st.shiftKey,view:L,columns:_,focus:!0})},PageDown(st){a({type:"TABLE.PAGE_DOWN",larger:st.shiftKey,view:L,columns:_,focus:!0})},Home(){a({type:"TABLE.HOME",view:L,columns:_,focus:!0})},End(){a({type:"TABLE.END",view:L,columns:_,focus:!0})}}[ve(pe,{dir:i("dir")})];Be&&(Be(pe),pe.preventDefault(),pe.stopPropagation())},onPointerLeave(){a({type:"TABLE.POINTER_LEAVE"})},onPointerDown(){a({type:"TABLE.POINTER_DOWN",view:L})},onPointerUp(){a({type:"TABLE.POINTER_UP",view:L})}}))},getTableHeadProps(M={}){let{view:L="day"}=M;return t.element(v(p({},Pe.tableHead.attrs),{"aria-hidden":!0,dir:i("dir"),"data-view":L,"data-disabled":E(f)}))},getTableHeaderProps(M={}){let{view:L="day"}=M;return t.element(v(p({},Pe.tableHeader.attrs),{dir:i("dir"),"data-view":L,"data-disabled":E(f)}))},getTableBodyProps(M={}){let{view:L="day"}=M;return t.element(v(p({},Pe.tableBody.attrs),{"data-view":L,"data-disabled":E(f)}))},getTableRowProps(M={}){let{view:L="day"}=M;return t.element(v(p({},Pe.tableRow.attrs),{"aria-disabled":oe(f),"data-disabled":E(f),"data-view":L}))},getWeekNumberHeaderCellProps(M={}){let{view:L="day"}=M;return t.element(v(p({},Pe.tableCell.attrs),{scope:"col","aria-label":le.weekColumnHeader,"data-view":L,"data-type":"week-number","data-disabled":E(f)}))},getWeekNumberCellProps(M){var pe;let{weekIndex:L,week:_}=M,H=_[0]?If(_[0],y):0;return t.element(v(p({},Pe.tableCell.attrs),{role:"rowheader","aria-label":(pe=le.weekNumberCell)==null?void 0:pe.call(le,H),"data-view":"day","data-week-index":L,"data-type":"week-number","data-disabled":E(f)}))},getDayTableCellState:Tr,getDayTableCellProps(M){let{value:L}=M,_=Tr(M);return t.element(v(p({},Pe.tableCell.attrs),{role:"gridcell","aria-disabled":oe(!_.selectable),"aria-selected":_.selected||_.inRange,"aria-invalid":oe(_.invalid),"aria-current":_.today?"date":void 0,"data-value":L.toString()}))},getDayTableCellTriggerProps(M){let{value:L}=M,_=Tr(M);return t.element(v(p({},Pe.tableCellTrigger.attrs),{id:od(s,L.toString()),role:"button",dir:i("dir"),tabIndex:_.focused?0:-1,"aria-label":le.dayCell(_),"aria-disabled":oe(!_.selectable),"aria-invalid":oe(_.invalid),"data-disabled":E(!_.selectable),"data-selected":E(_.selected),"data-value":L.toString(),"data-view":"day","data-today":E(_.today),"data-focus":E(_.focused),"data-unavailable":E(_.unavailable),"data-range-start":E(_.firstInRange),"data-range-end":E(_.lastInRange),"data-in-range":E(_.inRange),"data-outside-range":E(_.outsideRange),"data-weekend":E(_.weekend),"data-in-hover-range":E(_.inHoveredRange),"data-hover-range-start":E(_.firstInHoveredRange),"data-hover-range-end":E(_.lastInHoveredRange),onClick(H){H.defaultPrevented||_.selectable&&a({type:"CELL.CLICK",cell:"day",value:L})},onPointerMove:w?H=>{if(H.pointerType==="touch"||!_.selectable)return;let pe=!s.isActiveElement(H.currentTarget);h&&L0(L,h)||a({type:"CELL.POINTER_MOVE",cell:"day",value:L,focus:pe})}:void 0}))},getMonthTableCellState:Ir,getMonthTableCellProps(M){let{value:L,columns:_}=M,H=Ir(M);return t.element(v(p({},Pe.tableCell.attrs),{dir:i("dir"),colSpan:_,role:"gridcell","aria-selected":oe(H.selected||H.inRange),"data-selected":E(H.selected),"aria-disabled":oe(!H.selectable),"data-value":L}))},getMonthTableCellTriggerProps(M){let{value:L}=M,_=Ir(M);return t.element(v(p({},Pe.tableCellTrigger.attrs),{id:od(s,L.toString()),role:"button",dir:i("dir"),tabIndex:_.focused?0:-1,"aria-label":_.valueText,"aria-disabled":oe(!_.selectable),"data-disabled":E(!_.selectable),"data-selected":E(_.selected),"data-value":L,"data-view":"month","data-focus":E(_.focused),"data-outside-range":E(_.outsideRange),"data-range-start":E(_.firstInRange),"data-range-end":E(_.lastInRange),"data-in-range":E(_.inRange),"data-in-hover-range":E(_.inHoveredRange),"data-hover-range-start":E(_.firstInHoveredRange),"data-hover-range-end":E(_.lastInHoveredRange),onClick(H){H.defaultPrevented||_.selectable&&a({type:"CELL.CLICK",cell:"month",value:L})},onPointerMove:w?H=>{if(H.pointerType==="touch"||!_.selectable)return;let pe=!s.isActiveElement(H.currentTarget);h&&_.value&&Va(_.value,h)||a({type:"CELL.POINTER_MOVE",cell:"month",value:_.value,focus:pe})}:void 0}))},getYearTableCellState:oi,getYearTableCellProps(M){let{value:L,columns:_}=M,H=oi(M);return t.element(v(p({},Pe.tableCell.attrs),{dir:i("dir"),colSpan:_,role:"gridcell","aria-selected":oe(H.selected||H.inRange),"data-selected":E(H.selected),"aria-disabled":oe(!H.selectable),"data-value":L}))},getYearTableCellTriggerProps(M){let{value:L}=M,_=oi(M);return t.element(v(p({},Pe.tableCellTrigger.attrs),{id:od(s,L.toString()),role:"button",dir:i("dir"),tabIndex:_.focused?0:-1,"aria-label":_.valueText,"aria-disabled":oe(!_.selectable),"data-disabled":E(!_.selectable),"data-selected":E(_.selected),"data-value":L,"data-view":"year","data-focus":E(_.focused),"data-outside-range":E(_.outsideRange),"data-range-start":E(_.firstInRange),"data-range-end":E(_.lastInRange),"data-in-range":E(_.inRange),"data-in-hover-range":E(_.inHoveredRange),"data-hover-range-start":E(_.firstInHoveredRange),"data-hover-range-end":E(_.lastInHoveredRange),onClick(H){H.defaultPrevented||_.selectable&&a({type:"CELL.CLICK",cell:"year",value:L})},onPointerMove:w?H=>{if(H.pointerType==="touch"||!_.selectable)return;let pe=!s.isActiveElement(H.currentTarget);h&&_.value&&xa(_.value,h)||a({type:"CELL.POINTER_MOVE",cell:"year",value:_.value,focus:pe})}:void 0}))},getNextTriggerProps(M={}){let{view:L="day"}=M,_=f||!o("isNextVisibleRangeValid");return t.button(v(p({},Pe.nextTrigger.attrs),{dir:i("dir"),id:Hw(s,L),type:"button","aria-label":le.nextTrigger(L),disabled:_,"data-disabled":E(_),onClick(H){H.defaultPrevented||a({type:"GOTO.NEXT",view:L})}}))},getPrevTriggerProps(M={}){let{view:L="day"}=M,_=f||!o("isPrevVisibleRangeValid");return t.button(v(p({},Pe.prevTrigger.attrs),{dir:i("dir"),id:$w(s,L),type:"button","aria-label":le.prevTrigger(L),disabled:_,"data-disabled":E(_),onClick(H){H.defaultPrevented||a({type:"GOTO.PREV",view:L})}}))},getClearTriggerProps(){return t.button(v(p({},Pe.clearTrigger.attrs),{id:sm(s),dir:i("dir"),type:"button","aria-label":le.clearTrigger,hidden:!d.length,onClick(M){M.defaultPrevented||a({type:"VALUE.CLEAR"})}}))},getTriggerProps(){return t.button(v(p({},Pe.trigger.attrs),{id:cm(s),dir:i("dir"),type:"button","data-placement":ee,"aria-label":le.trigger(O),"aria-controls":hd(s),"data-state":O?"open":"closed","data-placeholder-shown":E(x),"aria-haspopup":"grid",disabled:f,onClick(M){M.defaultPrevented||C&&a({type:"TRIGGER.CLICK"})}}))},getViewProps(M={}){let{view:L="day"}=M;return t.element(v(p({},Pe.view.attrs),{"data-view":L,hidden:r.get("view")!==L}))},getViewTriggerProps(M={}){let{view:L="day"}=M;return t.button(v(p({},Pe.viewTrigger.attrs),{"data-view":L,dir:i("dir"),id:Bw(s,L),type:"button",disabled:f,"aria-label":le.viewTrigger(L),onClick(_){_.defaultPrevented||C&&a({type:"VIEW.TOGGLE",src:"viewTrigger"})}}))},getViewControlProps(M={}){let{view:L="day"}=M;return t.element(v(p({},Pe.viewControl.attrs),{"data-view":L,dir:i("dir")}))},getInputProps(M={}){let{index:L=0,fixOnBlur:_=!0}=M;return t.input(v(p({},Pe.input.attrs),{id:Of(s,L),autoComplete:"off",autoCorrect:"off",spellCheck:"false",dir:i("dir"),name:i("name"),"data-index":L,"data-state":O?"open":"closed","data-placeholder-shown":E(x),readOnly:m,disabled:f,required:i("required"),"aria-invalid":oe(P),"data-invalid":E(P),placeholder:i("placeholder")||zw(y),defaultValue:o("valueAsString")[L],onBeforeInput(H){let{data:pe}=zt(H);pm(pe,z)||H.preventDefault()},onClick(H){H.defaultPrevented||i("openOnClick")&&C&&a({type:"OPEN",src:"input.click"})},onFocus(){a({type:"INPUT.FOCUS",index:L})},onBlur(H){let pe=H.currentTarget.value.trim();a({type:"INPUT.BLUR",value:pe,index:L,fixOnBlur:_})},onKeyDown(H){if(H.defaultPrevented||!C)return;let et={Enter(Be){$e(Be)||Le(g)||Be.currentTarget.value.trim()!==""&&a({type:"INPUT.ENTER",value:Be.currentTarget.value,index:L})}}[H.key];et&&(et(H),H.preventDefault())},onInput(H){let pe=H.currentTarget.value;a({type:"INPUT.CHANGE",value:Yw(pe,z),index:L})}}))},getMonthSelectProps(){return t.select(v(p({},Pe.monthSelect.attrs),{id:um(s),"aria-label":le.monthSelect,disabled:f,dir:i("dir"),defaultValue:l.month,onChange(M){Gt(Number(M.currentTarget.value))}}))},getYearSelectProps(){return t.select(v(p({},Pe.yearSelect.attrs),{id:gm(s),disabled:f,"aria-label":le.yearSelect,dir:i("dir"),defaultValue:l.year,onChange(M){oo(Number(M.currentTarget.value))}}))},getPositionerProps(){return t.element(v(p({id:dm(s)},Pe.positioner.attrs),{dir:i("dir"),style:ue.floating}))},getPresetTriggerProps(M){let L=Array.isArray(M.value)?M.value:wf(M.value,y,S),_=L.filter(H=>H!=null).map(H=>H.toDate(S).toDateString());return t.button(v(p({},Pe.presetTrigger.attrs),{"aria-label":le.presetTrigger(_),type:"button",onClick(H){H.defaultPrevented||a({type:"PRESET.CLICK",value:L})}}))}}}function oO(e,t){if((e==null?void 0:e.length)!==(t==null?void 0:t.length))return!1;let n=Math.max(e.length,t.length);for(let r=0;rn==null?"":t("format")(n,{locale:t("locale"),timeZone:t("timeZone")}))}function Ae(e,t){let{context:n,prop:r,computed:i}=e;if(!t)return;let a=Ks(e,t);if(pr(n.get("focusedValue"),a))return;let s=La(i("visibleDuration"),r("locale"),r("min"),r("max"))({focusedDate:a,startDate:n.get("startValue")});n.set("startValue",s.startDate),n.set("focusedValue",s.focusedDate)}function Us(e,t){let{context:n}=e;n.set("startValue",t.startDate);let r=n.get("focusedValue");pr(r,t.focusedDate)||n.set("focusedValue",t.focusedDate)}function Zt(e){return Array.isArray(e)?e.map(t=>Zt(t)):e instanceof Date?new mr(e.getFullYear(),e.getMonth()+1,e.getDate()):aw(e)}function cO(e){let t={};return e.content&&(t.content=e.content),e.monthSelect&&(t.monthSelect=e.monthSelect),e.yearSelect&&(t.yearSelect=e.yearSelect),e.clearTrigger&&(t.clearTrigger=e.clearTrigger),e.weekColumnHeader&&(t.weekColumnHeader=e.weekColumnHeader),e.weekNumber&&(t.weekNumberCell=n=>lO(e.weekNumber,n)),e.openCalendar&&e.closeCalendar&&(t.trigger=n=>n?e.closeCalendar:e.openCalendar),(e.viewTriggerDay||e.viewTriggerMonth||e.viewTriggerYear)&&(t.viewTrigger=n=>ld(n,e.viewTriggerDay,e.viewTriggerMonth,e.viewTriggerYear)),(e.prevTriggerDay||e.prevTriggerMonth||e.prevTriggerYear)&&(t.prevTrigger=n=>ld(n,e.prevTriggerDay,e.prevTriggerMonth,e.prevTriggerYear)),(e.nextTriggerDay||e.nextTriggerMonth||e.nextTriggerYear)&&(t.nextTrigger=n=>ld(n,e.nextTriggerDay,e.nextTriggerMonth,e.nextTriggerYear)),e.placeholderDay&&e.placeholderMonth&&e.placeholderYear&&(t.placeholder=()=>({day:e.placeholderDay,month:e.placeholderMonth,year:e.placeholderYear})),t}function dO(e,t,n){if(n==="range"||e.querySelector('[data-scope="date-picker"][data-part="label"]'))return;let r=null,i=e.dataset.translation;if(i)try{r=JSON.parse(i)}catch(o){r=null}let a=r==null?void 0:r.input;if(a)for(let o of t)o.getAttribute("aria-labelledby")||o.setAttribute("aria-label",a)}function gO(e){return e==null?"":String(e)}function Af(e){let t=e.dataset.translation;if(!t)return{};try{let n=JSON.parse(t);return{translations:cO(n)}}catch(n){return{}}}function Rf(e){return I(e,"closeOnSelect")}var x0,Pe,kf,R0,$i,k0,F0,ed,$0,yf,td,U0,bf,Ef,Aa,nw,rw,iw,rM,fd,qr,mr,md,Wr,cw,vd,Kr,Zf,rd,_t,dw,id,ad,yw,Iw,Tw,Ow,Tf,Rw,kw,Mw,Fw,_w,hd,od,$w,Hw,Bw,sm,lm,Of,cm,dm,um,gm,Vf,Hs,Ws,Ra,Gw,Uw,qw,Ww,hm,jw,pm,xf,Yw,Zw,nO,iO,pt,sO,Ks,sd,ld,lO,uO,hO,mm=ne(()=>{"use strict";Ms();Ic();wi();_r();gr();gn();Nt();Ce();se();x0=j("date-picker").parts("clearTrigger","content","control","input","label","monthSelect","nextTrigger","positioner","presetTrigger","prevTrigger","rangeText","root","table","tableBody","tableCell","tableCellTrigger","tableHead","tableHeader","tableRow","trigger","view","viewControl","viewTrigger","yearSelect"),Pe=x0.build();kf=1721426;R0={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]},$i=class{fromJulianDay(e){let t=e,n=t-kf,r=Math.floor(n/146097),i=Qc(n,146097),a=Math.floor(i/36524),o=Qc(i,36524),s=Math.floor(o/1461),l=Qc(o,1461),c=Math.floor(l/365),d=r*400+a*100+s*4+c+(a!==4&&c!==4?1:0),[g,h]=A0(d),u=t-Fs(g,h,1,1),f=2;t= start date");return`${this.formatter.format(e)} \u2013 ${this.formatter.format(t)}`}formatRangeToParts(e,t){if(typeof this.formatter.formatRangeToParts=="function")return this.formatter.formatRangeToParts(e,t);if(t= start date");let n=this.formatter.formatToParts(e),r=this.formatter.formatToParts(t);return[...n.map(i=>v(p({},i),{source:"startRange"})),{type:"literal",value:" \u2013 ",source:"shared"},...r.map(i=>v(p({},i),{source:"endRange"}))]}resolvedOptions(){let e=this.formatter.resolvedOptions();return gw()&&(this.resolvedHourCycle||(this.resolvedHourCycle=hw(e.locale,this.options)),e.hourCycle=this.resolvedHourCycle,e.hour12=this.resolvedHourCycle==="h11"||this.resolvedHourCycle==="h12"),e.calendar==="ethiopic-amete-alem"&&(e.calendar="ethioaa"),e}},dw={true:{ja:"h11"},false:{}};id=null;ad=null;yw=["sun","mon","tue","wed","thu","fri","sat"];Iw=1900,Tw=2099;Ow=10;Tf=e=>e!=null&&e.length===4,Rw=e=>e!=null&&parseFloat(e)<=12,kw=e=>e!=null&&parseFloat(e)<=31;Mw=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.label)==null?void 0:r.call(n,t))!=null?i:`datepicker:${e.id}:label:${t}`},Fw=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`datepicker:${e.id}`},_w=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.table)==null?void 0:r.call(n,t))!=null?i:`datepicker:${e.id}:table:${t}`},hd=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.content)!=null?n:`datepicker:${e.id}:content`},od=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.cellTrigger)==null?void 0:r.call(n,t))!=null?i:`datepicker:${e.id}:cell-trigger:${t}`},$w=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.prevTrigger)==null?void 0:r.call(n,t))!=null?i:`datepicker:${e.id}:prev:${t}`},Hw=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.nextTrigger)==null?void 0:r.call(n,t))!=null?i:`datepicker:${e.id}:next:${t}`},Bw=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.viewTrigger)==null?void 0:r.call(n,t))!=null?i:`datepicker:${e.id}:view:${t}`},sm=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.clearTrigger)!=null?n:`datepicker:${e.id}:clear`},lm=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.control)!=null?n:`datepicker:${e.id}:control`},Of=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.input)==null?void 0:r.call(n,t))!=null?i:`datepicker:${e.id}:input:${t}`},cm=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.trigger)!=null?n:`datepicker:${e.id}:trigger`},dm=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.positioner)!=null?n:`datepicker:${e.id}:positioner`},um=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.monthSelect)!=null?n:`datepicker:${e.id}:month-select`},gm=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.yearSelect)!=null?n:`datepicker:${e.id}:year-select`},Vf=(e,t)=>rr(Ws(e),`[data-part=table-cell-trigger][data-view=${t}][data-focus]:not([data-outside-range])`),Hs=e=>e.getById(cm(e)),Ws=e=>e.getById(hd(e)),Ra=e=>xe(hm(e),"[data-part=input]"),Gw=e=>e.getById(gm(e)),Uw=e=>e.getById(um(e)),qw=e=>e.getById(sm(e)),Ww=e=>e.getById(dm(e)),hm=e=>e.getById(lm(e));jw={day:"dd",month:"mm",year:"yyyy"};pm=(e,t)=>e?/\d/.test(e)||e===t||e.length!==1:!0,xf=e=>!Number.isNaN(e.day)&&!Number.isNaN(e.month)&&!Number.isNaN(e.year),Yw=(e,t)=>e.split("").filter(n=>pm(n,t)).join("");Zw={dayCell(e){return e.unavailable?`Not available. ${e.valueText}`:e.firstInRange?`Starting range from ${e.valueText}`:e.lastInRange?`Range ending at ${e.valueText}`:e.selected?`Selected date. ${e.valueText}`:`Choose ${e.valueText}`},trigger(e){return e?"Close calendar":"Open calendar"},viewTrigger(e){return Me(e,{year:"Switch to month view",month:"Switch to day view",day:"Switch to year view"})},presetTrigger(e){let[t="",n=""]=e;return`select ${t} to ${n}`},prevTrigger(e){return Me(e,{year:"Switch to previous decade",month:"Switch to previous year",day:"Switch to previous month"})},nextTrigger(e){return Me(e,{year:"Switch to next decade",month:"Switch to next year",day:"Switch to next month"})},placeholder(){return{day:"dd",month:"mm",year:"yyyy"}},content:"calendar",monthSelect:"Select month",yearSelect:"Select year",clearTrigger:"Clear selected dates",weekColumnHeader:"Wk",weekNumberCell(e){return`Week ${e}`}};nO=["day","month","year"];iO=Gr(e=>[e.view,e.startValue.toString(),e.endValue.toString(),e.locale],([e],t)=>{let{startValue:n,endValue:r,locale:i,timeZone:a,selectionMode:o}=t;if(e==="year"){let g=_i(n.year,{strict:!0}),h=g.at(0).toString(),u=g.at(-1).toString();return{start:h,end:u,formatted:`${h} - ${u}`}}if(e==="month"){let g=new _t(i,{year:"numeric",timeZone:a,calendar:n.calendar.identifier}),h=g.format(n.toDate(a)),u=g.format(r.toDate(a)),f=o==="range"?`${h} - ${u}`:h;return{start:h,end:u,formatted:f}}let s=new _t(i,{month:"long",year:"numeric",timeZone:a,calendar:n.calendar.identifier}),l=s.format(n.toDate(a)),c=s.format(r.toDate(a)),d=o==="range"?`${l} - ${c}`:l;return{start:l,end:c,formatted:d}});({and:pt}=Te());sO=te({props({props:e}){let t=e.locale||"en-US",n=e.timeZone||"UTC",r=e.selectionMode||"single",i=e.numOfMonths||1,a;if(e.createCalendar){let f=new Intl.DateTimeFormat(t).resolvedOptions().calendar;f!=="gregory"&&f!=="iso8601"&&(a=e.createCalendar(f))}let o=u=>!a||u.calendar.identifier===a.identifier?u:ze(u,a),s=e.defaultValue?Bs(e.defaultValue).map(u=>Ft(o(u),e.min,e.max)):void 0,l=e.value?Bs(e.value).map(u=>Ft(o(u),e.min,e.max)):void 0,c=e.focusedValue||e.defaultFocusedValue||(l==null?void 0:l[0])||(s==null?void 0:s[0])||ka(n,a);c=Ft(o(c),e.min,e.max);let d="day",g="year",h=wd(e.view||d,d,g);return v(p({locale:t,numOfMonths:i,timeZone:n,selectionMode:r,defaultView:h,minView:d,maxView:g,outsideDaySelectable:!1,closeOnSelect:!0,format(u,{locale:f,timeZone:m}){return new _t(f,{timeZone:m,day:"2-digit",month:"2-digit",year:"numeric",calendar:a==null?void 0:a.identifier}).format(u.toDate(m))},parse(u,{locale:f,timeZone:m}){return Nw(u,f,m)}},e),{focusedValue:typeof e.focusedValue=="undefined"?void 0:c,defaultFocusedValue:c,value:l,defaultValue:s!=null?s:[],positioning:p({placement:"bottom"},e.positioning)})},initialState({prop:e}){return e("open")||e("defaultOpen")||e("inline")?"open":"idle"},refs(){return{announcer:void 0}},context({prop:e,bindable:t,getContext:n}){return{focusedValue:t(()=>({defaultValue:e("defaultFocusedValue"),value:e("focusedValue"),isEqual:pr,hash:r=>r.toString(),sync:!0,onChange(r){var l;let i=n(),a=i.get("view"),o=i.get("value"),s=Gs(o,e);(l=e("onFocusChange"))==null||l({value:o,valueAsString:s,view:a,focusedValue:r})}})),value:t(()=>({defaultValue:e("defaultValue"),value:e("value"),isEqual:oO,hash:r=>r.map(i=>{var a;return(a=i==null?void 0:i.toString())!=null?a:""}).join(","),onChange(r){var o;let i=n(),a=Gs(r,e);(o=e("onValueChange"))==null||o({value:r,valueAsString:a,view:i.get("view")})}})),inputValue:t(()=>({defaultValue:""})),activeIndex:t(()=>({defaultValue:0,sync:!0})),hoveredValue:t(()=>({defaultValue:null,isEqual:pr})),view:t(()=>({defaultValue:e("defaultView"),value:e("view"),onChange(r){var i;(i=e("onViewChange"))==null||i({view:r})}})),startValue:t(()=>{let r=e("focusedValue")||e("defaultFocusedValue");return{defaultValue:Sf(r,"start",{months:e("numOfMonths")},e("locale")),isEqual:pr,hash:i=>i.toString()}}),currentPlacement:t(()=>({defaultValue:void 0})),restoreFocus:t(()=>({defaultValue:!1}))}},computed:{isInteractive:({prop:e})=>!e("disabled")&&!e("readOnly"),visibleDuration:({prop:e})=>({months:e("numOfMonths")}),endValue:({context:e,computed:t})=>Qf(e.get("startValue"),t("visibleDuration")),visibleRange:({context:e,computed:t})=>({start:e.get("startValue"),end:t("endValue")}),visibleRangeText:({context:e,prop:t,computed:n})=>iO({view:e.get("view"),startValue:e.get("startValue"),endValue:n("endValue"),locale:t("locale"),timeZone:t("timeZone"),selectionMode:t("selectionMode")}),isPrevVisibleRangeValid:({context:e,prop:t})=>!fw(e.get("startValue"),t("min"),t("max")),isNextVisibleRangeValid:({prop:e,computed:t})=>!mw(t("endValue"),e("min"),e("max")),valueAsString:({context:e,prop:t})=>Gs(e.get("value"),t)},effects:["setupLiveRegion"],watch({track:e,prop:t,context:n,action:r,computed:i}){e([()=>t("locale")],()=>{r(["setStartValue","syncInputElement"])}),e([()=>n.hash("focusedValue")],()=>{r(["setStartValue","focusActiveCellIfNeeded","setHoveredValueIfKeyboard"])}),e([()=>n.hash("startValue")],()=>{r(["syncMonthSelectElement","syncYearSelectElement","invokeOnVisibleRangeChange"])}),e([()=>n.get("inputValue")],()=>{r(["syncInputValue"])}),e([()=>n.hash("value")],()=>{r(["syncInputElement"])}),e([()=>i("valueAsString").toString()],()=>{r(["announceValueText"])}),e([()=>n.get("view")],()=>{r(["focusActiveCell"])}),e([()=>t("open")],()=>{r(["toggleVisibility"])})},on:{"VALUE.SET":{actions:["setDateValue","setFocusedDate"]},"VIEW.SET":{actions:["setView"]},"FOCUS.SET":{actions:["setFocusedDate"]},"VALUE.CLEAR":{actions:["clearDateValue","clearFocusedDate","focusFirstInputElement"]},"INPUT.CHANGE":[{guard:"isInputValueEmpty",actions:["setInputValue","clearDateValue","clearFocusedDate"]},{actions:["setInputValue","focusParsedDate"]}],"INPUT.ENTER":{actions:["focusParsedDate","selectFocusedDate"]},"INPUT.FOCUS":{actions:["setActiveIndex"]},"INPUT.BLUR":[{guard:"shouldFixOnBlur",actions:["setActiveIndexToStart","selectParsedDate"]},{actions:["setActiveIndexToStart"]}],"PRESET.CLICK":[{guard:"isOpenControlled",actions:["setDateValue","setFocusedDate","invokeOnClose"]},{target:"focused",actions:["setDateValue","setFocusedDate","focusInputElement"]}],"GOTO.NEXT":[{guard:"isYearView",actions:["focusNextDecade","announceVisibleRange"]},{guard:"isMonthView",actions:["focusNextYear","announceVisibleRange"]},{actions:["focusNextPage"]}],"GOTO.PREV":[{guard:"isYearView",actions:["focusPreviousDecade","announceVisibleRange"]},{guard:"isMonthView",actions:["focusPreviousYear","announceVisibleRange"]},{actions:["focusPreviousPage"]}]},states:{idle:{tags:["closed"],on:{"CONTROLLED.OPEN":{target:"open",actions:["focusFirstSelectedDate","focusActiveCell"]},"TRIGGER.CLICK":[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["focusFirstSelectedDate","focusActiveCell","invokeOnOpen"]}],OPEN:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["focusFirstSelectedDate","focusActiveCell","invokeOnOpen"]}]}},focused:{tags:["closed"],on:{"CONTROLLED.OPEN":{target:"open",actions:["focusFirstSelectedDate","focusActiveCell"]},"TRIGGER.CLICK":[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["focusFirstSelectedDate","focusActiveCell","invokeOnOpen"]}],OPEN:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["focusFirstSelectedDate","focusActiveCell","invokeOnOpen"]}]}},open:{tags:["open"],effects:["trackDismissableElement","trackPositioning"],exit:["clearHoveredDate","resetView"],on:{"CONTROLLED.CLOSE":[{guard:pt("shouldRestoreFocus","isInteractOutsideEvent"),target:"focused",actions:["focusTriggerElement"]},{guard:"shouldRestoreFocus",target:"focused",actions:["focusInputElement"]},{target:"idle"}],"CELL.CLICK":[{guard:"isAboveMinView",actions:["setFocusedValueForView","setPreviousView"]},{guard:pt("isRangePicker","hasSelectedRange"),actions:["setActiveIndexToStart","resetSelection","setActiveIndexToEnd"]},{guard:pt("isRangePicker","isSelectingEndDate","closeOnSelect","isOpenControlled"),actions:["setFocusedDate","setSelectedDate","setActiveIndexToStart","clearHoveredDate","invokeOnClose","setRestoreFocus"]},{guard:pt("isRangePicker","isSelectingEndDate","closeOnSelect"),target:"focused",actions:["setFocusedDate","setSelectedDate","setActiveIndexToStart","clearHoveredDate","invokeOnClose","focusInputElement"]},{guard:pt("isRangePicker","isSelectingEndDate"),actions:["setFocusedDate","setSelectedDate","setActiveIndexToStart","clearHoveredDate"]},{guard:"isRangePicker",actions:["setFocusedDate","setSelectedDate","setActiveIndexToEnd"]},{guard:pt("isMultiPicker","canSelectDate"),actions:["setFocusedDate","toggleSelectedDate"]},{guard:"isMultiPicker",actions:["setFocusedDate"]},{guard:pt("closeOnSelect","isOpenControlled"),actions:["setFocusedDate","setSelectedDate","invokeOnClose"]},{guard:"closeOnSelect",target:"focused",actions:["setFocusedDate","setSelectedDate","invokeOnClose","focusInputElement"]},{actions:["setFocusedDate","setSelectedDate"]}],"CELL.POINTER_MOVE":{guard:pt("isRangePicker","isSelectingEndDate"),actions:["setHoveredDate","setFocusedDate"]},"TABLE.POINTER_LEAVE":{guard:"isRangePicker",actions:["clearHoveredDate"]},"TABLE.POINTER_DOWN":{actions:["disableTextSelection"]},"TABLE.POINTER_UP":{actions:["enableTextSelection"]},"TABLE.ESCAPE":[{guard:"isOpenControlled",actions:["focusFirstSelectedDate","invokeOnClose"]},{target:"focused",actions:["focusFirstSelectedDate","invokeOnClose","focusTriggerElement"]}],"TABLE.ENTER":[{guard:"isAboveMinView",actions:["setPreviousView"]},{guard:pt("isRangePicker","hasSelectedRange"),actions:["setActiveIndexToStart","clearDateValue","setSelectedDate","setActiveIndexToEnd"]},{guard:pt("isRangePicker","isSelectingEndDate","closeOnSelect","isOpenControlled"),actions:["setSelectedDate","setActiveIndexToStart","clearHoveredDate","invokeOnClose"]},{guard:pt("isRangePicker","isSelectingEndDate","closeOnSelect"),target:"focused",actions:["setSelectedDate","setActiveIndexToStart","clearHoveredDate","invokeOnClose","focusInputElement"]},{guard:pt("isRangePicker","isSelectingEndDate"),actions:["setSelectedDate","setActiveIndexToStart","clearHoveredDate"]},{guard:"isRangePicker",actions:["setSelectedDate","setActiveIndexToEnd","focusNextDay"]},{guard:pt("isMultiPicker","canSelectDate"),actions:["toggleSelectedDate"]},{guard:"isMultiPicker"},{guard:pt("closeOnSelect","isOpenControlled"),actions:["selectFocusedDate","invokeOnClose"]},{guard:"closeOnSelect",target:"focused",actions:["selectFocusedDate","invokeOnClose","focusInputElement"]},{actions:["selectFocusedDate"]}],"TABLE.ARROW_RIGHT":[{guard:"isMonthView",actions:["focusNextMonth"]},{guard:"isYearView",actions:["focusNextYear"]},{actions:["focusNextDay","setHoveredDate"]}],"TABLE.ARROW_LEFT":[{guard:"isMonthView",actions:["focusPreviousMonth"]},{guard:"isYearView",actions:["focusPreviousYear"]},{actions:["focusPreviousDay"]}],"TABLE.ARROW_UP":[{guard:"isMonthView",actions:["focusPreviousMonthColumn"]},{guard:"isYearView",actions:["focusPreviousYearColumn"]},{actions:["focusPreviousWeek"]}],"TABLE.ARROW_DOWN":[{guard:"isMonthView",actions:["focusNextMonthColumn"]},{guard:"isYearView",actions:["focusNextYearColumn"]},{actions:["focusNextWeek"]}],"TABLE.PAGE_UP":{actions:["focusPreviousSection"]},"TABLE.PAGE_DOWN":{actions:["focusNextSection"]},"TABLE.HOME":[{guard:"isMonthView",actions:["focusFirstMonth"]},{guard:"isYearView",actions:["focusFirstYear"]},{actions:["focusSectionStart"]}],"TABLE.END":[{guard:"isMonthView",actions:["focusLastMonth"]},{guard:"isYearView",actions:["focusLastYear"]},{actions:["focusSectionEnd"]}],"TRIGGER.CLICK":[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"focused",actions:["invokeOnClose"]}],"VIEW.TOGGLE":{actions:["setNextView"]},INTERACT_OUTSIDE:[{guard:"isOpenControlled",actions:["setActiveIndexToStart","invokeOnClose"]},{guard:"shouldRestoreFocus",target:"focused",actions:["setActiveIndexToStart","invokeOnClose","focusTriggerElement"]},{target:"idle",actions:["setActiveIndexToStart","invokeOnClose"]}],CLOSE:[{guard:"isOpenControlled",actions:["setActiveIndexToStart","invokeOnClose"]},{target:"idle",actions:["setActiveIndexToStart","invokeOnClose"]}]}}},implementations:{guards:{isAboveMinView:({context:e,prop:t})=>Jw(e.get("view"),t("minView")),isDayView:({context:e,event:t})=>(t.view||e.get("view"))==="day",isMonthView:({context:e,event:t})=>(t.view||e.get("view"))==="month",isYearView:({context:e,event:t})=>(t.view||e.get("view"))==="year",isRangePicker:({prop:e})=>e("selectionMode")==="range",hasSelectedRange:({context:e})=>e.get("value").length===2,isMultiPicker:({prop:e})=>e("selectionMode")==="multiple",canSelectDate:({context:e,prop:t,event:n})=>{var s;let r=t("maxSelectedDates");if(r==null)return!0;let i=e.get("value"),a=(s=n.value)!=null?s:e.get("focusedValue");return i.some(l=>pr(l,a))?!0:i.length!!e.get("restoreFocus"),isSelectingEndDate:({context:e})=>e.get("activeIndex")===1,closeOnSelect:({prop:e})=>!!e("closeOnSelect"),isOpenControlled:({prop:e})=>e("open")!=null||!!e("inline"),isInteractOutsideEvent:({event:e})=>{var t;return((t=e.previousEvent)==null?void 0:t.type)==="INTERACT_OUTSIDE"},isInputValueEmpty:({event:e})=>e.value.trim()==="",shouldFixOnBlur:({event:e})=>!!e.fixOnBlur},effects:{trackPositioning({context:e,prop:t,scope:n}){if(t("inline"))return;e.get("currentPlacement")||e.set("currentPlacement",t("positioning").placement);let r=hm(n);return je(r,()=>Ww(n),v(p({},t("positioning")),{defer:!0,onComplete(a){e.set("currentPlacement",a.placement)}}))},setupLiveRegion({scope:e,refs:t}){let n=e.getDoc();return t.set("announcer",hs({level:"assertive",document:n})),()=>{var r,i;return(i=(r=t.get("announcer"))==null?void 0:r.destroy)==null?void 0:i.call(r)}},trackDismissableElement({scope:e,send:t,context:n,prop:r}){return r("inline")?void 0:Mt(()=>Ws(e),{type:"popover",defer:!0,exclude:[...Ra(e),Hs(e),qw(e)],onInteractOutside(a){n.set("restoreFocus",!a.detail.focusable)},onDismiss(){t({type:"INTERACT_OUTSIDE"})},onEscapeKeyDown(a){a.preventDefault(),t({type:"TABLE.ESCAPE",src:"dismissable"})}})}},actions:{setNextView({context:e,prop:t}){let n=eO(e.get("view"),t("minView"),t("maxView"));e.set("view",n)},setPreviousView({context:e,prop:t}){let n=tO(e.get("view"),t("minView"),t("maxView"));e.set("view",n)},setView({context:e,event:t}){e.set("view",t.view)},setRestoreFocus({context:e}){e.set("restoreFocus",!0)},announceValueText({context:e,prop:t,refs:n}){var s;let r=e.get("value"),i=t("locale"),a=t("timeZone"),o;if(t("selectionMode")==="range"){let[l,c]=r;l&&c?o=$s(l,c,i,a):l?o=$s(l,null,i,a):c?o=$s(c,null,i,a):o=""}else o=r.map(l=>$s(l,null,i,a)).filter(Boolean).join(",");(s=n.get("announcer"))==null||s.announce(o,3e3)},announceVisibleRange({computed:e,refs:t}){var r;let{formatted:n}=e("visibleRangeText");(r=t.get("announcer"))==null||r.announce(n)},disableTextSelection({scope:e}){ma({target:Ws(e),doc:e.getDoc()})},enableTextSelection({scope:e}){Xl({doc:e.getDoc(),target:Ws(e)})},focusFirstSelectedDate(e){let{context:t}=e;t.get("value").length&&Ae(e,t.get("value")[0])},syncInputElement({scope:e,computed:t}){$(()=>{Ra(e).forEach((r,i)=>{He(r,t("valueAsString")[i]||"")})})},setFocusedDate(e){let{event:t}=e,n=Array.isArray(t.value)?t.value[0]:t.value;Ae(e,n)},setFocusedValueForView(e){let{context:t,event:n}=e;Ae(e,t.get("focusedValue").set({[t.get("view")]:n.value}))},focusNextMonth(e){let{context:t}=e;Ae(e,t.get("focusedValue").add({months:1}))},focusPreviousMonth(e){let{context:t}=e;Ae(e,t.get("focusedValue").subtract({months:1}))},setDateValue({context:e,event:t,prop:n}){if(!Array.isArray(t.value))return;let r=t.value.map(i=>Ft(i,n("min"),n("max")));e.set("value",r)},clearDateValue({context:e}){e.set("value",[])},setSelectedDate(e){var s;let{context:t,event:n}=e,r=Array.from(t.get("value")),i=t.get("activeIndex"),a=r[i],o=Ks(e,(s=n.value)!=null?s:t.get("focusedValue"));r[i]=sd(a,o),t.set("value",pd(r))},resetSelection(e){var a;let{context:t,event:n}=e,r=t.get("value")[0],i=Ks(e,(a=n.value)!=null?a:t.get("focusedValue"));t.set("value",[sd(r,i)])},toggleSelectedDate(e){var o;let{context:t,event:n}=e,r=Ks(e,(o=n.value)!=null?o:t.get("focusedValue")),i=t.get("value"),a=i.findIndex(s=>pr(s,r));if(a===-1){let s=[...i,r];t.set("value",Bs(s))}else{let s=Array.from(i);s.splice(a,1),t.set("value",Bs(s))}},setHoveredDate({context:e,event:t}){e.set("hoveredValue",t.value)},clearHoveredDate({context:e}){e.set("hoveredValue",null)},selectFocusedDate({context:e,computed:t}){let n=Array.from(e.get("value")),r=e.get("activeIndex"),i=n[r],a=e.get("focusedValue").copy();n[r]=sd(i,a),e.set("value",pd(n));let o=t("valueAsString");e.set("inputValue",o[r])},focusPreviousDay(e){let{context:t}=e,n=t.get("focusedValue").subtract({days:1});Ae(e,n)},focusNextDay(e){let{context:t}=e,n=t.get("focusedValue").add({days:1});Ae(e,n)},focusPreviousWeek(e){let{context:t}=e,n=t.get("focusedValue").subtract({weeks:1});Ae(e,n)},focusNextWeek(e){let{context:t}=e,n=t.get("focusedValue").add({weeks:1});Ae(e,n)},focusNextPage(e){let{context:t,computed:n,prop:r}=e,i=am(t.get("focusedValue"),t.get("startValue"),n("visibleDuration"),r("locale"),r("min"),r("max"));Us(e,i)},focusPreviousPage(e){let{context:t,computed:n,prop:r}=e,i=om(t.get("focusedValue"),t.get("startValue"),n("visibleDuration"),r("locale"),r("min"),r("max"));Us(e,i)},focusSectionStart(e){let{context:t}=e;Ae(e,t.get("startValue").copy())},focusSectionEnd(e){let{computed:t}=e;Ae(e,t("endValue").copy())},focusNextSection(e){let{context:t,event:n,computed:r,prop:i}=e,a=xw(t.get("focusedValue"),t.get("startValue"),n.larger,r("visibleDuration"),i("locale"),i("min"),i("max"));a&&Us(e,a)},focusPreviousSection(e){let{context:t,event:n,computed:r,prop:i}=e,a=Aw(t.get("focusedValue"),t.get("startValue"),n.larger,r("visibleDuration"),i("locale"),i("min"),i("max"));a&&Us(e,a)},focusNextYear(e){let{context:t}=e,n=t.get("focusedValue").add({years:1});Ae(e,n)},focusPreviousYear(e){let{context:t}=e,n=t.get("focusedValue").subtract({years:1});Ae(e,n)},focusNextDecade(e){let{context:t}=e,n=t.get("focusedValue").add({years:10});Ae(e,n)},focusPreviousDecade(e){let{context:t}=e,n=t.get("focusedValue").subtract({years:10});Ae(e,n)},clearFocusedDate(e){let{context:t,prop:n}=e,r=t.get("focusedValue").calendar;Ae(e,ka(n("timeZone"),r))},focusPreviousMonthColumn(e){let{context:t,event:n}=e,r=t.get("focusedValue").subtract({months:n.columns});Ae(e,r)},focusNextMonthColumn(e){let{context:t,event:n}=e,r=t.get("focusedValue").add({months:n.columns});Ae(e,r)},focusPreviousYearColumn(e){let{context:t,event:n}=e,r=t.get("focusedValue").subtract({years:n.columns});Ae(e,r)},focusNextYearColumn(e){let{context:t,event:n}=e,r=t.get("focusedValue").add({years:n.columns});Ae(e,r)},focusFirstMonth(e){var i,a,o;let{context:t}=e,n=t.get("focusedValue"),r=(o=(a=(i=n.calendar).getMinimumMonthInYear)==null?void 0:a.call(i,n))!=null?o:1;Ae(e,n.set({month:r}))},focusLastMonth(e){let{context:t}=e,n=t.get("focusedValue"),r=n.calendar.getMonthsInYear(n);Ae(e,n.set({month:r}))},focusFirstYear(e){let{context:t}=e,n=_i(t.get("focusedValue").year),r=t.get("focusedValue").set({year:n[0]});Ae(e,r)},focusLastYear(e){let{context:t}=e,n=_i(t.get("focusedValue").year),r=t.get("focusedValue").set({year:n[n.length-1]});Ae(e,r)},setActiveIndex({context:e,event:t}){e.set("activeIndex",t.index)},setActiveIndexToEnd({context:e}){e.set("activeIndex",1)},setActiveIndexToStart({context:e}){e.set("activeIndex",0)},focusActiveCell({scope:e,context:t,event:n}){n.src!=="input.click"&&$(()=>{var i;let r=t.get("view");(i=Vf(e,r))==null||i.focus({preventScroll:!0})})},focusActiveCellIfNeeded({scope:e,context:t,event:n}){n.focus&&$(()=>{var i;let r=t.get("view");(i=Vf(e,r))==null||i.focus({preventScroll:!0})})},setHoveredValueIfKeyboard({context:e,event:t,prop:n}){!t.type.startsWith("TABLE.ARROW")||n("selectionMode")!=="range"||e.get("activeIndex")===0||e.set("hoveredValue",e.get("focusedValue").copy())},focusTriggerElement({scope:e}){$(()=>{var t;(t=Hs(e))==null||t.focus({preventScroll:!0})})},focusFirstInputElement({scope:e,event:t}){t.focus!==!1&&$(()=>{let[n]=Ra(e),r=n!=null?n:Hs(e);r==null||r.focus({preventScroll:!0})})},focusInputElement({scope:e}){$(()=>{var a;let t=Ra(e);if(t.length===0){(a=Hs(e))==null||a.focus({preventScroll:!0});return}let n=t.findLastIndex(o=>o.value!==""),r=Math.max(n,0),i=t[r];i==null||i.focus({preventScroll:!0}),i==null||i.setSelectionRange(i.value.length,i.value.length)})},syncMonthSelectElement({scope:e,context:t}){let n=Uw(e);He(n,t.get("startValue").month.toString())},syncYearSelectElement({scope:e,context:t}){let n=Gw(e);He(n,t.get("startValue").year.toString())},setInputValue({context:e,event:t}){e.get("activeIndex")===t.index&&e.set("inputValue",t.value)},syncInputValue({scope:e,context:t,event:n}){queueMicrotask(()=>{var a;let r=Ra(e),i=(a=n.index)!=null?a:t.get("activeIndex");He(r[i],t.get("inputValue"))})},focusParsedDate(e){let{event:t,prop:n}=e;if(t.index==null)return;let i=n("parse")(t.value,{locale:n("locale"),timeZone:n("timeZone")});!i||!xf(i)||Ae(e,i)},selectParsedDate({context:e,event:t,prop:n}){if(t.index==null)return;let i=n("parse")(t.value,{locale:n("locale"),timeZone:n("timeZone")});if((!i||!xf(i))&&t.value&&(i=e.get("focusedValue").copy()),!i)return;i=Ft(i,n("min"),n("max"));let a=Array.from(e.get("value"));a[t.index]=i,e.set("value",a);let o=Gs(a,n);e.set("inputValue",o[t.index])},resetView({context:e}){e.set("view",e.initial("view"))},setStartValue({context:e,computed:t,prop:n}){let r=e.get("focusedValue");if(!vn(r,e.get("startValue"),t("endValue")))return;let a=Sf(r,"start",{months:n("numOfMonths")},n("locale"));e.set("startValue",a)},invokeOnOpen({prop:e,context:t}){var n;e("inline")||(n=e("onOpenChange"))==null||n({open:!0,value:t.get("value")})},invokeOnClose({prop:e,context:t}){var n;e("inline")||(n=e("onOpenChange"))==null||n({open:!1,value:t.get("value")})},invokeOnVisibleRangeChange({prop:e,context:t,computed:n}){var r;(r=e("onVisibleRangeChange"))==null||r({view:t.get("view"),visibleRange:n("visibleRange")})},toggleVisibility({event:e,send:t,prop:n}){t({type:n("open")?"CONTROLLED.OPEN":"CONTROLLED.CLOSE",previousEvent:e})}}}}),Ks=(e,t)=>{let{context:n,prop:r}=e,i=n.get("view"),a=typeof t=="number"?n.get("focusedValue").set({[i]:t}):t;return rO(o=>{Qw(o,r("minView"))&&(a=a.set({[o]:o==="day"?1:0}))}),a},sd=(e,t)=>{if(!e||!("hour"in e))return t;let n="timeZone"in e,r=t;return"hour"in t||(n?r=Uf($t(t),e.timeZone):r=$t(t)),r.set({hour:e.hour,minute:e.minute,second:e.second,millisecond:e.millisecond})};ld=(e,t,n,r)=>e==="year"?r!=null?r:"":e==="month"?n!=null?n:"":t!=null?t:"",lO=(e,t)=>e.split("__N__").join(String(t));uO=class extends X{constructor(){super(...arguments);Z(this,"getDayView",()=>this.el.querySelector('[data-part="day-view"]'));Z(this,"getMonthView",()=>this.el.querySelector('[data-part="month-view"]'));Z(this,"getYearView",()=>this.el.querySelector('[data-part="year-view"]'));Z(this,"renderDayTableHeader",()=>{let t=this.getDayView(),n=t==null?void 0:t.querySelector("thead");if(!n||!this.api.weekDays)return;let r=this.doc.createElement("tr");this.spreadProps(r,this.api.getTableRowProps({view:"day"})),this.api.weekDays.forEach(i=>{let a=this.doc.createElement("th");a.scope="col",a.setAttribute("aria-label",i.long),a.textContent=i.narrow,r.appendChild(a)}),n.innerHTML="",n.appendChild(r)});Z(this,"renderDayTableBody",()=>{let t=this.getDayView(),n=t==null?void 0:t.querySelector("tbody");n&&(this.spreadProps(n,this.api.getTableBodyProps({view:"day"})),this.api.weeks&&(n.innerHTML="",this.api.weeks.forEach(r=>{let i=this.doc.createElement("tr");this.spreadProps(i,this.api.getTableRowProps({view:"day"})),r.forEach(a=>{let o=this.doc.createElement("td");this.spreadProps(o,this.api.getDayTableCellProps({value:a}));let s=this.doc.createElement("div");this.spreadProps(s,this.api.getDayTableCellTriggerProps({value:a})),s.textContent=String(a.day),o.appendChild(s),i.appendChild(o)}),n.appendChild(i)})))});Z(this,"renderMonthTableBody",()=>{let t=this.getMonthView(),n=t==null?void 0:t.querySelector("tbody");if(!n)return;this.spreadProps(n,this.api.getTableBodyProps({view:"month"}));let r=this.api.getMonthsGrid({columns:4,format:"short"});n.innerHTML="",r.forEach(i=>{let a=this.doc.createElement("tr");this.spreadProps(a,this.api.getTableRowProps()),i.forEach(o=>{let s=this.doc.createElement("td");this.spreadProps(s,this.api.getMonthTableCellProps(v(p({},o),{columns:4})));let l=this.doc.createElement("div");this.spreadProps(l,this.api.getMonthTableCellTriggerProps(v(p({},o),{columns:4}))),l.textContent=o.label,s.appendChild(l),a.appendChild(s)}),n.appendChild(a)})});Z(this,"renderYearTableBody",()=>{let t=this.getYearView(),n=t==null?void 0:t.querySelector("tbody");if(!n)return;this.spreadProps(n,this.api.getTableBodyProps());let r=this.api.getYearsGrid({columns:4});n.innerHTML="",r.forEach(i=>{let a=this.doc.createElement("tr");this.spreadProps(a,this.api.getTableRowProps({view:"year"})),i.forEach(o=>{let s=this.doc.createElement("td");this.spreadProps(s,this.api.getYearTableCellProps(v(p({},o),{columns:4})));let l=this.doc.createElement("div");this.spreadProps(l,this.api.getYearTableCellTriggerProps(v(p({},o),{columns:4}))),l.textContent=o.label,s.appendChild(l),a.appendChild(s)}),n.appendChild(a)})})}initMachine(t){return new Y(sO,t)}initApi(){return this.zagConnect(aO)}render(){let t=this.el.querySelector('[data-scope="date-picker"][data-part="root"]');t&&this.spreadProps(t,this.api.getRootProps());let n=this.el.querySelector('[data-scope="date-picker"][data-part="label"]');n&&this.spreadProps(n,this.api.getLabelProps());let r=this.el.querySelector('[data-scope="date-picker"][data-part="control"]');r&&this.spreadProps(r,this.api.getControlProps());let i=Array.from(this.el.querySelectorAll('[data-scope="date-picker"][data-part="input"]')),a=this.api.selectionMode;for(let c=0;c0){let c=i[0],d=()=>{let g=this.api.valueAsString,u=(Array.isArray(g)?g:g==null||g===""?[]:[String(g)]).filter(Boolean).join(", ");c.value!==u&&(c.value=u)};d(),queueMicrotask(()=>{requestAnimationFrame(d)})}dO(this.el,i,this.api.selectionMode);let o=this.el.querySelector('[data-scope="date-picker"][data-part="trigger"]');o&&this.spreadProps(o,this.api.getTriggerProps());let s=this.el.querySelector('[data-scope="date-picker"][data-part="positioner"]');s&&this.spreadProps(s,this.api.getPositionerProps());let l=this.el.querySelector('[data-scope="date-picker"][data-part="content"]');if(l&&this.spreadProps(l,this.api.getContentProps()),this.api.open){let c=this.getDayView(),d=this.getMonthView(),g=this.getYearView();if(c&&(c.hidden=this.api.view!=="day"),d&&(d.hidden=this.api.view!=="month"),g&&(g.hidden=this.api.view!=="year"),this.api.view==="day"&&c){let h=c.querySelector('[data-part="view-control"]');h&&this.spreadProps(h,this.api.getViewControlProps({view:"year"}));let u=c.querySelector('[data-part="prev-trigger"]');u&&this.spreadProps(u,this.api.getPrevTriggerProps());let f=c.querySelector('[data-part="view-trigger"]');f&&(this.spreadProps(f,this.api.getViewTriggerProps()),f.textContent=this.api.visibleRangeText.start);let m=c.querySelector('[data-part="next-trigger"]');m&&this.spreadProps(m,this.api.getNextTriggerProps());let P=c.querySelector("table");P&&this.spreadProps(P,this.api.getTableProps({view:"day"}));let C=c.querySelector("thead");C&&this.spreadProps(C,this.api.getTableHeaderProps({view:"day"})),this.renderDayTableHeader(),this.renderDayTableBody()}else if(this.api.view==="month"&&d){let h=d.querySelector('[data-part="view-control"]');h&&this.spreadProps(h,this.api.getViewControlProps({view:"month"}));let u=d.querySelector('[data-part="prev-trigger"]');u&&this.spreadProps(u,this.api.getPrevTriggerProps({view:"month"}));let f=d.querySelector('[data-part="view-trigger"]');f&&(this.spreadProps(f,this.api.getViewTriggerProps({view:"month"})),f.textContent=String(this.api.visibleRange.start.year));let m=d.querySelector('[data-part="next-trigger"]');m&&this.spreadProps(m,this.api.getNextTriggerProps({view:"month"}));let P=d.querySelector("table");P&&this.spreadProps(P,this.api.getTableProps({view:"month",columns:4})),this.renderMonthTableBody()}else if(this.api.view==="year"&&g){let h=g.querySelector('[data-part="view-control"]');h&&this.spreadProps(h,this.api.getViewControlProps({view:"year"}));let u=g.querySelector('[data-part="prev-trigger"]');u&&this.spreadProps(u,this.api.getPrevTriggerProps({view:"year"}));let f=g.querySelector('[data-part="decade"]');if(f){let C=this.api.getDecade();f.textContent=`${C.start} - ${C.end}`}let m=g.querySelector('[data-part="next-trigger"]');m&&this.spreadProps(m,this.api.getNextTriggerProps({view:"year"}));let P=g.querySelector("table");P&&this.spreadProps(P,this.api.getTableProps({view:"year",columns:4})),this.renderYearTableBody()}}}};hO={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=this.liveSocket,r=()=>J(this.liveSocket),i=V(e,"min"),a=V(e,"max"),o=c=>c?c.map(d=>Zt(d)):void 0,s=c=>c?Zt(c):void 0,l=new uO(e,v(p(v(p({id:e.id},I(e,"controlled")?{value:o(ie(e,"value"))}:{defaultValue:o(ie(e,"defaultValue"))}),{defaultFocusedValue:s(V(e,"focusedValue")),defaultView:V(e,"defaultView"),dir:V(e,"dir"),locale:V(e,"locale"),timeZone:V(e,"timeZone"),disabled:I(e,"disabled"),readOnly:I(e,"readOnly"),required:I(e,"required"),invalid:I(e,"invalid"),outsideDaySelectable:I(e,"outsideDaySelectable"),closeOnSelect:Rf(e),min:i?Zt(i):void 0,max:a?Zt(a):void 0,startOfWeek:q(e,"startOfWeek"),fixedWeeks:I(e,"fixedWeeks"),selectionMode:V(e,"selectionMode"),maxSelectedDates:q(e,"maxSelectedDates"),placeholder:V(e,"placeholder"),minView:V(e,"minView"),maxView:V(e,"maxView"),defaultOpen:!1,inline:I(e,"inline"),positioning:nt(e)}),Af(e)),{onValueChange:c=>{var h;let d=(h=c.value)!=null&&h.length?c.value.map(u=>gO(u)).filter(Boolean).join(","):"",g=e.querySelector(`#${e.id}-value`);g&&g.value!==d&&(g.value=d,g.dispatchEvent(new Event("input",{bubbles:!0})),g.dispatchEvent(new Event("change",{bubbles:!0}))),K({el:e,canPushServer:r(),pushEvent:t,payload:{id:e.id,value:d||null},serverEventName:V(e,"onValueChange"),clientEventName:V(e,"onValueChangeClient")})},onFocusChange:c=>{var g;let d=V(e,"onFocusChange");d&&n.main.isConnected()&&t(d,{id:e.id,focused:(g=c.focused)!=null?g:!1})},onViewChange:c=>{let d=V(e,"onViewChange");d&&n.main.isConnected()&&t(d,{id:e.id,view:c.view})},onVisibleRangeChange:c=>{let d=V(e,"onVisibleRangeChange");d&&n.main.isConnected()&&t(d,{id:e.id,start:c.start,end:c.end})},onOpenChange:c=>{K({el:e,canPushServer:r(),pushEvent:t,payload:{id:e.id,open:c.open},serverEventName:V(e,"onOpenChange"),clientEventName:V(e,"onOpenChangeClient")})}}));l.init(),this.datePicker=l,this.handlers=[],this.handlers.push(this.handleEvent("date_picker_set_value",c=>{let d=c.date_picker_id;d&&d!==e.id||l.api.setValue([Zt(c.value)])})),this.onSetValue=c=>{var g;let d=(g=c.detail)==null?void 0:g.value;typeof d=="string"&&l.api.setValue([Zt(d)])},e.addEventListener("corex:date-picker:set-value",this.onSetValue)},updated(){var o;let e=this.el,t=V(e,"min"),n=V(e,"max"),r=V(e,"focusedValue"),i=I(e,"controlled"),a=ie(e,"value");(o=this.datePicker)==null||o.updateProps(p(v(p({},i?{value:(a!=null?a:[]).map(s=>Zt(s))}:{}),{defaultFocusedValue:r?Zt(r):void 0,defaultView:V(e,"defaultView"),dir:V(e,"dir"),locale:V(e,"locale"),timeZone:V(e,"timeZone"),disabled:I(e,"disabled"),readOnly:I(e,"readOnly"),required:I(e,"required"),invalid:I(e,"invalid"),outsideDaySelectable:I(e,"outsideDaySelectable"),closeOnSelect:Rf(e),min:t?Zt(t):void 0,max:n?Zt(n):void 0,startOfWeek:q(e,"startOfWeek"),fixedWeeks:I(e,"fixedWeeks"),selectionMode:V(e,"selectionMode"),maxSelectedDates:q(e,"maxSelectedDates"),placeholder:V(e,"placeholder"),minView:V(e,"minView"),maxView:V(e,"maxView"),inline:I(e,"inline"),positioning:nt(e)}),Af(e)))},destroyed(){var e;if(this.onSetValue&&this.el.removeEventListener("corex:date-picker:set-value",this.onSetValue),this.handlers)for(let t of this.handlers)this.removeHandleEvent(t);(e=this.datePicker)==null||e.destroy()}}});var Vm={};fe(Vm,{Dialog:()=>qO});function EO(e,t){let{state:n,send:r,context:i,prop:a,scope:o}=e,s=a("aria-label"),l=n.matches("open"),c=i.get("triggerValue");return{open:l,setOpen(d){n.matches("open")!==d&&r({type:d?"OPEN":"CLOSE"})},triggerValue:c,setTriggerValue(d){r({type:"TRIGGER_VALUE.SET",value:d})},getTriggerProps(d={}){let{value:g}=d,h=g==null?!1:c===g;return t.button(v(p({},Yr.trigger.attrs),{dir:a("dir"),id:Tm(o,g),"data-ownedby":o.id,"data-value":g,"aria-haspopup":"dialog",type:"button","aria-expanded":g==null?l:l&&h,"data-state":l?"open":"closed","aria-controls":Ad(o),"data-current":E(h),onClick(u){if(u.defaultPrevented)return;let f=l&&g!=null&&!h;r({type:f?"TRIGGER_VALUE.SET":"TOGGLE",value:g})}}))},getBackdropProps(){return t.element(v(p({},Yr.backdrop.attrs),{dir:a("dir"),hidden:!l,id:Im(o),"data-state":l?"open":"closed"}))},getPositionerProps(){return t.element(v(p({},Yr.positioner.attrs),{dir:a("dir"),id:Cm(o),style:On({pointerEvents:!l||!a("modal")?"none":void 0})}))},getContentProps(){let d=i.get("rendered");return t.element(v(p({},Yr.content.attrs),{dir:a("dir"),role:a("role"),hidden:!l,id:Ad(o),tabIndex:-1,"data-state":l?"open":"closed","aria-modal":a("modal"),"aria-label":s||void 0,"aria-labelledby":s||!d.title?void 0:Rd(o),"aria-describedby":d.description?kd(o):void 0,style:On({pointerEvents:a("modal")?void 0:"auto"})}))},getTitleProps(){return t.element(v(p({},Yr.title.attrs),{dir:a("dir"),id:Rd(o)}))},getDescriptionProps(){return t.element(v(p({},Yr.description.attrs),{dir:a("dir"),id:kd(o)}))},getCloseTriggerProps(){return t.button(v(p({},Yr.closeTrigger.attrs),{dir:a("dir"),id:wm(o),type:"button",onClick(d){d.defaultPrevented||(d.stopPropagation(),r({type:"CLOSE"}))}}))}}}function VO(e,t={}){let{defer:n=!0}=t,r=n?OO:a=>a(),i=[];return i.push(r(()=>{let o=(typeof e=="function"?e():e).filter(Boolean);o.length!==0&&i.push(wO(o))})),()=>{i.forEach(a=>a==null?void 0:a())}}function FO(e,t={}){let n,r=$(()=>{let a=(Array.isArray(e)?e:[e]).map(s=>typeof s=="function"?s():s).filter(s=>s!=null);if(a.length===0)return;let o=a[0];n=new kO(a,v(p({escapeDeactivates:!1,allowOutsideClick:!0,preventScroll:!0,returnFocusOnDeactivate:!0,delayInitialFocus:!1,fallbackFocus:o},t),{document:We(o)}));try{n.activate()}catch(s){}});return function(){n==null||n.deactivate(),r()}}function _O(e){let t=e.getBoundingClientRect().left;return Math.round(t)+e.scrollLeft?"paddingLeft":"paddingRight"}function Em(e){let t=At(e),n=t==null?void 0:t.scrollbarGutter;return n==="stable"||(n==null?void 0:n.startsWith("stable "))===!0}function $O(e){var u;let t=e!=null?e:document,n=(u=t.defaultView)!=null?u:window,{documentElement:r,body:i}=t;if(i.hasAttribute(xd))return;let o=Em(r)||Em(i),s=n.innerWidth-r.clientWidth;i.setAttribute(xd,"");let l=()=>Rg(r,"--scrollbar-width",`${s}px`),c=_O(r),d=()=>{let f={overflow:"hidden"};return!o&&s>0&&(f[c]=`${s}px`),Rr(i,f)},g=()=>{var y,S;let{scrollX:f,scrollY:m,visualViewport:P}=n,C=(y=P==null?void 0:P.offsetLeft)!=null?y:0,x=(S=P==null?void 0:P.offsetTop)!=null?S:0,T={position:"fixed",overflow:"hidden",top:`${-(m-Math.floor(x))}px`,left:`${-(f-Math.floor(C))}px`,right:"0"};!o&&s>0&&(T[c]=`${s}px`);let b=Rr(i,T);return()=>{b==null||b(),n.scrollTo({left:f,top:m,behavior:"instant"})}},h=[l(),ua()?g():d()];return()=>{h.forEach(f=>f==null?void 0:f()),i.removeAttribute(xd)}}function BO(e){var r,i;let t=e.querySelector('[data-scope="dialog"][data-part="title"]');if((r=t==null?void 0:t.textContent)!=null&&r.trim())return;let n=(i=V(e,"dialogDefaultLabel"))==null?void 0:i.trim();return n||"Dialog"}function GO(e,t){var r;let n=e.querySelector('[data-scope="dialog"][data-part="description"]');(r=n==null?void 0:n.textContent)!=null&&r.trim()||t.removeAttribute("aria-describedby")}function Sm(e){return v(p({id:e.id},I(e,"controlled")?{open:I(e,"open")}:{defaultOpen:I(e,"defaultOpen")}),{modal:I(e,"modal"),closeOnInteractOutside:I(e,"closeOnInteractOutside"),closeOnEscape:I(e,"closeOnEscapeKeyDown"),preventScroll:I(e,"preventScroll"),restoreFocus:I(e,"restoreFocus"),dir:U(e)})}function Pm(e,t){let n=tc(e),r=n.blockInteraction?e:void 0,i=e.querySelector('[data-scope="dialog"][data-part="backdrop"]'),a=e.querySelector('[data-scope="dialog"][data-part="content"]');i&&nc(i,t,n,r),a&&nc(a,t,n,r)}var pO,Yr,Cm,Im,Ad,Tm,Rd,kd,wm,Ma,fO,mO,vO,yO,bO,Nd,vm,Bi,Zs,Js,Od,Om,SO,PO,CO,IO,TO,wO,OO,xO,AO,Ne,ym,RO,kO,Dd,Vd,NO,DO,Fa,LO,bm,MO,xd,HO,UO,qO,xm=ne(()=>{"use strict";gr();gn();qo();_e();Ce();se();pO=j("dialog").parts("trigger","backdrop","positioner","content","title","description","closeTrigger"),Yr=pO.build(),Cm=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.positioner)!=null?n:`dialog:${e.id}:positioner`},Im=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.backdrop)!=null?n:`dialog:${e.id}:backdrop`},Ad=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.content)!=null?n:`dialog:${e.id}:content`},Tm=(e,t)=>{var r;let n=(r=e.ids)==null?void 0:r.trigger;return n!=null?Xe(n)?n(t):n:t?`dialog:${e.id}:trigger:${t}`:`dialog:${e.id}:trigger`},Rd=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.title)!=null?n:`dialog:${e.id}:title`},kd=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.description)!=null?n:`dialog:${e.id}:description`},wm=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.closeTrigger)!=null?n:`dialog:${e.id}:close`},Ma=e=>e.getById(Ad(e)),fO=e=>e.getById(Cm(e)),mO=e=>e.getById(Im(e)),vO=e=>e.getById(Rd(e)),yO=e=>e.getById(kd(e)),bO=e=>e.getById(wm(e)),Nd=e=>xe(e.getDoc(),`[data-scope="dialog"][data-part="trigger"][data-ownedby="${e.id}"]`),vm=(e,t)=>t==null?Nd(e)[0]:e.getById(Tm(e,t));Bi=new WeakMap,Zs=new WeakMap,Js={},Od=0,Om=e=>e&&(e.host||Om(e.parentNode)),SO=(e,t)=>t.map(n=>{if(e.contains(n))return n;let r=Om(n);return r&&e.contains(r)?r:(console.error("[zag-js > ariaHidden] target",n,"in not contained inside",e,". Doing nothing"),null)}).filter(n=>!!n),PO=new Set(["script","output","status","next-route-announcer"]),CO=e=>PO.has(e.localName)||e.role==="status"||e.hasAttribute("aria-live")?!0:e.matches("[data-live-announcer]"),IO=(e,t)=>{let{parentNode:n,markerName:r,controlAttribute:i,explicitBooleanValue:a,followControlledElements:o=!0}=t,s=SO(n,Array.isArray(e)?e:[e]);Js[r]||(Js[r]=new WeakMap);let l=Js[r],c=[],d=new Set,g=new Set(s),h=f=>{!f||d.has(f)||(d.add(f),h(f.parentNode))};s.forEach(f=>{h(f),o&&ye(f)&&Ul(f,m=>{h(m)})});let u=f=>{!f||g.has(f)||Array.prototype.forEach.call(f.children,m=>{if(d.has(m))u(m);else try{if(CO(m))return;let P=m.getAttribute(i),C=a?P==="true":P!==null&&P!=="false",x=(Bi.get(m)||0)+1,T=(l.get(m)||0)+1;Bi.set(m,x),l.set(m,T),c.push(m),x===1&&C&&Zs.set(m,!0),T===1&&m.setAttribute(r,""),C||m.setAttribute(i,a?"true":"")}catch(P){console.error("[zag-js > ariaHidden] cannot operate on ",m,P)}})};return u(n),d.clear(),Od++,()=>{c.forEach(f=>{let m=Bi.get(f)-1,P=l.get(f)-1;Bi.set(f,m),l.set(f,P),m||(Zs.has(f)||f.removeAttribute(i),Zs.delete(f)),P||f.removeAttribute(r)}),Od--,Od||(Bi=new WeakMap,Bi=new WeakMap,Zs=new WeakMap,Js={})}},TO=e=>(Array.isArray(e)?e[0]:e).ownerDocument.body,wO=(e,t=TO(e),n="data-aria-hidden",r=!0)=>{if(t)return IO(e,{parentNode:t,markerName:n,controlAttribute:"aria-hidden",explicitBooleanValue:!0,followControlledElements:r})},OO=e=>{let t=requestAnimationFrame(()=>e());return()=>cancelAnimationFrame(t)};xO=Object.defineProperty,AO=(e,t,n)=>t in e?xO(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ne=(e,t,n)=>AO(e,typeof t!="symbol"?t+"":t,n),ym={activateTrap(e,t){if(e.length>0){let r=e[e.length-1];r!==t&&r.pause()}let n=e.indexOf(t);n===-1||e.splice(n,1),e.push(t)},deactivateTrap(e,t){let n=e.indexOf(t);n!==-1&&e.splice(n,1),e.length>0&&e[e.length-1].unpause()}},RO=[],kO=class{constructor(e,t){Ne(this,"trapStack"),Ne(this,"config"),Ne(this,"doc"),Ne(this,"state",{containers:[],containerGroups:[],tabbableGroups:[],nodeFocusedBeforeActivation:null,mostRecentlyFocusedNode:null,active:!1,paused:!1,delayInitialFocusTimer:void 0,recentNavEvent:void 0}),Ne(this,"portalContainers",new Set),Ne(this,"listenerCleanups",[]),Ne(this,"handleFocus",r=>{let i=Q(r),a=this.findContainerIndex(i,r)>=0;if(a||da(i))a&&(this.state.mostRecentlyFocusedNode=i);else{r.stopImmediatePropagation();let o,s=!0;if(this.state.mostRecentlyFocusedNode)if(vi(this.state.mostRecentlyFocusedNode)>0){let l=this.findContainerIndex(this.state.mostRecentlyFocusedNode),{tabbableNodes:c}=this.state.containerGroups[l];if(c.length>0){let d=c.findIndex(g=>g===this.state.mostRecentlyFocusedNode);d>=0&&(this.config.isKeyForward(this.state.recentNavEvent)?d+1=0&&(o=c[d-1],s=!1))}}else this.state.containerGroups.some(l=>l.tabbableNodes.some(c=>vi(c)>0))||(s=!1);else s=!1;s&&(o=this.findNextNavNode({target:this.state.mostRecentlyFocusedNode,isBackward:this.config.isKeyBackward(this.state.recentNavEvent)})),o?this.tryFocus(o):this.tryFocus(this.state.mostRecentlyFocusedNode||this.getInitialFocusNode())}this.state.recentNavEvent=void 0}),Ne(this,"handlePointerDown",r=>{let i=Q(r);if(!(this.findContainerIndex(i,r)>=0)){if(Fa(this.config.clickOutsideDeactivates,r)){this.deactivate({returnFocus:this.config.returnFocusOnDeactivate});return}Fa(this.config.allowOutsideClick,r)||r.preventDefault()}}),Ne(this,"handleClick",r=>{let i=Q(r);this.findContainerIndex(i,r)>=0||Fa(this.config.clickOutsideDeactivates,r)||Fa(this.config.allowOutsideClick,r)||(r.preventDefault(),r.stopImmediatePropagation())}),Ne(this,"handleTabKey",r=>{if(this.config.isKeyForward(r)||this.config.isKeyBackward(r)){this.state.recentNavEvent=r;let i=this.config.isKeyBackward(r),a=this.findNextNavNode({event:r,isBackward:i});if(!a)return;Vd(r)&&r.preventDefault(),this.tryFocus(a)}}),Ne(this,"handleEscapeKey",r=>{LO(r)&&Fa(this.config.escapeDeactivates,r)!==!1&&(r.preventDefault(),this.deactivate())}),Ne(this,"_mutationObserver"),Ne(this,"setupMutationObserver",()=>{let r=this.doc.defaultView||window;this._mutationObserver=new r.MutationObserver(i=>{i.some(s=>Array.from(s.removedNodes).some(c=>c===this.state.mostRecentlyFocusedNode))&&this.tryFocus(this.getInitialFocusNode()),i.some(s=>s.type==="attributes"&&(s.attributeName==="aria-controls"||s.attributeName==="aria-expanded")?!0:s.type==="childList"&&s.addedNodes.length>0?Array.from(s.addedNodes).some(l=>{if(l.nodeType!==Node.ELEMENT_NODE)return!1;let c=l;return fg(c)?!0:c.id&&!this.state.containers.some(d=>d.contains(c))?mg(c):!1}):!1)&&this.state.active&&!this.state.paused&&(this.updateTabbableNodes(),this.updatePortalContainers())})}),Ne(this,"updateObservedNodes",()=>{var r;(r=this._mutationObserver)==null||r.disconnect(),this.state.active&&!this.state.paused&&(this.state.containers.map(i=>{var a;(a=this._mutationObserver)==null||a.observe(i,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["aria-controls","aria-expanded"]})}),this.portalContainers.forEach(i=>{this.observePortalContainer(i)}))}),Ne(this,"getInitialFocusNode",()=>{let r=this.getNodeForOption("initialFocus",{hasFallback:!0});if(r===!1)return!1;if(r===void 0||r&&!lt(r)){let i=er(this.doc);if(i&&this.findContainerIndex(i)>=0)r=i;else{let a=this.state.tabbableGroups[0];r=a&&a.firstTabbableNode||this.getNodeForOption("fallbackFocus")}}else r===null&&(r=this.getNodeForOption("fallbackFocus"));if(!r)throw new Error("Your focus-trap needs to have at least one focusable element");if(r.isConnected||(r=this.getNodeForOption("fallbackFocus")),!r||!r.isConnected)throw new Error("Your focus-trap needs to have at least one focusable element");return r}),Ne(this,"tryFocus",r=>{if(r!==!1&&r!==er(this.doc)){if(!r||!r.focus){this.tryFocus(this.getInitialFocusNode());return}r.focus({preventScroll:!!this.config.preventScroll}),this.state.mostRecentlyFocusedNode=r,MO(r)&&r.select()}}),Ne(this,"deactivate",r=>{if(!this.state.active)return this;let i=p({onDeactivate:this.config.onDeactivate,onPostDeactivate:this.config.onPostDeactivate,checkCanReturnFocus:this.config.checkCanReturnFocus},r);clearTimeout(this.state.delayInitialFocusTimer),this.state.delayInitialFocusTimer=void 0,this.removeListeners(),this.state.active=!1,this.state.paused=!1,this.updateObservedNodes(),ym.deactivateTrap(this.trapStack,this),this.portalContainers.clear();let a=this.getOption(i,"onDeactivate"),o=this.getOption(i,"onPostDeactivate"),s=this.getOption(i,"checkCanReturnFocus"),l=this.getOption(i,"returnFocus","returnFocusOnDeactivate");a==null||a();let c=()=>{bm(()=>{if(l){let d=this.getReturnFocusNode(this.state.nodeFocusedBeforeActivation);this.tryFocus(d)}o==null||o()})};if(l&&s){let d=this.getReturnFocusNode(this.state.nodeFocusedBeforeActivation);return s(d).then(c,c),this}return c(),this}),Ne(this,"pause",r=>{if(this.state.paused||!this.state.active)return this;let i=this.getOption(r,"onPause"),a=this.getOption(r,"onPostPause");return this.state.paused=!0,i==null||i(),this.removeListeners(),this.updateObservedNodes(),a==null||a(),this}),Ne(this,"unpause",r=>{if(!this.state.paused||!this.state.active)return this;let i=this.getOption(r,"onUnpause"),a=this.getOption(r,"onPostUnpause");return this.state.paused=!1,i==null||i(),this.updateTabbableNodes(),this.addListeners(),this.updateObservedNodes(),a==null||a(),this}),Ne(this,"updateContainerElements",r=>(this.state.containers=Array.isArray(r)?r.filter(Boolean):[r].filter(Boolean),this.state.active&&this.updateTabbableNodes(),this.updateObservedNodes(),this)),Ne(this,"getReturnFocusNode",r=>{let i=this.getNodeForOption("setReturnFocus",{params:[r]});return i||(i===!1?!1:r)}),Ne(this,"getOption",(r,i,a)=>r&&r[i]!==void 0?r[i]:this.config[a||i]),Ne(this,"getNodeForOption",(r,{hasFallback:i=!1,params:a=[]}={})=>{let o=this.config[r];if(typeof o=="function"&&(o=o(...a)),o===!0&&(o=void 0),!o){if(o===void 0||o===!1)return o;throw new Error(`\`${r}\` was specified but was not a node, or did not return a node`)}let s=o;if(typeof o=="string"){try{s=this.doc.querySelector(o)}catch(l){throw new Error(`\`${r}\` appears to be an invalid selector; error="${l.message}"`)}if(!s&&!i)throw new Error(`\`${r}\` as selector refers to no known node`)}return s}),Ne(this,"findNextNavNode",r=>{let{event:i,isBackward:a=!1}=r,o=r.target||Q(i);this.updateTabbableNodes();let s=null;if(this.state.tabbableGroups.length>0){let l=this.findContainerIndex(o,i),c=l>=0?this.state.containerGroups[l]:void 0;if(l<0)a?s=this.state.tabbableGroups[this.state.tabbableGroups.length-1].lastTabbableNode:s=this.state.tabbableGroups[0].firstTabbableNode;else if(a){let d=this.state.tabbableGroups.findIndex(({firstTabbableNode:g})=>o===g);if(d<0&&((c==null?void 0:c.container)===o||lt(o)&&!Xn(o)&&!(c!=null&&c.nextTabbableNode(o,!1)))&&(d=l),d>=0){let g=d===0?this.state.tabbableGroups.length-1:d-1,h=this.state.tabbableGroups[g];s=vi(o)>=0?h.lastTabbableNode:h.lastDomTabbableNode}else Vd(i)||(s=c==null?void 0:c.nextTabbableNode(o,!1))}else{let d=this.state.tabbableGroups.findIndex(({lastTabbableNode:g})=>o===g);if(d<0&&((c==null?void 0:c.container)===o||lt(o)&&!Xn(o)&&!(c!=null&&c.nextTabbableNode(o)))&&(d=l),d>=0){let g=d===this.state.tabbableGroups.length-1?0:d+1,h=this.state.tabbableGroups[g];s=vi(o)>=0?h.firstTabbableNode:h.firstDomTabbableNode}else Vd(i)||(s=c==null?void 0:c.nextTabbableNode(o))}}else s=this.getNodeForOption("fallbackFocus");return s}),this.trapStack=t.trapStack||RO;let n=p({returnFocusOnDeactivate:!0,escapeDeactivates:!0,delayInitialFocus:!0,followControlledElements:!0,isKeyForward:NO,isKeyBackward:DO},t);this.doc=n.document||We(Array.isArray(e)?e[0]:e),this.config=n,this.updateContainerElements(e),this.setupMutationObserver()}addPortalContainer(e){let t=e.parentElement;t&&!this.portalContainers.has(t)&&(this.portalContainers.add(t),this.state.active&&!this.state.paused&&this.observePortalContainer(t))}observePortalContainer(e){var t;(t=this._mutationObserver)==null||t.observe(e,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["aria-controls","aria-expanded"]})}updatePortalContainers(){this.config.followControlledElements&&this.state.containers.forEach(e=>{pg(e).forEach(n=>{this.addPortalContainer(n)})})}get active(){return this.state.active}get paused(){return this.state.paused}findContainerIndex(e,t){let n=typeof(t==null?void 0:t.composedPath)=="function"?t.composedPath():void 0;return this.state.containerGroups.findIndex(({container:r,tabbableNodes:i})=>r.contains(e)||(n==null?void 0:n.includes(r))||i.find(a=>a===e)||this.isControlledElement(r,e))}isControlledElement(e,t){return this.config.followControlledElements?No(e,t):!1}updateTabbableNodes(){if(this.state.containerGroups=this.state.containers.map(e=>{let t=An(e,{getShadowRoot:this.config.getShadowRoot}),n=pa(e,{getShadowRoot:this.config.getShadowRoot}),r=t[0],i=t[t.length-1],a=r,o=i,s=!1;for(let c=0;c0){s=!0;break}function l(c,d=!0){let g=t.indexOf(c);if(g>=0)return t[g+(d?1:-1)];let h=n.indexOf(c);if(!(h<0)){if(d){for(let u=h+1;u=0;u--)if(Xn(n[u]))return n[u]}}return{container:e,tabbableNodes:t,focusableNodes:n,posTabIndexesFound:s,firstTabbableNode:r,lastTabbableNode:i,firstDomTabbableNode:a,lastDomTabbableNode:o,nextTabbableNode:l}}),this.state.tabbableGroups=this.state.containerGroups.filter(e=>e.tabbableNodes.length>0),this.state.tabbableGroups.length<=0&&!this.getNodeForOption("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(this.state.containerGroups.find(e=>e.posTabIndexesFound)&&this.state.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")}addListeners(){if(this.state.active)return ym.activateTrap(this.trapStack,this),this.state.delayInitialFocusTimer=this.config.delayInitialFocus?bm(()=>{this.tryFocus(this.getInitialFocusNode())}):this.tryFocus(this.getInitialFocusNode()),this.listenerCleanups.push(re(this.doc,"focusin",this.handleFocus,!0),re(this.doc,"mousedown",this.handlePointerDown,{capture:!0,passive:!1}),re(this.doc,"touchstart",this.handlePointerDown,{capture:!0,passive:!1}),re(this.doc,"click",this.handleClick,{capture:!0,passive:!1}),re(this.doc,"keydown",this.handleTabKey,{capture:!0,passive:!1}),re(this.doc,"keydown",this.handleEscapeKey)),this}removeListeners(){if(this.state.active)return this.listenerCleanups.forEach(e=>e()),this.listenerCleanups=[],this}activate(e){if(this.state.active)return this;let t=this.getOption(e,"onActivate"),n=this.getOption(e,"onPostActivate"),r=this.getOption(e,"checkCanFocusTrap");r||this.updateTabbableNodes(),this.state.active=!0,this.state.paused=!1,this.state.nodeFocusedBeforeActivation=er(this.doc),t==null||t();let i=()=>{r&&this.updateTabbableNodes(),this.addListeners(),this.updateObservedNodes(),n==null||n()};return r?(r(this.state.containers.concat()).then(i,i),this):(i(),this)}},Dd=e=>(e==null?void 0:e.type)==="keydown",Vd=e=>Dd(e)&&(e==null?void 0:e.key)==="Tab",NO=e=>Dd(e)&&e.key==="Tab"&&!(e!=null&&e.shiftKey),DO=e=>Dd(e)&&e.key==="Tab"&&(e==null?void 0:e.shiftKey),Fa=(e,...t)=>typeof e=="function"?e(...t):e,LO=e=>!e.isComposing&&e.key==="Escape",bm=e=>setTimeout(e,0),MO=e=>e.localName==="input"&&"select"in e&&typeof e.select=="function";xd="data-scroll-lock";HO=te({props({props:e,scope:t}){let n=e.role==="alertdialog",r=n?()=>bO(t):void 0,i=typeof e.modal=="boolean"?e.modal:!0;return p({role:"dialog",modal:i,trapFocus:i,preventScroll:i,closeOnInteractOutside:i&&!n,closeOnEscape:!0,restoreFocus:!0,initialFocusEl:r},e)},initialState({prop:e}){return e("open")||e("defaultOpen")?"open":"closed"},context({bindable:e,prop:t,scope:n}){return{rendered:e(()=>({defaultValue:{title:!0,description:!0}})),triggerValue:e(()=>{var r;return{defaultValue:(r=t("defaultTriggerValue"))!=null?r:null,value:t("triggerValue"),onChange(i){let a=t("onTriggerValueChange");if(!a)return;let o=vm(n,i);a({value:i,triggerElement:o})}}})}},watch({track:e,action:t,prop:n}){e([()=>n("open")],()=>{t(["toggleVisibility"])})},states:{open:{entry:["checkRenderedElements","syncZIndex","setInitialFocus"],effects:["trackDismissableElement","trapFocus","preventScroll","hideContentBelow"],on:{"CONTROLLED.CLOSE":{target:"closed"},CLOSE:[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed",actions:["invokeOnClose"]}],TOGGLE:[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed",actions:["invokeOnClose"]}],"TRIGGER_VALUE.SET":{actions:["setTriggerValue"]}}},closed:{on:{"CONTROLLED.OPEN":{target:"open"},OPEN:[{guard:"isOpenControlled",actions:["invokeOnOpen","setTriggerValue"]},{target:"open",actions:["invokeOnOpen","setTriggerValue"]}],TOGGLE:[{guard:"isOpenControlled",actions:["invokeOnOpen","setTriggerValue"]},{target:"open",actions:["invokeOnOpen","setTriggerValue"]}],"TRIGGER_VALUE.SET":{actions:["setTriggerValue"]}}}},implementations:{guards:{isOpenControlled:({prop:e})=>e("open")!=null},effects:{trackDismissableElement({scope:e,send:t,prop:n}){return Mt(()=>Ma(e),{type:"dialog",defer:!0,pointerBlocking:n("modal"),exclude:Nd(e),onInteractOutside(i){var a;(a=n("onInteractOutside"))==null||a(i),n("closeOnInteractOutside")||i.preventDefault()},persistentElements:n("persistentElements"),onFocusOutside:n("onFocusOutside"),onPointerDownOutside:n("onPointerDownOutside"),onRequestDismiss:n("onRequestDismiss"),onEscapeKeyDown(i){var a;(a=n("onEscapeKeyDown"))==null||a(i),n("closeOnEscape")||i.preventDefault()},onDismiss(){t({type:"CLOSE",src:"interact-outside"})}})},preventScroll({scope:e,prop:t}){if(t("preventScroll"))return $O(e.getDoc())},trapFocus({scope:e,prop:t,context:n}){return t("trapFocus")?FO(()=>Ma(e),{preventScroll:!0,returnFocusOnDeactivate:!!t("restoreFocus"),initialFocus:t("initialFocusEl"),setReturnFocus:i=>{var l;let a=(l=t("finalFocusEl"))==null?void 0:l();if(a)return a;let o=n.get("triggerValue");if(o){let c=vm(e,o);if(c)return c}let s=Nd(e)[0];return s||i},getShadowRoot:!0}):void 0},hideContentBelow({scope:e,prop:t}){return t("modal")?VO(()=>[Ma(e)],{defer:!0}):void 0}},actions:{setInitialFocus({prop:e,scope:t}){e("trapFocus")||$(()=>{let n=nr({root:Ma(t),getInitialEl:e("initialFocusEl")});n==null||n.focus({preventScroll:!0})})},checkRenderedElements({context:e,scope:t}){$(()=>{e.set("rendered",{title:!!vO(t),description:!!yO(t)})})},syncZIndex({scope:e}){$(()=>{let t=Ma(e);if(!t)return;let n=At(t);[fO(e),mO(e)].forEach(i=>{i==null||i.style.setProperty("--z-index",n.zIndex),i==null||i.style.setProperty("--layer-index",n.getPropertyValue("--layer-index"))})})},invokeOnClose({prop:e}){var t;(t=e("onOpenChange"))==null||t({open:!1})},invokeOnOpen({prop:e}){var t;(t=e("onOpenChange"))==null||t({open:!0})},setTriggerValue({context:e,event:t}){t.value!==void 0&&e.set("triggerValue",t.value)},toggleVisibility({prop:e,send:t,event:n}){t({type:e("open")?"CONTROLLED.OPEN":"CONTROLLED.CLOSE",previousEvent:n})}}}});UO=class extends X{initMachine(e){return new Y(HO,e)}initApi(){return this.zagConnect(EO)}render(){var c;let e=this.el,t=(c=e.dataset.animation)!=null?c:"instant",n=e.querySelector('[data-scope="dialog"][data-part="trigger"]');n&&this.spreadProps(n,this.api.getTriggerProps());let r=e.querySelector('[data-scope="dialog"][data-part="backdrop"]');if(r){let d=this.api.getBackdropProps();t==="instant"?this.spreadProps(r,d):(t==="js"||t==="custom")&&(this.spreadProps(r,kr(d)),r.removeAttribute("hidden"))}let i=e.querySelector('[data-scope="dialog"][data-part="positioner"]');i&&this.spreadProps(i,this.api.getPositionerProps());let a=e.querySelector('[data-scope="dialog"][data-part="content"]');if(a){let d=this.api.getContentProps();t==="instant"?this.spreadProps(a,d):(t==="js"||t==="custom")&&(this.spreadProps(a,kr(d)),a.removeAttribute("hidden"),this.api.open||a.style.removeProperty("pointer-events")),GO(e,a)}let o=e.querySelector('[data-scope="dialog"][data-part="title"]');o&&this.spreadProps(o,this.api.getTitleProps());let s=e.querySelector('[data-scope="dialog"][data-part="description"]');s&&this.spreadProps(s,this.api.getDescriptionProps());let l=e.querySelector('[data-scope="dialog"][data-part="close-trigger"]');l&&this.spreadProps(l,this.api.getCloseTriggerProps())}};qO={mounted(){var s,l;let e=this.el,t=this,n=this.pushEvent.bind(this),r=()=>J(this.liveSocket);t.lastOpen=I(e,"controlled")?(s=I(e,"open"))!=null?s:!1:(l=I(e,"defaultOpen"))!=null?l:!1;let i=new UO(e,v(p({id:e.id},I(e,"controlled")?{open:I(e,"open")}:{defaultOpen:I(e,"defaultOpen")}),{modal:I(e,"modal"),closeOnInteractOutside:I(e,"closeOnInteractOutside"),closeOnEscape:I(e,"closeOnEscapeKeyDown"),preventScroll:I(e,"preventScroll"),restoreFocus:I(e,"restoreFocus"),dir:U(e),"aria-label":BO(e),onOpenChange:c=>{var h;let d=(h=t.lastOpen)!=null?h:!1;t.lastOpen=c.open;let g={id:e.id,open:c.open,previousOpen:d};K({el:e,canPushServer:r(),pushEvent:n,payload:g,serverEventName:V(e,"onOpenChange"),clientEventName:V(e,"onOpenChangeClient")}),e.dataset.animation==="js"&&!I(e,"controlled")&&Pm(e,c.open)}}));if(i.init(),this.dialog=i,e.dataset.animation==="js"){let c=tc(e);_g(e,'[data-scope="dialog"][data-part="backdrop"], [data-scope="dialog"][data-part="content"]',c,d=>{if(d.dataset.part==="backdrop")return{scale:!1}})}let a=de(e);this.domRegistry=a,a.add("corex:dialog:set-open",c=>{let{open:d}=c.detail;i.api.setOpen(d)});let o=ce(this);this.handleRegistry=o,o.add("dialog_set_open",c=>{if(!c||typeof c!="object")return;let d=c;B(e.id,G(c))&&typeof d.open=="boolean"&&i.api.setOpen(d.open)}),o.add("dialog_open",c=>{B(e.id,G(c))&&r()&&this.pushEvent("dialog_open_response",{id:e.id,value:i.api.open})})},updated(){var n,r,i;let e=this.el;if(I(e,"controlled")){let a=(n=I(e,"open"))!=null?n:!1,o=(r=this.lastOpen)!=null?r:!1;this.lastOpen=a,e.dataset.animation==="js"&&a!==o&&Pm(e,a)}(i=this.dialog)==null||i.updateProps(Sm(e))},destroyed(){var e,t,n,r;(e=this.dialog)==null||e.updateProps(Sm(this.el)),(t=this.domRegistry)==null||t.teardown(),(n=this.handleRegistry)==null||n.teardown(),(r=this.dialog)==null||r.destroy()}}});var Lm={};fe(Lm,{Editable:()=>rV});function eV(e,t){var y;let{state:n,context:r,send:i,prop:a,scope:o,computed:s}=e,l=!!a("disabled"),c=s("isInteractive"),d=!!a("readOnly"),g=!!a("required"),h=!!a("invalid"),u=!!a("autoResize"),f=a("translations"),m=n.matches("edit"),P=a("placeholder"),C=typeof P=="string"?{edit:P,preview:P}:P,x=r.get("value"),T=x.trim()==="",b=T?(y=C==null?void 0:C.preview)!=null?y:"":x;return{editing:m,empty:T,value:x,valueText:b,setValue(S){i({type:"VALUE.SET",value:S,src:"setValue"})},clearValue(){i({type:"VALUE.SET",value:"",src:"clearValue"})},edit(){c&&i({type:"EDIT"})},cancel(){c&&i({type:"CANCEL"})},submit(){c&&i({type:"SUBMIT"})},getRootProps(){return t.element(v(p({},Wn.root.attrs),{id:KO(o),dir:a("dir")}))},getAreaProps(){return t.element(v(p({},Wn.area.attrs),{id:jO(o),dir:a("dir"),style:u?{display:"inline-grid"}:void 0,"data-focus":E(m),"data-disabled":E(l),"data-placeholder-shown":E(T)}))},getLabelProps(){return t.label(v(p({},Wn.label.attrs),{id:zO(o),dir:a("dir"),htmlFor:Ld(o),"data-focus":E(m),"data-invalid":E(h),"data-required":E(g),onClick(){if(m)return;let S=XO(o);S==null||S.focus({preventScroll:!0})}}))},getInputProps(){return t.input(v(p({},Wn.input.attrs),{dir:a("dir"),"aria-label":f==null?void 0:f.input,name:a("name"),form:a("form"),id:Ld(o),hidden:u?void 0:!m,placeholder:C==null?void 0:C.edit,maxLength:a("maxLength"),required:a("required"),disabled:l,"data-disabled":E(l),readOnly:d,"data-readonly":E(d),"aria-invalid":oe(h),"data-invalid":E(h),"data-autoresize":E(u),defaultValue:x,size:u?1:void 0,onChange(S){i({type:"VALUE.SET",src:"input.change",value:S.currentTarget.value})},onKeyDown(S){if(S.defaultPrevented||$e(S))return;let N={Escape(){i({type:"CANCEL"}),S.preventDefault()},Enter(O){if(!s("submitOnEnter"))return;let{localName:w}=O.currentTarget;if(w==="textarea"){if(!(ga()?O.metaKey:O.ctrlKey))return;i({type:"SUBMIT",src:"keydown.enter"});return}w==="input"&&!O.shiftKey&&!O.metaKey&&(i({type:"SUBMIT",src:"keydown.enter"}),O.preventDefault())}}[S.key];N&&N(S)},style:u?{gridArea:"1 / 1 / auto / auto",visibility:m?void 0:"hidden"}:void 0}))},getPreviewProps(){return t.element(v(p({id:Rm(o)},Wn.preview.attrs),{dir:a("dir"),"data-placeholder-shown":E(T),"aria-readonly":oe(d),"data-readonly":E(l),"data-disabled":E(l),"aria-disabled":oe(l),"aria-invalid":oe(h),"data-invalid":E(h),"aria-label":f==null?void 0:f.edit,"data-autoresize":E(u),children:b,hidden:u?void 0:m,tabIndex:c?0:void 0,onClick(){c&&a("activationMode")==="click"&&i({type:"EDIT",src:"click"})},onFocus(){c&&a("activationMode")==="focus"&&i({type:"EDIT",src:"focus"})},onDoubleClick(S){S.defaultPrevented||c&&a("activationMode")==="dblclick"&&i({type:"EDIT",src:"dblclick"})},style:u?{whiteSpace:"pre",gridArea:"1 / 1 / auto / auto",visibility:m?"hidden":void 0,overflow:"hidden",textOverflow:"ellipsis"}:void 0}))},getEditTriggerProps(){return t.button(v(p({},Wn.editTrigger.attrs),{id:Dm(o),dir:a("dir"),"aria-label":f==null?void 0:f.edit,hidden:m,type:"button",disabled:l,onClick(S){S.defaultPrevented||c&&i({type:"EDIT",src:"edit.click"})}}))},getControlProps(){return t.element(v(p({id:YO(o)},Wn.control.attrs),{dir:a("dir")}))},getSubmitTriggerProps(){return t.button(v(p({},Wn.submitTrigger.attrs),{dir:a("dir"),id:km(o),"aria-label":f==null?void 0:f.submit,hidden:!m,disabled:l,type:"button",onClick(S){S.defaultPrevented||c&&i({type:"SUBMIT",src:"submit.click"})}}))},getCancelTriggerProps(){return t.button(v(p({},Wn.cancelTrigger.attrs),{dir:a("dir"),"aria-label":f==null?void 0:f.cancel,id:Nm(o),hidden:!m,type:"button",disabled:l,onClick(S){S.defaultPrevented||c&&i({type:"CANCEL",src:"cancel.click"})}}))}}}function Am(e){var t;return(t=V(e,"defaultValue"))!=null?t:""}var WO,Wn,KO,jO,zO,Rm,Ld,YO,km,Nm,Dm,Qs,XO,ZO,JO,QO,tV,nV,rV,Mm=ne(()=>{"use strict";gn();_e();Ce();se();WO=j("editable").parts("root","area","label","preview","input","editTrigger","submitTrigger","cancelTrigger","control"),Wn=WO.build(),KO=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`editable:${e.id}`},jO=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.area)!=null?n:`editable:${e.id}:area`},zO=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`editable:${e.id}:label`},Rm=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.preview)!=null?n:`editable:${e.id}:preview`},Ld=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.input)!=null?n:`editable:${e.id}:input`},YO=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.control)!=null?n:`editable:${e.id}:control`},km=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.submitTrigger)!=null?n:`editable:${e.id}:submit`},Nm=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.cancelTrigger)!=null?n:`editable:${e.id}:cancel`},Dm=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.editTrigger)!=null?n:`editable:${e.id}:edit`},Qs=e=>e.getById(Ld(e)),XO=e=>e.getById(Rm(e)),ZO=e=>e.getById(km(e)),JO=e=>e.getById(Nm(e)),QO=e=>e.getById(Dm(e));tV=te({props({props:e}){return v(p({activationMode:"focus",submitMode:"both",defaultValue:"",selectOnFocus:!0},e),{translations:p({input:"editable input",edit:"edit",submit:"submit",cancel:"cancel"},e.translations)})},initialState({prop:e}){return e("edit")||e("defaultEdit")?"edit":"preview"},entry:["focusInputIfNeeded"],context:({bindable:e,prop:t})=>({value:e(()=>({defaultValue:t("defaultValue"),value:t("value"),onChange(n){var r;return(r=t("onValueChange"))==null?void 0:r({value:n})}})),previousValue:e(()=>({defaultValue:""}))}),watch({track:e,action:t,context:n,prop:r}){e([()=>n.get("value")],()=>{t(["syncInputValue"])}),e([()=>r("edit")],()=>{t(["toggleEditing"])})},computed:{submitOnEnter({prop:e}){let t=e("submitMode");return t==="both"||t==="enter"},submitOnBlur({prop:e}){let t=e("submitMode");return t==="both"||t==="blur"},isInteractive({prop:e}){return!(e("disabled")||e("readOnly"))}},on:{"VALUE.SET":{actions:["setValue"]}},states:{preview:{entry:["blurInput"],on:{"CONTROLLED.EDIT":{target:"edit",actions:["setPreviousValue","focusInput"]},EDIT:[{guard:"isEditControlled",actions:["invokeOnEdit"]},{target:"edit",actions:["setPreviousValue","focusInput","invokeOnEdit"]}]}},edit:{effects:["trackInteractOutside"],entry:["syncInputValue"],on:{"CONTROLLED.PREVIEW":[{guard:"isSubmitEvent",target:"preview",actions:["setPreviousValue","restoreFocus","invokeOnSubmit"]},{target:"preview",actions:["revertValue","restoreFocus","invokeOnCancel"]}],CANCEL:[{guard:"isEditControlled",actions:["invokeOnPreview"]},{target:"preview",actions:["revertValue","restoreFocus","invokeOnCancel","invokeOnPreview"]}],SUBMIT:[{guard:"isEditControlled",actions:["invokeOnPreview"]},{target:"preview",actions:["setPreviousValue","restoreFocus","invokeOnSubmit","invokeOnPreview"]}]}}},implementations:{guards:{isEditControlled:({prop:e})=>e("edit")!=null,isSubmitEvent:({event:e})=>{var t;return((t=e.previousEvent)==null?void 0:t.type)==="SUBMIT"}},effects:{trackInteractOutside({send:e,scope:t,prop:n,computed:r}){return Ps(Qs(t),{exclude(i){return[JO(t),ZO(t)].some(o=>ge(o,i))},onFocusOutside:n("onFocusOutside"),onPointerDownOutside:n("onPointerDownOutside"),onInteractOutside(i){var o;if((o=n("onInteractOutside"))==null||o(i),i.defaultPrevented)return;let{focusable:a}=i.detail;e({type:r("submitOnBlur")?"SUBMIT":"CANCEL",src:"interact-outside",focusable:a})}})}},actions:{restoreFocus({event:e,scope:t,prop:n}){e.focusable||$(()=>{var i,a;let r=(a=(i=n("finalFocusEl"))==null?void 0:i())!=null?a:QO(t);r==null||r.focus({preventScroll:!0})})},clearValue({context:e}){e.set("value","")},focusInputIfNeeded({action:e,prop:t}){(t("edit")||t("defaultEdit"))&&e(["focusInput"])},focusInput({scope:e,prop:t}){$(()=>{let n=Qs(e);n&&(t("selectOnFocus")?n.select():n.focus({preventScroll:!0}))})},invokeOnCancel({prop:e,context:t}){var r;let n=t.get("previousValue");(r=e("onValueRevert"))==null||r({value:n})},invokeOnSubmit({prop:e,context:t}){var r;let n=t.get("value");(r=e("onValueCommit"))==null||r({value:n})},invokeOnEdit({prop:e}){var t;(t=e("onEditChange"))==null||t({edit:!0})},invokeOnPreview({prop:e}){var t;(t=e("onEditChange"))==null||t({edit:!1})},toggleEditing({prop:e,send:t,event:n}){t({type:e("edit")?"CONTROLLED.EDIT":"CONTROLLED.PREVIEW",previousEvent:n})},syncInputValue({context:e,scope:t}){let n=Qs(t);n&&He(n,e.get("value"))},setValue({context:e,prop:t,event:n}){let r=t("maxLength"),i=r!=null?n.value.slice(0,r):n.value;e.set("value",i)},setPreviousValue({context:e}){e.set("previousValue",e.get("value"))},revertValue({context:e}){let t=e.get("previousValue");t&&e.set("value",t)},blurInput({scope:e}){var t;(t=Qs(e))==null||t.blur()}}}}),nV=class extends X{initMachine(e){return new Y(tV,e)}initApi(){return this.zagConnect(eV)}render(){var l;let e=(l=this.el.querySelector('[data-scope="editable"][data-part="root"]'))!=null?l:this.el;this.spreadProps(e,this.api.getRootProps());let t=this.el.querySelector('[data-scope="editable"][data-part="area"]');t&&this.spreadProps(t,this.api.getAreaProps());let n=this.el.querySelector('[data-scope="editable"][data-part="label"]');n&&this.spreadProps(n,this.api.getLabelProps());let r=this.el.querySelector('[data-scope="editable"][data-part="input"]');r&&this.spreadProps(r,this.api.getInputProps());let i=this.el.querySelector('[data-scope="editable"][data-part="preview"]');i&&this.spreadProps(i,this.api.getPreviewProps());let a=this.el.querySelector('[data-scope="editable"][data-part="edit-trigger"]');a&&this.spreadProps(a,this.api.getEditTriggerProps());let o=this.el.querySelector('[data-scope="editable"][data-part="submit-trigger"]');o&&this.spreadProps(o,this.api.getSubmitTriggerProps());let s=this.el.querySelector('[data-scope="editable"][data-part="cancel-trigger"]');s&&this.spreadProps(s,this.api.getCancelTriggerProps())}};rV={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>J(this.liveSocket),r=V(e,"placeholder"),i=V(e,"activationMode"),a=I(e,"selectOnFocus"),o=new nV(e,v(p(p(p(p({id:e.id,defaultValue:Am(e),disabled:I(e,"disabled"),readOnly:I(e,"readOnly"),required:I(e,"required"),invalid:I(e,"invalid"),name:V(e,"name"),form:V(e,"form"),dir:U(e)},r!==void 0?{placeholder:r}:{}),i!==void 0?{activationMode:i}:{}),a!==void 0?{selectOnFocus:a}:{}),I(e,"controlledEdit")?{edit:I(e,"edit")}:{defaultEdit:I(e,"defaultEdit")}),{onValueChange:c=>{let d=e.querySelector('[data-scope="editable"][data-part="input"]');d&&(d.value=c.value,d.dispatchEvent(new Event("input",{bubbles:!0})),d.dispatchEvent(new Event("change",{bubbles:!0}))),K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,value:c.value},serverEventName:V(e,"onValueChange"),clientEventName:V(e,"onValueChangeClient")})}}));o.init(),this.editable=o;let s=de(e);this.domRegistry=s,s.add("corex:editable:set-value",c=>{var g;let d=(g=c.detail)==null?void 0:g.value;o.api.setValue(d==null?"":String(d))});let l=ce(this);this.handleRegistry=l,l.add("editable_set_value",c=>{B(e.id,G(c))&&o.api.setValue(Hg(c))})},updated(){var n;let e=this.el,t=Am(e);this.editable&&!this.editable.api.editing&&t!==this.editable.api.value&&this.editable.api.setValue(t),(n=this.editable)==null||n.updateProps(p({id:e.id,disabled:I(e,"disabled"),readOnly:I(e,"readOnly"),required:I(e,"required"),invalid:I(e,"invalid"),name:V(e,"name"),form:V(e,"form"),dir:U(e)},I(e,"controlledEdit")?{edit:I(e,"edit")}:{defaultEdit:I(e,"defaultEdit")}))},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.editable)==null||n.destroy()}}});var jm={};fe(jm,{FileUpload:()=>UV});function sV(e){return e==="audio/*"||e==="video/*"||e==="image/*"||e==="text/*"||/\w+\/[-+.\w]+/g.test(e)}function lV(e){return/^.*\.[\w]+$/.test(e)}function cV(e){if(e!=null)return typeof e=="string"?e:Array.isArray(e)?e.filter(Fm).join(","):Object.entries(e).reduce((t,[n,r])=>[...t,n,...r],[]).filter(Fm).join(",")}function dV(e,t,n){if(_a(e.size))if(_a(t)&&_a(n)){if(e.size>n)return[!1,"FILE_TOO_LARGE"];if(e.sizen)return[!1,"FILE_TOO_LARGE"]}return[!0,null]}function hV(e){let t=e.split(".").pop();return t&&gV.get(t)||null}function pV(e,t){if(e&&t){let n=Array.isArray(t)?t:typeof t=="string"?t.split(","):[];if(n.length===0)return!0;let r=e.name||"",i=(e.type||hV(r)||"").toLowerCase(),a=i.replace(/\/.*$/,"");return n.some(o=>{let s=o.trim().toLowerCase();return s.charAt(0)==="."?r.toLowerCase().endsWith(s):s.endsWith("/*")?a===s.replace(/\/.*$/,""):i===s})}return!0}function fV(e,t){let n=e.type==="application/x-moz-file"||pV(e,t);return[n,n?null:"FILE_INVALID_TYPE"]}function mV(e){let t=new Map;return function(r,i){let a=r+(i?Object.entries(i).sort((s,l)=>s[0]n==="Files"||n==="application/x-moz-file"):!!t&&"files"in t}function RV(e,t,n){let{prop:r,computed:i}=e;return!i("multiple")&&t>1?!1:!i("multiple")&&t+n.length===2?!0:!(t+n.length>r("maxFiles"))}function Hm(e,t,n=[],r=[]){let{prop:i,computed:a}=e,o=[],s=[],l={acceptedFiles:n,rejectedFiles:r};return t.forEach(c=>{var C;let[d,g]=fV(c,a("acceptAttr")),[h,u]=dV(c,i("minFileSize"),i("maxFileSize")),f=n.some(x=>Gi(x,c))||o.some(x=>Gi(x,c)),m=(C=i("validate"))==null?void 0:C(c,l),P=m?m.length===0:!0;if(d&&h&&P&&!f)o.push(c);else{let x=[g,u];f&&x.push("FILE_EXISTS"),P||x.push(...m!=null?m:[]),s.push({file:c,errors:x.filter(Boolean)})}}),RV(e,o.length,n)||(o.forEach(c=>{s.push({file:c,errors:["TOO_MANY_FILES"]})}),o.splice(0)),{acceptedFiles:o,rejectedFiles:s}}function kV(e,t){let n=be(e);try{if("DataTransfer"in n){let r=new n.DataTransfer;t.forEach(i=>{r.items.add(i)}),e.files=r.files}}catch(r){}}function Bm(e,t){if(!e||e.getAttribute("type")==="file")return!1;let n=e.closest(NV);return n!=t&&ge(t,n)}function DV(e,t){let{state:n,send:r,prop:i,computed:a,scope:o,context:s}=e,l=!!i("disabled"),c=!!i("readOnly"),d=!!i("required"),g=i("allowDrop"),h=i("translations"),u=n.matches("dragging"),f=n.matches("focused")&&!l,m=s.get("acceptedFiles"),P=i("maxFiles");return{dragging:u,focused:f,disabled:l,readOnly:c,transforming:s.get("transforming"),maxFilesReached:m.length>=P,remainingFiles:Math.max(0,P-m.length),openFilePicker(){l||c||r({type:"OPEN"})},deleteFile(C,x=vr){l||c||r({type:"FILE.DELETE",file:C,itemType:x})},acceptedFiles:m,rejectedFiles:s.get("rejectedFiles"),setFiles(C){l||c||r({type:"FILES.SET",files:C,count:C.length})},clearRejectedFiles(){l||c||r({type:"REJECTED_FILES.CLEAR"})},clearFiles(){l||c||r({type:"FILES.CLEAR"})},getFileSize(C){return SV(C.size,i("locale"))},createFileUrl(C,x){let T=o.getWin(),b=T.URL.createObjectURL(C);return x(b),()=>T.URL.revokeObjectURL(b)},setClipboardFiles(C){var b;if(l||c)return!1;let T=Array.from((b=C==null?void 0:C.items)!=null?b:[]).reduce((y,S)=>{if(S.kind!=="file")return y;let A=S.getAsFile();return A?[...y,A]:y},[]);return T.length?(r({type:"FILE.SELECT",files:T}),!0):!1},getRootProps(){return t.element(v(p({},Ht.root.attrs),{dir:i("dir"),id:Wm(o),"data-disabled":E(l),"data-readonly":E(c),"data-dragging":E(u)}))},getDropzoneProps(C={}){return t.element(v(p({},Ht.dropzone.attrs),{dir:i("dir"),id:Km(o),tabIndex:l||c||C.disableClick?void 0:0,role:C.disableClick?"application":"button","aria-label":h.dropzone,"aria-disabled":l||c||void 0,"data-invalid":E(i("invalid")),"data-disabled":E(l),"data-readonly":E(c),"data-dragging":E(u),onKeyDown(x){if(l||c||x.defaultPrevented)return;let T=Q(x);ge(x.currentTarget,T)&&(Bm(T,x.currentTarget)||C.disableClick||x.key!=="Enter"&&x.key!==" "||r({type:"DROPZONE.CLICK",src:"keydown"}))},onClick(x){if(l||c||x.defaultPrevented||C.disableClick)return;let T=Q(x);ge(x.currentTarget,T)&&(Bm(T,x.currentTarget)||(x.currentTarget.localName==="label"&&x.preventDefault(),r({type:"DROPZONE.CLICK"})))},onDragOver(x){if(l||c||!g)return;x.preventDefault(),x.stopPropagation();try{x.dataTransfer.dropEffect="copy"}catch(y){}if(!$m(x))return;let b=x.dataTransfer.items.length;r({type:"DROPZONE.DRAG_OVER",count:b})},onDragLeave(x){l||c||g&&(ge(x.currentTarget,x.relatedTarget)||r({type:"DROPZONE.DRAG_LEAVE"}))},onDrop(x){l||c||(g&&(x.preventDefault(),x.stopPropagation()),!$m(x))||oV(x.dataTransfer.items,i("directory")).then(b=>{r({type:"DROPZONE.DROP",files:Ll(b)})})},onFocus(){l||c||r({type:"DROPZONE.FOCUS"})},onBlur(){l||c||r({type:"DROPZONE.BLUR"})}}))},getTriggerProps(){return t.button(v(p({},Ht.trigger.attrs),{dir:i("dir"),id:PV(o),disabled:l||c,"data-disabled":E(l),"data-readonly":E(c),"data-invalid":E(i("invalid")),type:"button",onClick(C){l||c||(ge(AV(o),C.currentTarget)&&C.stopPropagation(),r({type:"OPEN"}))}}))},getHiddenInputProps(){return t.input({id:_d(o),tabIndex:-1,disabled:l||c,type:"file",required:i("required"),capture:i("capture"),name:i("name"),accept:a("acceptAttr"),webkitdirectory:i("directory")?"":void 0,multiple:a("multiple")||i("maxFiles")>1,"aria-hidden":!0,onClick(C){C.stopPropagation(),C.currentTarget.value=""},onInput(C){if(l||c)return;let{files:x}=C.currentTarget;r({type:"FILE.SELECT",files:x?Array.from(x):[]})},style:dt})},getItemGroupProps(C={}){let{type:x=vr}=C;return t.element(v(p({},Ht.itemGroup.attrs),{dir:i("dir"),"data-disabled":E(l),"data-type":x}))},getItemProps(C){let{file:x,type:T=vr}=C;return t.element(v(p({},Ht.item.attrs),{dir:i("dir"),id:IV(o,$a(x)),"data-disabled":E(l),"data-type":T}))},getItemNameProps(C){let{file:x,type:T=vr}=C;return t.element(v(p({},Ht.itemName.attrs),{dir:i("dir"),id:TV(o,$a(x)),"data-disabled":E(l),"data-type":T}))},getItemSizeTextProps(C){let{file:x,type:T=vr}=C;return t.element(v(p({},Ht.itemSizeText.attrs),{dir:i("dir"),id:wV(o,$a(x)),"data-disabled":E(l),"data-type":T}))},getItemPreviewProps(C){let{file:x,type:T=vr}=C;return t.element(v(p({},Ht.itemPreview.attrs),{dir:i("dir"),id:OV(o,$a(x)),"data-disabled":E(l),"data-type":T}))},getItemPreviewImageProps(C){var S;let{file:x,url:T,type:b=vr}=C;if(!x.type.startsWith("image/"))throw new Error("Preview Image is only supported for image files");return t.img(v(p({},Ht.itemPreviewImage.attrs),{alt:(S=h.itemPreview)==null?void 0:S.call(h,x),src:T,"data-disabled":E(l),"data-type":b}))},getItemDeleteTriggerProps(C){var b;let{file:x,type:T=vr}=C;return t.button(v(p({},Ht.itemDeleteTrigger.attrs),{dir:i("dir"),id:VV(o,$a(x)),type:"button",disabled:l||c,"data-disabled":E(l),"data-readonly":E(c),"data-type":T,"aria-label":(b=h.deleteFile)==null?void 0:b.call(h,x),onClick(){l||c||r({type:"FILE.DELETE",file:x,itemType:T})}}))},getLabelProps(){return t.label(v(p({},Ht.label.attrs),{dir:i("dir"),id:CV(o),htmlFor:_d(o),"data-disabled":E(l),"data-required":E(d)}))},getClearTriggerProps(){return t.button(v(p({},Ht.clearTrigger.attrs),{dir:i("dir"),type:"button",disabled:l||c,hidden:m.length===0,"data-disabled":E(l),"data-readonly":E(c),onClick(C){C.defaultPrevented||l||c||r({type:"FILES.CLEAR"})}}))}}}function Gm(e){return String.fromCharCode(e+(e>25?39:97))}function MV(e){let t="",n;for(n=Math.abs(e);n>52;n=n/52|0)t=Gm(n%52)+t;return Gm(n%52)+t}function FV(e,t){let n=t.length;for(;n;)e=e*33^t.charCodeAt(--n);return e}function _V(e){return MV(FV(5381,e)>>>0)}function Ha(e){return _V(`${e.name}-${e.size}`)}function HV(e,t){var r,i;let n=t.acceptedFiles[0];return{id:e.id,acceptedCount:t.acceptedFiles.length,rejectedCount:t.rejectedFiles.length,firstAcceptedName:(r=n==null?void 0:n.name)!=null?r:null,firstAcceptedType:(i=n==null?void 0:n.type)!=null?i:null}}function BV(e,t){return{id:e.id,count:t.files.length}}function GV(e,t){return{id:e.id,count:t.files.length}}var iV,Ht,aV,Um,Md,Fd,oV,qm,Fm,Gi,_a,uV,gV,vV,bV,EV,SV,Wm,Km,_d,PV,CV,IV,TV,wV,OV,VV,$a,xV,_m,AV,vr,NV,LV,Kn,$V,UV,zm=ne(()=>{"use strict";_e();Ce();se();iV=j("file-upload").parts("root","dropzone","item","itemDeleteTrigger","itemGroup","itemName","itemPreview","itemPreviewImage","itemSizeText","label","trigger","clearTrigger"),Ht=iV.build(),aV=e=>typeof e.getAsEntry=="function"?e.getAsEntry():typeof e.webkitGetAsEntry=="function"?e.webkitGetAsEntry():null,Um=e=>e.isDirectory,Md=e=>e.isFile,Fd=(e,t)=>(Object.defineProperty(e,"relativePath",{value:t?`${t}/${e.name}`:e.name}),e),oV=(e,t)=>Promise.all(Array.from(e).filter(n=>n.kind==="file").map(n=>{let r=aV(n);if(!r)return null;if(Um(r)&&t)return qm(r.createReader(),`${r.name}`);if(Md(r)&&typeof n.getAsFile=="function"){let i=n.getAsFile();return Promise.resolve(i?Fd(i,""):null)}if(Md(r))return new Promise(i=>{r.file(a=>{i(Fd(a,""))})})}).filter(n=>n)),qm=(e,t="")=>new Promise(n=>{let r=[],i=()=>{e.readEntries(a=>{if(a.length===0){n(Promise.all(r).then(s=>s.flat()));return}let o=a.map(s=>{if(!s)return null;if(Um(s))return qm(s.createReader(),`${t}${s.name}`);if(Md(s))return new Promise(l=>{s.file(c=>{l(Fd(c,t))})})}).filter(s=>s);r.push(Promise.all(o)),i()})};i()});Fm=e=>sV(e)||lV(e);Gi=(e,t)=>e.name===t.name&&e.size===t.size&&e.type===t.type,_a=e=>e!=null;uV="3g2_video/3gpp2[3gp,3gpp_video/3gpp[3mf_model/3mf[7z_application/x-7z-compressed[aac_audio/aac[ac_application/pkix-attr-cert[adp_audio/adpcm[adts_audio/aac[ai_application/postscript[aml_application/automationml-aml+xml[amlx_application/automationml-amlx+zip[amr_audio/amr[apk_application/vnd.android.package-archive[apng_image/apng[appcache,manifest_text/cache-manifest[appinstaller_application/appinstaller[appx_application/appx[appxbundle_application/appxbundle[asc_application/pgp-keys[atom_application/atom+xml[atomcat_application/atomcat+xml[atomdeleted_application/atomdeleted+xml[atomsvc_application/atomsvc+xml[au,snd_audio/basic[avi_video/x-msvideo[avci_image/avci[avcs_image/avcs[avif_image/avif[aw_application/applixware[bdoc_application/bdoc[bin,bpk,buffer,deb,deploy,dist,distz,dll,dmg,dms,dump,elc,exe,img,iso,lrf,mar,msi,msm,msp,pkg,so_application/octet-stream[bmp,dib_image/bmp[btf,btif_image/prs.btif[bz2_application/x-bzip2[c_text/x-c[ccxml_application/ccxml+xml[cdfx_application/cdfx+xml[cdmia_application/cdmi-capability[cdmic_application/cdmi-container[cdmid_application/cdmi-domain[cdmio_application/cdmi-object[cdmiq_application/cdmi-queue[cer_application/pkix-cert[cgm_image/cgm[cjs_application/node[class_application/java-vm[coffee,litcoffee_text/coffeescript[conf,def,in,ini,list,log,text,txt_text/plain[cpp,cxx,cc_text/x-c++src[cpl_application/cpl+xml[cpt_application/mac-compactpro[crl_application/pkix-crl[css_text/css[csv_text/csv[cu_application/cu-seeme[cwl_application/cwl[cww_application/prs.cww[davmount_application/davmount+xml[dbk_application/docbook+xml[doc_application/msword[docx_application/vnd.openxmlformats-officedocument.wordprocessingml.document[dsc_text/prs.lines.tag[dssc_application/dssc+der[dtd_application/xml-dtd[dwd_application/atsc-dwd+xml[ear,jar,war_application/java-archive[ecma_application/ecmascript[emf_image/emf[eml,mime_message/rfc822[emma_application/emma+xml[emotionml_application/emotionml+xml[eot_application/vnd.ms-fontobject[eps,ps_application/postscript[epub_application/epub+zip[exi_application/exi[exp_application/express[exr_image/aces[ez_application/andrew-inset[fdf_application/fdf[fdt_application/fdt+xml[fits_image/fits[flac_audio/flac[flv_video/x-flv[g3_image/g3fax[geojson_application/geo+json[gif_image/gif[glb_model/gltf-binary[gltf_model/gltf+json[gml_application/gml+xml[go_text/x-go[gpx_application/gpx+xml[gz_application/gzip[h_text/x-h[h261_video/h261[h263_video/h263[h264_video/h264[heic_image/heic[heics_image/heic-sequence[heif_image/heif[heifs_image/heif-sequence[htm,html,shtml_text/html[ico_image/x-icon[icns_image/x-icns[ics,ifb_text/calendar[iges,igs_model/iges[ink,inkml_application/inkml+xml[ipa_application/octet-stream[java_text/x-java-source[jp2,jpg2_image/jp2[jpeg,jpe,jpg_image/jpeg[jpf,jpx_image/jpx[jpm,jpgm_image/jpm[jpgv_video/jpeg[jph_image/jph[js,mjs_text/javascript[json_application/json[json5_application/json5[jsonld_application/ld+json[jsx_text/jsx[jxl_image/jxl[jxr_image/jxr[ktx_image/ktx[ktx2_image/ktx2[less_text/less[m1v,m2v,mpe,mpeg,mpg_video/mpeg[m4a_audio/mp4[m4v_video/x-m4v[md,markdown_text/markdown[mid,midi,kar,rmi_audio/midi[mkv_video/x-matroska[mp2,mp2a,mp3,mpga,m3a,m2a_audio/mpeg[mp4,mp4v,mpg4_video/mp4[mp4a_audio/mp4[mp4s,m4p_application/mp4[odp_application/vnd.oasis.opendocument.presentation[oda_application/oda[ods_application/vnd.oasis.opendocument.spreadsheet[odt_application/vnd.oasis.opendocument.text[oga,ogg,opus,spx_audio/ogg[ogv_video/ogg[ogx_application/ogg[otf_font/otf[p12,pfx_application/x-pkcs12[pdf_application/pdf[pem_application/x-pem-file[php_text/x-php[png_image/png[ppt_application/vnd.ms-powerpoint[pptx_application/vnd.openxmlformats-officedocument.presentationml.presentation[pskcxml_application/pskc+xml[psd_image/vnd.adobe.photoshop[py_text/x-python[qt,mov_video/quicktime[rar_application/vnd.rar[rdf_application/rdf+xml[rtf_text/rtf[sass_text/x-sass[scss_text/x-scss[sgm,sgml_text/sgml[sh_application/x-sh[svg,svgz_image/svg+xml[swf_application/x-shockwave-flash[tar_application/x-tar[tif,tiff_image/tiff[toml_application/toml[ts_video/mp2t[tsx_text/tsx[tsv_text/tab-separated-values[ttc_font/collection[ttf_font/ttf[vtt_text/vtt[wasm_application/wasm[wav_audio/wav[weba_audio/webm[webm_video/webm[webmanifest_application/manifest+json[webp_image/webp[wma_audio/x-ms-wma[wmv_video/x-ms-wmv[woff_font/woff[woff2_font/woff2[xls_application/vnd.ms-excel[xlsx_application/vnd.openxmlformats-officedocument.spreadsheetml.sheet[xml_application/xml[xz_application/x-xz[yaml,yml_text/yaml[zip_application/zip",gV=new Map(uV.split("[").flatMap(e=>{let[t,n]=e.split("_");return t.split(",").map(r=>[r,n])}));vV=mV(Intl.NumberFormat);bV=["","kilo","mega","giga","tera"],EV=["","kilo","mega","giga","tera","peta"],SV=(e,t="en-US",n={})=>{if(Number.isNaN(e))return"";if(e===0)return"0 B";let{unitSystem:r="decimal",precision:i=3,unit:a="byte",unitDisplay:o="short"}=n,s=r==="binary"?1024:1e3,l=a==="bit"?bV:EV,c=e<0,g=Math.abs(e),h=0;for(;g>=s&&h{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`file:${e.id}`},Km=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.dropzone)!=null?n:`file:${e.id}:dropzone`},_d=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.hiddenInput)!=null?n:`file:${e.id}:input`},PV=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.trigger)!=null?n:`file:${e.id}:trigger`},CV=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`file:${e.id}:label`},IV=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.item)==null?void 0:r.call(n,t))!=null?i:`file:${e.id}:item:${t}`},TV=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemName)==null?void 0:r.call(n,t))!=null?i:`file:${e.id}:item-name:${t}`},wV=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemSizeText)==null?void 0:r.call(n,t))!=null?i:`file:${e.id}:item-size:${t}`},OV=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemPreview)==null?void 0:r.call(n,t))!=null?i:`file:${e.id}:item-preview:${t}`},VV=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemDeleteTrigger)==null?void 0:r.call(n,t))!=null?i:`file:${e.id}:item-delete:${t}`},$a=e=>og(`${e.name}-${e.size}`),xV=e=>e.getById(Wm(e)),_m=e=>e.getById(_d(e)),AV=e=>e.getById(Km(e));vr="accepted",NV="button, a[href], input:not([type='file']), select, textarea, [tabindex], [contenteditable]";LV=te({props({props:e}){return v(p({minFileSize:0,maxFileSize:Number.POSITIVE_INFINITY,maxFiles:1,allowDrop:!0,preventDocumentDrop:!0,defaultAcceptedFiles:[]},e),{translations:p({dropzone:"dropzone",itemPreview:t=>`preview of ${t.name}`,deleteFile:t=>`delete file ${t.name}`},e.translations)})},initialState(){return"idle"},context({prop:e,bindable:t,getContext:n}){return{acceptedFiles:t(()=>({defaultValue:e("defaultAcceptedFiles"),value:e("acceptedFiles"),isEqual:(r,i)=>r.length===(i==null?void 0:i.length)&&r.every((a,o)=>Gi(a,i[o])),hash(r){return r.map(i=>`${i.name}-${i.size}`).join(",")},onChange(r){var a,o;let i=n();(a=e("onFileAccept"))==null||a({files:r}),(o=e("onFileChange"))==null||o({acceptedFiles:r,rejectedFiles:i.get("rejectedFiles")})}})),rejectedFiles:t(()=>({defaultValue:[],isEqual:(r,i)=>r.length===(i==null?void 0:i.length)&&r.every((a,o)=>Gi(a.file,i[o].file)),onChange(r){var a,o;let i=n();(a=e("onFileReject"))==null||a({files:r}),(o=e("onFileChange"))==null||o({acceptedFiles:i.get("acceptedFiles"),rejectedFiles:r})}})),transforming:t(()=>({defaultValue:!1}))}},computed:{acceptAttr:({prop:e})=>cV(e("accept")),multiple:({prop:e})=>e("maxFiles")>1},watch({track:e,context:t,action:n}){e([()=>t.hash("acceptedFiles")],()=>{n(["syncInputElement"])})},on:{"FILES.SET":{actions:["setFiles"]},"FILE.SELECT":{actions:["setEventFiles"]},"FILE.DELETE":{actions:["removeFile"]},"FILES.CLEAR":{actions:["clearFiles"]},"REJECTED_FILES.CLEAR":{actions:["clearRejectedFiles"]}},effects:["preventDocumentDrop"],states:{idle:{on:{OPEN:{actions:["openFilePicker"]},"DROPZONE.CLICK":{actions:["openFilePicker"]},"DROPZONE.FOCUS":{target:"focused"},"DROPZONE.DRAG_OVER":{target:"dragging"}}},focused:{on:{"DROPZONE.BLUR":{target:"idle"},OPEN:{actions:["openFilePicker"]},"DROPZONE.CLICK":{actions:["openFilePicker"]},"DROPZONE.DRAG_OVER":{target:"dragging"}}},dragging:{on:{"DROPZONE.DROP":{target:"idle",actions:["setEventFiles"]},"DROPZONE.DRAG_LEAVE":{target:"idle"}}}},implementations:{effects:{preventDocumentDrop({prop:e,scope:t}){if(!e("preventDocumentDrop")||!e("allowDrop")||e("disabled"))return;let n=t.getDoc(),r=a=>{a==null||a.preventDefault()},i=a=>{ge(xV(t),Q(a))||a.preventDefault()};return vt(re(n,"dragover",r,!1),re(n,"drop",i,!1))}},actions:{syncInputElement({scope:e,context:t}){queueMicrotask(()=>{let n=_m(e);if(!n)return;kV(n,t.get("acceptedFiles"));let r=e.getWin();n.dispatchEvent(new r.Event("change",{bubbles:!0}))})},openFilePicker({scope:e}){$(()=>{var t;(t=_m(e))==null||t.click()})},setFiles(e){let{computed:t,context:n,event:r}=e,{acceptedFiles:i,rejectedFiles:a}=Hm(e,r.files);n.set("acceptedFiles",t("multiple")?i:i.length>0?[i[0]]:[]),n.set("rejectedFiles",a)},setEventFiles(e){let{computed:t,context:n,event:r,prop:i}=e,a=n.get("acceptedFiles"),o=n.get("rejectedFiles"),{acceptedFiles:s,rejectedFiles:l}=Hm(e,r.files,a,o),c=g=>{if(t("multiple")){n.set("acceptedFiles",h=>[...h,...g]),n.set("rejectedFiles",l);return}if(g.length){n.set("acceptedFiles",[g[0]]),n.set("rejectedFiles",l);return}l.length&&(n.set("acceptedFiles",n.get("acceptedFiles")),n.set("rejectedFiles",l))},d=i("transformFiles");d?(n.set("transforming",!0),d(s).then(c).catch(g=>{Ut(`[zag-js/file-upload] error transforming files -${g}`)}).finally(()=>{n.set("transforming",!1)})):c(s)},removeFile({context:e,event:t}){if(t.itemType==="rejected"){let n=e.get("rejectedFiles").filter(r=>!Gi(r.file,t.file));e.set("rejectedFiles",n)}else{let n=e.get("acceptedFiles").filter(r=>!Gi(r,t.file));e.set("acceptedFiles",n)}},clearRejectedFiles({context:e}){e.set("rejectedFiles",[])},clearFiles({context:e}){e.set("acceptedFiles",[]),e.set("rejectedFiles",[])}}}}),Kn="accepted";$V=class extends X{constructor(){super(...arguments);Z(this,"previewCleanup",new Map);Z(this,"sentinelSnapshot","")}initMachine(t){return new Y(LV,t)}initApi(){return this.zagConnect(DV)}cleanupPreviews(){for(let t of this.previewCleanup.values())t();this.previewCleanup.clear()}render(){var l,c,d;let t=(l=this.el.querySelector('[data-scope="file-upload"][data-part="root"]'))!=null?l:this.el;this.spreadProps(t,this.api.getRootProps());let n=this.el.querySelector('[data-scope="file-upload"][data-part="label"]');n&&this.spreadProps(n,this.api.getLabelProps());let r=this.el.querySelector('[data-scope="file-upload"][data-part="dropzone"]');r&&this.spreadProps(r,this.api.getDropzoneProps());let i=this.el.querySelector('[data-scope="file-upload"][data-part="trigger"]');i&&this.spreadProps(i,this.api.getTriggerProps());let a=(c=this.el.querySelector('[data-scope="file-upload"][data-part="hidden-input"]'))!=null?c:t.querySelector('input[type="file"]');a&&this.spreadProps(a,this.api.getHiddenInputProps());let o=this.el.querySelector('ul[data-scope="file-upload"][data-part="item-group"][data-file-type="accepted"]');o&&(this.spreadProps(o,this.api.getItemGroupProps({type:Kn})),this.syncAcceptedItems(o));let s=this.el.querySelectorAll('[data-scope="file-upload"][data-part="item"]');for(let g of Array.from(s)){let h=this.getAcceptedFileForElement(g);if(!h)continue;this.spreadProps(g,this.api.getItemProps({file:h,type:Kn}));let u=g.querySelector('[data-scope="file-upload"][data-part="item-name"]');u&&this.spreadProps(u,this.api.getItemNameProps({file:h,type:Kn}));let f=g.querySelector('[data-scope="file-upload"][data-part="item-preview"]');f&&this.spreadProps(f,this.api.getItemPreviewProps({file:h,type:Kn}));let m=g.querySelector('[data-scope="file-upload"][data-part="item-preview-image"]');if(m&&h.type.startsWith("image/")){let x=Ha(h);if(m.dataset.corexPreviewKey!==x||!m.getAttribute("src")){let b=this.previewCleanup.get(m);b==null||b(),m.removeAttribute("src");let y=this.api.createFileUrl(h,S=>{this.spreadProps(m,this.api.getItemPreviewImageProps({file:h,type:Kn,url:S}))});this.previewCleanup.set(m,y),m.dataset.corexPreviewKey=x}else{let b=(d=m.getAttribute("src"))!=null?d:"";b&&this.spreadProps(m,this.api.getItemPreviewImageProps({file:h,type:Kn,url:b}))}}let P=g.querySelector('[data-scope="file-upload"][data-part="item-size-text"]');P&&(this.spreadProps(P,this.api.getItemSizeTextProps({file:h,type:Kn})),P.textContent=this.api.getFileSize(h));let C=g.querySelector('[data-scope="file-upload"][data-part="item-delete-trigger"]');C&&this.spreadProps(C,this.api.getItemDeleteTriggerProps({file:h,type:Kn}))}this.touchSentinel()}touchSentinel(){let t=this.el.querySelector('[data-part="hidden-input-sentinel"]');if(!t)return;let n=this.api.acceptedFiles.map(r=>Ha(r)).join(",");n!==this.sentinelSnapshot&&(this.sentinelSnapshot=n,t.dispatchEvent(new Event("input",{bubbles:!0})))}syncAcceptedItems(t){this.syncItemList(t,this.api.acceptedFiles)}syncItemList(t,n){let r=n.map(o=>Ha(o)),i=new Set(r),a=new Map;t.querySelectorAll("li[data-corex-file-item]").forEach(o=>{let s=o.dataset.fileKey;s&&a.set(s,o)});for(let o of[...a.keys()])if(!i.has(o)){let s=a.get(o);if(!s)continue;s.querySelectorAll('img[data-part="item-preview-image"]').forEach(l=>{let c=this.previewCleanup.get(l);c&&(c(),this.previewCleanup.delete(l))}),s.remove(),a.delete(o)}for(let o of n){let s=Ha(o),l=a.get(s);l||(l=this.buildItemLi(o,s),a.set(s,l)),t.appendChild(l)}}buildItemLi(t,n){let r=this.doc,i=r.createElement("li");i.setAttribute("data-scope","file-upload"),i.setAttribute("data-part","item"),i.setAttribute("data-corex-file-item",""),i.dataset.fileKey=n,i.dataset.fileType=Kn;let a=r.createElement("div");if(a.setAttribute("data-scope","file-upload"),a.setAttribute("data-part","item-lead"),t.type.startsWith("image/")){let c=r.createElement("div");c.setAttribute("data-scope","file-upload"),c.setAttribute("data-part","item-preview");let d=r.createElement("img");d.setAttribute("data-scope","file-upload"),d.setAttribute("data-part","item-preview-image"),c.appendChild(d),a.appendChild(c)}i.appendChild(a);let o=r.createElement("div");o.setAttribute("data-scope","file-upload"),o.setAttribute("data-part","item-name"),o.textContent=t.name,i.appendChild(o);let s=r.createElement("div");s.setAttribute("data-scope","file-upload"),s.setAttribute("data-part","item-size-text"),i.appendChild(s);let l=r.createElement("button");return l.setAttribute("data-scope","file-upload"),l.setAttribute("data-part","item-delete-trigger"),l.type="button",this.fillDeleteTriggerContent(l),i.appendChild(l),i}fillDeleteTriggerContent(t){let n=this.el.querySelector("[data-file-upload-item-close-template]");if(!(n!=null&&n.content))return;t.replaceChildren();let r=n.content.cloneNode(!0);for(let i of Array.from(r.childNodes))i.nodeType===1&&t.appendChild(i)}getAcceptedFileForElement(t){let n=t.dataset.fileKey;if(n)return this.api.acceptedFiles.find(r=>Ha(r)===n)}};UV={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>J(this.liveSocket),r=q(e,"maxFiles"),i=q(e,"maxFileSize"),a=q(e,"minFileSize"),o=e.dataset.allowDrop,s=e.dataset.preventDocumentDrop,l=V(e,"translationDropzone"),c=new $V(e,{id:e.id,disabled:I(e,"disabled"),invalid:I(e,"invalid"),readOnly:I(e,"readOnly"),required:I(e,"required"),name:V(e,"name"),dir:U(e),allowDrop:o===void 0?!0:o!=="false",preventDocumentDrop:s===void 0?!0:s!=="false",maxFiles:r!=null?r:1,maxFileSize:i!=null?i:Number.POSITIVE_INFINITY,minFileSize:a!=null?a:0,accept:V(e,"accept"),directory:I(e,"directory"),translations:l?{dropzone:l}:void 0,onFileChange:h=>{K({el:e,canPushServer:n(),pushEvent:t,payload:HV(e,h),serverEventName:V(e,"onFileChange"),clientEventName:V(e,"onFileChangeClient")})},onFileAccept:h=>{K({el:e,canPushServer:n(),pushEvent:t,payload:BV(e,h),serverEventName:V(e,"onFileAccept"),clientEventName:V(e,"onFileAcceptClient")})},onFileReject:h=>{K({el:e,canPushServer:n(),pushEvent:t,payload:GV(e,h),serverEventName:V(e,"onFileReject"),clientEventName:V(e,"onFileRejectClient")})}});c.init(),this.fileUpload=c,this.handlers=[];let d=de(e);this.domRegistry=d,d.add("corex:file-upload:clear-files",()=>{c.api.clearFiles()}),d.add("corex:file-upload:clear-rejected",()=>{c.api.clearRejectedFiles()}),d.add("corex:file-upload:open",()=>{c.api.openFilePicker()});let g=ce(this);this.handleRegistry=g,g.add("file_upload_clear_files",h=>{B(e.id,G(h))&&c.api.clearFiles()}),g.add("file_upload_clear_rejected",h=>{B(e.id,G(h))&&c.api.clearRejectedFiles()}),g.add("file_upload_open",h=>{B(e.id,G(h))&&c.api.openFilePicker()})},updated(){var e,t,n,r;(r=this.fileUpload)==null||r.updateProps({id:this.el.id,disabled:I(this.el,"disabled"),invalid:I(this.el,"invalid"),readOnly:I(this.el,"readOnly"),required:I(this.el,"required"),name:V(this.el,"name"),dir:U(this.el),allowDrop:this.el.dataset.allowDrop===void 0?!0:this.el.dataset.allowDrop!=="false",preventDocumentDrop:this.el.dataset.preventDocumentDrop===void 0?!0:this.el.dataset.preventDocumentDrop!=="false",maxFiles:(e=q(this.el,"maxFiles"))!=null?e:1,maxFileSize:(t=q(this.el,"maxFileSize"))!=null?t:Number.POSITIVE_INFINITY,minFileSize:(n=q(this.el,"minFileSize"))!=null?n:0,accept:V(this.el,"accept"),directory:I(this.el,"directory")})},destroyed(){var e,t,n,r;if(this.handlers)for(let i of this.handlers)this.removeHandleEvent(i);(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.fileUpload)==null||n.cleanupPreviews(),(r=this.fileUpload)==null||r.destroy()}}});var hv={};fe(hv,{FloatingPanel:()=>hx});function XV(e){if(!$d.has(e)){let t=e.ownerDocument.defaultView||window;$d.set(e,t.getComputedStyle(e))}return $d.get(e)}function cv(e,t={}){return Nn(ZV(e,t))}function ZV(e,t={}){let{excludeScrollbar:n=!1,excludeBorders:r=!1}=t,{x:i,y:a,width:o,height:s}=e.getBoundingClientRect(),l={x:i,y:a,width:o,height:s},c=XV(e),{borderLeftWidth:d,borderTopWidth:g,borderRightWidth:h,borderBottomWidth:u}=c,f=Zm(d,h),m=Zm(g,u);if(r&&(l.width-=f,l.height-=m,l.x+=Hd(d),l.y+=Hd(g)),n){let P=e.offsetWidth-e.clientWidth-f,C=e.offsetHeight-e.clientHeight-m;l.width-=P,l.height-=C}return l}function JV(e,t={}){return Nn(QV(e,t))}function QV(e,t){let{excludeScrollbar:n=!1}=t,{innerWidth:r,innerHeight:i,document:a,visualViewport:o}=e,s=(o==null?void 0:o.width)||r,l=(o==null?void 0:o.height)||i,c={x:0,y:0,width:s,height:l};if(n){let d=r-a.documentElement.clientWidth,g=i-a.documentElement.clientHeight;c.width-=d,c.height-=g}return c}function ev(e,t){let{minX:n,minY:r,maxX:i,maxY:a,midX:o,midY:s}=e,l=t.includes("w")?n:t.includes("e")?i:o,c=t.includes("n")?r:t.includes("s")?a:s;return{x:l,y:c}}function tx(e){return ex[e]}function nx(e,t,n,r){let{scalingOriginMode:i,lockAspectRatio:a}=r,o=ev(e,n),s=tx(n),l=ev(e,s);i==="center"&&(t={x:t.x*2,y:t.y*2});let c={x:o.x+t.x,y:o.y+t.y},d={x:Jm[n].x*2-1,y:Jm[n].y*2-1},g={width:c.x-l.x,height:c.y-l.y},h=d.x*g.width/e.width,u=d.y*g.height/e.height,f=Wi(h)>Wi(u)?h:u,m=a?{x:f,y:f}:{x:o.x===l.x?1:h,y:o.y===l.y?1:u};switch(o.y===l.y?m.y=Wi(m.y):el(m.y)!==el(u)&&(m.y*=-1),o.x===l.x?m.x=Wi(m.x):el(m.x)!==el(h)&&(m.x*=-1),i){case"extent":return tv(e,Ym.scale(m.x,m.y,l),!1);case"center":return tv(e,Ym.scale(m.x,m.y,{x:e.midX,y:e.midY}),!1)}}function rx(e,t,n=!0){return n?{x:Qm(t.x,e.x),y:Qm(t.y,e.y),width:Wi(t.x-e.x),height:Wi(t.y-e.y)}:{x:e.x,y:e.y,width:t.x-e.x,height:t.y-e.y}}function tv(e,t,n=!0){let r=t.applyTo({x:e.minX,y:e.minY}),i=t.applyTo({x:e.maxX,y:e.maxY});return rx(r,i,n)}function ax(e){switch(e){case"n":return{cursor:"n-resize",width:"100%",top:0,left:"50%",translate:"-50%"};case"e":return{cursor:"e-resize",height:"100%",right:0,top:"50%",translate:"0 -50%"};case"s":return{cursor:"s-resize",width:"100%",bottom:0,left:"50%",translate:"-50%"};case"w":return{cursor:"w-resize",height:"100%",left:0,top:"50%",translate:"0 -50%"};case"se":return{cursor:"se-resize",bottom:0,right:0};case"sw":return{cursor:"sw-resize",bottom:0,left:0};case"ne":return{cursor:"ne-resize",top:0,right:0};case"nw":return{cursor:"nw-resize",top:0,left:0};default:throw new Error(`Invalid axis: ${e}`)}}function ox(e,t){let{state:n,send:r,scope:i,prop:a,computed:o,context:s}=e,l=n.hasTag("open"),c=n.matches("open.dragging"),d=n.matches("open.resizing"),g=s.get("isTopmost"),h=s.get("size"),u=s.get("position"),f=o("isMaximized"),m=o("isMinimized"),P=o("isStaged"),C=o("canResize"),x=o("canDrag");return{open:l,resizable:a("resizable"),draggable:a("draggable"),setOpen(T){n.hasTag("open")!==T&&r({type:T?"OPEN":"CLOSE"})},dragging:c,resizing:d,position:u,size:h,setPosition(T){r({type:"SET_POSITION",position:T})},setSize(T){r({type:"SET_SIZE",size:T})},minimize(){r({type:"MINIMIZE"})},maximize(){r({type:"MAXIMIZE"})},restore(){r({type:"RESTORE"})},getTriggerProps(){return t.button(v(p({},Jt.trigger.attrs),{dir:a("dir"),type:"button",disabled:a("disabled"),id:dv(i),"data-state":l?"open":"closed","data-dragging":E(c),"aria-controls":Bd(i),onClick(T){if(T.defaultPrevented||a("disabled"))return;let b=n.hasTag("open");r({type:b?"CLOSE":"OPEN",src:"trigger"})}}))},getPositionerProps(){return t.element(v(p({},Jt.positioner.attrs),{dir:a("dir"),id:uv(i),style:{"--width":Re(h==null?void 0:h.width),"--height":Re(h==null?void 0:h.height),"--x":Re(u==null?void 0:u.x),"--y":Re(u==null?void 0:u.y),position:a("strategy"),top:"var(--y)",left:"var(--x)"}}))},getContentProps(){return t.element(v(p({},Jt.content.attrs),{dir:a("dir"),role:"dialog",tabIndex:0,hidden:!l,id:Bd(i),"aria-labelledby":nv(i),"data-state":l?"open":"closed","data-dragging":E(c),"data-topmost":E(g),"data-behind":E(!g),"data-minimized":E(m),"data-maximized":E(f),"data-staged":E(P),style:{width:"var(--width)",height:"var(--height)",overflow:m?"hidden":void 0},onFocus(){r({type:"CONTENT_FOCUS"})},onKeyDown(T){if(T.defaultPrevented)return;if(T.key==="Escape"&&g){r({type:"ESCAPE"});return}if(T.currentTarget!==Q(T))return;let b=xn(T)*a("gridSize"),S={ArrowLeft(){r({type:"MOVE",direction:"left",step:b})},ArrowRight(){r({type:"MOVE",direction:"right",step:b})},ArrowUp(){r({type:"MOVE",direction:"up",step:b})},ArrowDown(){r({type:"MOVE",direction:"down",step:b})}}[ve(T,{dir:a("dir")})];S&&(T.preventDefault(),S(T))}}))},getCloseTriggerProps(){return t.button(v(p({},Jt.closeTrigger.attrs),{dir:a("dir"),disabled:a("disabled"),"aria-label":"Close Window",type:"button",onClick(T){T.defaultPrevented||r({type:"CLOSE"})}}))},getStageTriggerProps(T){if(!ov.has(T.stage))throw new Error(`[zag-js] Invalid stage: ${T.stage}. Must be one of: ${Array.from(ov).join(", ")}`);let b=a("translations"),y=Me(T.stage,{minimized:()=>({"aria-label":b.minimize,hidden:P}),maximized:()=>({"aria-label":b.maximize,hidden:P}),default:()=>({"aria-label":b.restore,hidden:!P})});return t.button(v(p(v(p({},Jt.stageTrigger.attrs),{dir:a("dir"),disabled:a("disabled"),"data-stage":T.stage}),y),{type:"button",onClick(S){if(S.defaultPrevented||!a("resizable"))return;let A=Me(T.stage,{minimized:()=>"MINIMIZE",maximized:()=>"MAXIMIZE",default:()=>"RESTORE"});r({type:A.toUpperCase()})}}))},getResizeTriggerProps(T){return t.element(v(p({},Jt.resizeTrigger.attrs),{dir:a("dir"),"data-disabled":E(!C),"data-axis":T.axis,onPointerDown(b){C&&Ee(b)&&(b.currentTarget.setPointerCapture(b.pointerId),b.stopPropagation(),r({type:"RESIZE_START",axis:T.axis,position:{x:b.clientX,y:b.clientY}}))},onPointerUp(b){if(!C)return;let y=b.currentTarget;y.hasPointerCapture(b.pointerId)&&y.releasePointerCapture(b.pointerId)},style:p({position:"absolute",touchAction:"none"},ax(T.axis))}))},getDragTriggerProps(){return t.element(v(p({},Jt.dragTrigger.attrs),{dir:a("dir"),"data-disabled":E(!x),onPointerDown(T){if(!x||!Ee(T))return;let b=Q(T);b!=null&&b.closest("button")||b!=null&&b.closest("[data-no-drag]")||(T.currentTarget.setPointerCapture(T.pointerId),T.stopPropagation(),r({type:"DRAG_START",pointerId:T.pointerId,position:{x:T.clientX,y:T.clientY}}))},onPointerUp(T){if(!x)return;let b=T.currentTarget;b.hasPointerCapture(T.pointerId)&&b.releasePointerCapture(T.pointerId)},onDoubleClick(T){T.defaultPrevented||a("resizable")&&r({type:P?"RESTORE":"MAXIMIZE"})},style:{WebkitUserSelect:"none",userSelect:"none",touchAction:"none",cursor:"move"}}))},getControlProps(){return t.element(v(p({},Jt.control.attrs),{dir:a("dir"),"data-disabled":E(a("disabled")),"data-stage":s.get("stage"),"data-minimized":E(m),"data-maximized":E(f),"data-staged":E(P)}))},getTitleProps(){return t.element(v(p({},Jt.title.attrs),{dir:a("dir"),id:nv(i)}))},getHeaderProps(){return t.element(v(p({},Jt.header.attrs),{dir:a("dir"),id:gv(i),"data-dragging":E(c),"data-topmost":E(g),"data-behind":E(!g),"data-minimized":E(m),"data-maximized":E(f),"data-staged":E(P)}))},getBodyProps(){return t.element(v(p({},Jt.body.attrs),{dir:a("dir"),"data-dragging":E(c),"data-minimized":E(m),"data-maximized":E(f),"data-staged":E(P),hidden:m}))}}}function tl(e){if(e)try{let t=JSON.parse(e);if(typeof t.width=="number"&&typeof t.height=="number")return{width:t.width,height:t.height}}catch(t){}}function lv(e){if(e)try{let t=JSON.parse(e);if(typeof t.x=="number"&&typeof t.y=="number")return{x:t.x,y:t.y}}catch(t){}}var qV,Jt,Ym,Xm,Ui,WV,KV,qi,jV,zV,YV,$d,Hd,Zm,Jm,ex,el,Wi,Qm,dv,uv,Bd,nv,gv,rv,iv,av,ix,yn,ov,Ba,sv,sx,lx,cx,dx,ux,gx,hx,pv=ne(()=>{"use strict";Xo();Nt();_e();Ce();se();qV=j("floating-panel").parts("trigger","positioner","content","header","body","title","resizeTrigger","dragTrigger","stageTrigger","closeTrigger","control"),Jt=qV.build(),Ym=class Ue{constructor([t,n,r,i,a,o]=[0,0,0,0,0,0]){on(this,"m00"),on(this,"m01"),on(this,"m02"),on(this,"m10"),on(this,"m11"),on(this,"m12"),on(this,"rotate",(...s)=>this.prepend(Ue.rotate(...s))),on(this,"scale",(...s)=>this.prepend(Ue.scale(...s))),on(this,"translate",(...s)=>this.prepend(Ue.translate(...s))),this.m00=t,this.m01=n,this.m02=r,this.m10=i,this.m11=a,this.m12=o}applyTo(t){let{x:n,y:r}=t,{m00:i,m01:a,m02:o,m10:s,m11:l,m12:c}=this;return{x:i*n+a*r+o,y:s*n+l*r+c}}prepend(t){return new Ue([this.m00*t.m00+this.m01*t.m10,this.m00*t.m01+this.m01*t.m11,this.m00*t.m02+this.m01*t.m12+this.m02,this.m10*t.m00+this.m11*t.m10,this.m10*t.m01+this.m11*t.m11,this.m10*t.m02+this.m11*t.m12+this.m12])}append(t){return new Ue([t.m00*this.m00+t.m01*this.m10,t.m00*this.m01+t.m01*this.m11,t.m00*this.m02+t.m01*this.m12+t.m02,t.m10*this.m00+t.m11*this.m10,t.m10*this.m01+t.m11*this.m11,t.m10*this.m02+t.m11*this.m12+t.m12])}get determinant(){return this.m00*this.m11-this.m01*this.m10}get isInvertible(){let t=this.determinant;return isFinite(t)&&isFinite(this.m02)&&isFinite(this.m12)&&t!==0}invert(){let t=this.determinant;return new Ue([this.m11/t,-this.m01/t,(this.m01*this.m12-this.m11*this.m02)/t,-this.m10/t,this.m00/t,(this.m10*this.m02-this.m00*this.m12)/t])}get array(){return[this.m00,this.m01,this.m02,this.m10,this.m11,this.m12,0,0,1]}get float32Array(){return new Float32Array(this.array)}static get identity(){return new Ue([1,0,0,0,1,0])}static rotate(t,n){let r=new Ue([Math.cos(t),-Math.sin(t),0,Math.sin(t),Math.cos(t),0]);return n&&(n.x!==0||n.y!==0)?Ue.multiply(Ue.translate(n.x,n.y),r,Ue.translate(-n.x,-n.y)):r}static scale(t,n=t,r={x:0,y:0}){let i=new Ue([t,0,0,0,n,0]);return r.x!==0||r.y!==0?Ue.multiply(Ue.translate(r.x,r.y),i,Ue.translate(-r.x,-r.y)):i}static translate(t,n){return new Ue([1,0,t,0,1,n])}static multiply(...[t,...n]){return t?n.reduce((r,i)=>r.prepend(i),t):Ue.identity}get a(){return this.m00}get b(){return this.m10}get c(){return this.m01}get d(){return this.m11}get tx(){return this.m02}get ty(){return this.m12}get scaleComponents(){return{x:this.a,y:this.d}}get translationComponents(){return{x:this.tx,y:this.ty}}get skewComponents(){return{x:this.c,y:this.b}}toString(){return`matrix(${this.a}, ${this.b}, ${this.c}, ${this.d}, ${this.tx}, ${this.ty})`}},Xm=(e,t,n)=>Math.min(Math.max(e,t),n),Ui=(e,t,n)=>{let r=Xm(e.x,n.x,n.x+n.width-t.width),i=Xm(e.y,n.y,n.y+n.height-t.height);return{x:r,y:i}},WV={width:0,height:0},KV={width:1/0,height:1/0},qi=(e,t=WV,n=KV)=>({width:Math.min(Math.max(e.width,t.width),n.width),height:Math.min(Math.max(e.height,t.height),n.height)}),jV=(e,t)=>{let n=Math.max(t.x,Math.min(e.x,t.x+t.width-e.width)),r=Math.max(t.y,Math.min(e.y,t.y+t.height-e.height));return{x:n,y:r,width:Math.min(e.width,t.width),height:Math.min(e.height,t.height)}},zV=(e,t)=>e.width===(t==null?void 0:t.width)&&e.height===(t==null?void 0:t.height),YV=(e,t)=>e.x===(t==null?void 0:t.x)&&e.y===(t==null?void 0:t.y),$d=new WeakMap;Hd=e=>parseFloat(e.replace("px","")),Zm=(...e)=>e.reduce((t,n)=>t+(n?Hd(n):0),0);Jm={n:{x:.5,y:0},ne:{x:1,y:0},e:{x:1,y:.5},se:{x:1,y:1},s:{x:.5,y:1},sw:{x:0,y:1},w:{x:0,y:.5},nw:{x:0,y:0}},ex={n:"s",ne:"sw",e:"w",se:"nw",s:"n",sw:"ne",w:"e",nw:"se"},{sign:el,abs:Wi,min:Qm}=Math;dv=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.trigger)!=null?n:`float:${e.id}:trigger`},uv=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.positioner)!=null?n:`float:${e.id}:positioner`},Bd=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.content)!=null?n:`float:${e.id}:content`},nv=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.title)!=null?n:`float:${e.id}:title`},gv=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.header)!=null?n:`float:${e.id}:header`},rv=e=>e.getById(dv(e)),iv=e=>e.getById(uv(e)),av=e=>e.getById(Bd(e)),ix=e=>e.getById(gv(e)),yn=(e,t,n)=>{let r;return ye(t)?r=cv(t):r=JV(e.getWin()),n&&(r=Nn({x:-r.width,y:r.minY,width:r.width*3,height:r.height*2})),Jn(r,["x","y","width","height"])};ov=new Set(["minimized","maximized","default"]);Ba=Go({stack:[],count(){return this.stack.length},add(e){this.stack.includes(e)||this.stack.push(e)},remove(e){let t=this.stack.indexOf(e);t<0||this.stack.splice(t,1)},bringToFront(e){this.remove(e),this.add(e)},isTopmost(e){return this.stack[this.stack.length-1]===e},indexOf(e){return this.stack.indexOf(e)}}),{not:sv,and:sx}=Te(),lx={minimize:"Minimize window",maximize:"Maximize window",restore:"Restore window"},cx=Object.freeze({width:320,height:240}),dx=Object.freeze({x:300,y:100}),ux=te({props({props:e}){return rn(e,["id"],"floating-panel"),v(p({strategy:"fixed",gridSize:1,allowOverflow:!0,resizable:!0,draggable:!0},e),{translations:p(p({},lx),e.translations)})},initialState({prop:e}){var n;return((n=e("open"))!=null?n:e("defaultOpen"))?"open":"closed"},context({prop:e,bindable:t}){return{size:t(()=>{var n;return{defaultValue:(n=e("defaultSize"))!=null?n:cx,value:e("size"),isEqual:zV,hash(r){return`W:${r.width} H:${r.height}`},onChange(r){var i;(i=e("onSizeChange"))==null||i({size:r})}}}),position:t(()=>{var n;return{defaultValue:(n=e("defaultPosition"))!=null?n:dx,value:e("position"),isEqual:YV,hash(r){return`X:${r.x} Y:${r.y}`},onChange(r){var i;(i=e("onPositionChange"))==null||i({position:r})}}}),stage:t(()=>({defaultValue:"default",onChange(n){var r;(r=e("onStageChange"))==null||r({stage:n})}})),lastEventPosition:t(()=>({defaultValue:null})),prevPosition:t(()=>({defaultValue:null})),prevSize:t(()=>({defaultValue:null})),isTopmost:t(()=>({defaultValue:void 0}))}},computed:{isMaximized:({context:e})=>e.get("stage")==="maximized",isMinimized:({context:e})=>e.get("stage")==="minimized",isStaged:({context:e})=>e.get("stage")!=="default",hasSpecifiedPosition:({prop:e})=>e("defaultPosition")!=null||e("position")!=null,canResize:({context:e,prop:t})=>t("resizable")&&!t("disabled")&&e.get("stage")==="default",canDrag:({prop:e,computed:t})=>e("draggable")&&!e("disabled")&&!t("isMaximized")},watch({track:e,context:t,action:n,prop:r}){e([()=>t.hash("position")],()=>{n(["setPositionStyle"])}),e([()=>t.hash("size")],()=>{n(["setSizeStyle"])}),e([()=>r("open")],()=>{n(["toggleVisibility"])})},effects:["trackPanelStack"],on:{CONTENT_FOCUS:{actions:["bringToFrontOfPanelStack"]},SET_POSITION:{actions:["setPosition"]},SET_SIZE:{actions:["setSize"]}},states:{closed:{tags:["closed"],on:{"CONTROLLED.OPEN":{target:"open",actions:["setAnchorPosition","setPositionStyle","setSizeStyle","setInitialFocus"]},OPEN:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["invokeOnOpen","setAnchorPosition","setPositionStyle","setSizeStyle","setInitialFocus"]}]}},open:{tags:["open"],entry:["bringToFrontOfPanelStack"],initial:"idle",on:{"CONTROLLED.CLOSE":{target:"closed",actions:["resetRect","setFinalFocus"]},CLOSE:[{guard:"isOpenControlled",target:"closed",actions:["invokeOnClose","setFinalFocus"]},{target:"closed",actions:["invokeOnClose","resetRect","setFinalFocus"]}]},states:{idle:{effects:["trackBoundaryRect"],on:{DRAG_START:{guard:sv("isMaximized"),target:"dragging",actions:["setPrevPosition"]},RESIZE_START:{guard:sv("isMinimized"),target:"resizing",actions:["setPrevSize"]},ESCAPE:[{guard:sx("isOpenControlled","closeOnEsc"),actions:["invokeOnClose"]},{guard:"closeOnEsc",target:"closed",actions:["invokeOnClose","resetRect","setFinalFocus"]}],MINIMIZE:{actions:["setMinimized"]},MAXIMIZE:{actions:["setMaximized"]},RESTORE:{actions:["setRestored"]},MOVE:{actions:["setPositionFromKeyboard"]}}},dragging:{effects:["trackPointerMove"],on:{DRAG:{actions:["setPositionFromDrag"]},DRAG_END:{target:"idle",actions:["invokeOnDragEnd","clearPrevPosition"]},ESCAPE:{target:"idle",actions:["restorePosition","clearPrevPosition"]}}},resizing:{effects:["trackPointerMove"],on:{DRAG:{actions:["setSizeFromDrag"]},DRAG_END:{target:"idle",actions:["invokeOnResizeEnd","clearPrevSize"]},ESCAPE:{target:"idle",actions:["restoreSize","clearPrevSize"]}}}}}},implementations:{guards:{closeOnEsc:({prop:e})=>!!e("closeOnEscape"),isMaximized:({context:e})=>e.get("stage")==="maximized",isMinimized:({context:e})=>e.get("stage")==="minimized",isOpenControlled:({prop:e})=>e("open")!=null},effects:{trackPointerMove({scope:e,send:t,event:n,prop:r}){var s;let i=e.getDoc(),a=(s=r("getBoundaryEl"))==null?void 0:s(),o=yn(e,a,!1);return an(i,{onPointerMove({point:l,event:c}){let{altKey:d,shiftKey:g}=c,h=Oe(l.x,o.x,o.x+o.width),u=Oe(l.y,o.y,o.y+o.height);t({type:"DRAG",position:{x:h,y:u},axis:n.axis,altKey:d,shiftKey:g})},onPointerUp(){t({type:"DRAG_END"})}})},trackBoundaryRect({context:e,scope:t,prop:n,computed:r}){var l;let i=t.getWin(),a=!0,o=()=>{var g;if(a){a=!1;return}let c=(g=n("getBoundaryEl"))==null?void 0:g(),d=yn(t,c,!1);if(!r("isMaximized")){let h=p(p({},e.get("position")),e.get("size"));d=jV(h,d)}e.set("size",Jn(d,["width","height"])),e.set("position",Jn(d,["x","y"]))},s=(l=n("getBoundaryEl"))==null?void 0:l();return ye(s)?kn.observe(s,o):re(i,"resize",o)},trackPanelStack({context:e,scope:t}){let n=Oo(Ba,()=>{e.set("isTopmost",Ba.isTopmost(t.id));let r=av(t);if(!r)return;let i=Ba.indexOf(t.id);i!==-1&&r.style.setProperty("--z-index",`${i+1}`)});return()=>{Ba.remove(t.id),n()}}},actions:{setPosition({context:e,event:t,prop:n,scope:r}){var s;let i=(s=n("getBoundaryEl"))==null?void 0:s(),a=yn(r,i,n("allowOverflow")),o=Ui(t.position,e.get("size"),a);e.set("position",o)},setSize({context:e,event:t,scope:n,prop:r}){var l;let i=(l=r("getBoundaryEl"))==null?void 0:l(),a=yn(n,i,!1),o=t.size;o=qi(o,r("minSize"),r("maxSize")),o=qi(o,r("minSize"),a);let s=Ui(e.get("position"),o,a);e.set("size",o),e.set("position",s)},setAnchorPosition({context:e,computed:t,prop:n,scope:r}){var l,c;if(t("hasSpecifiedPosition"))return;let i=e.get("prevPosition")||e.get("prevSize");if(n("persistRect")&&i)return;let a=rv(r),o=yn(r,(l=n("getBoundaryEl"))==null?void 0:l(),!1),s=(c=n("getAnchorPosition"))==null?void 0:c({triggerRect:a?DOMRect.fromRect(cv(a)):null,boundaryRect:DOMRect.fromRect(o)});if(!s){let d=e.get("size");s={x:o.x+(o.width-d.width)/2,y:o.y+(o.height-d.height)/2}}s&&e.set("position",s)},setPrevPosition({context:e,event:t}){e.set("prevPosition",p({},e.get("position"))),e.set("lastEventPosition",t.position)},clearPrevPosition({context:e,prop:t}){t("persistRect")||e.set("prevPosition",null),e.set("lastEventPosition",null)},restorePosition({context:e}){let t=e.get("prevPosition");t&&e.set("position",t)},setPositionFromDrag({context:e,event:t,prop:n,scope:r}){var c;let i=oc(t.position,e.get("lastEventPosition"));i.x=Math.round(i.x/n("gridSize"))*n("gridSize"),i.y=Math.round(i.y/n("gridSize"))*n("gridSize");let a=e.get("prevPosition");if(!a)return;let o=Wg(a,i),s=(c=n("getBoundaryEl"))==null?void 0:c(),l=yn(r,s,n("allowOverflow"));o=Ui(o,e.get("size"),l),e.set("position",o)},setPositionStyle({scope:e,context:t}){let n=iv(e),r=t.get("position");n==null||n.style.setProperty("--x",`${r.x}px`),n==null||n.style.setProperty("--y",`${r.y}px`)},resetRect({context:e,prop:t}){e.set("stage","default"),t("persistRect")||(e.set("position",e.initial("position")),e.set("size",e.initial("size")))},setPrevSize({context:e,event:t}){e.set("prevSize",p({},e.get("size"))),e.set("prevPosition",p({},e.get("position"))),e.set("lastEventPosition",t.position)},clearPrevSize({context:e}){e.set("prevSize",null),e.set("prevPosition",null),e.set("lastEventPosition",null)},restoreSize({context:e}){let t=e.get("prevSize");t&&e.set("size",t);let n=e.get("prevPosition");n&&e.set("position",n)},setSizeFromDrag({context:e,event:t,scope:n,prop:r}){var f;let i=e.get("prevSize"),a=e.get("prevPosition"),o=e.get("lastEventPosition");if(!i||!a||!o)return;let s=Nn(p(p({},a),i)),l=oc(t.position,o),c=nx(s,l,t.axis,{scalingOriginMode:t.altKey?"center":"extent",lockAspectRatio:!!r("lockAspectRatio")||t.shiftKey}),d=Jn(c,["width","height"]),g=Jn(c,["x","y"]),h=(f=r("getBoundaryEl"))==null?void 0:f(),u=yn(n,h,!1);if(d=qi(d,r("minSize"),r("maxSize")),d=qi(d,r("minSize"),u),e.set("size",d),g){let m=Ui(g,d,u);e.set("position",m)}},setSizeStyle({scope:e,context:t}){queueMicrotask(()=>{let n=iv(e),r=t.get("size");n==null||n.style.setProperty("--width",`${r.width}px`),n==null||n.style.setProperty("--height",`${r.height}px`)})},setMaximized({context:e,prop:t,scope:n}){var d;if(e.get("stage")==="maximized")return;let r=e.get("stage")==="default",i=e.get("size"),a=e.get("position"),o=(d=t("getBoundaryEl"))==null?void 0:d(),s=yn(n,o,!1),l=Jn(s,["x","y"]),c=Jn(s,["height","width"]);e.set("stage","maximized"),r&&(e.set("prevSize",i),e.set("prevPosition",a)),e.set("position",l),e.set("size",c)},setMinimized({context:e,scope:t}){if(e.get("stage")==="minimized")return;let n=e.get("stage")==="default",r=e.get("size"),i=e.get("position");e.set("stage","minimized"),n&&(e.set("prevSize",r),e.set("prevPosition",i));let a=ix(t);if(!a)return;let o=v(p({},r),{height:a==null?void 0:a.offsetHeight});e.set("size",o)},setRestored({context:e,prop:t,scope:n}){var l;let r=yn(n,(l=t("getBoundaryEl"))==null?void 0:l(),!1);e.set("stage","default");let i=e.get("size"),a=e.get("prevSize");a&&(i=qi(a,t("minSize"),t("maxSize")),i=qi(i,t("minSize"),r));let o=e.get("position"),s=e.get("prevPosition");s&&(o=Ui(s,i,r)),e.set("size",i),e.set("position",o),e.set("prevSize",null),e.set("prevPosition",null)},setPositionFromKeyboard({context:e,event:t,prop:n,scope:r}){var c;ui(t.step==null,"step is required");let i=e.get("position"),a=t.step,o=Me(t.direction,{left:{x:i.x-a,y:i.y},right:{x:i.x+a,y:i.y},up:{x:i.x,y:i.y-a},down:{x:i.x,y:i.y+a}}),s=(c=n("getBoundaryEl"))==null?void 0:c(),l=yn(r,s,!1);o=Ui(o,e.get("size"),l),e.set("position",o)},bringToFrontOfPanelStack({prop:e}){Ba.bringToFront(e("id"))},invokeOnOpen({prop:e}){var t;(t=e("onOpenChange"))==null||t({open:!0})},invokeOnClose({prop:e}){var t;(t=e("onOpenChange"))==null||t({open:!1})},invokeOnDragEnd({context:e,prop:t}){var n;(n=t("onPositionChangeEnd"))==null||n({position:e.get("position")})},invokeOnResizeEnd({context:e,prop:t}){var n;(n=t("onSizeChangeEnd"))==null||n({size:e.get("size")})},setFinalFocus({scope:e,prop:t}){t("restoreFocus")!==!1&&$(()=>{var r,i;let n=(i=(r=t("finalFocusEl"))==null?void 0:r())!=null?i:rv(e);n==null||n.focus({preventScroll:!0})})},setInitialFocus({scope:e,prop:t}){$(()=>{var r,i;let n=(i=(r=t("initialFocusEl"))==null?void 0:r())!=null?i:av(e);n==null||n.focus({preventScroll:!0})})},toggleVisibility({send:e,prop:t,event:n}){e({type:t("open")?"CONTROLLED.OPEN":"CONTROLLED.CLOSE",previousEvent:n})}}}}),gx=class extends X{initMachine(e){return new Y(ux,e)}initApi(){return this.zagConnect(ox)}render(){let e=this.el.querySelector('[data-scope="floating-panel"][data-part="trigger"]');e&&this.spreadProps(e,this.api.getTriggerProps());let t=this.el.querySelector('[data-scope="floating-panel"][data-part="positioner"]');t&&this.spreadProps(t,this.api.getPositionerProps());let n=this.el.querySelector('[data-scope="floating-panel"][data-part="content"]');n&&this.spreadProps(n,this.api.getContentProps());let r=this.el.querySelector('[data-scope="floating-panel"][data-part="title"]');r&&this.spreadProps(r,this.api.getTitleProps());let i=this.el.querySelector('[data-scope="floating-panel"][data-part="header"]');i&&this.spreadProps(i,this.api.getHeaderProps());let a=this.el.querySelector('[data-scope="floating-panel"][data-part="body"]');a&&this.spreadProps(a,this.api.getBodyProps());let o=this.el.querySelector('[data-scope="floating-panel"][data-part="drag-trigger"]');o&&this.spreadProps(o,this.api.getDragTriggerProps()),["s","w","e","n","sw","nw","se","ne"].forEach(g=>{let h=this.el.querySelector(`[data-scope="floating-panel"][data-part="resize-trigger"][data-axis="${g}"]`);h&&this.spreadProps(h,this.api.getResizeTriggerProps({axis:g}))});let l=this.el.querySelector('[data-scope="floating-panel"][data-part="close-trigger"]');l&&this.spreadProps(l,this.api.getCloseTriggerProps());let c=this.el.querySelector('[data-scope="floating-panel"][data-part="control"]');c&&this.spreadProps(c,this.api.getControlProps()),["minimized","maximized","default"].forEach(g=>{let h=this.el.querySelector(`[data-scope="floating-panel"][data-part="stage-trigger"][data-stage="${g}"]`);h&&this.spreadProps(h,this.api.getStageTriggerProps({stage:g}))})}};hx={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>J(this.liveSocket),r=tl(e.dataset.size),i=tl(e.dataset.defaultSize),a=lv(e.dataset.position),o=lv(e.dataset.defaultPosition),s=new gx(e,{id:e.id,defaultOpen:!1,draggable:I(e,"draggable")!==!1,resizable:I(e,"resizable")!==!1,allowOverflow:I(e,"allowOverflow")!==!1,closeOnEscape:I(e,"closeOnEscape")!==!1,disabled:I(e,"disabled"),dir:U(e),size:r,defaultSize:i,position:a,defaultPosition:o,minSize:tl(e.dataset.minSize),maxSize:tl(e.dataset.maxSize),persistRect:I(e,"persistRect"),gridSize:Number(e.dataset.gridSize)||1,onOpenChange:d=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,open:d.open},serverEventName:V(e,"onOpenChange"),clientEventName:V(e,"onOpenChangeClient")})},onPositionChange:d=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,position:d.position},serverEventName:V(e,"onPositionChange"),clientEventName:V(e,"onPositionChangeClient")})},onSizeChange:d=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,size:d.size},serverEventName:V(e,"onSizeChange"),clientEventName:V(e,"onSizeChangeClient")})},onStageChange:d=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,stage:d.stage},serverEventName:V(e,"onStageChange"),clientEventName:V(e,"onStageChangeClient")})}});s.init(),this.floatingPanel=s;let l=de(e);this.domRegistry=l,l.add("corex:floating-panel:set-open",d=>{let{open:g}=d.detail;s.api.setOpen(g)});let c=ce(this);this.handleRegistry=c,c.add("floating_panel_set_open",d=>{if(!d||typeof d!="object")return;let g=d;B(e.id,G(d))&&typeof g.open=="boolean"&&s.api.setOpen(g.open)})},updated(){var e;(e=this.floatingPanel)==null||e.updateProps({id:this.el.id,disabled:I(this.el,"disabled"),dir:U(this.el)})},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),this.domRegistry=void 0,(t=this.handleRegistry)==null||t.teardown(),this.handleRegistry=void 0,(n=this.floatingPanel)==null||n.destroy()}}});var bv={};fe(bv,{Listbox:()=>wx});function yx(e,t){let{context:n,prop:r,scope:i,computed:a,send:o,refs:s}=e,l=r("disabled"),c=r("collection"),d=pn(c)?"grid":"list",g=n.get("focused"),h=s.get("focusVisible")&&g,u=s.get("inputState"),f=n.get("value"),m=a("selectedItems"),P=n.get("highlightedValue"),C=n.get("highlightedItem"),x=a("isTypingAhead"),T=a("isInteractive"),b=P?Ud(i,P):void 0;function y(S){let A=c.getItemDisabled(S.item),N=c.getItemValue(S.item);jt(N,()=>`[zag-js] No value found for item ${JSON.stringify(S.item)}`);let O=P===N;return{value:N,disabled:!!(l||A),focused:O&&g,focusVisible:O&&h,highlighted:O&&(u.focused?g:h),selected:n.get("value").includes(N)}}return{empty:f.length===0,highlightedItem:C,highlightedValue:P,clearHighlightedValue(){o({type:"HIGHLIGHTED_VALUE.SET",value:null})},selectedItems:m,hasSelectedItems:a("hasSelectedItems"),value:f,valueAsString:a("valueAsString"),collection:c,disabled:!!l,selectValue(S){o({type:"ITEM.SELECT",value:S})},setValue(S){o({type:"VALUE.SET",value:S})},selectAll(){if(!a("multiple"))throw new Error("[zag-js] Cannot select all items in a single-select listbox");o({type:"VALUE.SET",value:c.getValues()})},highlightValue(S){o({type:"HIGHLIGHTED_VALUE.SET",value:S})},highlightFirst(){o({type:"HIGHLIGHT.FIRST"})},highlightLast(){o({type:"HIGHLIGHT.LAST"})},highlightNext(){o({type:"HIGHLIGHT.NEXT"})},highlightPrevious(){o({type:"HIGHLIGHT.PREV"})},clearValue(S){o(S?{type:"ITEM.CLEAR",value:S}:{type:"VALUE.CLEAR"})},getItemState:y,getRootProps(){return t.element(v(p({},bn.root.attrs),{dir:r("dir"),id:mx(i),"data-orientation":r("orientation"),"data-disabled":E(l)}))},getInputProps(S={}){var N;let A=(N=S.keyboardPriority)!=null?N:"caret";return t.input(v(p({},bn.input.attrs),{dir:r("dir"),disabled:l,"data-disabled":E(l),autoComplete:"off",autoCorrect:"off","aria-haspopup":"listbox","aria-controls":Gd(i),"aria-autocomplete":"list","aria-activedescendant":b,spellCheck:!1,enterKeyHint:"go",onFocus(){queueMicrotask(()=>{o({type:"INPUT.FOCUS",autoHighlight:!!(S!=null&&S.autoHighlight)})})},onBlur(){o({type:"CONTENT.BLUR",src:"input"})},onInput(O){S!=null&&S.autoHighlight&&(O.currentTarget.value.trim()||queueMicrotask(()=>{o({type:"HIGHLIGHTED_VALUE.SET",value:null})}))},onKeyDown(O){if(O.defaultPrevented||$e(O))return;let w=zt(O),k=()=>{var W;O.preventDefault();let R=i.getWin(),D=new R.KeyboardEvent(w.type,w);(W=nl(i))==null||W.dispatchEvent(D)};switch(w.key){case"ArrowLeft":case"ArrowRight":{if(!pn(c)||O.ctrlKey||A!=="navigate")return;k();break}case"Home":case"End":{if(A!=="navigate"||P==null&&O.shiftKey)return;k();break}case"ArrowDown":case"ArrowUp":{k();break}case"Enter":P!=null&&(O.preventDefault(),o({type:"ITEM.CLICK",value:P}));break;default:break}}}))},getLabelProps(){return t.element(v(p({dir:r("dir"),id:fv(i)},bn.label.attrs),{"data-disabled":E(l)}))},getValueTextProps(){return t.element(v(p({},bn.valueText.attrs),{dir:r("dir"),"data-disabled":E(l)}))},getItemProps(S){let A=y(S);return t.element(v(p({id:Ud(i,A.value),role:"option"},bn.item.attrs),{dir:r("dir"),"data-value":A.value,"aria-selected":A.selected,"data-selected":E(A.selected),"data-layout":d,"data-state":A.selected?"checked":"unchecked","data-orientation":r("orientation"),"data-highlighted":E(A.highlighted),"data-disabled":E(A.disabled),"aria-disabled":oe(A.disabled),onPointerMove(N){S.highlightOnHover&&(A.disabled||N.pointerType!=="mouse"||A.highlighted||o({type:"ITEM.POINTER_MOVE",value:A.value}))},onMouseDown(N){var O;N.preventDefault(),(O=nl(i))==null||O.focus()},onClick(N){N.defaultPrevented||xr(N)||Vn(N)||tr(N)||A.disabled||o({type:"ITEM.CLICK",value:A.value,shiftKey:N.shiftKey,anchorValue:P,metaKey:Lo(N)})}}))},getItemTextProps(S){let A=y(S);return t.element(v(p({},bn.itemText.attrs),{"data-state":A.selected?"checked":"unchecked","data-disabled":E(A.disabled),"data-highlighted":E(A.highlighted)}))},getItemIndicatorProps(S){let A=y(S);return t.element(v(p({},bn.itemIndicator.attrs),{"aria-hidden":!0,"data-state":A.selected?"checked":"unchecked",hidden:!A.selected}))},getItemGroupLabelProps(S){let{htmlFor:A}=S;return t.element(v(p({},bn.itemGroupLabel.attrs),{id:mv(i,A),dir:r("dir"),role:"presentation"}))},getItemGroupProps(S){let{id:A}=S;return t.element(v(p({},bn.itemGroup.attrs),{"data-disabled":E(l),"data-orientation":r("orientation"),"data-empty":E(c.size===0),id:vx(i,A),"aria-labelledby":mv(i,A),role:"group",dir:r("dir")}))},getContentProps(){return t.element(v(p({dir:r("dir"),id:Gd(i),role:"listbox"},bn.content.attrs),{"data-activedescendant":b,"aria-activedescendant":b,"data-orientation":r("orientation"),"aria-multiselectable":a("multiple")?!0:void 0,"aria-labelledby":fv(i),tabIndex:0,"data-layout":d,"data-empty":E(c.size===0),style:{"--column-count":pn(c)?c.columnCount:1},onFocus(){o({type:"CONTENT.FOCUS"})},onBlur(){o({type:"CONTENT.BLUR"})},onKeyDown(S){if(!T)return;let A=Q(S);if(!ge(S.currentTarget,Q(S)))return;let N=S.shiftKey,O={ArrowUp(k){let R=null;pn(c)&&P?R=c.getPreviousRowValue(P):P&&(R=c.getPreviousValue(P)),!R&&(r("loopFocus")||!P)&&(R=c.lastValue),R&&(k.preventDefault(),o({type:"NAVIGATE",value:R,shiftKey:N,anchorValue:P}))},ArrowDown(k){let R=null;pn(c)&&P?R=c.getNextRowValue(P):P&&(R=c.getNextValue(P)),!R&&(r("loopFocus")||!P)&&(R=c.firstValue),R&&(k.preventDefault(),o({type:"NAVIGATE",value:R,shiftKey:N,anchorValue:P}))},ArrowLeft(){if(!pn(c)&&r("orientation")==="vertical")return;let k=P?c.getPreviousValue(P):null;!k&&r("loopFocus")&&(k=c.lastValue),k&&(S.preventDefault(),o({type:"NAVIGATE",value:k,shiftKey:N,anchorValue:P}))},ArrowRight(){if(!pn(c)&&r("orientation")==="vertical")return;let k=P?c.getNextValue(P):null;!k&&r("loopFocus")&&(k=c.firstValue),k&&(S.preventDefault(),o({type:"NAVIGATE",value:k,shiftKey:N,anchorValue:P}))},Home(k){if(xt(A))return;k.preventDefault();let R=c.firstValue;o({type:"NAVIGATE",value:R,shiftKey:N,anchorValue:P})},End(k){if(xt(A))return;k.preventDefault();let R=c.lastValue;o({type:"NAVIGATE",value:R,shiftKey:N,anchorValue:P})},Enter(){o({type:"ITEM.CLICK",value:P})},a(k){Lo(k)&&a("multiple")&&!r("disallowSelectAll")&&(k.preventDefault(),o({type:"VALUE.SET",value:c.getValues()}))},Space(k){var R;x&&r("typeahead")?o({type:"CONTENT.TYPEAHEAD",key:k.key}):(R=O.Enter)==null||R.call(O,k)},Escape(k){r("deselectable")&&f.length>0&&(k.preventDefault(),k.stopPropagation(),o({type:"VALUE.CLEAR"}))}},w=O[ve(S)];if(w){w(S);return}xt(A)||ct.isValidEvent(S)&&r("typeahead")&&(o({type:"CONTENT.TYPEAHEAD",key:S.key}),S.preventDefault())}}))}}}function Ga(e,t,n){let r=Cx(t,e);for(let i of r)n==null||n({value:i})}function Tx(e,t){return Ua(t?{items:e,itemToValue:n=>{var r,i;return(i=(r=n.id)!=null?r:n.value)!=null?i:""},itemToString:n=>n.label,isItemDisabled:n=>!!n.disabled,groupBy:n=>{var r;return(r=n.group)!=null?r:""}}:{items:e,itemToValue:n=>{var r,i;return(i=(r=n.id)!=null?r:n.value)!=null?i:""},itemToString:n=>n.label,isItemDisabled:n=>!!n.disabled})}function yv(e,t,n){let r=I(e,"redirect");return{id:e.id,disabled:I(e,"disabled"),dir:U(e),orientation:V(e,"orientation"),loopFocus:I(e,"loopFocus"),selectionMode:r?"single":V(e,"selectionMode"),selectOnHighlight:I(e,"selectOnHighlight"),deselectable:I(e,"deselectable"),typeahead:I(e,"typeahead"),onValueChange:i=>{let a=i.value.length>0?String(i.value[0]):null;if(r&&a){let o=e.querySelector(`[data-scope="listbox"][data-part="item"][data-value="${CSS.escape(a)}"]`);mn(fn(o,a),{liveSocket:t})}K({el:e,canPushServer:J(t),pushEvent:n,payload:{id:e.id,value:i.value,items:i.items},serverEventName:V(e,"onValueChange"),clientEventName:V(e,"onValueChangeClient")})}}}var px,bn,Ua,fx,mx,Gd,fv,Ud,vx,mv,nl,vv,bx,Ex,Sx,Px,Cx,Ix,wx,Ev=ne(()=>{"use strict";Is();wa();Di();Ln();_e();Ce();se();px=j("listbox").parts("label","input","item","itemText","itemIndicator","itemGroup","itemGroupLabel","content","root","valueText"),bn=px.build(),Ua=e=>new hn(e);Ua.empty=()=>new hn({items:[]});fx=e=>new Fc(e);fx.empty=()=>new Fc({items:[],columnCount:0});mx=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`listbox:${e.id}`},Gd=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.content)!=null?n:`listbox:${e.id}:content`},fv=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`listbox:${e.id}:label`},Ud=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.item)==null?void 0:r.call(n,t))!=null?i:`listbox:${e.id}:item:${t}`},vx=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemGroup)==null?void 0:r.call(n,t))!=null?i:`listbox:${e.id}:item-group:${t}`},mv=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemGroupLabel)==null?void 0:r.call(n,t))!=null?i:`listbox:${e.id}:item-group-label:${t}`},nl=e=>e.getById(Gd(e)),vv=(e,t)=>e.getById(Ud(e,t));({guards:bx,createMachine:Ex}=Ot()),{or:Sx}=bx,Px=Ex({props({props:e}){return p({loopFocus:!1,composite:!0,defaultValue:[],multiple:!1,typeahead:!0,collection:Ua.empty(),orientation:"vertical",selectionMode:"single"},e)},context({prop:e,bindable:t,getContext:n}){var a,o;let r=(o=(a=e("value"))!=null?a:e("defaultValue"))!=null?o:[],i=e("collection").findMany(r);return{value:t(()=>({defaultValue:e("defaultValue"),value:e("value"),isEqual:Ie,onChange(s){var f,m;let l=n(),c=e("collection"),d=l.get("selectedItemMap"),g=Pt({values:s,collection:c,selectedItemMap:d}),h=(f=e("value"))!=null?f:s,u=h===s?g:Pt({values:h,collection:c,selectedItemMap:g.nextSelectedItemMap});return l.set("selectedItemMap",u.nextSelectedItemMap),(m=e("onValueChange"))==null?void 0:m({value:s,items:g.selectedItems})}})),highlightedValue:t(()=>({defaultValue:e("defaultHighlightedValue")||null,value:e("highlightedValue"),sync:!0,onChange(s){var l;(l=e("onHighlightChange"))==null||l({highlightedValue:s,highlightedItem:e("collection").find(s),highlightedIndex:e("collection").indexOf(s)})}})),highlightedItem:t(()=>({defaultValue:null})),selectedItemMap:t(()=>({defaultValue:Ni({selectedItems:i,collection:e("collection")})})),focused:t(()=>({sync:!0,defaultValue:!1}))}},refs(){return{typeahead:p({},ct.defaultOptions),focusVisible:!1,inputState:{autoHighlight:!1,focused:!1}}},computed:{hasSelectedItems:({context:e})=>e.get("value").length>0,isTypingAhead:({refs:e})=>e.get("typeahead").keysSoFar!=="",isInteractive:({prop:e})=>!e("disabled"),selection:({context:e,prop:t})=>{let n=new xp(e.get("value"));return n.selectionMode=t("selectionMode"),n.deselectable=!!t("deselectable"),n},multiple:({prop:e})=>e("selectionMode")==="multiple"||e("selectionMode")==="extended",selectedItems:({context:e,prop:t})=>$r({values:e.get("value"),collection:t("collection"),selectedItemMap:e.get("selectedItemMap")}),valueAsString:({computed:e,prop:t})=>t("collection").stringifyItems(e("selectedItems"))},initialState(){return"idle"},watch({context:e,prop:t,track:n,action:r}){n([()=>e.get("value").toString()],()=>{r(["syncSelectedItems"])}),n([()=>e.get("highlightedValue")],()=>{r(["syncHighlightedItem"])}),n([()=>t("collection").toString()],()=>{r(["syncHighlightedValue"])})},effects:["trackFocusVisible"],on:{"HIGHLIGHTED_VALUE.SET":{actions:["setHighlightedItem"]},"ITEM.SELECT":{actions:["selectItem"]},"ITEM.CLEAR":{actions:["clearItem"]},"VALUE.SET":{actions:["setSelectedItems"]},"VALUE.CLEAR":{actions:["clearSelectedItems"]},"HIGHLIGHT.FIRST":{actions:["highlightFirstValue"]},"HIGHLIGHT.LAST":{actions:["highlightLastValue"]},"HIGHLIGHT.NEXT":{actions:["highlightNextValue"]},"HIGHLIGHT.PREV":{actions:["highlightPreviousValue"]}},states:{idle:{effects:["scrollToHighlightedItem"],on:{"INPUT.FOCUS":{actions:["setFocused","setInputState"]},"CONTENT.FOCUS":[{guard:Sx("hasSelectedValue","hasHighlightedValue"),actions:["setFocused"]},{actions:["setFocused","setDefaultHighlightedValue"]}],"CONTENT.BLUR":{actions:["clearFocused","clearInputState"]},"ITEM.CLICK":{actions:["setHighlightedItem","selectHighlightedItem"]},"CONTENT.TYPEAHEAD":{actions:["setFocused","highlightMatchingItem"]},"ITEM.POINTER_MOVE":{actions:["highlightItem"]},"ITEM.POINTER_LEAVE":{actions:["clearHighlightedItem"]},NAVIGATE:{actions:["setFocused","setHighlightedItem","selectWithKeyboard"]}}}},implementations:{guards:{hasSelectedValue:({context:e})=>e.get("value").length>0,hasHighlightedValue:({context:e})=>e.get("highlightedValue")!=null},effects:{trackFocusVisible:({scope:e,refs:t})=>{var n;return Qe({root:(n=e.getRootNode)==null?void 0:n.call(e),onChange(r){t.set("focusVisible",r.isFocusVisible)}})},scrollToHighlightedItem({context:e,prop:t,scope:n}){let r=a=>{let o=e.get("highlightedValue");if(o==null||sr()==="pointer")return;let l=nl(n),c=t("scrollToIndexFn");if(c){let g=t("collection").indexOf(o);c==null||c({index:g,immediate:a,getElement(){return vv(n,o)}});return}let d=vv(n,o);Rn(d,{rootEl:l,block:"nearest"})};return $(()=>{lr("virtual"),r(!0)}),kt(()=>nl(n),{defer:!0,attributes:["data-activedescendant"],callback(){r(!1)}})}},actions:{selectHighlightedItem({context:e,prop:t,event:n,computed:r}){var s;let i=(s=n.value)!=null?s:e.get("highlightedValue"),a=t("collection");if(i==null||!a.has(i))return;let o=r("selection");if(n.shiftKey&&r("multiple")&&n.anchorValue){let l=o.extendSelection(a,n.anchorValue,i);Ga(o,l,t("onSelect")),e.set("value",Array.from(l))}else{let l=o.select(a,i,n.metaKey);Ga(o,l,t("onSelect")),e.set("value",Array.from(l))}},selectWithKeyboard({context:e,prop:t,event:n,computed:r}){let i=r("selection"),a=t("collection");if(n.shiftKey&&r("multiple")&&n.anchorValue){let o=i.extendSelection(a,n.anchorValue,n.value);Ga(i,o,t("onSelect")),e.set("value",Array.from(o));return}if(t("selectOnHighlight")){let o=i.replaceSelection(a,n.value);Ga(i,o,t("onSelect")),e.set("value",Array.from(o))}},highlightItem({context:e,event:t}){e.set("highlightedValue",t.value)},highlightMatchingItem({context:e,prop:t,event:n,refs:r}){let i=t("collection").search(n.key,{state:r.get("typeahead"),currentValue:e.get("highlightedValue")});i!=null&&e.set("highlightedValue",i)},setHighlightedItem({context:e,event:t}){e.set("highlightedValue",t.value)},highlightFirstValue({context:e,prop:t}){var n;e.set("highlightedValue",(n=t("collection").firstValue)!=null?n:null)},highlightLastValue({context:e,prop:t}){var n;e.set("highlightedValue",(n=t("collection").lastValue)!=null?n:null)},highlightNextValue({context:e,prop:t}){let n=t("collection"),r=e.get("highlightedValue"),i=null;pn(n)&&r?i=n.getNextRowValue(r):r&&(i=n.getNextValue(r)),!i&&(t("loopFocus")||!r)&&(i=n.firstValue),i&&e.set("highlightedValue",i)},highlightPreviousValue({context:e,prop:t}){let n=t("collection"),r=e.get("highlightedValue"),i=null;pn(n)&&r?i=n.getPreviousRowValue(r):r&&(i=n.getPreviousValue(r)),!i&&(t("loopFocus")||!r)&&(i=n.lastValue),i&&e.set("highlightedValue",i)},clearHighlightedItem({context:e}){e.set("highlightedValue",null)},selectItem({context:e,prop:t,event:n,computed:r}){let i=t("collection"),a=r("selection"),o=a.select(i,n.value);Ga(a,o,t("onSelect")),e.set("value",Array.from(o))},clearItem({context:e,event:t,computed:n}){let i=n("selection").deselect(t.value);e.set("value",Array.from(i))},setSelectedItems({context:e,event:t}){e.set("value",t.value)},clearSelectedItems({context:e}){e.set("value",[])},syncSelectedItems({context:e,prop:t}){let n=Pt({values:e.get("value"),collection:t("collection"),selectedItemMap:e.get("selectedItemMap")});e.set("selectedItemMap",n.nextSelectedItemMap)},syncHighlightedItem({context:e,prop:t}){let n=t("collection"),r=e.get("highlightedValue"),i=r?n.find(r):null;e.set("highlightedItem",i)},syncHighlightedValue({context:e,prop:t,refs:n}){let r=t("collection"),i=e.get("highlightedValue"),{autoHighlight:a}=n.get("inputState");if(a){queueMicrotask(()=>{var o;e.set("highlightedValue",(o=t("collection").firstValue)!=null?o:null)});return}i!=null&&!r.has(i)&&queueMicrotask(()=>{e.set("highlightedValue",null)})},setFocused({context:e}){e.set("focused",!0)},setDefaultHighlightedValue({context:e,prop:t}){let r=t("collection").firstValue;r!=null&&e.set("highlightedValue",r)},clearFocused({context:e}){e.set("focused",!1)},setInputState({refs:e,event:t}){e.set("inputState",{autoHighlight:!!t.autoHighlight,focused:!0})},clearInputState({refs:e}){e.set("inputState",{autoHighlight:!1,focused:!1})}}}}),Cx=(e,t)=>{let n=new Set(e);for(let r of t)n.delete(r);return n};Ix=class extends X{constructor(t,n){var i;super(t,n);Z(this,"_options",[]);Z(this,"hasGroups",!1);Z(this,"lastItemsFingerprint","");Z(this,"init",()=>{this.machine.start(),this.render(),this.machine.subscribe(()=>{this.api=this.initApi(),this.render()})});let r=n.collection;this._options=(i=r==null?void 0:r.items)!=null?i:[]}get options(){return Array.isArray(this._options)?this._options:[]}setOptions(t){this._options=Array.isArray(t)?t:[]}itemsFingerprint(){return`${this.hasGroups}:${JSON.stringify(this.options)}`}getOrderedGroupIds(){var r;let t=new Set,n=[];for(let i of this.options){let a=(r=i.group)!=null?r:"default";t.has(a)||(t.add(a),n.push(a))}return n}getCollection(){return Ua(Cs(this.options,this.hasGroups))}initMachine(t){let n=this.getCollection.bind(this);return new Y(Px,v(p({},t),{get collection(){return n()}}))}initApi(){return this.zagConnect(yx)}renderItems(){var a,o;let t=this.el.querySelector('[data-scope="listbox"][data-part="content"]');if(!t)return;let n=s=>s.closest('[data-scope="listbox"][data-part="content"]')===t,r=xo(this.el,"listbox");if(!r)return;Array.from(t.querySelectorAll('[data-scope="listbox"][data-part="empty"]:not([data-template])')).filter(n).forEach(s=>s.remove()),Array.from(t.querySelectorAll('[data-scope="listbox"][data-part="item-group"]:not([data-template])')).filter(n).forEach(s=>s.remove()),Array.from(t.querySelectorAll('[data-scope="listbox"][data-part="item"]:not([data-template])')).filter(n).forEach(s=>s.remove());let i=this.options;if(i.length===0){let s=r.querySelector('[data-scope="listbox"][data-part="empty"][data-template]');if(s){let l=s.cloneNode(!0);l.removeAttribute("data-template"),t.appendChild(l)}}else if(this.hasGroups){let s=this.getOrderedGroupIds();for(let l of s){let c=r.querySelector(`[data-scope="listbox"][data-part="item-group"][data-id="${CSS.escape(l)}"][data-template]`);if(!c)continue;let d=c.cloneNode(!0);d.removeAttribute("data-template"),d.querySelectorAll("[data-template]").forEach(g=>g.removeAttribute("data-template")),t.appendChild(d)}}else for(let s of i){let l=String((o=(a=s.id)!=null?a:s.value)!=null?o:""),c=r.querySelector(`[data-scope="listbox"][data-part="item"][data-value="${l}"][data-template]`);if(!c)continue;let d=c.cloneNode(!0);d.removeAttribute("data-template"),t.appendChild(d)}}applyItemProps(){let t=this.el.querySelector('[data-scope="listbox"][data-part="content"]');if(!t)return;let n=r=>r.closest('[data-scope="listbox"][data-part="content"]')===t;t.querySelectorAll('[data-scope="listbox"][data-part="item-group"]').forEach(r=>{var o;if(!n(r))return;let i=(o=r.dataset.id)!=null?o:"";this.spreadProps(r,this.api.getItemGroupProps({id:i}));let a=r.querySelector('[data-scope="listbox"][data-part="item-group-label"]');a&&this.spreadProps(a,this.api.getItemGroupLabelProps({htmlFor:i}))}),t.querySelectorAll('[data-scope="listbox"][data-part="item"]').forEach(r=>{var l;if(!n(r))return;let i=(l=r.dataset.value)!=null?l:"",a=this.options.find(c=>{var d,g;return String((g=(d=c.id)!=null?d:c.value)!=null?g:"")===String(i)});if(!a)return;this.spreadProps(r,this.api.getItemProps({item:a}));let o=r.querySelector('[data-scope="listbox"][data-part="item-text"]');o&&this.spreadProps(o,this.api.getItemTextProps({item:a}));let s=r.querySelector('[data-scope="listbox"][data-part="item-indicator"]');s&&this.spreadProps(s,this.api.getItemIndicatorProps({item:a}))})}render(){var a;let t=(a=this.el.querySelector('[data-scope="listbox"][data-part="root"]'))!=null?a:this.el;this.spreadProps(t,this.api.getRootProps());let n=this.el.querySelector('[data-scope="listbox"][data-part="label"]');n&&this.spreadProps(n,this.api.getLabelProps());let r=this.el.querySelector('[data-scope="listbox"][data-part="input"]');r&&this.spreadProps(r,this.api.getInputProps());let i=this.el.querySelector('[data-scope="listbox"][data-part="content"]');if(i){this.spreadProps(i,this.api.getContentProps());let o=this.itemsFingerprint();o!==this.lastItemsFingerprint&&(this.lastItemsFingerprint=o,this.renderItems()),this.applyItemProps()}}};wx={mounted(){var h;let e=this.el,t=JSON.parse((h=e.dataset.items)!=null?h:"[]"),n=t.some(u=>!!u.group),r=ie(e,"value"),i=ie(e,"defaultValue"),a=I(e,"controlled"),o=this.pushEvent.bind(this),s=()=>J(this.liveSocket),l=new Ix(e,p(v(p({},yv(e,this.liveSocket,o)),{collection:Tx(t,n)}),a&&r?{value:r}:{defaultValue:i!=null?i:[]}));l.hasGroups=n,l.setOptions(t),l.init(),this.listbox=l;let c=u=>{let f=l.api.value;Ke({respondTo:u,canPushServer:s(),pushEvent:o,serverEventName:"listbox_value_response",serverPayload:{id:e.id,value:f},el:e,domEventName:"listbox-value",domDetail:{id:e.id,value:f}})},d=de(e);this.domRegistry=d,d.add("corex:listbox:set-value",u=>{l.api.setValue(u.detail.value)}),d.add("corex:listbox:value",u=>{c(we(u.detail))});let g=ce(this);this.handleRegistry=g,g.add("listbox_set_value",u=>{B(e.id,G(u))&&l.api.setValue(u.value)}),g.add("listbox_value",u=>{B(e.id,G(u))&&c(we(u))})},updated(){var a;let e=JSON.parse((a=this.el.dataset.items)!=null?a:"[]"),t=e.some(o=>!!o.group),n=ie(this.el,"value"),r=ie(this.el,"defaultValue"),i=I(this.el,"controlled");this.listbox&&(this.listbox.hasGroups=t,this.listbox.setOptions(e),this.listbox.render(),this.listbox.updateProps(p(v(p({},yv(this.el,this.liveSocket,this.pushEvent.bind(this))),{collection:this.listbox.getCollection()}),i&&n?{value:n}:{defaultValue:r!=null?r:[]})))},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.listbox)==null||n.destroy()}}});var Cv={};fe(Cv,{Marquee:()=>Nx});function Ax(e,t){let{scope:n,send:r,context:i,computed:a,prop:o}=e,s=o("side"),l=i.get("paused"),c=i.get("duration"),d=a("orientation"),g=a("multiplier"),h=a("isVertical");return{paused:l,orientation:d,side:s,multiplier:g,contentCount:g+1,pause(){r({type:"PAUSE"})},resume(){r({type:"RESUME"})},togglePause(){r({type:"TOGGLE_PAUSE"})},restart(){r({type:"RESTART"})},getRootProps(){let u=o("dir");return t.element(v(p({},qa.root.attrs),{id:Qt.getRootId(n),dir:u,role:"region","aria-roledescription":"marquee","aria-live":"off","aria-label":o("translations").root,"data-state":l?"paused":"idle","data-orientation":d,"data-paused":E(l),onMouseEnter:o("pauseOnInteraction")?()=>r({type:"PAUSE"}):void 0,onMouseLeave:o("pauseOnInteraction")?()=>r({type:"RESUME"}):void 0,onFocusCapture:o("pauseOnInteraction")?f=>{f.target!==f.currentTarget&&r({type:"PAUSE"})}:void 0,onBlurCapture:o("pauseOnInteraction")?f=>{f.currentTarget.contains(f.relatedTarget)||r({type:"RESUME"})}:void 0,style:{display:"flex",flexDirection:d==="vertical"?"column":"row",position:"relative",overflow:"hidden",contain:"layout style paint","--marquee-duration":`${c}s`,"--marquee-spacing":o("spacing"),"--marquee-delay":`${o("delay")}s`,"--marquee-loop-count":o("loopCount")===0?"infinite":o("loopCount").toString(),"--marquee-translate":xx({side:s,dir:u})}}))},getViewportProps(){return t.element(v(p({},qa.viewport.attrs),{id:Qt.getViewportId(n),"data-part":"viewport","data-orientation":d,"data-side":s,onAnimationIteration(u){var f;u.target===Qt.getContentEl(n,0)&&((f=o("onLoopComplete"))==null||f())},onAnimationEnd(u){var f;u.target===Qt.getContentEl(n,0)&&((f=o("onComplete"))==null||f())},style:{display:"flex",[h?"height":"width"]:"100%",flexDirection:d==="vertical"?s==="bottom"?"column-reverse":"column":s==="end"?"row-reverse":"row"}}))},getContentProps(u){let{index:f}=u,m=f>0;return t.element(v(p({},qa.content.attrs),{id:Qt.getContentId(n,f),dir:o("dir"),"data-part":"content","data-index":f,"data-orientation":d,"data-side":s,"data-reverse":o("reverse")?"":void 0,"data-clone":E(m),role:m?"presentation":void 0,"aria-hidden":m?!0:void 0,style:{display:"flex",flexDirection:d==="vertical"?"column":"row",flexShrink:0,backfaceVisibility:"hidden",WebkitBackfaceVisibility:"hidden",willChange:l?"auto":"transform",transform:"translateZ(0)",[h?"minWidth":"minHeight"]:"auto",contain:"paint"}}))},getEdgeProps(u){let{side:f}=u,m=o("dir");return t.element(v(p({},qa.edge.attrs),{dir:m,"data-part":"edge","data-side":f,"data-orientation":d,style:p({pointerEvents:"none",position:"absolute"},Vx({side:f,dir:m}))}))},getItemProps(){return t.element(v(p({},qa.item.attrs),{dir:o("dir"),style:{[h?"marginBlock":"marginInline"]:"calc(var(--marquee-spacing) / 2)"}}))}}}function Sv(e){let{rootSize:t,contentSize:n,speed:r,multiplier:i,autoFill:a}=e;return a?n*i/r:n{"use strict";Ce();se();Ox=j("marquee").parts("root","viewport","content","edge","item"),qa=Ox.build(),Qt={getRootId:e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`marquee:${e.id}`},getViewportId:e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.viewport)!=null?n:`marquee:${e.id}:viewport`},getContentId:(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.content)==null?void 0:r.call(n,t))!=null?i:`marquee:${e.id}:content:${t}`},getRootEl:e=>e.getById(Qt.getRootId(e)),getViewportEl:e=>e.getById(Qt.getViewportId(e)),getContentEl:(e,t)=>e.getById(Qt.getContentId(e,t))},Vx=e=>{let{side:t}=e;switch(t){case"start":return{top:0,insetInlineStart:0,height:"100%"};case"end":return{top:0,insetInlineEnd:0,height:"100%"};case"top":return{top:0,insetInline:0,width:"100%"};case"bottom":return{bottom:0,insetInline:0,width:"100%"}}},xx=e=>{let{side:t,dir:n}=e;return t==="top"?"-100%":t==="bottom"?"100%":t==="start"&&n==="ltr"||t==="end"&&n==="rtl"?"-100%":"100%"};Rx=te({props({props:e}){return p({dir:"ltr",side:"start",speed:50,delay:0,loopCount:0,spacing:"1rem",autoFill:!1,pauseOnInteraction:!1,reverse:!1,defaultPaused:!1,translations:{root:"Marquee content"}},e)},refs(){return{dimensions:void 0,initialDurationSet:!1}},context({prop:e,bindable:t}){return{paused:t(()=>({value:e("paused"),defaultValue:e("defaultPaused"),onChange(n){var r;(r=e("onPauseChange"))==null||r({paused:n})}})),duration:t(()=>({defaultValue:2e3/Math.max(.001,e("speed"))}))}},initialState(){return"idle"},computed:{orientation:({prop:e})=>{let t=e("side");return t==="top"||t==="bottom"?"vertical":"horizontal"},isVertical:({prop:e})=>{let t=e("side");return t==="top"||t==="bottom"},multiplier:({refs:e,prop:t})=>{if(!t("autoFill"))return 1;let n=e.get("dimensions");if(!n)return 1;let{rootSize:r,contentSize:i}=n;return i===0?1:in("speed")],()=>{t(["recalculateDuration","restartAnimation"])}),e([()=>n("spacing"),()=>n("side")],()=>{t(["recalculateDuration"])})},on:{PAUSE:{actions:["setPaused"]},RESUME:{actions:["setResumed"]},TOGGLE_PAUSE:{actions:["togglePaused"]},RESTART:{actions:["restartAnimation"]}},effects:["trackDimensions"],states:{idle:{}},implementations:{actions:{setPaused({context:e}){e.set("paused",!0)},setResumed({context:e}){e.set("paused",!1)},togglePaused({context:e}){e.set("paused",t=>!t)},restartAnimation({scope:e}){let t=Qt.getViewportEl(e);if(!t)return;t.querySelectorAll('[data-part="content"]').forEach(r=>{r.style.animation="none",r.offsetHeight,r.style.animation=""})},recalculateDuration({refs:e,computed:t,context:n,prop:r}){let i=e.get("dimensions");if(!i)return;let{rootSize:a,contentSize:o}=i,s=Sv({rootSize:a,contentSize:o,speed:Math.max(.001,r("speed")),multiplier:t("multiplier"),autoFill:r("autoFill")});n.set("duration",s)}},effects:{trackDimensions({scope:e,refs:t,computed:n,context:r,prop:i}){let a=Qt.getRootEl(e),o=Qt.getContentEl(e,0);if(!a||!o)return;let s=e.getWin(),l=()=>{let h=n("isVertical")?a.clientHeight:a.clientWidth,u=n("isVertical")?o.clientHeight:o.clientWidth;return{rootSize:h,contentSize:u}},c=()=>{let{rootSize:h,contentSize:u}=l();if(h>0&&u>0&&(t.set("dimensions",{rootSize:h,contentSize:u}),!t.get("initialDurationSet"))){let f=Sv({rootSize:h,contentSize:u,speed:Math.max(.001,i("speed")),multiplier:n("multiplier"),autoFill:i("autoFill")});r.set("duration",f),t.set("initialDurationSet",!0)}},d=null,g=new s.ResizeObserver(()=>{d===null&&(d=s.requestAnimationFrame(()=>{let{rootSize:h,contentSize:u}=l();t.set("dimensions",{rootSize:h,contentSize:u}),d=null}))});return g.observe(a),g.observe(o),c(),()=>{g.disconnect(),d!==null&&s.cancelAnimationFrame(d)}}}}});kx=class extends X{constructor(){super(...arguments);Z(this,"items",null)}initMachine(t){return new Y(Rx,t)}initApi(){return this.zagConnect(Ax)}buildDom(){let t=this.el.querySelector('[data-part="ssr-preview"]');t&&t.remove();let n=this.el.querySelector('template[data-part="items-template"]');if(!n||(this.items=Array.from(n.content.children).map(l=>l.cloneNode(!0)),n.remove(),this.el.querySelector('[data-scope="marquee"][data-part="root"]')))return;let r=document.createElement("div");r.setAttribute("data-scope","marquee"),r.setAttribute("data-part","root"),r.id=`marquee:${this.el.id}`,r.style.cssText="display:flex;flex-direction:row;position:relative;overflow:hidden;width:100%",this.el.appendChild(r);let i=document.createElement("div");r.appendChild(i),this.spreadProps(i,this.api.getEdgeProps({side:"start"}));let a=document.createElement("div");a.setAttribute("data-scope","marquee"),a.setAttribute("data-part","viewport"),a.id=`marquee:${this.el.id}:viewport`,a.style.cssText="display:flex;width:100%",r.appendChild(a);let o=document.createElement("div");o.setAttribute("data-scope","marquee"),o.setAttribute("data-part","content"),o.setAttribute("data-index","0"),o.id=`marquee:${this.el.id}:content:0`,o.style.cssText="display:flex;flex-direction:row;flex-shrink:0",a.appendChild(o),this.items.forEach(l=>{o.appendChild(l.cloneNode(!0))});let s=document.createElement("div");r.appendChild(s),this.spreadProps(s,this.api.getEdgeProps({side:"end"}))}render(){if(!this.items)return;let t=this.el.querySelector('[data-scope="marquee"][data-part="root"]');if(!t)return;this.spreadProps(t,this.api.getRootProps());let n=t.querySelector('[data-part="edge"][data-side="start"]');n&&this.spreadProps(n,this.api.getEdgeProps({side:"start"}));let r=t.querySelector('[data-part="viewport"]');if(!r)return;this.spreadProps(r,this.api.getViewportProps());let i=Array.from(r.querySelectorAll(':scope > [data-part="content"]'));for(;i.length>this.api.contentCount;){let o=i.pop();o&&r.removeChild(o)}Array.from({length:this.api.contentCount}).forEach((o,s)=>{let l=i[s];l||(l=document.createElement("div"),r.appendChild(l),this.items.forEach(c=>{let d=c.cloneNode(!0);l.appendChild(d)})),this.spreadProps(l,this.api.getContentProps({index:s})),l.querySelectorAll('[data-part="item"]').forEach(c=>{this.spreadProps(c,this.api.getItemProps())})});let a=t.querySelector('[data-part="edge"][data-side="end"]');a&&this.spreadProps(a,this.api.getEdgeProps({side:"end"}))}};Nx={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=new kx(e,v(p({},Pv(e)),{onPauseChange:r=>{let i=V(e,"onPauseChange");i&&this.liveSocket.main.isConnected()&&t(i,{id:e.id,paused:r.paused});let a=V(e,"onPauseChangeClient");a&&e.dispatchEvent(new CustomEvent(a,{bubbles:!0,detail:{id:e.id,paused:r.paused}}))},onLoopComplete:()=>{let r=V(e,"onLoopComplete");r&&this.liveSocket.main.isConnected()&&t(r,{id:e.id});let i=V(e,"onLoopCompleteClient");i&&e.dispatchEvent(new CustomEvent(i,{bubbles:!0,detail:{id:e.id}}))},onComplete:()=>{let r=V(e,"onComplete");r&&this.liveSocket.main.isConnected()&&t(r,{id:e.id});let i=V(e,"onCompleteClient");i&&e.dispatchEvent(new CustomEvent(i,{bubbles:!0,detail:{id:e.id}}))}}));n.buildDom(),n.init(),this.marquee=n,this.onPause=()=>n.api.pause(),this.onResume=()=>n.api.resume(),this.onTogglePause=()=>n.api.togglePause(),e.addEventListener("corex:marquee:pause",this.onPause),e.addEventListener("corex:marquee:resume",this.onResume),e.addEventListener("corex:marquee:toggle-pause",this.onTogglePause),this.handlers=[],this.handlers.push(this.handleEvent("marquee_pause",r=>{B(e.id,G(r))&&n.api.pause()})),this.handlers.push(this.handleEvent("marquee_resume",r=>{B(e.id,G(r))&&n.api.resume()})),this.handlers.push(this.handleEvent("marquee_toggle_pause",r=>{B(e.id,G(r))&&n.api.togglePause()}))},updated(){var e;(e=this.marquee)==null||e.updateProps(Pv(this.el))},destroyed(){var e;if(this.onPause&&this.el.removeEventListener("corex:marquee:pause",this.onPause),this.onResume&&this.el.removeEventListener("corex:marquee:resume",this.onResume),this.onTogglePause&&this.el.removeEventListener("corex:marquee:toggle-pause",this.onTogglePause),this.handlers)for(let t of this.handlers)this.removeHandleEvent(t);(e=this.marquee)==null||e.destroy()}}});var Hv={};fe(Hv,{Menu:()=>aA});function _x(...e){let t={};for(let n of e){if(!n)continue;for(let i in t){if(i.startsWith("on")&&typeof t[i]=="function"&&typeof n[i]=="function"){t[i]=vt(n[i],t[i]);continue}if(i==="className"||i==="class"){t[i]=Lx(t[i],n[i]);continue}if(i==="style"){t[i]=Fx(t[i],n[i]);continue}t[i]=n[i]!==void 0?n[i]:t[i]}for(let i in n)t[i]===void 0&&(t[i]=n[i]);let r=Object.getOwnPropertySymbols(n);for(let i of r)t[i]=n[i]}return t}function zx(e,t){if(!e)return;let n=be(e),r=new n.CustomEvent(Wd,{detail:{value:t}});e.dispatchEvent(r)}function Yx(e){var n;let t=Zr(e);return(n=En(e))!=null?n:e.getDoc().getElementById(t)}function Lv(e,t){if(!ye(e))return!1;for(let n in t){let r=t[n],i=Yx(r.scope);if(i&&ge(i,e))return!0;let a=r.refs.get("children");if(Object.keys(a).length>0&&Lv(e,a))return!0}return!1}function Xx(e,t){let n=Nn(e),{top:r,right:i,left:a,bottom:o}=Kg(n),[s]=t.split("-");return{top:[a,r,i,o],right:[r,i,o,a],bottom:[r,a,o,i],left:[i,r,a,o]}[s]}function Mv(e,t){let{x:n,y:r}=t,i=!1;for(let a=0,o=e.length-1;ar!=d>r&&n<(c-s)*(r-l)/(d-l)+s&&(i=!i)}return i}function Av(e){let t=e.parent;for(;t&&t.context.get("isSubmenu");)t=t.refs.get("parent");t==null||t.send({type:"CLOSE"})}function Zx(e,t){return e?Mv(e,t):!1}function Jx(e,t,n){let r=Object.keys(e).length>0;if(!t)return null;if(!r)return Wa(n,t);for(let i in e){let a=e[i],o=Jr(a.scope);if(o===t)return o}return Wa(n,t)}function ji(e,t){e&&(e.refs.set("pointerRoutingLocked",t),e.context.set("pointerRoutingMode",t?"locked":"interactive"))}function Fv(e){let t=e.context.get("highlightedValue");if(!t)return!1;let n=e.refs.get("children");for(let r in n){let i=n[r];if(i.state.hasTag("open")&&Jr(i.scope)===t)return!0}return!1}function Qx(e,t){e&&(e.refs.get("pointerRoutingLocked")||t&&Fv(e)||ji(e,!1))}function eA(e){e&&(Fv(e)||ji(e,!1))}function tA(e,t){let{context:n,send:r,state:i,computed:a,prop:o,scope:s}=e,l=i.hasTag("open"),c=n.get("isSubmenu"),d=a("isTypingAhead"),g=o("composite"),h=n.get("currentPlacement"),u=n.get("anchorPoint"),f=n.get("highlightedValue"),m=n.get("triggerValue"),P=Lt(v(p({},o("positioning")),{placement:u?"bottom":h}));function C(y){return{id:Wa(s,y.value),disabled:!!y.disabled,highlighted:f===y.value}}function x(y){var A;let S=(A=y.valueText)!=null?A:y.value;return v(p({},y),{id:y.value,valueText:S})}function T(y){let S=C(x(y));return v(p({},S),{checked:!!y.checked})}function b(y){let{closeOnSelect:S,valueText:A,value:N}=y,O=C(y),w=Wa(s,N);return t.element(v(p({},it.item.attrs),{id:w,role:"menuitem","aria-disabled":oe(O.disabled),"data-disabled":E(O.disabled),"data-ownedby":Zr(s),"data-highlighted":E(O.highlighted),"data-value":N,"data-valuetext":A,onDragStart(k){k.currentTarget.matches("a[href]")&&k.preventDefault()},onPointerMove(k){if(O.disabled||k.pointerType!=="mouse")return;let R=k.currentTarget;if(O.highlighted)return;let D=Ze(k);r({type:"ITEM_POINTERMOVE",id:w,target:R,closeOnSelect:S,point:D})},onPointerLeave(k){var W;if(O.disabled||k.pointerType!=="mouse"||!((W=e.event.previous())==null?void 0:W.type.includes("POINTER")))return;let D=k.currentTarget;r({type:"ITEM_POINTERLEAVE",id:w,target:D,closeOnSelect:S})},onPointerDown(k){if(O.disabled)return;let R=k.currentTarget;r({type:"ITEM_POINTERDOWN",target:R,id:w,closeOnSelect:S})},onClick(k){if(xr(k)||Vn(k)||O.disabled)return;let R=k.currentTarget;r({type:"ITEM_CLICK",target:R,id:w,closeOnSelect:S})}}))}return{highlightedValue:f,open:l,setOpen(y){i.hasTag("open")!==y&&r({type:y?"OPEN":"CLOSE"})},triggerValue:m,setTriggerValue(y){r({type:"TRIGGER_VALUE.SET",value:y})},setHighlightedValue(y){r({type:"HIGHLIGHTED.SET",value:y})},setParent(y){r({type:"PARENT.SET",value:y,id:y.prop("id")})},setChild(y){r({type:"CHILD.SET",value:y,id:y.prop("id")})},reposition(y={}){r({type:"POSITIONING.SET",options:y})},addItemListener(y){let S=s.getById(y.id);if(!S)return;let A=()=>{var N;return(N=y.onSelect)==null?void 0:N.call(y)};return S.addEventListener(Wd,A),()=>S.removeEventListener(Wd,A)},getContextTriggerProps(y={}){let{value:S}=y,A=S==null?!1:m===S,N=qd(s,S);return t.element(v(p({},it.contextTrigger.attrs),{dir:o("dir"),id:N,"data-ownedby":s.id,"data-value":S,"data-current":E(A),"data-state":l?"open":"closed",onPointerDown(O){if(O.pointerType==="mouse")return;let w=Ze(O);r({type:"CONTEXT_MENU_START",point:w,value:S})},onPointerCancel(O){O.pointerType!=="mouse"&&r({type:"CONTEXT_MENU_CANCEL"})},onPointerMove(O){O.pointerType!=="mouse"&&r({type:"CONTEXT_MENU_CANCEL"})},onPointerUp(O){O.pointerType!=="mouse"&&r({type:"CONTEXT_MENU_CANCEL"})},onContextMenu(O){let w=Ze(O),k=l&&S!=null&&!A;r({type:k?"TRIGGER_VALUE.SET":"CONTEXT_MENU",point:w,value:S}),O.preventDefault()},style:{WebkitTouchCallout:"none",WebkitUserSelect:"none",userSelect:"none"}}))},getTriggerItemProps(y){let S=y.getTriggerProps();return _x(b({value:S.id}),S)},getTriggerProps(y={}){let{value:S}=y,A=S==null?!1:m===S,N=Jr(s,S);return t.button(v(p(v(p({},c?it.triggerItem.attrs:it.trigger.attrs),{"data-placement":n.get("currentPlacement"),type:"button",dir:o("dir"),id:N}),S!=null&&{"data-ownedby":s.id,"data-value":S,"data-current":E(A)}),{"data-uid":o("id"),"aria-haspopup":g?"menu":"dialog","aria-controls":Zr(s),"data-controls":Zr(s),"aria-expanded":S==null?l:l&&A,"data-state":l?"open":"closed",onPointerMove(O){if(O.pointerType!=="mouse"||il(O.currentTarget)||!c)return;let k=Ze(O);r({type:"TRIGGER_POINTERMOVE",target:O.currentTarget,point:k})},onPointerLeave(O){if(il(O.currentTarget)||O.pointerType!=="mouse"||!c)return;ji(e.refs.get("parent"),!0);let w=Ze(O);r({type:"TRIGGER_POINTERLEAVE",target:O.currentTarget,point:w})},onPointerDown(O){il(O.currentTarget)||tr(O)||O.preventDefault()},onClick(O){if(O.defaultPrevented||il(O.currentTarget))return;let w=l&&S!=null&&!A;r({type:w?"TRIGGER_VALUE.SET":"TRIGGER_CLICK",target:O.currentTarget,value:S})},onBlur(){r({type:"TRIGGER_BLUR"})},onFocus(){r({type:"TRIGGER_FOCUS"})},onKeyDown(O){if(O.defaultPrevented)return;let w={ArrowDown(){r({type:"ARROW_DOWN",value:S})},ArrowUp(){r({type:"ARROW_UP",value:S})},Enter(){r({type:"ARROW_DOWN",src:"enter",value:S})},Space(){r({type:"ARROW_DOWN",src:"space",value:S})}},k=ve(O,{orientation:"vertical",dir:o("dir")}),R=w[k];R&&(O.preventDefault(),R(O))}}))},getIndicatorProps(){return t.element(v(p({},it.indicator.attrs),{dir:o("dir"),"data-state":l?"open":"closed"}))},getPositionerProps(){return t.element(v(p({},it.positioner.attrs),{dir:o("dir"),id:kv(s),style:P.floating}))},getArrowProps(){return t.element(v(p({id:$x(s)},it.arrow.attrs),{dir:o("dir"),style:P.arrow}))},getArrowTipProps(){return t.element(v(p({},it.arrowTip.attrs),{dir:o("dir"),style:P.arrowTip}))},getContentProps(){return t.element(v(p({},it.content.attrs),{id:Zr(s),"aria-label":o("aria-label"),hidden:!l,"data-state":l?"open":"closed",role:g?"menu":"dialog",tabIndex:0,dir:o("dir"),"aria-activedescendant":a("highlightedId")||void 0,"aria-labelledby":u?qd(s,m!=null?m:void 0):Jr(s,m!=null?m:void 0),"data-placement":h,onPointerEnter(y){y.pointerType==="mouse"&&r({type:"MENU_POINTERENTER"})},onKeyDown(y){if(y.defaultPrevented||!ge(y.currentTarget,Q(y)))return;let S=Q(y);if(!((S==null?void 0:S.closest("[role=menu]"))===y.currentTarget||S===y.currentTarget))return;if(y.key==="Tab"&&!$o(y)){y.preventDefault();return}let N={ArrowDown(){r({type:"ARROW_DOWN"})},ArrowUp(){r({type:"ARROW_UP"})},ArrowLeft(){r({type:"ARROW_LEFT"})},ArrowRight(){r({type:"ARROW_RIGHT"})},Enter(){r({type:"ENTER"})},Space(k){var R;d?r({type:"TYPEAHEAD",key:k.key}):(R=N.Enter)==null||R.call(N,k)},Home(){r({type:"HOME"})},End(){r({type:"END"})}},O=ve(y,{dir:o("dir")}),w=N[O];if(w){w(y),y.stopPropagation(),y.preventDefault();return}o("typeahead")&&Eg(y)&&(Fe(y)||xt(S)||(r({type:"TYPEAHEAD",key:y.key}),y.preventDefault()))}}))},getSeparatorProps(){return t.element(v(p({},it.separator.attrs),{role:"separator",dir:o("dir"),"aria-orientation":"horizontal"}))},getItemState:C,getItemProps:b,getOptionItemState:T,getOptionItemProps(y){let{type:S,disabled:A,closeOnSelect:N}=y,O=x(y),w=T(y);return p(p({},b(O)),t.element(v(p({"data-type":S},it.item.attrs),{dir:o("dir"),"data-value":O.value,role:`menuitem${S}`,"aria-checked":!!w.checked,"data-state":w.checked?"checked":"unchecked",onClick(k){if(A||xr(k)||Vn(k))return;let R=k.currentTarget;r({type:"ITEM_CLICK",target:R,option:O,closeOnSelect:N})}})))},getItemIndicatorProps(y){let S=T(Fl(y)),A=S.checked?"checked":"unchecked";return t.element(v(p({},it.itemIndicator.attrs),{dir:o("dir"),"data-disabled":E(S.disabled),"data-highlighted":E(S.highlighted),"data-state":tt(y,"checked")?A:void 0,hidden:tt(y,"checked")?!S.checked:void 0}))},getItemTextProps(y){let S=T(Fl(y)),A=S.checked?"checked":"unchecked";return t.element(v(p({},it.itemText.attrs),{dir:o("dir"),"data-disabled":E(S.disabled),"data-highlighted":E(S.highlighted),"data-state":tt(y,"checked")?A:void 0}))},getItemGroupLabelProps(y){return t.element(v(p({},it.itemGroupLabel.attrs),{id:wv(s,y.htmlFor),dir:o("dir")}))},getItemGroupProps(y){return t.element(v(p({id:Hx(s,y.id)},it.itemGroup.attrs),{dir:o("dir"),"aria-labelledby":wv(s,y.id),role:"group"}))}}}function iA(e){let t=e.parentElement;for(;t;){if(t.getAttribute("phx-hook")==="Menu")return t;t=t.parentElement}return null}function Kd(e){e.renderSubmenuTriggers();for(let t of e.children)Kd(t)}function _v(e){let t=e.el;e.updateProps({id:t.id.replace(/^menu:/,""),closeOnSelect:I(t,"closeOnSelect"),loopFocus:I(t,"loopFocus"),typeahead:I(t,"typeahead"),composite:I(t,"composite"),defaultHighlightedValue:V(t,"defaultHighlightedValue"),dir:U(t),positioning:nt(t)});for(let n of e.children)_v(n)}function $v(e){for(let t of[...e.children])$v(t),t.destroy()}var Dx,it,Lx,Mx,Tv,Fx,Jr,qd,Zr,$x,kv,Hx,Wa,Xr,wv,En,Ov,Nv,Bx,Gx,Dv,Vv,rl,Ka,Ux,qx,jd,Wx,Kx,jx,il,xv,Wd,Bt,Ki,nA,rA,Rv,aA,Bv=ne(()=>{"use strict";wi();_r();gr();gn();Di();Xo();Ln();se();Dx=j("menu").parts("arrow","arrowTip","content","contextTrigger","indicator","item","itemGroup","itemGroupLabel","itemIndicator","itemText","positioner","separator","trigger","triggerItem"),it=Dx.build(),Lx=(...e)=>e.map(t=>{var n;return(n=t==null?void 0:t.trim)==null?void 0:n.call(t)}).filter(Boolean).join(" "),Mx=/((?:--)?(?:\w+-?)+)\s*:\s*([^;]*)/g,Tv=e=>{let t={},n;for(;n=Mx.exec(e);)t[n[1]]=n[2];return t},Fx=(e,t)=>{if(sa(e)){if(sa(t))return`${e};${t}`;e=Tv(e)}else sa(t)&&(t=Tv(t));return Object.assign({},e!=null?e:{},t!=null?t:{})};Jr=(e,t)=>{var r;let n=(r=e.ids)==null?void 0:r.trigger;return n!=null?Xe(n)?n(t):n:t?`menu:${e.id}:trigger:${t}`:`menu:${e.id}:trigger`},qd=(e,t)=>{var r;let n=(r=e.ids)==null?void 0:r.contextTrigger;return n!=null?Xe(n)?n(t):n:t?`menu:${e.id}:ctx-trigger:${t}`:`menu:${e.id}:ctx-trigger`},Zr=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.content)!=null?n:`menu:${e.id}:content`},$x=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.arrow)!=null?n:`menu:${e.id}:arrow`},kv=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.positioner)!=null?n:`menu:${e.id}:popper`},Hx=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.group)==null?void 0:r.call(n,t))!=null?i:`menu:${e.id}:group:${t}`},Wa=(e,t)=>`${e.id}/${t}`,Xr=e=>{var t;return(t=e==null?void 0:e.dataset.value)!=null?t:null},wv=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.groupLabel)==null?void 0:r.call(n,t))!=null?i:`menu:${e.id}:group-label:${t}`},En=e=>e.getById(Zr(e)),Ov=e=>e.getById(kv(e)),Nv=e=>e.getById(Jr(e)),Bx=(e,t)=>t?e.getById(Wa(e,t)):null,Gx=e=>e.getById(qd(e)),Dv=e=>xe(e.getDoc(),`[data-scope="menu"][data-part="trigger"][data-ownedby="${e.id}"]`),Vv=e=>xe(e.getDoc(),`[data-scope="menu"][data-part="context-trigger"][data-ownedby="${e.id}"]`),rl=(e,t)=>{var n;return t==null?(n=Nv(e))!=null?n:Dv(e)[0]:e.getById(Jr(e,t))},Ka=e=>{let n=`[role^="menuitem"][data-ownedby=${CSS.escape(Zr(e))}]:not([data-disabled])`;return xe(En(e),n)},Ux=e=>Tt(Ka(e)),qx=e=>qt(Ka(e)),jd=(e,t)=>t?e.id===t||e.dataset.value===t:!1,Wx=(e,t)=>{var i;let n=Ka(e),r=n.findIndex(a=>jd(a,t.value));return Qu(n,r,{loop:(i=t.loop)!=null?i:t.loopFocus})},Kx=(e,t)=>{var i;let n=Ka(e),r=n.findIndex(a=>jd(a,t.value));return eg(n,r,{loop:(i=t.loop)!=null?i:t.loopFocus})},jx=(e,t)=>{var i;let n=Ka(e),r=n.find(a=>jd(a,t.value));return ct(n,{state:t.typeaheadState,key:t.key,activeId:(i=r==null?void 0:r.id)!=null?i:null})},il=e=>ye(e)&&(e.dataset.disabled===""||e.hasAttribute("disabled")),xv=e=>{var t;return!!((t=e==null?void 0:e.getAttribute("role"))!=null&&t.startsWith("menuitem"))&&!!(e!=null&&e.hasAttribute("data-controls"))},Wd="menu:select";({not:Bt,and:Ki,or:nA}=Te()),rA=te({props({props:e}){return v(p({closeOnSelect:!0,typeahead:!0,composite:!0,loopFocus:!1,navigate(t){yi(t.node)}},e),{positioning:p({placement:"bottom-start",gutter:8},e.positioning)})},initialState({prop:e}){return e("open")||e("defaultOpen")?"open":"idle"},context({bindable:e,prop:t,scope:n}){return{highlightedValue:e(()=>({defaultValue:t("defaultHighlightedValue")||null,value:t("highlightedValue"),onChange(r){var i;(i=t("onHighlightChange"))==null||i({highlightedValue:r})}})),lastHighlightedValue:e(()=>({defaultValue:null})),currentPlacement:e(()=>({defaultValue:void 0})),intentPolygon:e(()=>({defaultValue:null})),anchorPoint:e(()=>({defaultValue:null,hash(r){return`x: ${r==null?void 0:r.x}, y: ${r==null?void 0:r.y}`}})),isSubmenu:e(()=>({defaultValue:!1})),triggerValue:e(()=>{var r;return{defaultValue:(r=t("defaultTriggerValue"))!=null?r:null,value:t("triggerValue"),onChange(i){let a=t("onTriggerValueChange");if(!a)return;let o=rl(n,i);a({value:i,triggerElement:o})}}}),pointerRoutingMode:e(()=>({defaultValue:"interactive"}))}},refs(){return{parent:null,children:{},pointerRoutingLocked:!1,typeaheadState:p({},ct.defaultOptions),positioningOverride:{}}},computed:{isRtl:({prop:e})=>e("dir")==="rtl",isTypingAhead:({refs:e})=>e.get("typeaheadState").keysSoFar!=="",highlightedId:({context:e,scope:t,refs:n})=>Jx(n.get("children"),e.get("highlightedValue"),t)},watch({track:e,action:t,context:n,prop:r}){e([()=>n.get("isSubmenu")],()=>{t(["setSubmenuPlacement"])}),e([()=>n.hash("anchorPoint")],()=>{n.get("anchorPoint")&&t(["reposition"])}),e([()=>r("open")],()=>{t(["toggleVisibility"])})},on:{"TRIGGER_VALUE.SET":{actions:["setTriggerValue","setAnchorPoint","reposition","focusMenu"]},"PARENT.SET":{actions:["setParentMenu"]},"CHILD.SET":{actions:["setChildMenu"]},OPEN:[{guard:"isOpenControlled",actions:["setTriggerValue","invokeOnOpen"]},{target:"open",actions:["setTriggerValue","invokeOnOpen"]}],OPEN_AUTOFOCUS:[{guard:"isOpenControlled",actions:["setTriggerValue","invokeOnOpen"]},{target:"open",actions:["setTriggerValue","highlightFirstItem","invokeOnOpen"]}],CLOSE:[{guard:"isOpenControlled",actions:["invokeOnClose","releaseParentRoutingLock"]},{target:"closed",actions:["invokeOnClose","releaseParentRoutingLock","focusTrigger"]}],"HIGHLIGHTED.RESTORE":{actions:["restoreHighlightedItem"]},"HIGHLIGHTED.SET":{actions:["setHighlightedItem"]},"HIGHLIGHTED.SUGGEST":{actions:["suggestHighlightedItem"]}},states:{idle:{tags:["closed"],on:{"CONTROLLED.OPEN":{target:"open"},"CONTROLLED.CLOSE":{target:"closed"},CONTEXT_MENU_START:{target:"opening:contextmenu",actions:["setAnchorPoint","setTriggerValue"]},CONTEXT_MENU:[{guard:"isOpenControlled",actions:["setAnchorPoint","setTriggerValue","invokeOnOpen"]},{target:"open",actions:["setAnchorPoint","setTriggerValue","invokeOnOpen"]}],TRIGGER_CLICK:[{guard:"isOpenControlled",actions:["invokeOnOpen","setTriggerValue"]},{target:"open",actions:["invokeOnOpen","setTriggerValue"]}],TRIGGER_FOCUS:{guard:Bt("isSubmenu"),target:"closed"},TRIGGER_POINTERMOVE:{guard:"isSubmenu",target:"opening"}}},"opening:contextmenu":{tags:["closed"],effects:["waitForLongPress"],on:{"CONTROLLED.OPEN":{target:"open"},"CONTROLLED.CLOSE":{target:"closed",actions:["focusTrigger"]},CONTEXT_MENU_CANCEL:[{guard:"isOpenControlled",actions:["invokeOnClose","releaseParentRoutingLock"]},{target:"closed",actions:["invokeOnClose","releaseParentRoutingLock","focusTrigger"]}],"LONG_PRESS.OPEN":[{guard:"isOpenControlled",actions:["setTriggerValue","invokeOnOpen"]},{target:"open",actions:["setTriggerValue","invokeOnOpen"]}]}},opening:{tags:["closed"],effects:["waitForOpenDelay"],on:{"CONTROLLED.OPEN":{target:"open"},"CONTROLLED.CLOSE":{target:"closed",actions:["focusTrigger"]},BLUR:[{guard:"isOpenControlled",actions:["invokeOnClose","releaseParentRoutingLock"]},{target:"closed",actions:["invokeOnClose","releaseParentRoutingLock","focusTrigger"]}],TRIGGER_POINTERLEAVE:[{guard:"isOpenControlled",actions:["invokeOnClose","releaseParentRoutingLock"]},{target:"closed",actions:["invokeOnClose","releaseParentRoutingLock","focusTrigger"]}],"DELAY.OPEN":[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["invokeOnOpen"]}]}},closing:{tags:["open"],effects:["trackPointerMove","trackInteractOutside","waitForCloseDelay"],on:{"CONTROLLED.OPEN":{target:"open"},"CONTROLLED.CLOSE":{target:"closed",actions:["focusParentMenu","restoreParentHighlightedItem"]},MENU_POINTERENTER:{target:"open",actions:["clearIntentPolygon"]},POINTER_MOVED_AWAY_FROM_SUBMENU:[{guard:"isOpenControlled",actions:["invokeOnClose","releaseParentRoutingLock"]},{target:"closed",actions:["focusParentMenu","restoreParentHighlightedItem"]}],"DELAY.CLOSE":[{guard:"isOpenControlled",actions:["invokeOnClose","releaseParentRoutingLock"]},{target:"closed",actions:["focusParentMenu","restoreParentHighlightedItem","invokeOnClose","releaseParentRoutingLock"]}]}},closed:{tags:["closed"],entry:["clearHighlightedItem","unlockParentOnClose","clearAnchorPoint"],on:{"CONTROLLED.OPEN":[{guard:nA("isOpenAutoFocusEvent","isArrowDownEvent"),target:"open",actions:["highlightFirstItem"]},{guard:"isArrowUpEvent",target:"open",actions:["highlightLastItem"]},{target:"open"}],CONTEXT_MENU_START:{target:"opening:contextmenu",actions:["setAnchorPoint","setTriggerValue"]},CONTEXT_MENU:[{guard:"isOpenControlled",actions:["setAnchorPoint","setTriggerValue","invokeOnOpen"]},{target:"open",actions:["setAnchorPoint","setTriggerValue","invokeOnOpen"]}],TRIGGER_CLICK:[{guard:"isOpenControlled",actions:["invokeOnOpen","setTriggerValue"]},{target:"open",actions:["invokeOnOpen","setTriggerValue"]}],TRIGGER_POINTERMOVE:{guard:"isTriggerItem",target:"opening"},TRIGGER_BLUR:{target:"idle"},ARROW_DOWN:[{guard:"isOpenControlled",actions:["setTriggerValue","invokeOnOpen"]},{target:"open",actions:["setTriggerValue","highlightFirstItem","invokeOnOpen"]}],ARROW_UP:[{guard:"isOpenControlled",actions:["setTriggerValue","invokeOnOpen"]},{target:"open",actions:["setTriggerValue","highlightLastItem","invokeOnOpen"]}]}},open:{tags:["open"],effects:["trackInteractOutside","trackFocusVisible","trackPositioning","scrollToHighlightedItem"],entry:["focusMenu","unlockParentOnOpen"],on:{"CONTROLLED.CLOSE":[{target:"closed",guard:"isArrowLeftEvent",actions:["focusParentMenu"]},{target:"closed",actions:["focusTrigger"]}],TRIGGER_CLICK:[{guard:Ki(Bt("isTriggerItem"),"isOpenControlled"),actions:["invokeOnClose","releaseParentRoutingLock"]},{guard:Bt("isTriggerItem"),target:"closed",actions:["invokeOnClose","releaseParentRoutingLock","focusTrigger"]}],CONTEXT_MENU:{actions:["setAnchorPoint","setTriggerValue","focusMenu"]},ARROW_UP:{actions:["highlightPrevItem","focusMenu"]},ARROW_DOWN:{actions:["highlightNextItem","focusMenu"]},ARROW_LEFT:[{guard:Ki("isSubmenu","isOpenControlled"),actions:["invokeOnClose","releaseParentRoutingLock"]},{guard:"isSubmenu",target:"closed",actions:["focusParentMenu","invokeOnClose","releaseParentRoutingLock"]}],HOME:{actions:["highlightFirstItem","focusMenu"]},END:{actions:["highlightLastItem","focusMenu"]},ARROW_RIGHT:{guard:"isTriggerItemHighlighted",actions:["openSubmenu"]},ENTER:[{guard:"isTriggerItemHighlighted",actions:["openSubmenu"]},{actions:["clickHighlightedItem"]}],ITEM_POINTERMOVE:[{guard:Bt("isPointerRoutingLocked"),actions:["setHighlightedItem","focusMenu","closeSiblingMenus"]},{actions:["setLastHighlightedItem","closeSiblingMenus"]}],ITEM_POINTERLEAVE:{guard:Ki(Bt("isPointerRoutingLocked"),Bt("isTriggerItem")),actions:["clearHighlightedItem"]},ITEM_CLICK:[{guard:Ki(Bt("isTriggerItemHighlighted"),Bt("isHighlightedItemEditable"),"closeOnSelect","isOpenControlled"),actions:["invokeOnSelect","setOptionState","closeRootMenu","invokeOnClose","releaseParentRoutingLock"]},{guard:Ki(Bt("isTriggerItemHighlighted"),Bt("isHighlightedItemEditable"),"closeOnSelect"),target:"closed",actions:["invokeOnSelect","setOptionState","closeRootMenu","invokeOnClose","releaseParentRoutingLock","focusTrigger"]},{guard:Ki(Bt("isTriggerItemHighlighted"),Bt("isHighlightedItemEditable")),actions:["invokeOnSelect","setOptionState"]},{actions:["setHighlightedItem"]}],TRIGGER_POINTERMOVE:{guard:"isTriggerItem",actions:["setIntentPolygon"]},TRIGGER_POINTERLEAVE:{target:"closing",actions:["setIntentPolygon"]},ITEM_POINTERDOWN:{actions:["setHighlightedItem"]},TYPEAHEAD:{actions:["highlightMatchedItem"]},FOCUS_MENU:{actions:["focusMenu"]},"POSITIONING.SET":{actions:["reposition"]}}}},implementations:{guards:{closeOnSelect:({prop:e,event:t})=>{var n;return!!((n=t==null?void 0:t.closeOnSelect)!=null?n:e("closeOnSelect"))},isTriggerItem:({event:e})=>xv(e.target),isTriggerItemHighlighted:({event:e,scope:t,computed:n})=>{var i;let r=(i=e.target)!=null?i:t.getById(n("highlightedId"));return!!(r!=null&&r.hasAttribute("data-controls"))},isSubmenu:({context:e})=>e.get("isSubmenu"),isPointerRoutingLocked:({refs:e})=>e.get("pointerRoutingLocked"),isHighlightedItemEditable:({scope:e,computed:t})=>xt(e.getById(t("highlightedId"))),isOpenControlled:({prop:e})=>e("open")!==void 0,isArrowLeftEvent:({event:e})=>{var t;return((t=e.previousEvent)==null?void 0:t.type)==="ARROW_LEFT"},isArrowUpEvent:({event:e})=>{var t;return((t=e.previousEvent)==null?void 0:t.type)==="ARROW_UP"},isArrowDownEvent:({event:e})=>{var t;return((t=e.previousEvent)==null?void 0:t.type)==="ARROW_DOWN"},isOpenAutoFocusEvent:({event:e})=>{var t;return((t=e.previousEvent)==null?void 0:t.type)==="OPEN_AUTOFOCUS"}},effects:{waitForOpenDelay({send:e}){let t=setTimeout(()=>{e({type:"DELAY.OPEN"})},200);return()=>clearTimeout(t)},waitForCloseDelay({send:e}){let t=setTimeout(()=>{e({type:"DELAY.CLOSE"})},100);return()=>clearTimeout(t)},waitForLongPress({send:e}){let t=setTimeout(()=>{e({type:"LONG_PRESS.OPEN"})},700);return()=>clearTimeout(t)},trackFocusVisible({scope:e}){var t;return Qe({root:(t=e.getRootNode)==null?void 0:t.call(e)})},trackPositioning({context:e,prop:t,scope:n,refs:r}){if(Gx(n)||Vv(n).length>0)return;let a=p(p({},t("positioning")),r.get("positioningOverride"));return e.set("currentPlacement",a.placement),je(()=>rl(n,e.get("triggerValue")),()=>Ov(n),v(p({},a),{defer:!0,onComplete(l){e.set("currentPlacement",l.placement)}}))},trackInteractOutside({refs:e,scope:t,prop:n,context:r,send:i}){let a=()=>En(t),o=!0,s=l=>Vv(t).some(c=>ge(c,l));return Mt(a,{type:"menu",defer:!0,exclude:[Nv(t),...Dv(t)].filter(Boolean),onInteractOutside:n("onInteractOutside"),onRequestDismiss:n("onRequestDismiss"),onFocusOutside(l){var d;(d=n("onFocusOutside"))==null||d(l);let c=Q(l.detail.originalEvent);if(s(c)){l.preventDefault();return}if(Lv(c,e.get("children"))){l.preventDefault();return}},onEscapeKeyDown(l){var c;(c=n("onEscapeKeyDown"))==null||c(l),r.get("isSubmenu")&&l.preventDefault(),Av({parent:e.get("parent")})},onPointerDownOutside(l){var d;(d=n("onPointerDownOutside"))==null||d(l);let c=Q(l.detail.originalEvent);if(s(c)&&l.detail.contextmenu){l.preventDefault();return}o=!l.detail.focusable},onDismiss(){i({type:"CLOSE",src:"interact-outside",restoreFocus:o})}})},trackPointerMove({context:e,scope:t,send:n,refs:r}){let i=r.get("parent");if(!i)return;ji(i,!0);let a=t.getDoc();return re(a,"pointermove",o=>{Zx(e.get("intentPolygon"),{x:o.clientX,y:o.clientY})||(n({type:"POINTER_MOVED_AWAY_FROM_SUBMENU"}),ji(i,!1))})},scrollToHighlightedItem({scope:e,computed:t}){let n=()=>{if(sr()==="pointer")return;let a=e.getById(t("highlightedId")),o=En(e);Rn(a,{rootEl:o,block:"nearest"})};return $(()=>{lr("virtual"),n()}),kt(()=>En(e),{defer:!0,attributes:["aria-activedescendant"],callback:n})}},actions:{setAnchorPoint({context:e,event:t}){e.set("anchorPoint",n=>Ie(n,t.point)?n:t.point)},setSubmenuPlacement({context:e,computed:t,refs:n}){if(!e.get("isSubmenu"))return;let r=t("isRtl")?"left-start":"right-start";n.set("positioningOverride",{placement:r,gutter:0})},reposition({context:e,scope:t,prop:n,event:r,refs:i}){var g,h,u;let a=()=>Ov(t),o=(g=r.point)!=null?g:e.get("anchorPoint"),s=o?()=>p({width:0,height:0},o):void 0,l=p(p({},n("positioning")),i.get("positioningOverride")),c=(h=r.value)!=null?h:e.get("triggerValue");je(()=>rl(t,c),a,v(p(v(p({},l),{defer:!0,getAnchorRect:s}),(u=r.options)!=null?u:{}),{listeners:!1,onComplete(f){e.set("currentPlacement",f.placement)}}))},setOptionState({event:e}){if(!e.option)return;let{checked:t,onCheckedChange:n,type:r}=e.option;r==="radio"?n==null||n(!0):r==="checkbox"&&(n==null||n(!t))},clickHighlightedItem({scope:e,computed:t,prop:n,context:r}){var o;let i=e.getById(t("highlightedId"));if(!i||i.dataset.disabled)return;let a=r.get("highlightedValue");Vt(i)?(o=n("navigate"))==null||o({value:a,node:i,href:i.href}):queueMicrotask(()=>i.click())},setIntentPolygon({context:e,scope:t,event:n}){let r=En(t),i=e.get("currentPlacement");if(!r||!i)return;let a=r.getBoundingClientRect(),o=Xx(a,i);if(!o)return;let l=rp(i)==="right"?-5:5;e.set("intentPolygon",[v(p({},n.point),{x:n.point.x+l}),...o])},clearIntentPolygon({context:e}){e.set("intentPolygon",null)},clearAnchorPoint({context:e}){e.set("anchorPoint",null)},unlockParentOnOpen({refs:e,context:t,scope:n}){let r=e.get("parent");if(t.get("isSubmenu")){let i=Jr(n);r==null||r.send({type:"HIGHLIGHTED.SUGGEST",value:i})}ji(r,!1)},unlockParentOnClose({refs:e,context:t}){Qx(e.get("parent"),t.get("isSubmenu"))},setHighlightedItem({context:e,event:t}){let n=t.value||Xr(t.target);e.set("highlightedValue",n)},clearHighlightedItem({context:e}){e.set("highlightedValue",null)},focusMenu({scope:e}){$(()=>{let t=En(e),n=nr({root:t,enabled:!ge(t,e.getActiveElement()),filter(r){var i;return!((i=r.role)!=null&&i.startsWith("menuitem"))}});n==null||n.focus({preventScroll:!0})})},highlightFirstItem({context:e,scope:t}){(En(t)?queueMicrotask:$)(()=>{let r=Ux(t);r&&e.set("highlightedValue",Xr(r))})},highlightLastItem({context:e,scope:t}){(En(t)?queueMicrotask:$)(()=>{let r=qx(t);r&&e.set("highlightedValue",Xr(r))})},highlightNextItem({context:e,scope:t,event:n,prop:r}){let i=Wx(t,{loop:n.loop,value:e.get("highlightedValue"),loopFocus:r("loopFocus")});e.set("highlightedValue",Xr(i))},highlightPrevItem({context:e,scope:t,event:n,prop:r}){let i=Kx(t,{loop:n.loop,value:e.get("highlightedValue"),loopFocus:r("loopFocus")});e.set("highlightedValue",Xr(i))},invokeOnSelect({context:e,prop:t,scope:n}){var a;let r=e.get("highlightedValue");if(r==null)return;let i=Bx(n,r);zx(i,r),(a=t("onSelect"))==null||a({value:r})},focusTrigger({scope:e,context:t,event:n}){t.get("isSubmenu")||t.get("anchorPoint")||n.restoreFocus===!1||queueMicrotask(()=>{let r=rl(e,t.get("triggerValue"));r==null||r.focus({preventScroll:!0})})},highlightMatchedItem({scope:e,context:t,event:n,refs:r}){let i=jx(e,{key:n.key,value:t.get("highlightedValue"),typeaheadState:r.get("typeaheadState")});i&&t.set("highlightedValue",Xr(i))},setParentMenu({refs:e,event:t,context:n}){e.set("parent",t.value),n.set("isSubmenu",!0)},setChildMenu({refs:e,event:t}){let n=e.get("children");n[t.id]=t.value,e.set("children",n)},closeSiblingMenus({refs:e,event:t,scope:n}){var o;let r=t.target;if(!xv(r))return;let i=r==null?void 0:r.getAttribute("data-uid"),a=e.get("children");for(let s in a){if(s===i)continue;let l=a[s],c=l.context.get("intentPolygon");c&&t.point&&Mv(c,t.point)||((o=En(n))==null||o.focus({preventScroll:!0}),l.send({type:"CLOSE"}))}},closeRootMenu({refs:e}){Av({parent:e.get("parent")})},openSubmenu({refs:e,scope:t,computed:n}){let r=t.getById(n("highlightedId")),i=r==null?void 0:r.getAttribute("data-uid"),a=e.get("children"),o=i?a[i]:null;o==null||o.send({type:"OPEN_AUTOFOCUS"})},focusParentMenu({refs:e}){var t;(t=e.get("parent"))==null||t.send({type:"FOCUS_MENU"})},setLastHighlightedItem({context:e,event:t}){e.set("lastHighlightedValue",Xr(t.target))},suggestHighlightedItem({context:e,event:t}){let n=t.value;if(n){if(e.get("highlightedValue")!=null){e.set("lastHighlightedValue",n);return}e.set("highlightedValue",n)}},restoreHighlightedItem({context:e}){let t=e.get("lastHighlightedValue");e.set("lastHighlightedValue",null),t&&e.set("highlightedValue",t)},restoreParentHighlightedItem({refs:e}){var t;(t=e.get("parent"))==null||t.send({type:"HIGHLIGHTED.RESTORE"})},invokeOnOpen({prop:e}){var t;(t=e("onOpenChange"))==null||t({open:!0})},invokeOnClose({prop:e}){var t;(t=e("onOpenChange"))==null||t({open:!1})},releaseParentRoutingLock({refs:e,context:t}){t.get("isSubmenu")&&eA(e.get("parent"))},toggleVisibility({prop:e,event:t,send:n}){n({type:e("open")?"CONTROLLED.OPEN":"CONTROLLED.CLOSE",previousEvent:t})},setTriggerValue({context:e,event:t}){t.value!==void 0&&e.set("triggerValue",t.value)}}}}),Rv=class extends X{constructor(){super(...arguments);Z(this,"children",[])}initMachine(t){return new Y(rA,t)}initApi(){return this.zagConnect(tA)}setChild(t){this.api.setChild(t.machine.service),this.children.includes(t)||this.children.push(t)}setParent(t){this.api.setParent(t.machine.service)}isOwnElement(t){return t.closest('[phx-hook="Menu"]')===this.el}renderSubmenuTriggers(){let t=this.el.querySelector('[data-scope="menu"][data-part="content"]');if(!t)return;let n=t.querySelectorAll('[data-scope="menu"][data-nested-menu]');for(let r of n){if(!this.isOwnElement(r))continue;let i=r.dataset.nestedMenu;if(!i)continue;let a=this.children.find(s=>s.el.id===`menu:${i}`);if(!a)continue;let o=()=>{let s=this.api.getTriggerItemProps(a.api);this.spreadProps(r,s)};o(),this.machine.subscribe(o),a.machine.subscribe(o)}}render(){let t=this.el.querySelector('[data-scope="menu"][data-part="trigger"]');t&&this.spreadProps(t,this.api.getTriggerProps());let n=this.el.querySelector('[data-scope="menu"][data-part="positioner"]'),r=this.el.querySelector('[data-scope="menu"][data-part="content"]');if(n&&r){this.spreadProps(n,this.api.getPositionerProps()),this.spreadProps(r,this.api.getContentProps()),r.style.pointerEvents="auto",n.hidden=!this.api.open;let a=!this.el.querySelector('[data-scope="menu"][data-part="trigger"]');(this.api.open||a)&&(r.querySelectorAll('[data-scope="menu"][data-part="item"]').forEach(d=>{if(!this.isOwnElement(d))return;let g=d.dataset.value;if(g){let h=d.hasAttribute("data-disabled");this.spreadProps(d,this.api.getItemProps({value:g,disabled:h||void 0}))}}),r.querySelectorAll('[data-scope="menu"][data-part="item-group"]').forEach(d=>{if(!this.isOwnElement(d))return;let g=d.id;g&&this.spreadProps(d,this.api.getItemGroupProps({id:g}))}),r.querySelectorAll('[data-scope="menu"][data-part="separator"]').forEach(d=>{this.isOwnElement(d)&&this.spreadProps(d,this.api.getSeparatorProps())}))}let i=this.el.querySelector('[data-scope="menu"][data-part="indicator"]');i&&this.spreadProps(i,this.api.getIndicatorProps())}};aA={mounted(){let e=this.el;if(e.hasAttribute("data-nested"))return;let t=this.pushEvent.bind(this),n=this.liveSocket,r=()=>l=>{var g,h;if(I(e,"redirect")&&l.value){let u=e.querySelector(`[data-scope="menu"][data-part="item"][data-value="${CSS.escape(l.value)}"]`);mn(fn(u,l.value),{liveSocket:n})}let c=V(e,"onSelect");c&&J(n)&&t(c,{id:e.id,value:(g=l.value)!=null?g:null});let d=V(e,"onSelectClient");d&&e.dispatchEvent(new CustomEvent(d,{bubbles:!0,detail:{id:e.id,value:(h=l.value)!=null?h:null}}))},i=new Rv(e,{id:e.id.replace(/^menu:/,""),closeOnSelect:I(e,"closeOnSelect"),loopFocus:I(e,"loopFocus"),typeahead:I(e,"typeahead"),composite:I(e,"composite"),defaultHighlightedValue:V(e,"defaultHighlightedValue"),dir:U(e),positioning:nt(e),onSelect:r(),onOpenChange:l=>{var g,h;let c=V(e,"onOpenChange");c&&J(n)&&t(c,{id:e.id,open:(g=l.open)!=null?g:!1});let d=V(e,"onOpenChangeClient");d&&e.dispatchEvent(new CustomEvent(d,{bubbles:!0,detail:{id:e.id,open:(h=l.open)!=null?h:!1}}))}});i.init(),this.menu=i;let a=e.querySelectorAll('[data-scope="menu"][data-nested="menu"]'),o=new Map,s=[];a.forEach(l=>{let c=l.id;if(!c)return;let d=new Rv(l,{id:c.replace(/^menu:/,""),dir:U(l),closeOnSelect:I(l,"closeOnSelect"),loopFocus:I(l,"loopFocus"),typeahead:I(l,"typeahead"),composite:I(l,"composite"),positioning:nt(l),onSelect:r()});d.init(),o.set(c,d),s.push(d)}),setTimeout(()=>{s.forEach(l=>{let c=l.el,d=iA(c);if(!d)return;let g=d===e?this.menu:o.get(d.id);g&&(g.setChild(l),l.setParent(g))}),this.menu&&this.menu.children.length>0&&Kd(this.menu)},0),this.onSetOpen=l=>{let{open:c}=l.detail;i.api.open!==c&&i.api.setOpen(c)},e.addEventListener("corex:menu:set-open",this.onSetOpen),this.handlers=[],this.handlers.push(this.handleEvent("menu_set_open",l=>{let c=l.menu_id;(!c||e.id===c||e.id===`menu:${c}`)&&i.api.setOpen(l.open)})),this.handlers.push(this.handleEvent("menu_open",()=>{this.pushEvent("menu_open_response",{open:i.api.open})}))},updated(){this.el.hasAttribute("data-nested")||this.menu&&(_v(this.menu),this.menu.children.length>0&&Kd(this.menu))},destroyed(){if(!this.el.hasAttribute("data-nested")){if(this.onSetOpen&&this.el.removeEventListener("corex:menu:set-open",this.onSetOpen),this.handlers)for(let e of this.handlers)this.removeHandleEvent(e);this.menu&&($v(this.menu),this.menu.destroy())}}}});var ty={};fe(ty,{NumberInput:()=>LA});function Zd(e,t){if(!(!e||!t.isActiveElement(e)))try{let{selectionStart:n,selectionEnd:r,value:i}=e;return n==null||r==null?void 0:{start:n,end:r,value:i}}catch(n){return}}function sA(e,t,n){if(!(!e||!n.isActiveElement(e))){if(!t){let r=e.value.length;e.setSelectionRange(r,r);return}try{let r=e.value,{start:i,end:a,value:o}=t;if(r===o){e.setSelectionRange(i,a);return}let s=Gv(o,r,i),l=i===a?s:Gv(o,r,a),c=Math.max(0,Math.min(s,r.length)),d=Math.max(c,Math.min(l,r.length));e.setSelectionRange(c,d)}catch(r){let i=e.value.length;e.setSelectionRange(i,i)}}}function Gv(e,t,n){let r=e.slice(0,n),i=e.slice(n),a=0,o=Math.min(r.length,t.length);for(let c=0;c0&&a>=r.length)return a;if(s>=i.length)return t.length-s;if(a>0)return a;if(s>0)return t.length-s;if(n===0&&a===0&&s===0)return t.length;if(e.length>0){let c=n/e.length;return Math.round(c*t.length)}return t.length}function yA(e,t){let{state:n,send:r,prop:i,scope:a,computed:o}=e,s=n.hasTag("focus"),l=o("isDisabled"),c=!!i("readOnly"),d=!!i("required"),g=n.matches("scrubbing"),h=o("isValueEmpty"),u=i("invalid")!==void 0?!!i("invalid"):o("isOutOfRange"),f=l||!o("canIncrement")||c,m=l||!o("canDecrement")||c,P=i("translations");return{focused:s,invalid:u,empty:h,value:o("formattedValue"),valueAsNumber:o("valueAsNumber"),setValue(C){r({type:"VALUE.SET",value:C})},clearValue(){r({type:"VALUE.CLEAR"})},increment(){r({type:"VALUE.INCREMENT"})},decrement(){r({type:"VALUE.DECREMENT"})},setToMax(){r({type:"VALUE.SET",value:i("max")})},setToMin(){r({type:"VALUE.SET",value:i("min")})},focus(){var C;(C=ei(a))==null||C.focus()},getRootProps(){return t.element(v(p({id:lA(a)},yr.root.attrs),{dir:i("dir"),"data-disabled":E(l),"data-focus":E(s),"data-invalid":E(u),"data-scrubbing":E(g)}))},getLabelProps(){return t.label(v(p({},yr.label.attrs),{dir:i("dir"),"data-disabled":E(l),"data-focus":E(s),"data-invalid":E(u),"data-required":E(d),"data-scrubbing":E(g),id:dA(a),htmlFor:ja(a),onClick(){$(()=>{pi(ei(a))})}}))},getControlProps(){return t.element(v(p({},yr.control.attrs),{dir:i("dir"),role:"group","aria-disabled":l,"data-focus":E(s),"data-disabled":E(l),"data-invalid":E(u),"data-scrubbing":E(g),"aria-invalid":oe(u)}))},getValueTextProps(){return t.element(v(p({},yr.valueText.attrs),{dir:i("dir"),"data-disabled":E(l),"data-invalid":E(u),"data-focus":E(s),"data-scrubbing":E(g)}))},getInputProps(){return t.input(v(p({},yr.input.attrs),{dir:i("dir"),name:i("name"),form:i("form"),id:ja(a),role:"spinbutton",defaultValue:o("formattedValue"),pattern:i("formatOptions")?void 0:i("pattern"),inputMode:i("inputMode"),"aria-invalid":oe(u),"data-invalid":E(u),disabled:l,"data-disabled":E(l),readOnly:c,required:i("required"),autoComplete:"off",autoCorrect:"off",spellCheck:"false",type:"text","aria-roledescription":"numberfield","aria-valuemin":i("min"),"aria-valuemax":i("max"),"aria-valuenow":Number.isNaN(o("valueAsNumber"))?void 0:o("valueAsNumber"),"aria-valuetext":o("valueText"),"data-scrubbing":E(g),onFocus(){r({type:"INPUT.FOCUS"})},onBlur(){r({type:"INPUT.BLUR"})},onInput(C){let x=Zd(C.currentTarget,a);r({type:"INPUT.CHANGE",target:C.currentTarget,hint:"set",selection:x})},onBeforeInput(C){var x;try{let{selectionStart:T,selectionEnd:b,value:y}=C.currentTarget,S=y.slice(0,T)+((x=C.data)!=null?x:"")+y.slice(b);o("parser").isValidPartialNumber(S)||C.preventDefault()}catch(T){}},onKeyDown(C){if(C.defaultPrevented||c||$e(C))return;let x=xn(C)*i("step"),b={ArrowUp(){r({type:"INPUT.ARROW_UP",step:x}),C.preventDefault()},ArrowDown(){r({type:"INPUT.ARROW_DOWN",step:x}),C.preventDefault()},Home(){Fe(C)||(r({type:"INPUT.HOME"}),C.preventDefault())},End(){Fe(C)||(r({type:"INPUT.END"}),C.preventDefault())},Enter(y){let S=Zd(y.currentTarget,a);r({type:"INPUT.ENTER",selection:S})}}[C.key];b==null||b(C)}}))},getDecrementTriggerProps(){return t.button(v(p({},yr.decrementTrigger.attrs),{dir:i("dir"),id:Xv(a),disabled:m,"data-disabled":E(m),"aria-label":P.decrementLabel,type:"button",tabIndex:-1,"aria-controls":ja(a),"data-scrubbing":E(g),onPointerDown(C){var x;m||Ee(C)&&(r({type:"TRIGGER.PRESS_DOWN",hint:"decrement",pointerType:C.pointerType}),C.pointerType==="mouse"&&C.preventDefault(),C.pointerType==="touch"&&((x=C.currentTarget)==null||x.focus({preventScroll:!0})))},onPointerUp(C){r({type:"TRIGGER.PRESS_UP",hint:"decrement",pointerType:C.pointerType})},onPointerLeave(){m||r({type:"TRIGGER.PRESS_UP",hint:"decrement"})}}))},getIncrementTriggerProps(){return t.button(v(p({},yr.incrementTrigger.attrs),{dir:i("dir"),id:Yv(a),disabled:f,"data-disabled":E(f),"aria-label":P.incrementLabel,type:"button",tabIndex:-1,"aria-controls":ja(a),"data-scrubbing":E(g),onPointerDown(C){var x;f||!Ee(C)||(r({type:"TRIGGER.PRESS_DOWN",hint:"increment",pointerType:C.pointerType}),C.pointerType==="mouse"&&C.preventDefault(),C.pointerType==="touch"&&((x=C.currentTarget)==null||x.focus({preventScroll:!0})))},onPointerUp(C){r({type:"TRIGGER.PRESS_UP",hint:"increment",pointerType:C.pointerType})},onPointerLeave(C){r({type:"TRIGGER.PRESS_UP",hint:"increment",pointerType:C.pointerType})}}))},getScrubberProps(){return t.element(v(p({},yr.scrubber.attrs),{dir:i("dir"),"data-disabled":E(l),id:cA(a),role:"presentation","data-scrubbing":E(g),onMouseDown(C){if(l||!Ee(C))return;let x=Ze(C),b=be(C.currentTarget).devicePixelRatio;x.x=x.x-Ii(7.5,b),x.y=x.y-Ii(7.5,b),r({type:"SCRUBBER.PRESS_DOWN",point:x}),C.preventDefault(),$(()=>{pi(ei(a))})},style:{cursor:l?void 0:"ew-resize"}}))}}}function EA(e,t={}){let{numberingSystem:n}=t;if(n&&e.includes("-nu-")&&(e.includes("-u-")||(e+="-u-"),e+=`-nu-${n}`),t.style==="unit"&&!al){var r;let{unit:o,unitDisplay:s="short"}=t;if(!o)throw new Error('unit option must be provided with style: "unit"');if(!(!((r=Qv[o])===null||r===void 0)&&r[s]))throw new Error(`Unsupported unit ${o} with unitDisplay = ${s}`);t=v(p({},t),{style:"decimal"})}let i=e+(t?Object.entries(t).sort((o,s)=>o[0]0||Object.is(n,0):t==="exceptZero"&&(Object.is(n,-0)||Object.is(n,0)?n=Math.abs(n):r=n>0),r){let i=e.format(-n),a=e.format(n),o=i.replace(a,"").replace(/\u200e|\u061C/,"");return[...o].length!==1&&console.warn("@react-aria/i18n polyfill for NumberFormat signDisplay: Unsupported case"),i.replace(a,"!!!").replace(o,"+").replace("!!!",a)}else return e.format(n)}}function Yd(e,t,n){let r=qv(e,t);if(!e.includes("-nu-")&&!r.isValidPartialNumber(n)){for(let i of CA)if(i!==r.options.numberingSystem){let a=qv(e+(e.includes("-u-")?"-nu-":"-u-nu-")+i,t);if(a.isValidPartialNumber(n))return a}}return r}function qv(e,t){let n=e+(t?Object.entries(t).sort((i,a)=>i[0]l.formatToParts(w));var h;let u=(h=(i=c.find(w=>w.type==="minusSign"))===null||i===void 0?void 0:i.value)!==null&&h!==void 0?h:"-",f=(a=d.find(w=>w.type==="plusSign"))===null||a===void 0?void 0:a.value;!f&&((r==null?void 0:r.signDisplay)==="exceptZero"||(r==null?void 0:r.signDisplay)==="always")&&(f="+");let P=(o=new Intl.NumberFormat(e,v(p({},n),{minimumFractionDigits:2,maximumFractionDigits:2})).formatToParts(.001).find(w=>w.type==="decimal"))===null||o===void 0?void 0:o.value,C=(s=c.find(w=>w.type==="group"))===null||s===void 0?void 0:s.value,x=c.filter(w=>!Wv.has(w.type)).map(w=>Kv(w.value)),T=g.flatMap(w=>w.filter(k=>!Wv.has(k.type)).map(k=>Kv(k.value))),b=[...new Set([...x,...T])].sort((w,k)=>k.length-w.length),y=b.length===0?new RegExp("[\\p{White_Space}]","gu"):new RegExp(`${b.join("|")}|[\\p{White_Space}]`,"gu"),S=[...new Intl.NumberFormat(n.locale,{useGrouping:!1}).format(9876543210)].reverse(),A=new Map(S.map((w,k)=>[w,k])),N=new RegExp(`[${S.join("")}]`,"g");return{minusSign:u,plusSign:f,decimal:P,group:C,literals:y,numeral:N,index:w=>String(A.get(w))}}function zi(e,t,n){return e.replaceAll?e.replaceAll(t,n):e.split(t).join(n)}function Kv(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var oA,yr,lA,ja,Yv,Xv,cA,Zv,dA,ei,uA,gA,Jv,hA,pA,fA,mA,vA,zd,Jd,al,Qv,bA,PA,CA,ey,Uv,IA,Wv,TA,OA,VA,Xd,Qr,xA,AA,RA,kA,jv,zv,NA,DA,LA,ny=ne(()=>{"use strict";Ms();Nt();Ce();se();oA=j("numberInput").parts("root","label","input","control","valueText","incrementTrigger","decrementTrigger","scrubber"),yr=oA.build();lA=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`number-input:${e.id}`},ja=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.input)!=null?n:`number-input:${e.id}:input`},Yv=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.incrementTrigger)!=null?n:`number-input:${e.id}:inc`},Xv=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.decrementTrigger)!=null?n:`number-input:${e.id}:dec`},cA=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.scrubber)!=null?n:`number-input:${e.id}:scrubber`},Zv=e=>`number-input:${e.id}:cursor`,dA=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`number-input:${e.id}:label`},ei=e=>e.getById(ja(e)),uA=e=>e.getById(Yv(e)),gA=e=>e.getById(Xv(e)),Jv=e=>e.getDoc().getElementById(Zv(e)),hA=(e,t)=>{let n=null;return t==="increment"&&(n=uA(e)),t==="decrement"&&(n=gA(e)),n},pA=(e,t)=>{if(!yt())return vA(e,t),()=>{var n;(n=Jv(e))==null||n.remove()}},fA=e=>{let t=e.getDoc(),n=t.documentElement,r=t.body;return r.style.pointerEvents="none",n.style.userSelect="none",n.style.cursor="ew-resize",()=>{r.style.pointerEvents="",n.style.userSelect="",n.style.cursor="",n.style.length||n.removeAttribute("style"),r.style.length||r.removeAttribute("style")}},mA=(e,t)=>{let{point:n,isRtl:r,event:i}=t,a=e.getWin(),o=Ii(i.movementX,a.devicePixelRatio),s=Ii(i.movementY,a.devicePixelRatio),l=o>0?"increment":o<0?"decrement":null;r&&l==="increment"&&(l="decrement"),r&&l==="decrement"&&(l="increment");let c={x:n.x+o,y:n.y+s},d=a.innerWidth,g=Ii(7.5,a.devicePixelRatio);return c.x=Zg(c.x+g,d)-g,{hint:l,point:c}},vA=(e,t)=>{let n=e.getDoc(),r=n.createElement("div");r.className="scrubber--cursor",r.id=Zv(e),Object.assign(r.style,{width:"15px",height:"15px",position:"fixed",pointerEvents:"none",left:"0px",top:"0px",zIndex:ko,transform:t?`translate3d(${t.x}px, ${t.y}px, 0px)`:void 0,willChange:"transform"}),r.innerHTML=` +"use strict";var Corex=(()=>{var ho=Object.defineProperty,qb=Object.defineProperties,Wb=Object.getOwnPropertyDescriptor,Kb=Object.getOwnPropertyDescriptors,jb=Object.getOwnPropertyNames,go=Object.getOwnPropertySymbols;var Cl=Object.prototype.hasOwnProperty,Vu=Object.prototype.propertyIsEnumerable;var Sl=(e,t)=>(t=Symbol[e])?t:Symbol.for("Symbol."+e),xu=e=>{throw TypeError(e)};var Pl=(e,t,n)=>t in e?ho(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,p=(e,t)=>{for(var n in t||(t={}))Cl.call(t,n)&&Pl(e,n,t[n]);if(go)for(var n of go(t))Vu.call(t,n)&&Pl(e,n,t[n]);return e},v=(e,t)=>qb(e,Kb(t));var ft=(e,t)=>{var n={};for(var r in e)Cl.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&go)for(var r of go(e))t.indexOf(r)<0&&Vu.call(e,r)&&(n[r]=e[r]);return n};var ne=(e,t)=>()=>(e&&(t=e(e=0)),t);var fe=(e,t)=>{for(var n in t)ho(e,n,{get:t[n],enumerable:!0})},zb=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of jb(t))!Cl.call(e,i)&&i!==n&&ho(e,i,{get:()=>t[i],enumerable:!(r=Wb(t,i))||r.enumerable});return e};var Yb=e=>zb(ho({},"__esModule",{value:!0}),e);var J=(e,t,n)=>Pl(e,typeof t!="symbol"?t+"":t,n);var po=(e,t,n)=>t.has(e)?xu("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n);var Ue=(e,t,n)=>new Promise((r,i)=>{var a=l=>{try{s(n.next(l))}catch(c){i(c)}},o=l=>{try{s(n.throw(l))}catch(c){i(c)}},s=l=>l.done?r(l.value):Promise.resolve(l.value).then(a,o);s((n=n.apply(e,t)).next())}),Xb=function(e,t){this[0]=e,this[1]=t};var Au=e=>{var t=e[Sl("asyncIterator")],n=!1,r,i={};return t==null?(t=e[Sl("iterator")](),r=a=>i[a]=o=>t[a](o)):(t=t.call(e),r=a=>i[a]=o=>{if(n){if(n=!1,a==="throw")throw o;return o}return n=!0,{done:!1,value:new Xb(new Promise(s=>{var l=t[a](o);l instanceof Object||xu("Object expected"),s(l)}),1)}}),i[Sl("iterator")]=()=>i,r("next"),"throw"in t?r("throw"):i.throw=a=>{throw a},"return"in t&&r("return"),i};function ea(e,t){let n=e.filter(i=>!t.includes(i)),r=t.filter(i=>!e.includes(i));return{added:n,removed:r}}var Il=ne(()=>{"use strict"});function q(e){let t=e.dataset.dir;if(t!==void 0&&Zb.includes(t))return t;let n=document.documentElement.getAttribute("dir");return n==="ltr"||n==="rtl"?n:"ltr"}function en(e,t){let n=e.dataset[t];return n==="indeterminate"?"indeterminate":n==="true"}function Ao(e,t){let n=e.querySelector(`[data-templates="${t}"]`);return n?n instanceof HTMLTemplateElement?n.content:n:null}function Q(e){return!e.main.isDead&&e.main.isConnected()}function ia(e){return e==null?[]:Array.isArray(e)?e:[e]}function pi(e,t,n={}){let{step:r=1,loop:i=!0}=n,a=t+r,o=e.length,s=o-1;return t===-1?r>0?0:s:a<0?i?s:0:a>=o?i?0:t>o?o:t:a}function Qu(e,t,n={}){return e[pi(e,t,n)]}function aa(e,t,n={}){let{step:r=1,loop:i=!0}=n;return pi(e,t,{step:-r,loop:i})}function eg(e,t,n={}){return e[aa(e,t,n)]}function oa(e,t){return e.reduce((n,r,i)=>{var a;return i%t===0?n.push([r]):(a=qt(n))==null||a.push(r),n},[])}function Ll(e){return e.reduce((t,n)=>Array.isArray(n)?t.concat(Ll(n)):t.concat(n),[])}function Ml(e,t){return e.reduce(([n,r],i)=>(t(i)?n.push(i):r.push(i),[n,r]),[[],[]])}function Me(e,t,...n){var i;if(e in t){let a=t[e];return Ze(a)?a(...n):a}let r=new Error(`No matching key: ${JSON.stringify(e)} in ${JSON.stringify(Object.keys(t))}`);throw(i=Error.captureStackTrace)==null||i.call(Error,r,Me),r}function ag(e,t=0){let n=0,r=null;return(...i)=>{let a=Date.now(),o=a-n;o>=t?(r&&(clearTimeout(r),r=null),e(...i),n=a):r||(r=setTimeout(()=>{e(...i),n=Date.now(),r=null},t-o))}}function uE(e){let t="",n;for(n=Math.abs(e);n>52;n=n/52|0)t=Hu(n%52)+t;return Hu(n%52)+t}function gE(e,t){let n=t.length;for(;n;)e=e*33^t.charCodeAt(--n);return e}function On(e){if(!na(e)||e===void 0)return e;let t=Reflect.ownKeys(e).filter(r=>typeof r=="string"),n={};for(let r of t){let i=e[r];i!==void 0&&(n[r]=On(i))}return n}function Jn(e,t){let n={};for(let r of t){let i=e[r];i!==void 0&&(n[r]=i)}return n}function Ut(...e){let t=e.length===1?e[0]:e[1];(e.length===2?e[0]:!0)&&console.warn(t)}function gi(...e){let t=e.length===1?e[0]:e[1];if(e.length===2?e[0]:!0)throw new Error(t)}function jt(e,t){if(e==null)throw new Error(t())}function rn(e,t,n){let r=[];for(let i of t)e[i]==null&&r.push(i);if(r.length>0)throw new Error(`[zag-js${n?` > ${n}`:""}] missing required props: ${r.join(", ")}`)}function xl(e){return e.join(Qn)}function hE(e){return e.includes(Qn)}function cg(e){return e.startsWith(sg)}function pE(e){return e.startsWith(Qn)}function fE(e){return cg(e)?e.slice(sg.length):e}function Al(e,t){return e?`${e}${Qn}${t}`:t}function mE(e){let t=new Map,n=new Map,r=(i,a)=>{t.set(i,a);let o=a.id;o&&(n.has(o)&&gi(`[zag-js] Duplicate state id: "${o}"`),n.set(o,i));let s=a.states;if(s){jt(a.initial,()=>`[zag-js] Compound state "${i}" has child states but no "initial" property`),a.initial in s||gi(`[zag-js] Compound state "${i}" has initial "${String(a.initial)}" which is not a child state`);for(let[l,c]of Object.entries(s)){if(!c)continue;let d=Al(i,l);r(d,c)}}};for(let[i,a]of Object.entries(e.states))a&&r(i,a);return{index:t,idIndex:n}}function ca(e){let t=Bu.get(e);if(t)return t;let{index:n,idIndex:r}=mE(e);return Bu.set(e,n),lg.set(e,r),n}function vE(e,t){var n;return ca(e),(n=lg.get(e))==null?void 0:n.get(t)}function Hl(e){return e?String(e).split(Qn).filter(Boolean):[]}function To(e,t){if(!t)return[];let n=ca(e),r=Hl(t),i=[],a=[];for(let o of r){a.push(o);let s=xl(a),l=n.get(s);if(!l)break;i.push({path:s,state:l})}return i}function ta(e,t){let n=ca(e),r=Hl(t);if(!r.length)return t;let i=[];for(let s of r){i.push(s);let l=xl(i);if(!n.has(l))return t}let a=xl(i),o=n.get(a);for(;o!=null&&o.initial;){let s=`${a}${Qn}${o.initial}`,l=n.get(s);if(!l)break;a=s,o=l}return a}function Gu(e,t){return ca(e).has(t)}function Uu(e,t,n){let r=String(t);if(cg(r)){let i=fE(r),a=vE(e,i);return jt(a,()=>`[zag-js] Unknown state id: "${i}"`),ta(e,a)}if(pE(r)&&n){let i=Al(n,r.slice(1));return ta(e,i)}if(!hE(r)&&n){let i=Hl(n);for(let a=i.length-1;a>=1;a--){let o=i.slice(0,a).join(Qn),s=Al(o,r);if(Gu(e,s))return ta(e,s)}if(Gu(e,r))return ta(e,r)}return ta(e,r)}function yE(e,t,n){var a,o;let r=To(e,t);for(let s=r.length-1;s>=0;s--){let l=(a=r[s])==null?void 0:a.state.on,c=l==null?void 0:l[n];if(c)return{transitions:c,source:(o=r[s])==null?void 0:o.path}}let i=e.on;return{transitions:i==null?void 0:i[n],source:void 0}}function bE(e,t,n,r){var d,g,h,u;let i=t?To(e,t):[],a=To(e,n),o=0;for(;o{var i;return(i=r.state.tags)==null?void 0:i.includes(n)})}function Te(){return{and:(...e)=>function(n){return e.every(r=>n.guard(r))},or:(...e)=>function(n){return e.some(r=>n.guard(r))},not:e=>function(n){return!n.guard(e)}}}function te(e){return ca(e),e}function Ot(){return{guards:Te(),createMachine:e=>te(e),choose:e=>function({choose:n}){var r;return(r=n(e))==null?void 0:r.actions}}}function fi(e){if(e)try{if(e.ownerDocument.activeElement!==e)return;let t=e.value.length;e.setSelectionRange(t,t)}catch(t){}}function xE(e){return["html","body","#document"].includes(dg(e))}function wo(e){if(!e)return!1;let t=e.getRootNode();return er(t)===e}function xt(e){if(e==null||!ye(e))return!1;try{return gg(e)&&e.selectionStart!=null||RE.test(e.localName)||e.isContentEditable||e.getAttribute("contenteditable")==="true"||e.getAttribute("contenteditable")===""}catch(t){return!1}}function ge(e,t){var r;if(!e||!t||!ye(e)||!ug(t))return!1;if(ye(t)&&e===t||e.contains(t))return!0;let n=(r=t.getRootNode)==null?void 0:r.call(t);if(n&&xr(n)){let i=t;for(;i;){if(e===i)return!0;i=i.parentNode||i.host}}return!1}function Ke(e){var t;return da(e)?e:VE(e)?e.document:(t=e==null?void 0:e.ownerDocument)!=null?t:document}function kE(e){return Ke(e).documentElement}function be(e){var t,n,r;return xr(e)?be(e.host):da(e)?(t=e.defaultView)!=null?t:window:ye(e)&&(r=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?r:window}function er(e){let t=e.activeElement;for(;t!=null&&t.shadowRoot;){let n=t.shadowRoot.activeElement;if(!n||n===t)break;t=n}return t}function NE(e){if(dg(e)==="html")return e;let t=e.assignedSlot||e.parentNode||xr(e)&&e.host||kE(e);return xr(t)?t.host:t}function Bl(e){var n;let t;try{if(t=e.getRootNode({composed:!0}),da(t)||xr(t))return t}catch(r){}return(n=e.ownerDocument)!=null?n:document}function At(e){return Vl.has(e)||Vl.set(e,be(e).getComputedStyle(e)),Vl.get(e)}function Do(e,t){let n=new Set,r=Bl(e),i=a=>{let o=a.querySelectorAll("[aria-controls]");for(let s of o){if(s.getAttribute("aria-expanded")!=="true")continue;let l=hg(s);for(let c of l){if(!c||n.has(c))continue;n.add(c);let d=r.getElementById(c);if(d){let g=d.getAttribute("role"),h=d.getAttribute("aria-modal")==="true";if(g&&DE(g)&&!h&&(d===t||d.contains(t)||i(d)))return!0}}}return!1};return i(e)}function Ul(e,t){let n=Bl(e),r=new Set,i=a=>{let o=a.querySelectorAll("[aria-controls]");for(let s of o){if(s.getAttribute("aria-expanded")!=="true")continue;let l=hg(s);for(let c of l){if(!c||r.has(c))continue;r.add(c);let d=n.getElementById(c);if(d){let g=d.getAttribute("role"),h=d.getAttribute("aria-modal")==="true";g&&Gl.has(g)&&!h&&(t(d),i(d))}}}};i(e)}function pg(e){let t=new Set;return Ul(e,n=>{e.contains(n)||t.add(n)}),Array.from(t)}function LE(e){let t=e.getAttribute("role");return!!(t&&Gl.has(t))}function ME(e){return e.hasAttribute("aria-controls")&&e.getAttribute("aria-expanded")==="true"}function fg(e){var t;return ME(e)?!0:!!((t=e.querySelector)!=null&&t.call(e,'[aria-controls][aria-expanded="true"]'))}function mg(e){if(!e.id)return!1;let t=Bl(e),n=CSS.escape(e.id),r=`[aria-controls~="${n}"][aria-expanded="true"], [aria-controls="${n}"][aria-expanded="true"]`;return!!(t.querySelector(r)&&LE(e))}function vg(e,t){let{type:n,quality:r=.92,background:i}=t;if(!e)throw new Error("[zag-js > getDataUrl]: Could not find the svg element");let a=be(e),o=a.document,s=e.getBoundingClientRect(),l=e.cloneNode(!0);l.hasAttribute("viewBox")||l.setAttribute("viewBox",`0 0 ${s.width} ${s.height}`);let d=`\r +`+new a.XMLSerializer().serializeToString(l),g="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(d);if(n==="image/svg+xml")return Promise.resolve(g).then(P=>(l.remove(),P));let h=a.devicePixelRatio||1,u=o.createElement("canvas"),f=new a.Image;f.src=g,u.width=s.width*h,u.height=s.height*h;let m=u.getContext("2d");return(n==="image/jpeg"||i)&&(m.fillStyle=i||"white",m.fillRect(0,0,u.width,u.height)),new Promise(P=>{f.onload=()=>{m==null||m.drawImage(f,0,0,u.width,u.height),P(u.toDataURL(n,r)),l.remove()}})}function FE(){var t;let e=navigator.userAgentData;return(t=e==null?void 0:e.platform)!=null?t:navigator.platform}function _E(){let e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map(({brand:t,version:n})=>`${t}/${n}`).join(" "):navigator.userAgent}function bg(e){let{selectionStart:t,selectionEnd:n,value:r}=e.currentTarget,i=e.data;return r.slice(0,t)+(i!=null?i:"")+r.slice(n)}function qE(e){var t,n,r,i;return(i=(t=e.composedPath)==null?void 0:t.call(e))!=null?i:(r=(n=e.nativeEvent)==null?void 0:n.composedPath)==null?void 0:r.call(n)}function ee(e){var n;let t=qE(e);return(n=t==null?void 0:t[0])!=null?n:e.target}function Vn(e){let t=e.currentTarget;if(!t||!t.matches("a[href], button[type='submit'], input[type='submit']"))return!1;let r=e.button===1,i=Mo(e);return r||i}function Ar(e){let t=e.currentTarget;if(!t)return!1;let n=t.localName;return e.altKey?n==="a"||n==="button"&&t.type==="submit"||n==="input"&&t.type==="submit":!1}function He(e){return zt(e).isComposing||e.keyCode===229}function Mo(e){return mi()?e.metaKey:e.ctrlKey}function Eg(e){return e.key.length===1&&!e.ctrlKey&&!e.metaKey}function Sg(e){return e.pointerType===""&&e.isTrusted?!0:UE()&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function ve(e,t={}){var o;let{dir:n="ltr",orientation:r="horizontal"}=t,i=e.key;return i=(o=KE[i])!=null?o:i,n==="rtl"&&r==="horizontal"&&i in Wu&&(i=Wu[i]),i}function zt(e){var t;return(t=e.nativeEvent)!=null?t:e}function xn(e){return e.ctrlKey||e.metaKey?.1:jE.has(e.key)||e.shiftKey&&zE.has(e.key)?10:1}function Je(e,t="client"){let n=WE(e)?e.touches[0]||e.changedTouches[0]:e;return{x:n[`${t}X`],y:n[`${t}Y`]}}function Pg(e,t){var a;let{type:n="HTMLInputElement",property:r="value"}=t,i=be(e)[n].prototype;return(a=Object.getOwnPropertyDescriptor(i,r))!=null?a:{}}function YE(e){if(e.localName==="input")return"HTMLInputElement";if(e.localName==="textarea")return"HTMLTextAreaElement";if(e.localName==="select")return"HTMLSelectElement"}function Be(e,t,n="value"){var i;if(!e)return;let r=YE(e);r&&((i=Pg(e,{type:r,property:n}).set)==null||i.call(e,t)),e.setAttribute(n,t)}function ha(e,t){var r;if(!e)return;(r=Pg(e,{type:"HTMLInputElement",property:"checked"}).set)==null||r.call(e,t),t?e.setAttribute("checked",""):e.removeAttribute("checked")}function Fo(e,t){let{value:n,bubbles:r=!0}=t;if(!e)return;let i=be(e);if(!(e instanceof i.HTMLInputElement))return;Be(e,`${n}`);let a=new i.Event("input",{bubbles:r});e.dispatchEvent(_o(a))}function vi(e,t){let{checked:n,bubbles:r=!0}=t;if(!e)return;let i=be(e);if(!(e instanceof i.HTMLInputElement))return;ha(e,n);let a=new i.Event("click",{bubbles:r});e.dispatchEvent(_o(a))}function XE(e){return e.matches("textarea, input, select, button")}function ZE(e,t){if(!e)return;let n=XE(e)?e.form:e.closest("form"),r=i=>{i.defaultPrevented||t()};return n==null||n.addEventListener("reset",r,{passive:!0}),()=>n==null?void 0:n.removeEventListener("reset",r)}function JE(e,t){let n=e==null?void 0:e.closest("fieldset");if(!n)return;t(n.disabled);let r=be(n),i=new r.MutationObserver(()=>t(n.disabled));return i.observe(n,{attributes:!0,attributeFilter:["disabled"]}),()=>i.disconnect()}function Rt(e,t){if(!e)return;let{onFieldsetDisabledChange:n,onFormReset:r}=t,i=[ZE(e,r),JE(e,n)];return()=>i.forEach(a=>a==null?void 0:a())}function Kl(e){return Object.prototype.hasOwnProperty.call(e,Cg)}function _o(e){return Kl(e)||Object.defineProperty(e,Cg,{value:!0}),e}function Tg(e){let t=e.getAttribute("tabindex");return t?parseInt(t,10):NaN}function nS(e){return gg(e)&&e.type==="radio"}function rS(e){var a;if(!nS(e)||!e.name||e.checked)return!0;let t=`input[type="radio"][name="${CSS.escape(e.name)}"]`,n=(a=e.form)!=null?a:e.ownerDocument,r=Array.from(n.querySelectorAll(t)).filter(o=>o.form===e.form&<(o)),i=r.find(o=>o.checked);return i?i===e:r[0]===e}function iS(e,t){if(!t)return null;if(t===!0)return e.shadowRoot||null;let n=t(e);return(n===!0?e.shadowRoot:n)||null}function wg(e,t,n){let r=[...e],i=[...e],a=new Set,o=new Map;e.forEach((l,c)=>o.set(l,c));let s=0;for(;s{o.set(u,h+f)});for(let u=h+d.length;u{o.set(u,h+f)})}i.push(...d)}}return r}function lt(e){return!ye(e)||e.closest("[inert]")?!1:e.matches($o)&&AE(e)}function An(e,t={}){if(!e)return[];let{includeContainer:n,getShadowRoot:r}=t,i=Array.from(e.querySelectorAll($o));n&&Xn(e)&&i.unshift(e);let a=[];for(let o of i)if(Xn(o)){if(Ig(o)&&o.contentDocument){let s=o.contentDocument.body;a.push(...An(s,{getShadowRoot:r}));continue}a.push(o)}if(r){let o=wg(a,r,Xn);return!o.length&&n?i:o}return!a.length&&n?i:a}function Xn(e){return ye(e)&&e.tabIndex>0?!0:!lt(e)||tS(e)?!1:rS(e)}function aS(e,t={}){let n=An(e,t),r=n[0]||null,i=n[n.length-1]||null;return[r,i]}function yi(e){return e.tabIndex<0&&(QE.test(e.localName)||xt(e))&&!eS(e)?0:e.tabIndex}function nr(e){let{root:t,getInitialEl:n,filter:r,enabled:i=!0}=e;if(!i)return;let a=null;if(a||(a=typeof n=="function"?n():n),a||(a=t==null?void 0:t.querySelector("[data-autofocus],[autofocus]")),!a){let o=An(t);a=r?o.filter(r)[0]:o[0]}return a||t||void 0}function Ho(e){let t=e.currentTarget;if(!t)return!1;let[n,r]=aS(t);return!(wo(n)&&e.shiftKey||wo(r)&&!e.shiftKey||!n&&!r)}function $(e){let t=jl.create();return t.request(e),t.cleanup}function Rr(e){let t=new Set;function n(r){let i=globalThis.requestAnimationFrame(r);t.add(()=>globalThis.cancelAnimationFrame(i))}return n(()=>n(e)),function(){t.forEach(i=>i())}}function oS(e,t,n){let r=$(()=>{e.removeEventListener(t,i,!0),n()}),i=()=>{r(),n()};return e.addEventListener(t,i,{once:!0,capture:!0}),r}function sS(e,t){if(!e)return;let{attributes:n,callback:r}=t,i=e.ownerDocument.defaultView||window,a=new i.MutationObserver(o=>{for(let s of o)s.type==="attributes"&&s.attributeName&&n.includes(s.attributeName)&&r(s)});return a.observe(e,{attributes:!0,attributeFilter:n}),()=>a.disconnect()}function kt(e,t){let{defer:n}=t,r=n?$:a=>a(),i=[];return i.push(r(()=>{let a=typeof e=="function"?e():e;i.push(sS(a,t))})),()=>{i.forEach(a=>a==null?void 0:a())}}function lS(e,t){let{callback:n}=t;if(!e)return;let r=e.ownerDocument.defaultView||window,i=new r.MutationObserver(n);return i.observe(e,{childList:!0,subtree:!0}),()=>i.disconnect()}function Bo(e,t){let{defer:n}=t,r=n?$:a=>a(),i=[];return i.push(r(()=>{let a=typeof e=="function"?e():e;i.push(lS(a,t))})),()=>{i.forEach(a=>a==null?void 0:a())}}function bi(e){let t=()=>{let n=be(e);e.dispatchEvent(new n.MouseEvent("click"))};GE()?oS(e,"keyup",t):queueMicrotask(t)}function fa(e){let t=NE(e);return xE(t)?Ke(t).body:ye(t)&&Yl(t)?t:fa(t)}function zl(e,t=[]){let n=fa(e),r=n===e.ownerDocument.body,i=be(n);return r?t.concat(i,i.visualViewport||[],Yl(n)?n:[]):t.concat(n,zl(n,[]))}function Yl(e){let t=be(e),{overflow:n,overflowX:r,overflowY:i,display:a}=t.getComputedStyle(e);return cS.test(n+i+r)&&!dS.has(a)}function uS(e){return e.scrollHeight>e.clientHeight||e.scrollWidth>e.clientWidth}function Rn(e,t){let i=t||{},{rootEl:n}=i,r=ft(i,["rootEl"]);!e||!n||!Yl(n)||!uS(n)||e.scrollIntoView(r)}function Ei(e,t){let{left:n,top:r,width:i,height:a}=t.getBoundingClientRect(),o={x:e.x-n,y:e.y-r},s={x:qu(o.x/i),y:qu(o.y/a)};function l(c={}){let{dir:d="ltr",orientation:g="horizontal",inverted:h}=c,u=typeof h=="object"?h.x:h,f=typeof h=="object"?h.y:h;return g==="horizontal"?d==="rtl"||u?1-s.x:s.x:f?1-s.y:s.y}return{offset:o,percent:s,getPercentValue:l}}function Vg(e,t){let n=e.body,r="pointerLockElement"in e||"mozPointerLockElement"in e,i=()=>!!e.pointerLockElement;function a(){t==null||t(i())}function o(l){i()&&(t==null||t(!1)),console.error("PointerLock error occurred:",l),e.exitPointerLock()}if(!r)return;try{n.requestPointerLock()}catch(l){}let s=[re(e,"pointerlockchange",a,!1),re(e,"pointerlockerror",o,!1)];return()=>{s.forEach(l=>l()),e.exitPointerLock()}}function gS(e={}){let{target:t,doc:n}=e,r=n!=null?n:document,i=r.documentElement;return ua()?(ui==="default"&&(Rl=i.style.webkitUserSelect,i.style.webkitUserSelect="none"),ui="disabled"):t&&(Co.set(t,t.style.userSelect),t.style.userSelect="none"),()=>Xl({target:t,doc:r})}function Xl(e={}){let{target:t,doc:n}=e,i=(n!=null?n:document).documentElement;if(ua()){if(ui!=="disabled")return;ui="restoring",setTimeout(()=>{Rr(()=>{ui==="restoring"&&(i.style.webkitUserSelect==="none"&&(i.style.webkitUserSelect=Rl||""),Rl="",ui="default")})},300)}else if(t&&Co.has(t)){let a=Co.get(t);t.style.userSelect==="none"&&(t.style.userSelect=a!=null?a:""),t.getAttribute("style")===""&&t.removeAttribute("style"),Co.delete(t)}}function ma(e={}){let o=e,{defer:t,target:n}=o,r=ft(o,["defer","target"]),i=t?$:s=>s(),a=[];return a.push(i(()=>{let s=typeof n=="function"?n():n;a.push(gS(v(p({},r),{target:s})))})),()=>{a.forEach(s=>s==null?void 0:s())}}function an(e,t){let{onPointerMove:n,onPointerUp:r}=t,i=s=>{let l=Je(s),c=Math.sqrt(l.x**2+l.y**2),d=s.pointerType==="touch"?10:5;if(!(c{let l=Je(s);r({point:l,event:s})},o=[re(e,"pointermove",i,!1),re(e,"pointerup",a,!1),re(e,"pointercancel",a,!1),re(e,"contextmenu",a,!1),ma({doc:e})];return()=>{o.forEach(s=>s())}}function Go(e){let{pointerNode:t,keyboardNode:n=t,onPress:r,onPressStart:i,onPressEnd:a,isValidKey:o=V=>V.key==="Enter"}=e;if(!t)return Tn;let s=be(t),l=Tn,c=Tn,d=Tn,g=V=>({point:Je(V),event:V});function h(V){i==null||i(g(V))}function u(V){a==null||a(g(V))}let m=re(t,"pointerdown",V=>{c();let b=re(s,"pointerup",E=>{let A=ee(E);ge(t,A)?r==null||r(g(E)):a==null||a(g(E))},{passive:!r,once:!0}),y=re(s,"pointercancel",u,{passive:!a,once:!0});c=Ol(b,y),wo(n)&&V.pointerType==="mouse"&&V.preventDefault(),h(V)},{passive:!i}),P=re(n,"focus",C);l=Ol(m,P);function C(){let V=E=>{if(!o(E))return;let A=O=>{if(!o(O))return;let w=new s.PointerEvent("pointerup"),k=g(w);r==null||r(k),a==null||a(k)};c(),c=re(n,"keyup",A);let N=new s.PointerEvent("pointerdown");h(N)},I=()=>{let E=new s.PointerEvent("pointercancel");u(E)},b=re(n,"keydown",V),y=re(n,"blur",I);d=Ol(b,y)}return()=>{l(),c(),d()}}function xe(e,t){var n;return Array.from((n=e==null?void 0:e.querySelectorAll(t))!=null?n:[])}function rr(e,t){var n;return(n=e==null?void 0:e.querySelector(t))!=null?n:null}function Jl(e,t,n=Zl){return e.find(r=>n(r)===t)}function Ql(e,t,n=Zl){let r=Jl(e,t,n);return r?e.indexOf(r):-1}function Si(e,t,n=!0){let r=Ql(e,t);return r=n?(r+1)%e.length:Math.min(r+1,e.length-1),e[r]}function Pi(e,t,n=!0){let r=Ql(e,t);return r===-1?n?e[e.length-1]:null:(r=n?(r-1+e.length)%e.length:Math.max(0,r-1),e[r])}function hS(e){let t=new WeakMap,n,r=new WeakMap,i=s=>n||(n=new s.ResizeObserver(l=>{for(let c of l){r.set(c.target,c);let d=t.get(c.target);if(d)for(let g of d)g(c)}}),n);return{observe:(s,l)=>{let c=t.get(s)||new Set;c.add(l),t.set(s,c);let d=be(s);return i(d).observe(s,e),()=>{let g=t.get(s);g&&(g.delete(l),g.size===0&&(t.delete(s),i(d).unobserve(s)))}},unobserve:s=>{t.delete(s),n==null||n.unobserve(s)}}}function xg(e){let t=e.getBoundingClientRect(),n=e.offsetWidth,r=e.offsetHeight,i=Math.round(t.width)!==n||Math.round(t.height)!==r,a=i?Math.round(t.width)/n:1,o=i?Math.round(t.height)/r:1;return(!a||!Number.isFinite(a))&&(a=1),(!o||!Number.isFinite(o))&&(o=1),{x:a,y:o}}function vS(e,t,n,r=Zl){let i=n?Ql(e,n,r):-1,a=n?IE(e,i):e;return t.length===1&&(a=a.filter(s=>r(s)!==n)),a.find(s=>mS(fS(s),t))}function Ag(e,t,n){let r=e.getAttribute(t),i=r!=null;return r===n?Tn:(e.setAttribute(t,n),()=>{i?e.setAttribute(t,r):e.removeAttribute(t)})}function kr(e,t){if(!e)return Tn;let n=Object.keys(t).reduce((r,i)=>(r[i]=e.style.getPropertyValue(i),r),{});return yS(n,t)?Tn:(Object.assign(e.style,t),()=>{Object.assign(e.style,n),e.style.length===0&&e.removeAttribute("style")})}function Rg(e,t,n){if(!e)return Tn;let r=e.style.getPropertyValue(t);return r===n?Tn:(e.style.setProperty(t,n),()=>{e.style.setProperty(t,r),e.style.length===0&&e.removeAttribute("style")})}function yS(e,t){return Object.keys(e).every(n=>e[n]===t[n])}function bS(e,t){let{state:n,activeId:r,key:i,timeout:a=350,itemToId:o}=t,s=n.keysSoFar+i,c=s.length>1&&Array.from(s).every(f=>f===s[0])?s[0]:s,d=e.slice(),g=vS(d,c,r,o);function h(){clearTimeout(n.timer),n.timer=-1}function u(f){n.keysSoFar=f,h(),f!==""&&(n.timer=+setTimeout(()=>{u(""),h()},a))}return u(s),g}function ES(e){return e.key.length===1&&!e.ctrlKey&&!e.metaKey}function SS(e,t,n){let{signal:r}=t;return[new Promise((o,s)=>{let l=setTimeout(()=>{s(new Error(`Timeout of ${n}ms exceeded`))},n);r.addEventListener("abort",()=>{clearTimeout(l),s(new DOMException("Promise aborted","AbortError"))}),e.then(c=>{r.aborted||(clearTimeout(l),o(c))}).catch(c=>{r.aborted||(clearTimeout(l),s(c))})}),()=>t.abort()]}function kg(e,t){let{timeout:n,rootNode:r}=t,i=be(r),a=Ke(r),o=new i.AbortController;return SS(new Promise(s=>{let l=e();if(l){s(l);return}let c=new i.MutationObserver(()=>{let d=e();d&&d.isConnected&&(c.disconnect(),s(d))});c.observe(a.body,{childList:!0,subtree:!0})}),o,n)}function PS(e){let t=()=>{var o,s;return(s=(o=e.getRootNode)==null?void 0:o.call(e))!=null?s:document},n=()=>Ke(t()),r=()=>{var o;return(o=n().defaultView)!=null?o:window},i=()=>er(t()),a=o=>t().getElementById(o);return v(p({},e),{getRootNode:t,getDoc:n,getWin:r,getActiveElement:i,isActiveElement:wo,getById:a})}function CS(){if(typeof globalThis!="undefined")return globalThis;if(typeof self!="undefined")return self;if(typeof window!="undefined")return window;if(typeof global!="undefined")return global}function Ng(e,t){let n=CS();return n?(n[e]||(n[e]=t()),n[e]):t()}function Uo(e={}){return kS(e)}function Vo(e,t,n){let r=Vr.get(e);Oo()&&!r&&console.warn("Please use proxy object");let i,a=[],o=r[3],s=!1,c=o(d=>{if(a.push(d),n){t(a.splice(0));return}i||(i=Promise.resolve().then(()=>{i=void 0,s&&t(a.splice(0))}))});return s=!0,()=>{s=!1,c()}}function NS(e){let t=Vr.get(e);Oo()&&!t&&console.warn("Please use proxy object");let[n,r,i]=t;return i(n,r())}function xo(e){var a,o;let t=(a=e().value)!=null?a:e().defaultValue;e().debug&&console.log(`[bindable > ${e().debug}] initial`,t);let n=(o=e().isEqual)!=null?o:Object.is,r=Uo({value:t}),i=()=>e().value!==void 0;return{initial:t,ref:r,get(){return i()?e().value:r.value},set(s){var d,g;let l=i()?e().value:r.value,c=Ze(s)?s(l):s;e().debug&&console.log(`[bindable > ${e().debug}] setValue`,{next:c,prev:l}),i()||(r.value=c),n(c,l)||(g=(d=e()).onChange)==null||g.call(d,c,l)},invoke(s,l){var c,d;(d=(c=e()).onChange)==null||d.call(c,s,l)},hash(s){var l,c,d;return(d=(c=(l=e()).hash)==null?void 0:c.call(l,s))!=null?d:String(s)}}}function DS(e){let t={current:e};return{get(n){return t.current[n]},set(n,r){t.current[n]=r}}}function Dg(e,t){if(!na(e)||!na(t))return t===void 0?e:t;let n=p({},e);for(let r of Object.keys(t)){let i=t[r],a=e[r];i!==void 0&&(na(a)&&na(i)?n[r]=Dg(a,i):n[r]=i)}return n}function LS(e){return new Proxy({},{get(t,n){return n==="style"?r=>e({style:r}).style:e}})}function BS(e,t,n){let r=n||"default",i=So.get(e);i||(i=new Map,So.set(e,i));let a=i.get(r)||{},o=Object.keys(t),s=(m,P)=>{e.addEventListener(m.toLowerCase(),P)},l=(m,P)=>{e.removeEventListener(m.toLowerCase(),P)},c=m=>m.startsWith("on"),d=m=>!m.startsWith("on"),g=m=>s(m.substring(2),t[m]),h=m=>l(m.substring(2),t[m]),u=m=>{let P=t[m],C=a[m];if(P!==C){if(m==="class"){e.className=P!=null?P:"";return}if(Xu.has(m)){e[m]=P!=null?P:"";return}if(typeof P=="boolean"&&!m.includes("aria-")){e.toggleAttribute(Po(e,m),P);return}if(m==="children"){e.innerHTML=P;return}if(P!=null){e.setAttribute(Po(e,m),P);return}e.removeAttribute(Po(e,m))}};for(let m in a)t[m]==null&&(m==="class"?e.className="":Xu.has(m)?e[m]="":e.removeAttribute(Po(e,m)));return Object.keys(a).filter(c).forEach(m=>{l(m.substring(2),a[m])}),o.filter(c).forEach(g),o.filter(d).forEach(u),i.set(r,t),function(){o.filter(c).forEach(h);let P=So.get(e);P&&(P.delete(r),P.size===0&&So.delete(e))}}var Zb,x,ie,U,T,wn,hi,Jb,Qb,Se,eE,Zu,tE,tn,nE,Dl,Ju,Tt,qt,rE,mt,wt,Wt,Ro,Kt,$u,iE,Ie,Zn,tg,ng,nn,sa,Ze,rg,nt,aE,ig,oE,na,sE,lE,cE,In,Fl,dE,_l,vt,la,$l,Hu,og,Qn,sg,Bu,lg,ra,Tl,PE,CE,wl,qu,IE,Ol,Tn,ko,No,S,oe,TE,wE,OE,ye,da,VE,dg,ug,xr,gg,Vt,AE,RE,Vl,Gl,DE,hg,Lo,ql,yg,$E,Wl,HE,BE,ua,ga,mi,yt,GE,UE,Ee,tr,Fe,WE,KE,Wu,jE,zE,re,Cg,Ig,QE,eS,tS,$o,pa,jl,cS,dS,ui,Rl,Co,Zl,kn,pS,fS,mS,ct,dt,Io,IS,TS,wS,OS,kl,Ku,Oo,rD,VS,ju,Nl,xS,AS,zu,Vr,RS,kS,Y,Yu,MS,FS,_S,So,Xu,$S,HS,Po,X,j,di,GS,se=ne(()=>{"use strict";Zb=["ltr","rtl"];x=(e,t,n)=>{let r=e.dataset[t];if(r!==void 0&&(!n||n.includes(r)))return r},ie=(e,t)=>{let n=e.dataset[t];if(typeof n=="string")return n.split(",").map(r=>r.trim()).filter(r=>r.length>0)},U=(e,t,n)=>{let r=e.dataset[t];if(r===void 0)return;let i=Number(r);if(!Number.isNaN(i))return n&&!n.includes(i)?0:i},T=(e,t)=>{let n=t.replace(/([A-Z])/g,"-$1").toLowerCase();return e.hasAttribute(`data-${n}`)},wn=(e,t)=>{let n=e.dataset[t];return n==="true"?!0:n==="false"?!1:void 0};hi=(e,t="element")=>e!=null&&e.id?e.id:`${t}-${Math.random().toString(36).substring(2,9)}`;Jb=Object.defineProperty,Qb=(e,t,n)=>t in e?Jb(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Se=(e,t,n)=>Qb(e,typeof t!="symbol"?t+"":t,n),eE=Object.defineProperty,Zu=e=>{throw TypeError(e)},tE=(e,t,n)=>t in e?eE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,tn=(e,t,n)=>tE(e,typeof t!="symbol"?t+"":t,n),nE=(e,t,n)=>t.has(e)||Zu("Cannot "+n),Dl=(e,t,n)=>(nE(e,t,"read from private field"),n?n.call(e):t.get(e)),Ju=(e,t,n)=>t.has(e)?Zu("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n);Tt=e=>e[0],qt=e=>e[e.length-1],rE=(e,t)=>e.indexOf(t)!==-1,mt=(e,...t)=>e.concat(t),wt=(e,...t)=>e.filter(n=>!t.includes(n)),Wt=e=>Array.from(new Set(e)),Ro=(e,t)=>{let n=new Set(t);return e.filter(r=>!n.has(r))},Kt=(e,t)=>rE(e,t)?wt(e,t):mt(e,t);$u=e=>(e==null?void 0:e.constructor.name)==="Array",iE=(e,t)=>{if(e.length!==t.length)return!1;for(let n=0;n{if(Object.is(e,t))return!0;if(e==null&&t!=null||e!=null&&t==null)return!1;if(typeof(e==null?void 0:e.isEqual)=="function"&&typeof(t==null?void 0:t.isEqual)=="function")return e.isEqual(t);if(typeof e=="function"&&typeof t=="function")return e.toString()===t.toString();if($u(e)&&$u(t))return iE(Array.from(e),Array.from(t));if(typeof e!="object"||typeof t!="object")return!1;let n=Object.keys(t!=null?t:Object.create(null)),r=n.length;for(let i=0;iArray.isArray(e),tg=e=>e===!0||e===!1,ng=e=>e!=null&&typeof e=="object",nn=e=>ng(e)&&!Zn(e),sa=e=>typeof e=="string",Ze=e=>typeof e=="function",rg=e=>e==null,nt=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),aE=e=>Object.prototype.toString.call(e),ig=Function.prototype.toString,oE=ig.call(Object),na=e=>{if(!ng(e)||aE(e)!="[object Object]"||cE(e))return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let n=nt(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&ig.call(n)==oE},sE=e=>typeof e=="object"&&e!==null&&"$$typeof"in e&&"props"in e,lE=e=>typeof e=="object"&&e!==null&&"__v_isVNode"in e,cE=e=>sE(e)||lE(e),In=(e,...t)=>{let n=typeof e=="function"?e(...t):e;return n!=null?n:void 0},Fl=e=>e,dE=e=>e(),_l=()=>{},vt=(...e)=>(...t)=>{e.forEach(function(n){n==null||n(...t)})},la=(()=>{let e=0;return()=>(e++,e.toString(36))})();$l=(e,t)=>{var n;try{return e()}catch(r){return r instanceof Error&&((n=Error.captureStackTrace)==null||n.call(Error,r,$l)),t==null?void 0:t()}};Hu=e=>String.fromCharCode(e+(e>25?39:97));og=e=>uE(gE(5381,e)>>>0);Qn=".",sg="#",Bu=new WeakMap,lg=new WeakMap;ra=(e=>(e.NotStarted="Not Started",e.Started="Started",e.Stopped="Stopped",e))(ra||{}),Tl="__init__",PE=Object.defineProperty,CE=(e,t,n)=>t in e?PE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,wl=(e,t,n)=>CE(e,typeof t!="symbol"?t+"":t,n);qu=e=>Math.max(0,Math.min(1,e)),IE=(e,t)=>e.map((n,r)=>e[(Math.max(t,0)+r)%e.length]),Ol=(...e)=>t=>e.reduce((n,r)=>r(n),t),Tn=()=>{},ko=e=>typeof e=="object"&&e!==null,No=2147483647,S=e=>e?"":void 0,oe=e=>e?"true":void 0,TE=1,wE=9,OE=11,ye=e=>ko(e)&&e.nodeType===TE&&typeof e.nodeName=="string",da=e=>ko(e)&&e.nodeType===wE,VE=e=>ko(e)&&e===e.window,dg=e=>ye(e)?e.localName||"":"#document";ug=e=>ko(e)&&e.nodeType!==void 0,xr=e=>ug(e)&&e.nodeType===OE&&"host"in e,gg=e=>ye(e)&&e.localName==="input",Vt=e=>!!(e!=null&&e.matches("a[href]")),AE=e=>ye(e)?e.offsetWidth>0||e.offsetHeight>0||e.getClientRects().length>0:!1;RE=/(textarea|select)/;Vl=new WeakMap;Gl=new Set(["menu","listbox","dialog","grid","tree","region"]),DE=e=>Gl.has(e),hg=e=>{var t;return((t=e.getAttribute("aria-controls"))==null?void 0:t.split(" "))||[]};Lo=()=>typeof document!="undefined";ql=e=>Lo()&&e.test(FE()),yg=e=>Lo()&&e.test(_E()),$E=e=>Lo()&&e.test(navigator.vendor),Wl=()=>Lo()&&!!navigator.maxTouchPoints,HE=()=>ql(/^iPhone/i),BE=()=>ql(/^iPad/i)||mi()&&navigator.maxTouchPoints>1,ua=()=>HE()||BE(),ga=()=>mi()||ua(),mi=()=>ql(/^Mac/i),yt=()=>ga()&&$E(/apple/i),GE=()=>yg(/Firefox/i),UE=()=>yg(/Android/i);Ee=e=>e.button===0,tr=e=>e.button===2||mi()&&e.ctrlKey&&e.button===0,Fe=e=>e.ctrlKey||e.altKey||e.metaKey,WE=e=>"touches"in e&&e.touches.length>0,KE={Up:"ArrowUp",Down:"ArrowDown",Esc:"Escape"," ":"Space",",":"Comma",Left:"ArrowLeft",Right:"ArrowRight"},Wu={ArrowLeft:"ArrowRight",ArrowRight:"ArrowLeft"};jE=new Set(["PageUp","PageDown"]),zE=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"]);re=(e,t,n,r)=>{let i=typeof e=="function"?e():e;return i==null||i.addEventListener(t,n,r),()=>{i==null||i.removeEventListener(t,n,r)}};Cg=Symbol.for("zag.changeEvent");Ig=e=>ye(e)&&e.tagName==="IFRAME",QE=/^(audio|video|details)$/;eS=e=>!Number.isNaN(Tg(e)),tS=e=>Tg(e)<0;$o="input:not([type='hidden']):not([disabled]), select:not([disabled]), textarea:not([disabled]), a[href], button:not([disabled]), [tabindex], iframe, object, embed, area[href], audio[controls], video[controls], [contenteditable]:not([contenteditable='false']), details > summary:first-of-type",pa=(e,t={})=>{if(!e)return[];let{includeContainer:n=!1,getShadowRoot:r}=t,i=Array.from(e.querySelectorAll($o));(n==!0||n=="if-empty"&&i.length===0)&&ye(e)&<(e)&&i.unshift(e);let o=[];for(let s of i)if(lt(s)){if(Ig(s)&&s.contentDocument){let l=s.contentDocument.body;o.push(...pa(l,{getShadowRoot:r}));continue}o.push(s)}return r?wg(o,r,lt):o};jl=class Og{constructor(){wl(this,"id",null),wl(this,"fn_cleanup"),wl(this,"cleanup",()=>{this.cancel()})}static create(){return new Og}request(t){this.cancel(),this.id=globalThis.requestAnimationFrame(()=>{this.id=null,this.fn_cleanup=t==null?void 0:t()})}cancel(){var t;this.id!==null&&(globalThis.cancelAnimationFrame(this.id),this.id=null),(t=this.fn_cleanup)==null||t.call(this),this.fn_cleanup=void 0}isActive(){return this.id!==null}};cS=/auto|scroll|overlay|hidden|clip/,dS=new Set(["inline","contents"]);ui="default",Rl="",Co=new WeakMap;Zl=e=>e.id;kn=hS({box:"border-box"});pS=e=>e.split("").map(t=>{let n=t.charCodeAt(0);return n>0&&n<128?t:n>=128&&n<=255?`/x${n.toString(16)}`.replace("/","\\"):""}).join("").trim(),fS=e=>{var t,n,r;return pS((r=(n=(t=e.dataset)==null?void 0:t.valuetext)!=null?n:e.textContent)!=null?r:"")},mS=(e,t)=>e.trim().toLowerCase().startsWith(t.toLowerCase());ct=Object.assign(bS,{defaultOptions:{keysSoFar:"",timer:-1},isValidEvent:ES});dt={border:"0",clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:"0",position:"absolute",width:"1px",whiteSpace:"nowrap",wordWrap:"normal"};Io=Ng("__zag__refSet",()=>new WeakSet),IS=e=>typeof e=="object"&&e!==null&&"$$typeof"in e&&"props"in e,TS=e=>typeof e=="object"&&e!==null&&"__v_isVNode"in e,wS=e=>typeof e=="object"&&e!==null&&"nodeType"in e&&typeof e.nodeName=="string",OS=e=>IS(e)||TS(e)||wS(e),kl=e=>e!==null&&typeof e=="object",Ku=e=>kl(e)&&!Io.has(e)&&(Array.isArray(e)||!(Symbol.iterator in e))&&!OS(e)&&!(e instanceof WeakMap)&&!(e instanceof WeakSet)&&!(e instanceof Error)&&!(e instanceof Number)&&!(e instanceof Date)&&!(e instanceof String)&&!(e instanceof RegExp)&&!(e instanceof ArrayBuffer)&&!(e instanceof Promise)&&!(e instanceof File)&&!(e instanceof Blob)&&!(e instanceof AbortController),Oo=()=>!0,rD=Symbol(),VS=Symbol(),ju=Object.getPrototypeOf,Nl=new WeakMap,xS=e=>e&&(Nl.has(e)?Nl.get(e):ju(e)===Object.prototype||ju(e)===Array.prototype),AS=e=>xS(e)&&e[VS]||null,zu=(e,t=!0)=>{Nl.set(e,t)},Vr=Ng("__zag__proxyStateMap",()=>new WeakMap),RS=(e=Object.is,t=(s,l)=>new Proxy(s,l),n=new WeakMap,r=(s,l)=>{let c=n.get(s);if((c==null?void 0:c[0])===l)return c[1];let d=Array.isArray(s)?[]:Object.create(Object.getPrototypeOf(s));return zu(d,!0),n.set(s,[l,d]),Reflect.ownKeys(s).forEach(g=>{let h=Reflect.get(s,g);Io.has(h)?(zu(h,!1),d[g]=h):Vr.has(h)?d[g]=NS(h):d[g]=h}),Object.freeze(d)},i=new WeakMap,a=[1,1],o=s=>{if(!kl(s))throw new Error("object required");let l=i.get(s);if(l)return l;let c=a[0],d=new Set,g=(A,N=++a[0])=>{c!==N&&(c=N,d.forEach(O=>O(A,N)))},h=a[1],u=(A=++a[1])=>(h!==A&&!d.size&&(h=A,m.forEach(([N])=>{let O=N[1](A);O>c&&(c=O)})),c),f=A=>(N,O)=>{let w=[...N];w[1]=[A,...w[1]],g(w,O)},m=new Map,P=(A,N)=>{if(Oo()&&m.has(A))throw new Error("prop listener already exists");if(d.size){let O=N[3](f(A));m.set(A,[N,O])}else m.set(A,[N])},C=A=>{var O;let N=m.get(A);N&&(m.delete(A),(O=N[1])==null||O.call(N))},V=A=>(d.add(A),d.size===1&&m.forEach(([O,w],k)=>{if(Oo()&&w)throw new Error("remove already exists");let R=O[3](f(k));m.set(k,[O,R])}),()=>{d.delete(A),d.size===0&&m.forEach(([O,w],k)=>{w&&(w(),m.set(k,[O]))})}),I=Array.isArray(s)?[]:Object.create(Object.getPrototypeOf(s)),y=t(I,{deleteProperty(A,N){let O=Reflect.get(A,N);C(N);let w=Reflect.deleteProperty(A,N);return w&&g(["delete",[N],O]),w},set(A,N,O,w){var W;let k=Reflect.has(A,N),R=Reflect.get(A,N,w);if(k&&(e(R,O)||i.has(O)&&e(R,i.get(O))))return!0;C(N),kl(O)&&(O=AS(O)||O);let D=O;if(!((W=Object.getOwnPropertyDescriptor(A,N))!=null&&W.set)){!Vr.has(O)&&Ku(O)&&(D=Uo(O));let Z=!Io.has(D)&&Vr.get(D);Z&&P(N,Z)}return Reflect.set(A,N,D,w),g(["set",[N],O,R]),!0}});i.set(s,y);let E=[I,u,r,V];return Vr.set(y,E),Reflect.ownKeys(s).forEach(A=>{let N=Object.getOwnPropertyDescriptor(s,A);N.get||N.set?Object.defineProperty(I,A,N):y[A]=s[A]}),y})=>[o,Vr,Io,e,t,Ku,n,r,i,a],[kS]=RS();xo.cleanup=e=>{};xo.ref=e=>{let t=e;return{get:()=>t,set:n=>{t=n}}};Y=class{constructor(e,t={}){var g,h,u;Se(this,"machine",e),Se(this,"scope"),Se(this,"context"),Se(this,"prop"),Se(this,"state"),Se(this,"refs"),Se(this,"computed"),Se(this,"event",{type:""}),Se(this,"previousEvent",{type:""}),Se(this,"effects",new Map),Se(this,"transition",null),Se(this,"cleanups",[]),Se(this,"subscriptions",[]),Se(this,"userPropsRef"),Se(this,"getEvent",()=>v(p({},this.event),{current:()=>this.event,previous:()=>this.previousEvent})),Se(this,"getState",()=>v(p({},this.state),{matches:(...f)=>f.some(m=>EE(this.state.get(),m)),hasTag:f=>SE(this.machine,this.state.get(),f)})),Se(this,"debug",(...f)=>{this.machine.debug&&console.log(...f)}),Se(this,"notify",()=>{this.publish()}),Se(this,"send",f=>{this.status===ra.Started&&queueMicrotask(()=>{var E;if(!f)return;this.previousEvent=this.event,this.event=f,this.debug("send",f);let m=this.state.get(),P=f.type,{transitions:C,source:V}=yE(this.machine,m,P),I=this.choose(C);if(!I)return;this.transition=I;let b=Uu(this.machine,(E=I.target)!=null?E:m,V);this.debug("transition",I),b!==m?this.state.set(b):I.reenter?this.state.invoke(m,m):this.action(I.actions)})}),Se(this,"action",f=>{let m=Ze(f)?f(this.getParams()):f;if(!m)return;let P=m.map(C=>{var I,b;let V=(b=(I=this.machine.implementations)==null?void 0:I.actions)==null?void 0:b[C];return V||Ut(`[zag-js] No implementation found for action "${JSON.stringify(C)}"`),V});for(let C of P)C==null||C(this.getParams())}),Se(this,"guard",f=>{var m,P;return Ze(f)?f(this.getParams()):(P=(m=this.machine.implementations)==null?void 0:m.guards)==null?void 0:P[f](this.getParams())}),Se(this,"effect",f=>{let m=Ze(f)?f(this.getParams()):f;if(!m)return;let P=m.map(V=>{var b,y;let I=(y=(b=this.machine.implementations)==null?void 0:b.effects)==null?void 0:y[V];return I||Ut(`[zag-js] No implementation found for effect "${JSON.stringify(V)}"`),I}),C=[];for(let V of P){let I=V==null?void 0:V(this.getParams());I&&C.push(I)}return()=>C.forEach(V=>V==null?void 0:V())}),Se(this,"choose",f=>ia(f).find(m=>{let P=!m.guard;return sa(m.guard)?P=!!this.guard(m.guard):Ze(m.guard)&&(P=m.guard(this.getParams())),P})),Se(this,"subscribe",f=>(this.subscriptions.push(f),()=>{let m=this.subscriptions.indexOf(f);m>-1&&this.subscriptions.splice(m,1)})),Se(this,"status",ra.NotStarted),Se(this,"publish",()=>{this.callTrackers(),this.subscriptions.forEach(f=>f(this.service))}),Se(this,"trackers",[]),Se(this,"setupTrackers",()=>{var f,m;(m=(f=this.machine).watch)==null||m.call(f,this.getParams())}),Se(this,"callTrackers",()=>{this.trackers.forEach(({deps:f,fn:m})=>{let P=f.map(C=>C());Ie(m.prev,P)||(m(),m.prev=P)})}),Se(this,"getParams",()=>({state:this.getState(),context:this.context,event:this.getEvent(),prop:this.prop,send:this.send,action:this.action,guard:this.guard,track:(f,m)=>{m.prev=f.map(P=>P()),this.trackers.push({deps:f,fn:m})},refs:this.refs,computed:this.computed,flush:dE,scope:this.scope,choose:this.choose})),this.userPropsRef={current:t};let{id:n,ids:r,getRootNode:i}=In(t);this.scope=PS({id:n,ids:r,getRootNode:i});let a=f=>{var C,V;let m=In(this.userPropsRef.current);return((V=(C=e.props)==null?void 0:C.call(e,{props:On(m),scope:this.scope}))!=null?V:m)[f]};this.prop=a;let o=(g=e.context)==null?void 0:g.call(e,{prop:a,bindable:xo,scope:this.scope,flush(f){queueMicrotask(f)},getContext(){return s},getComputed(){return l},getRefs(){return c},getEvent:this.getEvent.bind(this)});o&&Object.values(o).forEach(f=>{let m=Vo(f.ref,()=>this.notify());this.cleanups.push(m)});let s={get(f){return o==null?void 0:o[f].get()},set(f,m){o==null||o[f].set(m)},initial(f){return o==null?void 0:o[f].initial},hash(f){let m=o==null?void 0:o[f].get();return o==null?void 0:o[f].hash(m)}};this.context=s;let l=f=>(jt(e.computed,()=>"[zag-js] No computed object found on machine"),e.computed[f]({context:s,event:this.getEvent(),prop:a,refs:this.refs,scope:this.scope,computed:l}));this.computed=l;let c=DS((u=(h=e.refs)==null?void 0:h.call(e,{prop:a,context:s}))!=null?u:{});this.refs=c;let d=xo(()=>({defaultValue:Uu(e,e.initialState({prop:a})),onChange:(f,m)=>{var V,I;let{exiting:P,entering:C}=bE(this.machine,m,f,(V=this.transition)==null?void 0:V.reenter);if(P.forEach(b=>{let y=this.effects.get(b.path);y==null||y(),this.effects.delete(b.path)}),P.forEach(b=>{var y;this.action((y=b.state)==null?void 0:y.exit)}),this.action((I=this.transition)==null?void 0:I.actions),C.forEach(b=>{var E;let y=this.effect((E=b.state)==null?void 0:E.effects);y&&this.effects.set(b.path,y)}),m===Tl){this.action(e.entry);let b=this.effect(e.effects);b&&this.effects.set(Tl,b)}C.forEach(b=>{var y;this.action((y=b.state)==null?void 0:y.entry)})}}));this.state=d,this.cleanups.push(Vo(this.state.ref,()=>this.notify()))}updateProps(e){let t=this.userPropsRef.current;this.userPropsRef.current=()=>{let n=In(t),r=In(e);return Dg(n,r)},this.notify()}start(){this.status=ra.Started,this.debug("initializing..."),this.state.invoke(this.state.initial,Tl),this.setupTrackers()}stop(){this.effects.forEach(e=>e==null?void 0:e()),this.effects.clear(),this.transition=null,this.action(this.machine.exit),this.cleanups.forEach(e=>e()),this.cleanups=[],this.subscriptions=[],this.status=ra.Stopped,this.debug("unmounting...")}get service(){return{state:this.getState(),send:this.send,context:this.context,prop:this.prop,scope:this.scope,refs:this.refs,computed:this.computed,event:this.getEvent(),getStatus:()=>this.status}}};Yu={onFocus:"onFocusin",onBlur:"onFocusout",onChange:"onInput",onDoubleClick:"onDblclick",htmlFor:"for",className:"class",defaultValue:"value",defaultChecked:"checked"},MS=new Set(["viewBox","preserveAspectRatio"]),FS=e=>{let t="";for(let n in e){let r=e[n];r!=null&&(n.startsWith("--")||(n=n.replace(/[A-Z]/g,i=>`-${i.toLowerCase()}`)),t+=`${n}:${r};`)}return t},_S=LS(e=>Object.entries(e).reduce((t,[n,r])=>{if(r===void 0)return t;if(n in Yu&&(n=Yu[n]),n==="style"&&typeof r=="object")return t.style=FS(r),t;let i=MS.has(n)?n:n.toLowerCase();return t[i]=r,t},{})),So=new WeakMap,Xu=new Set(["value","checked","selected"]),$S=new Set(["viewBox","preserveAspectRatio","clipPath","clipRule","fillRule","strokeWidth","strokeLinecap","strokeLinejoin","strokeDasharray","strokeDashoffset","strokeMiterlimit"]),HS=e=>e.tagName==="svg"||e.namespaceURI==="http://www.w3.org/2000/svg",Po=(e,t)=>HS(e)&&$S.has(t)?t:t.toLowerCase();X=class{constructor(e,t){J(this,"el");J(this,"doc");J(this,"machine");J(this,"api");J(this,"init",()=>{try{this.machine.start(),this.render()}finally{this.el.removeAttribute("data-loading")}this.machine.subscribe(()=>{this.api=this.initApi(),this.render()})});J(this,"destroy",()=>{this.el.removeAttribute("data-loading"),this.machine.stop()});J(this,"spreadProps",(e,t)=>{BS(e,t,this.machine.scope.id)});J(this,"updateProps",e=>{this.machine.updateProps(e)});if(!e)throw new Error("Root element not found");this.el=e,this.doc=document,this.machine=this.initMachine(t),this.api=this.initApi()}zagConnect(e){return e(this.machine.service,_S)}},j=(e,t=[])=>({parts:(...n)=>{if(GS(t))return j(e,n);throw new Error("createAnatomy().parts(...) should only be called once. Did you mean to use .extendWith(...) ?")},extendWith:(...n)=>j(e,[...t,...n]),omit:(...n)=>j(e,t.filter(r=>!n.includes(r))),rename:n=>j(n,t),keys:()=>t,build:()=>[...new Set(t)].reduce((n,r)=>Object.assign(n,{[r]:{selector:[`&[data-scope="${di(e)}"][data-part="${di(r)}"]`,`& [data-scope="${di(e)}"][data-part="${di(r)}"]`].join(", "),attrs:{"data-scope":di(e),"data-part":di(r)}}}),{})}),di=e=>e.replace(/([A-Z])([A-Z])/g,"$1-$2").replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[\s_]+/g,"-").toLowerCase(),GS=e=>e.length===0});function ec(e,t,n){let r=e.getAttribute(t);if(r===null)throw new Error(`[corex] missing ${n} on #${e.id}`);return r}function ir(e,t,n){let r=ec(e,t,n),i=parseFloat(r);if(Number.isNaN(i))throw new Error(`[corex] invalid ${n} on #${e.id}`);return i}function ar(e){return{duration:ir(e,"data-anim-height-duration","data-anim-height-duration"),easing:ec(e,"data-anim-height-easing","data-anim-height-easing"),opacityStart:ir(e,"data-anim-height-opacity-start","data-anim-height-opacity-start"),opacityEnd:ir(e,"data-anim-height-opacity-end","data-anim-height-opacity-end"),blockInteraction:wn(e,"animHeightBlockInteraction")!==!1}}function tc(e){return{duration:ir(e,"data-anim-scale-duration","data-anim-scale-duration"),easing:ec(e,"data-anim-scale-easing","data-anim-scale-easing"),opacityStart:ir(e,"data-anim-scale-opacity-start","data-anim-scale-opacity-start"),opacityEnd:ir(e,"data-anim-scale-opacity-end","data-anim-scale-opacity-end"),scaleStart:ir(e,"data-anim-transform-scale-start","data-anim-transform-scale-start"),scaleEnd:ir(e,"data-anim-transform-scale-end","data-anim-transform-scale-end"),blockInteraction:wn(e,"animScaleBlockInteraction")!==!1}}function Lg(e){var n;let t=((n=va.get(e))!=null?n:0)+1;va.set(e,t),t===1&&(e.style.pointerEvents="none")}function Mg(e){var n;let t=((n=va.get(e))!=null?n:0)-1;t<=0?(va.delete(e),e.style.removeProperty("pointer-events")):va.set(e,t)}function US(e,t,n){let r=e.dataset.part==="backdrop",i=(n==null?void 0:n.scale)!==!1&&!r&&(t.scaleStart!==t.scaleEnd||t.scaleStart!==1||t.scaleEnd!==1);e.style.opacity=String(t.opacityStart),i?e.style.transform=`scale(${t.scaleStart})`:e.style.removeProperty("transform")}function qS(e,t){e.style.opacity=String(t.opacityStart),e.style.height="0px",e.style.overflow="hidden",e.style.removeProperty("transform")}function Nr(e){let t=p({},e);return delete t.hidden,t}function Fg(e){e.style.opacity="",e.style.height="",e.style.overflow="",e.style.removeProperty("transform")}function qo(e,t,n){e.querySelectorAll(t).forEach(r=>{r.dataset.state==="open"?Fg(r):qS(r,n)})}function _g(e,t,n,r){e.querySelectorAll(t).forEach(i=>{i.dataset.state==="open"?Fg(i):US(i,n,r==null?void 0:r(i))})}function Ci(e){let{rootEl:t,selector:n,opts:r,isOpen:i,wasOpen:a}=e,o=r.blockInteraction?t:void 0;t.querySelectorAll(n).forEach(s=>{let l=a?a(s):s.dataset.state==="open",c=i(s);l!==c&&WS(s,c,r,o)})}function WS(e,t,n,r){e.getAnimations().forEach(h=>h.cancel());let i=t?n.opacityStart:n.opacityEnd,a=t?n.opacityEnd:n.opacityStart;e.style.overflow="hidden",e.style.height="auto";let o=`${e.scrollHeight}px`;e.style.height=t?"0px":o;let s={opacity:i,height:t?"0px":o},l={opacity:a,height:t?o:"0px"};r&&n.blockInteraction&&Lg(r);let c=e.animate([s,l],{duration:n.duration*1e3,easing:n.easing,fill:"forwards"}),d=!1,g=()=>{d||(d=!0,c.cancel(),r&&n.blockInteraction&&Mg(r),t?(e.style.height="auto",e.style.opacity="",e.style.overflow=""):(e.style.height="0px",e.style.opacity=String(n.opacityStart),e.style.overflow="hidden"))};return c.onfinish=()=>{g()},c.oncancel=()=>{g()},c}function nc(e,t,n,r){e.getAnimations().forEach(m=>m.cancel());let i=e.dataset.part==="backdrop",a=!i&&(n.scaleStart!==n.scaleEnd||n.scaleStart!==1||n.scaleEnd!==1),o=t?n.opacityStart:n.opacityEnd,s=t?n.opacityEnd:n.opacityStart,l=t?n.scaleStart:n.scaleEnd,c=t?n.scaleEnd:n.scaleStart,d={opacity:o},g={opacity:s};a&&(d.transform=`scale(${l})`,g.transform=`scale(${c})`),r&&n.blockInteraction&&Lg(r);let h=e.animate([d,g],{duration:n.duration*1e3,easing:n.easing,fill:"forwards"}),u=!1,f=()=>{u||(u=!0,h.cancel(),r&&n.blockInteraction&&Mg(r),t?(e.style.opacity="",e.style.removeProperty("transform")):(e.style.opacity=String(n.opacityStart),i?e.style.removeProperty("transform"):a?e.style.transform=`scale(${n.scaleStart})`:e.style.removeProperty("transform")))};return h.onfinish=()=>{f()},h.oncancel=()=>{f()},h}var va,Wo=ne(()=>{"use strict";se();va=new WeakMap});function ce(e){let t=[];return{add(n,r){t.push(e.handleEvent(n,r))},teardown(){for(let n of t)e.removeHandleEvent(n);t.length=0}}}function de(e){let t=[];return{add(n,r){let i=r;e.addEventListener(n,i),t.push({eventName:n,listener:i})},teardown(){for(let{eventName:n,listener:r}of t)e.removeEventListener(n,r);t.length=0}}}var _e=ne(()=>{"use strict"});function we(e){var t,n,r;if(e&&typeof e=="object"){let i=e,a=(r=(n=(t=i.respond_to)!=null?t:i.respondTo)!=null?n:typeof i.respond_to=="string"?i.respond_to:void 0)!=null?r:typeof i.respondTo=="string"?i.respondTo:void 0;if(a==="server"||a==="client"||a==="both")return a}return"server"}function B(e,t){return t==null||t===""?!0:e===t}function Ko(e){var r;if(!e||typeof e!="object")return;let t=e,n=(r=t.checked)!=null?r:t.checked;if(n===!0||n==="true"||n===1)return!0;if(n===!1||n==="false"||n===0)return!1}function $g(e){var r;if(!e||typeof e!="object")return;let t=e,n=(r=t.visible)!=null?r:t.visible;if(n===!0||n==="true"||n===1)return!0;if(n===!1||n==="false"||n===0)return!1}function G(e){if(!e||typeof e!="object")return;let t=e,n;for(let r of Object.keys(t)){let i=t[r];if(!(typeof i!="string"||i==="")){if(r==="id"||r==="Id")n=i;else if(r.includes("_id")||r.length>2&&r.endsWith("Id"))return i}}return n}function Hg(e){var r;if(!e||typeof e!="object")return"";let t=e,n=(r=t.value)!=null?r:t.value;return n==null?"":String(n)}function K(e){let{el:t,canPushServer:n,pushEvent:r,payload:i,serverEventName:a,clientEventName:o}=e;a&&n&&r(a,p({},i)),o&&t.dispatchEvent(new CustomEvent(o,{bubbles:!0,detail:i}))}function je(e){let{respondTo:t,canPushServer:n,pushEvent:r,serverEventName:i,serverPayload:a,el:o,domEventName:s,domDetail:l}=e;t!=="client"&&n&&r(i,a),t!=="server"&&o.dispatchEvent(new CustomEvent(s,{bubbles:!0,detail:l}))}var Ce=ne(()=>{"use strict"});var Bg={};fe(Bg,{Accordion:()=>iP});function QS(e,t){let{send:n,context:r,prop:i,scope:a,computed:o}=e,s=r.get("focusedValue"),l=r.get("value"),c=i("multiple");function d(h){let u=h;!c&&u.length>1&&(u=[u[0]]),n({type:"VALUE.SET",value:u})}function g(h){var u;return{expanded:l.includes(h.value),focused:s===h.value,disabled:!!((u=h.disabled)!=null?u:i("disabled"))}}return{focusedValue:s,value:l,setValue:d,getItemState:g,getRootProps(){return t.element(v(p({},ya.root.attrs),{dir:i("dir"),id:jo(a),"data-orientation":i("orientation")}))},getItemProps(h){let u=g(h);return t.element(v(p({},ya.item.attrs),{dir:i("dir"),id:jS(a,h.value),"data-state":u.expanded?"open":"closed","data-focus":S(u.focused),"data-disabled":S(u.disabled),"data-orientation":i("orientation")}))},getItemContentProps(h){let u=g(h);return t.element(v(p({},ya.itemContent.attrs),{dir:i("dir"),role:"region",id:rc(a,h.value),"aria-labelledby":zo(a,h.value),hidden:!u.expanded,"data-state":u.expanded?"open":"closed","data-disabled":S(u.disabled),"data-focus":S(u.focused),"data-orientation":i("orientation")}))},getItemIndicatorProps(h){let u=g(h);return t.element(v(p({},ya.itemIndicator.attrs),{dir:i("dir"),"aria-hidden":!0,"data-state":u.expanded?"open":"closed","data-disabled":S(u.disabled),"data-focus":S(u.focused),"data-orientation":i("orientation")}))},getItemTriggerProps(h){let{value:u}=h,f=g(h);return t.button(v(p({},ya.itemTrigger.attrs),{type:"button",dir:i("dir"),id:zo(a,u),"aria-controls":rc(a,u),"data-controls":rc(a,u),"aria-expanded":f.expanded,disabled:f.disabled,"data-orientation":i("orientation"),"aria-disabled":f.disabled,"data-state":f.expanded?"open":"closed","data-focus":S(f.focused),"data-ownedby":jo(a),onFocus(){f.disabled||n({type:"TRIGGER.FOCUS",value:u})},onBlur(){f.disabled||n({type:"TRIGGER.BLUR"})},onClick(m){f.disabled||(yt()&&m.currentTarget.focus(),n({type:"TRIGGER.CLICK",value:u}))},onKeyDown(m){if(m.defaultPrevented||f.disabled)return;let P={ArrowDown(){o("isHorizontal")||n({type:"GOTO.NEXT",value:u})},ArrowUp(){o("isHorizontal")||n({type:"GOTO.PREV",value:u})},ArrowRight(){o("isHorizontal")&&n({type:"GOTO.NEXT",value:u})},ArrowLeft(){o("isHorizontal")&&n({type:"GOTO.PREV",value:u})},Home(){n({type:"GOTO.FIRST",value:u})},End(){n({type:"GOTO.LAST",value:u})}},C=ve(m,{dir:i("dir"),orientation:i("orientation")}),V=P[C];V&&(V(m),m.preventDefault())}}))}}}var KS,ya,jo,jS,rc,zo,zS,Yo,YS,XS,ZS,JS,eP,tP,nP,rP,iP,Gg=ne(()=>{"use strict";Il();Wo();_e();Ce();se();KS=j("accordion").parts("root","item","itemTrigger","itemContent","itemIndicator"),ya=KS.build(),jo=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`accordion:${e.id}`},jS=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.item)==null?void 0:r.call(n,t))!=null?i:`accordion:${e.id}:item:${t}`},rc=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemContent)==null?void 0:r.call(n,t))!=null?i:`accordion:${e.id}:content:${t}`},zo=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemTrigger)==null?void 0:r.call(n,t))!=null?i:`accordion:${e.id}:trigger:${t}`},zS=e=>e.getById(jo(e)),Yo=e=>{let n=`[data-controls][data-ownedby='${CSS.escape(jo(e))}']:not([disabled])`;return xe(zS(e),n)},YS=e=>Tt(Yo(e)),XS=e=>qt(Yo(e)),ZS=(e,t)=>Si(Yo(e),zo(e,t)),JS=(e,t)=>Pi(Yo(e),zo(e,t));({and:eP,not:tP}=Te()),nP=te({props({props:e}){return p({collapsible:!1,multiple:!1,orientation:"vertical",defaultValue:[]},e)},initialState(){return"idle"},context({prop:e,bindable:t}){return{focusedValue:t(()=>({defaultValue:null,sync:!0,onChange(n){var r;(r=e("onFocusChange"))==null||r({value:n})}})),value:t(()=>({defaultValue:e("defaultValue"),value:e("value"),onChange(n){var r;(r=e("onValueChange"))==null||r({value:n})}}))}},computed:{isHorizontal:({prop:e})=>e("orientation")==="horizontal"},on:{"VALUE.SET":{actions:["setValue"]}},states:{idle:{on:{"TRIGGER.FOCUS":{target:"focused",actions:["setFocusedValue"]}}},focused:{on:{"GOTO.NEXT":{actions:["focusNextTrigger"]},"GOTO.PREV":{actions:["focusPrevTrigger"]},"TRIGGER.CLICK":[{guard:eP("isExpanded","canToggle"),actions:["collapse"]},{guard:tP("isExpanded"),actions:["expand"]}],"GOTO.FIRST":{actions:["focusFirstTrigger"]},"GOTO.LAST":{actions:["focusLastTrigger"]},"TRIGGER.BLUR":{target:"idle",actions:["clearFocusedValue"]}}}},implementations:{guards:{canToggle:({prop:e})=>!!e("collapsible")||!!e("multiple"),isExpanded:({context:e,event:t})=>e.get("value").includes(t.value)},actions:{collapse({context:e,prop:t,event:n}){let r=t("multiple")?wt(e.get("value"),n.value):[];e.set("value",r)},expand({context:e,prop:t,event:n}){let r=t("multiple")?mt(e.get("value"),n.value):[n.value];e.set("value",r)},focusFirstTrigger({scope:e}){var t;(t=YS(e))==null||t.focus()},focusLastTrigger({scope:e}){var t;(t=XS(e))==null||t.focus()},focusNextTrigger({context:e,scope:t}){let n=e.get("focusedValue");if(!n)return;let r=ZS(t,n);r==null||r.focus()},focusPrevTrigger({context:e,scope:t}){let n=e.get("focusedValue");if(!n)return;let r=JS(t,n);r==null||r.focus()},setFocusedValue({context:e,event:t}){e.set("focusedValue",t.value)},clearFocusedValue({context:e}){e.set("focusedValue",null)},setValue({context:e,event:t}){e.set("value",t.value)},coarseValue({context:e,prop:t}){!t("multiple")&&e.get("value").length>1&&(Ut("The value of accordion should be a single value when multiple is false."),e.set("value",[e.get("value")[0]]))}}}}),rP=class extends X{initMachine(e){return new Y(nP,e)}initApi(){return this.zagConnect(QS)}render(){var a,o;let e=(a=this.el.querySelector('[data-scope="accordion"][data-part="root"]'))!=null?a:this.el;this.spreadProps(e,this.api.getRootProps());let t=this.el.id,n=t?`accordion:${t}:item:`:"",r=e.querySelectorAll('[data-scope="accordion"][data-part="item"]'),i=(o=this.el.dataset.animation)!=null?o:"instant";for(let s of r){if(n&&!s.id.startsWith(n))continue;let l=s.dataset.value;if(!l)continue;let c=s.dataset.disabled==="";this.spreadProps(s,this.api.getItemProps({value:l,disabled:c}));let d=s.querySelector('[data-scope="accordion"][data-part="item-trigger"]');d&&this.spreadProps(d,this.api.getItemTriggerProps({value:l,disabled:c}));let g=s.querySelector('[data-scope="accordion"][data-part="item-indicator"]');g&&this.spreadProps(g,this.api.getItemIndicatorProps({value:l,disabled:c}));let h=s.querySelector('[data-scope="accordion"][data-part="item-content"]');h&&(i==="instant"?this.spreadProps(h,this.api.getItemContentProps({value:l,disabled:c})):(i==="js"||i==="custom")&&(this.spreadProps(h,Nr(this.api.getItemContentProps({value:l,disabled:c}))),h.removeAttribute("hidden")))}}},iP={mounted(){var d,g;let e=this.el,t=this,n=this.pushEvent.bind(this),r=()=>Q(this.liveSocket);t.lastValue=T(e,"controlled")?(d=ie(e,"value"))!=null?d:[]:(g=ie(e,"defaultValue"))!=null?g:[];let i=new rP(e,v(p({id:e.id},T(e,"controlled")?{value:ie(e,"value")}:{defaultValue:ie(e,"defaultValue")}),{collapsible:T(e,"collapsible"),multiple:T(e,"multiple"),orientation:x(e,"orientation"),dir:q(e),onValueChange:h=>{var V,I;let u=(V=h.value)!=null?V:[],f=(I=t.lastValue)!=null?I:[],{added:m,removed:P}=ea(u,f);t.lastValue=u;let C={id:e.id,value:u,previousValue:f,added:m,removed:P};K({el:e,canPushServer:r(),pushEvent:n,payload:C,serverEventName:x(e,"onValueChange"),clientEventName:x(e,"onValueChangeClient")}),e.dataset.animation==="js"&&!T(e,"controlled")&&Ci({rootEl:e,selector:'[data-scope="accordion"][data-part="item-content"]',opts:ar(e),isOpen:b=>{let y=b.closest('[data-scope="accordion"][data-part="item"]'),E=y==null?void 0:y.dataset.value;return!!E&&u.includes(E)}})},onFocusChange:h=>{var u;K({el:e,canPushServer:r(),pushEvent:n,payload:{id:e.id,value:(u=h.value)!=null?u:null},serverEventName:x(e,"onFocusChange"),clientEventName:x(e,"onFocusChangeClient")})}}));if(i.init(),this.accordion=i,e.dataset.animation==="js"){let h=ar(e);qo(e,'[data-scope="accordion"][data-part="item-content"]',h)}let a=h=>{let u=i.api.value;je({respondTo:h,canPushServer:r(),pushEvent:n,serverEventName:"accordion_value_response",serverPayload:{id:e.id,value:u},el:e,domEventName:"accordion-value",domDetail:{id:e.id,value:u}})},o=h=>{let u=i.api.focusedValue;je({respondTo:h,canPushServer:r(),pushEvent:n,serverEventName:"accordion_focused_response",serverPayload:{id:e.id,value:u},el:e,domEventName:"accordion-focused",domDetail:{id:e.id,value:u}})},s=(h,u,f)=>{let m={value:h,disabled:u},P=i.api.getItemState(m);je({respondTo:f,canPushServer:r(),pushEvent:n,serverEventName:"accordion_item_state_response",serverPayload:{id:e.id,value:h,state:{expanded:P.expanded,focused:P.focused,disabled:P.disabled}},el:e,domEventName:"accordion-item-state",domDetail:{id:e.id,value:h,state:P}})},l=de(e);this.domRegistry=l,l.add("corex:accordion:set-value",h=>{i.api.setValue(h.detail.value)}),l.add("corex:accordion:value",h=>{a(we(h.detail))}),l.add("corex:accordion:focused",h=>{o(we(h.detail))}),l.add("corex:accordion:item-state",h=>{let u=h.detail,f=u==null?void 0:u.value;typeof f!="string"||f===""||s(f,(u==null?void 0:u.disabled)===!0,we(u))});let c=ce(this);this.handleRegistry=c,c.add("accordion_set_value",h=>{B(e.id,G(h))&&i.api.setValue(h.value)}),c.add("accordion_value",h=>{B(e.id,G(h))&&a(we(h))}),c.add("accordion_focused",h=>{B(e.id,G(h))&&o(we(h))}),c.add("accordion_item_state",h=>{B(e.id,G(h))&&(typeof(h==null?void 0:h.value)!="string"||h.value===""||s(h.value,h.disabled===!0,we(h)))})},beforeUpdate(){var e;T(this.el,"controlled")&&this.el.dataset.animation==="js"&&(this.previousValue=(e=ie(this.el,"value"))!=null?e:[])},updated(){var t,n,r,i;let e=T(this.el,"controlled");if(e){let a=(t=ie(this.el,"value"))!=null?t:[],o=(r=(n=this.previousValue)!=null?n:this.lastValue)!=null?r:[];this.previousValue=void 0,this.lastValue=a,this.el.dataset.animation==="js"&&Ci({rootEl:this.el,selector:'[data-scope="accordion"][data-part="item-content"]',opts:ar(this.el),wasOpen:s=>{let l=s.closest('[data-scope="accordion"][data-part="item"]'),c=l==null?void 0:l.dataset.value;return!!c&&o.includes(c)},isOpen:s=>{let l=s.closest('[data-scope="accordion"][data-part="item"]'),c=l==null?void 0:l.dataset.value;return!!c&&a.includes(c)}})}(i=this.accordion)==null||i.updateProps(v(p({id:this.el.id},e?{value:ie(this.el,"value")}:{defaultValue:ie(this.el,"defaultValue")}),{collapsible:T(this.el,"collapsible"),multiple:T(this.el,"multiple"),orientation:x(this.el,"orientation"),dir:q(this.el)}))},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.accordion)==null||n.destroy()}}});function Ug(e,t,n){return T(e,"controlled")?{value:Xo(x(e,t))}:{defaultValue:Xo(x(e,n))}}function qg(e,t,n){return T(e,"controlled")?{value:Xo(x(e,t))}:{defaultValue:Xo(x(e,n))}}function ic(e){let t=U(e,"step");return T(e,"controlled")?{value:U(e,"value"),step:t}:{defaultValue:U(e,"defaultValue"),step:t}}var Xo,ac=ne(()=>{"use strict";se();Xo=e=>e===void 0?null:e});function Nn(e){let{x:t,y:n,width:r,height:i}=e,a=t+r/2,o=n+i/2;return{x:t,y:n,width:r,height:i,minX:t,minY:n,maxX:t+r,maxY:n+i,midX:a,midY:o,center:Dr(a,o)}}function Kg(e){let t=Dr(e.minX,e.minY),n=Dr(e.maxX,e.minY),r=Dr(e.maxX,e.maxY),i=Dr(e.minX,e.maxY);return{top:t,right:n,bottom:r,left:i}}var aP,oP,on,Dr,oc,Wg,Zo=ne(()=>{"use strict";aP=Object.defineProperty,oP=(e,t,n)=>t in e?aP(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,on=(e,t,n)=>oP(e,typeof t!="symbol"?t+"":t,n),Dr=(e,t)=>({x:e,y:t}),oc=(e,t)=>t?Dr(e.x-t.x,e.y-t.y):e,Wg=(e,t)=>Dr(e.x+t.x,e.y+t.y)});var Xg,jg,Jo,sP,lP,cP,dP,sc,or,lc,Zg,Jg,Qg,Ii,uP,Oe,eh,th,zg,Ti,ba,cc,Ve,Yg,nh,rh,ih,Re,Nt=ne(()=>{"use strict";({floor:Xg,abs:jg,round:Jo,min:sP,max:lP,pow:cP,sign:dP}=Math),sc=e=>Number.isNaN(e),or=e=>sc(e)?0:e,lc=(e,t)=>(e%t+t)%t,Zg=(e,t)=>(e%t+t)%t,Jg=(e,t)=>or(e)>=t,Qg=(e,t)=>or(e)<=t,Ii=(e,t,n)=>{let r=or(e),i=t==null||r>=t,a=n==null||r<=n;return i&&a},uP=(e,t,n)=>Jo((or(e)-t)/n)*n+t,Oe=(e,t,n)=>sP(lP(or(e),t),n),eh=(e,t,n)=>(or(e)-t)/(n-t),th=(e,t,n,r)=>Oe(uP(e*(n-t)+t,t,r),t,n),zg=(e,t)=>{let n=e,r=t.toString(),i=r.indexOf("."),a=i>=0?r.length-i:0;if(a>0){let o=cP(10,a);n=Jo(n*o)/o}return n},Ti=(e,t)=>typeof t=="number"?Xg(e*t+.5)/t:Jo(e),ba=(e,t,n,r)=>{let i=t!=null?Number(t):0,a=Number(n),o=(e-i)%r,s=jg(o)*2>=r?e+dP(o)*(r-jg(o)):e-o;if(s=zg(s,r),!sc(i)&&sa){let l=Xg((a-i)/r),c=i+l*r;s=l<=0||ce[t]===n?e:[...e.slice(0,t),n,...e.slice(t+1)],Ve=(e,t=0,n=10)=>{let r=Math.pow(n,t);return Jo(e*r)/r},Yg=e=>{if(!Number.isFinite(e))return 0;let t=1,n=0;for(;Math.round(e*t)/t!==e;)t*=10,n+=1;return n},nh=(e,t,n)=>{let r=t==="+"?e+n:e-n;if(e%1!==0||n%1!==0){let i=10**Math.max(Yg(e),Yg(n));e=Math.round(e*i),n=Math.round(n*i),r=t==="+"?e+n:e-n,r/=i}return r},rh=(e,t)=>nh(or(e),"+",t),ih=(e,t)=>nh(or(e),"-",t),Re=e=>typeof e=="number"?`${e}px`:e});var hh={};fe(hh,{AngleSlider:()=>CP});function vP(e,t,n=e.center){let r=t.x-n.x,i=t.y-n.y;return 360-(Math.atan2(r,i)*(180/Math.PI)+180)}function uh(e){return(360-e)%360}function hc(e,t,n,r){let i=Nn(e.getBoundingClientRect()),a=vP(i,t);return n!=null?a-n:(r==="rtl"&&(a=uh(a)),a)}function yP(e,t,n,r,i){if(n==null)return hc(e,t,null,i);let a=hc(e,t),o=r+n;return i==="rtl"?r+o-a:a-n}function oh(e,t){return t==="rtl"?uh(e):e}function gh(e){return Math.min(Math.max(e,Qo),es)}function bP(e,t){let n=gh(e),r=Math.ceil(n/t),i=Math.round(n/t);return r>=n/t?r*t===es?Qo:r*t:i*t}function sh(e,t){return ba(e,Qo,es,t)}function EP(e,t){let{state:n,send:r,context:i,prop:a,computed:o,scope:s}=e,l=n.matches("dragging"),c=i.get("value"),d=o("valueAsDegree"),g=a("dir"),h=oh(c,g),u=a("disabled"),f=a("invalid"),m=a("readOnly"),P=o("interactive"),C=a("aria-label"),V=a("aria-labelledby");return{value:c,valueAsDegree:d,dragging:l,setValue(I){r({type:"VALUE.SET",value:I})},getRootProps(){return t.element(v(p({},Lr.root.attrs),{id:hP(s),dir:a("dir"),"data-disabled":S(u),"data-invalid":S(f),"data-readonly":S(m),style:{"--value":c,"--angle":`${h}deg`}}))},getLabelProps(){return t.label(v(p({},Lr.label.attrs),{id:ah(s),htmlFor:uc(s),dir:a("dir"),"data-disabled":S(u),"data-invalid":S(f),"data-readonly":S(m),onClick(I){var b;P&&(I.preventDefault(),(b=gc(s))==null||b.focus())}}))},getHiddenInputProps(){return t.element({type:"hidden",value:c,name:a("name"),id:uc(s),dir:a("dir")})},getControlProps(){return t.element(v(p({},Lr.control.attrs),{role:"presentation",id:dh(s),dir:a("dir"),"data-disabled":S(u),"data-invalid":S(f),"data-readonly":S(m),onPointerDown(I){if(!P||!Ee(I))return;let b=Je(I),y=I.currentTarget,E=gc(s),A=zt(I).composedPath(),N=E&&A.includes(E),O=null;N&&(O=hc(y,b)-c),r({type:"CONTROL.POINTER_DOWN",point:b,angularOffset:O}),I.stopPropagation()},style:{touchAction:"none",userSelect:"none",WebkitUserSelect:"none"}}))},getThumbProps(){return t.element(v(p({},Lr.thumb.attrs),{id:ch(s),role:"slider",dir:a("dir"),"aria-label":C,"aria-labelledby":V!=null?V:ah(s),"aria-valuemax":360,"aria-valuemin":0,"aria-valuenow":c,tabIndex:m||P?0:void 0,"data-disabled":S(u),"data-invalid":S(f),"data-readonly":S(m),onFocus(){r({type:"THUMB.FOCUS"})},onBlur(){r({type:"THUMB.BLUR"})},onKeyDown(I){if(!P)return;let b=xn(I)*a("step"),y={ArrowLeft(){r({type:"THUMB.ARROW_DEC",step:b})},ArrowUp(){r({type:"THUMB.ARROW_DEC",step:b})},ArrowRight(){r({type:"THUMB.ARROW_INC",step:b})},ArrowDown(){r({type:"THUMB.ARROW_INC",step:b})},Home(){r({type:"THUMB.HOME"})},End(){r({type:"THUMB.END"})}},E=ve(I,{dir:a("dir"),orientation:"horizontal"}),A=y[E];A&&(A(I),I.preventDefault())},style:{rotate:"var(--angle)"}}))},getValueTextProps(){return t.element(v(p({},Lr.valueText.attrs),{id:pP(s),dir:a("dir")}))},getMarkerGroupProps(){return t.element(v(p({},Lr.markerGroup.attrs),{dir:a("dir")}))},getMarkerProps(I){let b;I.valuec?b="over-value":b="at-value";let y=oh(I.value,g);return t.element(v(p({},Lr.marker.attrs),{dir:a("dir"),"data-value":I.value,"data-state":b,"data-disabled":S(u),style:{"--marker-value":I.value,"--marker-display-value":y,rotate:"calc(var(--marker-display-value) * 1deg)"}}))}}}function lh(e,t){return{id:e.id,value:t.value,valueAsDegree:t.valueAsDegree}}function dc(e,t){queueMicrotask(()=>{let n=t(),r=e.querySelector('[data-scope="angle-slider"][data-part="hidden-input"]');if(!r)return;let i=n.api.value;String(r.value)!==String(i)&&(r.value=String(i)),r.dispatchEvent(new Event("input",{bubbles:!0})),r.dispatchEvent(new Event("change",{bubbles:!0}))})}var gP,Lr,hP,ch,uc,dh,pP,ah,fP,mP,gc,Qo,es,SP,PP,CP,ph=ne(()=>{"use strict";ac();Zo();Nt();_e();Ce();se();gP=j("angle-slider").parts("root","label","thumb","valueText","control","track","markerGroup","marker"),Lr=gP.build(),hP=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`angle-slider:${e.id}`},ch=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.thumb)!=null?n:`angle-slider:${e.id}:thumb`},uc=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.hiddenInput)!=null?n:`angle-slider:${e.id}:input`},dh=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.control)!=null?n:`angle-slider:${e.id}:control`},pP=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.valueText)!=null?n:`angle-slider:${e.id}:value-text`},ah=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`angle-slider:${e.id}:label`},fP=e=>e.getById(uc(e)),mP=e=>e.getById(dh(e)),gc=e=>e.getById(ch(e));Qo=0,es=359;SP=te({props({props:e}){return p({step:1,defaultValue:0},e)},context({prop:e,bindable:t}){return{value:t(()=>({defaultValue:e("defaultValue"),value:e("value"),onChange(n){var r;(r=e("onValueChange"))==null||r({value:n,valueAsDegree:`${n}deg`})}}))}},refs(){return{thumbDragOffset:null}},computed:{interactive:({prop:e})=>!(e("disabled")||e("readOnly")),valueAsDegree:({context:e})=>`${e.get("value")}deg`},watch({track:e,context:t,action:n}){e([()=>t.get("value")],()=>{n(["syncInputElement"])})},initialState(){return"idle"},on:{"VALUE.SET":{actions:["setValue"]}},states:{idle:{on:{"CONTROL.POINTER_DOWN":{target:"dragging",actions:["setThumbDragOffset","setPointerValue","focusThumb"]},"THUMB.FOCUS":{target:"focused"}}},focused:{on:{"CONTROL.POINTER_DOWN":{target:"dragging",actions:["setThumbDragOffset","setPointerValue","focusThumb"]},"THUMB.ARROW_DEC":{actions:["decrementValue","invokeOnChangeEnd"]},"THUMB.ARROW_INC":{actions:["incrementValue","invokeOnChangeEnd"]},"THUMB.HOME":{actions:["setValueToMin","invokeOnChangeEnd"]},"THUMB.END":{actions:["setValueToMax","invokeOnChangeEnd"]},"THUMB.BLUR":{target:"idle"}}},dragging:{entry:["focusThumb"],effects:["trackPointerMove"],on:{"DOC.POINTER_UP":{target:"focused",actions:["invokeOnChangeEnd","clearThumbDragOffset"]},"DOC.POINTER_MOVE":{actions:["setPointerValue"]}}}},implementations:{effects:{trackPointerMove({scope:e,send:t}){return an(e.getDoc(),{onPointerMove(n){t({type:"DOC.POINTER_MOVE",point:n.point})},onPointerUp(){t({type:"DOC.POINTER_UP"})}})}},actions:{syncInputElement({scope:e,context:t}){let n=fP(e);Be(n,t.get("value").toString())},invokeOnChangeEnd({context:e,prop:t,computed:n}){var r;(r=t("onValueChangeEnd"))==null||r({value:e.get("value"),valueAsDegree:n("valueAsDegree")})},setPointerValue({scope:e,event:t,context:n,prop:r,refs:i}){let a=mP(e);if(!a)return;let o=i.get("thumbDragOffset"),s=n.get("value"),l=yP(a,t.point,o,s,r("dir"));n.set("value",bP(l,r("step")))},setValueToMin({context:e}){e.set("value",Qo)},setValueToMax({context:e}){e.set("value",es)},setValue({context:e,event:t}){e.set("value",gh(t.value))},decrementValue({context:e,event:t,prop:n}){var i;let r=sh(e.get("value")-t.step,(i=t.step)!=null?i:n("step"));e.set("value",r)},incrementValue({context:e,event:t,prop:n}){var i;let r=sh(e.get("value")+t.step,(i=t.step)!=null?i:n("step"));e.set("value",r)},focusThumb({scope:e}){$(()=>{var t;(t=gc(e))==null||t.focus({preventScroll:!0})})},setThumbDragOffset({refs:e,event:t}){var n;e.set("thumbDragOffset",(n=t.angularOffset)!=null?n:null)},clearThumbDragOffset({refs:e}){e.set("thumbDragOffset",null)}}}}),PP=class extends X{initMachine(e){return new Y(SP,e)}initApi(){return this.zagConnect(EP)}render(){var s,l;let e=(s=this.el.querySelector('[data-scope="angle-slider"][data-part="root"]'))!=null?s:this.el;this.spreadProps(e,this.api.getRootProps());let t=this.el.querySelector('[data-scope="angle-slider"][data-part="label"]');t&&this.spreadProps(t,this.api.getLabelProps());let n=this.el.querySelector('[data-scope="angle-slider"][data-part="hidden-input"]');n&&this.spreadProps(n,this.api.getHiddenInputProps());let r=this.el.querySelector('[data-scope="angle-slider"][data-part="control"]');r&&this.spreadProps(r,this.api.getControlProps());let i=this.el.querySelector('[data-scope="angle-slider"][data-part="thumb"]');i&&this.spreadProps(i,this.api.getThumbProps());let a=this.el.querySelector('[data-scope="angle-slider"][data-part="value-text"]');if(a){this.spreadProps(a,this.api.getValueTextProps());let c=a.querySelector('[data-scope="angle-slider"][data-part="value"]'),d=this.el.dataset.valueTextAs,g=String(d==="raw"?this.api.value:(l=this.api.valueAsDegree)!=null?l:this.api.value);c&&c.textContent!==g&&(c.textContent=g)}let o=this.el.querySelector('[data-scope="angle-slider"][data-part="marker-group"]');o&&this.spreadProps(o,this.api.getMarkerGroupProps()),this.el.querySelectorAll('[data-scope="angle-slider"][data-part="marker"]').forEach(c=>{let d=c.dataset.value;if(d==null)return;let g=Number(d);Number.isNaN(g)||this.spreadProps(c,this.api.getMarkerProps({value:g}))})}};CP={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>Q(this.liveSocket),r=new PP(e,v(p({id:e.id},ic(e)),{disabled:T(e,"disabled"),readOnly:T(e,"readOnly"),invalid:T(e,"invalid"),name:x(e,"name"),dir:q(e),"aria-label":x(e,"aria-label"),"aria-labelledby":x(e,"aria-labelledby"),onValueChange:s=>{K({el:e,canPushServer:n(),pushEvent:t,payload:lh(e,s),serverEventName:x(e,"onValueChange"),clientEventName:x(e,"onValueChangeClient")})},onValueChangeEnd:s=>{K({el:e,canPushServer:n(),pushEvent:t,payload:lh(e,s),serverEventName:x(e,"onValueChangeEnd"),clientEventName:x(e,"onValueChangeEndClient")}),dc(e,()=>r)}}));r.init(),this.angleSlider=r;let i=s=>{je({respondTo:s,canPushServer:n(),pushEvent:t,serverEventName:"angle_slider_value_response",serverPayload:{id:e.id,value:r.api.value,valueAsDegree:r.api.valueAsDegree,dragging:r.api.dragging},el:e,domEventName:"angle-slider-value",domDetail:{id:e.id,value:r.api.value,valueAsDegree:r.api.valueAsDegree,dragging:r.api.dragging}})},a=de(e);this.domRegistry=a,a.add("corex:angle-slider:set-value",s=>{r.api.setValue(s.detail.value),dc(e,()=>r)}),a.add("corex:angle-slider:value",s=>{i(we(s.detail))});let o=ce(this);this.handleRegistry=o,o.add("angle_slider_set_value",s=>{B(e.id,G(s))&&(r.api.setValue(s.value),dc(e,()=>r))}),o.add("angle_slider_value",s=>{B(e.id,G(s))&&i(we(s))})},updated(){var e;(e=this.angleSlider)==null||e.updateProps(v(p({id:this.el.id},ic(this.el)),{disabled:T(this.el,"disabled"),readOnly:T(this.el,"readOnly"),invalid:T(this.el,"invalid"),name:x(this.el,"name"),dir:q(this.el)}))},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.angleSlider)==null||n.destroy()}}});var vh={};fe(vh,{Avatar:()=>kP});function OP(e,t){let{state:n,send:r,prop:i,scope:a}=e,o=n.matches("loaded");return{loaded:o,setSrc(s){let l=fc(a);l==null||l.setAttribute("src",s)},setLoaded(){r({type:"img.loaded",src:"api"})},setError(){r({type:"img.error",src:"api"})},getRootProps(){return t.element(v(p({},pc.root.attrs),{dir:i("dir"),id:fh(a)}))},getImageProps(){return t.img(v(p({},pc.image.attrs),{hidden:!o,dir:i("dir"),id:mh(a),"data-state":o?"visible":"hidden",onLoad(){r({type:"img.loaded",src:"element"})},onError(){r({type:"img.error",src:"element"})}}))},getFallbackProps(){return t.element(v(p({},pc.fallback.attrs),{dir:i("dir"),id:TP(a),hidden:o,"data-state":o?"hidden":"visible"}))}}}function xP(e){return e.complete&&e.naturalWidth!==0&&e.naturalHeight!==0}function RP(e,t){return{id:e.id,status:t.status}}var IP,pc,fh,mh,TP,wP,fc,VP,AP,kP,yh=ne(()=>{"use strict";_e();Ce();se();IP=j("avatar").parts("root","image","fallback"),pc=IP.build(),fh=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`avatar:${e.id}`},mh=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.image)!=null?n:`avatar:${e.id}:image`},TP=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.fallback)!=null?n:`avatar:${e.id}:fallback`},wP=e=>e.getById(fh(e)),fc=e=>e.getById(mh(e));VP=te({initialState(){return"loading"},effects:["trackImageRemoval","trackSrcChange"],on:{"src.change":{target:"loading"},"img.unmount":{target:"error"}},states:{loading:{entry:["checkImageStatus"],on:{"img.loaded":{target:"loaded",actions:["invokeOnLoad"]},"img.error":{target:"error",actions:["invokeOnError"]}}},error:{on:{"img.loaded":{target:"loaded",actions:["invokeOnLoad"]}}},loaded:{on:{"img.error":{target:"error",actions:["invokeOnError"]}}}},implementations:{actions:{invokeOnLoad({prop:e}){var t;(t=e("onStatusChange"))==null||t({status:"loaded"})},invokeOnError({prop:e}){var t;(t=e("onStatusChange"))==null||t({status:"error"})},checkImageStatus({send:e,scope:t}){let n=fc(t);if(!(n!=null&&n.complete))return;let r=xP(n)?"img.loaded":"img.error";e({type:r,src:"ssr"})}},effects:{trackImageRemoval({send:e,scope:t}){let n=wP(t);return Bo(n,{callback(r){Array.from(r[0].removedNodes).find(o=>o.nodeType===Node.ELEMENT_NODE&&o.matches("[data-scope=avatar][data-part=image]"))&&e({type:"img.unmount"})}})},trackSrcChange({send:e,scope:t}){let n=fc(t);return kt(n,{attributes:["src","srcset"],callback(){e({type:"src.change"})}})}}}});AP=class extends X{initMachine(e){return new Y(VP,e)}initApi(){return this.zagConnect(OP)}render(){var i;let e=(i=this.el.querySelector('[data-scope="avatar"][data-part="root"]'))!=null?i:this.el;this.spreadProps(e,this.api.getRootProps());let t=this.el.querySelector('[data-scope="avatar"][data-part="image"]');t&&this.spreadProps(t,this.api.getImageProps());let n=this.el.querySelector('[data-scope="avatar"][data-part="fallback"]');n&&this.spreadProps(n,this.api.getFallbackProps());let r=this.el.querySelector('[data-scope="avatar"][data-part="skeleton"]');if(r){let a=this.machine.service.state,o=a.matches("loaded"),s=a.matches("error");r.hidden=o||s,r.setAttribute("data-state",o||s?"hidden":"visible")}}};kP={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>Q(this.liveSocket),r=x(e,"src"),i=new AP(e,{id:e.id,dir:x(e,"dir"),onStatusChange:l=>{let c=RP(e,l);K({el:e,canPushServer:n(),pushEvent:t,payload:c,serverEventName:x(e,"onStatusChange"),clientEventName:x(e,"onStatusChangeClient")})}});i.init(),this.avatar=i,this.lastSrc=r;let a=l=>{let c=i.api.loaded;je({respondTo:l,canPushServer:n(),pushEvent:t,serverEventName:"avatar_loaded_response",serverPayload:{id:e.id,loaded:c},el:e,domEventName:"avatar-loaded",domDetail:{id:e.id,loaded:c}})},o=de(e);this.domRegistry=o,o.add("corex:avatar:set-src",l=>{var d;let c=(d=l.detail)==null?void 0:d.src;typeof c=="string"&&(i.api.setSrc(c),this.lastSrc=c,e.dataset.src=c)}),o.add("corex:avatar:loaded",l=>{a(we(l.detail))});let s=ce(this);this.handleRegistry=s,s.add("avatar_set_src",l=>{B(e.id,G(l))&&(i.api.setSrc(l.src),this.lastSrc=l.src,e.dataset.src=l.src)}),s.add("avatar_loaded",l=>{B(e.id,G(l))&&a(we(l))})},updated(){let e=x(this.el,"src"),t=x(this.el,"dir");this.avatar&&this.avatar.updateProps(p({},t!==void 0?{dir:t}:{})),this.avatar&&e!==void 0&&e!==this.lastSrc&&(this.avatar.api.setSrc(e),this.lastSrc=e),this.avatar&&e===void 0&&this.lastSrc!==void 0&&(this.avatar.api.setSrc(""),this.lastSrc=void 0)},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.avatar)==null||n.destroy()}}});var Th={};fe(Th,{Carousel:()=>zP});function HP(e,t){let{state:n,context:r,computed:i,send:a,scope:o,prop:s}=e,l=n.matches("autoplay"),c=n.matches("dragging"),d=i("canScrollNext"),g=i("canScrollPrev"),h=i("isHorizontal"),u=s("autoSize"),f=Array.from(r.get("pageSnapPoints")),m=r.get("page"),P=f.length?Oe(m,0,f.length-1):0,C=s("slidesPerPage"),V=s("padding"),I=s("translations");return{isPlaying:l,isDragging:c,page:P,pageSnapPoints:f,canScrollNext:d,canScrollPrev:g,getProgress(){return P/f.length},getProgressText(){var y,E;let b={page:P+1,totalPages:f.length};return(E=(y=I.progressText)==null?void 0:y.call(I,b))!=null?E:""},scrollToIndex(b,y){a({type:"INDEX.SET",index:b,instant:y})},scrollTo(b,y){a({type:"PAGE.SET",index:b,instant:y})},scrollNext(b){a({type:"PAGE.NEXT",instant:b})},scrollPrev(b){a({type:"PAGE.PREV",instant:b})},play(){a({type:"AUTOPLAY.START"})},pause(){a({type:"AUTOPLAY.PAUSE"})},isInView(b){return Array.from(r.get("slidesInView")).includes(b)},refresh(){a({type:"SNAP.REFRESH"})},getRootProps(){return t.element(v(p({},sn.root.attrs),{id:DP(o),role:"region","aria-roledescription":"carousel","data-orientation":s("orientation"),dir:s("dir"),style:{"--slides-per-page":C,"--slide-spacing":s("spacing"),"--slide-item-size":u?"auto":"calc(100% / var(--slides-per-page) - var(--slide-spacing) * (var(--slides-per-page) - 1) / var(--slides-per-page))"}}))},getItemGroupProps(){return t.element(v(p({},sn.itemGroup.attrs),{id:rs(o),"data-orientation":s("orientation"),"data-dragging":S(c),dir:s("dir"),"aria-live":l?"off":"polite",onFocus(b){ge(b.currentTarget,ee(b))&&a({type:"VIEWPORT.FOCUS"})},onBlur(b){ge(b.currentTarget,b.relatedTarget)||a({type:"VIEWPORT.BLUR"})},onMouseDown(b){if(b.defaultPrevented||!s("allowMouseDrag")||!Ee(b))return;let y=ee(b);lt(y)&&y!==b.currentTarget||(b.preventDefault(),a({type:"DRAGGING.START"}))},onWheel:ag(b=>{let y=s("orientation")==="horizontal"?"deltaX":"deltaY";b[y]<0&&!i("canScrollPrev")||b[y]>0&&!i("canScrollNext")||a({type:"USER.SCROLL"})},150),onTouchStart(){a({type:"USER.SCROLL"})},style:{display:u?"flex":"grid",gap:"var(--slide-spacing)",scrollSnapType:[h?"x":"y",s("snapType")].join(" "),gridAutoFlow:h?"column":"row",scrollbarWidth:"none",overscrollBehaviorX:"contain",[h?"gridAutoColumns":"gridAutoRows"]:u?void 0:"var(--slide-item-size)",[h?"scrollPaddingInline":"scrollPaddingBlock"]:V,[h?"paddingInline":"paddingBlock"]:V,[h?"overflowX":"overflowY"]:"auto"}}))},getItemProps(b){let y=r.get("slidesInView").includes(b.index);return t.element(v(p({},sn.item.attrs),{id:LP(o,b.index),dir:s("dir"),role:"group","data-index":b.index,"data-inview":S(y),"aria-roledescription":"slide","data-orientation":s("orientation"),"aria-label":I.item(b.index,s("slideCount")),"aria-hidden":oe(!y),style:{flex:"0 0 auto",[h?"maxWidth":"maxHeight"]:"100%",scrollSnapAlign:(()=>{var w;let E=(w=b.snapAlign)!=null?w:"start",A=s("slidesPerMove"),N=A==="auto"?Math.floor(s("slidesPerPage")):A;return(b.index+N)%N===0?E:void 0})()}}))},getControlProps(){return t.element(v(p({},sn.control.attrs),{"data-orientation":s("orientation")}))},getPrevTriggerProps(){return t.button(v(p({},sn.prevTrigger.attrs),{id:FP(o),type:"button",disabled:!g,dir:s("dir"),"aria-label":I.prevTrigger,"data-orientation":s("orientation"),"aria-controls":rs(o),onClick(b){b.defaultPrevented||a({type:"PAGE.PREV",src:"trigger"})}}))},getNextTriggerProps(){return t.button(v(p({},sn.nextTrigger.attrs),{dir:s("dir"),id:MP(o),type:"button","aria-label":I.nextTrigger,"data-orientation":s("orientation"),"aria-controls":rs(o),disabled:!d,onClick(b){b.defaultPrevented||a({type:"PAGE.NEXT",src:"trigger"})}}))},getIndicatorGroupProps(){return t.element(v(p({},sn.indicatorGroup.attrs),{dir:s("dir"),id:_P(o),"data-orientation":s("orientation"),onKeyDown(b){if(b.defaultPrevented)return;let y="indicator",E={ArrowDown(O){h||(a({type:"PAGE.NEXT",src:y}),O.preventDefault())},ArrowUp(O){h||(a({type:"PAGE.PREV",src:y}),O.preventDefault())},ArrowRight(O){h&&(a({type:"PAGE.NEXT",src:y}),O.preventDefault())},ArrowLeft(O){h&&(a({type:"PAGE.PREV",src:y}),O.preventDefault())},Home(O){a({type:"PAGE.SET",index:0,src:y}),O.preventDefault()},End(O){a({type:"PAGE.SET",index:f.length-1,src:y}),O.preventDefault()}},A=ve(b,{dir:s("dir"),orientation:s("orientation")}),N=E[A];N==null||N(b)}}))},getIndicatorProps(b){return t.button(v(p({},sn.indicator.attrs),{dir:s("dir"),id:Sh(o,b.index),type:"button","data-orientation":s("orientation"),"data-index":b.index,"data-readonly":S(b.readOnly),"data-current":S(b.index===P),"aria-label":I.indicator(b.index),onClick(y){y.defaultPrevented||b.readOnly||a({type:"PAGE.SET",index:b.index,src:"indicator"})}}))},getAutoplayTriggerProps(){return t.button(v(p({},sn.autoplayTrigger.attrs),{type:"button","data-orientation":s("orientation"),"data-pressed":S(l),"aria-label":l?I.autoplayStop:I.autoplayStart,onClick(b){b.defaultPrevented||a({type:l?"AUTOPLAY.PAUSE":"AUTOPLAY.START"})}}))},getProgressTextProps(){return t.element(p({},sn.progressText.attrs))}}}function Ph(e){let t=At(e),n=e.offsetWidth,r=e.offsetHeight,i=t.getPropertyValue("scroll-padding-left").replace("auto","0px"),a=t.getPropertyValue("scroll-padding-top").replace("auto","0px"),o=t.getPropertyValue("scroll-padding-right").replace("auto","0px"),s=t.getPropertyValue("scroll-padding-bottom").replace("auto","0px"),l=ts(i,n),c=ts(a,r),d=ts(o,n),g=ts(s,r);return{x:{before:l,after:d},y:{before:c,after:g}}}function BP(e,t,n="both"){return n==="x"&&e.right>=t.left&&e.left<=t.right||n==="y"&&e.bottom>=t.top&&e.top<=t.bottom||n==="both"&&e.right>=t.left&&e.left<=t.right&&e.bottom>=t.top&&e.top<=t.bottom}function Ch(e){let t=[];for(let n of e.children)t=t.concat(n,Ch(n));return t}function Ih(e,t=!1){let n=e.getBoundingClientRect(),i=yc(e)==="rtl",a=xg(e),o={x:{start:[],center:[],end:[]},y:{start:[],center:[],end:[]}},s=t?Ch(e):e.children;for(let l of["x","y"]){let c=l==="x"?"y":"x",d=l==="x"?"left":"top",g=l==="x"?"right":"bottom",h=l==="x"?"width":"height",u=l==="x"?"scrollLeft":"scrollTop",f=l==="x"?a.x:a.y,m=i&&l==="x";for(let P of s){let C=P.getBoundingClientRect();if(!BP(n,C,c))continue;let V=At(P),[I,b]=V.getPropertyValue("scroll-snap-align").split(" ");typeof b=="undefined"&&(b=I);let y=l==="x"?b:I,E,A,N;if(m){let O=Math.abs(e[u]),w=(n[g]-C[g])/f+O;E=w,A=w+C[h]/f,N=w+C[h]/(2*f)}else E=(C[d]-n[d])/f+e[u],A=E+C[h]/f,N=E+C[h]/(2*f);switch(y){case"none":break;case"start":o[l].start.push({node:P,position:E});break;case"center":o[l].center.push({node:P,position:N});break;case"end":o[l].end.push({node:P,position:A});break}}}return o}function GP(e){let t=yc(e),n=Ph(e),r=Ih(e),i=e.offsetWidth,a=e.offsetHeight,o={x:e.scrollWidth-e.offsetWidth,y:e.scrollHeight-e.offsetHeight},s=t==="rtl",l=s&&e.scrollLeft<=0,c;return s?(c=mc([...r.x.start.map(d=>d.position-n.x.after),...r.x.center.map(d=>d.position-i/2),...r.x.end.map(d=>d.position-i+n.x.before)].map(vc(0,o.x))),l&&(c=c.map(d=>-d))):c=mc([...r.x.start.map(d=>d.position-n.x.before),...r.x.center.map(d=>d.position-i/2),...r.x.end.map(d=>d.position-i+n.x.after)].map(vc(0,o.x))),{x:c,y:mc([...r.y.start.map(d=>d.position-n.y.before),...r.y.center.map(d=>d.position-a/2),...r.y.end.map(d=>d.position-a+n.y.after)].map(vc(0,o.y)))}}function UP(e,t,n){let r=yc(e),i=Ph(e),a=Ih(e),o=[...a[t].start,...a[t].center,...a[t].end],s=r==="rtl",l=s&&t==="x"&&e.scrollLeft<=0;for(let c of o)if(n(c.node)){let d;return t==="x"&&s?(d=c.position-i.x.after,l&&(d=-d)):d=c.position-(t==="x"?i.x.before:i.y.before),d}}function KP(e,t,n){if(e==null||n<=0)return[];let r=[],i=t==="auto"?Math.floor(n):t;if(i<=0)return[];for(let a=0;ae);a+=i)r.push(a);return r}function ns(e){if(e&&typeof e=="object"&&"instant"in e){let t=e.instant;return t===!0||t==="true"}return!1}var NP,sn,DP,LP,rs,MP,FP,_P,Sh,Qe,bh,$P,Eh,yc,ts,mc,vc,qP,WP,jP,zP,wh=ne(()=>{"use strict";Nt();_e();Ce();se();NP=j("carousel").parts("root","itemGroup","item","control","nextTrigger","prevTrigger","indicatorGroup","indicator","autoplayTrigger","progressText"),sn=NP.build(),DP=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`carousel:${e.id}`},LP=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.item)==null?void 0:r.call(n,t))!=null?i:`carousel:${e.id}:item:${t}`},rs=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.itemGroup)!=null?n:`carousel:${e.id}:item-group`},MP=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.nextTrigger)!=null?n:`carousel:${e.id}:next-trigger`},FP=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.prevTrigger)!=null?n:`carousel:${e.id}:prev-trigger`},_P=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.indicatorGroup)!=null?n:`carousel:${e.id}:indicator-group`},Sh=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.indicator)==null?void 0:r.call(n,t))!=null?i:`carousel:${e.id}:indicator:${t}`},Qe=e=>e.getById(rs(e)),bh=e=>xe(Qe(e),"[data-part=item]"),$P=(e,t)=>e.getById(Sh(e,t)),Eh=e=>{let t=Qe(e);if(!t)return;let n=An(t);t.setAttribute("tabindex",n.length>0?"-1":"0")};yc=e=>At(e).direction,ts=(e,t)=>{let n=parseFloat(e);return/%/.test(e)&&(n/=100,n*=t),Number.isNaN(n)?0:n};mc=e=>[...new Set(e)],vc=(e,t)=>n=>Math.max(e,Math.min(t,n)),qP=1,WP=te({props({props:e}){return rn(e,["slideCount"],"carousel"),v(p({dir:"ltr",defaultPage:0,orientation:"horizontal",snapType:"mandatory",loop:!!e.autoplay,slidesPerPage:1,slidesPerMove:"auto",spacing:"0px",autoplay:!1,allowMouseDrag:!1,inViewThreshold:.6,autoSize:!1},e),{translations:p({nextTrigger:"Next slide",prevTrigger:"Previous slide",indicator:t=>`Go to slide ${t+1}`,item:(t,n)=>`${t+1} of ${n}`,autoplayStart:"Start slide rotation",autoplayStop:"Stop slide rotation",progressText:({page:t,totalPages:n})=>`${t} / ${n}`},e.translations)})},refs(){return{timeoutRef:void 0}},initialState({prop:e}){return e("autoplay")?"autoplay":"idle"},context({prop:e,bindable:t,getContext:n}){return{page:t(()=>({defaultValue:e("defaultPage"),value:e("page"),onChange(r){var o;let a=n().get("pageSnapPoints");(o=e("onPageChange"))==null||o({page:r,pageSnapPoint:a[r]})}})),pageSnapPoints:t(()=>({defaultValue:e("autoSize")?Array.from({length:e("slideCount")},(r,i)=>i):KP(e("slideCount"),e("slidesPerMove"),e("slidesPerPage"))})),slidesInView:t(()=>({defaultValue:[]}))}},computed:{isRtl:({prop:e})=>e("dir")==="rtl",isHorizontal:({prop:e})=>e("orientation")==="horizontal",canScrollNext:({prop:e,context:t})=>e("loop")||t.get("page")e("loop")||t.get("page")>0,autoplayInterval:({prop:e})=>{let t=e("autoplay");return nn(t)?t.delay:4e3}},watch({track:e,action:t,context:n,prop:r,send:i}){e([()=>r("slidesPerPage"),()=>r("slidesPerMove")],()=>{t(["setSnapPoints"])}),e([()=>n.get("page")],()=>{t(["scrollToPage","focusIndicatorEl"])}),e([()=>r("orientation"),()=>r("autoSize"),()=>r("dir")],()=>{t(["setSnapPoints","scrollToPage"])}),e([()=>r("slideCount")],()=>{i({type:"SNAP.REFRESH",src:"slide.count"})}),e([()=>!!r("autoplay")],()=>{i({type:r("autoplay")?"AUTOPLAY.START":"AUTOPLAY.PAUSE",src:"autoplay.prop.change"})})},on:{"PAGE.NEXT":{target:"idle",actions:["clearScrollEndTimer","setNextPage"]},"PAGE.PREV":{target:"idle",actions:["clearScrollEndTimer","setPrevPage"]},"PAGE.SET":{target:"idle",actions:["clearScrollEndTimer","setPage"]},"INDEX.SET":{target:"idle",actions:["clearScrollEndTimer","setMatchingPage"]},"SNAP.REFRESH":{actions:["setSnapPoints","scrollToPageIfDrifted"]},"PAGE.SCROLL":{actions:["scrollToPage"]}},effects:["trackSlideMutation","trackSlideIntersections","trackSlideResize"],entry:["setSnapPoints","setPage"],exit:["clearScrollEndTimer"],states:{idle:{on:{"DRAGGING.START":{target:"dragging",actions:["invokeDragStart"]},"AUTOPLAY.START":{target:"autoplay",actions:["invokeAutoplayStart"]},"USER.SCROLL":{target:"userScroll"},"VIEWPORT.FOCUS":{target:"focus"}}},focus:{effects:["trackKeyboardScroll"],on:{"VIEWPORT.BLUR":{target:"idle"},"PAGE.NEXT":{actions:["clearScrollEndTimer","setNextPage"]},"PAGE.PREV":{actions:["clearScrollEndTimer","setPrevPage"]},"PAGE.SET":{actions:["clearScrollEndTimer","setPage"]},"INDEX.SET":{actions:["clearScrollEndTimer","setMatchingPage"]},"USER.SCROLL":{target:"userScroll"}}},dragging:{effects:["trackPointerMove"],entry:["disableScrollSnap"],on:{DRAGGING:{actions:["scrollSlides","invokeDragging"]},"DRAGGING.END":{target:"settling",actions:["endDragging"]}}},settling:{effects:["trackSettlingScroll"],on:{"DRAGGING.START":{target:"dragging",actions:["clearScrollEndTimer","invokeDragStart"]},"SCROLL.END":[{guard:"isFocused",target:"focus",actions:["clearScrollEndTimer","setClosestPage","invokeDraggingEnd"]},{target:"idle",actions:["clearScrollEndTimer","setClosestPage","invokeDraggingEnd"]}]}},userScroll:{effects:["trackScroll"],on:{"DRAGGING.START":{target:"dragging",actions:["invokeDragStart"]},"SCROLL.END":[{guard:"isFocused",target:"focus",actions:["setClosestPage"]},{target:"idle",actions:["setClosestPage"]}]}},autoplay:{effects:["trackDocumentVisibility","trackScroll","autoUpdateSlide"],exit:["invokeAutoplayEnd"],on:{"AUTOPLAY.TICK":{actions:["setNextPage","invokeAutoplay"]},"DRAGGING.START":{target:"dragging",actions:["invokeDragStart"]},"AUTOPLAY.PAUSE":{target:"idle"}}}},implementations:{guards:{isFocused:({scope:e})=>e.isActiveElement(Qe(e))},effects:{autoUpdateSlide({computed:e,send:t}){let n=setInterval(()=>{t({type:e("canScrollNext")?"AUTOPLAY.TICK":"AUTOPLAY.PAUSE",src:"autoplay.interval"})},e("autoplayInterval"));return()=>clearInterval(n)},trackSlideMutation({scope:e,send:t}){let n=Qe(e);if(!n)return;let r=e.getWin(),i=new r.MutationObserver(()=>{t({type:"SNAP.REFRESH",src:"slide.mutation"}),Eh(e)});return Eh(e),i.observe(n,{childList:!0,subtree:!0}),()=>i.disconnect()},trackSlideResize({scope:e,send:t}){let n=Qe(e);if(!n)return;let r=()=>{t({type:"SNAP.REFRESH",src:"slide.resize"})};$(()=>{r(),$(()=>{t({type:"PAGE.SCROLL",instant:!0})})});let i=bh(e);i.forEach(r);let a=[kn.observe(n,r),...i.map(o=>kn.observe(o,r))];return vt(...a)},trackSlideIntersections({scope:e,prop:t,context:n}){let r=Qe(e),i=e.getWin(),a=new i.IntersectionObserver(o=>{let s=o.reduce((l,c)=>{var h;let d=c.target,g=Number((h=d.dataset.index)!=null?h:"-1");return g==null||Number.isNaN(g)||g===-1?l:c.isIntersecting?mt(l,g):wt(l,g)},n.get("slidesInView"));n.set("slidesInView",Wt(s))},{root:r,threshold:t("inViewThreshold")});return bh(e).forEach(o=>a.observe(o)),()=>a.disconnect()},trackScroll({send:e,refs:t,scope:n}){let r=Qe(n);return r?re(r,"scroll",()=>{clearTimeout(t.get("timeoutRef")),t.set("timeoutRef",void 0),t.set("timeoutRef",setTimeout(()=>{e({type:"SCROLL.END"})},150))},{passive:!0}):void 0},trackSettlingScroll({send:e,refs:t,scope:n}){let r=Qe(n);if(!r)return;let i=()=>{clearTimeout(t.get("timeoutRef")),t.set("timeoutRef",void 0),t.set("timeoutRef",setTimeout(()=>{e({type:"SCROLL.END"})},200))};i();let o=re(r,"scroll",()=>{i()},{passive:!0});return()=>{o(),clearTimeout(t.get("timeoutRef")),t.set("timeoutRef",void 0)}},trackDocumentVisibility({scope:e,send:t}){let n=e.getDoc();return re(n,"visibilitychange",()=>{n.visibilityState!=="visible"&&t({type:"AUTOPLAY.PAUSE",src:"doc.hidden"})})},trackPointerMove({scope:e,send:t}){let n=e.getDoc();return an(n,{onPointerMove({event:r}){t({type:"DRAGGING",left:-r.movementX,top:-r.movementY})},onPointerUp(){t({type:"DRAGGING.END"})}})},trackKeyboardScroll({scope:e,send:t,context:n}){let r=e.getWin();return re(r,"keydown",a=>{switch(a.key){case"ArrowRight":a.preventDefault(),t({type:"PAGE.NEXT"});break;case"ArrowLeft":a.preventDefault(),t({type:"PAGE.PREV"});break;case"Home":a.preventDefault(),t({type:"PAGE.SET",index:0});break;case"End":a.preventDefault(),t({type:"PAGE.SET",index:n.get("pageSnapPoints").length-1})}},{capture:!0})}},actions:{clearScrollEndTimer({refs:e}){e.get("timeoutRef")!=null&&(clearTimeout(e.get("timeoutRef")),e.set("timeoutRef",void 0))},scrollToPage({context:e,event:t,scope:n,computed:r,flush:i}){var c;let a=t.instant?"instant":"smooth",o=Oe((c=t.index)!=null?c:e.get("page"),0,e.get("pageSnapPoints").length-1),s=Qe(n);if(!s)return;let l=r("isHorizontal")?"left":"top";i(()=>{s.scrollTo({[l]:e.get("pageSnapPoints")[o],behavior:a})})},scrollToPageIfDrifted({context:e,scope:t,computed:n}){let r=Qe(t);if(!r)return;let i=e.get("pageSnapPoints")[e.get("page")];if(i==null)return;let a=n("isHorizontal")?r.scrollLeft:r.scrollTop;if(Math.abs(a-i)<=qP)return;let o=n("isHorizontal")?"left":"top";r.scrollTo({[o]:i,behavior:"instant"})},setClosestPage({context:e,scope:t,computed:n}){let r=Qe(t);if(!r)return;let i=n("isHorizontal")?r.scrollLeft:r.scrollTop,a=e.get("pageSnapPoints");if(!a.length)return;let o=a.reduce((s,l,c)=>{let d=Math.abs(l-i),g=Math.abs(a[s]-i);return ds.dataset.index===t.index.toString());if(a==null)return;let o=e.get("pageSnapPoints").findIndex(s=>Math.abs(s-a)<1);e.set("page",o)},setPage({context:e,event:t}){var r;let n=(r=t.index)!=null?r:e.get("page");e.set("page",n)},setSnapPoints({context:e,computed:t,scope:n}){let r=Qe(n);if(!r)return;let i=GP(r),a=t("isHorizontal")?i.x:i.y;if(e.set("pageSnapPoints",a),!a.length)return;let o=Oe(e.get("page"),0,a.length-1);e.set("page",o)},disableScrollSnap({scope:e}){let t=Qe(e);if(!t)return;let n=getComputedStyle(t);t.dataset.scrollSnapType=n.getPropertyValue("scroll-snap-type"),t.style.setProperty("scroll-snap-type","none")},scrollSlides({scope:e,event:t}){let n=Qe(e);n==null||n.scrollBy({left:t.left,top:t.top,behavior:"instant"})},endDragging({scope:e,context:t,computed:n}){let r=Qe(e);if(!r)return;let i=n("isHorizontal"),a=i?r.scrollLeft:r.scrollTop,o=t.get("pageSnapPoints");if(!o.length)return;let s=o.reduce((l,c)=>Math.abs(c-a){r.scrollTo({left:i?s:r.scrollLeft,top:i?r.scrollTop:s,behavior:"smooth"});let l=r.dataset.scrollSnapType;l&&(r.style.setProperty("scroll-snap-type",l),delete r.dataset.scrollSnapType)})},focusIndicatorEl({context:e,event:t,scope:n}){if(t.src!=="indicator")return;let r=$P(n,e.get("page"));r&&$(()=>r.focus({preventScroll:!0}))},invokeDragStart({context:e,prop:t}){var n;(n=t("onDragStatusChange"))==null||n({type:"dragging.start",isDragging:!0,page:e.get("page")})},invokeDragging({context:e,prop:t}){var n;(n=t("onDragStatusChange"))==null||n({type:"dragging",isDragging:!0,page:e.get("page")})},invokeDraggingEnd({context:e,prop:t}){var n;(n=t("onDragStatusChange"))==null||n({type:"dragging.end",isDragging:!1,page:e.get("page")})},invokeAutoplay({context:e,prop:t}){var n;(n=t("onAutoplayStatusChange"))==null||n({type:"autoplay",isPlaying:!0,page:e.get("page")})},invokeAutoplayStart({context:e,prop:t}){var n;(n=t("onAutoplayStatusChange"))==null||n({type:"autoplay.start",isPlaying:!0,page:e.get("page")})},invokeAutoplayEnd({context:e,prop:t}){var n;(n=t("onAutoplayStatusChange"))==null||n({type:"autoplay.stop",isPlaying:!1,page:e.get("page")})}}}});jP=class extends X{initMachine(e){return new Y(WP,e)}initApi(){return this.zagConnect(HP)}render(){var d;let e=(d=this.el.querySelector('[data-scope="carousel"][data-part="root"]'))!=null?d:this.el;this.spreadProps(e,this.api.getRootProps());let t=this.el.querySelector('[data-scope="carousel"][data-part="control"]');t&&this.spreadProps(t,this.api.getControlProps());let n=this.el.querySelector('[data-scope="carousel"][data-part="item-group"]');n&&this.spreadProps(n,this.api.getItemGroupProps());let r=Number(this.el.dataset.slideCount)||0;for(let g=0;gQ(this.liveSocket),r=T(e,"controlled"),i=U(e,"slideCount");if(i==null||i<1)return;let a=new jP(e,v(p({id:e.id,slideCount:i},r?{page:U(e,"page")}:{defaultPage:U(e,"defaultPage")}),{dir:q(e),orientation:x(e,"orientation"),slidesPerPage:U(e,"slidesPerPage"),slidesPerMove:x(e,"slidesPerMove")==="auto"?"auto":U(e,"slidesPerMove"),loop:T(e,"loop"),autoplay:T(e,"autoplay")?{delay:U(e,"autoplayDelay")}:!1,allowMouseDrag:T(e,"allowMouseDrag"),spacing:x(e,"spacing"),padding:x(e,"padding"),inViewThreshold:U(e,"inViewThreshold"),snapType:x(e,"snapType"),autoSize:T(e,"autoSize"),onPageChange:l=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,page:l.page,pageSnapPoint:l.pageSnapPoint},serverEventName:x(e,"onPageChange"),clientEventName:x(e,"onPageChangeClient")})}}));a.init(),this.carousel=a;let o=de(e);this.domRegistry=o,o.add("corex:carousel:play",()=>{a.api.play()}),o.add("corex:carousel:pause",()=>{a.api.pause()}),o.add("corex:carousel:scroll-next",l=>{a.api.scrollNext(ns(l.detail))}),o.add("corex:carousel:scroll-prev",l=>{a.api.scrollPrev(ns(l.detail))});let s=ce(this);this.handleRegistry=s,s.add("carousel_play",l=>{B(e.id,G(l))&&a.api.play()}),s.add("carousel_pause",l=>{B(e.id,G(l))&&a.api.pause()}),s.add("carousel_scroll_next",l=>{B(e.id,G(l))&&a.api.scrollNext(ns(l))}),s.add("carousel_scroll_prev",l=>{B(e.id,G(l))&&a.api.scrollPrev(ns(l))})},updated(){var n;let e=U(this.el,"slideCount");if(e==null||e<1)return;let t=T(this.el,"controlled");(n=this.carousel)==null||n.updateProps(v(p({id:this.el.id,slideCount:e},t?{page:U(this.el,"page")}:{defaultPage:U(this.el,"defaultPage")}),{dir:q(this.el),orientation:x(this.el,"orientation"),slidesPerPage:U(this.el,"slidesPerPage"),slidesPerMove:x(this.el,"slidesPerMove")==="auto"?"auto":U(this.el,"slidesPerMove"),loop:T(this.el,"loop"),autoplay:T(this.el,"autoplay")?{delay:U(this.el,"autoplayDelay")}:!1,allowMouseDrag:T(this.el,"allowMouseDrag"),spacing:x(this.el,"spacing"),padding:x(this.el,"padding"),inViewThreshold:U(this.el,"inViewThreshold"),snapType:x(this.el,"snapType"),autoSize:T(this.el,"autoSize")}))},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.carousel)==null||n.destroy()}}});function YP(e){return!(e.metaKey||!mi()&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}function ZP(e,t,n){let r=n?ee(n):null,i=Ke(r),a=be(r),o=er(i);return e=e||o instanceof a.HTMLInputElement&&!XP.has(o==null?void 0:o.type)||o instanceof a.HTMLTextAreaElement||o instanceof a.HTMLElement&&o.isContentEditable,!(e&&t==="keyboard"&&n instanceof a.KeyboardEvent&&!Reflect.has(JP,n.key))}function os(e,t){for(let n of bc)n(e,t)}function as(e){Mr=!0,YP(e)&&(Dn="keyboard",os("keyboard",e))}function Dt(e){Dn="pointer",(e.type==="mousedown"||e.type==="pointerdown")&&(Mr=!0,os("pointer",e))}function Vh(e){Sg(e)&&(Mr=!0,Dn="virtual")}function xh(e){let t=ee(e);t===be(t)||t===Ke(t)||Oh||!e.isTrusted||(!Mr&&!Ec&&(Dn="virtual",os("virtual",e)),Mr=!1,Ec=!1)}function Ah(){Oh||(Mr=!1,Ec=!0)}function QP(e){if(typeof window=="undefined"||is.get(be(e)))return;let t=be(e),n=Ke(e),r=t.HTMLElement.prototype.focus;function i(){Mr=!0,r.apply(this,arguments)}try{Object.defineProperty(t.HTMLElement.prototype,"focus",{configurable:!0,value:i})}catch(a){}n.addEventListener("keydown",as,!0),n.addEventListener("keyup",as,!0),n.addEventListener("click",Vh,!0),t.addEventListener("focus",xh,!0),t.addEventListener("blur",Ah,!1),typeof t.PointerEvent!="undefined"?(n.addEventListener("pointerdown",Dt,!0),n.addEventListener("pointermove",Dt,!0),n.addEventListener("pointerup",Dt,!0)):(n.addEventListener("mousedown",Dt,!0),n.addEventListener("mousemove",Dt,!0),n.addEventListener("mouseup",Dt,!0)),t.addEventListener("beforeunload",()=>{eC(e)},{once:!0}),is.set(t,{focus:r})}function sr(){return Dn}function lr(e){Dn=e,os(e,null)}function ln(){return Dn==="keyboard"||Dn==="virtual"}function et(e={}){let{isTextInput:t,autoFocus:n,onChange:r,root:i}=e;QP(i),r==null||r({isFocusVisible:n||ln(),modality:Dn});let a=(o,s)=>{ZP(!!t,o,s)&&(r==null||r({isFocusVisible:ln(),modality:o}))};return bc.add(a),()=>{bc.delete(a)}}var XP,Dn,bc,is,Mr,Ec,Oh,JP,eC,Ln=ne(()=>{"use strict";se();XP=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);Dn=null,bc=new Set,is=new Map,Mr=!1,Ec=!1,Oh=!1,JP={Tab:!0,Escape:!0};eC=(e,t)=>{let n=be(e),r=Ke(e);t&&r.removeEventListener("DOMContentLoaded",t);let i=is.get(n);if(i){try{Object.defineProperty(n.HTMLElement.prototype,"focus",{configurable:!0,value:i.focus})}catch(a){}r.removeEventListener("keydown",as,!0),r.removeEventListener("keyup",as,!0),r.removeEventListener("click",Vh,!0),n.removeEventListener("focus",xh,!0),n.removeEventListener("blur",Ah,!1),typeof n.PointerEvent!="undefined"?(r.removeEventListener("pointerdown",Dt,!0),r.removeEventListener("pointermove",Dt,!0),r.removeEventListener("pointerup",Dt,!0)):(r.removeEventListener("mousedown",Dt,!0),r.removeEventListener("mousemove",Dt,!0),r.removeEventListener("mouseup",Dt,!0)),is.delete(n)}}});var Dh={};fe(Dh,{Checkbox:()=>cC});function iC(e,t){let{send:n,context:r,prop:i,computed:a,scope:o}=e,s=!!i("disabled"),l=!!i("readOnly"),c=!!i("required"),d=!!i("invalid"),g=!s&&r.get("focused"),h=!s&&r.get("focusVisible"),u=a("checked"),f=a("indeterminate"),m=r.get("checked"),P={"data-active":S(r.get("active")),"data-focus":S(g),"data-focus-visible":S(h),"data-readonly":S(l),"data-hover":S(r.get("hovered")),"data-disabled":S(s),"data-state":f?"indeterminate":u?"checked":"unchecked","data-invalid":S(d),"data-required":S(c)};return{checked:u,disabled:s,indeterminate:f,focused:g,checkedState:m,setChecked(C){n({type:"CHECKED.SET",checked:C,isTrusted:!1})},toggleChecked(){n({type:"CHECKED.TOGGLE",checked:u,isTrusted:!1})},getRootProps(){return t.label(v(p(p({},ss.root.attrs),P),{dir:i("dir"),id:Nh(o),htmlFor:Sc(o),onPointerMove(){s||n({type:"CONTEXT.SET",context:{hovered:!0}})},onPointerLeave(){s||n({type:"CONTEXT.SET",context:{hovered:!1}})},onClick(C){ee(C)===Ea(o)&&C.stopPropagation()}}))},getLabelProps(){return t.element(v(p(p({},ss.label.attrs),P),{dir:i("dir"),id:Rh(o)}))},getControlProps(){return t.element(v(p(p({},ss.control.attrs),P),{dir:i("dir"),id:nC(o),"aria-hidden":!0}))},getIndicatorProps(){return t.element(v(p(p({},ss.indicator.attrs),P),{dir:i("dir"),hidden:!f&&!u}))},getHiddenInputProps(){return t.input({id:Sc(o),type:"checkbox",required:i("required"),defaultChecked:u,disabled:s,"aria-labelledby":Rh(o),"aria-invalid":d,name:i("name"),form:i("form"),value:i("value"),style:dt,onFocus(){let C=ln();n({type:"CONTEXT.SET",context:{focused:!0,focusVisible:C}})},onBlur(){n({type:"CONTEXT.SET",context:{focused:!1,focusVisible:!1}})},onClick(C){if(l){C.preventDefault();return}let V=C.currentTarget.checked;n({type:"CHECKED.SET",checked:V,isTrusted:!0})}})}}}function ls(e){return e==="indeterminate"}function oC(e){return ls(e)?!1:!!e}function lC(e,t){return{id:e.id,checked:t.checked}}var tC,ss,Nh,Rh,nC,Sc,rC,Ea,kh,aC,sC,cC,Lh=ne(()=>{"use strict";Ln();_e();Ce();se();tC=j("checkbox").parts("root","label","control","indicator"),ss=tC.build(),Nh=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`checkbox:${e.id}`},Rh=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`checkbox:${e.id}:label`},nC=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.control)!=null?n:`checkbox:${e.id}:control`},Sc=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.hiddenInput)!=null?n:`checkbox:${e.id}:input`},rC=e=>e.getById(Nh(e)),Ea=e=>e.getById(Sc(e));({not:kh}=Te()),aC=te({props({props:e}){var t;return v(p({value:"on"},e),{defaultChecked:(t=e.defaultChecked)!=null?t:!1})},initialState(){return"ready"},context({prop:e,bindable:t}){return{checked:t(()=>({defaultValue:e("defaultChecked"),value:e("checked"),onChange(n){var r;(r=e("onCheckedChange"))==null||r({checked:n})}})),fieldsetDisabled:t(()=>({defaultValue:!1})),focusVisible:t(()=>({defaultValue:!1})),active:t(()=>({defaultValue:!1})),focused:t(()=>({defaultValue:!1})),hovered:t(()=>({defaultValue:!1}))}},watch({track:e,context:t,prop:n,action:r}){e([()=>n("disabled")],()=>{r(["removeFocusIfNeeded"])}),e([()=>t.get("checked")],()=>{r(["syncInputElement"])})},effects:["trackFormControlState","trackPressEvent","trackFocusVisible"],on:{"CHECKED.TOGGLE":[{guard:kh("isTrusted"),actions:["toggleChecked","dispatchChangeEvent"]},{actions:["toggleChecked"]}],"CHECKED.SET":[{guard:kh("isTrusted"),actions:["setChecked","dispatchChangeEvent"]},{actions:["setChecked"]}],"CONTEXT.SET":{actions:["setContext"]}},computed:{indeterminate:({context:e})=>ls(e.get("checked")),checked:({context:e})=>oC(e.get("checked")),disabled:({context:e,prop:t})=>!!t("disabled")||e.get("fieldsetDisabled")},states:{ready:{}},implementations:{guards:{isTrusted:({event:e})=>!!e.isTrusted},effects:{trackPressEvent({context:e,computed:t,scope:n}){if(!t("disabled"))return Go({pointerNode:rC(n),keyboardNode:Ea(n),isValidKey:r=>r.key===" ",onPress:()=>e.set("active",!1),onPressStart:()=>e.set("active",!0),onPressEnd:()=>e.set("active",!1)})},trackFocusVisible({computed:e,scope:t}){var n;if(!e("disabled"))return et({root:(n=t.getRootNode)==null?void 0:n.call(t)})},trackFormControlState({context:e,scope:t}){return Rt(Ea(t),{onFieldsetDisabledChange(n){e.set("fieldsetDisabled",n)},onFormReset(){e.set("checked",e.initial("checked"))}})}},actions:{setContext({context:e,event:t}){for(let n in t.context)e.set(n,t.context[n])},syncInputElement({context:e,computed:t,scope:n}){let r=Ea(n);r&&(ha(r,t("checked")),r.indeterminate=ls(e.get("checked")))},removeFocusIfNeeded({context:e,prop:t}){t("disabled")&&e.get("focused")&&(e.set("focused",!1),e.set("focusVisible",!1))},setChecked({context:e,event:t}){e.set("checked",t.checked)},toggleChecked({context:e,computed:t}){let n=ls(t("checked"))?!0:!t("checked");e.set("checked",n)},dispatchChangeEvent({computed:e,scope:t}){queueMicrotask(()=>{let n=Ea(t);vi(n,{checked:e("checked")})})}}}});sC=class extends X{initMachine(e){return new Y(aC,e)}initApi(){return this.zagConnect(iC)}render(){let e=this.el.querySelector('[data-scope="checkbox"][data-part="root"]');if(!e)return;this.spreadProps(e,this.api.getRootProps());let t=e.querySelector(':scope > [data-scope="checkbox"][data-part="hidden-input"]');t&&this.spreadProps(t,this.api.getHiddenInputProps());let n=e.querySelector(':scope > [data-scope="checkbox"][data-part="label"]');n&&this.spreadProps(n,this.api.getLabelProps());let r=e.querySelector(':scope > [data-scope="checkbox"][data-part="control"]');if(r){this.spreadProps(r,this.api.getControlProps());let i=r.querySelector(':scope > [data-scope="checkbox"][data-part="indicator"]');i&&this.spreadProps(i,this.api.getIndicatorProps())}}};cC={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>Q(this.liveSocket),r=new sC(e,v(p({id:e.id},T(e,"controlled")?{checked:en(e,"checked")}:{defaultChecked:en(e,"defaultChecked")}),{disabled:T(e,"disabled"),name:x(e,"name"),form:x(e,"form"),value:x(e,"value"),dir:q(e),invalid:T(e,"invalid"),required:T(e,"required"),readOnly:T(e,"readOnly"),onCheckedChange:o=>{K({el:e,canPushServer:n(),pushEvent:t,payload:lC(e,o),serverEventName:x(e,"onCheckedChange"),clientEventName:x(e,"onCheckedChangeClient")})}}));r.init(),this.checkbox=r;let i=de(e);this.domRegistry=i,i.add("corex:checkbox:set-checked",o=>{let{checked:s}=o.detail;r.api.setChecked(s)}),i.add("corex:checkbox:toggle-checked",()=>{r.api.toggleChecked()});let a=ce(this);this.handleRegistry=a,a.add("checkbox_set_checked",o=>{if(!B(e.id,G(o)))return;let s=Ko(o);typeof s=="boolean"&&r.api.setChecked(s)}),a.add("checkbox_toggle_checked",o=>{B(e.id,G(o))&&r.api.toggleChecked()}),a.add("checkbox_checked",o=>{B(e.id,G(o))&&n()&&this.pushEvent("checkbox_checked_response",{id:e.id,value:r.api.checked})}),a.add("checkbox_focused",o=>{B(e.id,G(o))&&n()&&this.pushEvent("checkbox_focused_response",{id:e.id,value:r.api.focused})}),a.add("checkbox_disabled",o=>{B(e.id,G(o))&&n()&&this.pushEvent("checkbox_disabled_response",{id:e.id,value:r.api.disabled})})},updated(){var e;(e=this.checkbox)==null||e.updateProps(v(p({id:this.el.id},T(this.el,"controlled")?{checked:en(this.el,"checked")}:{defaultChecked:en(this.el,"defaultChecked")}),{disabled:T(this.el,"disabled"),name:x(this.el,"name"),form:x(this.el,"form"),value:x(this.el,"value"),dir:q(this.el),invalid:T(this.el,"invalid"),required:T(this.el,"required"),readOnly:T(this.el,"readOnly")}))},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.checkbox)==null||n.destroy()}}});function Fh(e,t){let n=new Mh(({now:r,deltaMs:i})=>{if(i>=t){let a=t>0?r-i%t:r;n.setStartMs(a),e({startMs:a,deltaMs:i})}});return n.start(),()=>n.stop()}function cr(e,t){let n=new Mh(({deltaMs:r})=>{if(r>=t)return e(),!1});return n.start(),()=>n.stop()}var cs,ds,Mh,us=ne(()=>{"use strict";se();cs=()=>performance.now(),Mh=class{constructor(e){tn(this,"onTick",e),tn(this,"frameId",null),tn(this,"pausedAtMs",null),tn(this,"context"),tn(this,"cancelFrame",()=>{this.frameId!==null&&(cancelAnimationFrame(this.frameId),this.frameId=null)}),tn(this,"setStartMs",t=>{this.context.startMs=t}),tn(this,"start",()=>{if(this.frameId!==null)return;let t=cs();this.pausedAtMs!==null?(this.context.startMs+=t-this.pausedAtMs,this.pausedAtMs=null):this.context.startMs=t,this.frameId=requestAnimationFrame(Dl(this,ds))}),tn(this,"pause",()=>{this.frameId!==null&&(this.cancelFrame(),this.pausedAtMs=cs())}),tn(this,"stop",()=>{this.frameId!==null&&(this.cancelFrame(),this.pausedAtMs=null)}),Ju(this,ds,t=>{if(this.context.now=t,this.context.deltaMs=t-this.context.startMs,this.onTick(this.context)===!1){this.stop();return}this.frameId=requestAnimationFrame(Dl(this,ds))}),this.context={now:0,startMs:cs(),deltaMs:0}}get elapsedMs(){return this.pausedAtMs!==null?this.pausedAtMs-this.context.startMs:cs()-this.context.startMs}};ds=new WeakMap});var _h={};fe(_h,{Clipboard:()=>SC});function fC(e,t){let n=e.createElement("pre");return Object.assign(n.style,{width:"1px",height:"1px",position:"fixed",top:"5px"}),n.textContent=t,n}function mC(e){let n=be(e).getSelection();if(n==null)return Promise.reject(new Error);n.removeAllRanges();let r=e.ownerDocument,i=r.createRange();return i.selectNodeContents(e),n.addRange(i),r.execCommand("copy"),n.removeAllRanges(),Promise.resolve()}function vC(e,t){var i;let n=e.defaultView||window;if(((i=n.navigator.clipboard)==null?void 0:i.writeText)!==void 0)return n.navigator.clipboard.writeText(t);if(!e.body)return Promise.reject(new Error);let r=fC(e,t);return e.body.appendChild(r),mC(r),e.body.removeChild(r),Promise.resolve()}function yC(e,t){let{state:n,send:r,context:i,scope:a,prop:o}=e,s=n.matches("copied"),l=o("translations");return{copied:s,value:i.get("value"),setValue(c){r({type:"VALUE.SET",value:c})},copy(){r({type:"COPY"})},getRootProps(){return t.element(v(p({},wi.root.attrs),{"data-copied":S(s),id:uC(a)}))},getLabelProps(){return t.label(v(p({},wi.label.attrs),{htmlFor:Pc(a),"data-copied":S(s),id:gC(a)}))},getControlProps(){return t.element(v(p({},wi.control.attrs),{"data-copied":S(s)}))},getInputProps(){return t.input(v(p({},wi.input.attrs),{defaultValue:i.get("value"),"data-copied":S(s),readOnly:!0,"data-readonly":"true",id:Pc(a),onFocus(c){c.currentTarget.select()},onCopy(){r({type:"INPUT.COPY"})}}))},getTriggerProps(){var c;return t.button(v(p({},wi.trigger.attrs),{type:"button","aria-label":(c=l.triggerLabel)==null?void 0:c.call(l,s),"data-copied":S(s),onClick(){r({type:"COPY"})}}))},getIndicatorProps(c){return t.element(v(p({},wi.indicator.attrs),{hidden:c.copied!==s}))}}}var dC,wi,uC,Pc,gC,hC,pC,bC,EC,SC,$h=ne(()=>{"use strict";us();_e();Ce();se();dC=j("clipboard").parts("root","control","trigger","indicator","input","label"),wi=dC.build(),uC=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`clip:${e.id}`},Pc=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.input)!=null?n:`clip:${e.id}:input`},gC=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`clip:${e.id}:label`},hC=e=>e.getById(Pc(e)),pC=(e,t)=>vC(e.getDoc(),t);bC=te({props({props:e}){return v(p({timeout:3e3,defaultValue:""},e),{translations:p({triggerLabel:t=>t?"Copied to clipboard":"Copy to clipboard"},e.translations)})},initialState(){return"idle"},context({prop:e,bindable:t}){return{value:t(()=>({defaultValue:e("defaultValue"),value:e("value"),onChange(n){var r;(r=e("onValueChange"))==null||r({value:n})}}))}},watch({track:e,context:t,action:n}){e([()=>t.get("value")],()=>{n(["syncInputElement"])})},on:{"VALUE.SET":{actions:["setValue"]},COPY:{target:"copied",actions:["copyToClipboard","invokeOnCopy"]}},states:{idle:{on:{"INPUT.COPY":{target:"copied",actions:["invokeOnCopy"]}}},copied:{effects:["waitForTimeout"],on:{"COPY.DONE":{target:"idle"},COPY:{target:"copied",actions:["copyToClipboard","invokeOnCopy"]},"INPUT.COPY":{actions:["invokeOnCopy"]}}}},implementations:{effects:{waitForTimeout({prop:e,send:t}){return cr(()=>{t({type:"COPY.DONE"})},e("timeout"))}},actions:{setValue({context:e,event:t}){e.set("value",t.value)},copyToClipboard({context:e,scope:t}){pC(t,e.get("value"))},invokeOnCopy({prop:e}){var t;(t=e("onStatusChange"))==null||t({copied:!0})},syncInputElement({context:e,scope:t}){let n=hC(t);n&&Be(n,e.get("value"))}}}}),EC=class extends X{initMachine(e){return new Y(bC,e)}initApi(){return this.zagConnect(yC)}render(){let e=this.el.querySelector('[data-scope="clipboard"][data-part="root"]');if(e){this.spreadProps(e,this.api.getRootProps());let t=e.querySelector('[data-scope="clipboard"][data-part="label"]');t&&this.spreadProps(t,this.api.getLabelProps());let n=e.querySelector('[data-scope="clipboard"][data-part="control"]');if(n){this.spreadProps(n,this.api.getControlProps());let r=n.querySelector('[data-scope="clipboard"][data-part="input"]');if(r){let a=p({},this.api.getInputProps()),o=this.el.dataset.inputAriaLabel;o&&(a["aria-label"]=o),this.spreadProps(r,a)}let i=n.querySelector('[data-scope="clipboard"][data-part="trigger"]');if(i){let a=p({},this.api.getTriggerProps()),o=this.el.dataset.triggerAriaLabel;o&&(a["aria-label"]=o),this.spreadProps(i,a)}}}}},SC={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>Q(this.liveSocket),r=new EC(e,{id:e.id,timeout:U(e,"timeout"),defaultValue:x(e,"defaultValue"),onStatusChange:o=>{var l;if((o==null?void 0:o.copied)!==!0)return;let s=(l=r.api.value)!=null?l:x(e,"defaultValue");K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,value:s},serverEventName:x(e,"onCopy"),clientEventName:x(e,"onCopyClient")})}});r.init(),this.clipboard=r;let i=de(e);this.domRegistry=i,i.add("corex:clipboard:copy",()=>{r.api.copy()}),i.add("corex:clipboard:set-value",o=>{var l;let s=(l=o.detail)==null?void 0:l.value;typeof s=="string"&&r.api.setValue(s)});let a=ce(this);this.handleRegistry=a,a.add("clipboard_copy",o=>{B(e.id,G(o))&&r.api.copy()}),a.add("clipboard_set_value",o=>{var c;if(!B(e.id,G(o))||!o||typeof o!="object")return;let s=o,l=(c=s.value)!=null?c:s.value;typeof l=="string"&&r.api.setValue(l)})},updated(){var e;(e=this.clipboard)==null||e.updateProps({id:this.el.id,timeout:U(this.el,"timeout"),defaultValue:x(this.el,"defaultValue")})},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.clipboard)==null||n.destroy()}}});var Hh={};fe(Hh,{Code:()=>PC});var PC,Bh=ne(()=>{"use strict";PC={mounted(){this.el.tagName==="PRE"&&(this._scrollTop=this.el.scrollTop,this._scrollLeft=this.el.scrollLeft)},beforeUpdate(){this.el.tagName==="PRE"&&(this._scrollTop=this.el.scrollTop,this._scrollLeft=this.el.scrollLeft)},updated(){var n,r;if(this.el.tagName!=="PRE")return;let e=(n=this._scrollTop)!=null?n:0,t=(r=this._scrollLeft)!=null?r:0;requestAnimationFrame(()=>{this.el.scrollTop=e,this.el.scrollLeft=t})}}});var Gh={};fe(Gh,{Collapsible:()=>AC});function wC(e,t){let{state:n,send:r,context:i,scope:a,prop:o}=e,s=n.matches("open")||n.matches("closing"),l=n.matches("open"),c=n.matches("closed"),{width:d,height:g}=i.get("size"),h=!!o("disabled"),u=o("collapsedHeight"),f=o("collapsedWidth"),m=u!=null,P=f!=null,C=m||P,V=!i.get("initial")&&l;return{disabled:h,visible:s,open:l,measureSize(){r({type:"size.measure"})},setOpen(I){n.matches("open")!==I&&r({type:I?"open":"close"})},getRootProps(){return t.element(v(p({},gs.root.attrs),{"data-state":l?"open":"closed",dir:o("dir"),id:IC(a)}))},getContentProps(){return t.element(v(p({},gs.content.attrs),{id:Cc(a),"data-collapsible":"","data-state":V?void 0:l?"open":"closed","data-disabled":S(h),"data-has-collapsed-size":S(C),hidden:!s&&!C,dir:o("dir"),style:p(p({"--height":Re(g),"--width":Re(d),"--collapsed-height":Re(u),"--collapsed-width":Re(f)},c&&m&&{overflow:"hidden",minHeight:Re(u),maxHeight:Re(u)}),c&&P&&{overflow:"hidden",minWidth:Re(f),maxWidth:Re(f)})}))},getTriggerProps(){return t.element(v(p({},gs.trigger.attrs),{id:TC(a),dir:o("dir"),type:"button","data-state":l?"open":"closed","data-disabled":S(h),"aria-controls":Cc(a),"aria-expanded":s||!1,onClick(I){I.defaultPrevented||h||r({type:l?"close":"open"})}}))},getIndicatorProps(){return t.element(v(p({},gs.indicator.attrs),{dir:o("dir"),"data-state":l?"open":"closed","data-disabled":S(h)}))}}}function xC(e,t){return{id:e.id,open:t.open}}var CC,gs,IC,Cc,TC,Sa,OC,VC,AC,Uh=ne(()=>{"use strict";Nt();_e();Ce();se();CC=j("collapsible").parts("root","trigger","content","indicator"),gs=CC.build(),IC=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`collapsible:${e.id}`},Cc=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.content)!=null?n:`collapsible:${e.id}:content`},TC=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.trigger)!=null?n:`collapsible:${e.id}:trigger`},Sa=e=>e.getById(Cc(e));OC=te({initialState({prop:e}){return e("open")||e("defaultOpen")?"open":"closed"},context({bindable:e}){return{size:e(()=>({defaultValue:{height:0,width:0},sync:!0})),initial:e(()=>({defaultValue:!1}))}},refs(){return{cleanup:void 0,stylesRef:void 0}},watch({track:e,prop:t,action:n}){e([()=>t("open")],()=>{n(["setInitial","computeSize","toggleVisibility"])})},exit:["cleanupNode"],states:{closed:{effects:["trackTabbableElements"],on:{"controlled.open":{target:"open"},open:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["setInitial","computeSize","invokeOnOpen"]}]}},closing:{effects:["trackExitAnimation"],on:{"controlled.close":{target:"closed"},"controlled.open":{target:"open"},open:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["setInitial","invokeOnOpen"]}],close:[{guard:"isOpenControlled",actions:["invokeOnExitComplete"]},{target:"closed",actions:["setInitial","computeSize","invokeOnExitComplete"]}],"animation.end":{target:"closed",actions:["invokeOnExitComplete","clearInitial"]}}},open:{effects:["trackEnterAnimation"],on:{"controlled.close":{target:"closing"},close:[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closing",actions:["setInitial","computeSize","invokeOnClose"]}],"size.measure":{actions:["measureSize"]},"animation.end":{actions:["clearInitial"]}}}},implementations:{guards:{isOpenControlled:({prop:e})=>e("open")!=null},effects:{trackEnterAnimation:({send:e,scope:t})=>{let n,r=$(()=>{let i=Sa(t);if(!i)return;let a=At(i).animationName;if(!a||a==="none"){e({type:"animation.end"});return}let s=l=>{ee(l)===i&&e({type:"animation.end"})};i.addEventListener("animationend",s),n=()=>{i.removeEventListener("animationend",s)}});return()=>{r(),n==null||n()}},trackExitAnimation:({send:e,scope:t})=>{let n,r=$(()=>{let i=Sa(t);if(!i)return;let a=At(i).animationName;if(!a||a==="none"){e({type:"animation.end"});return}let s=c=>{ee(c)===i&&e({type:"animation.end"})};i.addEventListener("animationend",s);let l=kr(i,{animationFillMode:"forwards"});n=()=>{i.removeEventListener("animationend",s),Rr(()=>l())}});return()=>{r(),n==null||n()}},trackTabbableElements:({scope:e,prop:t})=>{if(!t("collapsedHeight")&&!t("collapsedWidth"))return;let n=Sa(e);if(!n)return;let r=()=>{let s=An(n).map(l=>Ag(l,"inert",""));return()=>{s.forEach(l=>l())}},i=r(),a=Bo(n,{callback(){i(),i=r()}});return()=>{i(),a()}}},actions:{setInitial:({context:e,flush:t})=>{t(()=>{e.set("initial",!0)})},clearInitial:({context:e})=>{e.set("initial",!1)},cleanupNode:({refs:e})=>{e.set("stylesRef",null)},measureSize:({context:e,scope:t})=>{let n=Sa(t);if(!n)return;let{height:r,width:i}=n.getBoundingClientRect();e.set("size",{height:r,width:i})},computeSize:({refs:e,scope:t,context:n})=>{var i;(i=e.get("cleanup"))==null||i();let r=$(()=>{let a=Sa(t);if(!a)return;let o=a.hidden;a.style.animationName="none",a.style.animationDuration="0s",a.hidden=!1;let s=a.getBoundingClientRect();n.set("size",{height:s.height,width:s.width}),n.get("initial")&&(a.style.animationName="",a.style.animationDuration=""),a.hidden=o});e.set("cleanup",r)},invokeOnOpen:({prop:e})=>{var t;(t=e("onOpenChange"))==null||t({open:!0})},invokeOnClose:({prop:e})=>{var t;(t=e("onOpenChange"))==null||t({open:!1})},invokeOnExitComplete:({prop:e})=>{var t;(t=e("onExitComplete"))==null||t()},toggleVisibility:({prop:e,send:t})=>{t({type:e("open")?"controlled.open":"controlled.close"})}}}}),VC=class extends X{initMachine(e){return new Y(OC,e)}initApi(){return this.zagConnect(wC)}render(){let e=this.el.querySelector('[data-scope="collapsible"][data-part="root"]');if(e){this.spreadProps(e,this.api.getRootProps());let t=e.querySelector('[data-scope="collapsible"][data-part="trigger"]');t&&this.spreadProps(t,this.api.getTriggerProps());let n=e.querySelector('[data-scope="collapsible"][data-part="content"]');n&&this.spreadProps(n,this.api.getContentProps())}}};AC={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>Q(this.liveSocket),r=new VC(e,v(p({id:e.id},T(e,"controlled")?{open:T(e,"open")}:{defaultOpen:T(e,"defaultOpen")}),{disabled:T(e,"disabled"),dir:q(e),onOpenChange:s=>{K({el:e,canPushServer:n(),pushEvent:t,payload:xC(e,s),serverEventName:x(e,"onOpenChange"),clientEventName:x(e,"onOpenChangeClient")})}}));r.init(),this.collapsible=r;let i=s=>{je({respondTo:s,canPushServer:n(),pushEvent:t,serverEventName:"collapsible_open_response",serverPayload:{id:e.id,open:r.api.open,disabled:r.api.disabled},el:e,domEventName:"collapsible-open",domDetail:{id:e.id,open:r.api.open,disabled:r.api.disabled}})},a=de(e);this.domRegistry=a,a.add("corex:collapsible:set-open",s=>{let{open:l}=s.detail;r.api.setOpen(l)}),a.add("corex:collapsible:open",s=>{i(we(s.detail))});let o=ce(this);this.handleRegistry=o,o.add("collapsible_set_open",s=>{B(e.id,G(s))&&r.api.setOpen(s.open)}),o.add("collapsible_open",s=>{B(e.id,G(s))&&i(we(s))})},updated(){var e;(e=this.collapsible)==null||e.updateProps(v(p({id:this.el.id},T(this.el,"controlled")?{open:T(this.el,"open")}:{defaultOpen:T(this.el,"defaultOpen")}),{disabled:T(this.el,"disabled"),dir:q(this.el)}))},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.collapsible)==null||n.destroy()}}});function ps(e={}){var c;let{level:t="polite",document:n=document,root:r,delay:i=0}=e,a=(c=n.defaultView)!=null?c:window,o=r!=null?r:n.body;function s(d,g){let h=n.getElementById(hs);h==null||h.remove(),g=g!=null?g:i;let u=n.createElement("span");u.id=hs,u.dataset.liveAnnouncer="true";let f=t!=="assertive"?"status":"alert";u.setAttribute("aria-live",t),u.setAttribute("role",f),Object.assign(u.style,{border:"0",clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:"0",position:"absolute",width:"1px",whiteSpace:"nowrap",wordWrap:"normal"}),o.appendChild(u),a.setTimeout(()=>{u.textContent=d},g)}function l(){let d=n.getElementById(hs);d==null||d.remove()}return{announce:s,destroy:l,toJSON(){return hs}}}var hs,Ic=ne(()=>{"use strict";hs="__live-region__"});function RC(e){let[t,n]=e.split("-");return{side:t,align:n,hasAlign:n!=null}}function rp(e){return e.split("-")[0]}function Oc(e,t,n){return bt(e,dr(t,n))}function Fn(e,t){return typeof e=="function"?e(t):e}function _n(e){return e.split("-")[0]}function Ai(e){return e.split("-")[1]}function Ac(e){return e==="x"?"y":"x"}function Rc(e){return e==="y"?"height":"width"}function cn(e){let t=e[0];return t==="t"||t==="b"?"y":"x"}function kc(e){return Ac(cn(e))}function DC(e,t,n){n===void 0&&(n=!1);let r=Ai(e),i=kc(e),a=Rc(i),o=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[a]>t.floating[a]&&(o=vs(o)),[o,vs(o)]}function LC(e){let t=vs(e);return[Vc(e),t,Vc(t)]}function Vc(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}function _C(e,t,n){switch(e){case"top":case"bottom":return n?t?Wh:qh:t?qh:Wh;case"left":case"right":return t?MC:FC;default:return[]}}function $C(e,t,n,r){let i=Ai(e),a=_C(_n(e),n==="start",r);return i&&(a=a.map(o=>o+"-"+i),t&&(a=a.concat(a.map(Vc)))),a}function vs(e){let t=_n(e);return NC[t]+e.slice(t.length)}function HC(e){return p({top:0,right:0,bottom:0,left:0},e)}function ip(e){return typeof e!="number"?HC(e):{top:e,right:e,bottom:e,left:e}}function ys(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function Kh(e,t,n){let{reference:r,floating:i}=e,a=cn(t),o=kc(t),s=Rc(o),l=_n(t),c=a==="y",d=r.x+r.width/2-i.width/2,g=r.y+r.height/2-i.height/2,h=r[s]/2-i[s]/2,u;switch(l){case"top":u={x:d,y:r.y-i.height};break;case"bottom":u={x:d,y:r.y+r.height};break;case"right":u={x:r.x+r.width,y:g};break;case"left":u={x:r.x-i.width,y:g};break;default:u={x:r.x,y:r.y}}switch(Ai(t)){case"start":u[o]-=h*(n&&c?-1:1);break;case"end":u[o]+=h*(n&&c?-1:1);break}return u}function BC(e,t){return Ue(this,null,function*(){var n;t===void 0&&(t={});let{x:r,y:i,platform:a,rects:o,elements:s,strategy:l}=e,{boundary:c="clippingAncestors",rootBoundary:d="viewport",elementContext:g="floating",altBoundary:h=!1,padding:u=0}=Fn(t,e),f=ip(u),P=s[h?g==="floating"?"reference":"floating":g],C=ys(yield a.getClippingRect({element:(n=yield a.isElement==null?void 0:a.isElement(P))==null||n?P:P.contextElement||(yield a.getDocumentElement==null?void 0:a.getDocumentElement(s.floating)),boundary:c,rootBoundary:d,strategy:l})),V=g==="floating"?{x:r,y:i,width:o.floating.width,height:o.floating.height}:o.reference,I=yield a.getOffsetParent==null?void 0:a.getOffsetParent(s.floating),b=(yield a.isElement==null?void 0:a.isElement(I))?(yield a.getScale==null?void 0:a.getScale(I))||{x:1,y:1}:{x:1,y:1},y=ys(a.convertOffsetParentRelativeRectToViewportRelativeRect?yield a.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:V,offsetParent:I,strategy:l}):V);return{top:(C.top-y.top+f.top)/b.y,bottom:(y.bottom-C.bottom+f.bottom)/b.y,left:(C.left-y.left+f.left)/b.x,right:(y.right-C.right+f.right)/b.x}})}function jh(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function zh(e){return kC.some(t=>e[t]>=0)}function jC(e,t){return Ue(this,null,function*(){let{placement:n,platform:r,elements:i}=e,a=yield r.isRTL==null?void 0:r.isRTL(i.floating),o=_n(n),s=Ai(n),l=cn(n)==="y",c=ap.has(o)?-1:1,d=a&&l?-1:1,g=Fn(t,e),{mainAxis:h,crossAxis:u,alignmentAxis:f}=typeof g=="number"?{mainAxis:g,crossAxis:0,alignmentAxis:null}:{mainAxis:g.mainAxis||0,crossAxis:g.crossAxis||0,alignmentAxis:g.alignmentAxis};return s&&typeof f=="number"&&(u=s==="end"?f*-1:f),l?{x:u*d,y:h*c}:{x:h*c,y:u*d}})}function bs(){return typeof window!="undefined"}function Ri(e){return op(e)?(e.nodeName||"").toLowerCase():"#document"}function Et(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function un(e){var t;return(t=(op(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function op(e){return bs()?e instanceof Node||e instanceof Et(e).Node:!1}function Yt(e){return bs()?e instanceof Element||e instanceof Et(e).Element:!1}function $n(e){return bs()?e instanceof HTMLElement||e instanceof Et(e).HTMLElement:!1}function Yh(e){return!bs()||typeof ShadowRoot=="undefined"?!1:e instanceof ShadowRoot||e instanceof Et(e).ShadowRoot}function Ia(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=Xt(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!=="inline"&&i!=="contents"}function JC(e){return/^(table|td|th)$/.test(Ri(e))}function Es(e){try{if(e.matches(":popover-open"))return!0}catch(t){}try{return e.matches(":modal")}catch(t){return!1}}function Nc(e){let t=Yt(e)?Xt(e):e;return Fr(t.transform)||Fr(t.translate)||Fr(t.scale)||Fr(t.rotate)||Fr(t.perspective)||!Dc()&&(Fr(t.backdropFilter)||Fr(t.filter))||QC.test(t.willChange||"")||eI.test(t.contain||"")}function tI(e){let t=ur(e);for(;$n(t)&&!xi(t);){if(Nc(t))return t;if(Es(t))return null;t=ur(t)}return null}function Dc(){return Tc==null&&(Tc=typeof CSS!="undefined"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Tc}function xi(e){return/^(html|body|#document)$/.test(Ri(e))}function Xt(e){return Et(e).getComputedStyle(e)}function Ss(e){return Yt(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function ur(e){if(Ri(e)==="html")return e;let t=e.assignedSlot||e.parentNode||Yh(e)&&e.host||un(e);return Yh(t)?t.host:t}function sp(e){let t=ur(e);return xi(t)?e.ownerDocument?e.ownerDocument.body:e.body:$n(t)&&Ia(t)?t:sp(t)}function Ca(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);let i=sp(e),a=i===((r=e.ownerDocument)==null?void 0:r.body),o=Et(i);if(a){let s=xc(o);return t.concat(o,o.visualViewport||[],Ia(i)?i:[],s&&n?Ca(s):[])}else return t.concat(i,Ca(i,[],n))}function xc(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function lp(e){let t=Xt(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=$n(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=ms(n)!==a||ms(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function Lc(e){return Yt(e)?e:e.contextElement}function Vi(e){let t=Lc(e);if(!$n(t))return dn(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=lp(t),o=(a?ms(n.width):n.width)/r,s=(a?ms(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}function cp(e){let t=Et(e);return!Dc()||!t.visualViewport?nI:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function rI(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==Et(e)?!1:t}function _r(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=Lc(e),o=dn(1);t&&(r?Yt(r)&&(o=Vi(r)):o=Vi(e));let s=rI(a,n,r)?cp(a):dn(0),l=(i.left+s.x)/o.x,c=(i.top+s.y)/o.y,d=i.width/o.x,g=i.height/o.y;if(a){let h=Et(a),u=r&&Yt(r)?Et(r):r,f=h,m=xc(f);for(;m&&r&&u!==f;){let P=Vi(m),C=m.getBoundingClientRect(),V=Xt(m),I=C.left+(m.clientLeft+parseFloat(V.paddingLeft))*P.x,b=C.top+(m.clientTop+parseFloat(V.paddingTop))*P.y;l*=P.x,c*=P.y,d*=P.x,g*=P.y,l+=I,c+=b,f=Et(m),m=xc(f)}}return ys({width:d,height:g,x:l,y:c})}function Ps(e,t){let n=Ss(e).scrollLeft;return t?t.left+n:_r(un(e)).left+n}function dp(e,t){let n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-Ps(e,n),i=n.top+t.scrollTop;return{x:r,y:i}}function iI(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i==="fixed",o=un(r),s=t?Es(t.floating):!1;if(r===o||s&&a)return n;let l={scrollLeft:0,scrollTop:0},c=dn(1),d=dn(0),g=$n(r);if((g||!g&&!a)&&((Ri(r)!=="body"||Ia(o))&&(l=Ss(r)),g)){let u=_r(r);c=Vi(r),d.x=u.x+r.clientLeft,d.y=u.y+r.clientTop}let h=o&&!g&&!a?dp(o,l):dn(0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-l.scrollLeft*c.x+d.x+h.x,y:n.y*c.y-l.scrollTop*c.y+d.y+h.y}}function aI(e){return Array.from(e.getClientRects())}function oI(e){let t=un(e),n=Ss(e),r=e.ownerDocument.body,i=bt(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=bt(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+Ps(e),s=-n.scrollTop;return Xt(r).direction==="rtl"&&(o+=bt(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}function sI(e,t){let n=Et(e),r=un(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,l=0;if(i){a=i.width,o=i.height;let d=Dc();(!d||d&&t==="fixed")&&(s=i.offsetLeft,l=i.offsetTop)}let c=Ps(r);if(c<=0){let d=r.ownerDocument,g=d.body,h=getComputedStyle(g),u=d.compatMode==="CSS1Compat"&&parseFloat(h.marginLeft)+parseFloat(h.marginRight)||0,f=Math.abs(r.clientWidth-g.clientWidth-u);f<=Xh&&(a-=f)}else c<=Xh&&(a+=c);return{width:a,height:o,x:s,y:l}}function lI(e,t){let n=_r(e,!0,t==="fixed"),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=$n(e)?Vi(e):dn(1),o=e.clientWidth*a.x,s=e.clientHeight*a.y,l=i*a.x,c=r*a.y;return{width:o,height:s,x:l,y:c}}function Zh(e,t,n){let r;if(t==="viewport")r=sI(e,n);else if(t==="document")r=oI(un(e));else if(Yt(t))r=lI(t,n);else{let i=cp(e);r={x:t.x-i.x,y:t.y-i.y,width:t.width,height:t.height}}return ys(r)}function up(e,t){let n=ur(e);return n===t||!Yt(n)||xi(n)?!1:Xt(n).position==="fixed"||up(n,t)}function cI(e,t){let n=t.get(e);if(n)return n;let r=Ca(e,[],!1).filter(s=>Yt(s)&&Ri(s)!=="body"),i=null,a=Xt(e).position==="fixed",o=a?ur(e):e;for(;Yt(o)&&!xi(o);){let s=Xt(o),l=Nc(o);!l&&s.position==="fixed"&&(i=null),(a?!l&&!i:!l&&s.position==="static"&&!!i&&(i.position==="absolute"||i.position==="fixed")||Ia(o)&&!l&&up(e,o))?r=r.filter(d=>d!==o):i=s,o=ur(o)}return t.set(e,r),r}function dI(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,o=[...n==="clippingAncestors"?Es(t)?[]:cI(t,this._c):[].concat(n),r],s=Zh(t,o[0],i),l=s.top,c=s.right,d=s.bottom,g=s.left;for(let h=1;h{o(!1,1e-7)},1e3)}A===1&&!hp(c,e.getBoundingClientRect())&&o(),b=!1}try{n=new IntersectionObserver(y,v(p({},I),{root:i.ownerDocument}))}catch(E){n=new IntersectionObserver(y,I)}n.observe(e)}return o(!0),a}function vI(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:l=!1}=r,c=Lc(e),d=i||a?[...c?Ca(c):[],...t?Ca(t):[]]:[];d.forEach(C=>{i&&C.addEventListener("scroll",n,{passive:!0}),a&&C.addEventListener("resize",n)});let g=c&&s?mI(c,n):null,h=-1,u=null;o&&(u=new ResizeObserver(C=>{let[V]=C;V&&V.target===c&&u&&t&&(u.unobserve(t),cancelAnimationFrame(h),h=requestAnimationFrame(()=>{var I;(I=u)==null||I.observe(t)})),n()}),c&&!l&&u.observe(c),t&&u.observe(t));let f,m=l?_r(e):null;l&&P();function P(){let C=_r(e);m&&!hp(m,C)&&n(),m=C,f=requestAnimationFrame(P)}return n(),()=>{var C;d.forEach(V=>{i&&V.removeEventListener("scroll",n),a&&V.removeEventListener("resize",n)}),g==null||g(),(C=u)==null||C.disconnect(),u=null,l&&cancelAnimationFrame(f)}}function Qh(e=0,t=0,n=0,r=0){if(typeof DOMRect=="function")return new DOMRect(e,t,n,r);let i={x:e,y:t,width:n,height:r,top:t,right:e+n,bottom:t+r,left:e};return v(p({},i),{toJSON:()=>i})}function wI(e){if(!e)return Qh();let{x:t,y:n,width:r,height:i}=e;return Qh(t,n,r,i)}function OI(e,t){return{contextElement:ye(e)?e:e==null?void 0:e.contextElement,getBoundingClientRect:()=>{let n=e,r=t==null?void 0:t(n);return r||!n?wI(r):n.getBoundingClientRect()}}}function xI(e,t){return{name:"transformOrigin",fn(n){var O,w,k,R,D;let{elements:r,middlewareData:i,placement:a,rects:o,y:s}=n,l=a.split("-")[0],c=VI(l),d=((O=i.arrow)==null?void 0:O.x)||0,g=((w=i.arrow)==null?void 0:w.y)||0,h=(t==null?void 0:t.clientWidth)||0,u=(t==null?void 0:t.clientHeight)||0,f=d+h/2,m=g+u/2,P=Math.abs(((k=i.shift)==null?void 0:k.y)||0),C=o.reference.height/2,V=u/2,I=(D=(R=e.offset)==null?void 0:R.mainAxis)!=null?D:e.gutter,b=typeof I=="number"?I+V:I!=null?I:V,y=P>b,E={top:`${f}px calc(100% + ${b}px)`,bottom:`${f}px ${-b}px`,left:`calc(100% + ${b}px) ${m}px`,right:`${-b}px ${m}px`}[l],A=`${f}px ${o.reference.y+C-s}px`,N=!!e.overlap&&c==="y"&&y;return r.floating.style.setProperty(Mn.transformOrigin.variable,N?A:E),{data:{transformOrigin:N?A:E}}}}}function ep(e,t){let n=e.devicePixelRatio||1;return Math.round(t*n)/n}function Oi(e,t){return e!=null&&Math.abs(e-t)<.5}function Mc(e){return typeof e=="function"?e():e==="clipping-ancestors"?"clippingAncestors":e}function NI(e,t,n){let r=e||t.createElement("div");return CI({element:r,padding:n.arrowPadding})}function DI(e,t){var n;if(!rg((n=t.offset)!=null?n:t.gutter))return yI(({placement:r})=>{var d,g,h,u;let i=((e==null?void 0:e.clientHeight)||0)/2,a=(g=(d=t.offset)==null?void 0:d.mainAxis)!=null?g:t.gutter,o=typeof a=="number"?a+i:a!=null?a:i,{hasAlign:s}=RC(r),l=s?void 0:t.shift,c=(u=(h=t.offset)==null?void 0:h.crossAxis)!=null?u:l;return On({crossAxis:c,mainAxis:o,alignmentAxis:t.shift})})}function LI(e){if(!e.flip)return;let t=Mc(e.boundary);return EI(v(p({},t?{boundary:t}:void 0),{padding:e.overflowPadding,fallbackPlacements:e.flip===!0?void 0:e.flip}))}function MI(e){if(!e.slide&&!e.overlap)return;let t=Mc(e.boundary);return bI(v(p({},t?{boundary:t}:void 0),{mainAxis:e.slide,crossAxis:e.overlap,padding:e.overflowPadding,limiter:II()}))}function FI(e){if(e.sizeMiddleware===!1&&!e.sameWidth&&!e.fitViewport)return;let t,n,r,i;return SI({padding:e.overflowPadding,apply({elements:a,rects:o,availableHeight:s,availableWidth:l}){let c=a.floating,d=Math.round(o.reference.width),g=Math.round(o.reference.height);l=Math.floor(l),s=Math.floor(s),Oi(t,d)||(c.style.setProperty("--reference-width",`${d}px`),t=d),Oi(n,g)||(c.style.setProperty("--reference-height",`${g}px`),n=g),Oi(r,l)||(c.style.setProperty("--available-width",`${l}px`),r=l),Oi(i,s)||(c.style.setProperty("--available-height",`${s}px`),i=s)}})}function _I(e){var t;if(e.hideWhenDetached)return PI({strategy:"referenceHidden",boundary:(t=Mc(e.boundary))!=null?t:"clippingAncestors"})}function $I(e){return e?e===!0?{ancestorResize:!0,ancestorScroll:!0,elementResize:!0,layoutShift:!0}:e:{}}function tp(e,t){if(!e)return _l;let n=new Map(t.map(r=>[r,e.style.getPropertyValue(r)]));return()=>{n.forEach((r,i)=>{r?e.style.setProperty(i,r):e.style.removeProperty(i)}),e.style.length===0&&e.removeAttribute("style")}}function np(e){return e==null?null:ye(e)?e:typeof e=="object"&&e&&"contextElement"in e&&e.contextElement?e.contextElement:e}function GI(e,t,n={}){let r=()=>{let w=typeof t=="function"?t():t;return w!=null?w:null},i=()=>{var k,R;let w=typeof e=="function"?e():e;return(R=(k=n.getAnchorElement)==null?void 0:k.call(n))!=null?R:w},a=()=>{let w=i();return!w&&!n.getAnchorRect?null:OI(w,n.getAnchorRect)},o=Object.assign({},kI,n),s=[],l=null,c,d;function g(w){c==null||c(),d==null||d(),l=w,c=o.restoreStyles?tp(w,HI):void 0;let k=w.querySelector("[data-part=arrow]");d=o.restoreStyles?tp(k,BI):void 0,s=[DI(k,o),LI(o),MI(o),NI(k,w.ownerDocument,o),RI(k),xI({gutter:o.gutter,offset:o.offset,overlap:o.overlap},k),FI(o),_I(o),AI]}let{placement:h,strategy:u,onComplete:f,onPositioned:m}=o,P,C,V=!1,I,b,y=_l,E=$I(o.listeners);function A(){if(!o.listeners)return;let w=i(),k=a(),R=r();if(!k||!R)return;(np(w)!==np(I)||R!==b)&&(y(),I=w,b=R,y=vI(k,R,O,E))}function N(){return Ue(this,null,function*(){var ue;A();let w=r();if(!w)return;w!==l&&(g(w),V=!1);let k=a();if(!k)return;let R=yield TI(k,w,{placement:h,middleware:s,strategy:u});f==null||f(R);let D=be(w),W=ep(D,R.x),Z=ep(D,R.y);if(Oi(P,W)||(w.style.setProperty("--x",`${W}px`),P=W),Oi(C,Z)||(w.style.setProperty("--y",`${Z}px`),C=Z),o.hideWhenDetached&&(((ue=R.middlewareData.hide)==null?void 0:ue.referenceHidden)?(w.style.setProperty("visibility","hidden"),w.style.setProperty("pointer-events","none")):(w.style.removeProperty("visibility"),w.style.removeProperty("pointer-events"))),!V){let z=w.firstElementChild;z&&(w.style.setProperty("--z-index",At(z).zIndex),V=!0)}})}function O(){return Ue(this,null,function*(){n.updatePosition?(yield n.updatePosition({updatePosition:N,floatingElement:r()}),m==null||m({placed:!0})):yield N()})}return O(),()=>{y(),d==null||d(),c==null||c(),m==null||m({placed:!1})}}function ze(e,t,n={}){let s=n,{defer:r}=s,i=ft(s,["defer"]),a=r?$:l=>l(),o=[];return o.push(a(()=>{o.push(GI(e,t,i))})),()=>{o.forEach(l=>l==null?void 0:l())}}function Lt(e={}){let{placement:t,sameWidth:n,fitViewport:r,strategy:i="absolute"}=e;return{arrow:{position:"absolute",width:Mn.arrowSize.reference,height:Mn.arrowSize.reference,[Mn.arrowSizeHalf.variable]:`calc(${Mn.arrowSize.reference} / 2)`,[Mn.arrowOffset.variable]:`calc(${Mn.arrowSizeHalf.reference} * -1)`},arrowTip:{transform:t?UI[t.split("-")[0]]:void 0,background:Mn.arrowBg.reference,top:"0",left:"0",width:"100%",height:"100%",position:"absolute",zIndex:"inherit"},floating:{position:i,isolation:"isolate",minWidth:n?void 0:"max-content",width:n?"var(--reference-width)":void 0,maxWidth:r?"var(--available-width)":void 0,maxHeight:r?"var(--available-height)":void 0,pointerEvents:t?void 0:"none",top:"0px",left:"0px",transform:t?"translate3d(var(--x), var(--y), 0)":"translate3d(0, -100vh, 0)",zIndex:"var(--z-index)"}}}var kC,dr,bt,ms,fs,dn,NC,qh,Wh,MC,FC,GC,UC,qC,WC,KC,ap,zC,YC,XC,ZC,QC,eI,Fr,Tc,nI,Xh,hI,fI,yI,bI,EI,SI,PI,CI,II,TI,Pa,Mn,VI,AI,RI,kI,HI,BI,UI,$r=ne(()=>{"use strict";se();kC=["top","right","bottom","left"],dr=Math.min,bt=Math.max,ms=Math.round,fs=Math.floor,dn=e=>({x:e,y:e}),NC={left:"right",right:"left",bottom:"top",top:"bottom"};qh=["left","right"],Wh=["right","left"],MC=["top","bottom"],FC=["bottom","top"];GC=50,UC=(e,t,n)=>Ue(null,null,function*(){let{placement:r="bottom",strategy:i="absolute",middleware:a=[],platform:o}=n,s=o.detectOverflow?o:v(p({},o),{detectOverflow:BC}),l=yield o.isRTL==null?void 0:o.isRTL(t),c=yield o.getElementRects({reference:e,floating:t,strategy:i}),{x:d,y:g}=Kh(c,r,l),h=r,u=0,f={};for(let m=0;m({name:"arrow",options:e,fn(n){return Ue(this,null,function*(){let{x:r,y:i,placement:a,rects:o,platform:s,elements:l,middlewareData:c}=n,{element:d,padding:g=0}=Fn(e,n)||{};if(d==null)return{};let h=ip(g),u={x:r,y:i},f=kc(a),m=Rc(f),P=yield s.getDimensions(d),C=f==="y",V=C?"top":"left",I=C?"bottom":"right",b=C?"clientHeight":"clientWidth",y=o.reference[m]+o.reference[f]-u[f]-o.floating[m],E=u[f]-o.reference[f],A=yield s.getOffsetParent==null?void 0:s.getOffsetParent(d),N=A?A[b]:0;(!N||!(yield s.isElement==null?void 0:s.isElement(A)))&&(N=l.floating[b]||o.floating[m]);let O=y/2-E/2,w=N/2-P[m]/2-1,k=dr(h[V],w),R=dr(h[I],w),D=k,W=N-P[m]-R,Z=N/2-P[m]/2+O,ue=Oc(D,Z,W),z=!c.arrow&&Ai(a)!=null&&Z!==ue&&o.reference[m]/2-(Zue<=0)){var R,D;let ue=(((R=o.flip)==null?void 0:R.index)||0)+1,z=N[ue];if(z&&(!(h==="alignment"?I!==cn(z):!1)||k.every(ae=>cn(ae.placement)===I?ae.overflows[0]>0:!0)))return{data:{index:ue,overflows:k},reset:{placement:z}};let le=(D=k.filter(he=>he.overflows[0]<=0).sort((he,ae)=>he.overflows[1]-ae.overflows[1])[0])==null?void 0:D.placement;if(!le)switch(f){case"bestFit":{var W;let he=(W=k.filter(ae=>{if(A){let De=cn(ae.placement);return De===I||De==="y"}return!0}).map(ae=>[ae.placement,ae.overflows.filter(De=>De>0).reduce((De,Le)=>De+Le,0)]).sort((ae,De)=>ae[1]-De[1])[0])==null?void 0:W[0];he&&(le=he);break}case"initialPlacement":le=l;break}if(a!==le)return{reset:{placement:le}}}return{}})}}};KC=function(e){return e===void 0&&(e={}),{name:"hide",options:e,fn(n){return Ue(this,null,function*(){let{rects:r,platform:i}=n,s=Fn(e,n),{strategy:a="referenceHidden"}=s,o=ft(s,["strategy"]);switch(a){case"referenceHidden":{let l=yield i.detectOverflow(n,v(p({},o),{elementContext:"reference"})),c=jh(l,r.reference);return{data:{referenceHiddenOffsets:c,referenceHidden:zh(c)}}}case"escaped":{let l=yield i.detectOverflow(n,v(p({},o),{altBoundary:!0})),c=jh(l,r.floating);return{data:{escapedOffsets:c,escaped:zh(c)}}}default:return{}}})}}},ap=new Set(["left","top"]);zC=function(e){return e===void 0&&(e=0),{name:"offset",options:e,fn(n){return Ue(this,null,function*(){var r,i;let{x:a,y:o,placement:s,middlewareData:l}=n,c=yield jC(n,e);return s===((r=l.offset)==null?void 0:r.placement)&&(i=l.arrow)!=null&&i.alignmentOffset?{}:{x:a+c.x,y:o+c.y,data:v(p({},c),{placement:s})}})}}},YC=function(e){return e===void 0&&(e={}),{name:"shift",options:e,fn(n){return Ue(this,null,function*(){let{x:r,y:i,placement:a,platform:o}=n,V=Fn(e,n),{mainAxis:s=!0,crossAxis:l=!1,limiter:c={fn:I=>{let{x:b,y}=I;return{x:b,y}}}}=V,d=ft(V,["mainAxis","crossAxis","limiter"]),g={x:r,y:i},h=yield o.detectOverflow(n,d),u=cn(_n(a)),f=Ac(u),m=g[f],P=g[u];if(s){let I=f==="y"?"top":"left",b=f==="y"?"bottom":"right",y=m+h[I],E=m-h[b];m=Oc(y,m,E)}if(l){let I=u==="y"?"top":"left",b=u==="y"?"bottom":"right",y=P+h[I],E=P-h[b];P=Oc(y,P,E)}let C=c.fn(v(p({},n),{[f]:m,[u]:P}));return v(p({},C),{data:{x:C.x-r,y:C.y-i,enabled:{[f]:s,[u]:l}}})})}}},XC=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:l=!0,crossAxis:c=!0}=Fn(e,t),d={x:n,y:r},g=cn(i),h=Ac(g),u=d[h],f=d[g],m=Fn(s,t),P=typeof m=="number"?{mainAxis:m,crossAxis:0}:p({mainAxis:0,crossAxis:0},m);if(l){let I=h==="y"?"height":"width",b=a.reference[h]-a.floating[I]+P.mainAxis,y=a.reference[h]+a.reference[I]-P.mainAxis;uy&&(u=y)}if(c){var C,V;let I=h==="y"?"width":"height",b=ap.has(_n(i)),y=a.reference[g]-a.floating[I]+(b&&((C=o.offset)==null?void 0:C[g])||0)+(b?0:P.crossAxis),E=a.reference[g]+a.reference[I]+(b?0:((V=o.offset)==null?void 0:V[g])||0)-(b?P.crossAxis:0);fE&&(f=E)}return{[h]:u,[g]:f}}}},ZC=function(e){return e===void 0&&(e={}),{name:"size",options:e,fn(n){return Ue(this,null,function*(){var r,i;let{placement:a,rects:o,platform:s,elements:l}=n,k=Fn(e,n),{apply:c=()=>{}}=k,d=ft(k,["apply"]),g=yield s.detectOverflow(n,d),h=_n(a),u=Ai(a),f=cn(a)==="y",{width:m,height:P}=o.floating,C,V;h==="top"||h==="bottom"?(C=h,V=u===((yield s.isRTL==null?void 0:s.isRTL(l.floating))?"start":"end")?"left":"right"):(V=h,C=u==="end"?"top":"bottom");let I=P-g.top-g.bottom,b=m-g.left-g.right,y=dr(P-g[C],I),E=dr(m-g[V],b),A=!n.middlewareData.shift,N=y,O=E;if((r=n.middlewareData.shift)!=null&&r.enabled.x&&(O=b),(i=n.middlewareData.shift)!=null&&i.enabled.y&&(N=I),A&&!u){let R=bt(g.left,0),D=bt(g.right,0),W=bt(g.top,0),Z=bt(g.bottom,0);f?O=m-2*(R!==0||D!==0?R+D:bt(g.left,g.right)):N=P-2*(W!==0||Z!==0?W+Z:bt(g.top,g.bottom))}yield c(v(p({},n),{availableWidth:O,availableHeight:N}));let w=yield s.getDimensions(l.floating);return m!==w.width||P!==w.height?{reset:{rects:!0}}:{}})}}};QC=/transform|translate|scale|rotate|perspective|filter/,eI=/paint|layout|strict|content/,Fr=e=>!!e&&e!=="none";nI=dn(0);Xh=25;hI=function(e){return Ue(this,null,function*(){let t=this.getOffsetParent||gp,n=this.getDimensions,r=yield n(e.floating);return{reference:gI(e.reference,yield t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}})};fI={convertOffsetParentRelativeRectToViewportRelativeRect:iI,getDocumentElement:un,getClippingRect:dI,getOffsetParent:gp,getElementRects:hI,getClientRects:aI,getDimensions:uI,getScale:Vi,isElement:Yt,isRTL:pI};yI=zC,bI=YC,EI=WC,SI=ZC,PI=KC,CI=qC,II=XC,TI=(e,t,n)=>{let r=new Map,i=p({platform:fI},n),a=v(p({},i.platform),{_c:r});return UC(e,t,v(p({},i),{platform:a}))};Pa=e=>({variable:e,reference:`var(${e})`}),Mn={arrowSize:Pa("--arrow-size"),arrowSizeHalf:Pa("--arrow-size-half"),arrowBg:Pa("--arrow-background"),transformOrigin:Pa("--transform-origin"),arrowOffset:Pa("--arrow-offset")},VI=e=>e==="top"||e==="bottom"?"y":"x";AI={name:"rects",fn({rects:e}){return{data:e}}},RI=e=>{if(e)return{name:"shiftArrow",fn({placement:t,middlewareData:n}){if(!n.arrow)return{};let{x:r,y:i}=n.arrow,a=t.split("-")[0];return Object.assign(e.style,{left:r!=null?`${r}px`:"",top:i!=null?`${i}px`:"",[a]:`calc(100% + ${Mn.arrowOffset.reference})`}),{}}}},kI={strategy:"absolute",placement:"bottom",listeners:!0,restoreStyles:!1,gutter:8,flip:!0,slide:!0,overlap:!1,sameWidth:!1,fitViewport:!1,overflowPadding:8,arrowPadding:4};HI=["transform","visibility","pointer-events","--x","--y","--z-index","--reference-width","--reference-height","--available-width","--available-height","--transform-origin"],BI=["top","right","bottom","left"];UI={bottom:"rotate(45deg)",left:"rotate(135deg)",top:"rotate(225deg)",right:"rotate(315deg)"}});function qI(e){let t={each(n){var r;for(let i=0;i<((r=e.frames)==null?void 0:r.length);i+=1){let a=e.frames[i];a&&n(a)}},addEventListener(n,r,i){return t.each(a=>{try{a.document.addEventListener(n,r,i)}catch(o){}}),()=>{try{t.removeEventListener(n,r,i)}catch(a){}}},removeEventListener(n,r,i){t.each(a=>{try{a.document.removeEventListener(n,r,i)}catch(o){}})}};return t}function WI(e){let t=e.frameElement!=null?e.parent:null;return{addEventListener:(n,r,i)=>{try{t==null||t.addEventListener(n,r,i)}catch(a){}return()=>{try{t==null||t.removeEventListener(n,r,i)}catch(a){}}},removeEventListener:(n,r,i)=>{try{t==null||t.removeEventListener(n,r,i)}catch(a){}}}}function KI(e){for(let t of e)if(ye(t)&<(t))return!0;return!1}function jI(e,t){if(!yp(t)||!e)return!1;let n=e.getBoundingClientRect();return n.width===0||n.height===0?!1:n.top<=t.clientY&&t.clientY<=n.top+n.height&&n.left<=t.clientX&&t.clientX<=n.left+n.width}function zI(e,t){return e.y<=t.y&&t.y<=e.y+e.height&&e.x<=t.x&&t.x<=e.x+e.width}function mp(e,t){if(!t||!yp(e))return!1;let n=t.scrollHeight>t.clientHeight,r=n&&e.clientX>t.offsetLeft+t.clientWidth,i=t.scrollWidth>t.clientWidth,a=i&&e.clientY>t.offsetTop+t.clientHeight,o={x:t.offsetLeft,y:t.offsetTop,width:t.clientWidth+(n?16:0),height:t.clientHeight+(i?16:0)},s={x:e.clientX,y:e.clientY};return zI(o,s)?r||a:!1}function YI(e,t){let{exclude:n,onFocusOutside:r,onPointerDownOutside:i,onInteractOutside:a,defer:o,followControlledElements:s=!0}=t;if(!e)return;let l=Ke(e),c=be(e),d=qI(c),g=WI(c);function h(b,y){if(!ye(y)||!y.isConnected||ge(e,y)||jI(e,b)||s&&Do(e,y))return!1;let E=l.querySelector(`[aria-controls="${e.id}"]`);if(E){let N=fa(E);if(mp(b,N))return!1}let A=fa(e);return mp(b,A)?!1:!(n!=null&&n(y))}let u=new Set,f=xr(e==null?void 0:e.getRootNode()),m=!1;function P(b){m=!0;let y=()=>{m=!1};l.addEventListener("pointerup",y,{once:!0}),c.addEventListener("pointerup",y,{once:!0});function E(A){var k,R;let N=o&&!Wl()?$:D=>D(),O=A!=null?A:b,w=(R=(k=O==null?void 0:O.composedPath)==null?void 0:k.call(O))!=null?R:[O==null?void 0:O.target];N(()=>{let D=f?w[0]:ee(b);if(!(!e||!h(b,D))){if(i||a){let W=vt(i,a);e.addEventListener(pp,W,{once:!0})}vp(e,pp,{bubbles:!1,cancelable:!0,detail:{originalEvent:O,contextmenu:tr(O),focusable:KI(w),target:D}})}})}b.pointerType==="touch"?(u.forEach(A=>A()),u.add(re(l,"click",E,{once:!0})),u.add(g.addEventListener("click",E,{once:!0})),u.add(d.addEventListener("click",E,{once:!0}))):E()}let C=new Set,V=setTimeout(()=>{C.add(re(l,"pointerdown",P,!0)),C.add(g.addEventListener("pointerdown",P,!0)),C.add(d.addEventListener("pointerdown",P,!0))},0);function I(b){if(m)return;(o?$:E=>E())(()=>{var N,O;let E=(O=(N=b==null?void 0:b.composedPath)==null?void 0:N.call(b))!=null?O:[b==null?void 0:b.target],A=f?E[0]:ee(b);if(!(!e||!h(b,A))){if(r||a){let w=vt(r,a);e.addEventListener(fp,w,{once:!0})}vp(e,fp,{bubbles:!1,cancelable:!0,detail:{originalEvent:b,contextmenu:!1,focusable:lt(A),target:A}})}})}return Wl()||(C.add(re(l,"focusin",I,!0)),C.add(g.addEventListener("focusin",I,!0)),C.add(d.addEventListener("focusin",I,!0))),()=>{clearTimeout(V),u.forEach(b=>b()),C.forEach(b=>b())}}function Cs(e,t){let{defer:n}=t,r=n?$:a=>a(),i=[];return i.push(r(()=>{let a=typeof e=="function"?e():e;i.push(YI(a,t))})),()=>{i.forEach(a=>a==null?void 0:a())}}function vp(e,t,n){let r=e.ownerDocument.defaultView||window,i=new r.CustomEvent(t,n);return e.dispatchEvent(i)}var pp,fp,yp,gn=ne(()=>{"use strict";se();pp="pointerdown.outside",fp="focus.outside";yp=e=>"clientY"in e});function XI(e,t){let n=r=>{r.key==="Escape"&&(r.isComposing||t==null||t(r))};return re(Ke(e),"keydown",n,{capture:!0})}function ZI(e,t,n){let r=e.ownerDocument.defaultView||window,i=new r.CustomEvent(t,{cancelable:!0,bubbles:!0,detail:n});return e.dispatchEvent(i)}function JI(e,t,n){e.addEventListener(t,n,{once:!0})}function Sp(){ut.layers.forEach(({node:e})=>{e.style.pointerEvents=ut.isBelowPointerBlockingLayer(e)?"none":"auto"})}function QI(e){e.style.pointerEvents=""}function eT(e,t){let n=Ke(e),r=[];return ut.hasPointerBlockingLayer()&&!n.body.hasAttribute("data-inert")&&(Ep=document.body.style.pointerEvents,queueMicrotask(()=>{n.body.style.pointerEvents="none",n.body.setAttribute("data-inert","")})),t==null||t.forEach(i=>{let[a,o]=kg(()=>{let s=i();return ye(s)?s:null},{timeout:1e3});a.then(s=>r.push(kr(s,{pointerEvents:"auto"}))),r.push(o)}),()=>{ut.hasPointerBlockingLayer()||(queueMicrotask(()=>{n.body.style.pointerEvents=Ep,n.body.removeAttribute("data-inert"),n.body.style.length===0&&n.body.removeAttribute("style")}),r.forEach(i=>i()))}}function tT(e,t){let{warnOnMissingNode:n=!0}=t;if(n&&!e){Ut("[@zag-js/dismissable] node is `null` or `undefined`");return}if(!e)return;let{onDismiss:r,onRequestDismiss:i,pointerBlocking:a,exclude:o,debug:s,type:l="dialog"}=t,c={dismiss:r,node:e,type:l,pointerBlocking:a,requestDismiss:i};ut.add(c),Sp();function d(m){var C,V;let P=ee(m.detail.originalEvent);ut.isBelowPointerBlockingLayer(e)||ut.isInBranch(P)||((C=t.onPointerDownOutside)==null||C.call(t,m),(V=t.onInteractOutside)==null||V.call(t,m),!m.defaultPrevented&&(s&&console.log("onPointerDownOutside:",m.detail.originalEvent),r==null||r()))}function g(m){var C,V;let P=ee(m.detail.originalEvent);ut.isInBranch(P)||((C=t.onFocusOutside)==null||C.call(t,m),(V=t.onInteractOutside)==null||V.call(t,m),!m.defaultPrevented&&(s&&console.log("onFocusOutside:",m.detail.originalEvent),r==null||r()))}function h(m){var P;ut.isTopMost(e)&&((P=t.onEscapeKeyDown)==null||P.call(t,m),!m.defaultPrevented&&r&&(m.preventDefault(),r()))}function u(m){var I;if(!e)return!1;let P=typeof o=="function"?o():o,C=Array.isArray(P)?P:[P],V=(I=t.persistentElements)==null?void 0:I.map(b=>b()).filter(ye);return V&&C.push(...V),C.some(b=>ge(b,m))||ut.isInNestedLayer(e,m)}let f=[a?eT(e,t.persistentElements):void 0,XI(e,h),Cs(e,{exclude:u,onFocusOutside:g,onPointerDownOutside:d,defer:t.defer})];return()=>{ut.remove(e),Sp(),QI(e),f.forEach(m=>m==null?void 0:m())}}function Mt(e,t){let{defer:n}=t,r=n?$:a=>a(),i=[];return i.push(r(()=>{let a=Ze(e)?e():e;i.push(tT(a,t))})),()=>{i.forEach(a=>a==null?void 0:a())}}function Pp(e,t={}){let{defer:n}=t,r=n?$:a=>a(),i=[];return i.push(r(()=>{let a=Ze(e)?e():e;if(!a){Ut("[@zag-js/dismissable] branch node is `null` or `undefined`");return}ut.addBranch(a),i.push(()=>{ut.removeBranch(a)})})),()=>{i.forEach(a=>a==null?void 0:a())}}var bp,ut,Ep,gr=ne(()=>{"use strict";gn();se();bp="layer:request-dismiss",ut={layers:[],branches:[],recentlyRemoved:new Set,count(){return this.layers.length},pointerBlockingLayers(){return this.layers.filter(e=>e.pointerBlocking)},topMostPointerBlockingLayer(){return[...this.pointerBlockingLayers()].slice(-1)[0]},hasPointerBlockingLayer(){return this.pointerBlockingLayers().length>0},isBelowPointerBlockingLayer(e){var r;let t=this.indexOf(e),n=this.topMostPointerBlockingLayer()?this.indexOf((r=this.topMostPointerBlockingLayer())==null?void 0:r.node):-1;return tt.type===e)},getNestedLayersByType(e,t){let n=this.indexOf(e);return n===-1?[]:this.layers.slice(n+1).filter(r=>r.type===t)},getParentLayerOfType(e,t){let n=this.indexOf(e);if(!(n<=0))return this.layers.slice(0,n).reverse().find(r=>r.type===t)},countNestedLayersOfType(e,t){return this.getNestedLayersByType(e,t).length},isInNestedLayer(e,t){return!!(this.getNestedLayers(e).some(r=>ge(r.node,t))||this.recentlyRemoved.size>0)},isInBranch(e){return Array.from(this.branches).some(t=>ge(t,e))},add(e){this.layers.push(e),this.syncLayers()},addBranch(e){this.branches.push(e)},remove(e){let t=this.indexOf(e);t<0||(this.recentlyRemoved.add(e),Rr(()=>this.recentlyRemoved.delete(e)),tut.dismiss(r.node,e)),this.layers.splice(t,1),this.syncLayers())},removeBranch(e){let t=this.branches.indexOf(e);t>=0&&this.branches.splice(t,1)},syncLayers(){this.layers.forEach((e,t)=>{e.node.style.setProperty("--layer-index",`${t}`),e.node.removeAttribute("data-nested"),e.node.removeAttribute("data-has-nested"),this.getParentLayerOfType(e.node,e.type)&&e.node.setAttribute("data-nested",e.type);let r=this.countNestedLayersOfType(e.node,e.type);r>0&&e.node.setAttribute("data-has-nested",e.type),e.node.style.setProperty("--nested-layer-count",`${r}`)})},indexOf(e){return this.layers.findIndex(t=>t.node===e)},dismiss(e,t){let n=this.indexOf(e);if(n===-1)return;let r=this.layers[n];JI(e,bp,i=>{var a;(a=r.requestDismiss)==null||a.call(r,i),i.defaultPrevented||r==null||r.dismiss()}),ZI(e,bp,{originalLayer:e,targetLayer:t,originalIndex:n,targetIndex:t?this.indexOf(t):-1}),this.syncLayers()},clear(){this.remove(this.layers[0].node)}}});function nT(e){let t=e.dataset.positionFlip;if(t==null)return;if(t==="true")return!0;if(t==="false")return!1;let n=t.split(",").map(r=>r.trim()).filter(Boolean);return n.length>0?n:void 0}function $e(e){let t={},n=x(e,"positionStrategy");n&&(t.strategy=n);let r=x(e,"positionPlacement");r&&(t.placement=r);let i=U(e,"positionGutter");i!==void 0&&(t.gutter=i);let a=U(e,"positionShift");a!==void 0&&(t.shift=a);let o=U(e,"positionOverflowPadding");o!==void 0&&(t.overflowPadding=o);let s=U(e,"positionArrowPadding");s!==void 0&&(t.arrowPadding=s);let l=U(e,"positionOffsetMainAxis"),c=U(e,"positionOffsetCrossAxis");(l!==void 0||c!==void 0)&&(t.offset={},l!==void 0&&(t.offset.mainAxis=l),c!==void 0&&(t.offset.crossAxis=c));let d=nT(e);d!==void 0&&(t.flip=d);let g=wn(e,"positionSlide");g!==void 0&&(t.slide=g);let h=wn(e,"positionOverlap");h!==void 0&&(t.overlap=h);let u=wn(e,"positionSameWidth");u!==void 0&&(t.sameWidth=u);let f=wn(e,"positionFitViewport");f!==void 0&&(t.fitViewport=f);let m=wn(e,"positionHideWhenDetached");return m!==void 0&&(t.hideWhenDetached=m),Object.keys(t).length>0?t:void 0}var hr=ne(()=>{"use strict";se()});function Cp(e){var t,n;return(n=(t=e.id)!=null?t:e.value)!=null?n:""}function Is(e,t){return t?{items:e,itemToValue:n=>Cp(n),itemToString:n=>n.label,isItemDisabled:n=>!!n.disabled,groupBy:n=>{var r;return(r=n.group)!=null?r:""}}:{items:e,itemToValue:n=>Cp(n),itemToString:n=>n.label,isItemDisabled:n=>!!n.disabled}}function Ip(e,t){return t?{items:e,itemToValue:n=>{var r;return(r=n.id)!=null?r:""},itemToString:n=>n.label,isItemDisabled:n=>!!n.disabled,groupBy:n=>{var r;return(r=n.group)!=null?r:""}}:{items:e,itemToValue:n=>{var r;return(r=n.id)!=null?r:""},itemToString:n=>n.label,isItemDisabled:n=>!!n.disabled}}var Ts=ne(()=>{"use strict"});function Ta(e,t,...n){return[...e.slice(0,t),...n,...e.slice(t)]}function ws(e,t,n){t=[...t].sort((i,a)=>i-a);let r=t.map(i=>e[i]);for(let i=t.length-1;i>=0;i--)e=[...e.slice(0,t[i]),...e.slice(t[i]+1)];return n=Math.max(0,n-t.filter(i=>it.getItemValue(n)).filter(Boolean),selectedItems:e,collection:t})}function Ap(e,t,n){for(let r=0;rt[n])return 1}return e.length-t.length}function sT(e){return e.sort(Rp)}function lT(e,t){let n;return St(e,v(p({},t),{onEnter:(r,i)=>{if(t.predicate(r,i))return n=r,"stop"}})),n}function cT(e,t){let n=[];return St(e,{onEnter:(r,i)=>{t.predicate(r,i)&&n.push(r)},getChildren:t.getChildren}),n}function Tp(e,t){let n;return St(e,{onEnter:(r,i)=>{if(t.predicate(r,i))return n=[...i],"stop"},getChildren:t.getChildren}),n}function dT(e,t){let n=t.initialResult;return St(e,v(p({},t),{onEnter:(r,i)=>{n=t.nextResult(n,r,i)}})),n}function uT(e,t){return dT(e,v(p({},t),{initialResult:[],nextResult:(n,r,i)=>(n.push(...t.transform(r,i)),n)}))}function gT(e,t){let{predicate:n,create:r,getChildren:i}=t,a=(o,s)=>{let l=i(o,s),c=[];l.forEach((u,f)=>{let m=[...s,f],P=a(u,m);P&&c.push(P)});let d=s.length===0,g=n(o,s),h=c.length>0;return d||g||h?r(o,c,s):null};return a(e,[])||r(e,[],[])}function hT(e,t){let n=[],r=0,i=new Map,a=new Map;return St(e,{getChildren:t.getChildren,onEnter:(o,s)=>{i.has(o)||i.set(o,r++);let l=t.getChildren(o,s);l.forEach(u=>{a.has(u)||a.set(u,o),i.has(u)||i.set(u,r++)});let c=l.length>0?l.map(u=>i.get(u)):void 0,d=a.get(o),g=d?i.get(d):void 0,h=i.get(o);n.push(v(p({},o),{_children:c,_parent:g,_index:h}))}}),n}function pT(e,t){return{type:"insert",index:e,nodes:t}}function fT(e){return{type:"remove",indexes:e}}function _c(){return{type:"replace"}}function kp(e){return[e.slice(0,-1),e[e.length-1]]}function Np(e,t,n=new Map){var o;let[r,i]=kp(e);for(let s=r.length-1;s>=0;s--){let l=r.slice(0,s).join();switch((o=n.get(l))==null?void 0:o.type){case"remove":continue}n.set(l,_c())}let a=n.get(r.join());switch(a==null?void 0:a.type){case"remove":n.set(r.join(),{type:"removeThenInsert",removeIndexes:a.indexes,insertIndex:i,insertNodes:t});break;default:n.set(r.join(),pT(i,t))}return n}function Dp(e){var r;let t=new Map,n=new Map;for(let i of e){let a=i.slice(0,-1).join(),o=(r=n.get(a))!=null?r:[];o.push(i[i.length-1]),n.set(a,o.sort((s,l)=>s-l))}for(let i of e)for(let a=i.length-2;a>=0;a--){let o=i.slice(0,a).join();t.has(o)||t.set(o,_c())}for(let[i,a]of n)t.set(i,fT(a));return t}function mT(e,t){let n=new Map,[r,i]=kp(e);for(let a=r.length-1;a>=0;a--){let o=r.slice(0,a).join();n.set(o,_c())}return n.set(r.join(),{type:"removeThenInsert",removeIndexes:[i],insertIndex:i,insertNodes:[t]}),n}function xs(e,t,n){return vT(e,v(p({},n),{getChildren:(r,i)=>{let a=i.join(),o=t.get(a);switch(o==null?void 0:o.type){case"replace":case"remove":case"removeThenInsert":case"insert":return n.getChildren(r,i);default:return[]}},transform:(r,i,a)=>{let o=a.join(),s=t.get(o);switch(s==null?void 0:s.type){case"remove":return n.create(r,i.filter((d,g)=>!s.indexes.includes(g)),a);case"removeThenInsert":let l=i.filter((d,g)=>!s.removeIndexes.includes(g)),c=s.removeIndexes.reduce((d,g)=>g{var d,g;let a=[0,...i],o=a.join(),s=t.transform(r,(d=n[o])!=null?d:[],i),l=a.slice(0,-1).join(),c=(g=n[l])!=null?g:[];c.push(s),n[l]=c}})),n[""][0]}function yT(e,t){let{nodes:n,at:r}=t;if(r.length===0)throw new Error("Can't insert nodes at the root");let i=Np(r,n);return xs(e,i,t)}function bT(e,t){if(t.at.length===0)return t.node;let n=mT(t.at,t.node);return xs(e,n,t)}function ET(e,t){if(t.indexPaths.length===0)return e;for(let r of t.indexPaths)if(r.length===0)throw new Error("Can't remove the root node");let n=Dp(t.indexPaths);return xs(e,n,t)}function ST(e,t){if(t.indexPaths.length===0)return e;for(let a of t.indexPaths)if(a.length===0)throw new Error("Can't move the root node");if(t.to.length===0)throw new Error("Can't move nodes to the root");let n=oT(t.indexPaths),r=n.map(a=>Ap(e,a,t)),i=Np(t.to,r,Dp(n));return xs(e,i,t)}function St(e,t){let{onEnter:n,onLeave:r,getChildren:i}=t,a=[],o=[{node:e}],s=t.reuseIndexPath?()=>a:()=>a.slice();for(;o.length>0;){let l=o[o.length-1];if(l.state===void 0){let d=n==null?void 0:n(l.node,s());if(d==="stop")return;l.state=d==="skip"?-1:0}let c=l.children||i(l.node,s());if(l.children||(l.children=c),l.state!==-1){if(l.state{"use strict";se();rT=Object.defineProperty,iT=(e,t,n)=>t in e?rT(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,F=(e,t,n)=>iT(e,typeof t!="symbol"?t+"":t,n),Os={itemToValue(e){return typeof e=="string"?e:nn(e)&&nt(e,"value")?e.value:""},itemToString(e){return typeof e=="string"?e:nn(e)&&nt(e,"label")?e.label:Os.itemToValue(e)},isItemDisabled(e){return nn(e)&&nt(e,"disabled")?!!e.disabled:!1}},hn=class Op{constructor(t){F(this,"options",t),F(this,"items"),F(this,"indexMap",null),F(this,"copy",n=>new Op(v(p({},this.options),{items:n!=null?n:[...this.items]}))),F(this,"isEqual",n=>Ie(this.items,n.items)),F(this,"setItems",n=>this.copy(n)),F(this,"getValues",(n=this.items)=>{let r=[];for(let i of n){let a=this.getItemValue(i);a!=null&&r.push(a)}return r}),F(this,"find",n=>{if(n==null)return null;let r=this.indexOf(n);return r!==-1?this.at(r):null}),F(this,"findMany",n=>{let r=[];for(let i of n){let a=this.find(i);a!=null&&r.push(a)}return r}),F(this,"at",n=>{var a;if(!this.options.groupBy&&!this.options.groupSort)return(a=this.items[n])!=null?a:null;let r=0,i=this.group();for(let[,o]of i)for(let s of o){if(r===n)return s;r++}return null}),F(this,"sortFn",(n,r)=>{let i=this.indexOf(n),a=this.indexOf(r);return(i!=null?i:0)-(a!=null?a:0)}),F(this,"sort",n=>[...n].sort(this.sortFn.bind(this))),F(this,"getItemValue",n=>{var r,i,a;return n==null?null:(a=(i=(r=this.options).itemToValue)==null?void 0:i.call(r,n))!=null?a:Os.itemToValue(n)}),F(this,"getItemDisabled",n=>{var r,i,a;return n==null?!1:(a=(i=(r=this.options).isItemDisabled)==null?void 0:i.call(r,n))!=null?a:Os.isItemDisabled(n)}),F(this,"stringifyItem",n=>{var r,i,a;return n==null?null:(a=(i=(r=this.options).itemToString)==null?void 0:i.call(r,n))!=null?a:Os.itemToString(n)}),F(this,"stringify",n=>n==null?null:this.stringifyItem(this.find(n))),F(this,"stringifyItems",(n,r=", ")=>{let i=[];for(let a of n){let o=this.stringifyItem(a);o!=null&&i.push(o)}return i.join(r)}),F(this,"stringifyMany",(n,r)=>this.stringifyItems(this.findMany(n),r)),F(this,"has",n=>this.indexOf(n)!==-1),F(this,"hasItem",n=>n==null?!1:this.has(this.getItemValue(n))),F(this,"group",()=>{let{groupBy:n,groupSort:r}=this.options;if(!n)return[["",[...this.items]]];let i=new Map;this.items.forEach((o,s)=>{let l=n(o,s);i.has(l)||i.set(l,[]),i.get(l).push(o)});let a=Array.from(i.entries());return r&&a.sort(([o],[s])=>{if(typeof r=="function")return r(o,s);if(Array.isArray(r)){let l=r.indexOf(o),c=r.indexOf(s);return l===-1?1:c===-1?-1:l-c}return r==="asc"?o.localeCompare(s):r==="desc"?s.localeCompare(o):0}),a}),F(this,"getNextValue",(n,r=1,i=!1)=>{let a=this.indexOf(n);if(a===-1)return null;for(a=i?Math.min(a+r,this.size-1):a+r;a<=this.size&&this.getItemDisabled(this.at(a));)a++;return this.getItemValue(this.at(a))}),F(this,"getPreviousValue",(n,r=1,i=!1)=>{let a=this.indexOf(n);if(a===-1)return null;for(a=i?Math.max(a-r,0):a-r;a>=0&&this.getItemDisabled(this.at(a));)a--;return this.getItemValue(this.at(a))}),F(this,"indexOf",n=>{var r;if(n==null)return-1;if(!this.options.groupBy&&!this.options.groupSort)return this.items.findIndex(i=>this.getItemValue(i)===n);if(!this.indexMap){this.indexMap=new Map;let i=0,a=this.group();for(let[,o]of a)for(let s of o){let l=this.getItemValue(s);l!=null&&this.indexMap.set(l,i),i++}}return(r=this.indexMap.get(n))!=null?r:-1}),F(this,"getByText",(n,r)=>{let i=r!=null?this.indexOf(r):-1,a=n.length===1;for(let o=0;o{let{state:i,currentValue:a,timeout:o=350}=r,s=i.keysSoFar+n,c=s.length>1&&Array.from(s).every(f=>f===s[0])?s[0]:s,d=this.getByText(c,a),g=this.getItemValue(d);function h(){clearTimeout(i.timer),i.timer=-1}function u(f){i.keysSoFar=f,h(),f!==""&&(i.timer=+setTimeout(()=>{u(""),h()},o))}return u(s),g}),F(this,"update",(n,r)=>{let i=this.indexOf(n);return i===-1?this:this.copy([...this.items.slice(0,i),r,...this.items.slice(i+1)])}),F(this,"upsert",(n,r,i="append")=>{let a=this.indexOf(n);return a===-1?(i==="append"?this.append:this.prepend)(r):this.copy([...this.items.slice(0,a),r,...this.items.slice(a+1)])}),F(this,"insert",(n,...r)=>this.copy(Ta(this.items,n,...r))),F(this,"insertBefore",(n,...r)=>{let i=this.indexOf(n);if(i===-1)if(this.items.length===0)i=0;else return this;return this.copy(Ta(this.items,i,...r))}),F(this,"insertAfter",(n,...r)=>{let i=this.indexOf(n);if(i===-1)if(this.items.length===0)i=0;else return this;return this.copy(Ta(this.items,i+1,...r))}),F(this,"prepend",(...n)=>this.copy(Ta(this.items,0,...n))),F(this,"append",(...n)=>this.copy(Ta(this.items,this.items.length,...n))),F(this,"filter",n=>{let r=this.items.filter((i,a)=>n(this.stringifyItem(i),a,i));return this.copy(r)}),F(this,"remove",(...n)=>{let r=n.map(i=>typeof i=="string"?i:this.getItemValue(i));return this.copy(this.items.filter(i=>{let a=this.getItemValue(i);return a==null?!1:!r.includes(a)}))}),F(this,"move",(n,r)=>{let i=this.indexOf(n);return i===-1?this:this.copy(ws(this.items,[i],r))}),F(this,"moveBefore",(n,...r)=>{let i=this.items.findIndex(o=>this.getItemValue(o)===n);if(i===-1)return this;let a=r.map(o=>this.items.findIndex(s=>this.getItemValue(s)===o)).sort((o,s)=>o-s);return this.copy(ws(this.items,a,i))}),F(this,"moveAfter",(n,...r)=>{let i=this.items.findIndex(o=>this.getItemValue(o)===n);if(i===-1)return this;let a=r.map(o=>this.items.findIndex(s=>this.getItemValue(s)===o)).sort((o,s)=>o-s);return this.copy(ws(this.items,a,i+1))}),F(this,"reorder",(n,r)=>this.copy(ws(this.items,[n],r))),F(this,"compareValue",(n,r)=>{let i=this.indexOf(n),a=this.indexOf(r);return ia?1:0}),F(this,"range",(n,r)=>{let i=[],a=n;for(;a!=null;){if(this.find(a)&&i.push(a),a===r)return i;a=this.getNextValue(a)}return[]}),F(this,"getValueRange",(n,r)=>n&&r?this.compareValue(n,r)<=0?this.range(n,r):this.range(r,n):[]),F(this,"toString",()=>{let n="";for(let r of this.items){let i=this.getItemValue(r),a=this.stringifyItem(r),o=this.getItemDisabled(r),s=[i,a,o].filter(Boolean).join(":");n+=s+","}return n}),F(this,"toJSON",()=>({size:this.size,first:this.firstValue,last:this.lastValue})),this.items=[...t.items]}get size(){return this.items.length}get firstValue(){let t=0;for(;this.getItemDisabled(this.at(t));)t++;return this.getItemValue(this.at(t))}get lastValue(){let t=this.size-1;for(;this.getItemDisabled(this.at(t));)t--;return this.getItemValue(this.at(t))}*[Symbol.iterator](){yield*Au(this.items)}},aT=(e,t)=>!!(e!=null&&e.toLowerCase().startsWith(t.toLowerCase()));Fc=class extends hn{constructor(e){let{columnCount:t}=e;super(e),F(this,"columnCount"),F(this,"rows",null),F(this,"getRows",()=>(this.rows||(this.rows=oa([...this.items],this.columnCount)),this.rows)),F(this,"getRowCount",()=>Math.ceil(this.items.length/this.columnCount)),F(this,"getCellIndex",(n,r)=>n*this.columnCount+r),F(this,"getCell",(n,r)=>this.at(this.getCellIndex(n,r))),F(this,"getValueCell",n=>{let r=this.indexOf(n);if(r===-1)return null;let i=Math.floor(r/this.columnCount),a=r%this.columnCount;return{row:i,column:a}}),F(this,"getLastEnabledColumnIndex",n=>{for(let r=this.columnCount-1;r>=0;r--){let i=this.getCell(n,r);if(i&&!this.getItemDisabled(i))return r}return null}),F(this,"getFirstEnabledColumnIndex",n=>{for(let r=0;r{let i=this.getValueCell(n);if(i===null)return null;let a=this.getRows(),o=a.length,s=i.row,l=i.column;for(let c=1;c<=o;c++){s=aa(a,s,{loop:r});let d=a[s];if(!d)continue;if(!d[l]){let u=this.getLastEnabledColumnIndex(s);u!=null&&(l=u)}let h=this.getCell(s,l);if(!this.getItemDisabled(h))return this.getItemValue(h)}return this.firstValue}),F(this,"getNextRowValue",(n,r=!1)=>{let i=this.getValueCell(n);if(i===null)return null;let a=this.getRows(),o=a.length,s=i.row,l=i.column;for(let c=1;c<=o;c++){s=pi(a,s,{loop:r});let d=a[s];if(!d)continue;if(!d[l]){let u=this.getLastEnabledColumnIndex(s);u!=null&&(l=u)}let h=this.getCell(s,l);if(!this.getItemDisabled(h))return this.getItemValue(h)}return this.lastValue}),this.columnCount=t}};xp=class Vs extends Set{constructor(t=[]){super(t),F(this,"selectionMode","single"),F(this,"deselectable",!0),F(this,"copy",()=>{let n=new Vs([...this]);return this.sync(n)}),F(this,"sync",n=>(n.selectionMode=this.selectionMode,n.deselectable=this.deselectable,n)),F(this,"isEmpty",()=>this.size===0),F(this,"isSelected",n=>this.selectionMode==="none"||n==null?!1:this.has(n)),F(this,"canSelect",(n,r)=>this.selectionMode!=="none"||!n.getItemDisabled(n.find(r))),F(this,"firstSelectedValue",n=>{let r=null;for(let i of this)(!r||n.compareValue(i,r)<0)&&(r=i);return r}),F(this,"lastSelectedValue",n=>{let r=null;for(let i of this)(!r||n.compareValue(i,r)>0)&&(r=i);return r}),F(this,"extendSelection",(n,r,i)=>{if(this.selectionMode==="none")return this;if(this.selectionMode==="single")return this.replaceSelection(n,i);let a=this.copy(),o=Array.from(this).pop();for(let s of n.getValueRange(r,o!=null?o:i))a.delete(s);for(let s of n.getValueRange(i,r))this.canSelect(n,s)&&a.add(s);return a}),F(this,"toggleSelection",(n,r)=>{if(this.selectionMode==="none")return this;if(this.selectionMode==="single"&&!this.isSelected(r))return this.replaceSelection(n,r);let i=this.copy();return i.has(r)?i.delete(r):i.canSelect(n,r)&&i.add(r),i}),F(this,"replaceSelection",(n,r)=>{if(this.selectionMode==="none")return this;if(r==null)return this;if(!this.canSelect(n,r))return this;let i=new Vs([r]);return this.sync(i)}),F(this,"setSelection",n=>{if(this.selectionMode==="none")return this;let r=new Vs;for(let i of n)if(i!=null&&(r.add(i),this.selectionMode==="single"))break;return this.sync(r)}),F(this,"clearSelection",()=>{let n=this.copy();return n.deselectable&&n.size>0&&n.clear(),n}),F(this,"select",(n,r,i)=>this.selectionMode==="none"?this:this.selectionMode==="single"?this.isSelected(r)&&this.deselectable?this.toggleSelection(n,r):this.replaceSelection(n,r):this.selectionMode==="multiple"||i?this.toggleSelection(n,r):this.replaceSelection(n,r)),F(this,"deselect",n=>{let r=this.copy();return r.delete(n),r}),F(this,"isEqual",n=>Ie(Array.from(this),Array.from(n)))}};$c=class Lp{constructor(t){F(this,"options",t),F(this,"rootNode"),F(this,"isEqual",n=>Ie(this.rootNode,n.rootNode)),F(this,"getNodeChildren",n=>{var r,i,a,o;return(o=(a=(i=(r=this.options).nodeToChildren)==null?void 0:i.call(r,n))!=null?a:ki.nodeToChildren(n))!=null?o:[]}),F(this,"resolveIndexPath",n=>typeof n=="string"?this.getIndexPath(n):n),F(this,"resolveNode",n=>{let r=this.resolveIndexPath(n);return r?this.at(r):void 0}),F(this,"getNodeChildrenCount",n=>{var r,i,a;return(a=(i=(r=this.options).nodeToChildrenCount)==null?void 0:i.call(r,n))!=null?a:ki.nodeToChildrenCount(n)}),F(this,"getNodeValue",n=>{var r,i,a;return(a=(i=(r=this.options).nodeToValue)==null?void 0:i.call(r,n))!=null?a:ki.nodeToValue(n)}),F(this,"getNodeDisabled",n=>{var r,i,a;return(a=(i=(r=this.options).isNodeDisabled)==null?void 0:i.call(r,n))!=null?a:ki.isNodeDisabled(n)}),F(this,"stringify",n=>{let r=this.findNode(n);return r?this.stringifyNode(r):null}),F(this,"stringifyNode",n=>{var r,i,a;return(a=(i=(r=this.options).nodeToString)==null?void 0:i.call(r,n))!=null?a:ki.nodeToString(n)}),F(this,"getFirstNode",(n=this.rootNode,r={})=>{let i;return St(n,{getChildren:this.getNodeChildren,onEnter:(a,o)=>{var s;if(!this.isSameNode(a,n)){if((s=r.skip)!=null&&s.call(r,{value:this.getNodeValue(a),node:a,indexPath:o}))return"skip";if(!i&&o.length>0&&!this.getNodeDisabled(a))return i=a,"stop"}}}),i}),F(this,"getLastNode",(n=this.rootNode,r={})=>{let i;return St(n,{getChildren:this.getNodeChildren,onEnter:(a,o)=>{var s;if(!this.isSameNode(a,n)){if((s=r.skip)!=null&&s.call(r,{value:this.getNodeValue(a),node:a,indexPath:o}))return"skip";o.length>0&&!this.getNodeDisabled(a)&&(i=a)}}}),i}),F(this,"at",n=>Ap(this.rootNode,n,{getChildren:this.getNodeChildren})),F(this,"findNode",(n,r=this.rootNode)=>lT(r,{getChildren:this.getNodeChildren,predicate:i=>this.getNodeValue(i)===n})),F(this,"findNodes",(n,r=this.rootNode)=>{let i=new Set(n.filter(a=>a!=null));return cT(r,{getChildren:this.getNodeChildren,predicate:a=>i.has(this.getNodeValue(a))})}),F(this,"sort",n=>n.reduce((r,i)=>{let a=this.getIndexPath(i);return a&&r.push({value:i,indexPath:a}),r},[]).sort((r,i)=>Rp(r.indexPath,i.indexPath)).map(({value:r})=>r)),F(this,"getValue",n=>{let r=this.at(n);return r?this.getNodeValue(r):void 0}),F(this,"getValuePath",n=>{if(!n)return[];let r=[],i=[...n];for(;i.length>0;){let a=this.at(i);a&&r.unshift(this.getNodeValue(a)),i.pop()}return r}),F(this,"getDepth",n=>{var i;let r=Tp(this.rootNode,{getChildren:this.getNodeChildren,predicate:a=>this.getNodeValue(a)===n});return(i=r==null?void 0:r.length)!=null?i:0}),F(this,"isSameNode",(n,r)=>this.getNodeValue(n)===this.getNodeValue(r)),F(this,"isRootNode",n=>this.isSameNode(n,this.rootNode)),F(this,"contains",(n,r)=>!n||!r?!1:r.slice(0,n.length).every((i,a)=>n[a]===r[a])),F(this,"getNextNode",(n,r={})=>{let i=!1,a;return St(this.rootNode,{getChildren:this.getNodeChildren,onEnter:(o,s)=>{var c;if(this.isRootNode(o))return;let l=this.getNodeValue(o);if((c=r.skip)!=null&&c.call(r,{value:l,node:o,indexPath:s}))return l===n&&(i=!0),"skip";if(i&&!this.getNodeDisabled(o))return a=o,"stop";l===n&&(i=!0)}}),a}),F(this,"getPreviousNode",(n,r={})=>{let i,a=!1;return St(this.rootNode,{getChildren:this.getNodeChildren,onEnter:(o,s)=>{var c;if(this.isRootNode(o))return;let l=this.getNodeValue(o);if((c=r.skip)!=null&&c.call(r,{value:l,node:o,indexPath:s}))return"skip";if(l===n)return a=!0,"stop";this.getNodeDisabled(o)||(i=o)}}),a?i:void 0}),F(this,"getParentNodes",n=>{var a;let r=(a=this.resolveIndexPath(n))==null?void 0:a.slice();if(!r)return[];let i=[];for(;r.length>0;){r.pop();let o=this.at(r);o&&!this.isRootNode(o)&&i.unshift(o)}return i}),F(this,"getDescendantNodes",(n,r)=>{let i=this.resolveNode(n);if(!i)return[];let a=[];return St(i,{getChildren:this.getNodeChildren,onEnter:(o,s)=>{s.length!==0&&(!(r!=null&&r.withBranch)&&this.isBranchNode(o)||a.push(o))}}),a}),F(this,"getDescendantValues",(n,r)=>this.getDescendantNodes(n,r).map(a=>this.getNodeValue(a))),F(this,"getParentIndexPath",n=>n.slice(0,-1)),F(this,"getParentNode",n=>{let r=this.resolveIndexPath(n);return r?this.at(this.getParentIndexPath(r)):void 0}),F(this,"visit",n=>{let a=n,{skip:r}=a,i=ft(a,["skip"]);St(this.rootNode,v(p({},i),{getChildren:this.getNodeChildren,onEnter:(o,s)=>{var l;if(!this.isRootNode(o))return r!=null&&r({value:this.getNodeValue(o),node:o,indexPath:s})?"skip":(l=i.onEnter)==null?void 0:l.call(i,o,s)}}))}),F(this,"getPreviousSibling",n=>{let r=this.getParentNode(n);if(!r)return;let i=this.getNodeChildren(r),a=n[n.length-1];for(;--a>=0;){let o=i[a];if(!this.getNodeDisabled(o))return o}}),F(this,"getNextSibling",n=>{let r=this.getParentNode(n);if(!r)return;let i=this.getNodeChildren(r),a=n[n.length-1];for(;++a{let r=this.getParentNode(n);return r?this.getNodeChildren(r):[]}),F(this,"getValues",(n=this.rootNode)=>uT(n,{getChildren:this.getNodeChildren,transform:i=>[this.getNodeValue(i)]}).slice(1)),F(this,"isValidDepth",(n,r)=>r==null?!0:typeof r=="function"?r(n.length):n.length===r),F(this,"isBranchNode",n=>this.getNodeChildren(n).length>0||this.getNodeChildrenCount(n)!=null),F(this,"getBranchValues",(n=this.rootNode,r={})=>{let i=[];return St(n,{getChildren:this.getNodeChildren,onEnter:(a,o)=>{var l;if(o.length===0)return;let s=this.getNodeValue(a);if((l=r.skip)!=null&&l.call(r,{value:s,node:a,indexPath:o}))return"skip";this.isBranchNode(a)&&this.isValidDepth(o,r.depth)&&i.push(this.getNodeValue(a))}}),i}),F(this,"flatten",(n=this.rootNode)=>hT(n,{getChildren:this.getNodeChildren})),F(this,"_create",(n,r)=>this.getNodeChildren(n).length>0||r.length>0?v(p({},n),{children:r}):p({},n)),F(this,"_insert",(n,r,i)=>this.copy(yT(n,{at:r,nodes:i,getChildren:this.getNodeChildren,create:this._create}))),F(this,"copy",n=>new Lp(v(p({},this.options),{rootNode:n}))),F(this,"_replace",(n,r,i)=>this.copy(bT(n,{at:r,node:i,getChildren:this.getNodeChildren,create:this._create}))),F(this,"_move",(n,r,i)=>this.copy(ST(n,{indexPaths:r,to:i,getChildren:this.getNodeChildren,create:this._create}))),F(this,"_remove",(n,r)=>this.copy(ET(n,{indexPaths:r,getChildren:this.getNodeChildren,create:this._create}))),F(this,"replace",(n,r)=>this._replace(this.rootNode,n,r)),F(this,"remove",n=>this._remove(this.rootNode,n)),F(this,"insertBefore",(n,r)=>this.getParentNode(n)?this._insert(this.rootNode,n,r):void 0),F(this,"insertAfter",(n,r)=>{if(!this.getParentNode(n))return;let a=[...n.slice(0,-1),n[n.length-1]+1];return this._insert(this.rootNode,a,r)}),F(this,"move",(n,r)=>this._move(this.rootNode,n,r)),F(this,"filter",n=>{let r=gT(this.rootNode,{predicate:n,getChildren:this.getNodeChildren,create:this._create});return this.copy(r)}),F(this,"toJSON",()=>this.getValues(this.rootNode)),this.rootNode=t.rootNode}getIndexPath(t){if(Array.isArray(t)){if(t.length===0)return[];let n=[],r=this.getNodeChildren(this.rootNode);for(let i=0;ithis.getNodeValue(s)===a);if(o===-1)break;if(n.push(o),ithis.getNodeValue(n)===t})}},ki={nodeToValue(e){return typeof e=="string"?e:nn(e)&&nt(e,"value")?e.value:""},nodeToString(e){return typeof e=="string"?e:nn(e)&&nt(e,"label")?e.label:ki.nodeToValue(e)},isNodeDisabled(e){return nn(e)&&nt(e,"disabled")?!!e.disabled:!1},nodeToChildren(e){return e.children},nodeToChildrenCount(e){if(nn(e)&&nt(e,"childrenCount"))return e.childrenCount}}});function fn(e,t){if(!e)return t?{destination:t}:null;let n=e.getAttribute("data-redirect");if(n==="false")return null;let r=e.getAttribute("data-to")||t||e.getAttribute("data-value")||"";if(!r)return null;let i=PT.includes(n)?n:void 0,a=e.hasAttribute("data-new-tab");return{destination:r,mode:i,newTab:a}}function mn(e,t){if(!e||!e.destination)return!1;let{destination:n,newTab:r,mode:i}=e;if(r)return window.open(n,"_blank","noopener,noreferrer"),!0;let a=t.liveSocket.main;if(!(!a.isDead&&a.isConnected())||!i||i==="href")return window.location.href=n,!0;let s=t.liveSocket.js();return i==="patch"?s.patch(n):s.navigate(n),!0}var PT,Di=ne(()=>{"use strict";PT=["href","patch","navigate"]});var Wp={};fe(Wp,{Combobox:()=>MT});function VT(e,t){let{context:n,prop:r,state:i,send:a,scope:o,computed:s,event:l}=e,c=r("translations"),d=r("collection"),g=!!r("disabled"),h=s("isInteractive"),u=!!r("invalid"),f=!!r("required"),m=!!r("readOnly"),P=i.hasTag("open"),C=i.hasTag("focused"),V=r("composite"),I=n.get("highlightedValue"),b=Lt(v(p({},r("positioning")),{placement:n.get("currentPlacement")}));function y(E){let A=d.getItemDisabled(E.item),N=d.getItemValue(E.item);return jt(N,()=>`[zag-js] No value found for item ${JSON.stringify(E.item)}`),{value:N,disabled:!!(g||A),highlighted:I===N,selected:n.get("value").includes(N)}}return{focused:C,open:P,inputValue:n.get("inputValue"),highlightedValue:I,highlightedItem:n.get("highlightedItem"),value:n.get("value"),valueAsString:s("valueAsString"),hasSelectedItems:s("hasSelectedItems"),selectedItems:s("selectedItems"),collection:r("collection"),multiple:!!r("multiple"),disabled:!!g,syncSelectedItems(){a({type:"SELECTED_ITEMS.SYNC"})},reposition(E={}){a({type:"POSITIONING.SET",options:E})},setHighlightValue(E){a({type:"HIGHLIGHTED_VALUE.SET",value:E})},clearHighlightValue(){a({type:"HIGHLIGHTED_VALUE.CLEAR"})},selectValue(E){a({type:"ITEM.SELECT",value:E})},setValue(E){a({type:"VALUE.SET",value:E})},setInputValue(E,A="script"){a({type:"INPUT_VALUE.SET",value:E,src:A})},clearValue(E){E!=null?a({type:"ITEM.CLEAR",value:E}):a({type:"VALUE.CLEAR"})},focus(){var E;(E=Mi(o))==null||E.focus()},setOpen(E,A="script"){i.hasTag("open")!==E&&a({type:E?"OPEN":"CLOSE",src:A})},getRootProps(){return t.element(v(p({},gt.root.attrs),{dir:r("dir"),id:IT(o),"data-invalid":S(u),"data-readonly":S(m)}))},getLabelProps(){return t.label(v(p({},gt.label.attrs),{dir:r("dir"),htmlFor:As(o),id:Hc(o),"data-readonly":S(m),"data-disabled":S(g),"data-invalid":S(u),"data-required":S(f),"data-focus":S(C),onClick(E){var A;V||(E.preventDefault(),(A=Oa(o))==null||A.focus({preventScroll:!0}))}}))},getControlProps(){return t.element(v(p({},gt.control.attrs),{dir:r("dir"),id:Bp(o),"data-state":P?"open":"closed","data-focus":S(C),"data-disabled":S(g),"data-invalid":S(u)}))},getPositionerProps(){return t.element(v(p({},gt.positioner.attrs),{dir:r("dir"),id:Gp(o),style:b.floating}))},getInputProps(){return t.input(v(p({},gt.input.attrs),{dir:r("dir"),"aria-invalid":oe(u),"data-invalid":S(u),"data-autofocus":S(r("autoFocus")),name:r("name"),form:r("form"),disabled:g,required:r("required"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"none",spellCheck:"false",readOnly:m,placeholder:r("placeholder"),id:As(o),type:"text",role:"combobox",defaultValue:n.get("inputValue"),"aria-autocomplete":s("autoComplete")?"both":"list","aria-controls":Rs(o),"aria-expanded":P,"data-state":P?"open":"closed","aria-activedescendant":I?Fp(o,I):void 0,onClick(E){E.defaultPrevented||r("openOnClick")&&h&&a({type:"INPUT.CLICK",src:"input-click"})},onFocus(){g||a({type:"INPUT.FOCUS"})},onBlur(){g||a({type:"INPUT.BLUR"})},onChange(E){a({type:"INPUT.CHANGE",value:E.currentTarget.value,src:"input-change"})},onKeyDown(E){if(E.defaultPrevented||!h||E.ctrlKey||E.shiftKey||He(E))return;let A=r("openOnKeyPress"),N=E.ctrlKey||E.metaKey||E.shiftKey,O=!0,w={ArrowDown(D){!A&&!P||(a({type:D.altKey?"OPEN":"INPUT.ARROW_DOWN",keypress:O,src:"arrow-key"}),D.preventDefault())},ArrowUp(){!A&&!P||(a({type:E.altKey?"CLOSE":"INPUT.ARROW_UP",keypress:O,src:"arrow-key"}),E.preventDefault())},Home(D){N||(a({type:"INPUT.HOME",keypress:O}),P&&D.preventDefault())},End(D){N||(a({type:"INPUT.END",keypress:O}),P&&D.preventDefault())},Enter(D){var le;a({type:"INPUT.ENTER",keypress:O,src:"item-select"});let W=s("isCustomValue")&&r("allowCustomValue"),Z=I!=null,ue=r("alwaysSubmitOnEnter");if(P&&!W&&!ue&&Z&&D.preventDefault(),I==null)return;let z=Li(o,I);Vt(z)&&((le=r("navigate"))==null||le({value:I,node:z,href:z.href}))},Escape(){a({type:"INPUT.ESCAPE",keypress:O,src:"escape-key"}),E.preventDefault()}},k=ve(E,{dir:r("dir")}),R=w[k];R==null||R(E)}}))},getTriggerProps(E={}){return t.button(v(p({},gt.trigger.attrs),{dir:r("dir"),id:Up(o),"aria-haspopup":V?"listbox":"dialog",type:"button",tabIndex:E.focusable?void 0:-1,"aria-label":c.triggerLabel,"aria-expanded":P,"data-state":P?"open":"closed","aria-controls":P?Rs(o):void 0,disabled:g,"data-invalid":S(u),"data-focusable":S(E.focusable),"data-readonly":S(m),"data-disabled":S(g),onFocus(){E.focusable&&a({type:"INPUT.FOCUS",src:"trigger"})},onClick(A){A.defaultPrevented||h&&Ee(A)&&a({type:"TRIGGER.CLICK",src:"trigger-click"})},onPointerDown(A){h&&A.pointerType!=="touch"&&Ee(A)&&(A.preventDefault(),queueMicrotask(()=>{Bc(o)}))},onKeyDown(A){if(A.defaultPrevented||V)return;let N={ArrowDown(){a({type:"INPUT.ARROW_DOWN",src:"arrow-key"})},ArrowUp(){a({type:"INPUT.ARROW_UP",src:"arrow-key"})}},O=ve(A,{dir:r("dir")}),w=N[O];w&&(w(A),A.preventDefault())}}))},getContentProps(){return t.element(v(p({},gt.content.attrs),{dir:r("dir"),id:Rs(o),role:V?"listbox":"dialog",tabIndex:-1,hidden:!P,"data-state":P?"open":"closed","data-placement":n.get("currentPlacement"),"aria-labelledby":Hc(o),"aria-multiselectable":r("multiple")&&V?!0:void 0,"data-empty":S(d.size===0),onPointerDown(E){Ee(E)&&E.preventDefault()}}))},getListProps(){return t.element(v(p({},gt.list.attrs),{role:V?void 0:"listbox","data-empty":S(d.size===0),"aria-labelledby":Hc(o),"aria-multiselectable":r("multiple")&&!V?!0:void 0}))},getClearTriggerProps(){return t.button(v(p({},gt.clearTrigger.attrs),{dir:r("dir"),id:qp(o),type:"button",tabIndex:-1,disabled:g,"data-invalid":S(u),"aria-label":c.clearTriggerLabel,"aria-controls":As(o),hidden:!n.get("value").length,onPointerDown(E){Ee(E)&&E.preventDefault()},onClick(E){E.defaultPrevented||h&&a({type:"VALUE.CLEAR",src:"clear-trigger"})}}))},getItemState:y,getItemProps(E){let A=y(E),N=A.value;return t.element(v(p({},gt.item.attrs),{dir:r("dir"),id:Fp(o,N),role:"option",tabIndex:-1,"data-highlighted":S(A.highlighted),"data-state":A.selected?"checked":"unchecked","aria-selected":oe(A.selected),"aria-disabled":oe(A.disabled),"data-disabled":S(A.disabled),"data-value":A.value,onPointerMove(){A.disabled||A.highlighted||a({type:"ITEM.POINTER_MOVE",value:N})},onPointerLeave(){if(E.persistFocus||A.disabled)return;let O=l.previous();O!=null&&O.type.includes("POINTER")&&a({type:"ITEM.POINTER_LEAVE",value:N})},onClick(O){Ar(O)||Vn(O)||tr(O)||A.disabled||a({type:"ITEM.CLICK",src:"item-select",value:N})}}))},getItemTextProps(E){let A=y(E);return t.element(v(p({},gt.itemText.attrs),{dir:r("dir"),"data-state":A.selected?"checked":"unchecked","data-disabled":S(A.disabled),"data-highlighted":S(A.highlighted)}))},getItemIndicatorProps(E){let A=y(E);return t.element(v(p({"aria-hidden":!0},gt.itemIndicator.attrs),{dir:r("dir"),"data-state":A.selected?"checked":"unchecked",hidden:!A.selected}))},getItemGroupProps(E){let{id:A}=E;return t.element(v(p({},gt.itemGroup.attrs),{dir:r("dir"),id:TT(o,A),"aria-labelledby":Mp(o,A),"data-empty":S(d.size===0),role:"group"}))},getItemGroupLabelProps(E){let{htmlFor:A}=E;return t.element(v(p({},gt.itemGroupLabel.attrs),{dir:r("dir"),id:Mp(o,A),role:"presentation"}))}}}function Hp(e){return(e.previousEvent||e).src}function DT(e){var n,r;return T(e,"controlled")?{value:(n=ie(e,"value"))!=null?n:[]}:{defaultValue:(r=ie(e,"defaultValue"))!=null?r:[]}}function LT(e,t,n,r){let i=T(e,"redirect");return{id:e.id,disabled:T(e,"disabled"),placeholder:x(e,"placeholder"),alwaysSubmitOnEnter:T(e,"alwaysSubmitOnEnter"),autoFocus:T(e,"autoFocus"),closeOnSelect:T(e,"closeOnSelect"),dir:q(e),inputBehavior:x(e,"inputBehavior"),loopFocus:T(e,"loopFocus"),multiple:i?!1:T(e,"multiple"),invalid:T(e,"invalid"),allowCustomValue:!1,selectionBehavior:"replace",name:x(e,"name"),form:x(e,"form"),readOnly:T(e,"readOnly"),required:T(e,"required"),positioning:$e(e),onOpenChange:a=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,open:a.open,reason:a.reason,value:a.value},serverEventName:x(e,"onOpenChange"),clientEventName:x(e,"onOpenChangeClient")})},onInputValueChange:a=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,value:a.inputValue,reason:a.reason},serverEventName:x(e,"onInputValueChange"),clientEventName:x(e,"onInputValueChangeClient")})},onValueChange:a=>{var s;let o=a.value.length>0?String(a.value[0]):null;if(i&&o){let l=e.querySelector(`[data-scope="combobox"][data-part="item"][data-value="${CSS.escape(o)}"]`);mn(fn(l,o),{liveSocket:r})}{let l=e.querySelector('[data-scope="combobox"][data-part="hidden-input"]');if(l){let c=a.value.map(d=>String(d));l.value=c.length===0?"":T(e,"multiple")?c.join(","):(s=c[0])!=null?s:"",l.dispatchEvent(new Event("input",{bubbles:!0})),l.dispatchEvent(new Event("change",{bubbles:!0}))}}K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,value:a.value,items:a.items},serverEventName:x(e,"onValueChange"),clientEventName:x(e,"onValueChangeClient")})}}}var CT,gt,Gc,IT,Hc,Bp,As,Rs,Gp,Up,qp,TT,Mp,Fp,Gr,Mi,_p,$p,Oa,wT,Li,Bc,OT,xT,AT,RT,ht,Br,kT,NT,MT,Kp=ne(()=>{"use strict";Ic();$r();gr();gn();hr();Ts();wa();Di();Ln();_e();Ce();se();CT=j("combobox").parts("root","clearTrigger","content","control","input","item","itemGroup","itemGroupLabel","itemIndicator","itemText","label","list","positioner","trigger"),gt=CT.build(),Gc=e=>new hn(e);Gc.empty=()=>new hn({items:[]});IT=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`combobox:${e.id}`},Hc=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`combobox:${e.id}:label`},Bp=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.control)!=null?n:`combobox:${e.id}:control`},As=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.input)!=null?n:`combobox:${e.id}:input`},Rs=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.content)!=null?n:`combobox:${e.id}:content`},Gp=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.positioner)!=null?n:`combobox:${e.id}:popper`},Up=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.trigger)!=null?n:`combobox:${e.id}:toggle-btn`},qp=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.clearTrigger)!=null?n:`combobox:${e.id}:clear-btn`},TT=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemGroup)==null?void 0:r.call(n,t))!=null?i:`combobox:${e.id}:optgroup:${t}`},Mp=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemGroupLabel)==null?void 0:r.call(n,t))!=null?i:`combobox:${e.id}:optgroup-label:${t}`},Fp=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.item)==null?void 0:r.call(n,t))!=null?i:`combobox:${e.id}:option:${t}`},Gr=e=>e.getById(Rs(e)),Mi=e=>e.getById(As(e)),_p=e=>e.getById(Gp(e)),$p=e=>e.getById(Bp(e)),Oa=e=>e.getById(Up(e)),wT=e=>e.getById(qp(e)),Li=(e,t)=>{if(t==null)return null;let n=`[role=option][data-value="${CSS.escape(t)}"]`;return rr(Gr(e),n)},Bc=e=>{let t=Mi(e);e.isActiveElement(t)||t==null||t.focus({preventScroll:!0}),fi(t)},OT=e=>{let t=Oa(e);e.isActiveElement(t)||t==null||t.focus({preventScroll:!0})};({guards:xT,createMachine:AT,choose:RT}=Ot()),{and:ht,not:Br}=xT,kT=AT({props({props:e}){return v(p({loopFocus:!0,openOnClick:!1,defaultValue:[],defaultInputValue:"",closeOnSelect:!e.multiple,allowCustomValue:!1,alwaysSubmitOnEnter:!1,inputBehavior:"none",selectionBehavior:e.multiple?"clear":"replace",openOnKeyPress:!0,openOnChange:!0,composite:!0,navigate({node:t}){bi(t)},collection:Gc.empty()},e),{positioning:p({placement:"bottom",sameWidth:!0},e.positioning),translations:p({triggerLabel:"Toggle suggestions",clearTriggerLabel:"Clear value"},e.translations)})},initialState({prop:e}){return e("open")||e("defaultOpen")?"open.suggesting":"closed.idle"},context({prop:e,bindable:t,getContext:n,getEvent:r}){var o,s;let i=(s=(o=e("value"))!=null?o:e("defaultValue"))!=null?s:[],a=e("collection").findMany(i);return{currentPlacement:t(()=>({defaultValue:void 0})),value:t(()=>({defaultValue:e("defaultValue"),value:e("value"),isEqual:Ie,hash(l){return l.join(",")},onChange(l){var m,P;let c=n(),d=e("collection"),g=c.get("selectedItemMap"),h=Pt({values:l,collection:d,selectedItemMap:g}),u=(m=e("value"))!=null?m:l,f=u===l?h:Pt({values:u,collection:d,selectedItemMap:h.nextSelectedItemMap});c.set("selectedItemMap",f.nextSelectedItemMap),(P=e("onValueChange"))==null||P({value:l,items:h.selectedItems})}})),highlightedValue:t(()=>({defaultValue:e("defaultHighlightedValue")||null,value:e("highlightedValue"),onChange(l){var d;let c=e("collection").find(l);(d=e("onHighlightChange"))==null||d({highlightedValue:l,highlightedItem:c})}})),inputValue:t(()=>{let l=e("inputValue")||e("defaultInputValue"),c=e("value")||e("defaultValue");if(!l.trim()&&!e("multiple")){let d=e("collection").stringifyMany(c);l=Me(e("selectionBehavior"),{preserve:l||d,replace:d,clear:""})}return{defaultValue:l,value:e("inputValue"),onChange(d){var u;let g=r(),h=(g.previousEvent||g).src;(u=e("onInputValueChange"))==null||u({inputValue:d,reason:h})}}}),highlightedItem:t(()=>{let l=e("highlightedValue");return{defaultValue:e("collection").find(l)}}),selectedItemMap:t(()=>({defaultValue:Ni({selectedItems:a,collection:e("collection")})}))}},computed:{isInputValueEmpty:({context:e})=>e.get("inputValue").length===0,isInteractive:({prop:e})=>!(e("readOnly")||e("disabled")),autoComplete:({prop:e})=>e("inputBehavior")==="autocomplete",autoHighlight:({prop:e})=>e("inputBehavior")==="autohighlight",hasSelectedItems:({context:e})=>e.get("value").length>0,selectedItems:({context:e,prop:t})=>Hr({values:e.get("value"),collection:t("collection"),selectedItemMap:e.get("selectedItemMap")}),valueAsString:({computed:e,prop:t})=>t("collection").stringifyItems(e("selectedItems")),isCustomValue:({context:e,computed:t})=>e.get("inputValue")!==t("valueAsString")},watch({context:e,prop:t,track:n,action:r,send:i}){n([()=>e.hash("value")],()=>{r(["syncSelectedItems"])}),n([()=>e.get("inputValue")],()=>{r(["syncInputValue"])}),n([()=>e.get("highlightedValue")],()=>{r(["syncHighlightedItem","autofillInputValue","announceHighlightedItem"])}),n([()=>t("open")],()=>{r(["toggleVisibility"])}),n([()=>t("collection").toString()],()=>{i({type:"CHILDREN_CHANGE"})})},on:{"SELECTED_ITEMS.SYNC":{actions:["syncSelectedItems"]},"HIGHLIGHTED_VALUE.SET":{actions:["setHighlightedValue"]},"HIGHLIGHTED_VALUE.CLEAR":{actions:["clearHighlightedValue"]},"ITEM.SELECT":{actions:["selectItem"]},"ITEM.CLEAR":{actions:["clearItem"]},"VALUE.SET":{actions:["setValue"]},"INPUT_VALUE.SET":{actions:["setInputValue"]},"POSITIONING.SET":{actions:["reposition"]}},entry:RT([{guard:"autoFocus",actions:["setInitialFocus"]}]),states:{closed:{tags:["closed"],initial:"idle",states:{idle:{tags:["idle"],entry:["scrollContentToTop","clearHighlightedValue"],on:{"CONTROLLED.OPEN":{target:"open.interacting"},"TRIGGER.CLICK":[{guard:"isOpenControlled",actions:["setInitialFocus","highlightFirstSelectedItem","invokeOnOpen"]},{target:"open.interacting",actions:["setInitialFocus","highlightFirstSelectedItem","invokeOnOpen"]}],"INPUT.CLICK":[{guard:"isOpenControlled",actions:["highlightFirstSelectedItem","invokeOnOpen"]},{target:"open.interacting",actions:["highlightFirstSelectedItem","invokeOnOpen"]}],"INPUT.FOCUS":{target:"focused"},OPEN:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open.interacting",actions:["invokeOnOpen"]}],"VALUE.CLEAR":{target:"focused",actions:["clearInputValue","clearSelectedItems","setInitialFocus"]}}},focused:{tags:["focused"],entry:["scrollContentToTop","clearHighlightedValue"],on:{"CONTROLLED.OPEN":[{guard:"isChangeEvent",target:"open.suggesting"},{target:"open.interacting"}],"INPUT.CHANGE":[{guard:ht("isOpenControlled","openOnChange"),actions:["setInputValue","invokeOnOpen","highlightFirstItemIfNeeded"]},{guard:"openOnChange",target:"open.suggesting",actions:["setInputValue","invokeOnOpen","highlightFirstItemIfNeeded"]},{actions:["setInputValue"]}],"LAYER.INTERACT_OUTSIDE":{target:"idle"},"INPUT.ESCAPE":{guard:ht("isCustomValue",Br("allowCustomValue")),actions:["revertInputValue"]},"INPUT.BLUR":{target:"idle"},"INPUT.CLICK":[{guard:"isOpenControlled",actions:["highlightFirstSelectedItem","invokeOnOpen"]},{target:"open.interacting",actions:["highlightFirstSelectedItem","invokeOnOpen"]}],"TRIGGER.CLICK":[{guard:"isOpenControlled",actions:["setInitialFocus","highlightFirstSelectedItem","invokeOnOpen"]},{target:"open.interacting",actions:["setInitialFocus","highlightFirstSelectedItem","invokeOnOpen"]}],"INPUT.ARROW_DOWN":[{guard:ht("isOpenControlled","autoComplete"),actions:["invokeOnOpen"]},{guard:"autoComplete",target:"open.interacting",actions:["invokeOnOpen"]},{guard:"isOpenControlled",actions:["highlightFirstOrSelectedItem","invokeOnOpen"]},{target:"open.interacting",actions:["highlightFirstOrSelectedItem","invokeOnOpen"]}],"INPUT.ARROW_UP":[{guard:ht("isOpenControlled","autoComplete"),actions:["invokeOnOpen"]},{guard:"autoComplete",target:"open.interacting",actions:["invokeOnOpen"]},{guard:"isOpenControlled",actions:["highlightLastOrSelectedItem","invokeOnOpen"]},{target:"open.interacting",actions:["highlightLastOrSelectedItem","invokeOnOpen"]}],OPEN:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open.interacting",actions:["invokeOnOpen"]}],"VALUE.CLEAR":{actions:["clearInputValue","clearSelectedItems"]}}}}},open:{tags:["open","focused"],entry:["setInitialFocus"],effects:["trackFocusVisible","scrollToHighlightedItem","trackDismissableLayer","trackPlacement","trackLiveRegion"],on:{"CONTROLLED.CLOSE":[{guard:"restoreFocus",target:"closed.focused",actions:["setFinalFocus"]},{target:"closed.idle"}],"INPUT.ENTER":[{guard:ht("isOpenControlled","isCustomValue",Br("hasHighlightedItem"),Br("allowCustomValue")),actions:["revertInputValue","invokeOnClose"]},{guard:ht("isCustomValue",Br("hasHighlightedItem"),Br("allowCustomValue")),target:"closed.focused",actions:["revertInputValue","invokeOnClose"]},{guard:ht("isOpenControlled","closeOnSelect"),actions:["selectHighlightedItem","invokeOnClose"]},{guard:"closeOnSelect",target:"closed.focused",actions:["selectHighlightedItem","invokeOnClose","setFinalFocus"]},{actions:["selectHighlightedItem"]}],"ITEM.CLICK":[{guard:ht("isOpenControlled","closeOnSelect"),actions:["selectItem","invokeOnClose"]},{guard:"closeOnSelect",target:"closed.focused",actions:["selectItem","invokeOnClose","setFinalFocus"]},{actions:["selectItem"]}],"TRIGGER.CLICK":[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed.focused",actions:["invokeOnClose"]}],"LAYER.INTERACT_OUTSIDE":[{guard:ht("isOpenControlled","isCustomValue",Br("allowCustomValue")),actions:["revertInputValue","invokeOnClose"]},{guard:ht("isCustomValue",Br("allowCustomValue")),target:"closed.idle",actions:["revertInputValue","invokeOnClose"]},{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed.idle",actions:["invokeOnClose"]}],CLOSE:[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed.focused",actions:["invokeOnClose","setFinalFocus"]}],"VALUE.CLEAR":[{guard:"isOpenControlled",actions:["clearInputValue","clearSelectedItems","invokeOnClose"]},{target:"closed.focused",actions:["clearInputValue","clearSelectedItems","invokeOnClose","setFinalFocus"]}]},initial:"interacting",states:{interacting:{on:{CHILDREN_CHANGE:[{guard:"isHighlightedItemRemoved",actions:["clearHighlightedValue"]},{actions:["scrollToHighlightedItem"]}],"INPUT.HOME":{actions:["highlightFirstItem"]},"INPUT.END":{actions:["highlightLastItem"]},"INPUT.ARROW_DOWN":[{guard:ht("autoComplete","isLastItemHighlighted"),actions:["clearHighlightedValue","scrollContentToTop"]},{actions:["highlightNextItem"]}],"INPUT.ARROW_UP":[{guard:ht("autoComplete","isFirstItemHighlighted"),actions:["clearHighlightedValue"]},{actions:["highlightPrevItem"]}],"INPUT.CHANGE":[{guard:"autoComplete",target:"suggesting",actions:["setInputValue"]},{target:"suggesting",actions:["clearHighlightedValue","setInputValue"]}],"ITEM.POINTER_MOVE":{actions:["setHighlightedValue"]},"ITEM.POINTER_LEAVE":{actions:["clearHighlightedValue"]},"LAYER.ESCAPE":[{guard:ht("isOpenControlled","autoComplete"),actions:["syncInputValue","invokeOnClose"]},{guard:"autoComplete",target:"closed.focused",actions:["syncInputValue","invokeOnClose"]},{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed.focused",actions:["invokeOnClose","setFinalFocus"]}]}},suggesting:{on:{CHILDREN_CHANGE:[{guard:ht("isHighlightedItemRemoved","hasCollectionItems","autoHighlight"),actions:["clearHighlightedValue","highlightFirstItem"]},{guard:"isHighlightedItemRemoved",actions:["clearHighlightedValue"]},{guard:"autoHighlight",actions:["highlightFirstItem"]}],"INPUT.ARROW_DOWN":{target:"interacting",actions:["highlightNextItem"]},"INPUT.ARROW_UP":{target:"interacting",actions:["highlightPrevItem"]},"INPUT.HOME":{target:"interacting",actions:["highlightFirstItem"]},"INPUT.END":{target:"interacting",actions:["highlightLastItem"]},"INPUT.CHANGE":{actions:["setInputValue"]},"LAYER.ESCAPE":[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed.focused",actions:["invokeOnClose"]}],"ITEM.POINTER_MOVE":{target:"interacting",actions:["setHighlightedValue"]},"ITEM.POINTER_LEAVE":{actions:["clearHighlightedValue"]}}}}}},implementations:{guards:{isInputValueEmpty:({computed:e})=>e("isInputValueEmpty"),autoComplete:({computed:e,prop:t})=>e("autoComplete")&&!t("multiple"),autoHighlight:({computed:e})=>e("autoHighlight"),isFirstItemHighlighted:({prop:e,context:t})=>e("collection").firstValue===t.get("highlightedValue"),isLastItemHighlighted:({prop:e,context:t})=>e("collection").lastValue===t.get("highlightedValue"),isCustomValue:({computed:e})=>e("isCustomValue"),allowCustomValue:({prop:e})=>!!e("allowCustomValue"),hasHighlightedItem:({context:e})=>e.get("highlightedValue")!=null,closeOnSelect:({prop:e})=>!!e("closeOnSelect"),isOpenControlled:({prop:e})=>e("open")!=null,openOnChange:({prop:e,context:t})=>{let n=e("openOnChange");return tg(n)?n:!!(n!=null&&n({inputValue:t.get("inputValue")}))},restoreFocus:({event:e})=>{var n,r;let t=(r=e.restoreFocus)!=null?r:(n=e.previousEvent)==null?void 0:n.restoreFocus;return t==null?!0:!!t},isChangeEvent:({event:e})=>{var t;return((t=e.previousEvent)==null?void 0:t.type)==="INPUT.CHANGE"},autoFocus:({prop:e})=>!!e("autoFocus"),isHighlightedItemRemoved:({prop:e,context:t})=>!e("collection").has(t.get("highlightedValue")),hasCollectionItems:({prop:e})=>e("collection").size>0},effects:{trackFocusVisible({scope:e}){var t;return et({root:(t=e.getRootNode)==null?void 0:t.call(e)})},trackDismissableLayer({send:e,prop:t,scope:n}){return t("disableLayer")?void 0:Mt(()=>Gr(n),{type:"listbox",defer:!0,exclude:()=>[Mi(n),Oa(n),wT(n)],onFocusOutside:t("onFocusOutside"),onPointerDownOutside:t("onPointerDownOutside"),onInteractOutside:t("onInteractOutside"),onEscapeKeyDown(i){i.preventDefault(),i.stopPropagation(),e({type:"LAYER.ESCAPE",src:"escape-key"})},onDismiss(){e({type:"LAYER.INTERACT_OUTSIDE",src:"interact-outside",restoreFocus:!1})}})},trackLiveRegion({refs:e,scope:t}){let n=ps({level:"assertive",document:t.getDoc()});return e.set("liveRegion",n),()=>n.destroy()},trackPlacement({context:e,prop:t,scope:n}){let r=()=>$p(n)||Oa(n),i=()=>_p(n);return e.set("currentPlacement",t("positioning").placement),ze(r,i,v(p({},t("positioning")),{defer:!0,onComplete(a){e.set("currentPlacement",a.placement)}}))},scrollToHighlightedItem({context:e,prop:t,scope:n}){let r=Mi(n),i=[],a=l=>{if(sr()==="pointer")return;let d=e.get("highlightedValue");if(!d)return;let g=Gr(n),h=t("scrollToIndexFn");if(h){let m=t("collection").indexOf(d);h({index:m,immediate:l,getElement:()=>Li(n,d)});return}let u=Li(n,d),f=$(()=>{Rn(u,{rootEl:g,block:"nearest"})});i.push(f)},o=$(()=>{lr("virtual"),a(!0)});i.push(o);let s=kt(r,{attributes:["aria-activedescendant"],callback:()=>a(!1)});return i.push(s),()=>{i.forEach(l=>l())}}},actions:{reposition({context:e,prop:t,scope:n,event:r}){ze(()=>$p(n),()=>_p(n),v(p(p({},t("positioning")),r.options),{defer:!0,listeners:!1,onComplete(o){e.set("currentPlacement",o.placement)}}))},setHighlightedValue({context:e,event:t}){t.value!=null&&e.set("highlightedValue",t.value)},clearHighlightedValue({context:e}){e.set("highlightedValue",null)},selectHighlightedItem(e){var s;let{context:t,prop:n}=e,r=n("collection"),i=t.get("highlightedValue");if(!i||!r.has(i))return;let a=n("multiple")?Kt(t.get("value"),i):[i];(s=n("onSelect"))==null||s({value:a,itemValue:i}),t.set("value",a);let o=Me(n("selectionBehavior"),{preserve:t.get("inputValue"),replace:r.stringifyMany(a),clear:""});t.set("inputValue",o)},scrollToHighlightedItem({context:e,prop:t,scope:n}){Rr(()=>{let r=e.get("highlightedValue");if(r==null)return;let i=Li(n,r),a=Gr(n),o=t("scrollToIndexFn");if(o){let s=t("collection").indexOf(r);o({index:s,immediate:!0,getElement:()=>Li(n,r)});return}Rn(i,{rootEl:a,block:"nearest"})})},selectItem(e){let{context:t,event:n,flush:r,prop:i}=e;n.value!=null&&r(()=>{var s;let a=i("multiple")?Kt(t.get("value"),n.value):[n.value];(s=i("onSelect"))==null||s({value:a,itemValue:n.value}),t.set("value",a);let o=Me(i("selectionBehavior"),{preserve:t.get("inputValue"),replace:i("collection").stringifyMany(a),clear:""});t.set("inputValue",o)})},clearItem(e){let{context:t,event:n,flush:r,prop:i}=e;n.value!=null&&r(()=>{let a=wt(t.get("value"),n.value);t.set("value",a);let o=Me(i("selectionBehavior"),{preserve:t.get("inputValue"),replace:i("collection").stringifyMany(a),clear:""});t.set("inputValue",o)})},setInitialFocus({scope:e}){$(()=>{Bc(e)})},setFinalFocus({scope:e}){$(()=>{let t=Oa(e);(t==null?void 0:t.dataset.focusable)==null?Bc(e):OT(e)})},syncInputValue({context:e,scope:t,event:n}){let r=Mi(t);r&&(r.value=e.get("inputValue"),queueMicrotask(()=>{n.current().type!=="INPUT.CHANGE"&&fi(r)}))},setInputValue({context:e,event:t}){e.set("inputValue",t.value)},clearInputValue({context:e}){e.set("inputValue","")},revertInputValue({context:e,prop:t,computed:n}){let r=t("selectionBehavior"),i=Me(r,{replace:n("hasSelectedItems")?n("valueAsString"):"",preserve:e.get("inputValue"),clear:""});e.set("inputValue",i)},setValue(e){let{context:t,flush:n,event:r,prop:i}=e;n(()=>{t.set("value",r.value);let a=Me(i("selectionBehavior"),{preserve:t.get("inputValue"),replace:i("collection").stringifyMany(r.value),clear:""});t.set("inputValue",a)})},clearSelectedItems(e){let{context:t,flush:n,prop:r}=e;n(()=>{t.set("value",[]);let i=Me(r("selectionBehavior"),{preserve:t.get("inputValue"),replace:r("collection").stringifyMany([]),clear:""});t.set("inputValue",i)})},scrollContentToTop({prop:e,scope:t}){let n=e("scrollToIndexFn");if(n){let r=e("collection").firstValue;n({index:0,immediate:!0,getElement:()=>Li(t,r)})}else{let r=Gr(t);if(!r)return;r.scrollTop=0}},invokeOnOpen({prop:e,event:t,context:n}){var i;let r=Hp(t);(i=e("onOpenChange"))==null||i({open:!0,reason:r,value:n.get("value")})},invokeOnClose({prop:e,event:t,context:n}){var i;let r=Hp(t);(i=e("onOpenChange"))==null||i({open:!1,reason:r,value:n.get("value")})},highlightFirstItem({context:e,prop:t,scope:n}){(Gr(n)?queueMicrotask:$)(()=>{let i=t("collection").firstValue;i&&e.set("highlightedValue",i)})},highlightFirstItemIfNeeded({computed:e,action:t}){e("autoHighlight")&&t(["highlightFirstItem"])},highlightLastItem({context:e,prop:t,scope:n}){(Gr(n)?queueMicrotask:$)(()=>{let i=t("collection").lastValue;i&&e.set("highlightedValue",i)})},highlightNextItem({context:e,prop:t}){let n=null,r=e.get("highlightedValue"),i=t("collection");r?(n=i.getNextValue(r),!n&&t("loopFocus")&&(n=i.firstValue)):n=i.firstValue,n&&e.set("highlightedValue",n)},highlightPrevItem({context:e,prop:t}){let n=null,r=e.get("highlightedValue"),i=t("collection");r?(n=i.getPreviousValue(r),!n&&t("loopFocus")&&(n=i.lastValue)):n=i.lastValue,n&&e.set("highlightedValue",n)},highlightFirstSelectedItem({context:e,prop:t}){$(()=>{let[n]=t("collection").sort(e.get("value"));n&&e.set("highlightedValue",n)})},highlightFirstOrSelectedItem({context:e,prop:t,computed:n}){$(()=>{let r=null;n("hasSelectedItems")?r=t("collection").sort(e.get("value"))[0]:r=t("collection").firstValue,r&&e.set("highlightedValue",r)})},highlightLastOrSelectedItem({context:e,prop:t,computed:n}){$(()=>{let r=t("collection"),i=null;n("hasSelectedItems")?i=r.sort(e.get("value"))[0]:i=r.lastValue,i&&e.set("highlightedValue",i)})},autofillInputValue({context:e,computed:t,prop:n,event:r,scope:i}){let a=Mi(i),o=n("collection");if(!t("autoComplete")||!a||!r.keypress)return;let s=o.stringify(e.get("highlightedValue"));$(()=>{a.value=s||e.get("inputValue")})},syncSelectedItems(e){queueMicrotask(()=>{let{context:t,prop:n}=e,r=n("collection"),i=t.get("value"),a=t.get("selectedItemMap"),o=Pt({values:i,collection:r,selectedItemMap:a});t.set("selectedItemMap",o.nextSelectedItemMap);let s=Me(n("selectionBehavior"),{preserve:t.get("inputValue"),replace:r.stringifyMany(i),clear:""});t.set("inputValue",s)})},syncHighlightedItem({context:e,prop:t}){let n=t("collection").find(e.get("highlightedValue"));e.set("highlightedItem",n)},announceHighlightedItem({context:e,prop:t,refs:n}){var o;if(!ga())return;let r=e.get("highlightedValue"),i=r?t("collection").stringifyItem(t("collection").find(r)):null;if(!i)return;let a=r?e.get("value").includes(r):!1;(o=n.get("liveRegion"))==null||o.announce(a?`${i}, selected`:i)},toggleVisibility({event:e,send:t,prop:n}){t({type:n("open")?"CONTROLLED.OPEN":"CONTROLLED.CLOSE",previousEvent:e})}}}});NT=class extends X{constructor(){super(...arguments);J(this,"options",[]);J(this,"allOptions",[]);J(this,"hasGroups",!1)}setAllOptions(t){this.allOptions=t,this.options=t}getCollection(){let t=this.options||this.allOptions||[];return Gc(Ip(t,this.hasGroups))}initMachine(t){let n=()=>this.getCollection();return new Y(kT,v(p({},t),{get collection(){return n()},onOpenChange:r=>{r.open&&(this.options=this.allOptions),t.onOpenChange&&t.onOpenChange(r)},onInputValueChange:r=>{var i;if(t.onInputValueChange&&t.onInputValueChange(r),this.el.hasAttribute("data-filter")){let a=String((i=r.inputValue)!=null?i:"").toLowerCase(),o=this.allOptions.filter(s=>{var c;return String((c=s.label)!=null?c:"").toLowerCase().includes(a)});this.options=o.length>0?o:this.allOptions}else this.options=this.allOptions}}))}initApi(){return this.zagConnect(VT)}getItemValue(t){var r,i,a;let n=(i=(r=this.api.collection).getItemValue)==null?void 0:i.call(r,t);return(a=n!=null?n:t.id)!=null?a:""}buildOrderedBlocks(t){var i;let n=[],r=null;for(let a of t){let o=(i=a.group)!=null?i:"";o===""?((r==null?void 0:r.type)!=="default"&&(r={type:"default",items:[]},n.push(r)),r.items.push(a)):(((r==null?void 0:r.type)!=="group"||r.groupId!==o)&&(r={type:"group",groupId:o,items:[]},n.push(r)),r.items.push(a))}return n}renderItems(){var a;let t=this.el.querySelector('[data-scope="combobox"][data-part="list"]');if(!t)return;let n=o=>o.closest('[data-scope="combobox"][data-part="list"]')===t,r=Ao(this.el,"combobox");if(!r)return;["empty","item-group","item"].forEach(o=>{Array.from(t.querySelectorAll(`[data-scope="combobox"][data-part="${o}"]:not([data-template])`)).filter(n).forEach(s=>s.remove())});let i=(a=this.options)!=null&&a.length?this.options:this.allOptions;if(i.length===0){let o=r.querySelector('[data-scope="combobox"][data-part="empty"][data-template]');if(o){let s=o.cloneNode(!0);s.removeAttribute("data-template"),t.appendChild(s)}return}this.hasGroups?this.renderGroupedItems(t,r,i):this.renderFlatItems(t,r,i)}renderGroupedItems(t,n,r){let i=this.buildOrderedBlocks(r);for(let a of i){if(a.type!=="group")continue;let o=n.querySelector(`[data-scope="combobox"][data-part="item-group"][data-id="${CSS.escape(a.groupId)}"][data-template]`);if(!o)continue;let s=o.cloneNode(!0);s.removeAttribute("data-template"),s.querySelectorAll("[data-template]").forEach(c=>c.removeAttribute("data-template"));let l=new Set(a.items.map(c=>this.getItemValue(c)));s.querySelectorAll('[data-scope="combobox"][data-part="item"]').forEach(c=>{var g;let d=(g=c.dataset.value)!=null?g:"";l.has(d)||c.remove()}),t.appendChild(s)}}renderFlatItems(t,n,r){for(let i of r){let a=this.getItemValue(i),o=n.querySelector(`:scope > [data-scope="combobox"][data-part="item"][data-value="${CSS.escape(a)}"][data-template]`);if(!o)continue;let s=o.cloneNode(!0);s.removeAttribute("data-template"),t.appendChild(s)}}applyItemProps(){var a;let t=this.el.querySelector('[data-scope="combobox"][data-part="list"]');if(!t)return;let n=o=>o.closest('[data-scope="combobox"][data-part="list"]')===t;t.querySelectorAll('[data-scope="combobox"][data-part="item-group"]').forEach(o=>{var c;if(!n(o))return;let s=(c=o.dataset.id)!=null?c:"";this.spreadProps(o,this.api.getItemGroupProps({id:s}));let l=o.querySelector('[data-scope="combobox"][data-part="item-group-label"]');l&&this.spreadProps(l,this.api.getItemGroupLabelProps({htmlFor:s}))});let r=(a=this.options)!=null&&a.length?this.options:this.allOptions,i=new Map;for(let o of r)i.set(this.getItemValue(o),o);for(let o of this.allOptions){let s=this.getItemValue(o);i.has(s)||i.set(s,o)}t.querySelectorAll('[data-scope="combobox"][data-part="item"]').forEach(o=>{var g;if(!n(o))return;let s=(g=o.dataset.value)!=null?g:"",l=i.get(s);if(!l)return;this.spreadProps(o,this.api.getItemProps({item:l}));let c=o.querySelector('[data-scope="combobox"][data-part="item-text"]');c&&this.spreadProps(c,this.api.getItemTextProps({item:l}));let d=o.querySelector('[data-scope="combobox"][data-part="item-indicator"]');d&&this.spreadProps(d,this.api.getItemIndicatorProps({item:l}))})}render(){let t=this.el.querySelector('[data-scope="combobox"][data-part="root"]');t&&(this.spreadProps(t,this.api.getRootProps()),["label","control","input","trigger","clear-trigger","positioner","content","list"].forEach(n=>{let r=this.el.querySelector(`[data-scope="combobox"][data-part="${n}"]`);if(!r)return;let i="get"+n.split("-").map(a=>a[0].toUpperCase()+a.slice(1)).join("")+"Props";this.spreadProps(r,this.api[i]())}),this.renderItems(),this.applyItemProps())}};MT={mounted(){var c;let e=this.el,t=this.pushEvent.bind(this),n=()=>Q(this.liveSocket),r=JSON.parse((c=e.getAttribute("data-items"))!=null?c:"[]"),i=r.some(d=>!!d.group),a=p(p({},LT(e,t,n,this.liveSocket)),DT(e)),o=new NT(e,a);o.hasGroups=i,o.setAllOptions(r),o.init(),this.combobox=o;let s=de(e);this.domRegistry=s,s.add("corex:combobox:set-value",d=>{o.api.setValue(d.detail.value)});let l=ce(this);this.handleRegistry=l,l.add("combobox_set_value",d=>{B(e.id,G(d))&&o.api.setValue(d.value)})},updated(){var i,a,o;let e=JSON.parse((i=this.el.getAttribute("data-items"))!=null?i:"[]"),t=e.some(s=>!!s.group);if(!this.combobox)return;this.combobox.hasGroups=t,this.combobox.setAllOptions(e);let n=T(this.el,"redirect"),r=T(this.el,"controlled");this.combobox.updateProps(v(p({collection:this.combobox.getCollection(),id:this.el.id},r?{value:(a=ie(this.el,"value"))!=null?a:[]}:{defaultValue:(o=ie(this.el,"defaultValue"))!=null?o:[]}),{name:x(this.el,"name"),form:x(this.el,"form"),dir:q(this.el),disabled:T(this.el,"disabled"),multiple:n?!1:T(this.el,"multiple"),invalid:T(this.el,"invalid"),required:T(this.el,"required"),readOnly:T(this.el,"readOnly"),placeholder:x(this.el,"placeholder")})),this.combobox.api.open&&this.combobox.api.reposition()},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.combobox)==null||n.destroy()}}});var pf={};fe(pf,{ColorPicker:()=>A0});function jp(e,t){let{xChannel:n,yChannel:r,dir:i="ltr"}=t,{zChannel:a}=e.getColorAxes({xChannel:n,yChannel:r}),o=e.getChannelValue(a),{minValue:s,maxValue:l}=e.getChannelRange(a),c=["top",i==="rtl"?"left":"right"],d=!1,g={areaStyles:{},areaGradientStyles:{}},h=(o-s)/(l-s),u=e.getFormat()==="hsla";switch(a){case"red":{d=n==="green",g=HT(c,d,o);break}case"green":{d=n==="red",g=BT(c,d,o);break}case"blue":{d=n==="red",g=GT(c,d,o);break}case"hue":{d=n!=="saturation",u?g=UT(c,d,o):g=KT(c,d,o);break}case"saturation":{d=n==="hue",u?g=qT(c,d,h):g=jT(c,d,h);break}case"brightness":{d=n==="hue",g=zT(c,d,h);break}case"lightness":{d=n==="hue",g=WT(c,d,o);break}}return g}function f0(e,t){switch(t){case"hue":return pr(`hsl(${e.getChannelValue("hue")}, 100%, 50%)`);case"lightness":case"brightness":case"saturation":case"red":case"green":case"blue":return e.withChannelValue("alpha",1);case"alpha":return e;default:throw new Error("Unknown color channel: "+t)}}function jc(e,t){if(t==null)return"";if(t==="hex")return e.toString("hex");if(t==="css")return e.toString("css");if(t in e)return e.getChannelValue(t).toString();let n=e.getFormat()==="hsla";switch(t){case"hue":return n?e.toFormat("hsla").getChannelValue("hue").toString():e.toFormat("hsba").getChannelValue("hue").toString();case"saturation":return n?e.toFormat("hsla").getChannelValue("saturation").toString():e.toFormat("hsba").getChannelValue("saturation").toString();case"lightness":return e.toFormat("hsla").getChannelValue("lightness").toString();case"brightness":return e.toFormat("hsba").getChannelValue("brightness").toString();case"red":case"green":case"blue":return e.toFormat("rgba").getChannelValue(t).toString();default:return e.getChannelValue(t).toString()}}function m0(e,t){switch(t){case"hex":let n=pr("#000000"),r=pr("#FFFFFF");return{minValue:n.toHexInt(),maxValue:r.toHexInt(),pageSize:10,step:1};case"css":return;case"hue":case"saturation":case"lightness":return e.toFormat("hsla").getChannelRange(t);case"brightness":return e.toFormat("hsba").getChannelRange(t);case"red":case"green":case"blue":return e.toFormat("rgba").getChannelRange(t);default:return e.getChannelRange(t)}}function v0(e,t){return e==="vertical"?"top":t==="ltr"?"right":"left"}function b0(e,t){let{context:n,send:r,prop:i,computed:a,state:o,scope:s}=e,l=n.get("value"),c=n.get("format"),d=a("areaValue"),g=a("valueAsString"),h=a("disabled"),u=!!i("readOnly"),f=!!i("invalid"),m=!!i("required"),P=a("interactive"),C=o.hasTag("dragging"),V=o.hasTag("open"),I=o.hasTag("focused"),b=N=>{var w,k;let O=d.getChannels();return{xChannel:(w=N.xChannel)!=null?w:O[1],yChannel:(k=N.yChannel)!=null?k:O[2]}},y=n.get("currentPlacement"),E=Lt(v(p({},i("positioning")),{placement:y}));function A(N){let O=Yp(N.value).toFormat(n.get("format"));return{value:O,valueAsString:O.toString("hex"),checked:O.isEqual(l),disabled:N.disabled||!P}}return{dragging:C,open:V,valueAsString:g,value:l,inline:!!i("inline"),setOpen(N){i("inline")||o.hasTag("open")===N||r({type:N?"OPEN":"CLOSE"})},setValue(N){r({type:"VALUE.SET",value:Yp(N),src:"set-color"})},getChannelValue(N){return jc(l,N)},getChannelValueText(N,O){return l.formatChannelValue(N,O)},setChannelValue(N,O){let w=l.withChannelValue(N,O);r({type:"VALUE.SET",value:w,src:"set-channel"})},format:n.get("format"),setFormat(N){let O=l.toFormat(N);r({type:"VALUE.SET",value:O,src:"set-format"})},alpha:l.getChannelValue("alpha"),setAlpha(N){let O=l.withChannelValue("alpha",N);r({type:"VALUE.SET",value:O,src:"set-alpha"})},getRootProps(){return t.element(v(p({},ke.root.attrs),{dir:i("dir"),id:r0(s),"data-disabled":S(h),"data-readonly":S(u),"data-invalid":S(f),style:{"--value":l.toString("css")}}))},getLabelProps(){return t.element(v(p({},ke.label.attrs),{dir:i("dir"),id:Xp(s),htmlFor:qc(s),"data-disabled":S(h),"data-readonly":S(u),"data-invalid":S(f),"data-required":S(m),"data-focus":S(I),onClick(N){N.preventDefault();let O=rr(hf(s),"[data-channel=hex]");O==null||O.focus({preventScroll:!0})}}))},getControlProps(){return t.element(v(p({},ke.control.attrs),{id:sf(s),dir:i("dir"),"data-disabled":S(h),"data-readonly":S(u),"data-invalid":S(f),"data-state":V?"open":"closed","data-focus":S(I)}))},getTriggerProps(){return t.button(v(p({},ke.trigger.attrs),{id:lf(s),dir:i("dir"),disabled:h,"aria-label":`select color. current color is ${g}`,"aria-controls":Wc(s),"aria-labelledby":Xp(s),"aria-haspopup":i("inline")?void 0:"dialog","data-disabled":S(h),"data-readonly":S(u),"data-invalid":S(f),"data-placement":y,"aria-expanded":V,"data-state":V?"open":"closed","data-focus":S(I),type:"button",onClick(){P&&r({type:"TRIGGER.CLICK"})},onBlur(){P&&r({type:"TRIGGER.BLUR"})},style:{position:"relative"}}))},getPositionerProps(){return t.element(v(p({},ke.positioner.attrs),{id:cf(s),dir:i("dir"),style:E.floating}))},getContentProps(){return t.element(v(p({},ke.content.attrs),{id:Wc(s),dir:i("dir"),role:i("inline")?void 0:"dialog",tabIndex:-1,"data-placement":y,"data-state":V?"open":"closed",hidden:!V}))},getValueTextProps(){return t.element(v(p({},ke.valueText.attrs),{dir:i("dir"),"data-disabled":S(h),"data-focus":S(I)}))},getAreaProps(N={}){let{xChannel:O,yChannel:w}=b(N),{areaStyles:k}=jp(d,{xChannel:O,yChannel:w,dir:i("dir")});return t.element(v(p({},ke.area.attrs),{id:df(s),role:"group","data-invalid":S(f),"data-disabled":S(h),"data-readonly":S(u),onPointerDown(R){if(!P||!Ee(R)||Fe(R))return;let D=Je(R);r({type:"AREA.POINTER_DOWN",point:D,channel:{xChannel:O,yChannel:w},id:"area"}),R.preventDefault()},style:p({position:"relative",touchAction:"none",forcedColorAdjust:"none"},k)}))},getAreaBackgroundProps(N={}){let{xChannel:O,yChannel:w}=b(N),{areaGradientStyles:k}=jp(d,{xChannel:O,yChannel:w,dir:i("dir")});return t.element(v(p({},ke.areaBackground.attrs),{id:a0(s),"data-invalid":S(f),"data-disabled":S(h),"data-readonly":S(u),style:p({position:"relative",touchAction:"none",forcedColorAdjust:"none"},k)}))},getAreaThumbProps(N={}){let{xChannel:O,yChannel:w}=b(N),k={xChannel:O,yChannel:w},R=d.getChannelValuePercent(O),D=1-d.getChannelValuePercent(w),Z=i("dir")==="rtl"?1-R:R,ue=d.getChannelValue(O),z=d.getChannelValue(w),le=d.withChannelValue("alpha",1).toString("css");return t.element(v(p({},ke.areaThumb.attrs),{id:uf(s),dir:i("dir"),tabIndex:h?void 0:0,"data-disabled":S(h),"data-invalid":S(f),"data-readonly":S(u),role:"slider","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":ue,"aria-label":`${O} and ${w}`,"aria-roledescription":"2d slider","aria-valuetext":`${O} ${ue}, ${w} ${z}`,style:{position:"absolute",left:`${Z*100}%`,top:`${D*100}%`,transform:"translate(-50%, -50%)",touchAction:"none",forcedColorAdjust:"none","--color":le,background:le},onFocus(){P&&r({type:"AREA.FOCUS",id:"area",channel:k})},onKeyDown(he){if(he.defaultPrevented||!P)return;let ae=xn(he),Le={ArrowUp(){r({type:"AREA.ARROW_UP",channel:k,step:ae})},ArrowDown(){r({type:"AREA.ARROW_DOWN",channel:k,step:ae})},ArrowLeft(){r({type:"AREA.ARROW_LEFT",channel:k,step:ae})},ArrowRight(){r({type:"AREA.ARROW_RIGHT",channel:k,step:ae})},PageUp(){r({type:"AREA.PAGE_UP",channel:k,step:ae})},PageDown(){r({type:"AREA.PAGE_DOWN",channel:k,step:ae})},Escape(Gt){Gt.stopPropagation()}}[ve(he,{dir:i("dir")})];Le&&(Le(he),he.preventDefault())}}))},getTransparencyGridProps(N={}){let{size:O="12px"}=N;return t.element(v(p({},ke.transparencyGrid.attrs),{style:{"--size":O,width:"100%",height:"100%",position:"absolute",backgroundColor:"#fff",backgroundImage:"conic-gradient(#eeeeee 0 25%, transparent 0 50%, #eeeeee 0 75%, transparent 0)",backgroundSize:"var(--size) var(--size)",inset:"0px",zIndex:"auto",pointerEvents:"none"}}))},getChannelSliderProps(N){let{orientation:O="horizontal",channel:w,format:k}=N;return t.element(v(p({},ke.channelSlider.attrs),{"data-channel":w,"data-orientation":O,role:"presentation",onPointerDown(R){if(!P||!Ee(R)||Fe(R))return;let D=Je(R);r({type:"CHANNEL_SLIDER.POINTER_DOWN",channel:w,format:k,point:D,id:w,orientation:O}),R.preventDefault()},style:{position:"relative",touchAction:"none"}}))},getChannelSliderTrackProps(N){let{orientation:O="horizontal",channel:w,format:k}=N,R=k?l.toFormat(k):d;return t.element(v(p({},ke.channelSliderTrack.attrs),{id:gf(s,w),role:"group","data-channel":w,"data-orientation":O,style:{position:"relative",forcedColorAdjust:"none",backgroundImage:y0({orientation:O,channel:w,dir:i("dir"),value:R})}}))},getChannelSliderLabelProps(N){let{channel:O}=N;return t.element(v(p({},ke.channelSliderLabel.attrs),{"data-channel":O,onClick(w){var R;if(!P)return;w.preventDefault();let k=Kc(s,O);(R=s.getById(k))==null||R.focus({preventScroll:!0})},style:{userSelect:"none",WebkitUserSelect:"none"}}))},getChannelSliderValueTextProps(N){return t.element(v(p({},ke.channelSliderValueText.attrs),{"data-channel":N.channel}))},getChannelSliderThumbProps(N){let{orientation:O="horizontal",channel:w,format:k}=N,R=k?l.toFormat(k):d,D=R.getChannelRange(w),W=R.getChannelValue(w),Z=(W-D.minValue)/(D.maxValue-D.minValue),ue=i("dir")==="rtl",z=O==="horizontal"&&ue?1-Z:Z,le=O==="horizontal"?{left:`${z*100}%`,top:"50%"}:{top:`${Z*100}%`,left:"50%"};return t.element(v(p({},ke.channelSliderThumb.attrs),{id:Kc(s,w),role:"slider","aria-label":w,tabIndex:h?void 0:0,"data-channel":w,"data-disabled":S(h),"data-orientation":O,"aria-disabled":S(h),"aria-orientation":O,"aria-valuemax":D.maxValue,"aria-valuemin":D.minValue,"aria-valuenow":W,"aria-valuetext":`${w} ${W}`,style:p({forcedColorAdjust:"none",position:"absolute",background:f0(d,w).toString("css")},le),onFocus(){P&&r({type:"CHANNEL_SLIDER.FOCUS",channel:w})},onKeyDown(he){if(he.defaultPrevented||!P)return;let ae=xn(he)*D.step,Le={ArrowUp(){r({type:"CHANNEL_SLIDER.ARROW_UP",channel:w,step:ae})},ArrowDown(){r({type:"CHANNEL_SLIDER.ARROW_DOWN",channel:w,step:ae})},ArrowLeft(){r({type:"CHANNEL_SLIDER.ARROW_LEFT",channel:w,step:ae})},ArrowRight(){r({type:"CHANNEL_SLIDER.ARROW_RIGHT",channel:w,step:ae})},PageUp(){r({type:"CHANNEL_SLIDER.PAGE_UP",channel:w})},PageDown(){r({type:"CHANNEL_SLIDER.PAGE_DOWN",channel:w})},Home(){r({type:"CHANNEL_SLIDER.HOME",channel:w})},End(){r({type:"CHANNEL_SLIDER.END",channel:w})},Escape(Gt){Gt.stopPropagation()}}[ve(he,{dir:i("dir")})];Le&&(Le(he),he.preventDefault())}}))},getChannelInputProps(N){let{channel:O}=N,w=O==="hex"||O==="css",k=m0(l,O);return t.input(v(p({},ke.channelInput.attrs),{dir:i("dir"),type:w?"text":"number","data-channel":O,"aria-label":O,spellCheck:!1,autoComplete:"off",disabled:h,"data-disabled":S(h),"data-invalid":S(f),"data-readonly":S(u),readOnly:u,defaultValue:jc(l,O),min:k==null?void 0:k.minValue,max:k==null?void 0:k.maxValue,step:k==null?void 0:k.step,onBeforeInput(R){if(w||!P)return;R.currentTarget.value.match(/[^0-9.]/g)&&R.preventDefault()},onFocus(R){P&&(r({type:"CHANNEL_INPUT.FOCUS",channel:O}),R.currentTarget.select())},onBlur(R){if(!P)return;let D=w?R.currentTarget.value:R.currentTarget.valueAsNumber;r({type:"CHANNEL_INPUT.BLUR",channel:O,value:D,isTextField:w})},onKeyDown(R){if(!R.defaultPrevented&&P&&R.key==="Enter"){let D=w?R.currentTarget.value:R.currentTarget.valueAsNumber;r({type:"CHANNEL_INPUT.CHANGE",channel:O,value:D,isTextField:w}),R.preventDefault()}},style:{appearance:"none",WebkitAppearance:"none",MozAppearance:"textfield"}}))},getHiddenInputProps(){return t.input({type:"text",disabled:h,name:i("name"),tabIndex:-1,readOnly:u,required:m,id:qc(s),style:dt,defaultValue:g})},getEyeDropperTriggerProps(){return t.button(v(p({},ke.eyeDropperTrigger.attrs),{type:"button",dir:i("dir"),disabled:h,"data-disabled":S(h),"data-invalid":S(f),"data-readonly":S(u),"aria-label":"Pick a color from the screen",onClick(){P&&r({type:"EYEDROPPER.CLICK"})}}))},getSwatchGroupProps(){return t.element(v(p({},ke.swatchGroup.attrs),{role:"group"}))},getSwatchTriggerState:A,getSwatchTriggerProps(N){let O=A(N);return t.button(v(p({},ke.swatchTrigger.attrs),{disabled:O.disabled,dir:i("dir"),type:"button","aria-label":`select ${O.valueAsString} as the color`,"data-state":O.checked?"checked":"unchecked","data-value":O.valueAsString,"data-disabled":S(O.disabled),onClick(){O.disabled||r({type:"SWATCH_TRIGGER.CLICK",value:O.value})},style:{"--color":O.valueAsString,position:"relative"}}))},getSwatchIndicatorProps(N){let O=A(N);return t.element(v(p({},ke.swatchIndicator.attrs),{dir:i("dir"),hidden:!O.checked}))},getSwatchProps(N){let{respectAlpha:O=!0}=N,w=A(N),k=w.value.toString(O?"css":"hex");return t.element(v(p({},ke.swatch.attrs),{dir:i("dir"),"data-state":w.checked?"checked":"unchecked","data-value":w.valueAsString,style:{"--color":k,position:"relative",background:k}}))},getFormatTriggerProps(){return t.button(v(p({},ke.formatTrigger.attrs),{dir:i("dir"),type:"button","aria-label":`change color format to ${Jp(c)}`,onClick(N){if(N.currentTarget.disabled)return;let O=Jp(c);r({type:"FORMAT.SET",format:O,src:"format-trigger"})}}))},getFormatSelectProps(){return t.select(v(p({},ke.formatSelect.attrs),{"aria-label":"change color format",dir:i("dir"),defaultValue:i("format"),disabled:h,onChange(N){let O=S0(N.currentTarget.value);r({type:"FORMAT.SET",format:O,src:"format-select"})}}))}}}function Jp(e){var n;let t=Ms.indexOf(e);return(n=Ms[t+1])!=null?n:Ms[0]}function S0(e){if(E0.test(e))return e;throw new Error(`Unsupported color format: ${e}`)}function C0(e){return P0.test(e)}function I0(e){return e.startsWith("#")?e:C0(e)?`#${e}`:e}function ef(e,t,n){let r=p0(e);$(()=>{r.forEach(i=>{let a=i.dataset.channel;Be(i,jc(n||t,a))})})}function V0(e,t){let n=l0(e);n&&$(()=>Be(n,t))}function tf(e,t){if(t===void 0)return;let n=e.querySelector('[data-scope="color-picker"][data-part="hidden-input"]');n&&(n.value=t,n.dispatchEvent(new Event("input",{bubbles:!0})),n.dispatchEvent(new Event("change",{bubbles:!0})))}function nf(e){let t=x(e,"defaultValue");return{defaultValue:t?Jc(t):void 0}}var FT,ke,_T,$T,rt,HT,BT,GT,UT,qT,WT,KT,jT,zT,YT,zc,XT,ZT,JT,rf,Yc,QT,af,Xc,e0,of,Zc,t0,n0,zp,pr,Yp,r0,Xp,qc,sf,lf,Wc,cf,i0,df,a0,uf,gf,Kc,Ls,o0,s0,l0,Zp,c0,d0,hf,Uc,u0,g0,h0,p0,y0,Ms,E0,Jc,P0,T0,w0,Qp,O0,x0,A0,ff=ne(()=>{"use strict";$r();gr();gn();hr();Nt();Ce();se();FT=j("color-picker",["root","label","control","trigger","positioner","content","area","areaThumb","valueText","areaBackground","channelSlider","channelSliderLabel","channelSliderTrack","channelSliderThumb","channelSliderValueText","channelInput","transparencyGrid","swatchGroup","swatchTrigger","swatchIndicator","swatch","eyeDropperTrigger","formatTrigger","formatSelect"]),ke=FT.build(),_T=Object.defineProperty,$T=(e,t,n)=>t in e?_T(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,rt=(e,t,n)=>$T(e,typeof t!="symbol"?t+"":t,n),HT=(e,t,n)=>{let r=`linear-gradient(to ${e[+!t]}, transparent, #000)`;return{areaStyles:{backgroundImage:`linear-gradient(to ${e[Number(t)]},rgb(${n},0,0),rgb(${n},255,0))`},areaGradientStyles:{backgroundImage:`linear-gradient(to ${e[Number(t)]},rgb(${n},0,255),rgb(${n},255,255))`,WebkitMaskImage:r,maskImage:r}}},BT=(e,t,n)=>{let r=`linear-gradient(to ${e[+!t]}, transparent, #000)`;return{areaStyles:{backgroundImage:`linear-gradient(to ${e[Number(t)]},rgb(0,${n},0),rgb(255,${n},0))`},areaGradientStyles:{backgroundImage:`linear-gradient(to ${e[Number(t)]},rgb(0,${n},255),rgb(255,${n},255))`,WebkitMaskImage:r,maskImage:r}}},GT=(e,t,n)=>{let r=`linear-gradient(to ${e[+!t]}, transparent, #000)`;return{areaStyles:{backgroundImage:`linear-gradient(to ${e[Number(t)]},rgb(0,0,${n}),rgb(255,0,${n}))`},areaGradientStyles:{backgroundImage:`linear-gradient(to ${e[Number(t)]},rgb(0,255,${n}),rgb(255,255,${n}))`,WebkitMaskImage:r,maskImage:r}}},UT=(e,t,n)=>({areaStyles:{},areaGradientStyles:{background:[`linear-gradient(to ${e[Number(t)]}, hsla(0,0%,0%,1) 0%, hsla(0,0%,0%,0) 50%, hsla(0,0%,100%,0) 50%, hsla(0,0%,100%,1) 100%)`,`linear-gradient(to ${e[+!t]},hsl(0,0%,50%),hsla(0,0%,50%,0))`,`hsl(${n}, 100%, 50%)`].join(",")}}),qT=(e,t,n)=>({areaStyles:{},areaGradientStyles:{background:[`linear-gradient(to ${e[+!t]}, hsla(0,0%,0%,${n}) 0%, hsla(0,0%,0%,0) 50%, hsla(0,0%,100%,0) 50%, hsla(0,0%,100%,${n}) 100%)`,`linear-gradient(to ${e[Number(t)]},hsla(0,100%,50%,${n}),hsla(60,100%,50%,${n}),hsla(120,100%,50%,${n}),hsla(180,100%,50%,${n}),hsla(240,100%,50%,${n}),hsla(300,100%,50%,${n}),hsla(359,100%,50%,${n}))`,"hsl(0, 0%, 50%)"].join(",")}}),WT=(e,t,n)=>({areaStyles:{},areaGradientStyles:{backgroundImage:[`linear-gradient(to ${e[+!t]},hsl(0,0%,${n}%),hsla(0,0%,${n}%,0))`,`linear-gradient(to ${e[Number(t)]},hsl(0,100%,${n}%),hsl(60,100%,${n}%),hsl(120,100%,${n}%),hsl(180,100%,${n}%),hsl(240,100%,${n}%),hsl(300,100%,${n}%),hsl(360,100%,${n}%))`].join(",")}}),KT=(e,t,n)=>({areaStyles:{},areaGradientStyles:{background:[`linear-gradient(to ${e[Number(t)]},hsl(0,0%,0%),hsla(0,0%,0%,0))`,`linear-gradient(to ${e[+!t]},hsl(0,0%,100%),hsla(0,0%,100%,0))`,`hsl(${n}, 100%, 50%)`].join(",")}}),jT=(e,t,n)=>({areaStyles:{},areaGradientStyles:{background:[`linear-gradient(to ${e[+!t]},hsla(0,0%,0%,${n}),hsla(0,0%,0%,0))`,`linear-gradient(to ${e[Number(t)]},hsla(0,100%,50%,${n}),hsla(60,100%,50%,${n}),hsla(120,100%,50%,${n}),hsla(180,100%,50%,${n}),hsla(240,100%,50%,${n}),hsla(300,100%,50%,${n}),hsla(359,100%,50%,${n}))`,`linear-gradient(to ${e[+!t]},hsl(0,0%,0%),hsl(0,0%,100%))`].join(",")}}),zT=(e,t,n)=>({areaStyles:{},areaGradientStyles:{background:[`linear-gradient(to ${e[+!t]},hsla(0,0%,100%,${n}),hsla(0,0%,100%,0))`,`linear-gradient(to ${e[Number(t)]},hsla(0,100%,50%,${n}),hsla(60,100%,50%,${n}),hsla(120,100%,50%,${n}),hsla(180,100%,50%,${n}),hsla(240,100%,50%,${n}),hsla(300,100%,50%,${n}),hsla(359,100%,50%,${n}))`,"#000"].join(",")}});YT=(e,t)=>{if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0},zc=class{toHexInt(){return this.toFormat("rgba").toHexInt()}getChannelValue(e){if(e in this)return this[e];throw new Error("Unsupported color channel: "+e)}getChannelValuePercent(e,t){let n=t!=null?t:this.getChannelValue(e),{minValue:r,maxValue:i}=this.getChannelRange(e);return eh(n,r,i)}getChannelPercentValue(e,t){let{minValue:n,maxValue:r,step:i}=this.getChannelRange(e),a=th(t,n,r,i);return ba(a,n,r,i)}withChannelValue(e,t){let{minValue:n,maxValue:r}=this.getChannelRange(e);if(e in this){let i=this.clone();return i[e]=Oe(t,n,r),i}throw new Error("Unsupported color channel: "+e)}getColorAxes(e){let{xChannel:t,yChannel:n}=e,r=t||this.getChannels().find(o=>o!==n),i=n||this.getChannels().find(o=>o!==r),a=this.getChannels().find(o=>o!==r&&o!==i);return{xChannel:r,yChannel:i,zChannel:a}}incrementChannel(e,t){let{minValue:n,maxValue:r,step:i}=this.getChannelRange(e),a=ba(Oe(this.getChannelValue(e)+t,n,r),n,r,i);return this.withChannelValue(e,a)}decrementChannel(e,t){return this.incrementChannel(e,-t)}isEqual(e){return YT(this.toJSON(),e.toJSON())&&this.getChannelValue("alpha")===e.getChannelValue("alpha")}},XT=/^#[\da-f]+$/i,ZT=/^rgba?\((.*)\)$/,JT=/[^#]/gi,rf=class ks extends zc{constructor(t,n,r,i){super(),rt(this,"red",t),rt(this,"green",n),rt(this,"blue",r),rt(this,"alpha",i)}static parse(t){var i;let n=[];if(XT.test(t)&&[4,5,7,9].includes(t.length)){let a=(t.length<6?t.replace(JT,"$&$&"):t).slice(1).split("");for(;a.length>0;)n.push(parseInt(a.splice(0,2).join(""),16));n[3]=n[3]!==void 0?n[3]/255:void 0}let r=t.match(ZT);return r!=null&&r[1]&&(n=r[1].split(",").map(a=>Number(a.trim())).map((a,o)=>Oe(a,0,o<3?255:1))),n.length<3?void 0:new ks(n[0],n[1],n[2],(i=n[3])!=null?i:1)}toString(t="css"){switch(t){case"hex":return"#"+(this.red.toString(16).padStart(2,"0")+this.green.toString(16).padStart(2,"0")+this.blue.toString(16).padStart(2,"0")).toUpperCase();case"hexa":return"#"+(this.red.toString(16).padStart(2,"0")+this.green.toString(16).padStart(2,"0")+this.blue.toString(16).padStart(2,"0")+Math.round(this.alpha*255).toString(16).padStart(2,"0")).toUpperCase();case"rgb":return`rgb(${this.red}, ${this.green}, ${this.blue})`;case"css":case"rgba":return`rgba(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`;case"hsl":return this.toHSL().toString("hsl");case"hsb":return this.toHSB().toString("hsb");default:return this.toFormat(t).toString(t)}}toFormat(t){switch(t){case"rgba":return this;case"hsba":return this.toHSB();case"hsla":return this.toHSL();default:throw new Error("Unsupported color conversion: rgb -> "+t)}}toHexInt(){return this.red<<16|this.green<<8|this.blue}toHSB(){let t=this.red/255,n=this.green/255,r=this.blue/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=a-i,s=a===0?0:o/a,l=0;if(o!==0){switch(a){case t:l=(n-r)/o+(nNumber(l.trim().replace("%","")));return new Ns(lc(i,360),Oe(a,0,100),Oe(o,0,100),Oe(s!=null?s:1,0,1))}}toString(t="css"){switch(t){case"hex":return this.toRGB().toString("hex");case"hexa":return this.toRGB().toString("hexa");case"hsl":return`hsl(${this.hue}, ${Ve(this.saturation,2)}%, ${Ve(this.lightness,2)}%)`;case"css":case"hsla":return`hsla(${this.hue}, ${Ve(this.saturation,2)}%, ${Ve(this.lightness,2)}%, ${this.alpha})`;case"hsb":return this.toHSB().toString("hsb");case"rgb":return this.toRGB().toString("rgb");default:return this.toFormat(t).toString(t)}}toFormat(t){switch(t){case"hsla":return this;case"hsba":return this.toHSB();case"rgba":return this.toRGB();default:throw new Error("Unsupported color conversion: hsl -> "+t)}}toHSB(){let t=this.saturation/100,n=this.lightness/100,r=n+t*Math.min(n,1-n);return t=r===0?0:2*(1-n/r),new Zc(Ve(this.hue,2),Ve(t*100,2),Ve(r*100,2),Ve(this.alpha,2))}toRGB(){let t=this.hue,n=this.saturation/100,r=this.lightness/100,i=n*Math.min(r,1-r),a=(o,s=(o+t/30)%12)=>r-i*Math.max(Math.min(s-3,9-s,1),-1);return new Yc(Math.round(a(0)*255),Math.round(a(8)*255),Math.round(a(4)*255),Ve(this.alpha,2))}clone(){return new Ns(this.hue,this.saturation,this.lightness,this.alpha)}getChannelFormatOptions(t){switch(t){case"hue":return{style:"unit",unit:"degree",unitDisplay:"narrow"};case"saturation":case"lightness":case"alpha":return{style:"percent"};default:throw new Error("Unknown color channel: "+t)}}formatChannelValue(t,n){let r=this.getChannelFormatOptions(t),i=this.getChannelValue(t);return(t==="saturation"||t==="lightness")&&(i/=100),new Intl.NumberFormat(n,r).format(i)}getChannelRange(t){switch(t){case"hue":return{minValue:0,maxValue:360,step:1,pageSize:15};case"saturation":case"lightness":return{minValue:0,maxValue:100,step:1,pageSize:10};case"alpha":return{minValue:0,maxValue:1,step:.01,pageSize:.1};default:throw new Error("Unknown color channel: "+t)}}toJSON(){return{h:this.hue,s:this.saturation,l:this.lightness,a:this.alpha}}getFormat(){return"hsla"}getChannels(){return Ns.colorChannels}};rt(af,"colorChannels",["hue","saturation","lightness"]);Xc=af,e0=/hsb\(([-+]?\d+(?:.\d+)?\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d+(?:.\d+)?%)\)|hsba\(([-+]?\d+(?:.\d+)?\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d+(?:.\d+)?%\s*,\s*[-+]?\d(.\d+)?)\)/,of=class Ds extends zc{constructor(t,n,r,i){super(),rt(this,"hue",t),rt(this,"saturation",n),rt(this,"brightness",r),rt(this,"alpha",i)}static parse(t){var r;let n;if(n=t.match(e0)){let[i,a,o,s]=((r=n[1])!=null?r:n[2]).split(",").map(l=>Number(l.trim().replace("%","")));return new Ds(lc(i,360),Oe(a,0,100),Oe(o,0,100),Oe(s!=null?s:1,0,1))}}toString(t="css"){switch(t){case"css":return this.toHSL().toString("css");case"hex":return this.toRGB().toString("hex");case"hexa":return this.toRGB().toString("hexa");case"hsb":return`hsb(${this.hue}, ${Ve(this.saturation,2)}%, ${Ve(this.brightness,2)}%)`;case"hsba":return`hsba(${this.hue}, ${Ve(this.saturation,2)}%, ${Ve(this.brightness,2)}%, ${this.alpha})`;case"hsl":return this.toHSL().toString("hsl");case"rgb":return this.toRGB().toString("rgb");default:return this.toFormat(t).toString(t)}}toFormat(t){switch(t){case"hsba":return this;case"hsla":return this.toHSL();case"rgba":return this.toRGB();default:throw new Error("Unsupported color conversion: hsb -> "+t)}}toHSL(){let t=this.saturation/100,n=this.brightness/100,r=n*(1-t/2);return t=r===0||r===1?0:(n-r)/Math.min(r,1-r),new Xc(Ve(this.hue,2),Ve(t*100,2),Ve(r*100,2),Ve(this.alpha,2))}toRGB(){let t=this.hue,n=this.saturation/100,r=this.brightness/100,i=(a,o=(a+t/60)%6)=>r-n*r*Math.max(Math.min(o,4-o,1),0);return new Yc(Math.round(i(5)*255),Math.round(i(3)*255),Math.round(i(1)*255),Ve(this.alpha,2))}clone(){return new Ds(this.hue,this.saturation,this.brightness,this.alpha)}getChannelFormatOptions(t){switch(t){case"hue":return{style:"unit",unit:"degree",unitDisplay:"narrow"};case"saturation":case"brightness":case"alpha":return{style:"percent"};default:throw new Error("Unknown color channel: "+t)}}formatChannelValue(t,n){let r=this.getChannelFormatOptions(t),i=this.getChannelValue(t);return(t==="saturation"||t==="brightness")&&(i/=100),new Intl.NumberFormat(n,r).format(i)}getChannelRange(t){switch(t){case"hue":return{minValue:0,maxValue:360,step:1,pageSize:15};case"saturation":case"brightness":return{minValue:0,maxValue:100,step:1,pageSize:10};case"alpha":return{minValue:0,maxValue:1,step:.01,pageSize:.1};default:throw new Error("Unknown color channel: "+t)}}toJSON(){return{h:this.hue,s:this.saturation,b:this.brightness,a:this.alpha}}getFormat(){return"hsba"}getChannels(){return Ds.colorChannels}};rt(of,"colorChannels",["hue","saturation","brightness"]);Zc=of,t0="aliceblue:f0f8ff,antiquewhite:faebd7,aqua:00ffff,aquamarine:7fffd4,azure:f0ffff,beige:f5f5dc,bisque:ffe4c4,black:000000,blanchedalmond:ffebcd,blue:0000ff,blueviolet:8a2be2,brown:a52a2a,burlywood:deb887,cadetblue:5f9ea0,chartreuse:7fff00,chocolate:d2691e,coral:ff7f50,cornflowerblue:6495ed,cornsilk:fff8dc,crimson:dc143c,cyan:00ffff,darkblue:00008b,darkcyan:008b8b,darkgoldenrod:b8860b,darkgray:a9a9a9,darkgreen:006400,darkkhaki:bdb76b,darkmagenta:8b008b,darkolivegreen:556b2f,darkorange:ff8c00,darkorchid:9932cc,darkred:8b0000,darksalmon:e9967a,darkseagreen:8fbc8f,darkslateblue:483d8b,darkslategray:2f4f4f,darkturquoise:00ced1,darkviolet:9400d3,deeppink:ff1493,deepskyblue:00bfff,dimgray:696969,dodgerblue:1e90ff,firebrick:b22222,floralwhite:fffaf0,forestgreen:228b22,fuchsia:ff00ff,gainsboro:dcdcdc,ghostwhite:f8f8ff,gold:ffd700,goldenrod:daa520,gray:808080,green:008000,greenyellow:adff2f,honeydew:f0fff0,hotpink:ff69b4,indianred:cd5c5c,indigo:4b0082,ivory:fffff0,khaki:f0e68c,lavender:e6e6fa,lavenderblush:fff0f5,lawngreen:7cfc00,lemonchiffon:fffacd,lightblue:add8e6,lightcoral:f08080,lightcyan:e0ffff,lightgoldenrodyellow:fafad2,lightgrey:d3d3d3,lightgreen:90ee90,lightpink:ffb6c1,lightsalmon:ffa07a,lightseagreen:20b2aa,lightskyblue:87cefa,lightslategray:778899,lightsteelblue:b0c4de,lightyellow:ffffe0,lime:00ff00,limegreen:32cd32,linen:faf0e6,magenta:ff00ff,maroon:800000,mediumaquamarine:66cdaa,mediumblue:0000cd,mediumorchid:ba55d3,mediumpurple:9370d8,mediumseagreen:3cb371,mediumslateblue:7b68ee,mediumspringgreen:00fa9a,mediumturquoise:48d1cc,mediumvioletred:c71585,midnightblue:191970,mintcream:f5fffa,mistyrose:ffe4e1,moccasin:ffe4b5,navajowhite:ffdead,navy:000080,oldlace:fdf5e6,olive:808000,olivedrab:6b8e23,orange:ffa500,orangered:ff4500,orchid:da70d6,palegoldenrod:eee8aa,palegreen:98fb98,paleturquoise:afeeee,palevioletred:d87093,papayawhip:ffefd5,peachpuff:ffdab9,peru:cd853f,pink:ffc0cb,plum:dda0dd,powderblue:b0e0e6,purple:800080,rebeccapurple:663399,red:ff0000,rosybrown:bc8f8f,royalblue:4169e1,saddlebrown:8b4513,salmon:fa8072,sandybrown:f4a460,seagreen:2e8b57,seashell:fff5ee,sienna:a0522d,silver:c0c0c0,skyblue:87ceeb,slateblue:6a5acd,slategray:708090,snow:fffafa,springgreen:00ff7f,steelblue:4682b4,tan:d2b48c,teal:008080,thistle:d8bfd8,tomato:ff6347,turquoise:40e0d0,violet:ee82ee,wheat:f5deb3,white:ffffff,whitesmoke:f5f5f5,yellow:ffff00,yellowgreen:9acd32",n0=e=>{let t=new Map,n=e.split(",");for(let r=0;r{var n;if(zp.has(e))return pr(zp.get(e));let t=Yc.parse(e)||Zc.parse(e)||Xc.parse(e);if(!t){let r=new Error("Invalid color value: "+e);throw(n=Error.captureStackTrace)==null||n.call(Error,r,pr),r}return t},Yp=e=>typeof e=="string"?pr(e):e,r0=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`color-picker:${e.id}`},Xp=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`color-picker:${e.id}:label`},qc=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.hiddenInput)!=null?n:`color-picker:${e.id}:hidden-input`},sf=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.control)!=null?n:`color-picker:${e.id}:control`},lf=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.trigger)!=null?n:`color-picker:${e.id}:trigger`},Wc=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.content)!=null?n:`color-picker:${e.id}:content`},cf=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.positioner)!=null?n:`color-picker:${e.id}:positioner`},i0=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.formatSelect)!=null?n:`color-picker:${e.id}:format-select`},df=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.area)!=null?n:`color-picker:${e.id}:area`},a0=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.areaGradient)!=null?n:`color-picker:${e.id}:area-gradient`},uf=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.areaThumb)!=null?n:`color-picker:${e.id}:area-thumb`},gf=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.channelSliderTrack)==null?void 0:r.call(n,t))!=null?i:`color-picker:${e.id}:slider-track:${t}`},Kc=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.channelSliderThumb)==null?void 0:r.call(n,t))!=null?i:`color-picker:${e.id}:slider-thumb:${t}`},Ls=e=>e.getById(Wc(e)),o0=e=>e.getById(uf(e)),s0=(e,t)=>e.getById(Kc(e,t)),l0=e=>e.getById(i0(e)),Zp=e=>e.getById(qc(e)),c0=e=>e.getById(df(e)),d0=(e,t,n)=>{let r=c0(e);if(!r)return;let{getPercentValue:i}=Ei(t,r);return{x:i({dir:n,orientation:"horizontal"}),y:i({orientation:"vertical"})}},hf=e=>e.getById(sf(e)),Uc=e=>e.getById(lf(e)),u0=e=>e.getById(cf(e)),g0=(e,t)=>e.getById(gf(e,t)),h0=(e,t,n,r)=>{let i=g0(e,n);if(!i)return;let{getPercentValue:a}=Ei(t,i);return{x:a({dir:r,orientation:"horizontal"}),y:a({orientation:"vertical"})}},p0=e=>[...xe(Ls(e),"input[data-channel]"),...xe(hf(e),"input[data-channel]")];y0=e=>{let{channel:t,value:n,dir:r,orientation:i}=e,a=v0(i,r),{minValue:o,maxValue:s}=n.getChannelRange(t);switch(t){case"hue":return`linear-gradient(to ${a}, rgb(255, 0, 0) 0%, rgb(255, 255, 0) 17%, rgb(0, 255, 0) 33%, rgb(0, 255, 255) 50%, rgb(0, 0, 255) 67%, rgb(255, 0, 255) 83%, rgb(255, 0, 0) 100%)`;case"lightness":{let l=n.withChannelValue(t,o).toString("css"),c=n.withChannelValue(t,(s-o)/2).toString("css"),d=n.withChannelValue(t,s).toString("css");return`linear-gradient(to ${a}, ${l}, ${c}, ${d})`}case"saturation":case"brightness":case"red":case"green":case"blue":case"alpha":{let l=n.withChannelValue(t,o).toString("css"),c=n.withChannelValue(t,s).toString("css");return`linear-gradient(to ${a}, ${l}, ${c})`}default:throw new Error("Unknown color channel: "+t)}};Ms=["hsba","hsla","rgba"],E0=new RegExp(`^(${Ms.join("|")})$`);Jc=e=>pr(e),P0=/^[0-9a-fA-F]{3,8}$/;({and:T0}=Te()),w0=e=>{var n;let t="";for(let r in e)t+=`${r}:${(n=e[r])!=null?n:""};`;return t},Qp=Jc("#000000"),O0=te({props({props:e}){var n,r;let t=(r=(n=e.value)!=null?n:e.defaultValue)!=null?r:Qp;return v(p({dir:"ltr",defaultValue:Qp,defaultFormat:t.getFormat(),openAutoFocus:!0},e),{positioning:p({placement:"bottom"},e.positioning)})},initialState({prop:e}){return e("open")||e("defaultOpen")||e("inline")?"open":"idle"},context({prop:e,bindable:t,getContext:n}){return{value:t(()=>{var r,i,a;return{defaultValue:e("defaultValue").toFormat((r=e("format"))!=null?r:e("defaultFormat")),value:(a=e("value"))==null?void 0:a.toFormat((i=e("format"))!=null?i:e("defaultFormat")),isEqual(o,s){return s!=null&&o.isEqual(s)},hash(o){return w0(o.toJSON())},onChange(o){var c;let l=n().get("format");(c=e("onValueChange"))==null||c({value:o,valueAsString:o.toString(l)})}}}),format:t(()=>({defaultValue:e("defaultFormat"),value:e("format"),onChange(r){var i;(i=e("onFormatChange"))==null||i({format:r})}})),activeId:t(()=>({defaultValue:null})),activeChannel:t(()=>({defaultValue:null})),activeOrientation:t(()=>({defaultValue:null})),fieldsetDisabled:t(()=>({defaultValue:!1})),restoreFocus:t(()=>({defaultValue:!0})),currentPlacement:t(()=>({defaultValue:void 0}))}},computed:{rtl:({prop:e})=>e("dir")==="rtl",disabled:({prop:e,context:t})=>!!e("disabled")||t.get("fieldsetDisabled"),interactive:({prop:e})=>!(e("disabled")||e("readOnly")),valueAsString:({context:e})=>e.get("value").toString(e.get("format")),areaValue:({context:e})=>{let t=e.get("format").startsWith("hsl")?"hsla":"hsba";return e.get("value").toFormat(t)}},effects:["trackFormControl"],watch({prop:e,context:t,action:n,track:r}){r([()=>t.hash("value")],()=>{n(["syncInputElements","dispatchChangeEvent"])}),r([()=>t.get("format")],()=>{n(["syncFormatSelectElement","syncValueWithFormat"])}),r([()=>e("open")],()=>{n(["toggleVisibility"])})},on:{"VALUE.SET":{actions:["setValue"]},"FORMAT.SET":{actions:["setFormat"]},"CHANNEL_INPUT.CHANGE":{actions:["setChannelColorFromInput"]},"EYEDROPPER.CLICK":{actions:["openEyeDropper"]},"SWATCH_TRIGGER.CLICK":{actions:["setValue"]}},states:{idle:{tags:["closed"],on:{"CONTROLLED.OPEN":{target:"open",actions:["setInitialFocus"]},OPEN:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["invokeOnOpen","setInitialFocus"]}],"TRIGGER.CLICK":[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["invokeOnOpen","setInitialFocus"]}],"CHANNEL_INPUT.FOCUS":{target:"focused",actions:["setActiveChannel"]}}},focused:{id:"color-picker-focused",tags:["closed","focused"],on:{"CONTROLLED.OPEN":{target:"open",actions:["setInitialFocus"]},OPEN:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["invokeOnOpen","setInitialFocus"]}],"TRIGGER.CLICK":[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["invokeOnOpen","setInitialFocus"]}],"CHANNEL_INPUT.FOCUS":{actions:["setActiveChannel"]},"CHANNEL_INPUT.BLUR":{target:"idle",actions:["setChannelColorFromInput"]},"TRIGGER.BLUR":{target:"idle"}}},open:{tags:["open"],effects:["trackPositioning","trackDismissableElement"],initial:"idle",on:{"CONTROLLED.CLOSE":[{guard:"shouldRestoreFocus",target:"focused",actions:["setReturnFocus"]},{target:"idle"}],INTERACT_OUTSIDE:[{guard:"isOpenControlled",actions:["invokeOnClose"]},{guard:"shouldRestoreFocus",target:"focused",actions:["invokeOnClose","setReturnFocus"]},{target:"idle",actions:["invokeOnClose"]}],CLOSE:[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"idle",actions:["invokeOnClose"]}]},states:{idle:{on:{"TRIGGER.CLICK":[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"#color-picker-focused",actions:["invokeOnClose"]}],"AREA.POINTER_DOWN":{target:"dragging",actions:["setActiveChannel","setAreaColorFromPoint","focusAreaThumb"]},"AREA.FOCUS":{actions:["setActiveChannel"]},"CHANNEL_SLIDER.POINTER_DOWN":{target:"dragging",actions:["setActiveChannel","setChannelColorFromPoint","focusChannelThumb"]},"CHANNEL_SLIDER.FOCUS":{actions:["setActiveChannel"]},"AREA.ARROW_LEFT":{actions:["decrementAreaXChannel"]},"AREA.ARROW_RIGHT":{actions:["incrementAreaXChannel"]},"AREA.ARROW_UP":{actions:["incrementAreaYChannel"]},"AREA.ARROW_DOWN":{actions:["decrementAreaYChannel"]},"AREA.PAGE_UP":{actions:["incrementAreaXChannel"]},"AREA.PAGE_DOWN":{actions:["decrementAreaXChannel"]},"CHANNEL_SLIDER.ARROW_LEFT":{actions:["decrementChannel"]},"CHANNEL_SLIDER.ARROW_RIGHT":{actions:["incrementChannel"]},"CHANNEL_SLIDER.ARROW_UP":{actions:["incrementChannel"]},"CHANNEL_SLIDER.ARROW_DOWN":{actions:["decrementChannel"]},"CHANNEL_SLIDER.PAGE_UP":{actions:["incrementChannel"]},"CHANNEL_SLIDER.PAGE_DOWN":{actions:["decrementChannel"]},"CHANNEL_SLIDER.HOME":{actions:["setChannelToMin"]},"CHANNEL_SLIDER.END":{actions:["setChannelToMax"]},"CHANNEL_INPUT.BLUR":{actions:["setChannelColorFromInput"]},"SWATCH_TRIGGER.CLICK":[{guard:T0("isOpenControlled","closeOnSelect"),actions:["setValue","invokeOnClose"]},{guard:"closeOnSelect",target:"focused",actions:["setValue","invokeOnClose","setReturnFocus"]},{actions:["setValue"]}]}},dragging:{tags:["dragging"],exit:["clearActiveChannel"],effects:["trackPointerMove","disableTextSelection"],on:{"AREA.POINTER_MOVE":{actions:["setAreaColorFromPoint","focusAreaThumb"]},"AREA.POINTER_UP":{target:"idle",actions:["invokeOnChangeEnd"]},"CHANNEL_SLIDER.POINTER_MOVE":{actions:["setChannelColorFromPoint","focusChannelThumb"]},"CHANNEL_SLIDER.POINTER_UP":{target:"idle",actions:["invokeOnChangeEnd"]}}}}}},implementations:{guards:{closeOnSelect:({prop:e})=>!!e("closeOnSelect"),isOpenControlled:({prop:e})=>e("open")!=null||!!e("inline"),shouldRestoreFocus:({context:e})=>!!e.get("restoreFocus")},effects:{trackPositioning({context:e,prop:t,scope:n}){var a;if(t("inline"))return;e.get("currentPlacement")||e.set("currentPlacement",(a=t("positioning"))==null?void 0:a.placement);let r=Uc(n);return ze(r,()=>u0(n),v(p({},t("positioning")),{defer:!0,onComplete(o){e.set("currentPlacement",o.placement)}}))},trackDismissableElement({context:e,scope:t,prop:n,send:r}){return n("inline")?void 0:Mt(()=>Ls(t),{type:"popover",exclude:Uc(t),defer:!0,onInteractOutside(a){var o;(o=n("onInteractOutside"))==null||o(a),!a.defaultPrevented&&e.set("restoreFocus",!(a.detail.focusable||a.detail.contextmenu))},onPointerDownOutside:n("onPointerDownOutside"),onFocusOutside:n("onFocusOutside"),onDismiss(){r({type:"INTERACT_OUTSIDE"})}})},trackFormControl({context:e,scope:t,send:n}){let r=Zp(t);return Rt(r,{onFieldsetDisabledChange(i){e.set("fieldsetDisabled",i)},onFormReset(){n({type:"VALUE.SET",value:e.initial("value"),src:"form.reset"})}})},trackPointerMove({context:e,scope:t,event:n,send:r}){return an(t.getDoc(),{onPointerMove({point:i}){var o;let a=e.get("activeId")==="area"?"AREA.POINTER_MOVE":"CHANNEL_SLIDER.POINTER_MOVE";r({type:a,point:i,format:n.format,orientation:(o=e.get("activeOrientation"))!=null?o:void 0})},onPointerUp(){let i=e.get("activeId")==="area"?"AREA.POINTER_UP":"CHANNEL_SLIDER.POINTER_UP";r({type:i})}})},disableTextSelection({scope:e}){return ma({doc:e.getDoc(),target:Ls(e)})}},actions:{openEyeDropper({scope:e,context:t}){let n=e.getWin();if(!("EyeDropper"in n))return;new n.EyeDropper().open().then(({sRGBHex:a})=>{let o=t.get("value").getFormat(),s=pr(a).toFormat(o);t.set("value",s)}).catch(()=>{})},setActiveChannel({context:e,event:t}){e.set("activeId",t.id),t.channel&&e.set("activeChannel",t.channel),t.orientation&&e.set("activeOrientation",t.orientation)},clearActiveChannel({context:e}){e.set("activeChannel",null),e.set("activeId",null),e.set("activeOrientation",null)},setAreaColorFromPoint({context:e,event:t,computed:n,scope:r,prop:i}){let a=t.format?e.get("value").toFormat(t.format):n("areaValue"),{xChannel:o,yChannel:s}=t.channel||e.get("activeChannel"),l=d0(r,t.point,i("dir"));if(!l)return;let c=a.getChannelPercentValue(o,l.x),d=a.getChannelPercentValue(s,1-l.y),g=a.withChannelValue(o,c).withChannelValue(s,d);e.set("value",g)},setChannelColorFromPoint({context:e,event:t,computed:n,scope:r,prop:i}){let a=t.channel||e.get("activeId"),o=t.format?e.get("value").toFormat(t.format):n("areaValue"),s=h0(r,t.point,a,i("dir"));if(!s)return;let c=(t.orientation||e.get("activeOrientation")||"horizontal")==="horizontal"?s.x:s.y,d=o.getChannelPercentValue(a,c),g=o.withChannelValue(a,d);e.set("value",g)},setValue({context:e,event:t}){let n=e.get("format");e.set("value",t.value.toFormat(n))},setFormat({context:e,event:t}){e.set("format",t.format)},dispatchChangeEvent({scope:e,computed:t}){Fo(Zp(e),{value:t("valueAsString")})},syncInputElements({context:e,scope:t}){ef(t,e.get("value"))},invokeOnChangeEnd({context:e,prop:t,computed:n}){var r;(r=t("onValueChangeEnd"))==null||r({value:e.get("value"),valueAsString:n("valueAsString")})},setChannelColorFromInput({context:e,event:t,scope:n,prop:r}){var c;let{channel:i,isTextField:a,value:o}=t,s=e.get("value").getChannelValue("alpha"),l;if(i==="alpha"){let d=parseFloat(o);d=Number.isNaN(d)?s:d,l=e.get("value").withChannelValue("alpha",d)}else if(a)l=$l(()=>{let d=i==="hex"?I0(o):o;return Jc(d).withChannelValue("alpha",s)},()=>e.get("value"));else{let d=e.get("value").toFormat(e.get("format")),g=Number.isNaN(o)?d.getChannelValue(i):o;l=d.withChannelValue(i,g)}ef(n,e.get("value"),l),e.set("value",l),(c=r("onValueChangeEnd"))==null||c({value:l,valueAsString:l.toString(e.get("format"))})},incrementChannel({context:e,event:t}){let n=e.get("value").incrementChannel(t.channel,t.step);e.set("value",n)},decrementChannel({context:e,event:t}){let n=e.get("value").decrementChannel(t.channel,t.step);e.set("value",n)},incrementAreaXChannel({context:e,event:t,computed:n}){let{xChannel:r}=t.channel,i=n("areaValue").incrementChannel(r,t.step);e.set("value",i)},decrementAreaXChannel({context:e,event:t,computed:n}){let{xChannel:r}=t.channel,i=n("areaValue").decrementChannel(r,t.step);e.set("value",i)},incrementAreaYChannel({context:e,event:t,computed:n}){let{yChannel:r}=t.channel,i=n("areaValue").incrementChannel(r,t.step);e.set("value",i)},decrementAreaYChannel({context:e,event:t,computed:n}){let{yChannel:r}=t.channel,i=n("areaValue").decrementChannel(r,t.step);e.set("value",i)},setChannelToMax({context:e,event:t}){let n=e.get("value"),r=n.getChannelRange(t.channel),i=n.withChannelValue(t.channel,r.maxValue);e.set("value",i)},setChannelToMin({context:e,event:t}){let n=e.get("value"),r=n.getChannelRange(t.channel),i=n.withChannelValue(t.channel,r.minValue);e.set("value",i)},focusAreaThumb({scope:e}){$(()=>{var t;(t=o0(e))==null||t.focus({preventScroll:!0})})},focusChannelThumb({event:e,scope:t}){$(()=>{var n;(n=s0(t,e.channel))==null||n.focus({preventScroll:!0})})},setInitialFocus({prop:e,scope:t}){e("openAutoFocus")&&$(()=>{let n=nr({root:Ls(t),getInitialEl:e("initialFocusEl")});n==null||n.focus({preventScroll:!0})})},setReturnFocus({scope:e}){$(()=>{var t;(t=Uc(e))==null||t.focus({preventScroll:!0})})},syncFormatSelectElement({context:e,scope:t}){V0(t,e.get("format"))},syncValueWithFormat({context:e}){let t=e.get("value"),n=t.toFormat(e.get("format"));n.isEqual(t)||e.set("value",n)},invokeOnOpen({prop:e,context:t}){var n;e("inline")||(n=e("onOpenChange"))==null||n({open:!0,value:t.get("value")})},invokeOnClose({prop:e,context:t}){var n;e("inline")||(n=e("onOpenChange"))==null||n({open:!1,value:t.get("value")})},toggleVisibility({prop:e,event:t,send:n}){n({type:e("open")?"CONTROLLED.OPEN":"CONTROLLED.CLOSE",previousEvent:t})}}}});x0=class extends X{initMachine(e){return new Y(O0,e)}initApi(){return this.zagConnect(b0)}render(){let e=this.el.querySelector('[data-part="root"]');e&&this.spreadProps(e,this.api.getRootProps());let t=this.el.querySelector('[data-part="label"]');t&&this.spreadProps(t,this.api.getLabelProps());let n=this.el.querySelector('[data-part="hidden-input"]');n&&this.spreadProps(n,this.api.getHiddenInputProps());let r=this.el.querySelector('[data-part="control"]');r&&this.spreadProps(r,this.api.getControlProps());let i=this.el.querySelector('[data-part="trigger"]');i&&this.spreadProps(i,this.api.getTriggerProps()),this.el.querySelectorAll('[data-part="transparency-grid"][data-size="10px"]').forEach(k=>this.spreadProps(k,this.api.getTransparencyGridProps({size:"10px"})));let o=i==null?void 0:i.querySelector('[data-part="swatch"]');o&&this.spreadProps(o,this.api.getSwatchProps({value:this.api.value})),this.el.querySelectorAll('[data-part="channel-input"][data-channel="hex"]').forEach(k=>this.spreadProps(k,this.api.getChannelInputProps({channel:"hex"}))),this.el.querySelectorAll('[data-part="channel-input"][data-channel="alpha"]').forEach(k=>this.spreadProps(k,this.api.getChannelInputProps({channel:"alpha"})));let c=this.el.querySelector('[data-part="positioner"]');c&&this.spreadProps(c,this.api.getPositionerProps());let d=this.el.querySelector('[data-part="content"]');d&&this.spreadProps(d,this.api.getContentProps());let g=this.el.querySelector('[data-part="area"]');g&&this.spreadProps(g,this.api.getAreaProps());let h=this.el.querySelector('[data-part="area-background"]');h&&this.spreadProps(h,this.api.getAreaBackgroundProps());let u=this.el.querySelector('[data-part="area-thumb"]');u&&this.spreadProps(u,this.api.getAreaThumbProps());let f=this.el.querySelector('[data-part="channel-slider"][data-channel="hue"]');f&&this.spreadProps(f,this.api.getChannelSliderProps({channel:"hue"}));let m=this.el.querySelector('[data-part="channel-slider-track"][data-channel="hue"]');m&&this.spreadProps(m,this.api.getChannelSliderTrackProps({channel:"hue"}));let P=this.el.querySelector('[data-part="channel-slider-thumb"][data-channel="hue"]');P&&this.spreadProps(P,this.api.getChannelSliderThumbProps({channel:"hue"}));let C=this.el.querySelector('[data-part="channel-slider"][data-channel="alpha"]');C&&this.spreadProps(C,this.api.getChannelSliderProps({channel:"alpha"})),this.el.querySelectorAll('[data-part="transparency-grid"][data-size="12px"]').forEach(k=>this.spreadProps(k,this.api.getTransparencyGridProps({size:"12px"})));let I=this.el.querySelector('[data-part="channel-slider-track"][data-channel="alpha"]');I&&this.spreadProps(I,this.api.getChannelSliderTrackProps({channel:"alpha"}));let b=this.el.querySelector('[data-part="channel-slider-thumb"][data-channel="alpha"]');b&&this.spreadProps(b,this.api.getChannelSliderThumbProps({channel:"alpha"})),this.el.querySelectorAll('[data-part="channel-input"][data-channel="red"]').forEach(k=>this.spreadProps(k,this.api.getChannelInputProps({channel:"red"}))),this.el.querySelectorAll('[data-part="channel-input"][data-channel="green"]').forEach(k=>this.spreadProps(k,this.api.getChannelInputProps({channel:"green"}))),this.el.querySelectorAll('[data-part="channel-input"][data-channel="blue"]').forEach(k=>this.spreadProps(k,this.api.getChannelInputProps({channel:"blue"})));let N=this.el.querySelector('[data-part="swatch-group"]');N&&this.spreadProps(N,this.api.getSwatchGroupProps()),this.el.querySelectorAll('[data-part="swatch-trigger"][data-value]').forEach(k=>{let R=k.getAttribute("data-value");R&&this.spreadProps(k,this.api.getSwatchTriggerProps({value:R}));let D=k.querySelector('[data-part="swatch"][data-value]');if(D){let W=D.getAttribute("data-value");W&&this.spreadProps(D,this.api.getSwatchProps({value:W}))}}),this.el.querySelectorAll('[data-part="transparency-grid"][data-size="var(--spacing-mini)"]').forEach(k=>this.spreadProps(k,this.api.getTransparencyGridProps({size:"var(--spacing-mini)"})))}};A0={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>Q(this.liveSocket),r=nf(e),i=new x0(e,v(p({id:e.id},r),{name:x(e,"name"),defaultFormat:"rgba",closeOnSelect:T(e,"closeOnSelect"),defaultOpen:!1,openAutoFocus:T(e,"openAutoFocus"),disabled:T(e,"disabled"),invalid:T(e,"invalid"),readOnly:T(e,"readOnly"),required:T(e,"required"),dir:q(e),positioning:$e(e),onValueChange:a=>{tf(e,a.valueAsString),K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,valueAsString:a.valueAsString},serverEventName:x(e,"onValueChange"),clientEventName:x(e,"onValueChangeClient")})},onValueChangeEnd:a=>{tf(e,a.valueAsString),K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,valueAsString:a.valueAsString},serverEventName:x(e,"onValueChangeEnd"),clientEventName:x(e,"onValueChangeEndClient")})},onOpenChange:a=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,open:a.open},serverEventName:x(e,"onOpenChange"),clientEventName:x(e,"onOpenChangeClient")})},onFormatChange:a=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,format:a.format},serverEventName:x(e,"onFormatChange"),clientEventName:x(e,"onFormatChangeClient")})},onPointerDownOutside:()=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id},serverEventName:x(e,"onPointerDownOutside"),clientEventName:x(e,"onPointerDownOutsideClient")})},onFocusOutside:()=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id},serverEventName:x(e,"onFocusOutside"),clientEventName:x(e,"onFocusOutsideClient")})},onInteractOutside:()=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id},serverEventName:x(e,"onInteractOutside"),clientEventName:x(e,"onInteractOutsideClient")})}}));i.init(),this.colorPicker=i,this.handlers=[],this.onSetValue=a=>{let{value:o}=a.detail;i.api.setValue(o)},e.addEventListener("corex:color-picker:set-value",this.onSetValue),this.handlers.push(this.handleEvent("color_picker_set_value",a=>{B(e.id,G(a))&&i.api.setValue(a.value)}))},updated(){var n;let e=this.el,t=nf(e);(n=this.colorPicker)==null||n.updateProps(v(p({},t),{name:x(e,"name"),closeOnSelect:T(e,"closeOnSelect"),openAutoFocus:T(e,"openAutoFocus"),disabled:T(e,"disabled"),invalid:T(e,"invalid"),readOnly:T(e,"readOnly"),required:T(e,"required"),dir:q(e),positioning:$e(e)}))},destroyed(){var e;if(this.onSetValue&&this.el.removeEventListener("corex:color-picker:set-value",this.onSetValue),this.handlers)for(let t of this.handlers)this.removeHandleEvent(t);(e=this.colorPicker)==null||e.destroy()}}});function Ur(e,t,n){let r=[],i;return a=>{var l;let o=e(a);return(o.length!==r.length||o.some((c,d)=>!Ie(r[d],c)))&&(r=o,i=t(o,a),(l=n==null?void 0:n.onChange)==null||l.call(n,i)),i}}var Fs=ne(()=>{"use strict";se()});var fm={};fe(fm,{DatePicker:()=>fO});function Qc(e,t){return e-t*Math.floor(e/t)}function _s(e,t,n,r){t=yd(e,t);let i=t-1,a=-2;return n<=2?a=0:Ws(t)&&(a=-1),kf-1+365*i+Math.floor(i/4)-Math.floor(i/100)+Math.floor(i/400)+Math.floor((367*n-362)/12+a+r)}function Ws(e){return e%4===0&&(e%100!==0||e%400===0)}function yd(e,t){return e==="BC"?1-t:t}function k0(e){let t="AD";return e<=0&&(t="BC",e=1-e),[t,e]}function Ct(e,t){return t=Ye(t,e.calendar),e.era===t.era&&e.year===t.year&&e.month===t.month&&e.day===t.day}function L0(e,t){return t=Ye(t,e.calendar),e=Bn(e),t=Bn(t),e.era===t.era&&e.year===t.year&&e.month===t.month}function M0(e,t){return t=Ye(t,e.calendar),e=Na(e),t=Na(t),e.era===t.era&&e.year===t.year}function F0(e,t){return Ys(e.calendar,t.calendar)&&Ct(e,t)}function Va(e,t){return Ys(e.calendar,t.calendar)&&L0(e,t)}function xa(e,t){return Ys(e.calendar,t.calendar)&&M0(e,t)}function Ys(e,t){var n,r,i,a;return(a=(i=(n=e.isEqual)==null?void 0:n.call(e,t))!=null?i:(r=t.isEqual)==null?void 0:r.call(t,e))!=null?a:e.identifier===t.identifier}function _0(e,t){return Ct(e,Xs(t))}function Nf(e,t,n){let r=e.calendar.toJulianDay(e),i=n?$0[n]:U0(t),a=Math.ceil(r+1-i)%7;return a<0&&(a+=7),a}function Df(e){return Gn(Date.now(),e)}function Xs(e){return qr(Df(e))}function Lf(e,t){return e.calendar.toJulianDay(e)-t.calendar.toJulianDay(t)}function H0(e,t){return mf(e)-mf(t)}function mf(e){return e.hour*36e5+e.minute*6e4+e.second*1e3+e.millisecond}function bd(){return ed==null&&(ed=new Intl.DateTimeFormat().resolvedOptions().timeZone),ed}function Mf(){return B0}function Bn(e){return e.subtract({days:e.day-1})}function cd(e){return e.add({days:e.calendar.getDaysInMonth(e)-e.day})}function Na(e){return Bn(e.subtract({months:e.month-1}))}function G0(e){return cd(e.add({months:e.calendar.getMonthsInYear(e)-e.month}))}function mr(e,t,n){let r=Nf(e,t,n);return e.subtract({days:r})}function vf(e,t,n){return mr(e,t,n).add({days:6})}function Ff(e){if(Intl.Locale){let n=yf.get(e);return n||(n=new Intl.Locale(e).maximize().region,n&&yf.set(e,n)),n}let t=e.split("-")[1];return t==="u"?void 0:t}function U0(e){let t=td.get(e);if(!t){if(Intl.Locale){let r=new Intl.Locale(e);if("getWeekInfo"in r&&(t=r.getWeekInfo(),t))return td.set(e,t),t.firstDay}let n=Ff(e);if(e.includes("-fw-")){let r=e.split("-fw-")[1].split("-")[0];r==="mon"?t={firstDay:1}:r==="tue"?t={firstDay:2}:r==="wed"?t={firstDay:3}:r==="thu"?t={firstDay:4}:r==="fri"?t={firstDay:5}:r==="sat"?t={firstDay:6}:t={firstDay:0}}else e.includes("-ca-iso8601")?t={firstDay:1}:t={firstDay:n&&D0[n]||0};td.set(e,t)}return t.firstDay}function q0(e,t,n){let r=e.calendar.getDaysInMonth(e);return Math.ceil((Nf(Bn(e),t,n)+r)/7)}function _f(e,t){return e&&t?e.compare(t)<=0?e:t:e||t}function $f(e,t){return e&&t?e.compare(t)>=0?e:t:e||t}function K0(e,t){let n=e.calendar.toJulianDay(e),r=Math.ceil(n+1)%7;r<0&&(r+=7);let i=Ff(t),[a,o]=W0[i]||[6,0];return r===a||r===o}function Hi(e){e=Ye(e,new $i);let t=yd(e.era,e.year);return Hf(t,e.month,e.day,e.hour,e.minute,e.second,e.millisecond)}function Hf(e,t,n,r,i,a,o){let s=new Date;return s.setUTCHours(r,i,a,o),s.setUTCFullYear(e,t-1,n),s.getTime()}function dd(e,t){if(t==="UTC")return 0;if(e>0&&t===bd()&&!Mf())return new Date(e).getTimezoneOffset()*-6e4;let{year:n,month:r,day:i,hour:a,minute:o,second:s}=Bf(e,t);return Hf(n,r,i,a,o,s,0)-Math.floor(e/1e3)*1e3}function Bf(e,t){let n=bf.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"}),bf.set(t,n));let r=n.formatToParts(new Date(e)),i={};for(let a of r)a.type!=="literal"&&(i[a.type]=a.value);return{year:i.era==="BC"||i.era==="B"?-i.year+1:+i.year,month:+i.month,day:+i.day,hour:i.hour==="24"?0:+i.hour,minute:+i.minute,second:+i.second}}function j0(e,t,n,r){return(n===r?[n]:[n,r]).filter(a=>z0(e,t,a))}function z0(e,t,n){let r=Bf(n,t);return e.year===r.year&&e.month===r.month&&e.day===r.day&&e.hour===r.hour&&e.minute===r.minute&&e.second===r.second}function Hn(e,t,n="compatible"){let r=$t(e);if(t==="UTC")return Hi(r);if(t===bd()&&n==="compatible"&&!Mf()){r=Ye(r,new $i);let l=new Date,c=yd(r.era,r.year);return l.setFullYear(c,r.month-1,r.day),l.setHours(r.hour,r.minute,r.second,r.millisecond),l.getTime()}let i=Hi(r),a=dd(i-Ef,t),o=dd(i+Ef,t),s=j0(r,t,i-a,i-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(i-a,i-o);case"compatible":case"later":return Math.max(i-a,i-o);case"reject":throw new RangeError("No such absolute time found")}}function Gf(e,t,n="compatible"){return new Date(Hn(e,t,n))}function Gn(e,t){let n=dd(e,t),r=new Date(e+n),i=r.getUTCFullYear(),a=r.getUTCMonth()+1,o=r.getUTCDate(),s=r.getUTCHours(),l=r.getUTCMinutes(),c=r.getUTCSeconds(),d=r.getUTCMilliseconds();return new Zf(i<1?"BC":"AD",i<1?-i+1:i,a,o,t,n,s,l,c,d)}function qr(e){return new vr(e.calendar,e.era,e.year,e.month,e.day)}function $t(e,t){let n=0,r=0,i=0,a=0;if("timeZone"in e)({hour:n,minute:r,second:i,millisecond:a}=e);else if("hour"in e&&!t)return e;return t&&({hour:n,minute:r,second:i,millisecond:a}=t),new uw(e.calendar,e.era,e.year,e.month,e.day,n,r,i,a)}function Ye(e,t){if(Ys(e.calendar,t))return e;let n=t.fromJulianDay(e.calendar.toJulianDay(e)),r=e.copy();return r.calendar=t,r.era=n.era,r.year=n.year,r.month=n.month,r.day=n.day,zr(r),r}function Uf(e,t,n){if(e instanceof Zf)return e.timeZone===t?e:X0(e,t);let r=Hn(e,t,n);return Gn(r,t)}function Y0(e){let t=Hi(e)-e.offset;return new Date(t)}function X0(e,t){let n=Hi(e)-e.offset;return Ye(Gn(n,t),e.calendar)}function Zs(e,t){var o,s;let n=e.copy(),r="hour"in n?ew(n,t):0;ud(n,t.years||0),n.calendar.balanceYearMonth&&n.calendar.balanceYearMonth(n,e),n.month+=t.months||0,gd(n),qf(n),n.day+=(t.weeks||0)*7,n.day+=t.days||0,n.day+=r,Z0(n),n.calendar.balanceDate&&n.calendar.balanceDate(n),n.year<1&&(n.year=1,n.month=1,n.day=1);let i=n.calendar.getYearsInEra(n);if(n.year>i){let l=(s=(o=n.calendar).isInverseEra)==null?void 0:s.call(o,n);n.year=i,n.month=l?1:n.calendar.getMonthsInYear(n),n.day=l?1:n.calendar.getDaysInMonth(n)}n.month<1&&(n.month=1,n.day=1);let a=n.calendar.getMonthsInYear(n);return n.month>a&&(n.month=a,n.day=n.calendar.getDaysInMonth(n)),n.day=Math.max(1,Math.min(n.calendar.getDaysInMonth(n),n.day)),n}function ud(e,t){var n,r;(r=(n=e.calendar).isInverseEra)!=null&&r.call(n,e)&&(t=-t),e.year+=t}function gd(e){for(;e.month<1;)ud(e,-1),e.month+=e.calendar.getMonthsInYear(e);let t=0;for(;e.month>(t=e.calendar.getMonthsInYear(e));)e.month-=t,ud(e,1)}function Z0(e){for(;e.day<1;)e.month--,gd(e),e.day+=e.calendar.getDaysInMonth(e);for(;e.day>e.calendar.getDaysInMonth(e);)e.day-=e.calendar.getDaysInMonth(e),e.month++,gd(e)}function qf(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 zr(e){e.calendar.constrainDate&&e.calendar.constrainDate(e),e.year=Math.max(1,Math.min(e.calendar.getYearsInEra(e),e.year)),qf(e)}function Wf(e){let t={};for(let n in e)typeof e[n]=="number"&&(t[n]=-e[n]);return t}function Kf(e,t){return Zs(e,Wf(t))}function Ed(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),zr(n),n}function zs(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),Q0(n),n}function J0(e){e.second+=Math.floor(e.millisecond/1e3),e.millisecond=$s(e.millisecond,1e3),e.minute+=Math.floor(e.second/60),e.second=$s(e.second,60),e.hour+=Math.floor(e.minute/60),e.minute=$s(e.minute,60);let t=Math.floor(e.hour/24);return e.hour=$s(e.hour,24),t}function Q0(e){e.millisecond=Math.max(0,Math.min(e.millisecond,1e3)),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 $s(e,t){let n=e%t;return n<0&&(n+=t),n}function ew(e,t){return e.hour+=t.hours||0,e.minute+=t.minutes||0,e.second+=t.seconds||0,e.millisecond+=t.milliseconds||0,J0(e)}function Sd(e,t,n,r){var a,o;let i=e.copy();switch(t){case"era":{let s=e.calendar.getEras(),l=s.indexOf(e.era);if(l<0)throw new Error("Invalid era: "+e.era);l=Un(l,n,0,s.length-1,r==null?void 0:r.round),i.era=s[l],zr(i);break}case"year":(o=(a=i.calendar).isInverseEra)!=null&&o.call(a,i)&&(n=-n),i.year=Un(e.year,n,-1/0,9999,r==null?void 0:r.round),i.year===-1/0&&(i.year=1),i.calendar.balanceYearMonth&&i.calendar.balanceYearMonth(i,e);break;case"month":i.month=Un(e.month,n,1,e.calendar.getMonthsInYear(e),r==null?void 0:r.round);break;case"day":i.day=Un(e.day,n,1,e.calendar.getDaysInMonth(e),r==null?void 0:r.round);break;default:throw new Error("Unsupported field "+t)}return e.calendar.balanceDate&&e.calendar.balanceDate(i),zr(i),i}function jf(e,t,n,r){let i=e.copy();switch(t){case"hour":{let a=e.hour,o=0,s=23;if((r==null?void 0:r.hourCycle)===12){let l=a>=12;o=l?12:0,s=l?23:11}i.hour=Un(a,n,o,s,r==null?void 0:r.round);break}case"minute":i.minute=Un(e.minute,n,0,59,r==null?void 0:r.round);break;case"second":i.second=Un(e.second,n,0,59,r==null?void 0:r.round);break;case"millisecond":i.millisecond=Un(e.millisecond,n,0,999,r==null?void 0:r.round);break;default:throw new Error("Unsupported field "+t)}return i}function Un(e,t,n,r,i=!1){if(i){e+=Math.sign(t),e0?e=Math.ceil(e/a)*a:e=Math.floor(e/a)*a,e>r&&(e=n)}else e+=t,er&&(e=n+(e-r-1));return e}function zf(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 i=Zs($t(e),{years:t.years,months:t.months,weeks:t.weeks,days:t.days});n=Hn(i,e.timeZone)}else n=Hi(e)-e.offset;n+=t.milliseconds||0,n+=(t.seconds||0)*1e3,n+=(t.minutes||0)*6e4,n+=(t.hours||0)*36e5;let r=Gn(n,e.timeZone);return Ye(r,e.calendar)}function tw(e,t){return zf(e,Wf(t))}function nw(e,t,n,r){switch(t){case"hour":{let i=0,a=23;if((r==null?void 0:r.hourCycle)===12){let f=e.hour>=12;i=f?12:0,a=f?23:11}let o=$t(e),s=Ye(zs(o,{hour:i}),new $i),l=[Hn(s,e.timeZone,"earlier"),Hn(s,e.timeZone,"later")].filter(f=>Gn(f,e.timeZone).day===s.day)[0],c=Ye(zs(o,{hour:a}),new $i),d=[Hn(c,e.timeZone,"earlier"),Hn(c,e.timeZone,"later")].filter(f=>Gn(f,e.timeZone).day===c.day).pop(),g=Hi(e)-e.offset,h=Math.floor(g/Aa),u=g%Aa;return g=Un(h,n,Math.floor(l/Aa),Math.floor(d/Aa),r==null?void 0:r.round)*Aa+u,Ye(Gn(g,e.timeZone),e.calendar)}case"minute":case"second":case"millisecond":return jf(e,t,n,r);case"era":case"year":case"month":case"day":{let i=Sd($t(e),t,n,r),a=Hn(i,e.timeZone);return Ye(Gn(a,e.timeZone),e.calendar)}default:throw new Error("Unsupported field "+t)}}function rw(e,t,n){let r=$t(e),i=zs(Ed(r,t),t);if(i.compare(r)===0)return e;let a=Hn(i,e.timeZone,n);return Ye(Gn(a,e.timeZone),e.calendar)}function sw(e){let t=e.match(iw);if(!t)throw aw.test(e)?new Error(`Invalid ISO 8601 date string: ${e}. Use parseAbsolute() instead.`):new Error("Invalid ISO 8601 date string: "+e);let n=new vr(nd(t[1],0,9999),nd(t[2],1,12),1);return n.day=nd(t[3],1,n.calendar.getDaysInMonth(n)),n}function nd(e,t,n){let r=Number(e);if(rn)throw new RangeError(`Value out of range: ${t} <= ${r} <= ${n}`);return r}function lw(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 Yf(e){let t=Ye(e,new $i),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 Xf(e){return`${Yf(e)}T${lw(e)}`}function cw(e){let t=Math.sign(e)<0?"-":"+";e=Math.abs(e);let n=Math.floor(e/36e5),r=Math.floor(e%36e5/6e4),i=Math.floor(e%36e5%6e4/1e3),a=`${t}${String(n).padStart(2,"0")}:${String(r).padStart(2,"0")}`;return i!==0&&(a+=`:${String(i).padStart(2,"0")}`),a}function dw(e){return`${Xf(e)}${cw(e.offset)}[${e.timeZone}]`}function Pd(e){let t=typeof e[0]=="object"?e.shift():new $i,n;if(typeof e[0]=="string")n=e.shift();else{let o=t.getEras();n=o[o.length-1]}let r=e.shift(),i=e.shift(),a=e.shift();return[t,n,r,i,a]}function Jf(e,t={}){if(typeof t.hour12=="boolean"&&hw()){t=p({},t);let i=gw[String(t.hour12)][e.split("-")[0]],a=t.hour12?"h12":"h23";t.hourCycle=i!=null?i:a,delete t.hour12}let n=e+(t?Object.entries(t).sort((i,a)=>i[0]a.type==="hour").value,10),i=parseInt(n.formatToParts(new Date(2020,2,3,23)).find(a=>a.type==="hour").value,10);if(r===0&&i===23)return"h23";if(r===24&&i===23)return"h24";if(r===0&&i===11)return"h11";if(r===12&&i===11)return"h12";throw new Error("Unexpected hour cycle result")}function mw(e,t,n,r,i){let a={};for(let s in t){let l=s,c=t[l];c!=null&&(a[l]=Math.floor(c/2),a[l]>0&&c%2===0&&a[l]--)}let o=Yr(e,t,n).subtract(a);return Da(e,o,t,n,r,i)}function Yr(e,t,n,r,i){let a=e;return t.years?a=Na(e):t.months?a=Bn(e):t.weeks&&(a=mr(e,n)),Da(e,a,t,n,r,i)}function Cd(e,t,n,r,i){let a=p({},t);a.days?a.days--:a.weeks?a.weeks--:a.months?a.months--:a.years&&a.years--;let o=Yr(e,t,n).subtract(a);return Da(e,o,t,n,r,i)}function Da(e,t,n,r,i,a){return i&&e.compare(i)>=0&&(t=$f(t,Yr(qr(i),n,r))),a&&e.compare(a)<=0&&(t=_f(t,Cd(qr(a),n,r))),t}function Ft(e,t,n){let r=qr(e),i=t?qr(t):void 0,a=n?qr(n):void 0,o=r;return i&&(o=$f(o,i)),a&&(o=_f(o,a)),o.compare(r)===0?e:"hour"in e?e.set({year:o.year,month:o.month,day:o.day}):o}function Sf(e,t,n,r,i,a){switch(t){case"start":return Yr(e,n,r,i,a);case"end":return Cd(e,n,r,i,a);case"center":default:return mw(e,n,r,i,a)}}function fr(e,t){return e==null||t==null?e===t:!("hour"in e)&&!("hour"in t)?Ct(e,t):$t(e).compare($t(t))===0}function Pf(e,t,n,r,i){return e?t!=null&&t(e,n)?!0:vn(e,r,i):!1}function vn(e,t,n){return t!=null&&e.compare(t)<0||n!=null&&e.compare(n)>0}function vw(e,t,n){let r=e.subtract({days:1});return Ct(r,e)||vn(r,t,n)}function yw(e,t,n){let r=e.add({days:1});return Ct(r,e)||vn(r,t,n)}function Id(e){let t=p({},e);for(let n in t)t[n]=1;return t}function Qf(e,t){let n=p({},t);return n.days?n.days--:n.days=-1,e.add(n)}function em(e){if(!e)return;let t=e.calendar.identifier;return t==="gregory"||t==="iso8601"?e.era==="BC"?"short":void 0:"short"}function tm(e,t,n){let r=n!=null?n:$t(Xs(t));return new _t(e,{weekday:"long",month:"long",year:"numeric",day:"numeric",era:em(r),calendar:r.calendar.identifier,timeZone:t})}function Cf(e,t,n){let r=n!=null?n:Xs(t);return new _t(e,{month:"long",year:"numeric",era:em(r),calendar:r.calendar.identifier,timeZone:t})}function bw(e,t,n,r,i){let a=n.formatRangeToParts(e.toDate(i),t.toDate(i)),o=-1;for(let c=0;co&&(l+=a[c].value);return r(s,l)}function Hs(e,t,n,r){if(!e)return"";let i=e,a=t!=null?t:e,o=tm(n,r);return Ct(i,a)?o.format(i.toDate(r)):bw(i,a,o,(s,l)=>`${s} \u2013 ${l}`,r)}function nm(e){return e!=null?Ew[e]:void 0}function rm(e,t,n){let r=nm(n);return mr(e,t,r)}function im(e,t,n,r){let i=t.add({weeks:e}),a=[],o=rm(i,n,r);for(;a.length<7;){a.push(o);let s=o.add({days:1});if(Ct(o,s))break;o=s}return a}function Sw(e,t,n,r){let i=nm(r),a=n!=null?n:q0(e,t,i);return[...new Array(a).keys()].map(s=>im(s,e,t,r))}function Pw(e,t){let n=new _t(e,{weekday:"long",timeZone:t}),r=new _t(e,{weekday:"short",timeZone:t}),i=new _t(e,{weekday:"narrow",timeZone:t});return a=>{let o=a instanceof Date?a:a.toDate(t);return{value:a,short:r.format(o),long:n.format(o),narrow:i.format(o)}}}function Cw(e,t,n,r){let i=rm(e,r,t),a=[...new Array(7).keys()],o=Pw(r,n);return a.map(s=>o(i.add({days:s})))}function Iw(e,t="long",n){if(!n||n.calendar.identifier==="gregory"||n.calendar.identifier==="iso8601"){let o=new Date(2021,0,1),s=[];for(let l=0;l<12;l++)s.push(o.toLocaleString(e,{month:t})),o.setMonth(o.getMonth()+1);return s}let r=n.calendar.getMonthsInYear(n),i=new _t(e,{month:t,calendar:n.calendar.identifier}),a=[];for(let o=1;o<=r;o++){let s=n.set({month:o});a.push(i.format(s.toDate("UTC")))}return a}function If(e,t){let n=mr(e,t,"mon"),r=n.year,i=n.set({month:1,day:4}),a=mr(i,t,"mon"),o=n.calendar.toJulianDay(n),s=a.calendar.toJulianDay(a);if(o>=s)return 1+Math.floor((o-s)/7);let l=n.set({year:r-1,month:1,day:4}),c=mr(l,t,"mon"),d=c.calendar.toJulianDay(c);return 1+Math.floor((o-d)/7)}function Tw(e){let t=[];for(let n=e.from;n<=e.to;n+=1)t.push(n);return t}function Vw(e,t,n){var o,s;let r=e.calendar,i=(o=t==null?void 0:t.year)!=null?o:Ye(new vr(ww,1,1),r).year,a=(s=n==null?void 0:n.year)!=null?s:Ye(new vr(Ow,12,31),r).year;return{from:i,to:a}}function Aw(e){if(e){if(e.length===3)return e.padEnd(4,"0");if(e.length===2){let t=new Date().getFullYear(),n=Math.floor(t/100)*100,r=parseInt(e.slice(-2),10),i=n+r;return i>t+xw?(i-100).toString():i.toString()}return e}}function _i(e,t){let n=t!=null&&t.strict?10:12,r=e-e%10,i=[];for(let a=0;a0?{startDate:Yr(s,e,t,n,r),endDate:l,focusedDate:Ft(s,n,r)}:{startDate:o,endDate:l,focusedDate:Ft(s,n,r)}}}function am(e,t,n,r,i,a){let o=La(n,r,i,a),s=t.add(n);return o({focusedDate:e.add(n),startDate:Yr(Da(e,s,n,r,i,a),n,r)})}function om(e,t,n,r,i,a){let o=La(n,r,i,a),s=t.subtract(n);return o({focusedDate:e.subtract(n),startDate:Yr(Da(e,s,n,r,i,a),n,r)})}function Rw(e,t,n,r,i,a,o){let s=La(r,i,a,o);if(!n&&!r.days)return s({focusedDate:e.add(Id(r)),startDate:t});if(r.days)return am(e,t,r,i,a,o);if(r.weeks)return s({focusedDate:e.add({months:1}),startDate:t});if(r.months||r.years)return s({focusedDate:e.add({years:1}),startDate:t})}function kw(e,t,n,r,i,a,o){let s=La(r,i,a,o);if(!n&&!r.days)return s({focusedDate:e.subtract(Id(r)),startDate:t});if(r.days)return om(e,t,r,i,a,o);if(r.weeks)return s({focusedDate:e.subtract({months:1}),startDate:t});if(r.months||r.years)return s({focusedDate:e.subtract({years:1}),startDate:t})}function Lw(e,t,n){var c;let r=Mw(t,n),{year:i,month:a,day:o}=(c=Fw(r,e))!=null?c:{};if(i!=null||a!=null||o!=null){let d=new Date;i||(i=d.getFullYear().toString()),a||(a=(d.getMonth()+1).toString()),o||(o=d.getDate().toString())}if(Tf(i)||(i=Aw(i)),Tf(i)&&Nw(a)&&Dw(o))return new vr(+i,+a,+o);let l=Date.parse(e);if(!isNaN(l)){let d=new Date(l);return new vr(d.getFullYear(),d.getMonth()+1,d.getDate())}}function Mw(e,t){return new _t(e,{day:"numeric",month:"numeric",year:"numeric",timeZone:t}).formatToParts(new Date(2e3,11,25)).map(({type:i,value:a})=>i==="literal"?`${a}?`:`((?!=<${i}>)\\d+)?`).join("")}function Fw(e,t){var r;let n=t.match(e);return(r=e.toString().match(/<(.+?)>/g))==null?void 0:r.map(i=>{var o;let a=i.match(/<(.+)>/);return!a||a.length<=0?null:(o=i.match(/<(.+)>/))==null?void 0:o[1]}).reduce((i,a,o)=>(a&&(n&&n.length>o?i[a]=n[o+1]:i[a]=null),i),{})}function wf(e,t,n){let r=qr(Df(n));switch(e){case"thisWeek":return[mr(r,t),vf(r,t)];case"thisMonth":return[Bn(r),r];case"thisQuarter":return[Bn(r).add({months:-((r.month-1)%3)}),r];case"thisYear":return[Na(r),r];case"last3Days":return[r.add({days:-2}),r];case"last7Days":return[r.add({days:-6}),r];case"last14Days":return[r.add({days:-13}),r];case"last30Days":return[r.add({days:-29}),r];case"last90Days":return[r.add({days:-89}),r];case"lastMonth":return[Bn(r.add({months:-1})),cd(r.add({months:-1}))];case"lastQuarter":return[Bn(r.add({months:-((r.month-1)%3)-3})),cd(r.add({months:-((r.month-1)%3)-1}))];case"lastWeek":return[mr(r,t).add({weeks:-1}),vf(r,t).add({weeks:-1})];case"lastYear":return[Na(r.add({years:-1})),G0(r.add({years:-1}))];default:throw new Error(`Invalid date range preset: ${e}`)}}function pd(e){let[t,n]=e,r;return!t||!n?r=e:r=t.compare(n)<=0?e:[n,t],r}function Fi(e,t){let[n,r]=t;return!n||!r?!1:n.compare(e)<=0&&r.compare(e)>=0}function Gs(e){return e.slice().filter(t=>t!=null).sort((t,n)=>t.compare(n))}function zw(e){return Me(e,{year:"calendar decade",month:"calendar year",day:"calendar month"})}function Xw(e){return new _t(e).formatToParts(new Date).map(t=>{var n;return(n=Yw[t.type])!=null?n:t.value}).join("")}function Jw(e){let r=new Intl.DateTimeFormat(e).formatToParts(new Date).find(i=>i.type==="literal");return r?r.value:"/"}function qn(e,t){return e?e==="day"?0:e==="month"?1:2:t||0}function Td(e){return e===0?"day":e===1?"month":"year"}function wd(e,t,n){return Td(Oe(qn(e,0),qn(t,0),qn(n,2)))}function eO(e,t){return qn(e,0)>qn(t,0)}function tO(e,t){return qn(e,0)e(t))}function sO(e,t){let{state:n,context:r,prop:i,send:a,computed:o,scope:s}=e,l=r.get("startValue"),c=o("endValue"),d=r.get("value"),g=r.get("focusedValue"),h=r.get("hoveredValue"),u=h?pd([d[0],h]):[],f=!!i("disabled"),m=!!i("readOnly"),P=!!i("invalid"),C=o("isInteractive"),V=d.length===0,I=i("min"),b=i("max"),y=i("locale"),E=i("timeZone"),A=i("startOfWeek"),N=n.matches("focused"),O=n.matches("open"),w=i("selectionMode")==="range",k=i("selectionMode")==="multiple",R=i("isDateUnavailable"),D=i("maxSelectedDates"),W=k&&D!=null&&d.length>=D,Z=r.get("currentPlacement"),ue=Lt(v(p({},i("positioning")),{placement:Z})),z=Jw(y),le=p(p({},Qw),i("translations"));function he(M=l){let L=i("fixedWeeks")?6:void 0;return Sw(M,y,L,A)}function ae(M={}){let{format:L}=M;return Iw(y,L,g).map((_,H)=>{let pe=H+1,tt=g.set({month:pe}),Ge=vn(tt,I,b);return{label:_,value:pe,disabled:Ge}})}function De(){let M=Vw(g,I,b);return Tw(M).map(_=>({label:_.toString(),value:_,disabled:!Ii(_,I==null?void 0:I.year,b==null?void 0:b.year)}))}function Le(M){return Pf(M,R,y,I,b)}function Gt(M){let L=l!=null?l:ka(E,g.calendar);a({type:"FOCUS.SET",value:L.set({month:M})})}function so(M){let L=l!=null?l:ka(E,g.calendar);a({type:"FOCUS.SET",value:L.set({year:M})})}function si(M){let{value:L,disabled:_}=M,H=g.set({year:L}),tt=!_i(l.year,{strict:!0}).includes(L),Ge=Ii(L,I==null?void 0:I.year,b==null?void 0:b.year),st=w&&Fi(H,d),jn=w&&d[0]&&xa(H,d[0]),li=w&&d[1]&&xa(H,d[1]),Or=w&&u.length>0,ci=Or&&Fi(H,u),zn=Or&&u[0]&&xa(H,u[0]),Yn=Or&&u[1]&&xa(H,u[1]),lo={focused:g.year===M.value,selectable:!tt&&Ge,outsideRange:tt,selected:!!d.find(co=>co&&co.year===L),valueText:L.toString(),inRange:st||ci,firstInRange:!!jn,lastInRange:!!li,inHoveredRange:!!ci,firstInHoveredRange:!!zn,lastInHoveredRange:!!Yn,value:H,get disabled(){return _||!lo.selectable}};return lo}function Tr(M){let{value:L,disabled:_}=M,H=g.set({month:L}),pe=Cf(y,E,g),tt=w&&Fi(H,d),Ge=w&&d[0]&&Va(H,d[0]),st=w&&d[1]&&Va(H,d[1]),jn=w&&u.length>0,li=jn&&Fi(H,u),Or=jn&&u[0]&&Va(H,u[0]),ci=jn&&u[1]&&Va(H,u[1]),zn={focused:g.month===M.value,selectable:!vn(H,I,b),selected:!!d.find(Yn=>Yn&&Yn.month===L&&Yn.year===g.year),valueText:pe.format(H.toDate(E)),inRange:tt||li,firstInRange:!!Ge,lastInRange:!!st,inHoveredRange:!!li,firstInHoveredRange:!!Or,lastInHoveredRange:!!ci,outsideRange:!1,value:H,get disabled(){return _||!zn.selectable}};return zn}function wr(M){let{value:L,disabled:_,visibleRange:H=o("visibleRange")}=M,pe=tm(y,E,g),tt=Id(o("visibleDuration")),Ge=i("outsideDaySelectable"),st=H.start.add(tt).subtract({days:1}),jn=vn(L,H.start,st),li=w&&Fi(L,d),Or=w&&d[0]&&Ct(L,d[0]),ci=w&&d[1]&&Ct(L,d[1]),zn=w&&u.length>0,Yn=zn&&Fi(L,u),lo=zn&&u[0]&&Ct(L,u[0]),co=zn&&u[1]&&Ct(L,u[1]),wu=d.some(Ou=>Ou!=null&&Ct(L,Ou)),uo={invalid:vn(L,I,b),disabled:_||!Ge&&jn||vn(L,I,b)||W&&!wu,selected:wu,unavailable:Pf(L,R,y,I,b)&&!_,outsideRange:jn,today:_0(L,E),weekend:K0(L,y),value:L,valueText:pe.format(L.toDate(E)),get focused(){return g!=null&&Ct(L,g)&&(!uo.outsideRange||Ge)},get selectable(){return!uo.disabled&&!uo.unavailable},inRange:li||Yn,firstInRange:Or,lastInRange:ci,inHoveredRange:Yn,firstInHoveredRange:lo,lastInHoveredRange:co};return uo}function El(M){let{view:L="day",id:_}=M;return[L,_].filter(Boolean).join(" ")}return{focused:N,open:O,disabled:f,invalid:P,readOnly:m,inline:!!i("inline"),numOfMonths:i("numOfMonths"),showWeekNumbers:!!i("showWeekNumbers"),selectionMode:i("selectionMode"),maxSelectedDates:D,isMaxSelected:W,view:r.get("view"),getRangePresetValue(M){return wf(M,y,E)},getWeekNumber(M){let L=M[0];return L?If(L,y):0},getDaysInWeek(M,L=l){return im(M,L,y,A)},getOffset(M){let L=l.add(M),_=c.add(M),H=Cf(y,E,g);return{visibleRange:{start:L,end:_},weeks:he(L),visibleRangeText:{start:H.format(L.toDate(E)),end:H.format(_.toDate(E))}}},getMonthWeeks:he,isUnavailable:Le,weeks:he(),weekDays:Cw(l,A,E,y),visibleRangeText:o("visibleRangeText"),value:d,valueAsDate:d.filter(M=>M!=null).map(M=>M.toDate(E)),valueAsString:o("valueAsString"),focusedValue:g,focusedValueAsDate:g==null?void 0:g.toDate(E),focusedValueAsString:i("format")(g,{locale:y,timeZone:E}),visibleRange:o("visibleRange"),selectToday(){let M=Ft(ka(E,g.calendar),I,b);a({type:"VALUE.SET",value:[M]})},setValue(M){let L=M.map(_=>Ft(_,I,b));a({type:"VALUE.SET",value:L})},setTime(M,L=0){var pe,tt,Ge,st;let _=Array.from(d),H=_[L];H&&("hour"in H||(H=$t(H)),H=H.set({hour:(pe=M.hour)!=null?pe:"hour"in H?H.hour:0,minute:(tt=M.minute)!=null?tt:"minute"in H?H.minute:0,second:(Ge=M.second)!=null?Ge:"second"in H?H.second:0,millisecond:(st=M.millisecond)!=null?st:"millisecond"in H?H.millisecond:0}),_[L]=Ft(H,I,b),a({type:"VALUE.SET",value:_}))},clearValue(M={}){let{focus:L=!0}=M;a({type:"VALUE.CLEAR",focus:L})},setFocusedValue(M){a({type:"FOCUS.SET",value:M})},setOpen(M){i("inline")||n.matches("open")===M||a({type:M?"OPEN":"CLOSE"})},focusMonth:Gt,focusYear:so,getYears:De,getMonths:ae,getYearsGrid(M={}){let{columns:L=1}=M,_=_i(l.year,{strict:!0}).map(H=>({label:H.toString(),value:H,disabled:!Ii(H,I==null?void 0:I.year,b==null?void 0:b.year)}));return oa(_,L)},getDecade(){let M=_i(l.year,{strict:!0});return{start:M.at(0),end:M.at(-1)}},getMonthsGrid(M={}){let{columns:L=1,format:_}=M;return oa(ae({format:_}),L)},format(M,L={month:"long",year:"numeric"}){return new _t(y,v(p({},L),{calendar:M.calendar.identifier})).format(M.toDate(E))},setView(M){a({type:"VIEW.SET",view:M})},goToNext(){a({type:"GOTO.NEXT",view:r.get("view")})},goToPrev(){a({type:"GOTO.PREV",view:r.get("view")})},getRootProps(){return t.element(v(p({},Pe.root.attrs),{dir:i("dir"),id:$w(s),"data-state":O?"open":"closed","data-disabled":S(f),"data-readonly":S(m),"data-empty":S(V)}))},getLabelProps(M={}){let{index:L=0}=M;return t.label(v(p({},Pe.label.attrs),{id:_w(s,L),dir:i("dir"),htmlFor:Of(s,L),"data-state":O?"open":"closed","data-index":L,"data-disabled":S(f),"data-readonly":S(m)}))},getControlProps(){return t.element(v(p({},Pe.control.attrs),{dir:i("dir"),id:lm(s),"data-disabled":S(f),"data-placeholder-shown":S(V)}))},getRangeTextProps(){return t.element(v(p({},Pe.rangeText.attrs),{dir:i("dir")}))},getContentProps(){return t.element(v(p({},Pe.content.attrs),{hidden:!O,dir:i("dir"),"data-state":O?"open":"closed","data-placement":Z,"data-inline":S(i("inline")),id:hd(s),tabIndex:-1,role:"application","aria-roledescription":"datepicker","aria-label":le.content}))},getTableProps(M={}){let{view:L="day",columns:_=L==="day"?7:4}=M,H=El(M);return t.element(v(p({},Pe.table.attrs),{role:"grid","data-columns":_,"aria-roledescription":zw(L),id:Hw(s,H),"aria-readonly":oe(m),"aria-disabled":oe(f),"aria-multiselectable":oe(i("selectionMode")!=="single"),"data-view":L,dir:i("dir"),tabIndex:-1,onKeyDown(pe){if(pe.defaultPrevented)return;let Ge={Enter(){L==="day"&&Le(g)||L==="month"&&!Tr({value:g.month}).selectable||L==="year"&&!si({value:g.year}).selectable||a({type:"TABLE.ENTER",view:L,columns:_,focus:!0})},ArrowLeft(){a({type:"TABLE.ARROW_LEFT",view:L,columns:_,focus:!0})},ArrowRight(){a({type:"TABLE.ARROW_RIGHT",view:L,columns:_,focus:!0})},ArrowUp(){a({type:"TABLE.ARROW_UP",view:L,columns:_,focus:!0})},ArrowDown(){a({type:"TABLE.ARROW_DOWN",view:L,columns:_,focus:!0})},PageUp(st){a({type:"TABLE.PAGE_UP",larger:st.shiftKey,view:L,columns:_,focus:!0})},PageDown(st){a({type:"TABLE.PAGE_DOWN",larger:st.shiftKey,view:L,columns:_,focus:!0})},Home(){a({type:"TABLE.HOME",view:L,columns:_,focus:!0})},End(){a({type:"TABLE.END",view:L,columns:_,focus:!0})}}[ve(pe,{dir:i("dir")})];Ge&&(Ge(pe),pe.preventDefault(),pe.stopPropagation())},onPointerLeave(){a({type:"TABLE.POINTER_LEAVE"})},onPointerDown(){a({type:"TABLE.POINTER_DOWN",view:L})},onPointerUp(){a({type:"TABLE.POINTER_UP",view:L})}}))},getTableHeadProps(M={}){let{view:L="day"}=M;return t.element(v(p({},Pe.tableHead.attrs),{"aria-hidden":!0,dir:i("dir"),"data-view":L,"data-disabled":S(f)}))},getTableHeaderProps(M={}){let{view:L="day"}=M;return t.element(v(p({},Pe.tableHeader.attrs),{dir:i("dir"),"data-view":L,"data-disabled":S(f)}))},getTableBodyProps(M={}){let{view:L="day"}=M;return t.element(v(p({},Pe.tableBody.attrs),{"data-view":L,"data-disabled":S(f)}))},getTableRowProps(M={}){let{view:L="day"}=M;return t.element(v(p({},Pe.tableRow.attrs),{"aria-disabled":oe(f),"data-disabled":S(f),"data-view":L}))},getWeekNumberHeaderCellProps(M={}){let{view:L="day"}=M;return t.element(v(p({},Pe.tableCell.attrs),{scope:"col","aria-label":le.weekColumnHeader,"data-view":L,"data-type":"week-number","data-disabled":S(f)}))},getWeekNumberCellProps(M){var pe;let{weekIndex:L,week:_}=M,H=_[0]?If(_[0],y):0;return t.element(v(p({},Pe.tableCell.attrs),{role:"rowheader","aria-label":(pe=le.weekNumberCell)==null?void 0:pe.call(le,H),"data-view":"day","data-week-index":L,"data-type":"week-number","data-disabled":S(f)}))},getDayTableCellState:wr,getDayTableCellProps(M){let{value:L}=M,_=wr(M);return t.element(v(p({},Pe.tableCell.attrs),{role:"gridcell","aria-disabled":oe(!_.selectable),"aria-selected":_.selected||_.inRange,"aria-invalid":oe(_.invalid),"aria-current":_.today?"date":void 0,"data-value":L.toString()}))},getDayTableCellTriggerProps(M){let{value:L}=M,_=wr(M);return t.element(v(p({},Pe.tableCellTrigger.attrs),{id:od(s,L.toString()),role:"button",dir:i("dir"),tabIndex:_.focused?0:-1,"aria-label":le.dayCell(_),"aria-disabled":oe(!_.selectable),"aria-invalid":oe(_.invalid),"data-disabled":S(!_.selectable),"data-selected":S(_.selected),"data-value":L.toString(),"data-view":"day","data-today":S(_.today),"data-focus":S(_.focused),"data-unavailable":S(_.unavailable),"data-range-start":S(_.firstInRange),"data-range-end":S(_.lastInRange),"data-in-range":S(_.inRange),"data-outside-range":S(_.outsideRange),"data-weekend":S(_.weekend),"data-in-hover-range":S(_.inHoveredRange),"data-hover-range-start":S(_.firstInHoveredRange),"data-hover-range-end":S(_.lastInHoveredRange),onClick(H){H.defaultPrevented||_.selectable&&a({type:"CELL.CLICK",cell:"day",value:L})},onPointerMove:w?H=>{if(H.pointerType==="touch"||!_.selectable)return;let pe=!s.isActiveElement(H.currentTarget);h&&F0(L,h)||a({type:"CELL.POINTER_MOVE",cell:"day",value:L,focus:pe})}:void 0}))},getMonthTableCellState:Tr,getMonthTableCellProps(M){let{value:L,columns:_}=M,H=Tr(M);return t.element(v(p({},Pe.tableCell.attrs),{dir:i("dir"),colSpan:_,role:"gridcell","aria-selected":oe(H.selected||H.inRange),"data-selected":S(H.selected),"aria-disabled":oe(!H.selectable),"data-value":L}))},getMonthTableCellTriggerProps(M){let{value:L}=M,_=Tr(M);return t.element(v(p({},Pe.tableCellTrigger.attrs),{id:od(s,L.toString()),role:"button",dir:i("dir"),tabIndex:_.focused?0:-1,"aria-label":_.valueText,"aria-disabled":oe(!_.selectable),"data-disabled":S(!_.selectable),"data-selected":S(_.selected),"data-value":L,"data-view":"month","data-focus":S(_.focused),"data-outside-range":S(_.outsideRange),"data-range-start":S(_.firstInRange),"data-range-end":S(_.lastInRange),"data-in-range":S(_.inRange),"data-in-hover-range":S(_.inHoveredRange),"data-hover-range-start":S(_.firstInHoveredRange),"data-hover-range-end":S(_.lastInHoveredRange),onClick(H){H.defaultPrevented||_.selectable&&a({type:"CELL.CLICK",cell:"month",value:L})},onPointerMove:w?H=>{if(H.pointerType==="touch"||!_.selectable)return;let pe=!s.isActiveElement(H.currentTarget);h&&_.value&&Va(_.value,h)||a({type:"CELL.POINTER_MOVE",cell:"month",value:_.value,focus:pe})}:void 0}))},getYearTableCellState:si,getYearTableCellProps(M){let{value:L,columns:_}=M,H=si(M);return t.element(v(p({},Pe.tableCell.attrs),{dir:i("dir"),colSpan:_,role:"gridcell","aria-selected":oe(H.selected||H.inRange),"data-selected":S(H.selected),"aria-disabled":oe(!H.selectable),"data-value":L}))},getYearTableCellTriggerProps(M){let{value:L}=M,_=si(M);return t.element(v(p({},Pe.tableCellTrigger.attrs),{id:od(s,L.toString()),role:"button",dir:i("dir"),tabIndex:_.focused?0:-1,"aria-label":_.valueText,"aria-disabled":oe(!_.selectable),"data-disabled":S(!_.selectable),"data-selected":S(_.selected),"data-value":L,"data-view":"year","data-focus":S(_.focused),"data-outside-range":S(_.outsideRange),"data-range-start":S(_.firstInRange),"data-range-end":S(_.lastInRange),"data-in-range":S(_.inRange),"data-in-hover-range":S(_.inHoveredRange),"data-hover-range-start":S(_.firstInHoveredRange),"data-hover-range-end":S(_.lastInHoveredRange),onClick(H){H.defaultPrevented||_.selectable&&a({type:"CELL.CLICK",cell:"year",value:L})},onPointerMove:w?H=>{if(H.pointerType==="touch"||!_.selectable)return;let pe=!s.isActiveElement(H.currentTarget);h&&_.value&&xa(_.value,h)||a({type:"CELL.POINTER_MOVE",cell:"year",value:_.value,focus:pe})}:void 0}))},getNextTriggerProps(M={}){let{view:L="day"}=M,_=f||!o("isNextVisibleRangeValid");return t.button(v(p({},Pe.nextTrigger.attrs),{dir:i("dir"),id:Gw(s,L),type:"button","aria-label":le.nextTrigger(L),disabled:_,"data-disabled":S(_),onClick(H){H.defaultPrevented||a({type:"GOTO.NEXT",view:L})}}))},getPrevTriggerProps(M={}){let{view:L="day"}=M,_=f||!o("isPrevVisibleRangeValid");return t.button(v(p({},Pe.prevTrigger.attrs),{dir:i("dir"),id:Bw(s,L),type:"button","aria-label":le.prevTrigger(L),disabled:_,"data-disabled":S(_),onClick(H){H.defaultPrevented||a({type:"GOTO.PREV",view:L})}}))},getClearTriggerProps(){return t.button(v(p({},Pe.clearTrigger.attrs),{id:sm(s),dir:i("dir"),type:"button","aria-label":le.clearTrigger,hidden:!d.length,onClick(M){M.defaultPrevented||a({type:"VALUE.CLEAR"})}}))},getTriggerProps(){return t.button(v(p({},Pe.trigger.attrs),{id:cm(s),dir:i("dir"),type:"button","data-placement":Z,"aria-label":le.trigger(O),"aria-controls":hd(s),"data-state":O?"open":"closed","data-placeholder-shown":S(V),"aria-haspopup":"grid",disabled:f,onClick(M){M.defaultPrevented||C&&a({type:"TRIGGER.CLICK"})}}))},getViewProps(M={}){let{view:L="day"}=M;return t.element(v(p({},Pe.view.attrs),{"data-view":L,hidden:r.get("view")!==L}))},getViewTriggerProps(M={}){let{view:L="day"}=M;return t.button(v(p({},Pe.viewTrigger.attrs),{"data-view":L,dir:i("dir"),id:Uw(s,L),type:"button",disabled:f,"aria-label":le.viewTrigger(L),onClick(_){_.defaultPrevented||C&&a({type:"VIEW.TOGGLE",src:"viewTrigger"})}}))},getViewControlProps(M={}){let{view:L="day"}=M;return t.element(v(p({},Pe.viewControl.attrs),{"data-view":L,dir:i("dir")}))},getInputProps(M={}){let{index:L=0,fixOnBlur:_=!0}=M;return t.input(v(p({},Pe.input.attrs),{id:Of(s,L),autoComplete:"off",autoCorrect:"off",spellCheck:"false",dir:i("dir"),name:i("name"),"data-index":L,"data-state":O?"open":"closed","data-placeholder-shown":S(V),readOnly:m,disabled:f,required:i("required"),"aria-invalid":oe(P),"data-invalid":S(P),placeholder:i("placeholder")||Xw(y),defaultValue:o("valueAsString")[L],onBeforeInput(H){let{data:pe}=zt(H);pm(pe,z)||H.preventDefault()},onClick(H){H.defaultPrevented||i("openOnClick")&&C&&a({type:"OPEN",src:"input.click"})},onFocus(){a({type:"INPUT.FOCUS",index:L})},onBlur(H){let pe=H.currentTarget.value.trim();a({type:"INPUT.BLUR",value:pe,index:L,fixOnBlur:_})},onKeyDown(H){if(H.defaultPrevented||!C)return;let tt={Enter(Ge){He(Ge)||Le(g)||Ge.currentTarget.value.trim()!==""&&a({type:"INPUT.ENTER",value:Ge.currentTarget.value,index:L})}}[H.key];tt&&(tt(H),H.preventDefault())},onInput(H){let pe=H.currentTarget.value;a({type:"INPUT.CHANGE",value:Zw(pe,z),index:L})}}))},getMonthSelectProps(){return t.select(v(p({},Pe.monthSelect.attrs),{id:um(s),"aria-label":le.monthSelect,disabled:f,dir:i("dir"),defaultValue:l.month,onChange(M){Gt(Number(M.currentTarget.value))}}))},getYearSelectProps(){return t.select(v(p({},Pe.yearSelect.attrs),{id:gm(s),disabled:f,"aria-label":le.yearSelect,dir:i("dir"),defaultValue:l.year,onChange(M){so(Number(M.currentTarget.value))}}))},getPositionerProps(){return t.element(v(p({id:dm(s)},Pe.positioner.attrs),{dir:i("dir"),style:ue.floating}))},getPresetTriggerProps(M){let L=Array.isArray(M.value)?M.value:wf(M.value,y,E),_=L.filter(H=>H!=null).map(H=>H.toDate(E).toDateString());return t.button(v(p({},Pe.presetTrigger.attrs),{"aria-label":le.presetTrigger(_),type:"button",onClick(H){H.defaultPrevented||a({type:"PRESET.CLICK",value:L})}}))}}}function lO(e,t){if((e==null?void 0:e.length)!==(t==null?void 0:t.length))return!1;let n=Math.max(e.length,t.length);for(let r=0;rn==null?"":t("format")(n,{locale:t("locale"),timeZone:t("timeZone")}))}function Ae(e,t){let{context:n,prop:r,computed:i}=e;if(!t)return;let a=js(e,t);if(fr(n.get("focusedValue"),a))return;let s=La(i("visibleDuration"),r("locale"),r("min"),r("max"))({focusedDate:a,startDate:n.get("startValue")});n.set("startValue",s.startDate),n.set("focusedValue",s.focusedDate)}function qs(e,t){let{context:n}=e;n.set("startValue",t.startDate);let r=n.get("focusedValue");fr(r,t.focusedDate)||n.set("focusedValue",t.focusedDate)}function Zt(e){return Array.isArray(e)?e.map(t=>Zt(t)):e instanceof Date?new vr(e.getFullYear(),e.getMonth()+1,e.getDate()):sw(e)}function uO(e){let t={};return e.content&&(t.content=e.content),e.monthSelect&&(t.monthSelect=e.monthSelect),e.yearSelect&&(t.yearSelect=e.yearSelect),e.clearTrigger&&(t.clearTrigger=e.clearTrigger),e.weekColumnHeader&&(t.weekColumnHeader=e.weekColumnHeader),e.weekNumber&&(t.weekNumberCell=n=>dO(e.weekNumber,n)),e.openCalendar&&e.closeCalendar&&(t.trigger=n=>n?e.closeCalendar:e.openCalendar),(e.viewTriggerDay||e.viewTriggerMonth||e.viewTriggerYear)&&(t.viewTrigger=n=>ld(n,e.viewTriggerDay,e.viewTriggerMonth,e.viewTriggerYear)),(e.prevTriggerDay||e.prevTriggerMonth||e.prevTriggerYear)&&(t.prevTrigger=n=>ld(n,e.prevTriggerDay,e.prevTriggerMonth,e.prevTriggerYear)),(e.nextTriggerDay||e.nextTriggerMonth||e.nextTriggerYear)&&(t.nextTrigger=n=>ld(n,e.nextTriggerDay,e.nextTriggerMonth,e.nextTriggerYear)),e.placeholderDay&&e.placeholderMonth&&e.placeholderYear&&(t.placeholder=()=>({day:e.placeholderDay,month:e.placeholderMonth,year:e.placeholderYear})),t}function gO(e,t,n){if(n==="range"||e.querySelector('[data-scope="date-picker"][data-part="label"]'))return;let r=null,i=e.dataset.translation;if(i)try{r=JSON.parse(i)}catch(o){r=null}let a=r==null?void 0:r.input;if(a)for(let o of t)o.getAttribute("aria-labelledby")||o.setAttribute("aria-label",a)}function pO(e){return e==null?"":String(e)}function Af(e){let t=e.dataset.translation;if(!t)return{};try{let n=JSON.parse(t);return{translations:uO(n)}}catch(n){return{}}}function Rf(e){return T(e,"closeOnSelect")}var R0,Pe,kf,N0,$i,D0,$0,ed,B0,yf,td,W0,bf,Ef,Aa,iw,aw,ow,uM,fd,Wr,vr,md,Kr,uw,vd,jr,Zf,rd,_t,gw,id,ad,Ew,ww,Ow,xw,Tf,Nw,Dw,_w,$w,Hw,hd,od,Bw,Gw,Uw,sm,lm,Of,cm,dm,um,gm,Vf,Bs,Ks,Ra,qw,Ww,Kw,jw,hm,Yw,pm,xf,Zw,Qw,iO,oO,pt,cO,js,sd,ld,dO,hO,fO,mm=ne(()=>{"use strict";Fs();Ic();$r();gr();gn();hr();Nt();Ce();se();R0=j("date-picker").parts("clearTrigger","content","control","input","label","monthSelect","nextTrigger","positioner","presetTrigger","prevTrigger","rangeText","root","table","tableBody","tableCell","tableCellTrigger","tableHead","tableHeader","tableRow","trigger","view","viewControl","viewTrigger","yearSelect"),Pe=R0.build();kf=1721426;N0={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]},$i=class{fromJulianDay(e){let t=e,n=t-kf,r=Math.floor(n/146097),i=Qc(n,146097),a=Math.floor(i/36524),o=Qc(i,36524),s=Math.floor(o/1461),l=Qc(o,1461),c=Math.floor(l/365),d=r*400+a*100+s*4+c+(a!==4&&c!==4?1:0),[g,h]=k0(d),u=t-_s(g,h,1,1),f=2;t<_s(g,h,3,1)?f=0:Ws(h)&&(f=1);let m=Math.floor(((u+f)*12+373)/367),P=t-_s(g,h,m,1)+1;return new vr(g,h,m,P)}toJulianDay(e){return _s(e.era,e.year,e.month,e.day)}getDaysInMonth(e){return N0[Ws(e.year)?"leapyear":"standard"][e.month-1]}getMonthsInYear(e){return 12}getDaysInYear(e){return Ws(e.year)?366:365}getMaximumMonthsInYear(){return 12}getMaximumDaysInMonth(){return 31}getYearsInEra(e){return 9999}getEras(){return["BC","AD"]}isInverseEra(e){return e.era==="BC"}balanceDate(e){e.year<=0&&(e.era=e.era==="BC"?"AD":"BC",e.year=1-e.year)}constructor(){this.identifier="gregory"}},D0={"001":1,AD:1,AE:6,AF:6,AI:1,AL:1,AM:1,AN:1,AR:1,AT:1,AU:1,AX:1,AZ:1,BA:1,BE:1,BG:1,BH:6,BM:1,BN:1,BY:1,CH:1,CL:1,CM:1,CN:1,CR:1,CY:1,CZ:1,DE:1,DJ:6,DK:1,DZ:6,EC:1,EE:1,EG:6,ES:1,FI:1,FJ:1,FO:1,FR:1,GB:1,GE:1,GF:1,GP:1,GR:1,HR:1,HU:1,IE:1,IQ:6,IR:6,IS:1,IT:1,JO:6,KG:1,KW:6,KZ:1,LB:1,LI:1,LK:1,LT:1,LU:1,LV:1,LY:6,MC:1,MD:1,ME:1,MK:1,MN:1,MQ:1,MV:5,MY:1,NL:1,NO:1,NZ:1,OM:6,PL:1,QA:6,RE:1,RO:1,RS:1,RU:1,SD:6,SE:1,SI:1,SK:1,SM:1,SY:6,TJ:1,TM:1,TR:1,UA:1,UY:1,UZ:1,VA:1,VN:1,XK:1};$0={sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6};ed=null,B0=!1;yf=new Map,td=new Map;W0={AF:[4,5],AE:[5,6],BH:[5,6],DZ:[5,6],EG:[5,6],IL:[5,6],IQ:[5,6],IR:[5,5],JO:[5,6],KW:[5,6],LY:[5,6],OM:[5,6],QA:[5,6],SA:[5,6],SD:[5,6],SY:[5,6],YE:[5,6]};bf=new Map;Ef=864e5;Aa=36e5;iw=/^([+-]\d{6}|\d{4})-(\d{2})-(\d{2})$/,aw=/^([+-]\d{6}|\d{4})-(\d{2})-(\d{2})(?:T(\d{2}))?(?::(\d{2}))?(?::(\d{2}))?(\.\d+)?(?:(?:([+-]\d{2})(?::?(\d{2}))?)|Z)$/,ow=["hours","minutes","seconds"],uM=["years","months","weeks","days",...ow];vr=(Wr=class{constructor(...t){po(this,fd);let[n,r,i,a,o]=Pd(t);this.calendar=n,this.era=r,this.year=i,this.month=a,this.day=o,zr(this)}copy(){return this.era?new Wr(this.calendar,this.era,this.year,this.month,this.day):new Wr(this.calendar,this.year,this.month,this.day)}add(t){return Zs(this,t)}subtract(t){return Kf(this,t)}set(t){return Ed(this,t)}cycle(t,n,r){return Sd(this,t,n,r)}toDate(t){return Gf(this,t)}toString(){return Yf(this)}compare(t){return Lf(this,t)}},fd=new WeakMap,Wr),uw=(Kr=class{constructor(...t){po(this,md);let[n,r,i,a,o]=Pd(t);this.calendar=n,this.era=r,this.year=i,this.month=a,this.day=o,this.hour=t.shift()||0,this.minute=t.shift()||0,this.second=t.shift()||0,this.millisecond=t.shift()||0,zr(this)}copy(){return this.era?new Kr(this.calendar,this.era,this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond):new Kr(this.calendar,this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond)}add(t){return Zs(this,t)}subtract(t){return Kf(this,t)}set(t){return Ed(zs(this,t),t)}cycle(t,n,r){switch(t){case"era":case"year":case"month":case"day":return Sd(this,t,n,r);default:return jf(this,t,n,r)}}toDate(t,n){return Gf(this,t,n)}toString(){return Xf(this)}compare(t){let n=Lf(this,t);return n===0?H0(this,$t(t)):n}},md=new WeakMap,Kr),Zf=(jr=class{constructor(...t){po(this,vd);let[n,r,i,a,o]=Pd(t),s=t.shift(),l=t.shift();this.calendar=n,this.era=r,this.year=i,this.month=a,this.day=o,this.timeZone=s,this.offset=l,this.hour=t.shift()||0,this.minute=t.shift()||0,this.second=t.shift()||0,this.millisecond=t.shift()||0,zr(this)}copy(){return this.era?new jr(this.calendar,this.era,this.year,this.month,this.day,this.timeZone,this.offset,this.hour,this.minute,this.second,this.millisecond):new jr(this.calendar,this.year,this.month,this.day,this.timeZone,this.offset,this.hour,this.minute,this.second,this.millisecond)}add(t){return zf(this,t)}subtract(t){return tw(this,t)}set(t,n){return rw(this,t,n)}cycle(t,n,r){return nw(this,t,n,r)}toDate(){return Y0(this)}toString(){return dw(this)}toAbsoluteString(){return this.toDate().toISOString()}compare(t){return this.toDate().getTime()-Uf(t,this.timeZone).toDate().getTime()}},vd=new WeakMap,jr),rd=new Map,_t=class{constructor(e,t={}){this.formatter=Jf(e,t),this.options=t}format(e){return this.formatter.format(e)}formatToParts(e){return this.formatter.formatToParts(e)}formatRange(e,t){if(typeof this.formatter.formatRange=="function")return this.formatter.formatRange(e,t);if(t= start date");return`${this.formatter.format(e)} \u2013 ${this.formatter.format(t)}`}formatRangeToParts(e,t){if(typeof this.formatter.formatRangeToParts=="function")return this.formatter.formatRangeToParts(e,t);if(t= start date");let n=this.formatter.formatToParts(e),r=this.formatter.formatToParts(t);return[...n.map(i=>v(p({},i),{source:"startRange"})),{type:"literal",value:" \u2013 ",source:"shared"},...r.map(i=>v(p({},i),{source:"endRange"}))]}resolvedOptions(){let e=this.formatter.resolvedOptions();return pw()&&(this.resolvedHourCycle||(this.resolvedHourCycle=fw(e.locale,this.options)),e.hourCycle=this.resolvedHourCycle,e.hour12=this.resolvedHourCycle==="h11"||this.resolvedHourCycle==="h12"),e.calendar==="ethiopic-amete-alem"&&(e.calendar="ethioaa"),e}},gw={true:{ja:"h11"},false:{}};id=null;ad=null;Ew=["sun","mon","tue","wed","thu","fri","sat"];ww=1900,Ow=2099;xw=10;Tf=e=>e!=null&&e.length===4,Nw=e=>e!=null&&parseFloat(e)<=12,Dw=e=>e!=null&&parseFloat(e)<=31;_w=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.label)==null?void 0:r.call(n,t))!=null?i:`datepicker:${e.id}:label:${t}`},$w=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`datepicker:${e.id}`},Hw=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.table)==null?void 0:r.call(n,t))!=null?i:`datepicker:${e.id}:table:${t}`},hd=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.content)!=null?n:`datepicker:${e.id}:content`},od=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.cellTrigger)==null?void 0:r.call(n,t))!=null?i:`datepicker:${e.id}:cell-trigger:${t}`},Bw=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.prevTrigger)==null?void 0:r.call(n,t))!=null?i:`datepicker:${e.id}:prev:${t}`},Gw=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.nextTrigger)==null?void 0:r.call(n,t))!=null?i:`datepicker:${e.id}:next:${t}`},Uw=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.viewTrigger)==null?void 0:r.call(n,t))!=null?i:`datepicker:${e.id}:view:${t}`},sm=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.clearTrigger)!=null?n:`datepicker:${e.id}:clear`},lm=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.control)!=null?n:`datepicker:${e.id}:control`},Of=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.input)==null?void 0:r.call(n,t))!=null?i:`datepicker:${e.id}:input:${t}`},cm=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.trigger)!=null?n:`datepicker:${e.id}:trigger`},dm=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.positioner)!=null?n:`datepicker:${e.id}:positioner`},um=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.monthSelect)!=null?n:`datepicker:${e.id}:month-select`},gm=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.yearSelect)!=null?n:`datepicker:${e.id}:year-select`},Vf=(e,t)=>rr(Ks(e),`[data-part=table-cell-trigger][data-view=${t}][data-focus]:not([data-outside-range])`),Bs=e=>e.getById(cm(e)),Ks=e=>e.getById(hd(e)),Ra=e=>xe(hm(e),"[data-part=input]"),qw=e=>e.getById(gm(e)),Ww=e=>e.getById(um(e)),Kw=e=>e.getById(sm(e)),jw=e=>e.getById(dm(e)),hm=e=>e.getById(lm(e));Yw={day:"dd",month:"mm",year:"yyyy"};pm=(e,t)=>e?/\d/.test(e)||e===t||e.length!==1:!0,xf=e=>!Number.isNaN(e.day)&&!Number.isNaN(e.month)&&!Number.isNaN(e.year),Zw=(e,t)=>e.split("").filter(n=>pm(n,t)).join("");Qw={dayCell(e){return e.unavailable?`Not available. ${e.valueText}`:e.firstInRange?`Starting range from ${e.valueText}`:e.lastInRange?`Range ending at ${e.valueText}`:e.selected?`Selected date. ${e.valueText}`:`Choose ${e.valueText}`},trigger(e){return e?"Close calendar":"Open calendar"},viewTrigger(e){return Me(e,{year:"Switch to month view",month:"Switch to day view",day:"Switch to year view"})},presetTrigger(e){let[t="",n=""]=e;return`select ${t} to ${n}`},prevTrigger(e){return Me(e,{year:"Switch to previous decade",month:"Switch to previous year",day:"Switch to previous month"})},nextTrigger(e){return Me(e,{year:"Switch to next decade",month:"Switch to next year",day:"Switch to next month"})},placeholder(){return{day:"dd",month:"mm",year:"yyyy"}},content:"calendar",monthSelect:"Select month",yearSelect:"Select year",clearTrigger:"Clear selected dates",weekColumnHeader:"Wk",weekNumberCell(e){return`Week ${e}`}};iO=["day","month","year"];oO=Ur(e=>[e.view,e.startValue.toString(),e.endValue.toString(),e.locale],([e],t)=>{let{startValue:n,endValue:r,locale:i,timeZone:a,selectionMode:o}=t;if(e==="year"){let g=_i(n.year,{strict:!0}),h=g.at(0).toString(),u=g.at(-1).toString();return{start:h,end:u,formatted:`${h} - ${u}`}}if(e==="month"){let g=new _t(i,{year:"numeric",timeZone:a,calendar:n.calendar.identifier}),h=g.format(n.toDate(a)),u=g.format(r.toDate(a)),f=o==="range"?`${h} - ${u}`:h;return{start:h,end:u,formatted:f}}let s=new _t(i,{month:"long",year:"numeric",timeZone:a,calendar:n.calendar.identifier}),l=s.format(n.toDate(a)),c=s.format(r.toDate(a)),d=o==="range"?`${l} - ${c}`:l;return{start:l,end:c,formatted:d}});({and:pt}=Te());cO=te({props({props:e}){let t=e.locale||"en-US",n=e.timeZone||"UTC",r=e.selectionMode||"single",i=e.numOfMonths||1,a;if(e.createCalendar){let f=new Intl.DateTimeFormat(t).resolvedOptions().calendar;f!=="gregory"&&f!=="iso8601"&&(a=e.createCalendar(f))}let o=u=>!a||u.calendar.identifier===a.identifier?u:Ye(u,a),s=e.defaultValue?Gs(e.defaultValue).map(u=>Ft(o(u),e.min,e.max)):void 0,l=e.value?Gs(e.value).map(u=>Ft(o(u),e.min,e.max)):void 0,c=e.focusedValue||e.defaultFocusedValue||(l==null?void 0:l[0])||(s==null?void 0:s[0])||ka(n,a);c=Ft(o(c),e.min,e.max);let d="day",g="year",h=wd(e.view||d,d,g);return v(p({locale:t,numOfMonths:i,timeZone:n,selectionMode:r,defaultView:h,minView:d,maxView:g,outsideDaySelectable:!1,closeOnSelect:!0,format(u,{locale:f,timeZone:m}){return new _t(f,{timeZone:m,day:"2-digit",month:"2-digit",year:"numeric",calendar:a==null?void 0:a.identifier}).format(u.toDate(m))},parse(u,{locale:f,timeZone:m}){return Lw(u,f,m)}},e),{focusedValue:typeof e.focusedValue=="undefined"?void 0:c,defaultFocusedValue:c,value:l,defaultValue:s!=null?s:[],positioning:p({placement:"bottom"},e.positioning)})},initialState({prop:e}){return e("open")||e("defaultOpen")||e("inline")?"open":"idle"},refs(){return{announcer:void 0}},context({prop:e,bindable:t,getContext:n}){return{focusedValue:t(()=>({defaultValue:e("defaultFocusedValue"),value:e("focusedValue"),isEqual:fr,hash:r=>r.toString(),sync:!0,onChange(r){var l;let i=n(),a=i.get("view"),o=i.get("value"),s=Us(o,e);(l=e("onFocusChange"))==null||l({value:o,valueAsString:s,view:a,focusedValue:r})}})),value:t(()=>({defaultValue:e("defaultValue"),value:e("value"),isEqual:lO,hash:r=>r.map(i=>{var a;return(a=i==null?void 0:i.toString())!=null?a:""}).join(","),onChange(r){var o;let i=n(),a=Us(r,e);(o=e("onValueChange"))==null||o({value:r,valueAsString:a,view:i.get("view")})}})),inputValue:t(()=>({defaultValue:""})),activeIndex:t(()=>({defaultValue:0,sync:!0})),hoveredValue:t(()=>({defaultValue:null,isEqual:fr})),view:t(()=>({defaultValue:e("defaultView"),value:e("view"),onChange(r){var i;(i=e("onViewChange"))==null||i({view:r})}})),startValue:t(()=>{let r=e("focusedValue")||e("defaultFocusedValue");return{defaultValue:Sf(r,"start",{months:e("numOfMonths")},e("locale")),isEqual:fr,hash:i=>i.toString()}}),currentPlacement:t(()=>({defaultValue:void 0})),restoreFocus:t(()=>({defaultValue:!1}))}},computed:{isInteractive:({prop:e})=>!e("disabled")&&!e("readOnly"),visibleDuration:({prop:e})=>({months:e("numOfMonths")}),endValue:({context:e,computed:t})=>Qf(e.get("startValue"),t("visibleDuration")),visibleRange:({context:e,computed:t})=>({start:e.get("startValue"),end:t("endValue")}),visibleRangeText:({context:e,prop:t,computed:n})=>oO({view:e.get("view"),startValue:e.get("startValue"),endValue:n("endValue"),locale:t("locale"),timeZone:t("timeZone"),selectionMode:t("selectionMode")}),isPrevVisibleRangeValid:({context:e,prop:t})=>!vw(e.get("startValue"),t("min"),t("max")),isNextVisibleRangeValid:({prop:e,computed:t})=>!yw(t("endValue"),e("min"),e("max")),valueAsString:({context:e,prop:t})=>Us(e.get("value"),t)},effects:["setupLiveRegion"],watch({track:e,prop:t,context:n,action:r,computed:i}){e([()=>t("locale")],()=>{r(["setStartValue","syncInputElement"])}),e([()=>n.hash("focusedValue")],()=>{r(["setStartValue","focusActiveCellIfNeeded","setHoveredValueIfKeyboard"])}),e([()=>n.hash("startValue")],()=>{r(["syncMonthSelectElement","syncYearSelectElement","invokeOnVisibleRangeChange"])}),e([()=>n.get("inputValue")],()=>{r(["syncInputValue"])}),e([()=>n.hash("value")],()=>{r(["syncInputElement"])}),e([()=>i("valueAsString").toString()],()=>{r(["announceValueText"])}),e([()=>n.get("view")],()=>{r(["focusActiveCell"])}),e([()=>t("open")],()=>{r(["toggleVisibility"])})},on:{"VALUE.SET":{actions:["setDateValue","setFocusedDate"]},"VIEW.SET":{actions:["setView"]},"FOCUS.SET":{actions:["setFocusedDate"]},"VALUE.CLEAR":{actions:["clearDateValue","clearFocusedDate","focusFirstInputElement"]},"INPUT.CHANGE":[{guard:"isInputValueEmpty",actions:["setInputValue","clearDateValue","clearFocusedDate"]},{actions:["setInputValue","focusParsedDate"]}],"INPUT.ENTER":{actions:["focusParsedDate","selectFocusedDate"]},"INPUT.FOCUS":{actions:["setActiveIndex"]},"INPUT.BLUR":[{guard:"shouldFixOnBlur",actions:["setActiveIndexToStart","selectParsedDate"]},{actions:["setActiveIndexToStart"]}],"PRESET.CLICK":[{guard:"isOpenControlled",actions:["setDateValue","setFocusedDate","invokeOnClose"]},{target:"focused",actions:["setDateValue","setFocusedDate","focusInputElement"]}],"GOTO.NEXT":[{guard:"isYearView",actions:["focusNextDecade","announceVisibleRange"]},{guard:"isMonthView",actions:["focusNextYear","announceVisibleRange"]},{actions:["focusNextPage"]}],"GOTO.PREV":[{guard:"isYearView",actions:["focusPreviousDecade","announceVisibleRange"]},{guard:"isMonthView",actions:["focusPreviousYear","announceVisibleRange"]},{actions:["focusPreviousPage"]}]},states:{idle:{tags:["closed"],on:{"CONTROLLED.OPEN":{target:"open",actions:["focusFirstSelectedDate","focusActiveCell"]},"TRIGGER.CLICK":[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["focusFirstSelectedDate","focusActiveCell","invokeOnOpen"]}],OPEN:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["focusFirstSelectedDate","focusActiveCell","invokeOnOpen"]}]}},focused:{tags:["closed"],on:{"CONTROLLED.OPEN":{target:"open",actions:["focusFirstSelectedDate","focusActiveCell"]},"TRIGGER.CLICK":[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["focusFirstSelectedDate","focusActiveCell","invokeOnOpen"]}],OPEN:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["focusFirstSelectedDate","focusActiveCell","invokeOnOpen"]}]}},open:{tags:["open"],effects:["trackDismissableElement","trackPositioning"],exit:["clearHoveredDate","resetView"],on:{"CONTROLLED.CLOSE":[{guard:pt("shouldRestoreFocus","isInteractOutsideEvent"),target:"focused",actions:["focusTriggerElement"]},{guard:"shouldRestoreFocus",target:"focused",actions:["focusInputElement"]},{target:"idle"}],"CELL.CLICK":[{guard:"isAboveMinView",actions:["setFocusedValueForView","setPreviousView"]},{guard:pt("isRangePicker","hasSelectedRange"),actions:["setActiveIndexToStart","resetSelection","setActiveIndexToEnd"]},{guard:pt("isRangePicker","isSelectingEndDate","closeOnSelect","isOpenControlled"),actions:["setFocusedDate","setSelectedDate","setActiveIndexToStart","clearHoveredDate","invokeOnClose","setRestoreFocus"]},{guard:pt("isRangePicker","isSelectingEndDate","closeOnSelect"),target:"focused",actions:["setFocusedDate","setSelectedDate","setActiveIndexToStart","clearHoveredDate","invokeOnClose","focusInputElement"]},{guard:pt("isRangePicker","isSelectingEndDate"),actions:["setFocusedDate","setSelectedDate","setActiveIndexToStart","clearHoveredDate"]},{guard:"isRangePicker",actions:["setFocusedDate","setSelectedDate","setActiveIndexToEnd"]},{guard:pt("isMultiPicker","canSelectDate"),actions:["setFocusedDate","toggleSelectedDate"]},{guard:"isMultiPicker",actions:["setFocusedDate"]},{guard:pt("closeOnSelect","isOpenControlled"),actions:["setFocusedDate","setSelectedDate","invokeOnClose"]},{guard:"closeOnSelect",target:"focused",actions:["setFocusedDate","setSelectedDate","invokeOnClose","focusInputElement"]},{actions:["setFocusedDate","setSelectedDate"]}],"CELL.POINTER_MOVE":{guard:pt("isRangePicker","isSelectingEndDate"),actions:["setHoveredDate","setFocusedDate"]},"TABLE.POINTER_LEAVE":{guard:"isRangePicker",actions:["clearHoveredDate"]},"TABLE.POINTER_DOWN":{actions:["disableTextSelection"]},"TABLE.POINTER_UP":{actions:["enableTextSelection"]},"TABLE.ESCAPE":[{guard:"isOpenControlled",actions:["focusFirstSelectedDate","invokeOnClose"]},{target:"focused",actions:["focusFirstSelectedDate","invokeOnClose","focusTriggerElement"]}],"TABLE.ENTER":[{guard:"isAboveMinView",actions:["setPreviousView"]},{guard:pt("isRangePicker","hasSelectedRange"),actions:["setActiveIndexToStart","clearDateValue","setSelectedDate","setActiveIndexToEnd"]},{guard:pt("isRangePicker","isSelectingEndDate","closeOnSelect","isOpenControlled"),actions:["setSelectedDate","setActiveIndexToStart","clearHoveredDate","invokeOnClose"]},{guard:pt("isRangePicker","isSelectingEndDate","closeOnSelect"),target:"focused",actions:["setSelectedDate","setActiveIndexToStart","clearHoveredDate","invokeOnClose","focusInputElement"]},{guard:pt("isRangePicker","isSelectingEndDate"),actions:["setSelectedDate","setActiveIndexToStart","clearHoveredDate"]},{guard:"isRangePicker",actions:["setSelectedDate","setActiveIndexToEnd","focusNextDay"]},{guard:pt("isMultiPicker","canSelectDate"),actions:["toggleSelectedDate"]},{guard:"isMultiPicker"},{guard:pt("closeOnSelect","isOpenControlled"),actions:["selectFocusedDate","invokeOnClose"]},{guard:"closeOnSelect",target:"focused",actions:["selectFocusedDate","invokeOnClose","focusInputElement"]},{actions:["selectFocusedDate"]}],"TABLE.ARROW_RIGHT":[{guard:"isMonthView",actions:["focusNextMonth"]},{guard:"isYearView",actions:["focusNextYear"]},{actions:["focusNextDay","setHoveredDate"]}],"TABLE.ARROW_LEFT":[{guard:"isMonthView",actions:["focusPreviousMonth"]},{guard:"isYearView",actions:["focusPreviousYear"]},{actions:["focusPreviousDay"]}],"TABLE.ARROW_UP":[{guard:"isMonthView",actions:["focusPreviousMonthColumn"]},{guard:"isYearView",actions:["focusPreviousYearColumn"]},{actions:["focusPreviousWeek"]}],"TABLE.ARROW_DOWN":[{guard:"isMonthView",actions:["focusNextMonthColumn"]},{guard:"isYearView",actions:["focusNextYearColumn"]},{actions:["focusNextWeek"]}],"TABLE.PAGE_UP":{actions:["focusPreviousSection"]},"TABLE.PAGE_DOWN":{actions:["focusNextSection"]},"TABLE.HOME":[{guard:"isMonthView",actions:["focusFirstMonth"]},{guard:"isYearView",actions:["focusFirstYear"]},{actions:["focusSectionStart"]}],"TABLE.END":[{guard:"isMonthView",actions:["focusLastMonth"]},{guard:"isYearView",actions:["focusLastYear"]},{actions:["focusSectionEnd"]}],"TRIGGER.CLICK":[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"focused",actions:["invokeOnClose"]}],"VIEW.TOGGLE":{actions:["setNextView"]},INTERACT_OUTSIDE:[{guard:"isOpenControlled",actions:["setActiveIndexToStart","invokeOnClose"]},{guard:"shouldRestoreFocus",target:"focused",actions:["setActiveIndexToStart","invokeOnClose","focusTriggerElement"]},{target:"idle",actions:["setActiveIndexToStart","invokeOnClose"]}],CLOSE:[{guard:"isOpenControlled",actions:["setActiveIndexToStart","invokeOnClose"]},{target:"idle",actions:["setActiveIndexToStart","invokeOnClose"]}]}}},implementations:{guards:{isAboveMinView:({context:e,prop:t})=>eO(e.get("view"),t("minView")),isDayView:({context:e,event:t})=>(t.view||e.get("view"))==="day",isMonthView:({context:e,event:t})=>(t.view||e.get("view"))==="month",isYearView:({context:e,event:t})=>(t.view||e.get("view"))==="year",isRangePicker:({prop:e})=>e("selectionMode")==="range",hasSelectedRange:({context:e})=>e.get("value").length===2,isMultiPicker:({prop:e})=>e("selectionMode")==="multiple",canSelectDate:({context:e,prop:t,event:n})=>{var s;let r=t("maxSelectedDates");if(r==null)return!0;let i=e.get("value"),a=(s=n.value)!=null?s:e.get("focusedValue");return i.some(l=>fr(l,a))?!0:i.length!!e.get("restoreFocus"),isSelectingEndDate:({context:e})=>e.get("activeIndex")===1,closeOnSelect:({prop:e})=>!!e("closeOnSelect"),isOpenControlled:({prop:e})=>e("open")!=null||!!e("inline"),isInteractOutsideEvent:({event:e})=>{var t;return((t=e.previousEvent)==null?void 0:t.type)==="INTERACT_OUTSIDE"},isInputValueEmpty:({event:e})=>e.value.trim()==="",shouldFixOnBlur:({event:e})=>!!e.fixOnBlur},effects:{trackPositioning({context:e,prop:t,scope:n}){if(t("inline"))return;e.get("currentPlacement")||e.set("currentPlacement",t("positioning").placement);let r=hm(n);return ze(r,()=>jw(n),v(p({},t("positioning")),{defer:!0,onComplete(a){e.set("currentPlacement",a.placement)}}))},setupLiveRegion({scope:e,refs:t}){let n=e.getDoc();return t.set("announcer",ps({level:"assertive",document:n})),()=>{var r,i;return(i=(r=t.get("announcer"))==null?void 0:r.destroy)==null?void 0:i.call(r)}},trackDismissableElement({scope:e,send:t,context:n,prop:r}){return r("inline")?void 0:Mt(()=>Ks(e),{type:"popover",defer:!0,exclude:[...Ra(e),Bs(e),Kw(e)],onInteractOutside(a){n.set("restoreFocus",!a.detail.focusable)},onDismiss(){t({type:"INTERACT_OUTSIDE"})},onEscapeKeyDown(a){a.preventDefault(),t({type:"TABLE.ESCAPE",src:"dismissable"})}})}},actions:{setNextView({context:e,prop:t}){let n=nO(e.get("view"),t("minView"),t("maxView"));e.set("view",n)},setPreviousView({context:e,prop:t}){let n=rO(e.get("view"),t("minView"),t("maxView"));e.set("view",n)},setView({context:e,event:t}){e.set("view",t.view)},setRestoreFocus({context:e}){e.set("restoreFocus",!0)},announceValueText({context:e,prop:t,refs:n}){var s;let r=e.get("value"),i=t("locale"),a=t("timeZone"),o;if(t("selectionMode")==="range"){let[l,c]=r;l&&c?o=Hs(l,c,i,a):l?o=Hs(l,null,i,a):c?o=Hs(c,null,i,a):o=""}else o=r.map(l=>Hs(l,null,i,a)).filter(Boolean).join(",");(s=n.get("announcer"))==null||s.announce(o,3e3)},announceVisibleRange({computed:e,refs:t}){var r;let{formatted:n}=e("visibleRangeText");(r=t.get("announcer"))==null||r.announce(n)},disableTextSelection({scope:e}){ma({target:Ks(e),doc:e.getDoc()})},enableTextSelection({scope:e}){Xl({doc:e.getDoc(),target:Ks(e)})},focusFirstSelectedDate(e){let{context:t}=e;t.get("value").length&&Ae(e,t.get("value")[0])},syncInputElement({scope:e,computed:t}){$(()=>{Ra(e).forEach((r,i)=>{Be(r,t("valueAsString")[i]||"")})})},setFocusedDate(e){let{event:t}=e,n=Array.isArray(t.value)?t.value[0]:t.value;Ae(e,n)},setFocusedValueForView(e){let{context:t,event:n}=e;Ae(e,t.get("focusedValue").set({[t.get("view")]:n.value}))},focusNextMonth(e){let{context:t}=e;Ae(e,t.get("focusedValue").add({months:1}))},focusPreviousMonth(e){let{context:t}=e;Ae(e,t.get("focusedValue").subtract({months:1}))},setDateValue({context:e,event:t,prop:n}){if(!Array.isArray(t.value))return;let r=t.value.map(i=>Ft(i,n("min"),n("max")));e.set("value",r)},clearDateValue({context:e}){e.set("value",[])},setSelectedDate(e){var s;let{context:t,event:n}=e,r=Array.from(t.get("value")),i=t.get("activeIndex"),a=r[i],o=js(e,(s=n.value)!=null?s:t.get("focusedValue"));r[i]=sd(a,o),t.set("value",pd(r))},resetSelection(e){var a;let{context:t,event:n}=e,r=t.get("value")[0],i=js(e,(a=n.value)!=null?a:t.get("focusedValue"));t.set("value",[sd(r,i)])},toggleSelectedDate(e){var o;let{context:t,event:n}=e,r=js(e,(o=n.value)!=null?o:t.get("focusedValue")),i=t.get("value"),a=i.findIndex(s=>fr(s,r));if(a===-1){let s=[...i,r];t.set("value",Gs(s))}else{let s=Array.from(i);s.splice(a,1),t.set("value",Gs(s))}},setHoveredDate({context:e,event:t}){e.set("hoveredValue",t.value)},clearHoveredDate({context:e}){e.set("hoveredValue",null)},selectFocusedDate({context:e,computed:t}){let n=Array.from(e.get("value")),r=e.get("activeIndex"),i=n[r],a=e.get("focusedValue").copy();n[r]=sd(i,a),e.set("value",pd(n));let o=t("valueAsString");e.set("inputValue",o[r])},focusPreviousDay(e){let{context:t}=e,n=t.get("focusedValue").subtract({days:1});Ae(e,n)},focusNextDay(e){let{context:t}=e,n=t.get("focusedValue").add({days:1});Ae(e,n)},focusPreviousWeek(e){let{context:t}=e,n=t.get("focusedValue").subtract({weeks:1});Ae(e,n)},focusNextWeek(e){let{context:t}=e,n=t.get("focusedValue").add({weeks:1});Ae(e,n)},focusNextPage(e){let{context:t,computed:n,prop:r}=e,i=am(t.get("focusedValue"),t.get("startValue"),n("visibleDuration"),r("locale"),r("min"),r("max"));qs(e,i)},focusPreviousPage(e){let{context:t,computed:n,prop:r}=e,i=om(t.get("focusedValue"),t.get("startValue"),n("visibleDuration"),r("locale"),r("min"),r("max"));qs(e,i)},focusSectionStart(e){let{context:t}=e;Ae(e,t.get("startValue").copy())},focusSectionEnd(e){let{computed:t}=e;Ae(e,t("endValue").copy())},focusNextSection(e){let{context:t,event:n,computed:r,prop:i}=e,a=Rw(t.get("focusedValue"),t.get("startValue"),n.larger,r("visibleDuration"),i("locale"),i("min"),i("max"));a&&qs(e,a)},focusPreviousSection(e){let{context:t,event:n,computed:r,prop:i}=e,a=kw(t.get("focusedValue"),t.get("startValue"),n.larger,r("visibleDuration"),i("locale"),i("min"),i("max"));a&&qs(e,a)},focusNextYear(e){let{context:t}=e,n=t.get("focusedValue").add({years:1});Ae(e,n)},focusPreviousYear(e){let{context:t}=e,n=t.get("focusedValue").subtract({years:1});Ae(e,n)},focusNextDecade(e){let{context:t}=e,n=t.get("focusedValue").add({years:10});Ae(e,n)},focusPreviousDecade(e){let{context:t}=e,n=t.get("focusedValue").subtract({years:10});Ae(e,n)},clearFocusedDate(e){let{context:t,prop:n}=e,r=t.get("focusedValue").calendar;Ae(e,ka(n("timeZone"),r))},focusPreviousMonthColumn(e){let{context:t,event:n}=e,r=t.get("focusedValue").subtract({months:n.columns});Ae(e,r)},focusNextMonthColumn(e){let{context:t,event:n}=e,r=t.get("focusedValue").add({months:n.columns});Ae(e,r)},focusPreviousYearColumn(e){let{context:t,event:n}=e,r=t.get("focusedValue").subtract({years:n.columns});Ae(e,r)},focusNextYearColumn(e){let{context:t,event:n}=e,r=t.get("focusedValue").add({years:n.columns});Ae(e,r)},focusFirstMonth(e){var i,a,o;let{context:t}=e,n=t.get("focusedValue"),r=(o=(a=(i=n.calendar).getMinimumMonthInYear)==null?void 0:a.call(i,n))!=null?o:1;Ae(e,n.set({month:r}))},focusLastMonth(e){let{context:t}=e,n=t.get("focusedValue"),r=n.calendar.getMonthsInYear(n);Ae(e,n.set({month:r}))},focusFirstYear(e){let{context:t}=e,n=_i(t.get("focusedValue").year),r=t.get("focusedValue").set({year:n[0]});Ae(e,r)},focusLastYear(e){let{context:t}=e,n=_i(t.get("focusedValue").year),r=t.get("focusedValue").set({year:n[n.length-1]});Ae(e,r)},setActiveIndex({context:e,event:t}){e.set("activeIndex",t.index)},setActiveIndexToEnd({context:e}){e.set("activeIndex",1)},setActiveIndexToStart({context:e}){e.set("activeIndex",0)},focusActiveCell({scope:e,context:t,event:n}){n.src!=="input.click"&&$(()=>{var i;let r=t.get("view");(i=Vf(e,r))==null||i.focus({preventScroll:!0})})},focusActiveCellIfNeeded({scope:e,context:t,event:n}){n.focus&&$(()=>{var i;let r=t.get("view");(i=Vf(e,r))==null||i.focus({preventScroll:!0})})},setHoveredValueIfKeyboard({context:e,event:t,prop:n}){!t.type.startsWith("TABLE.ARROW")||n("selectionMode")!=="range"||e.get("activeIndex")===0||e.set("hoveredValue",e.get("focusedValue").copy())},focusTriggerElement({scope:e}){$(()=>{var t;(t=Bs(e))==null||t.focus({preventScroll:!0})})},focusFirstInputElement({scope:e,event:t}){t.focus!==!1&&$(()=>{let[n]=Ra(e),r=n!=null?n:Bs(e);r==null||r.focus({preventScroll:!0})})},focusInputElement({scope:e}){$(()=>{var a;let t=Ra(e);if(t.length===0){(a=Bs(e))==null||a.focus({preventScroll:!0});return}let n=t.findLastIndex(o=>o.value!==""),r=Math.max(n,0),i=t[r];i==null||i.focus({preventScroll:!0}),i==null||i.setSelectionRange(i.value.length,i.value.length)})},syncMonthSelectElement({scope:e,context:t}){let n=Ww(e);Be(n,t.get("startValue").month.toString())},syncYearSelectElement({scope:e,context:t}){let n=qw(e);Be(n,t.get("startValue").year.toString())},setInputValue({context:e,event:t}){e.get("activeIndex")===t.index&&e.set("inputValue",t.value)},syncInputValue({scope:e,context:t,event:n}){queueMicrotask(()=>{var a;let r=Ra(e),i=(a=n.index)!=null?a:t.get("activeIndex");Be(r[i],t.get("inputValue"))})},focusParsedDate(e){let{event:t,prop:n}=e;if(t.index==null)return;let i=n("parse")(t.value,{locale:n("locale"),timeZone:n("timeZone")});!i||!xf(i)||Ae(e,i)},selectParsedDate({context:e,event:t,prop:n}){if(t.index==null)return;let i=n("parse")(t.value,{locale:n("locale"),timeZone:n("timeZone")});if((!i||!xf(i))&&t.value&&(i=e.get("focusedValue").copy()),!i)return;i=Ft(i,n("min"),n("max"));let a=Array.from(e.get("value"));a[t.index]=i,e.set("value",a);let o=Us(a,n);e.set("inputValue",o[t.index])},resetView({context:e}){e.set("view",e.initial("view"))},setStartValue({context:e,computed:t,prop:n}){let r=e.get("focusedValue");if(!vn(r,e.get("startValue"),t("endValue")))return;let a=Sf(r,"start",{months:n("numOfMonths")},n("locale"));e.set("startValue",a)},invokeOnOpen({prop:e,context:t}){var n;e("inline")||(n=e("onOpenChange"))==null||n({open:!0,value:t.get("value")})},invokeOnClose({prop:e,context:t}){var n;e("inline")||(n=e("onOpenChange"))==null||n({open:!1,value:t.get("value")})},invokeOnVisibleRangeChange({prop:e,context:t,computed:n}){var r;(r=e("onVisibleRangeChange"))==null||r({view:t.get("view"),visibleRange:n("visibleRange")})},toggleVisibility({event:e,send:t,prop:n}){t({type:n("open")?"CONTROLLED.OPEN":"CONTROLLED.CLOSE",previousEvent:e})}}}}),js=(e,t)=>{let{context:n,prop:r}=e,i=n.get("view"),a=typeof t=="number"?n.get("focusedValue").set({[i]:t}):t;return aO(o=>{tO(o,r("minView"))&&(a=a.set({[o]:o==="day"?1:0}))}),a},sd=(e,t)=>{if(!e||!("hour"in e))return t;let n="timeZone"in e,r=t;return"hour"in t||(n?r=Uf($t(t),e.timeZone):r=$t(t)),r.set({hour:e.hour,minute:e.minute,second:e.second,millisecond:e.millisecond})};ld=(e,t,n,r)=>e==="year"?r!=null?r:"":e==="month"?n!=null?n:"":t!=null?t:"",dO=(e,t)=>e.split("__N__").join(String(t));hO=class extends X{constructor(){super(...arguments);J(this,"getDayView",()=>this.el.querySelector('[data-part="day-view"]'));J(this,"getMonthView",()=>this.el.querySelector('[data-part="month-view"]'));J(this,"getYearView",()=>this.el.querySelector('[data-part="year-view"]'));J(this,"renderDayTableHeader",()=>{let t=this.getDayView(),n=t==null?void 0:t.querySelector("thead");if(!n||!this.api.weekDays)return;let r=this.doc.createElement("tr");this.spreadProps(r,this.api.getTableRowProps({view:"day"})),this.api.weekDays.forEach(i=>{let a=this.doc.createElement("th");a.scope="col",a.setAttribute("aria-label",i.long),a.textContent=i.narrow,r.appendChild(a)}),n.innerHTML="",n.appendChild(r)});J(this,"renderDayTableBody",()=>{let t=this.getDayView(),n=t==null?void 0:t.querySelector("tbody");n&&(this.spreadProps(n,this.api.getTableBodyProps({view:"day"})),this.api.weeks&&(n.innerHTML="",this.api.weeks.forEach(r=>{let i=this.doc.createElement("tr");this.spreadProps(i,this.api.getTableRowProps({view:"day"})),r.forEach(a=>{let o=this.doc.createElement("td");this.spreadProps(o,this.api.getDayTableCellProps({value:a}));let s=this.doc.createElement("div");this.spreadProps(s,this.api.getDayTableCellTriggerProps({value:a})),s.textContent=String(a.day),o.appendChild(s),i.appendChild(o)}),n.appendChild(i)})))});J(this,"renderMonthTableBody",()=>{let t=this.getMonthView(),n=t==null?void 0:t.querySelector("tbody");if(!n)return;this.spreadProps(n,this.api.getTableBodyProps({view:"month"}));let r=this.api.getMonthsGrid({columns:4,format:"short"});n.innerHTML="",r.forEach(i=>{let a=this.doc.createElement("tr");this.spreadProps(a,this.api.getTableRowProps()),i.forEach(o=>{let s=this.doc.createElement("td");this.spreadProps(s,this.api.getMonthTableCellProps(v(p({},o),{columns:4})));let l=this.doc.createElement("div");this.spreadProps(l,this.api.getMonthTableCellTriggerProps(v(p({},o),{columns:4}))),l.textContent=o.label,s.appendChild(l),a.appendChild(s)}),n.appendChild(a)})});J(this,"renderYearTableBody",()=>{let t=this.getYearView(),n=t==null?void 0:t.querySelector("tbody");if(!n)return;this.spreadProps(n,this.api.getTableBodyProps());let r=this.api.getYearsGrid({columns:4});n.innerHTML="",r.forEach(i=>{let a=this.doc.createElement("tr");this.spreadProps(a,this.api.getTableRowProps({view:"year"})),i.forEach(o=>{let s=this.doc.createElement("td");this.spreadProps(s,this.api.getYearTableCellProps(v(p({},o),{columns:4})));let l=this.doc.createElement("div");this.spreadProps(l,this.api.getYearTableCellTriggerProps(v(p({},o),{columns:4}))),l.textContent=o.label,s.appendChild(l),a.appendChild(s)}),n.appendChild(a)})})}initMachine(t){return new Y(cO,t)}initApi(){return this.zagConnect(sO)}render(){let t=this.el.querySelector('[data-scope="date-picker"][data-part="root"]');t&&this.spreadProps(t,this.api.getRootProps());let n=this.el.querySelector('[data-scope="date-picker"][data-part="label"]');n&&this.spreadProps(n,this.api.getLabelProps());let r=this.el.querySelector('[data-scope="date-picker"][data-part="control"]');r&&this.spreadProps(r,this.api.getControlProps());let i=Array.from(this.el.querySelectorAll('[data-scope="date-picker"][data-part="input"]')),a=this.api.selectionMode;for(let c=0;c0){let c=i[0],d=()=>{let g=this.api.valueAsString,u=(Array.isArray(g)?g:g==null||g===""?[]:[String(g)]).filter(Boolean).join(", ");c.value!==u&&(c.value=u)};d(),queueMicrotask(()=>{requestAnimationFrame(d)})}gO(this.el,i,this.api.selectionMode);let o=this.el.querySelector('[data-scope="date-picker"][data-part="trigger"]');o&&this.spreadProps(o,this.api.getTriggerProps());let s=this.el.querySelector('[data-scope="date-picker"][data-part="positioner"]');s&&this.spreadProps(s,this.api.getPositionerProps());let l=this.el.querySelector('[data-scope="date-picker"][data-part="content"]');if(l&&this.spreadProps(l,this.api.getContentProps()),this.api.open){let c=this.getDayView(),d=this.getMonthView(),g=this.getYearView();if(c&&(c.hidden=this.api.view!=="day"),d&&(d.hidden=this.api.view!=="month"),g&&(g.hidden=this.api.view!=="year"),this.api.view==="day"&&c){let h=c.querySelector('[data-part="view-control"]');h&&this.spreadProps(h,this.api.getViewControlProps({view:"year"}));let u=c.querySelector('[data-part="prev-trigger"]');u&&this.spreadProps(u,this.api.getPrevTriggerProps());let f=c.querySelector('[data-part="view-trigger"]');f&&(this.spreadProps(f,this.api.getViewTriggerProps()),f.textContent=this.api.visibleRangeText.start);let m=c.querySelector('[data-part="next-trigger"]');m&&this.spreadProps(m,this.api.getNextTriggerProps());let P=c.querySelector("table");P&&this.spreadProps(P,this.api.getTableProps({view:"day"}));let C=c.querySelector("thead");C&&this.spreadProps(C,this.api.getTableHeaderProps({view:"day"})),this.renderDayTableHeader(),this.renderDayTableBody()}else if(this.api.view==="month"&&d){let h=d.querySelector('[data-part="view-control"]');h&&this.spreadProps(h,this.api.getViewControlProps({view:"month"}));let u=d.querySelector('[data-part="prev-trigger"]');u&&this.spreadProps(u,this.api.getPrevTriggerProps({view:"month"}));let f=d.querySelector('[data-part="view-trigger"]');f&&(this.spreadProps(f,this.api.getViewTriggerProps({view:"month"})),f.textContent=String(this.api.visibleRange.start.year));let m=d.querySelector('[data-part="next-trigger"]');m&&this.spreadProps(m,this.api.getNextTriggerProps({view:"month"}));let P=d.querySelector("table");P&&this.spreadProps(P,this.api.getTableProps({view:"month",columns:4})),this.renderMonthTableBody()}else if(this.api.view==="year"&&g){let h=g.querySelector('[data-part="view-control"]');h&&this.spreadProps(h,this.api.getViewControlProps({view:"year"}));let u=g.querySelector('[data-part="prev-trigger"]');u&&this.spreadProps(u,this.api.getPrevTriggerProps({view:"year"}));let f=g.querySelector('[data-part="decade"]');if(f){let C=this.api.getDecade();f.textContent=`${C.start} - ${C.end}`}let m=g.querySelector('[data-part="next-trigger"]');m&&this.spreadProps(m,this.api.getNextTriggerProps({view:"year"}));let P=g.querySelector("table");P&&this.spreadProps(P,this.api.getTableProps({view:"year",columns:4})),this.renderYearTableBody()}}}};fO={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=this.liveSocket,r=()=>Q(this.liveSocket),i=x(e,"min"),a=x(e,"max"),o=c=>c?c.map(d=>Zt(d)):void 0,s=c=>c?Zt(c):void 0,l=new hO(e,v(p(v(p({id:e.id},T(e,"controlled")?{value:o(ie(e,"value"))}:{defaultValue:o(ie(e,"defaultValue"))}),{defaultFocusedValue:s(x(e,"focusedValue")),defaultView:x(e,"defaultView"),dir:x(e,"dir"),locale:x(e,"locale"),timeZone:x(e,"timeZone"),disabled:T(e,"disabled"),readOnly:T(e,"readOnly"),required:T(e,"required"),invalid:T(e,"invalid"),outsideDaySelectable:T(e,"outsideDaySelectable"),closeOnSelect:Rf(e),min:i?Zt(i):void 0,max:a?Zt(a):void 0,startOfWeek:U(e,"startOfWeek"),fixedWeeks:T(e,"fixedWeeks"),selectionMode:x(e,"selectionMode"),maxSelectedDates:U(e,"maxSelectedDates"),placeholder:x(e,"placeholder"),minView:x(e,"minView"),maxView:x(e,"maxView"),defaultOpen:!1,inline:T(e,"inline"),positioning:$e(e)}),Af(e)),{onValueChange:c=>{var h;let d=(h=c.value)!=null&&h.length?c.value.map(u=>pO(u)).filter(Boolean).join(","):"",g=e.querySelector(`#${e.id}-value`);g&&g.value!==d&&(g.value=d,g.dispatchEvent(new Event("input",{bubbles:!0})),g.dispatchEvent(new Event("change",{bubbles:!0}))),K({el:e,canPushServer:r(),pushEvent:t,payload:{id:e.id,value:d||null},serverEventName:x(e,"onValueChange"),clientEventName:x(e,"onValueChangeClient")})},onFocusChange:c=>{var g;let d=x(e,"onFocusChange");d&&n.main.isConnected()&&t(d,{id:e.id,focused:(g=c.focused)!=null?g:!1})},onViewChange:c=>{let d=x(e,"onViewChange");d&&n.main.isConnected()&&t(d,{id:e.id,view:c.view})},onVisibleRangeChange:c=>{let d=x(e,"onVisibleRangeChange");d&&n.main.isConnected()&&t(d,{id:e.id,start:c.start,end:c.end})},onOpenChange:c=>{K({el:e,canPushServer:r(),pushEvent:t,payload:{id:e.id,open:c.open},serverEventName:x(e,"onOpenChange"),clientEventName:x(e,"onOpenChangeClient")})}}));l.init(),this.datePicker=l,this.handlers=[],this.handlers.push(this.handleEvent("date_picker_set_value",c=>{let d=c.date_picker_id;d&&d!==e.id||l.api.setValue([Zt(c.value)])})),this.onSetValue=c=>{var g;let d=(g=c.detail)==null?void 0:g.value;typeof d=="string"&&l.api.setValue([Zt(d)])},e.addEventListener("corex:date-picker:set-value",this.onSetValue)},updated(){var o;let e=this.el,t=x(e,"min"),n=x(e,"max"),r=x(e,"focusedValue"),i=T(e,"controlled"),a=ie(e,"value");(o=this.datePicker)==null||o.updateProps(p(v(p({},i?{value:(a!=null?a:[]).map(s=>Zt(s))}:{}),{defaultFocusedValue:r?Zt(r):void 0,defaultView:x(e,"defaultView"),dir:x(e,"dir"),locale:x(e,"locale"),timeZone:x(e,"timeZone"),disabled:T(e,"disabled"),readOnly:T(e,"readOnly"),required:T(e,"required"),invalid:T(e,"invalid"),outsideDaySelectable:T(e,"outsideDaySelectable"),closeOnSelect:Rf(e),min:t?Zt(t):void 0,max:n?Zt(n):void 0,startOfWeek:U(e,"startOfWeek"),fixedWeeks:T(e,"fixedWeeks"),selectionMode:x(e,"selectionMode"),maxSelectedDates:U(e,"maxSelectedDates"),placeholder:x(e,"placeholder"),minView:x(e,"minView"),maxView:x(e,"maxView"),inline:T(e,"inline"),positioning:$e(e)}),Af(e)))},destroyed(){var e;if(this.onSetValue&&this.el.removeEventListener("corex:date-picker:set-value",this.onSetValue),this.handlers)for(let t of this.handlers)this.removeHandleEvent(t);(e=this.datePicker)==null||e.destroy()}}});var Vm={};fe(Vm,{Dialog:()=>KO});function PO(e,t){let{state:n,send:r,context:i,prop:a,scope:o}=e,s=a("aria-label"),l=n.matches("open"),c=i.get("triggerValue");return{open:l,setOpen(d){n.matches("open")!==d&&r({type:d?"OPEN":"CLOSE"})},triggerValue:c,setTriggerValue(d){r({type:"TRIGGER_VALUE.SET",value:d})},getTriggerProps(d={}){let{value:g}=d,h=g==null?!1:c===g;return t.button(v(p({},Xr.trigger.attrs),{dir:a("dir"),id:Tm(o,g),"data-ownedby":o.id,"data-value":g,"aria-haspopup":"dialog",type:"button","aria-expanded":g==null?l:l&&h,"data-state":l?"open":"closed","aria-controls":Ad(o),"data-current":S(h),onClick(u){if(u.defaultPrevented)return;let f=l&&g!=null&&!h;r({type:f?"TRIGGER_VALUE.SET":"TOGGLE",value:g})}}))},getBackdropProps(){return t.element(v(p({},Xr.backdrop.attrs),{dir:a("dir"),hidden:!l,id:Im(o),"data-state":l?"open":"closed"}))},getPositionerProps(){return t.element(v(p({},Xr.positioner.attrs),{dir:a("dir"),id:Cm(o),style:On({pointerEvents:!l||!a("modal")?"none":void 0})}))},getContentProps(){let d=i.get("rendered");return t.element(v(p({},Xr.content.attrs),{dir:a("dir"),role:a("role"),hidden:!l,id:Ad(o),tabIndex:-1,"data-state":l?"open":"closed","aria-modal":a("modal"),"aria-label":s||void 0,"aria-labelledby":s||!d.title?void 0:Rd(o),"aria-describedby":d.description?kd(o):void 0,style:On({pointerEvents:a("modal")?void 0:"auto"})}))},getTitleProps(){return t.element(v(p({},Xr.title.attrs),{dir:a("dir"),id:Rd(o)}))},getDescriptionProps(){return t.element(v(p({},Xr.description.attrs),{dir:a("dir"),id:kd(o)}))},getCloseTriggerProps(){return t.button(v(p({},Xr.closeTrigger.attrs),{dir:a("dir"),id:wm(o),type:"button",onClick(d){d.defaultPrevented||(d.stopPropagation(),r({type:"CLOSE"}))}}))}}}function AO(e,t={}){let{defer:n=!0}=t,r=n?xO:a=>a(),i=[];return i.push(r(()=>{let o=(typeof e=="function"?e():e).filter(Boolean);o.length!==0&&i.push(VO(o))})),()=>{i.forEach(a=>a==null?void 0:a())}}function $O(e,t={}){let n,r=$(()=>{let a=(Array.isArray(e)?e:[e]).map(s=>typeof s=="function"?s():s).filter(s=>s!=null);if(a.length===0)return;let o=a[0];n=new DO(a,v(p({escapeDeactivates:!1,allowOutsideClick:!0,preventScroll:!0,returnFocusOnDeactivate:!0,delayInitialFocus:!1,fallbackFocus:o},t),{document:Ke(o)}));try{n.activate()}catch(s){}});return function(){n==null||n.deactivate(),r()}}function HO(e){let t=e.getBoundingClientRect().left;return Math.round(t)+e.scrollLeft?"paddingLeft":"paddingRight"}function Em(e){let t=At(e),n=t==null?void 0:t.scrollbarGutter;return n==="stable"||(n==null?void 0:n.startsWith("stable "))===!0}function BO(e){var u;let t=e!=null?e:document,n=(u=t.defaultView)!=null?u:window,{documentElement:r,body:i}=t;if(i.hasAttribute(xd))return;let o=Em(r)||Em(i),s=n.innerWidth-r.clientWidth;i.setAttribute(xd,"");let l=()=>Rg(r,"--scrollbar-width",`${s}px`),c=HO(r),d=()=>{let f={overflow:"hidden"};return!o&&s>0&&(f[c]=`${s}px`),kr(i,f)},g=()=>{var y,E;let{scrollX:f,scrollY:m,visualViewport:P}=n,C=(y=P==null?void 0:P.offsetLeft)!=null?y:0,V=(E=P==null?void 0:P.offsetTop)!=null?E:0,I={position:"fixed",overflow:"hidden",top:`${-(m-Math.floor(V))}px`,left:`${-(f-Math.floor(C))}px`,right:"0"};!o&&s>0&&(I[c]=`${s}px`);let b=kr(i,I);return()=>{b==null||b(),n.scrollTo({left:f,top:m,behavior:"instant"})}},h=[l(),ua()?g():d()];return()=>{h.forEach(f=>f==null?void 0:f()),i.removeAttribute(xd)}}function UO(e){var r,i;let t=e.querySelector('[data-scope="dialog"][data-part="title"]');if((r=t==null?void 0:t.textContent)!=null&&r.trim())return;let n=(i=x(e,"dialogDefaultLabel"))==null?void 0:i.trim();return n||"Dialog"}function qO(e,t){var r;let n=e.querySelector('[data-scope="dialog"][data-part="description"]');(r=n==null?void 0:n.textContent)!=null&&r.trim()||t.removeAttribute("aria-describedby")}function Sm(e){return v(p({id:e.id},T(e,"controlled")?{open:T(e,"open")}:{defaultOpen:T(e,"defaultOpen")}),{modal:T(e,"modal"),closeOnInteractOutside:T(e,"closeOnInteractOutside"),closeOnEscape:T(e,"closeOnEscapeKeyDown"),preventScroll:T(e,"preventScroll"),restoreFocus:T(e,"restoreFocus"),dir:q(e)})}function Pm(e,t){let n=tc(e),r=n.blockInteraction?e:void 0,i=e.querySelector('[data-scope="dialog"][data-part="backdrop"]'),a=e.querySelector('[data-scope="dialog"][data-part="content"]');i&&nc(i,t,n,r),a&&nc(a,t,n,r)}var mO,Xr,Cm,Im,Ad,Tm,Rd,kd,wm,Ma,vO,yO,bO,EO,SO,Nd,vm,Bi,Js,Qs,Od,Om,CO,IO,TO,wO,OO,VO,xO,RO,kO,Ne,ym,NO,DO,Dd,Vd,LO,MO,Fa,FO,bm,_O,xd,GO,WO,KO,xm=ne(()=>{"use strict";gr();gn();Wo();_e();Ce();se();mO=j("dialog").parts("trigger","backdrop","positioner","content","title","description","closeTrigger"),Xr=mO.build(),Cm=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.positioner)!=null?n:`dialog:${e.id}:positioner`},Im=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.backdrop)!=null?n:`dialog:${e.id}:backdrop`},Ad=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.content)!=null?n:`dialog:${e.id}:content`},Tm=(e,t)=>{var r;let n=(r=e.ids)==null?void 0:r.trigger;return n!=null?Ze(n)?n(t):n:t?`dialog:${e.id}:trigger:${t}`:`dialog:${e.id}:trigger`},Rd=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.title)!=null?n:`dialog:${e.id}:title`},kd=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.description)!=null?n:`dialog:${e.id}:description`},wm=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.closeTrigger)!=null?n:`dialog:${e.id}:close`},Ma=e=>e.getById(Ad(e)),vO=e=>e.getById(Cm(e)),yO=e=>e.getById(Im(e)),bO=e=>e.getById(Rd(e)),EO=e=>e.getById(kd(e)),SO=e=>e.getById(wm(e)),Nd=e=>xe(e.getDoc(),`[data-scope="dialog"][data-part="trigger"][data-ownedby="${e.id}"]`),vm=(e,t)=>t==null?Nd(e)[0]:e.getById(Tm(e,t));Bi=new WeakMap,Js=new WeakMap,Qs={},Od=0,Om=e=>e&&(e.host||Om(e.parentNode)),CO=(e,t)=>t.map(n=>{if(e.contains(n))return n;let r=Om(n);return r&&e.contains(r)?r:(console.error("[zag-js > ariaHidden] target",n,"in not contained inside",e,". Doing nothing"),null)}).filter(n=>!!n),IO=new Set(["script","output","status","next-route-announcer"]),TO=e=>IO.has(e.localName)||e.role==="status"||e.hasAttribute("aria-live")?!0:e.matches("[data-live-announcer]"),wO=(e,t)=>{let{parentNode:n,markerName:r,controlAttribute:i,explicitBooleanValue:a,followControlledElements:o=!0}=t,s=CO(n,Array.isArray(e)?e:[e]);Qs[r]||(Qs[r]=new WeakMap);let l=Qs[r],c=[],d=new Set,g=new Set(s),h=f=>{!f||d.has(f)||(d.add(f),h(f.parentNode))};s.forEach(f=>{h(f),o&&ye(f)&&Ul(f,m=>{h(m)})});let u=f=>{!f||g.has(f)||Array.prototype.forEach.call(f.children,m=>{if(d.has(m))u(m);else try{if(TO(m))return;let P=m.getAttribute(i),C=a?P==="true":P!==null&&P!=="false",V=(Bi.get(m)||0)+1,I=(l.get(m)||0)+1;Bi.set(m,V),l.set(m,I),c.push(m),V===1&&C&&Js.set(m,!0),I===1&&m.setAttribute(r,""),C||m.setAttribute(i,a?"true":"")}catch(P){console.error("[zag-js > ariaHidden] cannot operate on ",m,P)}})};return u(n),d.clear(),Od++,()=>{c.forEach(f=>{let m=Bi.get(f)-1,P=l.get(f)-1;Bi.set(f,m),l.set(f,P),m||(Js.has(f)||f.removeAttribute(i),Js.delete(f)),P||f.removeAttribute(r)}),Od--,Od||(Bi=new WeakMap,Bi=new WeakMap,Js=new WeakMap,Qs={})}},OO=e=>(Array.isArray(e)?e[0]:e).ownerDocument.body,VO=(e,t=OO(e),n="data-aria-hidden",r=!0)=>{if(t)return wO(e,{parentNode:t,markerName:n,controlAttribute:"aria-hidden",explicitBooleanValue:!0,followControlledElements:r})},xO=e=>{let t=requestAnimationFrame(()=>e());return()=>cancelAnimationFrame(t)};RO=Object.defineProperty,kO=(e,t,n)=>t in e?RO(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ne=(e,t,n)=>kO(e,typeof t!="symbol"?t+"":t,n),ym={activateTrap(e,t){if(e.length>0){let r=e[e.length-1];r!==t&&r.pause()}let n=e.indexOf(t);n===-1||e.splice(n,1),e.push(t)},deactivateTrap(e,t){let n=e.indexOf(t);n!==-1&&e.splice(n,1),e.length>0&&e[e.length-1].unpause()}},NO=[],DO=class{constructor(e,t){Ne(this,"trapStack"),Ne(this,"config"),Ne(this,"doc"),Ne(this,"state",{containers:[],containerGroups:[],tabbableGroups:[],nodeFocusedBeforeActivation:null,mostRecentlyFocusedNode:null,active:!1,paused:!1,delayInitialFocusTimer:void 0,recentNavEvent:void 0}),Ne(this,"portalContainers",new Set),Ne(this,"listenerCleanups",[]),Ne(this,"handleFocus",r=>{let i=ee(r),a=this.findContainerIndex(i,r)>=0;if(a||da(i))a&&(this.state.mostRecentlyFocusedNode=i);else{r.stopImmediatePropagation();let o,s=!0;if(this.state.mostRecentlyFocusedNode)if(yi(this.state.mostRecentlyFocusedNode)>0){let l=this.findContainerIndex(this.state.mostRecentlyFocusedNode),{tabbableNodes:c}=this.state.containerGroups[l];if(c.length>0){let d=c.findIndex(g=>g===this.state.mostRecentlyFocusedNode);d>=0&&(this.config.isKeyForward(this.state.recentNavEvent)?d+1=0&&(o=c[d-1],s=!1))}}else this.state.containerGroups.some(l=>l.tabbableNodes.some(c=>yi(c)>0))||(s=!1);else s=!1;s&&(o=this.findNextNavNode({target:this.state.mostRecentlyFocusedNode,isBackward:this.config.isKeyBackward(this.state.recentNavEvent)})),o?this.tryFocus(o):this.tryFocus(this.state.mostRecentlyFocusedNode||this.getInitialFocusNode())}this.state.recentNavEvent=void 0}),Ne(this,"handlePointerDown",r=>{let i=ee(r);if(!(this.findContainerIndex(i,r)>=0)){if(Fa(this.config.clickOutsideDeactivates,r)){this.deactivate({returnFocus:this.config.returnFocusOnDeactivate});return}Fa(this.config.allowOutsideClick,r)||r.preventDefault()}}),Ne(this,"handleClick",r=>{let i=ee(r);this.findContainerIndex(i,r)>=0||Fa(this.config.clickOutsideDeactivates,r)||Fa(this.config.allowOutsideClick,r)||(r.preventDefault(),r.stopImmediatePropagation())}),Ne(this,"handleTabKey",r=>{if(this.config.isKeyForward(r)||this.config.isKeyBackward(r)){this.state.recentNavEvent=r;let i=this.config.isKeyBackward(r),a=this.findNextNavNode({event:r,isBackward:i});if(!a)return;Vd(r)&&r.preventDefault(),this.tryFocus(a)}}),Ne(this,"handleEscapeKey",r=>{FO(r)&&Fa(this.config.escapeDeactivates,r)!==!1&&(r.preventDefault(),this.deactivate())}),Ne(this,"_mutationObserver"),Ne(this,"setupMutationObserver",()=>{let r=this.doc.defaultView||window;this._mutationObserver=new r.MutationObserver(i=>{i.some(s=>Array.from(s.removedNodes).some(c=>c===this.state.mostRecentlyFocusedNode))&&this.tryFocus(this.getInitialFocusNode()),i.some(s=>s.type==="attributes"&&(s.attributeName==="aria-controls"||s.attributeName==="aria-expanded")?!0:s.type==="childList"&&s.addedNodes.length>0?Array.from(s.addedNodes).some(l=>{if(l.nodeType!==Node.ELEMENT_NODE)return!1;let c=l;return fg(c)?!0:c.id&&!this.state.containers.some(d=>d.contains(c))?mg(c):!1}):!1)&&this.state.active&&!this.state.paused&&(this.updateTabbableNodes(),this.updatePortalContainers())})}),Ne(this,"updateObservedNodes",()=>{var r;(r=this._mutationObserver)==null||r.disconnect(),this.state.active&&!this.state.paused&&(this.state.containers.map(i=>{var a;(a=this._mutationObserver)==null||a.observe(i,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["aria-controls","aria-expanded"]})}),this.portalContainers.forEach(i=>{this.observePortalContainer(i)}))}),Ne(this,"getInitialFocusNode",()=>{let r=this.getNodeForOption("initialFocus",{hasFallback:!0});if(r===!1)return!1;if(r===void 0||r&&!lt(r)){let i=er(this.doc);if(i&&this.findContainerIndex(i)>=0)r=i;else{let a=this.state.tabbableGroups[0];r=a&&a.firstTabbableNode||this.getNodeForOption("fallbackFocus")}}else r===null&&(r=this.getNodeForOption("fallbackFocus"));if(!r)throw new Error("Your focus-trap needs to have at least one focusable element");if(r.isConnected||(r=this.getNodeForOption("fallbackFocus")),!r||!r.isConnected)throw new Error("Your focus-trap needs to have at least one focusable element");return r}),Ne(this,"tryFocus",r=>{if(r!==!1&&r!==er(this.doc)){if(!r||!r.focus){this.tryFocus(this.getInitialFocusNode());return}r.focus({preventScroll:!!this.config.preventScroll}),this.state.mostRecentlyFocusedNode=r,_O(r)&&r.select()}}),Ne(this,"deactivate",r=>{if(!this.state.active)return this;let i=p({onDeactivate:this.config.onDeactivate,onPostDeactivate:this.config.onPostDeactivate,checkCanReturnFocus:this.config.checkCanReturnFocus},r);clearTimeout(this.state.delayInitialFocusTimer),this.state.delayInitialFocusTimer=void 0,this.removeListeners(),this.state.active=!1,this.state.paused=!1,this.updateObservedNodes(),ym.deactivateTrap(this.trapStack,this),this.portalContainers.clear();let a=this.getOption(i,"onDeactivate"),o=this.getOption(i,"onPostDeactivate"),s=this.getOption(i,"checkCanReturnFocus"),l=this.getOption(i,"returnFocus","returnFocusOnDeactivate");a==null||a();let c=()=>{bm(()=>{if(l){let d=this.getReturnFocusNode(this.state.nodeFocusedBeforeActivation);this.tryFocus(d)}o==null||o()})};if(l&&s){let d=this.getReturnFocusNode(this.state.nodeFocusedBeforeActivation);return s(d).then(c,c),this}return c(),this}),Ne(this,"pause",r=>{if(this.state.paused||!this.state.active)return this;let i=this.getOption(r,"onPause"),a=this.getOption(r,"onPostPause");return this.state.paused=!0,i==null||i(),this.removeListeners(),this.updateObservedNodes(),a==null||a(),this}),Ne(this,"unpause",r=>{if(!this.state.paused||!this.state.active)return this;let i=this.getOption(r,"onUnpause"),a=this.getOption(r,"onPostUnpause");return this.state.paused=!1,i==null||i(),this.updateTabbableNodes(),this.addListeners(),this.updateObservedNodes(),a==null||a(),this}),Ne(this,"updateContainerElements",r=>(this.state.containers=Array.isArray(r)?r.filter(Boolean):[r].filter(Boolean),this.state.active&&this.updateTabbableNodes(),this.updateObservedNodes(),this)),Ne(this,"getReturnFocusNode",r=>{let i=this.getNodeForOption("setReturnFocus",{params:[r]});return i||(i===!1?!1:r)}),Ne(this,"getOption",(r,i,a)=>r&&r[i]!==void 0?r[i]:this.config[a||i]),Ne(this,"getNodeForOption",(r,{hasFallback:i=!1,params:a=[]}={})=>{let o=this.config[r];if(typeof o=="function"&&(o=o(...a)),o===!0&&(o=void 0),!o){if(o===void 0||o===!1)return o;throw new Error(`\`${r}\` was specified but was not a node, or did not return a node`)}let s=o;if(typeof o=="string"){try{s=this.doc.querySelector(o)}catch(l){throw new Error(`\`${r}\` appears to be an invalid selector; error="${l.message}"`)}if(!s&&!i)throw new Error(`\`${r}\` as selector refers to no known node`)}return s}),Ne(this,"findNextNavNode",r=>{let{event:i,isBackward:a=!1}=r,o=r.target||ee(i);this.updateTabbableNodes();let s=null;if(this.state.tabbableGroups.length>0){let l=this.findContainerIndex(o,i),c=l>=0?this.state.containerGroups[l]:void 0;if(l<0)a?s=this.state.tabbableGroups[this.state.tabbableGroups.length-1].lastTabbableNode:s=this.state.tabbableGroups[0].firstTabbableNode;else if(a){let d=this.state.tabbableGroups.findIndex(({firstTabbableNode:g})=>o===g);if(d<0&&((c==null?void 0:c.container)===o||lt(o)&&!Xn(o)&&!(c!=null&&c.nextTabbableNode(o,!1)))&&(d=l),d>=0){let g=d===0?this.state.tabbableGroups.length-1:d-1,h=this.state.tabbableGroups[g];s=yi(o)>=0?h.lastTabbableNode:h.lastDomTabbableNode}else Vd(i)||(s=c==null?void 0:c.nextTabbableNode(o,!1))}else{let d=this.state.tabbableGroups.findIndex(({lastTabbableNode:g})=>o===g);if(d<0&&((c==null?void 0:c.container)===o||lt(o)&&!Xn(o)&&!(c!=null&&c.nextTabbableNode(o)))&&(d=l),d>=0){let g=d===this.state.tabbableGroups.length-1?0:d+1,h=this.state.tabbableGroups[g];s=yi(o)>=0?h.firstTabbableNode:h.firstDomTabbableNode}else Vd(i)||(s=c==null?void 0:c.nextTabbableNode(o))}}else s=this.getNodeForOption("fallbackFocus");return s}),this.trapStack=t.trapStack||NO;let n=p({returnFocusOnDeactivate:!0,escapeDeactivates:!0,delayInitialFocus:!0,followControlledElements:!0,isKeyForward:LO,isKeyBackward:MO},t);this.doc=n.document||Ke(Array.isArray(e)?e[0]:e),this.config=n,this.updateContainerElements(e),this.setupMutationObserver()}addPortalContainer(e){let t=e.parentElement;t&&!this.portalContainers.has(t)&&(this.portalContainers.add(t),this.state.active&&!this.state.paused&&this.observePortalContainer(t))}observePortalContainer(e){var t;(t=this._mutationObserver)==null||t.observe(e,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["aria-controls","aria-expanded"]})}updatePortalContainers(){this.config.followControlledElements&&this.state.containers.forEach(e=>{pg(e).forEach(n=>{this.addPortalContainer(n)})})}get active(){return this.state.active}get paused(){return this.state.paused}findContainerIndex(e,t){let n=typeof(t==null?void 0:t.composedPath)=="function"?t.composedPath():void 0;return this.state.containerGroups.findIndex(({container:r,tabbableNodes:i})=>r.contains(e)||(n==null?void 0:n.includes(r))||i.find(a=>a===e)||this.isControlledElement(r,e))}isControlledElement(e,t){return this.config.followControlledElements?Do(e,t):!1}updateTabbableNodes(){if(this.state.containerGroups=this.state.containers.map(e=>{let t=An(e,{getShadowRoot:this.config.getShadowRoot}),n=pa(e,{getShadowRoot:this.config.getShadowRoot}),r=t[0],i=t[t.length-1],a=r,o=i,s=!1;for(let c=0;c0){s=!0;break}function l(c,d=!0){let g=t.indexOf(c);if(g>=0)return t[g+(d?1:-1)];let h=n.indexOf(c);if(!(h<0)){if(d){for(let u=h+1;u=0;u--)if(Xn(n[u]))return n[u]}}return{container:e,tabbableNodes:t,focusableNodes:n,posTabIndexesFound:s,firstTabbableNode:r,lastTabbableNode:i,firstDomTabbableNode:a,lastDomTabbableNode:o,nextTabbableNode:l}}),this.state.tabbableGroups=this.state.containerGroups.filter(e=>e.tabbableNodes.length>0),this.state.tabbableGroups.length<=0&&!this.getNodeForOption("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(this.state.containerGroups.find(e=>e.posTabIndexesFound)&&this.state.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")}addListeners(){if(this.state.active)return ym.activateTrap(this.trapStack,this),this.state.delayInitialFocusTimer=this.config.delayInitialFocus?bm(()=>{this.tryFocus(this.getInitialFocusNode())}):this.tryFocus(this.getInitialFocusNode()),this.listenerCleanups.push(re(this.doc,"focusin",this.handleFocus,!0),re(this.doc,"mousedown",this.handlePointerDown,{capture:!0,passive:!1}),re(this.doc,"touchstart",this.handlePointerDown,{capture:!0,passive:!1}),re(this.doc,"click",this.handleClick,{capture:!0,passive:!1}),re(this.doc,"keydown",this.handleTabKey,{capture:!0,passive:!1}),re(this.doc,"keydown",this.handleEscapeKey)),this}removeListeners(){if(this.state.active)return this.listenerCleanups.forEach(e=>e()),this.listenerCleanups=[],this}activate(e){if(this.state.active)return this;let t=this.getOption(e,"onActivate"),n=this.getOption(e,"onPostActivate"),r=this.getOption(e,"checkCanFocusTrap");r||this.updateTabbableNodes(),this.state.active=!0,this.state.paused=!1,this.state.nodeFocusedBeforeActivation=er(this.doc),t==null||t();let i=()=>{r&&this.updateTabbableNodes(),this.addListeners(),this.updateObservedNodes(),n==null||n()};return r?(r(this.state.containers.concat()).then(i,i),this):(i(),this)}},Dd=e=>(e==null?void 0:e.type)==="keydown",Vd=e=>Dd(e)&&(e==null?void 0:e.key)==="Tab",LO=e=>Dd(e)&&e.key==="Tab"&&!(e!=null&&e.shiftKey),MO=e=>Dd(e)&&e.key==="Tab"&&(e==null?void 0:e.shiftKey),Fa=(e,...t)=>typeof e=="function"?e(...t):e,FO=e=>!e.isComposing&&e.key==="Escape",bm=e=>setTimeout(e,0),_O=e=>e.localName==="input"&&"select"in e&&typeof e.select=="function";xd="data-scroll-lock";GO=te({props({props:e,scope:t}){let n=e.role==="alertdialog",r=n?()=>SO(t):void 0,i=typeof e.modal=="boolean"?e.modal:!0;return p({role:"dialog",modal:i,trapFocus:i,preventScroll:i,closeOnInteractOutside:i&&!n,closeOnEscape:!0,restoreFocus:!0,initialFocusEl:r},e)},initialState({prop:e}){return e("open")||e("defaultOpen")?"open":"closed"},context({bindable:e,prop:t,scope:n}){return{rendered:e(()=>({defaultValue:{title:!0,description:!0}})),triggerValue:e(()=>{var r;return{defaultValue:(r=t("defaultTriggerValue"))!=null?r:null,value:t("triggerValue"),onChange(i){let a=t("onTriggerValueChange");if(!a)return;let o=vm(n,i);a({value:i,triggerElement:o})}}})}},watch({track:e,action:t,prop:n}){e([()=>n("open")],()=>{t(["toggleVisibility"])})},states:{open:{entry:["checkRenderedElements","syncZIndex","setInitialFocus"],effects:["trackDismissableElement","trapFocus","preventScroll","hideContentBelow"],on:{"CONTROLLED.CLOSE":{target:"closed"},CLOSE:[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed",actions:["invokeOnClose"]}],TOGGLE:[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed",actions:["invokeOnClose"]}],"TRIGGER_VALUE.SET":{actions:["setTriggerValue"]}}},closed:{on:{"CONTROLLED.OPEN":{target:"open"},OPEN:[{guard:"isOpenControlled",actions:["invokeOnOpen","setTriggerValue"]},{target:"open",actions:["invokeOnOpen","setTriggerValue"]}],TOGGLE:[{guard:"isOpenControlled",actions:["invokeOnOpen","setTriggerValue"]},{target:"open",actions:["invokeOnOpen","setTriggerValue"]}],"TRIGGER_VALUE.SET":{actions:["setTriggerValue"]}}}},implementations:{guards:{isOpenControlled:({prop:e})=>e("open")!=null},effects:{trackDismissableElement({scope:e,send:t,prop:n}){return Mt(()=>Ma(e),{type:"dialog",defer:!0,pointerBlocking:n("modal"),exclude:Nd(e),onInteractOutside(i){var a;(a=n("onInteractOutside"))==null||a(i),n("closeOnInteractOutside")||i.preventDefault()},persistentElements:n("persistentElements"),onFocusOutside:n("onFocusOutside"),onPointerDownOutside:n("onPointerDownOutside"),onRequestDismiss:n("onRequestDismiss"),onEscapeKeyDown(i){var a;(a=n("onEscapeKeyDown"))==null||a(i),n("closeOnEscape")||i.preventDefault()},onDismiss(){t({type:"CLOSE",src:"interact-outside"})}})},preventScroll({scope:e,prop:t}){if(t("preventScroll"))return BO(e.getDoc())},trapFocus({scope:e,prop:t,context:n}){return t("trapFocus")?$O(()=>Ma(e),{preventScroll:!0,returnFocusOnDeactivate:!!t("restoreFocus"),initialFocus:t("initialFocusEl"),setReturnFocus:i=>{var l;let a=(l=t("finalFocusEl"))==null?void 0:l();if(a)return a;let o=n.get("triggerValue");if(o){let c=vm(e,o);if(c)return c}let s=Nd(e)[0];return s||i},getShadowRoot:!0}):void 0},hideContentBelow({scope:e,prop:t}){return t("modal")?AO(()=>[Ma(e)],{defer:!0}):void 0}},actions:{setInitialFocus({prop:e,scope:t}){e("trapFocus")||$(()=>{let n=nr({root:Ma(t),getInitialEl:e("initialFocusEl")});n==null||n.focus({preventScroll:!0})})},checkRenderedElements({context:e,scope:t}){$(()=>{e.set("rendered",{title:!!bO(t),description:!!EO(t)})})},syncZIndex({scope:e}){$(()=>{let t=Ma(e);if(!t)return;let n=At(t);[vO(e),yO(e)].forEach(i=>{i==null||i.style.setProperty("--z-index",n.zIndex),i==null||i.style.setProperty("--layer-index",n.getPropertyValue("--layer-index"))})})},invokeOnClose({prop:e}){var t;(t=e("onOpenChange"))==null||t({open:!1})},invokeOnOpen({prop:e}){var t;(t=e("onOpenChange"))==null||t({open:!0})},setTriggerValue({context:e,event:t}){t.value!==void 0&&e.set("triggerValue",t.value)},toggleVisibility({prop:e,send:t,event:n}){t({type:e("open")?"CONTROLLED.OPEN":"CONTROLLED.CLOSE",previousEvent:n})}}}});WO=class extends X{initMachine(e){return new Y(GO,e)}initApi(){return this.zagConnect(PO)}render(){var c;let e=this.el,t=(c=e.dataset.animation)!=null?c:"instant",n=e.querySelector('[data-scope="dialog"][data-part="trigger"]');n&&this.spreadProps(n,this.api.getTriggerProps());let r=e.querySelector('[data-scope="dialog"][data-part="backdrop"]');if(r){let d=this.api.getBackdropProps();t==="instant"?this.spreadProps(r,d):(t==="js"||t==="custom")&&(this.spreadProps(r,Nr(d)),r.removeAttribute("hidden"))}let i=e.querySelector('[data-scope="dialog"][data-part="positioner"]');i&&this.spreadProps(i,this.api.getPositionerProps());let a=e.querySelector('[data-scope="dialog"][data-part="content"]');if(a){let d=this.api.getContentProps();t==="instant"?this.spreadProps(a,d):(t==="js"||t==="custom")&&(this.spreadProps(a,Nr(d)),a.removeAttribute("hidden"),this.api.open||a.style.removeProperty("pointer-events")),qO(e,a)}let o=e.querySelector('[data-scope="dialog"][data-part="title"]');o&&this.spreadProps(o,this.api.getTitleProps());let s=e.querySelector('[data-scope="dialog"][data-part="description"]');s&&this.spreadProps(s,this.api.getDescriptionProps());let l=e.querySelector('[data-scope="dialog"][data-part="close-trigger"]');l&&this.spreadProps(l,this.api.getCloseTriggerProps())}};KO={mounted(){var s,l;let e=this.el,t=this,n=this.pushEvent.bind(this),r=()=>Q(this.liveSocket);t.lastOpen=T(e,"controlled")?(s=T(e,"open"))!=null?s:!1:(l=T(e,"defaultOpen"))!=null?l:!1;let i=new WO(e,v(p({id:e.id},T(e,"controlled")?{open:T(e,"open")}:{defaultOpen:T(e,"defaultOpen")}),{modal:T(e,"modal"),closeOnInteractOutside:T(e,"closeOnInteractOutside"),closeOnEscape:T(e,"closeOnEscapeKeyDown"),preventScroll:T(e,"preventScroll"),restoreFocus:T(e,"restoreFocus"),dir:q(e),"aria-label":UO(e),onOpenChange:c=>{var h;let d=(h=t.lastOpen)!=null?h:!1;t.lastOpen=c.open;let g={id:e.id,open:c.open,previousOpen:d};K({el:e,canPushServer:r(),pushEvent:n,payload:g,serverEventName:x(e,"onOpenChange"),clientEventName:x(e,"onOpenChangeClient")}),e.dataset.animation==="js"&&!T(e,"controlled")&&Pm(e,c.open)}}));if(i.init(),this.dialog=i,e.dataset.animation==="js"){let c=tc(e);_g(e,'[data-scope="dialog"][data-part="backdrop"], [data-scope="dialog"][data-part="content"]',c,d=>{if(d.dataset.part==="backdrop")return{scale:!1}})}let a=de(e);this.domRegistry=a,a.add("corex:dialog:set-open",c=>{let{open:d}=c.detail;i.api.setOpen(d)});let o=ce(this);this.handleRegistry=o,o.add("dialog_set_open",c=>{if(!c||typeof c!="object")return;let d=c;B(e.id,G(c))&&typeof d.open=="boolean"&&i.api.setOpen(d.open)}),o.add("dialog_open",c=>{B(e.id,G(c))&&r()&&this.pushEvent("dialog_open_response",{id:e.id,value:i.api.open})})},updated(){var n,r,i;let e=this.el;if(T(e,"controlled")){let a=(n=T(e,"open"))!=null?n:!1,o=(r=this.lastOpen)!=null?r:!1;this.lastOpen=a,e.dataset.animation==="js"&&a!==o&&Pm(e,a)}(i=this.dialog)==null||i.updateProps(Sm(e))},destroyed(){var e,t,n,r;(e=this.dialog)==null||e.updateProps(Sm(this.el)),(t=this.domRegistry)==null||t.teardown(),(n=this.handleRegistry)==null||n.teardown(),(r=this.dialog)==null||r.destroy()}}});var Lm={};fe(Lm,{Editable:()=>aV});function nV(e,t){var y;let{state:n,context:r,send:i,prop:a,scope:o,computed:s}=e,l=!!a("disabled"),c=s("isInteractive"),d=!!a("readOnly"),g=!!a("required"),h=!!a("invalid"),u=!!a("autoResize"),f=a("translations"),m=n.matches("edit"),P=a("placeholder"),C=typeof P=="string"?{edit:P,preview:P}:P,V=r.get("value"),I=V.trim()==="",b=I?(y=C==null?void 0:C.preview)!=null?y:"":V;return{editing:m,empty:I,value:V,valueText:b,setValue(E){i({type:"VALUE.SET",value:E,src:"setValue"})},clearValue(){i({type:"VALUE.SET",value:"",src:"clearValue"})},edit(){c&&i({type:"EDIT"})},cancel(){c&&i({type:"CANCEL"})},submit(){c&&i({type:"SUBMIT"})},getRootProps(){return t.element(v(p({},Wn.root.attrs),{id:zO(o),dir:a("dir")}))},getAreaProps(){return t.element(v(p({},Wn.area.attrs),{id:YO(o),dir:a("dir"),style:u?{display:"inline-grid"}:void 0,"data-focus":S(m),"data-disabled":S(l),"data-placeholder-shown":S(I)}))},getLabelProps(){return t.label(v(p({},Wn.label.attrs),{id:XO(o),dir:a("dir"),htmlFor:Ld(o),"data-focus":S(m),"data-invalid":S(h),"data-required":S(g),onClick(){if(m)return;let E=JO(o);E==null||E.focus({preventScroll:!0})}}))},getInputProps(){return t.input(v(p({},Wn.input.attrs),{dir:a("dir"),"aria-label":f==null?void 0:f.input,name:a("name"),form:a("form"),id:Ld(o),hidden:u?void 0:!m,placeholder:C==null?void 0:C.edit,maxLength:a("maxLength"),required:a("required"),disabled:l,"data-disabled":S(l),readOnly:d,"data-readonly":S(d),"aria-invalid":oe(h),"data-invalid":S(h),"data-autoresize":S(u),defaultValue:V,size:u?1:void 0,onChange(E){i({type:"VALUE.SET",src:"input.change",value:E.currentTarget.value})},onKeyDown(E){if(E.defaultPrevented||He(E))return;let N={Escape(){i({type:"CANCEL"}),E.preventDefault()},Enter(O){if(!s("submitOnEnter"))return;let{localName:w}=O.currentTarget;if(w==="textarea"){if(!(ga()?O.metaKey:O.ctrlKey))return;i({type:"SUBMIT",src:"keydown.enter"});return}w==="input"&&!O.shiftKey&&!O.metaKey&&(i({type:"SUBMIT",src:"keydown.enter"}),O.preventDefault())}}[E.key];N&&N(E)},style:u?{gridArea:"1 / 1 / auto / auto",visibility:m?void 0:"hidden"}:void 0}))},getPreviewProps(){return t.element(v(p({id:Rm(o)},Wn.preview.attrs),{dir:a("dir"),"data-placeholder-shown":S(I),"aria-readonly":oe(d),"data-readonly":S(l),"data-disabled":S(l),"aria-disabled":oe(l),"aria-invalid":oe(h),"data-invalid":S(h),"aria-label":f==null?void 0:f.edit,"data-autoresize":S(u),children:b,hidden:u?void 0:m,tabIndex:c?0:void 0,onClick(){c&&a("activationMode")==="click"&&i({type:"EDIT",src:"click"})},onFocus(){c&&a("activationMode")==="focus"&&i({type:"EDIT",src:"focus"})},onDoubleClick(E){E.defaultPrevented||c&&a("activationMode")==="dblclick"&&i({type:"EDIT",src:"dblclick"})},style:u?{whiteSpace:"pre",gridArea:"1 / 1 / auto / auto",visibility:m?"hidden":void 0,overflow:"hidden",textOverflow:"ellipsis"}:void 0}))},getEditTriggerProps(){return t.button(v(p({},Wn.editTrigger.attrs),{id:Dm(o),dir:a("dir"),"aria-label":f==null?void 0:f.edit,hidden:m,type:"button",disabled:l,onClick(E){E.defaultPrevented||c&&i({type:"EDIT",src:"edit.click"})}}))},getControlProps(){return t.element(v(p({id:ZO(o)},Wn.control.attrs),{dir:a("dir")}))},getSubmitTriggerProps(){return t.button(v(p({},Wn.submitTrigger.attrs),{dir:a("dir"),id:km(o),"aria-label":f==null?void 0:f.submit,hidden:!m,disabled:l,type:"button",onClick(E){E.defaultPrevented||c&&i({type:"SUBMIT",src:"submit.click"})}}))},getCancelTriggerProps(){return t.button(v(p({},Wn.cancelTrigger.attrs),{dir:a("dir"),"aria-label":f==null?void 0:f.cancel,id:Nm(o),hidden:!m,type:"button",disabled:l,onClick(E){E.defaultPrevented||c&&i({type:"CANCEL",src:"cancel.click"})}}))}}}function Am(e){var t;return(t=x(e,"defaultValue"))!=null?t:""}var jO,Wn,zO,YO,XO,Rm,Ld,ZO,km,Nm,Dm,el,JO,QO,eV,tV,rV,iV,aV,Mm=ne(()=>{"use strict";gn();_e();Ce();se();jO=j("editable").parts("root","area","label","preview","input","editTrigger","submitTrigger","cancelTrigger","control"),Wn=jO.build(),zO=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`editable:${e.id}`},YO=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.area)!=null?n:`editable:${e.id}:area`},XO=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`editable:${e.id}:label`},Rm=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.preview)!=null?n:`editable:${e.id}:preview`},Ld=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.input)!=null?n:`editable:${e.id}:input`},ZO=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.control)!=null?n:`editable:${e.id}:control`},km=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.submitTrigger)!=null?n:`editable:${e.id}:submit`},Nm=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.cancelTrigger)!=null?n:`editable:${e.id}:cancel`},Dm=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.editTrigger)!=null?n:`editable:${e.id}:edit`},el=e=>e.getById(Ld(e)),JO=e=>e.getById(Rm(e)),QO=e=>e.getById(km(e)),eV=e=>e.getById(Nm(e)),tV=e=>e.getById(Dm(e));rV=te({props({props:e}){return v(p({activationMode:"focus",submitMode:"both",defaultValue:"",selectOnFocus:!0},e),{translations:p({input:"editable input",edit:"edit",submit:"submit",cancel:"cancel"},e.translations)})},initialState({prop:e}){return e("edit")||e("defaultEdit")?"edit":"preview"},entry:["focusInputIfNeeded"],context:({bindable:e,prop:t})=>({value:e(()=>({defaultValue:t("defaultValue"),value:t("value"),onChange(n){var r;return(r=t("onValueChange"))==null?void 0:r({value:n})}})),previousValue:e(()=>({defaultValue:""}))}),watch({track:e,action:t,context:n,prop:r}){e([()=>n.get("value")],()=>{t(["syncInputValue"])}),e([()=>r("edit")],()=>{t(["toggleEditing"])})},computed:{submitOnEnter({prop:e}){let t=e("submitMode");return t==="both"||t==="enter"},submitOnBlur({prop:e}){let t=e("submitMode");return t==="both"||t==="blur"},isInteractive({prop:e}){return!(e("disabled")||e("readOnly"))}},on:{"VALUE.SET":{actions:["setValue"]}},states:{preview:{entry:["blurInput"],on:{"CONTROLLED.EDIT":{target:"edit",actions:["setPreviousValue","focusInput"]},EDIT:[{guard:"isEditControlled",actions:["invokeOnEdit"]},{target:"edit",actions:["setPreviousValue","focusInput","invokeOnEdit"]}]}},edit:{effects:["trackInteractOutside"],entry:["syncInputValue"],on:{"CONTROLLED.PREVIEW":[{guard:"isSubmitEvent",target:"preview",actions:["setPreviousValue","restoreFocus","invokeOnSubmit"]},{target:"preview",actions:["revertValue","restoreFocus","invokeOnCancel"]}],CANCEL:[{guard:"isEditControlled",actions:["invokeOnPreview"]},{target:"preview",actions:["revertValue","restoreFocus","invokeOnCancel","invokeOnPreview"]}],SUBMIT:[{guard:"isEditControlled",actions:["invokeOnPreview"]},{target:"preview",actions:["setPreviousValue","restoreFocus","invokeOnSubmit","invokeOnPreview"]}]}}},implementations:{guards:{isEditControlled:({prop:e})=>e("edit")!=null,isSubmitEvent:({event:e})=>{var t;return((t=e.previousEvent)==null?void 0:t.type)==="SUBMIT"}},effects:{trackInteractOutside({send:e,scope:t,prop:n,computed:r}){return Cs(el(t),{exclude(i){return[eV(t),QO(t)].some(o=>ge(o,i))},onFocusOutside:n("onFocusOutside"),onPointerDownOutside:n("onPointerDownOutside"),onInteractOutside(i){var o;if((o=n("onInteractOutside"))==null||o(i),i.defaultPrevented)return;let{focusable:a}=i.detail;e({type:r("submitOnBlur")?"SUBMIT":"CANCEL",src:"interact-outside",focusable:a})}})}},actions:{restoreFocus({event:e,scope:t,prop:n}){e.focusable||$(()=>{var i,a;let r=(a=(i=n("finalFocusEl"))==null?void 0:i())!=null?a:tV(t);r==null||r.focus({preventScroll:!0})})},clearValue({context:e}){e.set("value","")},focusInputIfNeeded({action:e,prop:t}){(t("edit")||t("defaultEdit"))&&e(["focusInput"])},focusInput({scope:e,prop:t}){$(()=>{let n=el(e);n&&(t("selectOnFocus")?n.select():n.focus({preventScroll:!0}))})},invokeOnCancel({prop:e,context:t}){var r;let n=t.get("previousValue");(r=e("onValueRevert"))==null||r({value:n})},invokeOnSubmit({prop:e,context:t}){var r;let n=t.get("value");(r=e("onValueCommit"))==null||r({value:n})},invokeOnEdit({prop:e}){var t;(t=e("onEditChange"))==null||t({edit:!0})},invokeOnPreview({prop:e}){var t;(t=e("onEditChange"))==null||t({edit:!1})},toggleEditing({prop:e,send:t,event:n}){t({type:e("edit")?"CONTROLLED.EDIT":"CONTROLLED.PREVIEW",previousEvent:n})},syncInputValue({context:e,scope:t}){let n=el(t);n&&Be(n,e.get("value"))},setValue({context:e,prop:t,event:n}){let r=t("maxLength"),i=r!=null?n.value.slice(0,r):n.value;e.set("value",i)},setPreviousValue({context:e}){e.set("previousValue",e.get("value"))},revertValue({context:e}){let t=e.get("previousValue");t&&e.set("value",t)},blurInput({scope:e}){var t;(t=el(e))==null||t.blur()}}}}),iV=class extends X{initMachine(e){return new Y(rV,e)}initApi(){return this.zagConnect(nV)}render(){var l;let e=(l=this.el.querySelector('[data-scope="editable"][data-part="root"]'))!=null?l:this.el;this.spreadProps(e,this.api.getRootProps());let t=this.el.querySelector('[data-scope="editable"][data-part="area"]');t&&this.spreadProps(t,this.api.getAreaProps());let n=this.el.querySelector('[data-scope="editable"][data-part="label"]');n&&this.spreadProps(n,this.api.getLabelProps());let r=this.el.querySelector('[data-scope="editable"][data-part="input"]');r&&this.spreadProps(r,this.api.getInputProps());let i=this.el.querySelector('[data-scope="editable"][data-part="preview"]');i&&this.spreadProps(i,this.api.getPreviewProps());let a=this.el.querySelector('[data-scope="editable"][data-part="edit-trigger"]');a&&this.spreadProps(a,this.api.getEditTriggerProps());let o=this.el.querySelector('[data-scope="editable"][data-part="submit-trigger"]');o&&this.spreadProps(o,this.api.getSubmitTriggerProps());let s=this.el.querySelector('[data-scope="editable"][data-part="cancel-trigger"]');s&&this.spreadProps(s,this.api.getCancelTriggerProps())}};aV={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>Q(this.liveSocket),r=x(e,"placeholder"),i=x(e,"activationMode"),a=T(e,"selectOnFocus"),o=new iV(e,v(p(p(p(p({id:e.id,defaultValue:Am(e),disabled:T(e,"disabled"),readOnly:T(e,"readOnly"),required:T(e,"required"),invalid:T(e,"invalid"),name:x(e,"name"),form:x(e,"form"),dir:q(e)},r!==void 0?{placeholder:r}:{}),i!==void 0?{activationMode:i}:{}),a!==void 0?{selectOnFocus:a}:{}),T(e,"controlledEdit")?{edit:T(e,"edit")}:{defaultEdit:T(e,"defaultEdit")}),{onValueChange:c=>{let d=e.querySelector('[data-scope="editable"][data-part="input"]');d&&(d.value=c.value,d.dispatchEvent(new Event("input",{bubbles:!0})),d.dispatchEvent(new Event("change",{bubbles:!0}))),K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,value:c.value},serverEventName:x(e,"onValueChange"),clientEventName:x(e,"onValueChangeClient")})}}));o.init(),this.editable=o;let s=de(e);this.domRegistry=s,s.add("corex:editable:set-value",c=>{var g;let d=(g=c.detail)==null?void 0:g.value;o.api.setValue(d==null?"":String(d))});let l=ce(this);this.handleRegistry=l,l.add("editable_set_value",c=>{B(e.id,G(c))&&o.api.setValue(Hg(c))})},updated(){var n;let e=this.el,t=Am(e);this.editable&&!this.editable.api.editing&&t!==this.editable.api.value&&this.editable.api.setValue(t),(n=this.editable)==null||n.updateProps(p({id:e.id,disabled:T(e,"disabled"),readOnly:T(e,"readOnly"),required:T(e,"required"),invalid:T(e,"invalid"),name:x(e,"name"),form:x(e,"form"),dir:q(e)},T(e,"controlledEdit")?{edit:T(e,"edit")}:{defaultEdit:T(e,"defaultEdit")}))},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.editable)==null||n.destroy()}}});var jm={};fe(jm,{FileUpload:()=>WV});function cV(e){return e==="audio/*"||e==="video/*"||e==="image/*"||e==="text/*"||/\w+\/[-+.\w]+/g.test(e)}function dV(e){return/^.*\.[\w]+$/.test(e)}function uV(e){if(e!=null)return typeof e=="string"?e:Array.isArray(e)?e.filter(Fm).join(","):Object.entries(e).reduce((t,[n,r])=>[...t,n,...r],[]).filter(Fm).join(",")}function gV(e,t,n){if(_a(e.size))if(_a(t)&&_a(n)){if(e.size>n)return[!1,"FILE_TOO_LARGE"];if(e.sizen)return[!1,"FILE_TOO_LARGE"]}return[!0,null]}function fV(e){let t=e.split(".").pop();return t&&pV.get(t)||null}function mV(e,t){if(e&&t){let n=Array.isArray(t)?t:typeof t=="string"?t.split(","):[];if(n.length===0)return!0;let r=e.name||"",i=(e.type||fV(r)||"").toLowerCase(),a=i.replace(/\/.*$/,"");return n.some(o=>{let s=o.trim().toLowerCase();return s.charAt(0)==="."?r.toLowerCase().endsWith(s):s.endsWith("/*")?a===s.replace(/\/.*$/,""):i===s})}return!0}function vV(e,t){let n=e.type==="application/x-moz-file"||mV(e,t);return[n,n?null:"FILE_INVALID_TYPE"]}function yV(e){let t=new Map;return function(r,i){let a=r+(i?Object.entries(i).sort((s,l)=>s[0]n==="Files"||n==="application/x-moz-file"):!!t&&"files"in t}function NV(e,t,n){let{prop:r,computed:i}=e;return!i("multiple")&&t>1?!1:!i("multiple")&&t+n.length===2?!0:!(t+n.length>r("maxFiles"))}function Hm(e,t,n=[],r=[]){let{prop:i,computed:a}=e,o=[],s=[],l={acceptedFiles:n,rejectedFiles:r};return t.forEach(c=>{var C;let[d,g]=vV(c,a("acceptAttr")),[h,u]=gV(c,i("minFileSize"),i("maxFileSize")),f=n.some(V=>Gi(V,c))||o.some(V=>Gi(V,c)),m=(C=i("validate"))==null?void 0:C(c,l),P=m?m.length===0:!0;if(d&&h&&P&&!f)o.push(c);else{let V=[g,u];f&&V.push("FILE_EXISTS"),P||V.push(...m!=null?m:[]),s.push({file:c,errors:V.filter(Boolean)})}}),NV(e,o.length,n)||(o.forEach(c=>{s.push({file:c,errors:["TOO_MANY_FILES"]})}),o.splice(0)),{acceptedFiles:o,rejectedFiles:s}}function DV(e,t){let n=be(e);try{if("DataTransfer"in n){let r=new n.DataTransfer;t.forEach(i=>{r.items.add(i)}),e.files=r.files}}catch(r){}}function Bm(e,t){if(!e||e.getAttribute("type")==="file")return!1;let n=e.closest(LV);return n!=t&&ge(t,n)}function MV(e,t){let{state:n,send:r,prop:i,computed:a,scope:o,context:s}=e,l=!!i("disabled"),c=!!i("readOnly"),d=!!i("required"),g=i("allowDrop"),h=i("translations"),u=n.matches("dragging"),f=n.matches("focused")&&!l,m=s.get("acceptedFiles"),P=i("maxFiles");return{dragging:u,focused:f,disabled:l,readOnly:c,transforming:s.get("transforming"),maxFilesReached:m.length>=P,remainingFiles:Math.max(0,P-m.length),openFilePicker(){l||c||r({type:"OPEN"})},deleteFile(C,V=yr){l||c||r({type:"FILE.DELETE",file:C,itemType:V})},acceptedFiles:m,rejectedFiles:s.get("rejectedFiles"),setFiles(C){l||c||r({type:"FILES.SET",files:C,count:C.length})},clearRejectedFiles(){l||c||r({type:"REJECTED_FILES.CLEAR"})},clearFiles(){l||c||r({type:"FILES.CLEAR"})},getFileSize(C){return CV(C.size,i("locale"))},createFileUrl(C,V){let I=o.getWin(),b=I.URL.createObjectURL(C);return V(b),()=>I.URL.revokeObjectURL(b)},setClipboardFiles(C){var b;if(l||c)return!1;let I=Array.from((b=C==null?void 0:C.items)!=null?b:[]).reduce((y,E)=>{if(E.kind!=="file")return y;let A=E.getAsFile();return A?[...y,A]:y},[]);return I.length?(r({type:"FILE.SELECT",files:I}),!0):!1},getRootProps(){return t.element(v(p({},Ht.root.attrs),{dir:i("dir"),id:Wm(o),"data-disabled":S(l),"data-readonly":S(c),"data-dragging":S(u)}))},getDropzoneProps(C={}){return t.element(v(p({},Ht.dropzone.attrs),{dir:i("dir"),id:Km(o),tabIndex:l||c||C.disableClick?void 0:0,role:C.disableClick?"application":"button","aria-label":h.dropzone,"aria-disabled":l||c||void 0,"data-invalid":S(i("invalid")),"data-disabled":S(l),"data-readonly":S(c),"data-dragging":S(u),onKeyDown(V){if(l||c||V.defaultPrevented)return;let I=ee(V);ge(V.currentTarget,I)&&(Bm(I,V.currentTarget)||C.disableClick||V.key!=="Enter"&&V.key!==" "||r({type:"DROPZONE.CLICK",src:"keydown"}))},onClick(V){if(l||c||V.defaultPrevented||C.disableClick)return;let I=ee(V);ge(V.currentTarget,I)&&(Bm(I,V.currentTarget)||(V.currentTarget.localName==="label"&&V.preventDefault(),r({type:"DROPZONE.CLICK"})))},onDragOver(V){if(l||c||!g)return;V.preventDefault(),V.stopPropagation();try{V.dataTransfer.dropEffect="copy"}catch(y){}if(!$m(V))return;let b=V.dataTransfer.items.length;r({type:"DROPZONE.DRAG_OVER",count:b})},onDragLeave(V){l||c||g&&(ge(V.currentTarget,V.relatedTarget)||r({type:"DROPZONE.DRAG_LEAVE"}))},onDrop(V){l||c||(g&&(V.preventDefault(),V.stopPropagation()),!$m(V))||lV(V.dataTransfer.items,i("directory")).then(b=>{r({type:"DROPZONE.DROP",files:Ll(b)})})},onFocus(){l||c||r({type:"DROPZONE.FOCUS"})},onBlur(){l||c||r({type:"DROPZONE.BLUR"})}}))},getTriggerProps(){return t.button(v(p({},Ht.trigger.attrs),{dir:i("dir"),id:IV(o),disabled:l||c,"data-disabled":S(l),"data-readonly":S(c),"data-invalid":S(i("invalid")),type:"button",onClick(C){l||c||(ge(kV(o),C.currentTarget)&&C.stopPropagation(),r({type:"OPEN"}))}}))},getHiddenInputProps(){return t.input({id:_d(o),tabIndex:-1,disabled:l||c,type:"file",required:i("required"),capture:i("capture"),name:i("name"),accept:a("acceptAttr"),webkitdirectory:i("directory")?"":void 0,multiple:a("multiple")||i("maxFiles")>1,"aria-hidden":!0,onClick(C){C.stopPropagation(),C.currentTarget.value=""},onInput(C){if(l||c)return;let{files:V}=C.currentTarget;r({type:"FILE.SELECT",files:V?Array.from(V):[]})},style:dt})},getItemGroupProps(C={}){let{type:V=yr}=C;return t.element(v(p({},Ht.itemGroup.attrs),{dir:i("dir"),"data-disabled":S(l),"data-type":V}))},getItemProps(C){let{file:V,type:I=yr}=C;return t.element(v(p({},Ht.item.attrs),{dir:i("dir"),id:wV(o,$a(V)),"data-disabled":S(l),"data-type":I}))},getItemNameProps(C){let{file:V,type:I=yr}=C;return t.element(v(p({},Ht.itemName.attrs),{dir:i("dir"),id:OV(o,$a(V)),"data-disabled":S(l),"data-type":I}))},getItemSizeTextProps(C){let{file:V,type:I=yr}=C;return t.element(v(p({},Ht.itemSizeText.attrs),{dir:i("dir"),id:VV(o,$a(V)),"data-disabled":S(l),"data-type":I}))},getItemPreviewProps(C){let{file:V,type:I=yr}=C;return t.element(v(p({},Ht.itemPreview.attrs),{dir:i("dir"),id:xV(o,$a(V)),"data-disabled":S(l),"data-type":I}))},getItemPreviewImageProps(C){var E;let{file:V,url:I,type:b=yr}=C;if(!V.type.startsWith("image/"))throw new Error("Preview Image is only supported for image files");return t.img(v(p({},Ht.itemPreviewImage.attrs),{alt:(E=h.itemPreview)==null?void 0:E.call(h,V),src:I,"data-disabled":S(l),"data-type":b}))},getItemDeleteTriggerProps(C){var b;let{file:V,type:I=yr}=C;return t.button(v(p({},Ht.itemDeleteTrigger.attrs),{dir:i("dir"),id:AV(o,$a(V)),type:"button",disabled:l||c,"data-disabled":S(l),"data-readonly":S(c),"data-type":I,"aria-label":(b=h.deleteFile)==null?void 0:b.call(h,V),onClick(){l||c||r({type:"FILE.DELETE",file:V,itemType:I})}}))},getLabelProps(){return t.label(v(p({},Ht.label.attrs),{dir:i("dir"),id:TV(o),htmlFor:_d(o),"data-disabled":S(l),"data-required":S(d)}))},getClearTriggerProps(){return t.button(v(p({},Ht.clearTrigger.attrs),{dir:i("dir"),type:"button",disabled:l||c,hidden:m.length===0,"data-disabled":S(l),"data-readonly":S(c),onClick(C){C.defaultPrevented||l||c||r({type:"FILES.CLEAR"})}}))}}}function Gm(e){return String.fromCharCode(e+(e>25?39:97))}function _V(e){let t="",n;for(n=Math.abs(e);n>52;n=n/52|0)t=Gm(n%52)+t;return Gm(n%52)+t}function $V(e,t){let n=t.length;for(;n;)e=e*33^t.charCodeAt(--n);return e}function HV(e){return _V($V(5381,e)>>>0)}function Ha(e){return HV(`${e.name}-${e.size}`)}function GV(e,t){var r,i;let n=t.acceptedFiles[0];return{id:e.id,acceptedCount:t.acceptedFiles.length,rejectedCount:t.rejectedFiles.length,firstAcceptedName:(r=n==null?void 0:n.name)!=null?r:null,firstAcceptedType:(i=n==null?void 0:n.type)!=null?i:null}}function UV(e,t){return{id:e.id,count:t.files.length}}function qV(e,t){return{id:e.id,count:t.files.length}}var oV,Ht,sV,Um,Md,Fd,lV,qm,Fm,Gi,_a,hV,pV,bV,SV,PV,CV,Wm,Km,_d,IV,TV,wV,OV,VV,xV,AV,$a,RV,_m,kV,yr,LV,FV,Kn,BV,WV,zm=ne(()=>{"use strict";_e();Ce();se();oV=j("file-upload").parts("root","dropzone","item","itemDeleteTrigger","itemGroup","itemName","itemPreview","itemPreviewImage","itemSizeText","label","trigger","clearTrigger"),Ht=oV.build(),sV=e=>typeof e.getAsEntry=="function"?e.getAsEntry():typeof e.webkitGetAsEntry=="function"?e.webkitGetAsEntry():null,Um=e=>e.isDirectory,Md=e=>e.isFile,Fd=(e,t)=>(Object.defineProperty(e,"relativePath",{value:t?`${t}/${e.name}`:e.name}),e),lV=(e,t)=>Promise.all(Array.from(e).filter(n=>n.kind==="file").map(n=>{let r=sV(n);if(!r)return null;if(Um(r)&&t)return qm(r.createReader(),`${r.name}`);if(Md(r)&&typeof n.getAsFile=="function"){let i=n.getAsFile();return Promise.resolve(i?Fd(i,""):null)}if(Md(r))return new Promise(i=>{r.file(a=>{i(Fd(a,""))})})}).filter(n=>n)),qm=(e,t="")=>new Promise(n=>{let r=[],i=()=>{e.readEntries(a=>{if(a.length===0){n(Promise.all(r).then(s=>s.flat()));return}let o=a.map(s=>{if(!s)return null;if(Um(s))return qm(s.createReader(),`${t}${s.name}`);if(Md(s))return new Promise(l=>{s.file(c=>{l(Fd(c,t))})})}).filter(s=>s);r.push(Promise.all(o)),i()})};i()});Fm=e=>cV(e)||dV(e);Gi=(e,t)=>e.name===t.name&&e.size===t.size&&e.type===t.type,_a=e=>e!=null;hV="3g2_video/3gpp2[3gp,3gpp_video/3gpp[3mf_model/3mf[7z_application/x-7z-compressed[aac_audio/aac[ac_application/pkix-attr-cert[adp_audio/adpcm[adts_audio/aac[ai_application/postscript[aml_application/automationml-aml+xml[amlx_application/automationml-amlx+zip[amr_audio/amr[apk_application/vnd.android.package-archive[apng_image/apng[appcache,manifest_text/cache-manifest[appinstaller_application/appinstaller[appx_application/appx[appxbundle_application/appxbundle[asc_application/pgp-keys[atom_application/atom+xml[atomcat_application/atomcat+xml[atomdeleted_application/atomdeleted+xml[atomsvc_application/atomsvc+xml[au,snd_audio/basic[avi_video/x-msvideo[avci_image/avci[avcs_image/avcs[avif_image/avif[aw_application/applixware[bdoc_application/bdoc[bin,bpk,buffer,deb,deploy,dist,distz,dll,dmg,dms,dump,elc,exe,img,iso,lrf,mar,msi,msm,msp,pkg,so_application/octet-stream[bmp,dib_image/bmp[btf,btif_image/prs.btif[bz2_application/x-bzip2[c_text/x-c[ccxml_application/ccxml+xml[cdfx_application/cdfx+xml[cdmia_application/cdmi-capability[cdmic_application/cdmi-container[cdmid_application/cdmi-domain[cdmio_application/cdmi-object[cdmiq_application/cdmi-queue[cer_application/pkix-cert[cgm_image/cgm[cjs_application/node[class_application/java-vm[coffee,litcoffee_text/coffeescript[conf,def,in,ini,list,log,text,txt_text/plain[cpp,cxx,cc_text/x-c++src[cpl_application/cpl+xml[cpt_application/mac-compactpro[crl_application/pkix-crl[css_text/css[csv_text/csv[cu_application/cu-seeme[cwl_application/cwl[cww_application/prs.cww[davmount_application/davmount+xml[dbk_application/docbook+xml[doc_application/msword[docx_application/vnd.openxmlformats-officedocument.wordprocessingml.document[dsc_text/prs.lines.tag[dssc_application/dssc+der[dtd_application/xml-dtd[dwd_application/atsc-dwd+xml[ear,jar,war_application/java-archive[ecma_application/ecmascript[emf_image/emf[eml,mime_message/rfc822[emma_application/emma+xml[emotionml_application/emotionml+xml[eot_application/vnd.ms-fontobject[eps,ps_application/postscript[epub_application/epub+zip[exi_application/exi[exp_application/express[exr_image/aces[ez_application/andrew-inset[fdf_application/fdf[fdt_application/fdt+xml[fits_image/fits[flac_audio/flac[flv_video/x-flv[g3_image/g3fax[geojson_application/geo+json[gif_image/gif[glb_model/gltf-binary[gltf_model/gltf+json[gml_application/gml+xml[go_text/x-go[gpx_application/gpx+xml[gz_application/gzip[h_text/x-h[h261_video/h261[h263_video/h263[h264_video/h264[heic_image/heic[heics_image/heic-sequence[heif_image/heif[heifs_image/heif-sequence[htm,html,shtml_text/html[ico_image/x-icon[icns_image/x-icns[ics,ifb_text/calendar[iges,igs_model/iges[ink,inkml_application/inkml+xml[ipa_application/octet-stream[java_text/x-java-source[jp2,jpg2_image/jp2[jpeg,jpe,jpg_image/jpeg[jpf,jpx_image/jpx[jpm,jpgm_image/jpm[jpgv_video/jpeg[jph_image/jph[js,mjs_text/javascript[json_application/json[json5_application/json5[jsonld_application/ld+json[jsx_text/jsx[jxl_image/jxl[jxr_image/jxr[ktx_image/ktx[ktx2_image/ktx2[less_text/less[m1v,m2v,mpe,mpeg,mpg_video/mpeg[m4a_audio/mp4[m4v_video/x-m4v[md,markdown_text/markdown[mid,midi,kar,rmi_audio/midi[mkv_video/x-matroska[mp2,mp2a,mp3,mpga,m3a,m2a_audio/mpeg[mp4,mp4v,mpg4_video/mp4[mp4a_audio/mp4[mp4s,m4p_application/mp4[odp_application/vnd.oasis.opendocument.presentation[oda_application/oda[ods_application/vnd.oasis.opendocument.spreadsheet[odt_application/vnd.oasis.opendocument.text[oga,ogg,opus,spx_audio/ogg[ogv_video/ogg[ogx_application/ogg[otf_font/otf[p12,pfx_application/x-pkcs12[pdf_application/pdf[pem_application/x-pem-file[php_text/x-php[png_image/png[ppt_application/vnd.ms-powerpoint[pptx_application/vnd.openxmlformats-officedocument.presentationml.presentation[pskcxml_application/pskc+xml[psd_image/vnd.adobe.photoshop[py_text/x-python[qt,mov_video/quicktime[rar_application/vnd.rar[rdf_application/rdf+xml[rtf_text/rtf[sass_text/x-sass[scss_text/x-scss[sgm,sgml_text/sgml[sh_application/x-sh[svg,svgz_image/svg+xml[swf_application/x-shockwave-flash[tar_application/x-tar[tif,tiff_image/tiff[toml_application/toml[ts_video/mp2t[tsx_text/tsx[tsv_text/tab-separated-values[ttc_font/collection[ttf_font/ttf[vtt_text/vtt[wasm_application/wasm[wav_audio/wav[weba_audio/webm[webm_video/webm[webmanifest_application/manifest+json[webp_image/webp[wma_audio/x-ms-wma[wmv_video/x-ms-wmv[woff_font/woff[woff2_font/woff2[xls_application/vnd.ms-excel[xlsx_application/vnd.openxmlformats-officedocument.spreadsheetml.sheet[xml_application/xml[xz_application/x-xz[yaml,yml_text/yaml[zip_application/zip",pV=new Map(hV.split("[").flatMap(e=>{let[t,n]=e.split("_");return t.split(",").map(r=>[r,n])}));bV=yV(Intl.NumberFormat);SV=["","kilo","mega","giga","tera"],PV=["","kilo","mega","giga","tera","peta"],CV=(e,t="en-US",n={})=>{if(Number.isNaN(e))return"";if(e===0)return"0 B";let{unitSystem:r="decimal",precision:i=3,unit:a="byte",unitDisplay:o="short"}=n,s=r==="binary"?1024:1e3,l=a==="bit"?SV:PV,c=e<0,g=Math.abs(e),h=0;for(;g>=s&&h{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`file:${e.id}`},Km=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.dropzone)!=null?n:`file:${e.id}:dropzone`},_d=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.hiddenInput)!=null?n:`file:${e.id}:input`},IV=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.trigger)!=null?n:`file:${e.id}:trigger`},TV=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`file:${e.id}:label`},wV=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.item)==null?void 0:r.call(n,t))!=null?i:`file:${e.id}:item:${t}`},OV=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemName)==null?void 0:r.call(n,t))!=null?i:`file:${e.id}:item-name:${t}`},VV=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemSizeText)==null?void 0:r.call(n,t))!=null?i:`file:${e.id}:item-size:${t}`},xV=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemPreview)==null?void 0:r.call(n,t))!=null?i:`file:${e.id}:item-preview:${t}`},AV=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemDeleteTrigger)==null?void 0:r.call(n,t))!=null?i:`file:${e.id}:item-delete:${t}`},$a=e=>og(`${e.name}-${e.size}`),RV=e=>e.getById(Wm(e)),_m=e=>e.getById(_d(e)),kV=e=>e.getById(Km(e));yr="accepted",LV="button, a[href], input:not([type='file']), select, textarea, [tabindex], [contenteditable]";FV=te({props({props:e}){return v(p({minFileSize:0,maxFileSize:Number.POSITIVE_INFINITY,maxFiles:1,allowDrop:!0,preventDocumentDrop:!0,defaultAcceptedFiles:[]},e),{translations:p({dropzone:"dropzone",itemPreview:t=>`preview of ${t.name}`,deleteFile:t=>`delete file ${t.name}`},e.translations)})},initialState(){return"idle"},context({prop:e,bindable:t,getContext:n}){return{acceptedFiles:t(()=>({defaultValue:e("defaultAcceptedFiles"),value:e("acceptedFiles"),isEqual:(r,i)=>r.length===(i==null?void 0:i.length)&&r.every((a,o)=>Gi(a,i[o])),hash(r){return r.map(i=>`${i.name}-${i.size}`).join(",")},onChange(r){var a,o;let i=n();(a=e("onFileAccept"))==null||a({files:r}),(o=e("onFileChange"))==null||o({acceptedFiles:r,rejectedFiles:i.get("rejectedFiles")})}})),rejectedFiles:t(()=>({defaultValue:[],isEqual:(r,i)=>r.length===(i==null?void 0:i.length)&&r.every((a,o)=>Gi(a.file,i[o].file)),onChange(r){var a,o;let i=n();(a=e("onFileReject"))==null||a({files:r}),(o=e("onFileChange"))==null||o({acceptedFiles:i.get("acceptedFiles"),rejectedFiles:r})}})),transforming:t(()=>({defaultValue:!1}))}},computed:{acceptAttr:({prop:e})=>uV(e("accept")),multiple:({prop:e})=>e("maxFiles")>1},watch({track:e,context:t,action:n}){e([()=>t.hash("acceptedFiles")],()=>{n(["syncInputElement"])})},on:{"FILES.SET":{actions:["setFiles"]},"FILE.SELECT":{actions:["setEventFiles"]},"FILE.DELETE":{actions:["removeFile"]},"FILES.CLEAR":{actions:["clearFiles"]},"REJECTED_FILES.CLEAR":{actions:["clearRejectedFiles"]}},effects:["preventDocumentDrop"],states:{idle:{on:{OPEN:{actions:["openFilePicker"]},"DROPZONE.CLICK":{actions:["openFilePicker"]},"DROPZONE.FOCUS":{target:"focused"},"DROPZONE.DRAG_OVER":{target:"dragging"}}},focused:{on:{"DROPZONE.BLUR":{target:"idle"},OPEN:{actions:["openFilePicker"]},"DROPZONE.CLICK":{actions:["openFilePicker"]},"DROPZONE.DRAG_OVER":{target:"dragging"}}},dragging:{on:{"DROPZONE.DROP":{target:"idle",actions:["setEventFiles"]},"DROPZONE.DRAG_LEAVE":{target:"idle"}}}},implementations:{effects:{preventDocumentDrop({prop:e,scope:t}){if(!e("preventDocumentDrop")||!e("allowDrop")||e("disabled"))return;let n=t.getDoc(),r=a=>{a==null||a.preventDefault()},i=a=>{ge(RV(t),ee(a))||a.preventDefault()};return vt(re(n,"dragover",r,!1),re(n,"drop",i,!1))}},actions:{syncInputElement({scope:e,context:t}){queueMicrotask(()=>{let n=_m(e);if(!n)return;DV(n,t.get("acceptedFiles"));let r=e.getWin();n.dispatchEvent(new r.Event("change",{bubbles:!0}))})},openFilePicker({scope:e}){$(()=>{var t;(t=_m(e))==null||t.click()})},setFiles(e){let{computed:t,context:n,event:r}=e,{acceptedFiles:i,rejectedFiles:a}=Hm(e,r.files);n.set("acceptedFiles",t("multiple")?i:i.length>0?[i[0]]:[]),n.set("rejectedFiles",a)},setEventFiles(e){let{computed:t,context:n,event:r,prop:i}=e,a=n.get("acceptedFiles"),o=n.get("rejectedFiles"),{acceptedFiles:s,rejectedFiles:l}=Hm(e,r.files,a,o),c=g=>{if(t("multiple")){n.set("acceptedFiles",h=>[...h,...g]),n.set("rejectedFiles",l);return}if(g.length){n.set("acceptedFiles",[g[0]]),n.set("rejectedFiles",l);return}l.length&&(n.set("acceptedFiles",n.get("acceptedFiles")),n.set("rejectedFiles",l))},d=i("transformFiles");d?(n.set("transforming",!0),d(s).then(c).catch(g=>{Ut(`[zag-js/file-upload] error transforming files +${g}`)}).finally(()=>{n.set("transforming",!1)})):c(s)},removeFile({context:e,event:t}){if(t.itemType==="rejected"){let n=e.get("rejectedFiles").filter(r=>!Gi(r.file,t.file));e.set("rejectedFiles",n)}else{let n=e.get("acceptedFiles").filter(r=>!Gi(r,t.file));e.set("acceptedFiles",n)}},clearRejectedFiles({context:e}){e.set("rejectedFiles",[])},clearFiles({context:e}){e.set("acceptedFiles",[]),e.set("rejectedFiles",[])}}}}),Kn="accepted";BV=class extends X{constructor(){super(...arguments);J(this,"previewCleanup",new Map);J(this,"sentinelSnapshot","")}initMachine(t){return new Y(FV,t)}initApi(){return this.zagConnect(MV)}cleanupPreviews(){for(let t of this.previewCleanup.values())t();this.previewCleanup.clear()}render(){var l,c,d;let t=(l=this.el.querySelector('[data-scope="file-upload"][data-part="root"]'))!=null?l:this.el;this.spreadProps(t,this.api.getRootProps());let n=this.el.querySelector('[data-scope="file-upload"][data-part="label"]');n&&this.spreadProps(n,this.api.getLabelProps());let r=this.el.querySelector('[data-scope="file-upload"][data-part="dropzone"]');r&&this.spreadProps(r,this.api.getDropzoneProps());let i=this.el.querySelector('[data-scope="file-upload"][data-part="trigger"]');i&&this.spreadProps(i,this.api.getTriggerProps());let a=(c=this.el.querySelector('[data-scope="file-upload"][data-part="hidden-input"]'))!=null?c:t.querySelector('input[type="file"]');a&&this.spreadProps(a,this.api.getHiddenInputProps());let o=this.el.querySelector('ul[data-scope="file-upload"][data-part="item-group"][data-file-type="accepted"]');o&&(this.spreadProps(o,this.api.getItemGroupProps({type:Kn})),this.syncAcceptedItems(o));let s=this.el.querySelectorAll('[data-scope="file-upload"][data-part="item"]');for(let g of Array.from(s)){let h=this.getAcceptedFileForElement(g);if(!h)continue;this.spreadProps(g,this.api.getItemProps({file:h,type:Kn}));let u=g.querySelector('[data-scope="file-upload"][data-part="item-name"]');u&&this.spreadProps(u,this.api.getItemNameProps({file:h,type:Kn}));let f=g.querySelector('[data-scope="file-upload"][data-part="item-preview"]');f&&this.spreadProps(f,this.api.getItemPreviewProps({file:h,type:Kn}));let m=g.querySelector('[data-scope="file-upload"][data-part="item-preview-image"]');if(m&&h.type.startsWith("image/")){let V=Ha(h);if(m.dataset.corexPreviewKey!==V||!m.getAttribute("src")){let b=this.previewCleanup.get(m);b==null||b(),m.removeAttribute("src");let y=this.api.createFileUrl(h,E=>{this.spreadProps(m,this.api.getItemPreviewImageProps({file:h,type:Kn,url:E}))});this.previewCleanup.set(m,y),m.dataset.corexPreviewKey=V}else{let b=(d=m.getAttribute("src"))!=null?d:"";b&&this.spreadProps(m,this.api.getItemPreviewImageProps({file:h,type:Kn,url:b}))}}let P=g.querySelector('[data-scope="file-upload"][data-part="item-size-text"]');P&&(this.spreadProps(P,this.api.getItemSizeTextProps({file:h,type:Kn})),P.textContent=this.api.getFileSize(h));let C=g.querySelector('[data-scope="file-upload"][data-part="item-delete-trigger"]');C&&this.spreadProps(C,this.api.getItemDeleteTriggerProps({file:h,type:Kn}))}this.touchSentinel()}touchSentinel(){let t=this.el.querySelector('[data-part="hidden-input-sentinel"]');if(!t)return;let n=this.api.acceptedFiles.map(r=>Ha(r)).join(",");n!==this.sentinelSnapshot&&(this.sentinelSnapshot=n,t.dispatchEvent(new Event("input",{bubbles:!0})))}syncAcceptedItems(t){this.syncItemList(t,this.api.acceptedFiles)}syncItemList(t,n){let r=n.map(o=>Ha(o)),i=new Set(r),a=new Map;t.querySelectorAll("li[data-corex-file-item]").forEach(o=>{let s=o.dataset.fileKey;s&&a.set(s,o)});for(let o of[...a.keys()])if(!i.has(o)){let s=a.get(o);if(!s)continue;s.querySelectorAll('img[data-part="item-preview-image"]').forEach(l=>{let c=this.previewCleanup.get(l);c&&(c(),this.previewCleanup.delete(l))}),s.remove(),a.delete(o)}for(let o of n){let s=Ha(o),l=a.get(s);l||(l=this.buildItemLi(o,s),a.set(s,l)),t.appendChild(l)}}buildItemLi(t,n){let r=this.doc,i=r.createElement("li");i.setAttribute("data-scope","file-upload"),i.setAttribute("data-part","item"),i.setAttribute("data-corex-file-item",""),i.dataset.fileKey=n,i.dataset.fileType=Kn;let a=r.createElement("div");if(a.setAttribute("data-scope","file-upload"),a.setAttribute("data-part","item-lead"),t.type.startsWith("image/")){let c=r.createElement("div");c.setAttribute("data-scope","file-upload"),c.setAttribute("data-part","item-preview");let d=r.createElement("img");d.setAttribute("data-scope","file-upload"),d.setAttribute("data-part","item-preview-image"),c.appendChild(d),a.appendChild(c)}i.appendChild(a);let o=r.createElement("div");o.setAttribute("data-scope","file-upload"),o.setAttribute("data-part","item-name"),o.textContent=t.name,i.appendChild(o);let s=r.createElement("div");s.setAttribute("data-scope","file-upload"),s.setAttribute("data-part","item-size-text"),i.appendChild(s);let l=r.createElement("button");return l.setAttribute("data-scope","file-upload"),l.setAttribute("data-part","item-delete-trigger"),l.type="button",this.fillDeleteTriggerContent(l),i.appendChild(l),i}fillDeleteTriggerContent(t){let n=this.el.querySelector("[data-file-upload-item-close-template]");if(!(n!=null&&n.content))return;t.replaceChildren();let r=n.content.cloneNode(!0);for(let i of Array.from(r.childNodes))i.nodeType===1&&t.appendChild(i)}getAcceptedFileForElement(t){let n=t.dataset.fileKey;if(n)return this.api.acceptedFiles.find(r=>Ha(r)===n)}};WV={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>Q(this.liveSocket),r=U(e,"maxFiles"),i=U(e,"maxFileSize"),a=U(e,"minFileSize"),o=e.dataset.allowDrop,s=e.dataset.preventDocumentDrop,l=x(e,"translationDropzone"),c=new BV(e,{id:e.id,disabled:T(e,"disabled"),invalid:T(e,"invalid"),readOnly:T(e,"readOnly"),required:T(e,"required"),name:x(e,"name"),dir:q(e),allowDrop:o===void 0?!0:o!=="false",preventDocumentDrop:s===void 0?!0:s!=="false",maxFiles:r!=null?r:1,maxFileSize:i!=null?i:Number.POSITIVE_INFINITY,minFileSize:a!=null?a:0,accept:x(e,"accept"),directory:T(e,"directory"),translations:l?{dropzone:l}:void 0,onFileChange:h=>{K({el:e,canPushServer:n(),pushEvent:t,payload:GV(e,h),serverEventName:x(e,"onFileChange"),clientEventName:x(e,"onFileChangeClient")})},onFileAccept:h=>{K({el:e,canPushServer:n(),pushEvent:t,payload:UV(e,h),serverEventName:x(e,"onFileAccept"),clientEventName:x(e,"onFileAcceptClient")})},onFileReject:h=>{K({el:e,canPushServer:n(),pushEvent:t,payload:qV(e,h),serverEventName:x(e,"onFileReject"),clientEventName:x(e,"onFileRejectClient")})}});c.init(),this.fileUpload=c,this.handlers=[];let d=de(e);this.domRegistry=d,d.add("corex:file-upload:clear-files",()=>{c.api.clearFiles()}),d.add("corex:file-upload:clear-rejected",()=>{c.api.clearRejectedFiles()}),d.add("corex:file-upload:open",()=>{c.api.openFilePicker()});let g=ce(this);this.handleRegistry=g,g.add("file_upload_clear_files",h=>{B(e.id,G(h))&&c.api.clearFiles()}),g.add("file_upload_clear_rejected",h=>{B(e.id,G(h))&&c.api.clearRejectedFiles()}),g.add("file_upload_open",h=>{B(e.id,G(h))&&c.api.openFilePicker()})},updated(){var e,t,n,r;(r=this.fileUpload)==null||r.updateProps({id:this.el.id,disabled:T(this.el,"disabled"),invalid:T(this.el,"invalid"),readOnly:T(this.el,"readOnly"),required:T(this.el,"required"),name:x(this.el,"name"),dir:q(this.el),allowDrop:this.el.dataset.allowDrop===void 0?!0:this.el.dataset.allowDrop!=="false",preventDocumentDrop:this.el.dataset.preventDocumentDrop===void 0?!0:this.el.dataset.preventDocumentDrop!=="false",maxFiles:(e=U(this.el,"maxFiles"))!=null?e:1,maxFileSize:(t=U(this.el,"maxFileSize"))!=null?t:Number.POSITIVE_INFINITY,minFileSize:(n=U(this.el,"minFileSize"))!=null?n:0,accept:x(this.el,"accept"),directory:T(this.el,"directory")})},destroyed(){var e,t,n,r;if(this.handlers)for(let i of this.handlers)this.removeHandleEvent(i);(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.fileUpload)==null||n.cleanupPreviews(),(r=this.fileUpload)==null||r.destroy()}}});var hv={};fe(hv,{FloatingPanel:()=>yx});function JV(e){if(!$d.has(e)){let t=e.ownerDocument.defaultView||window;$d.set(e,t.getComputedStyle(e))}return $d.get(e)}function cv(e,t={}){return Nn(QV(e,t))}function QV(e,t={}){let{excludeScrollbar:n=!1,excludeBorders:r=!1}=t,{x:i,y:a,width:o,height:s}=e.getBoundingClientRect(),l={x:i,y:a,width:o,height:s},c=JV(e),{borderLeftWidth:d,borderTopWidth:g,borderRightWidth:h,borderBottomWidth:u}=c,f=Zm(d,h),m=Zm(g,u);if(r&&(l.width-=f,l.height-=m,l.x+=Hd(d),l.y+=Hd(g)),n){let P=e.offsetWidth-e.clientWidth-f,C=e.offsetHeight-e.clientHeight-m;l.width-=P,l.height-=C}return l}function ex(e,t={}){return Nn(tx(e,t))}function tx(e,t){let{excludeScrollbar:n=!1}=t,{innerWidth:r,innerHeight:i,document:a,visualViewport:o}=e,s=(o==null?void 0:o.width)||r,l=(o==null?void 0:o.height)||i,c={x:0,y:0,width:s,height:l};if(n){let d=r-a.documentElement.clientWidth,g=i-a.documentElement.clientHeight;c.width-=d,c.height-=g}return c}function ev(e,t){let{minX:n,minY:r,maxX:i,maxY:a,midX:o,midY:s}=e,l=t.includes("w")?n:t.includes("e")?i:o,c=t.includes("n")?r:t.includes("s")?a:s;return{x:l,y:c}}function rx(e){return nx[e]}function ix(e,t,n,r){let{scalingOriginMode:i,lockAspectRatio:a}=r,o=ev(e,n),s=rx(n),l=ev(e,s);i==="center"&&(t={x:t.x*2,y:t.y*2});let c={x:o.x+t.x,y:o.y+t.y},d={x:Jm[n].x*2-1,y:Jm[n].y*2-1},g={width:c.x-l.x,height:c.y-l.y},h=d.x*g.width/e.width,u=d.y*g.height/e.height,f=Wi(h)>Wi(u)?h:u,m=a?{x:f,y:f}:{x:o.x===l.x?1:h,y:o.y===l.y?1:u};switch(o.y===l.y?m.y=Wi(m.y):tl(m.y)!==tl(u)&&(m.y*=-1),o.x===l.x?m.x=Wi(m.x):tl(m.x)!==tl(h)&&(m.x*=-1),i){case"extent":return tv(e,Ym.scale(m.x,m.y,l),!1);case"center":return tv(e,Ym.scale(m.x,m.y,{x:e.midX,y:e.midY}),!1)}}function ax(e,t,n=!0){return n?{x:Qm(t.x,e.x),y:Qm(t.y,e.y),width:Wi(t.x-e.x),height:Wi(t.y-e.y)}:{x:e.x,y:e.y,width:t.x-e.x,height:t.y-e.y}}function tv(e,t,n=!0){let r=t.applyTo({x:e.minX,y:e.minY}),i=t.applyTo({x:e.maxX,y:e.maxY});return ax(r,i,n)}function sx(e){switch(e){case"n":return{cursor:"n-resize",width:"100%",top:0,left:"50%",translate:"-50%"};case"e":return{cursor:"e-resize",height:"100%",right:0,top:"50%",translate:"0 -50%"};case"s":return{cursor:"s-resize",width:"100%",bottom:0,left:"50%",translate:"-50%"};case"w":return{cursor:"w-resize",height:"100%",left:0,top:"50%",translate:"0 -50%"};case"se":return{cursor:"se-resize",bottom:0,right:0};case"sw":return{cursor:"sw-resize",bottom:0,left:0};case"ne":return{cursor:"ne-resize",top:0,right:0};case"nw":return{cursor:"nw-resize",top:0,left:0};default:throw new Error(`Invalid axis: ${e}`)}}function lx(e,t){let{state:n,send:r,scope:i,prop:a,computed:o,context:s}=e,l=n.hasTag("open"),c=n.matches("open.dragging"),d=n.matches("open.resizing"),g=s.get("isTopmost"),h=s.get("size"),u=s.get("position"),f=o("isMaximized"),m=o("isMinimized"),P=o("isStaged"),C=o("canResize"),V=o("canDrag");return{open:l,resizable:a("resizable"),draggable:a("draggable"),setOpen(I){n.hasTag("open")!==I&&r({type:I?"OPEN":"CLOSE"})},dragging:c,resizing:d,position:u,size:h,setPosition(I){r({type:"SET_POSITION",position:I})},setSize(I){r({type:"SET_SIZE",size:I})},minimize(){r({type:"MINIMIZE"})},maximize(){r({type:"MAXIMIZE"})},restore(){r({type:"RESTORE"})},getTriggerProps(){return t.button(v(p({},Jt.trigger.attrs),{dir:a("dir"),type:"button",disabled:a("disabled"),id:dv(i),"data-state":l?"open":"closed","data-dragging":S(c),"aria-controls":Bd(i),onClick(I){if(I.defaultPrevented||a("disabled"))return;let b=n.hasTag("open");r({type:b?"CLOSE":"OPEN",src:"trigger"})}}))},getPositionerProps(){return t.element(v(p({},Jt.positioner.attrs),{dir:a("dir"),id:uv(i),style:{"--width":Re(h==null?void 0:h.width),"--height":Re(h==null?void 0:h.height),"--x":Re(u==null?void 0:u.x),"--y":Re(u==null?void 0:u.y),position:a("strategy"),top:"var(--y)",left:"var(--x)"}}))},getContentProps(){return t.element(v(p({},Jt.content.attrs),{dir:a("dir"),role:"dialog",tabIndex:0,hidden:!l,id:Bd(i),"aria-labelledby":nv(i),"data-state":l?"open":"closed","data-dragging":S(c),"data-topmost":S(g),"data-behind":S(!g),"data-minimized":S(m),"data-maximized":S(f),"data-staged":S(P),style:{width:"var(--width)",height:"var(--height)",overflow:m?"hidden":void 0},onFocus(){r({type:"CONTENT_FOCUS"})},onKeyDown(I){if(I.defaultPrevented)return;if(I.key==="Escape"&&g){r({type:"ESCAPE"});return}if(I.currentTarget!==ee(I))return;let b=xn(I)*a("gridSize"),E={ArrowLeft(){r({type:"MOVE",direction:"left",step:b})},ArrowRight(){r({type:"MOVE",direction:"right",step:b})},ArrowUp(){r({type:"MOVE",direction:"up",step:b})},ArrowDown(){r({type:"MOVE",direction:"down",step:b})}}[ve(I,{dir:a("dir")})];E&&(I.preventDefault(),E(I))}}))},getCloseTriggerProps(){return t.button(v(p({},Jt.closeTrigger.attrs),{dir:a("dir"),disabled:a("disabled"),"aria-label":"Close Window",type:"button",onClick(I){I.defaultPrevented||r({type:"CLOSE"})}}))},getStageTriggerProps(I){if(!ov.has(I.stage))throw new Error(`[zag-js] Invalid stage: ${I.stage}. Must be one of: ${Array.from(ov).join(", ")}`);let b=a("translations"),y=Me(I.stage,{minimized:()=>({"aria-label":b.minimize,hidden:P}),maximized:()=>({"aria-label":b.maximize,hidden:P}),default:()=>({"aria-label":b.restore,hidden:!P})});return t.button(v(p(v(p({},Jt.stageTrigger.attrs),{dir:a("dir"),disabled:a("disabled"),"data-stage":I.stage}),y),{type:"button",onClick(E){if(E.defaultPrevented||!a("resizable"))return;let A=Me(I.stage,{minimized:()=>"MINIMIZE",maximized:()=>"MAXIMIZE",default:()=>"RESTORE"});r({type:A.toUpperCase()})}}))},getResizeTriggerProps(I){return t.element(v(p({},Jt.resizeTrigger.attrs),{dir:a("dir"),"data-disabled":S(!C),"data-axis":I.axis,onPointerDown(b){C&&Ee(b)&&(b.currentTarget.setPointerCapture(b.pointerId),b.stopPropagation(),r({type:"RESIZE_START",axis:I.axis,position:{x:b.clientX,y:b.clientY}}))},onPointerUp(b){if(!C)return;let y=b.currentTarget;y.hasPointerCapture(b.pointerId)&&y.releasePointerCapture(b.pointerId)},style:p({position:"absolute",touchAction:"none"},sx(I.axis))}))},getDragTriggerProps(){return t.element(v(p({},Jt.dragTrigger.attrs),{dir:a("dir"),"data-disabled":S(!V),onPointerDown(I){if(!V||!Ee(I))return;let b=ee(I);b!=null&&b.closest("button")||b!=null&&b.closest("[data-no-drag]")||(I.currentTarget.setPointerCapture(I.pointerId),I.stopPropagation(),r({type:"DRAG_START",pointerId:I.pointerId,position:{x:I.clientX,y:I.clientY}}))},onPointerUp(I){if(!V)return;let b=I.currentTarget;b.hasPointerCapture(I.pointerId)&&b.releasePointerCapture(I.pointerId)},onDoubleClick(I){I.defaultPrevented||a("resizable")&&r({type:P?"RESTORE":"MAXIMIZE"})},style:{WebkitUserSelect:"none",userSelect:"none",touchAction:"none",cursor:"move"}}))},getControlProps(){return t.element(v(p({},Jt.control.attrs),{dir:a("dir"),"data-disabled":S(a("disabled")),"data-stage":s.get("stage"),"data-minimized":S(m),"data-maximized":S(f),"data-staged":S(P)}))},getTitleProps(){return t.element(v(p({},Jt.title.attrs),{dir:a("dir"),id:nv(i)}))},getHeaderProps(){return t.element(v(p({},Jt.header.attrs),{dir:a("dir"),id:gv(i),"data-dragging":S(c),"data-topmost":S(g),"data-behind":S(!g),"data-minimized":S(m),"data-maximized":S(f),"data-staged":S(P)}))},getBodyProps(){return t.element(v(p({},Jt.body.attrs),{dir:a("dir"),"data-dragging":S(c),"data-minimized":S(m),"data-maximized":S(f),"data-staged":S(P),hidden:m}))}}}function fx(e,t,n,r){var N,O,w,k,R,D,W;let i=t.boundaryRect;if(!i)return;let a=(N=e.gutter)!=null?N:8,o=(O=e.shift)!=null?O:0,s=(k=(w=e.offset)==null?void 0:w.mainAxis)!=null?k:0,l=(D=(R=e.offset)==null?void 0:R.crossAxis)!=null?D:0,c=(W=e.placement)!=null?W:"bottom",{width:d,height:g}=n,h=i,u=r==="rtl",f=h.x+a,m=h.x+h.width-d-a,P=h.x+(h.width-d)/2,C=h.y+a,V=h.y+h.height-g-a,I=h.y+(h.height-g)/2,b=c.split("-"),y=b[0],E=b[1],A=()=>E==="start"?u?m:f:E==="end"?u?f:m:P;if(y==="bottom")return{x:A()+o+l,y:V-s};if(y==="top")return{x:A()+o+l,y:C+s};if(y==="left"){let Z=E==="start"?C:E==="end"?V:I;return{x:h.x+a+s,y:Z+o+l}}if(y==="right"){let Z=E==="start"?C:E==="end"?V:I;return{x:h.x+h.width-d-a-s,y:Z+o+l}}return{x:P+l,y:I+s}}function Ga(e){if(e)try{let t=JSON.parse(e);if(typeof t.width=="number"&&typeof t.height=="number")return{width:t.width,height:t.height}}catch(t){}}function mx(e){if(e)try{let t=JSON.parse(e);if(typeof t.x=="number"&&typeof t.y=="number")return{x:t.x,y:t.y}}catch(t){}}function lv(e){var a;let t=(a=Ga(e.dataset.defaultSize))!=null?a:vx,n=mx(e.dataset.defaultPosition),r=$e(e),i=n==null&&r?o=>fx(r,o,t,q(e)):void 0;return{defaultPosition:n,getAnchorPosition:i}}var KV,Jt,Ym,Xm,Ui,jV,zV,qi,YV,XV,ZV,$d,Hd,Zm,Jm,nx,tl,Wi,Qm,dv,uv,Bd,nv,gv,rv,iv,av,ox,yn,ov,Ba,sv,cx,dx,ux,gx,hx,px,vx,yx,pv=ne(()=>{"use strict";hr();Zo();Nt();_e();Ce();se();KV=j("floating-panel").parts("trigger","positioner","content","header","body","title","resizeTrigger","dragTrigger","stageTrigger","closeTrigger","control"),Jt=KV.build(),Ym=class qe{constructor([t,n,r,i,a,o]=[0,0,0,0,0,0]){on(this,"m00"),on(this,"m01"),on(this,"m02"),on(this,"m10"),on(this,"m11"),on(this,"m12"),on(this,"rotate",(...s)=>this.prepend(qe.rotate(...s))),on(this,"scale",(...s)=>this.prepend(qe.scale(...s))),on(this,"translate",(...s)=>this.prepend(qe.translate(...s))),this.m00=t,this.m01=n,this.m02=r,this.m10=i,this.m11=a,this.m12=o}applyTo(t){let{x:n,y:r}=t,{m00:i,m01:a,m02:o,m10:s,m11:l,m12:c}=this;return{x:i*n+a*r+o,y:s*n+l*r+c}}prepend(t){return new qe([this.m00*t.m00+this.m01*t.m10,this.m00*t.m01+this.m01*t.m11,this.m00*t.m02+this.m01*t.m12+this.m02,this.m10*t.m00+this.m11*t.m10,this.m10*t.m01+this.m11*t.m11,this.m10*t.m02+this.m11*t.m12+this.m12])}append(t){return new qe([t.m00*this.m00+t.m01*this.m10,t.m00*this.m01+t.m01*this.m11,t.m00*this.m02+t.m01*this.m12+t.m02,t.m10*this.m00+t.m11*this.m10,t.m10*this.m01+t.m11*this.m11,t.m10*this.m02+t.m11*this.m12+t.m12])}get determinant(){return this.m00*this.m11-this.m01*this.m10}get isInvertible(){let t=this.determinant;return isFinite(t)&&isFinite(this.m02)&&isFinite(this.m12)&&t!==0}invert(){let t=this.determinant;return new qe([this.m11/t,-this.m01/t,(this.m01*this.m12-this.m11*this.m02)/t,-this.m10/t,this.m00/t,(this.m10*this.m02-this.m00*this.m12)/t])}get array(){return[this.m00,this.m01,this.m02,this.m10,this.m11,this.m12,0,0,1]}get float32Array(){return new Float32Array(this.array)}static get identity(){return new qe([1,0,0,0,1,0])}static rotate(t,n){let r=new qe([Math.cos(t),-Math.sin(t),0,Math.sin(t),Math.cos(t),0]);return n&&(n.x!==0||n.y!==0)?qe.multiply(qe.translate(n.x,n.y),r,qe.translate(-n.x,-n.y)):r}static scale(t,n=t,r={x:0,y:0}){let i=new qe([t,0,0,0,n,0]);return r.x!==0||r.y!==0?qe.multiply(qe.translate(r.x,r.y),i,qe.translate(-r.x,-r.y)):i}static translate(t,n){return new qe([1,0,t,0,1,n])}static multiply(...[t,...n]){return t?n.reduce((r,i)=>r.prepend(i),t):qe.identity}get a(){return this.m00}get b(){return this.m10}get c(){return this.m01}get d(){return this.m11}get tx(){return this.m02}get ty(){return this.m12}get scaleComponents(){return{x:this.a,y:this.d}}get translationComponents(){return{x:this.tx,y:this.ty}}get skewComponents(){return{x:this.c,y:this.b}}toString(){return`matrix(${this.a}, ${this.b}, ${this.c}, ${this.d}, ${this.tx}, ${this.ty})`}},Xm=(e,t,n)=>Math.min(Math.max(e,t),n),Ui=(e,t,n)=>{let r=Xm(e.x,n.x,n.x+n.width-t.width),i=Xm(e.y,n.y,n.y+n.height-t.height);return{x:r,y:i}},jV={width:0,height:0},zV={width:1/0,height:1/0},qi=(e,t=jV,n=zV)=>({width:Math.min(Math.max(e.width,t.width),n.width),height:Math.min(Math.max(e.height,t.height),n.height)}),YV=(e,t)=>{let n=Math.max(t.x,Math.min(e.x,t.x+t.width-e.width)),r=Math.max(t.y,Math.min(e.y,t.y+t.height-e.height));return{x:n,y:r,width:Math.min(e.width,t.width),height:Math.min(e.height,t.height)}},XV=(e,t)=>e.width===(t==null?void 0:t.width)&&e.height===(t==null?void 0:t.height),ZV=(e,t)=>e.x===(t==null?void 0:t.x)&&e.y===(t==null?void 0:t.y),$d=new WeakMap;Hd=e=>parseFloat(e.replace("px","")),Zm=(...e)=>e.reduce((t,n)=>t+(n?Hd(n):0),0);Jm={n:{x:.5,y:0},ne:{x:1,y:0},e:{x:1,y:.5},se:{x:1,y:1},s:{x:.5,y:1},sw:{x:0,y:1},w:{x:0,y:.5},nw:{x:0,y:0}},nx={n:"s",ne:"sw",e:"w",se:"nw",s:"n",sw:"ne",w:"e",nw:"se"},{sign:tl,abs:Wi,min:Qm}=Math;dv=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.trigger)!=null?n:`float:${e.id}:trigger`},uv=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.positioner)!=null?n:`float:${e.id}:positioner`},Bd=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.content)!=null?n:`float:${e.id}:content`},nv=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.title)!=null?n:`float:${e.id}:title`},gv=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.header)!=null?n:`float:${e.id}:header`},rv=e=>e.getById(dv(e)),iv=e=>e.getById(uv(e)),av=e=>e.getById(Bd(e)),ox=e=>e.getById(gv(e)),yn=(e,t,n)=>{let r;return ye(t)?r=cv(t):r=ex(e.getWin()),n&&(r=Nn({x:-r.width,y:r.minY,width:r.width*3,height:r.height*2})),Jn(r,["x","y","width","height"])};ov=new Set(["minimized","maximized","default"]);Ba=Uo({stack:[],count(){return this.stack.length},add(e){this.stack.includes(e)||this.stack.push(e)},remove(e){let t=this.stack.indexOf(e);t<0||this.stack.splice(t,1)},bringToFront(e){this.remove(e),this.add(e)},isTopmost(e){return this.stack[this.stack.length-1]===e},indexOf(e){return this.stack.indexOf(e)}}),{not:sv,and:cx}=Te(),dx={minimize:"Minimize window",maximize:"Maximize window",restore:"Restore window"},ux=Object.freeze({width:320,height:240}),gx=Object.freeze({x:300,y:100}),hx=te({props({props:e}){return rn(e,["id"],"floating-panel"),v(p({strategy:"fixed",gridSize:1,allowOverflow:!0,resizable:!0,draggable:!0},e),{translations:p(p({},dx),e.translations)})},initialState({prop:e}){var n;return((n=e("open"))!=null?n:e("defaultOpen"))?"open":"closed"},context({prop:e,bindable:t}){return{size:t(()=>{var n;return{defaultValue:(n=e("defaultSize"))!=null?n:ux,value:e("size"),isEqual:XV,hash(r){return`W:${r.width} H:${r.height}`},onChange(r){var i;(i=e("onSizeChange"))==null||i({size:r})}}}),position:t(()=>{var n;return{defaultValue:(n=e("defaultPosition"))!=null?n:gx,value:e("position"),isEqual:ZV,hash(r){return`X:${r.x} Y:${r.y}`},onChange(r){var i;(i=e("onPositionChange"))==null||i({position:r})}}}),stage:t(()=>({defaultValue:"default",onChange(n){var r;(r=e("onStageChange"))==null||r({stage:n})}})),lastEventPosition:t(()=>({defaultValue:null})),prevPosition:t(()=>({defaultValue:null})),prevSize:t(()=>({defaultValue:null})),isTopmost:t(()=>({defaultValue:void 0}))}},computed:{isMaximized:({context:e})=>e.get("stage")==="maximized",isMinimized:({context:e})=>e.get("stage")==="minimized",isStaged:({context:e})=>e.get("stage")!=="default",hasSpecifiedPosition:({prop:e})=>e("defaultPosition")!=null||e("position")!=null,canResize:({context:e,prop:t})=>t("resizable")&&!t("disabled")&&e.get("stage")==="default",canDrag:({prop:e,computed:t})=>e("draggable")&&!e("disabled")&&!t("isMaximized")},watch({track:e,context:t,action:n,prop:r}){e([()=>t.hash("position")],()=>{n(["setPositionStyle"])}),e([()=>t.hash("size")],()=>{n(["setSizeStyle"])}),e([()=>r("open")],()=>{n(["toggleVisibility"])})},effects:["trackPanelStack"],on:{CONTENT_FOCUS:{actions:["bringToFrontOfPanelStack"]},SET_POSITION:{actions:["setPosition"]},SET_SIZE:{actions:["setSize"]}},states:{closed:{tags:["closed"],on:{"CONTROLLED.OPEN":{target:"open",actions:["setAnchorPosition","setPositionStyle","setSizeStyle","setInitialFocus"]},OPEN:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["invokeOnOpen","setAnchorPosition","setPositionStyle","setSizeStyle","setInitialFocus"]}]}},open:{tags:["open"],entry:["bringToFrontOfPanelStack"],initial:"idle",on:{"CONTROLLED.CLOSE":{target:"closed",actions:["resetRect","setFinalFocus"]},CLOSE:[{guard:"isOpenControlled",target:"closed",actions:["invokeOnClose","setFinalFocus"]},{target:"closed",actions:["invokeOnClose","resetRect","setFinalFocus"]}]},states:{idle:{effects:["trackBoundaryRect"],on:{DRAG_START:{guard:sv("isMaximized"),target:"dragging",actions:["setPrevPosition"]},RESIZE_START:{guard:sv("isMinimized"),target:"resizing",actions:["setPrevSize"]},ESCAPE:[{guard:cx("isOpenControlled","closeOnEsc"),actions:["invokeOnClose"]},{guard:"closeOnEsc",target:"closed",actions:["invokeOnClose","resetRect","setFinalFocus"]}],MINIMIZE:{actions:["setMinimized"]},MAXIMIZE:{actions:["setMaximized"]},RESTORE:{actions:["setRestored"]},MOVE:{actions:["setPositionFromKeyboard"]}}},dragging:{effects:["trackPointerMove"],on:{DRAG:{actions:["setPositionFromDrag"]},DRAG_END:{target:"idle",actions:["invokeOnDragEnd","clearPrevPosition"]},ESCAPE:{target:"idle",actions:["restorePosition","clearPrevPosition"]}}},resizing:{effects:["trackPointerMove"],on:{DRAG:{actions:["setSizeFromDrag"]},DRAG_END:{target:"idle",actions:["invokeOnResizeEnd","clearPrevSize"]},ESCAPE:{target:"idle",actions:["restoreSize","clearPrevSize"]}}}}}},implementations:{guards:{closeOnEsc:({prop:e})=>!!e("closeOnEscape"),isMaximized:({context:e})=>e.get("stage")==="maximized",isMinimized:({context:e})=>e.get("stage")==="minimized",isOpenControlled:({prop:e})=>e("open")!=null},effects:{trackPointerMove({scope:e,send:t,event:n,prop:r}){var s;let i=e.getDoc(),a=(s=r("getBoundaryEl"))==null?void 0:s(),o=yn(e,a,!1);return an(i,{onPointerMove({point:l,event:c}){let{altKey:d,shiftKey:g}=c,h=Oe(l.x,o.x,o.x+o.width),u=Oe(l.y,o.y,o.y+o.height);t({type:"DRAG",position:{x:h,y:u},axis:n.axis,altKey:d,shiftKey:g})},onPointerUp(){t({type:"DRAG_END"})}})},trackBoundaryRect({context:e,scope:t,prop:n,computed:r}){var l;let i=t.getWin(),a=!0,o=()=>{var g;if(a){a=!1;return}let c=(g=n("getBoundaryEl"))==null?void 0:g(),d=yn(t,c,!1);if(!r("isMaximized")){let h=p(p({},e.get("position")),e.get("size"));d=YV(h,d)}e.set("size",Jn(d,["width","height"])),e.set("position",Jn(d,["x","y"]))},s=(l=n("getBoundaryEl"))==null?void 0:l();return ye(s)?kn.observe(s,o):re(i,"resize",o)},trackPanelStack({context:e,scope:t}){let n=Vo(Ba,()=>{e.set("isTopmost",Ba.isTopmost(t.id));let r=av(t);if(!r)return;let i=Ba.indexOf(t.id);i!==-1&&r.style.setProperty("--z-index",`${i+1}`)});return()=>{Ba.remove(t.id),n()}}},actions:{setPosition({context:e,event:t,prop:n,scope:r}){var s;let i=(s=n("getBoundaryEl"))==null?void 0:s(),a=yn(r,i,n("allowOverflow")),o=Ui(t.position,e.get("size"),a);e.set("position",o)},setSize({context:e,event:t,scope:n,prop:r}){var l;let i=(l=r("getBoundaryEl"))==null?void 0:l(),a=yn(n,i,!1),o=t.size;o=qi(o,r("minSize"),r("maxSize")),o=qi(o,r("minSize"),a);let s=Ui(e.get("position"),o,a);e.set("size",o),e.set("position",s)},setAnchorPosition({context:e,computed:t,prop:n,scope:r}){var l,c;if(t("hasSpecifiedPosition"))return;let i=e.get("prevPosition")||e.get("prevSize");if(n("persistRect")&&i)return;let a=rv(r),o=yn(r,(l=n("getBoundaryEl"))==null?void 0:l(),!1),s=(c=n("getAnchorPosition"))==null?void 0:c({triggerRect:a?DOMRect.fromRect(cv(a)):null,boundaryRect:DOMRect.fromRect(o)});if(!s){let d=e.get("size");s={x:o.x+(o.width-d.width)/2,y:o.y+(o.height-d.height)/2}}s&&e.set("position",s)},setPrevPosition({context:e,event:t}){e.set("prevPosition",p({},e.get("position"))),e.set("lastEventPosition",t.position)},clearPrevPosition({context:e,prop:t}){t("persistRect")||e.set("prevPosition",null),e.set("lastEventPosition",null)},restorePosition({context:e}){let t=e.get("prevPosition");t&&e.set("position",t)},setPositionFromDrag({context:e,event:t,prop:n,scope:r}){var c;let i=oc(t.position,e.get("lastEventPosition"));i.x=Math.round(i.x/n("gridSize"))*n("gridSize"),i.y=Math.round(i.y/n("gridSize"))*n("gridSize");let a=e.get("prevPosition");if(!a)return;let o=Wg(a,i),s=(c=n("getBoundaryEl"))==null?void 0:c(),l=yn(r,s,n("allowOverflow"));o=Ui(o,e.get("size"),l),e.set("position",o)},setPositionStyle({scope:e,context:t}){let n=iv(e),r=t.get("position");n==null||n.style.setProperty("--x",`${r.x}px`),n==null||n.style.setProperty("--y",`${r.y}px`)},resetRect({context:e,prop:t}){e.set("stage","default"),t("persistRect")||(e.set("position",e.initial("position")),e.set("size",e.initial("size")))},setPrevSize({context:e,event:t}){e.set("prevSize",p({},e.get("size"))),e.set("prevPosition",p({},e.get("position"))),e.set("lastEventPosition",t.position)},clearPrevSize({context:e}){e.set("prevSize",null),e.set("prevPosition",null),e.set("lastEventPosition",null)},restoreSize({context:e}){let t=e.get("prevSize");t&&e.set("size",t);let n=e.get("prevPosition");n&&e.set("position",n)},setSizeFromDrag({context:e,event:t,scope:n,prop:r}){var f;let i=e.get("prevSize"),a=e.get("prevPosition"),o=e.get("lastEventPosition");if(!i||!a||!o)return;let s=Nn(p(p({},a),i)),l=oc(t.position,o),c=ix(s,l,t.axis,{scalingOriginMode:t.altKey?"center":"extent",lockAspectRatio:!!r("lockAspectRatio")||t.shiftKey}),d=Jn(c,["width","height"]),g=Jn(c,["x","y"]),h=(f=r("getBoundaryEl"))==null?void 0:f(),u=yn(n,h,!1);if(d=qi(d,r("minSize"),r("maxSize")),d=qi(d,r("minSize"),u),e.set("size",d),g){let m=Ui(g,d,u);e.set("position",m)}},setSizeStyle({scope:e,context:t}){queueMicrotask(()=>{let n=iv(e),r=t.get("size");n==null||n.style.setProperty("--width",`${r.width}px`),n==null||n.style.setProperty("--height",`${r.height}px`)})},setMaximized({context:e,prop:t,scope:n}){var d;if(e.get("stage")==="maximized")return;let r=e.get("stage")==="default",i=e.get("size"),a=e.get("position"),o=(d=t("getBoundaryEl"))==null?void 0:d(),s=yn(n,o,!1),l=Jn(s,["x","y"]),c=Jn(s,["height","width"]);e.set("stage","maximized"),r&&(e.set("prevSize",i),e.set("prevPosition",a)),e.set("position",l),e.set("size",c)},setMinimized({context:e,scope:t}){if(e.get("stage")==="minimized")return;let n=e.get("stage")==="default",r=e.get("size"),i=e.get("position");e.set("stage","minimized"),n&&(e.set("prevSize",r),e.set("prevPosition",i));let a=ox(t);if(!a)return;let o=v(p({},r),{height:a==null?void 0:a.offsetHeight});e.set("size",o)},setRestored({context:e,prop:t,scope:n}){var l;let r=yn(n,(l=t("getBoundaryEl"))==null?void 0:l(),!1);e.set("stage","default");let i=e.get("size"),a=e.get("prevSize");a&&(i=qi(a,t("minSize"),t("maxSize")),i=qi(i,t("minSize"),r));let o=e.get("position"),s=e.get("prevPosition");s&&(o=Ui(s,i,r)),e.set("size",i),e.set("position",o),e.set("prevSize",null),e.set("prevPosition",null)},setPositionFromKeyboard({context:e,event:t,prop:n,scope:r}){var c;gi(t.step==null,"step is required");let i=e.get("position"),a=t.step,o=Me(t.direction,{left:{x:i.x-a,y:i.y},right:{x:i.x+a,y:i.y},up:{x:i.x,y:i.y-a},down:{x:i.x,y:i.y+a}}),s=(c=n("getBoundaryEl"))==null?void 0:c(),l=yn(r,s,!1);o=Ui(o,e.get("size"),l),e.set("position",o)},bringToFrontOfPanelStack({prop:e}){Ba.bringToFront(e("id"))},invokeOnOpen({prop:e}){var t;(t=e("onOpenChange"))==null||t({open:!0})},invokeOnClose({prop:e}){var t;(t=e("onOpenChange"))==null||t({open:!1})},invokeOnDragEnd({context:e,prop:t}){var n;(n=t("onPositionChangeEnd"))==null||n({position:e.get("position")})},invokeOnResizeEnd({context:e,prop:t}){var n;(n=t("onSizeChangeEnd"))==null||n({size:e.get("size")})},setFinalFocus({scope:e,prop:t}){t("restoreFocus")!==!1&&$(()=>{var r,i;let n=(i=(r=t("finalFocusEl"))==null?void 0:r())!=null?i:rv(e);n==null||n.focus({preventScroll:!0})})},setInitialFocus({scope:e,prop:t}){$(()=>{var r,i;let n=(i=(r=t("initialFocusEl"))==null?void 0:r())!=null?i:av(e);n==null||n.focus({preventScroll:!0})})},toggleVisibility({send:e,prop:t,event:n}){e({type:t("open")?"CONTROLLED.OPEN":"CONTROLLED.CLOSE",previousEvent:n})}}}}),px=class extends X{initMachine(e){return new Y(hx,e)}initApi(){return this.zagConnect(lx)}render(){let e=this.el.querySelector('[data-scope="floating-panel"][data-part="trigger"]');e&&this.spreadProps(e,this.api.getTriggerProps());let t=this.el.querySelector('[data-scope="floating-panel"][data-part="positioner"]');t&&this.spreadProps(t,this.api.getPositionerProps());let n=this.el.querySelector('[data-scope="floating-panel"][data-part="content"]');n&&this.spreadProps(n,this.api.getContentProps());let r=this.el.querySelector('[data-scope="floating-panel"][data-part="title"]');r&&this.spreadProps(r,this.api.getTitleProps());let i=this.el.querySelector('[data-scope="floating-panel"][data-part="header"]');i&&this.spreadProps(i,this.api.getHeaderProps());let a=this.el.querySelector('[data-scope="floating-panel"][data-part="body"]');a&&this.spreadProps(a,this.api.getBodyProps());let o=this.el.querySelector('[data-scope="floating-panel"][data-part="drag-trigger"]');o&&this.spreadProps(o,this.api.getDragTriggerProps()),["s","w","e","n","sw","nw","se","ne"].forEach(g=>{let h=this.el.querySelector(`[data-scope="floating-panel"][data-part="resize-trigger"][data-axis="${g}"]`);h&&this.spreadProps(h,this.api.getResizeTriggerProps({axis:g}))});let l=this.el.querySelector('[data-scope="floating-panel"][data-part="close-trigger"]');l&&this.spreadProps(l,this.api.getCloseTriggerProps());let c=this.el.querySelector('[data-scope="floating-panel"][data-part="control"]');c&&this.spreadProps(c,this.api.getControlProps()),["minimized","maximized","default"].forEach(g=>{let h=this.el.querySelector(`[data-scope="floating-panel"][data-part="stage-trigger"][data-stage="${g}"]`);h&&this.spreadProps(h,this.api.getStageTriggerProps({stage:g}))})}};vx={width:320,height:240};yx={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>Q(this.liveSocket),r=Ga(e.dataset.size),i=Ga(e.dataset.defaultSize),a=lv(e),o=new px(e,{id:e.id,defaultOpen:!1,draggable:T(e,"draggable")!==!1,resizable:T(e,"resizable")!==!1,allowOverflow:T(e,"allowOverflow")!==!1,closeOnEscape:T(e,"closeOnEscape")!==!1,disabled:T(e,"disabled"),dir:q(e),size:r,defaultSize:i,defaultPosition:a.defaultPosition,getAnchorPosition:a.getAnchorPosition,minSize:Ga(e.dataset.minSize),maxSize:Ga(e.dataset.maxSize),persistRect:T(e,"persistRect"),gridSize:Number(e.dataset.gridSize)||1,onOpenChange:c=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,open:c.open},serverEventName:x(e,"onOpenChange"),clientEventName:x(e,"onOpenChangeClient")})},onPositionChange:c=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,position:c.position},serverEventName:x(e,"onPositionChange"),clientEventName:x(e,"onPositionChangeClient")})},onSizeChange:c=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,size:c.size},serverEventName:x(e,"onSizeChange"),clientEventName:x(e,"onSizeChangeClient")})},onStageChange:c=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,stage:c.stage},serverEventName:x(e,"onStageChange"),clientEventName:x(e,"onStageChangeClient")})}});o.init(),this.floatingPanel=o;let s=de(e);this.domRegistry=s,s.add("corex:floating-panel:set-open",c=>{let{open:d}=c.detail;o.api.setOpen(d)});let l=ce(this);this.handleRegistry=l,l.add("floating_panel_set_open",c=>{if(!c||typeof c!="object")return;let d=c;B(e.id,G(c))&&typeof d.open=="boolean"&&o.api.setOpen(d.open)})},updated(){var n;let e=this.el,t=lv(e);(n=this.floatingPanel)==null||n.updateProps({id:e.id,disabled:T(e,"disabled"),dir:q(e),defaultPosition:t.defaultPosition,getAnchorPosition:t.getAnchorPosition})},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),this.domRegistry=void 0,(t=this.handleRegistry)==null||t.teardown(),this.handleRegistry=void 0,(n=this.floatingPanel)==null||n.destroy()}}});var bv={};fe(bv,{Listbox:()=>Rx});function Cx(e,t){let{context:n,prop:r,scope:i,computed:a,send:o,refs:s}=e,l=r("disabled"),c=r("collection"),d=pn(c)?"grid":"list",g=n.get("focused"),h=s.get("focusVisible")&&g,u=s.get("inputState"),f=n.get("value"),m=a("selectedItems"),P=n.get("highlightedValue"),C=n.get("highlightedItem"),V=a("isTypingAhead"),I=a("isInteractive"),b=P?Ud(i,P):void 0;function y(E){let A=c.getItemDisabled(E.item),N=c.getItemValue(E.item);jt(N,()=>`[zag-js] No value found for item ${JSON.stringify(E.item)}`);let O=P===N;return{value:N,disabled:!!(l||A),focused:O&&g,focusVisible:O&&h,highlighted:O&&(u.focused?g:h),selected:n.get("value").includes(N)}}return{empty:f.length===0,highlightedItem:C,highlightedValue:P,clearHighlightedValue(){o({type:"HIGHLIGHTED_VALUE.SET",value:null})},selectedItems:m,hasSelectedItems:a("hasSelectedItems"),value:f,valueAsString:a("valueAsString"),collection:c,disabled:!!l,selectValue(E){o({type:"ITEM.SELECT",value:E})},setValue(E){o({type:"VALUE.SET",value:E})},selectAll(){if(!a("multiple"))throw new Error("[zag-js] Cannot select all items in a single-select listbox");o({type:"VALUE.SET",value:c.getValues()})},highlightValue(E){o({type:"HIGHLIGHTED_VALUE.SET",value:E})},highlightFirst(){o({type:"HIGHLIGHT.FIRST"})},highlightLast(){o({type:"HIGHLIGHT.LAST"})},highlightNext(){o({type:"HIGHLIGHT.NEXT"})},highlightPrevious(){o({type:"HIGHLIGHT.PREV"})},clearValue(E){o(E?{type:"ITEM.CLEAR",value:E}:{type:"VALUE.CLEAR"})},getItemState:y,getRootProps(){return t.element(v(p({},bn.root.attrs),{dir:r("dir"),id:Sx(i),"data-orientation":r("orientation"),"data-disabled":S(l)}))},getInputProps(E={}){var N;let A=(N=E.keyboardPriority)!=null?N:"caret";return t.input(v(p({},bn.input.attrs),{dir:r("dir"),disabled:l,"data-disabled":S(l),autoComplete:"off",autoCorrect:"off","aria-haspopup":"listbox","aria-controls":Gd(i),"aria-autocomplete":"list","aria-activedescendant":b,spellCheck:!1,enterKeyHint:"go",onFocus(){queueMicrotask(()=>{o({type:"INPUT.FOCUS",autoHighlight:!!(E!=null&&E.autoHighlight)})})},onBlur(){o({type:"CONTENT.BLUR",src:"input"})},onInput(O){E!=null&&E.autoHighlight&&(O.currentTarget.value.trim()||queueMicrotask(()=>{o({type:"HIGHLIGHTED_VALUE.SET",value:null})}))},onKeyDown(O){if(O.defaultPrevented||He(O))return;let w=zt(O),k=()=>{var W;O.preventDefault();let R=i.getWin(),D=new R.KeyboardEvent(w.type,w);(W=nl(i))==null||W.dispatchEvent(D)};switch(w.key){case"ArrowLeft":case"ArrowRight":{if(!pn(c)||O.ctrlKey||A!=="navigate")return;k();break}case"Home":case"End":{if(A!=="navigate"||P==null&&O.shiftKey)return;k();break}case"ArrowDown":case"ArrowUp":{k();break}case"Enter":P!=null&&(O.preventDefault(),o({type:"ITEM.CLICK",value:P}));break;default:break}}}))},getLabelProps(){return t.element(v(p({dir:r("dir"),id:fv(i)},bn.label.attrs),{"data-disabled":S(l)}))},getValueTextProps(){return t.element(v(p({},bn.valueText.attrs),{dir:r("dir"),"data-disabled":S(l)}))},getItemProps(E){let A=y(E);return t.element(v(p({id:Ud(i,A.value),role:"option"},bn.item.attrs),{dir:r("dir"),"data-value":A.value,"aria-selected":A.selected,"data-selected":S(A.selected),"data-layout":d,"data-state":A.selected?"checked":"unchecked","data-orientation":r("orientation"),"data-highlighted":S(A.highlighted),"data-disabled":S(A.disabled),"aria-disabled":oe(A.disabled),onPointerMove(N){E.highlightOnHover&&(A.disabled||N.pointerType!=="mouse"||A.highlighted||o({type:"ITEM.POINTER_MOVE",value:A.value}))},onMouseDown(N){var O;N.preventDefault(),(O=nl(i))==null||O.focus()},onClick(N){N.defaultPrevented||Ar(N)||Vn(N)||tr(N)||A.disabled||o({type:"ITEM.CLICK",value:A.value,shiftKey:N.shiftKey,anchorValue:P,metaKey:Mo(N)})}}))},getItemTextProps(E){let A=y(E);return t.element(v(p({},bn.itemText.attrs),{"data-state":A.selected?"checked":"unchecked","data-disabled":S(A.disabled),"data-highlighted":S(A.highlighted)}))},getItemIndicatorProps(E){let A=y(E);return t.element(v(p({},bn.itemIndicator.attrs),{"aria-hidden":!0,"data-state":A.selected?"checked":"unchecked",hidden:!A.selected}))},getItemGroupLabelProps(E){let{htmlFor:A}=E;return t.element(v(p({},bn.itemGroupLabel.attrs),{id:mv(i,A),dir:r("dir"),role:"presentation"}))},getItemGroupProps(E){let{id:A}=E;return t.element(v(p({},bn.itemGroup.attrs),{"data-disabled":S(l),"data-orientation":r("orientation"),"data-empty":S(c.size===0),id:Px(i,A),"aria-labelledby":mv(i,A),role:"group",dir:r("dir")}))},getContentProps(){return t.element(v(p({dir:r("dir"),id:Gd(i),role:"listbox"},bn.content.attrs),{"data-activedescendant":b,"aria-activedescendant":b,"data-orientation":r("orientation"),"aria-multiselectable":a("multiple")?!0:void 0,"aria-labelledby":fv(i),tabIndex:0,"data-layout":d,"data-empty":S(c.size===0),style:{"--column-count":pn(c)?c.columnCount:1},onFocus(){o({type:"CONTENT.FOCUS"})},onBlur(){o({type:"CONTENT.BLUR"})},onKeyDown(E){if(!I)return;let A=ee(E);if(!ge(E.currentTarget,ee(E)))return;let N=E.shiftKey,O={ArrowUp(k){let R=null;pn(c)&&P?R=c.getPreviousRowValue(P):P&&(R=c.getPreviousValue(P)),!R&&(r("loopFocus")||!P)&&(R=c.lastValue),R&&(k.preventDefault(),o({type:"NAVIGATE",value:R,shiftKey:N,anchorValue:P}))},ArrowDown(k){let R=null;pn(c)&&P?R=c.getNextRowValue(P):P&&(R=c.getNextValue(P)),!R&&(r("loopFocus")||!P)&&(R=c.firstValue),R&&(k.preventDefault(),o({type:"NAVIGATE",value:R,shiftKey:N,anchorValue:P}))},ArrowLeft(){if(!pn(c)&&r("orientation")==="vertical")return;let k=P?c.getPreviousValue(P):null;!k&&r("loopFocus")&&(k=c.lastValue),k&&(E.preventDefault(),o({type:"NAVIGATE",value:k,shiftKey:N,anchorValue:P}))},ArrowRight(){if(!pn(c)&&r("orientation")==="vertical")return;let k=P?c.getNextValue(P):null;!k&&r("loopFocus")&&(k=c.firstValue),k&&(E.preventDefault(),o({type:"NAVIGATE",value:k,shiftKey:N,anchorValue:P}))},Home(k){if(xt(A))return;k.preventDefault();let R=c.firstValue;o({type:"NAVIGATE",value:R,shiftKey:N,anchorValue:P})},End(k){if(xt(A))return;k.preventDefault();let R=c.lastValue;o({type:"NAVIGATE",value:R,shiftKey:N,anchorValue:P})},Enter(){o({type:"ITEM.CLICK",value:P})},a(k){Mo(k)&&a("multiple")&&!r("disallowSelectAll")&&(k.preventDefault(),o({type:"VALUE.SET",value:c.getValues()}))},Space(k){var R;V&&r("typeahead")?o({type:"CONTENT.TYPEAHEAD",key:k.key}):(R=O.Enter)==null||R.call(O,k)},Escape(k){r("deselectable")&&f.length>0&&(k.preventDefault(),k.stopPropagation(),o({type:"VALUE.CLEAR"}))}},w=O[ve(E)];if(w){w(E);return}xt(A)||ct.isValidEvent(E)&&r("typeahead")&&(o({type:"CONTENT.TYPEAHEAD",key:E.key}),E.preventDefault())}}))}}}function Ua(e,t,n){let r=Vx(t,e);for(let i of r)n==null||n({value:i})}function Ax(e,t){return qa(t?{items:e,itemToValue:n=>{var r,i;return(i=(r=n.id)!=null?r:n.value)!=null?i:""},itemToString:n=>n.label,isItemDisabled:n=>!!n.disabled,groupBy:n=>{var r;return(r=n.group)!=null?r:""}}:{items:e,itemToValue:n=>{var r,i;return(i=(r=n.id)!=null?r:n.value)!=null?i:""},itemToString:n=>n.label,isItemDisabled:n=>!!n.disabled})}function yv(e,t,n){let r=T(e,"redirect");return{id:e.id,disabled:T(e,"disabled"),dir:q(e),orientation:x(e,"orientation"),loopFocus:T(e,"loopFocus"),selectionMode:r?"single":x(e,"selectionMode"),selectOnHighlight:T(e,"selectOnHighlight"),deselectable:T(e,"deselectable"),typeahead:T(e,"typeahead"),onValueChange:i=>{let a=i.value.length>0?String(i.value[0]):null;if(r&&a){let o=e.querySelector(`[data-scope="listbox"][data-part="item"][data-value="${CSS.escape(a)}"]`);mn(fn(o,a),{liveSocket:t})}K({el:e,canPushServer:Q(t),pushEvent:n,payload:{id:e.id,value:i.value,items:i.items},serverEventName:x(e,"onValueChange"),clientEventName:x(e,"onValueChangeClient")})}}}var bx,bn,qa,Ex,Sx,Gd,fv,Ud,Px,mv,nl,vv,Ix,Tx,wx,Ox,Vx,xx,Rx,Ev=ne(()=>{"use strict";Ts();wa();Di();Ln();_e();Ce();se();bx=j("listbox").parts("label","input","item","itemText","itemIndicator","itemGroup","itemGroupLabel","content","root","valueText"),bn=bx.build(),qa=e=>new hn(e);qa.empty=()=>new hn({items:[]});Ex=e=>new Fc(e);Ex.empty=()=>new Fc({items:[],columnCount:0});Sx=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`listbox:${e.id}`},Gd=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.content)!=null?n:`listbox:${e.id}:content`},fv=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`listbox:${e.id}:label`},Ud=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.item)==null?void 0:r.call(n,t))!=null?i:`listbox:${e.id}:item:${t}`},Px=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemGroup)==null?void 0:r.call(n,t))!=null?i:`listbox:${e.id}:item-group:${t}`},mv=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemGroupLabel)==null?void 0:r.call(n,t))!=null?i:`listbox:${e.id}:item-group-label:${t}`},nl=e=>e.getById(Gd(e)),vv=(e,t)=>e.getById(Ud(e,t));({guards:Ix,createMachine:Tx}=Ot()),{or:wx}=Ix,Ox=Tx({props({props:e}){return p({loopFocus:!1,composite:!0,defaultValue:[],multiple:!1,typeahead:!0,collection:qa.empty(),orientation:"vertical",selectionMode:"single"},e)},context({prop:e,bindable:t,getContext:n}){var a,o;let r=(o=(a=e("value"))!=null?a:e("defaultValue"))!=null?o:[],i=e("collection").findMany(r);return{value:t(()=>({defaultValue:e("defaultValue"),value:e("value"),isEqual:Ie,onChange(s){var f,m;let l=n(),c=e("collection"),d=l.get("selectedItemMap"),g=Pt({values:s,collection:c,selectedItemMap:d}),h=(f=e("value"))!=null?f:s,u=h===s?g:Pt({values:h,collection:c,selectedItemMap:g.nextSelectedItemMap});return l.set("selectedItemMap",u.nextSelectedItemMap),(m=e("onValueChange"))==null?void 0:m({value:s,items:g.selectedItems})}})),highlightedValue:t(()=>({defaultValue:e("defaultHighlightedValue")||null,value:e("highlightedValue"),sync:!0,onChange(s){var l;(l=e("onHighlightChange"))==null||l({highlightedValue:s,highlightedItem:e("collection").find(s),highlightedIndex:e("collection").indexOf(s)})}})),highlightedItem:t(()=>({defaultValue:null})),selectedItemMap:t(()=>({defaultValue:Ni({selectedItems:i,collection:e("collection")})})),focused:t(()=>({sync:!0,defaultValue:!1}))}},refs(){return{typeahead:p({},ct.defaultOptions),focusVisible:!1,inputState:{autoHighlight:!1,focused:!1}}},computed:{hasSelectedItems:({context:e})=>e.get("value").length>0,isTypingAhead:({refs:e})=>e.get("typeahead").keysSoFar!=="",isInteractive:({prop:e})=>!e("disabled"),selection:({context:e,prop:t})=>{let n=new xp(e.get("value"));return n.selectionMode=t("selectionMode"),n.deselectable=!!t("deselectable"),n},multiple:({prop:e})=>e("selectionMode")==="multiple"||e("selectionMode")==="extended",selectedItems:({context:e,prop:t})=>Hr({values:e.get("value"),collection:t("collection"),selectedItemMap:e.get("selectedItemMap")}),valueAsString:({computed:e,prop:t})=>t("collection").stringifyItems(e("selectedItems"))},initialState(){return"idle"},watch({context:e,prop:t,track:n,action:r}){n([()=>e.get("value").toString()],()=>{r(["syncSelectedItems"])}),n([()=>e.get("highlightedValue")],()=>{r(["syncHighlightedItem"])}),n([()=>t("collection").toString()],()=>{r(["syncHighlightedValue"])})},effects:["trackFocusVisible"],on:{"HIGHLIGHTED_VALUE.SET":{actions:["setHighlightedItem"]},"ITEM.SELECT":{actions:["selectItem"]},"ITEM.CLEAR":{actions:["clearItem"]},"VALUE.SET":{actions:["setSelectedItems"]},"VALUE.CLEAR":{actions:["clearSelectedItems"]},"HIGHLIGHT.FIRST":{actions:["highlightFirstValue"]},"HIGHLIGHT.LAST":{actions:["highlightLastValue"]},"HIGHLIGHT.NEXT":{actions:["highlightNextValue"]},"HIGHLIGHT.PREV":{actions:["highlightPreviousValue"]}},states:{idle:{effects:["scrollToHighlightedItem"],on:{"INPUT.FOCUS":{actions:["setFocused","setInputState"]},"CONTENT.FOCUS":[{guard:wx("hasSelectedValue","hasHighlightedValue"),actions:["setFocused"]},{actions:["setFocused","setDefaultHighlightedValue"]}],"CONTENT.BLUR":{actions:["clearFocused","clearInputState"]},"ITEM.CLICK":{actions:["setHighlightedItem","selectHighlightedItem"]},"CONTENT.TYPEAHEAD":{actions:["setFocused","highlightMatchingItem"]},"ITEM.POINTER_MOVE":{actions:["highlightItem"]},"ITEM.POINTER_LEAVE":{actions:["clearHighlightedItem"]},NAVIGATE:{actions:["setFocused","setHighlightedItem","selectWithKeyboard"]}}}},implementations:{guards:{hasSelectedValue:({context:e})=>e.get("value").length>0,hasHighlightedValue:({context:e})=>e.get("highlightedValue")!=null},effects:{trackFocusVisible:({scope:e,refs:t})=>{var n;return et({root:(n=e.getRootNode)==null?void 0:n.call(e),onChange(r){t.set("focusVisible",r.isFocusVisible)}})},scrollToHighlightedItem({context:e,prop:t,scope:n}){let r=a=>{let o=e.get("highlightedValue");if(o==null||sr()==="pointer")return;let l=nl(n),c=t("scrollToIndexFn");if(c){let g=t("collection").indexOf(o);c==null||c({index:g,immediate:a,getElement(){return vv(n,o)}});return}let d=vv(n,o);Rn(d,{rootEl:l,block:"nearest"})};return $(()=>{lr("virtual"),r(!0)}),kt(()=>nl(n),{defer:!0,attributes:["data-activedescendant"],callback(){r(!1)}})}},actions:{selectHighlightedItem({context:e,prop:t,event:n,computed:r}){var s;let i=(s=n.value)!=null?s:e.get("highlightedValue"),a=t("collection");if(i==null||!a.has(i))return;let o=r("selection");if(n.shiftKey&&r("multiple")&&n.anchorValue){let l=o.extendSelection(a,n.anchorValue,i);Ua(o,l,t("onSelect")),e.set("value",Array.from(l))}else{let l=o.select(a,i,n.metaKey);Ua(o,l,t("onSelect")),e.set("value",Array.from(l))}},selectWithKeyboard({context:e,prop:t,event:n,computed:r}){let i=r("selection"),a=t("collection");if(n.shiftKey&&r("multiple")&&n.anchorValue){let o=i.extendSelection(a,n.anchorValue,n.value);Ua(i,o,t("onSelect")),e.set("value",Array.from(o));return}if(t("selectOnHighlight")){let o=i.replaceSelection(a,n.value);Ua(i,o,t("onSelect")),e.set("value",Array.from(o))}},highlightItem({context:e,event:t}){e.set("highlightedValue",t.value)},highlightMatchingItem({context:e,prop:t,event:n,refs:r}){let i=t("collection").search(n.key,{state:r.get("typeahead"),currentValue:e.get("highlightedValue")});i!=null&&e.set("highlightedValue",i)},setHighlightedItem({context:e,event:t}){e.set("highlightedValue",t.value)},highlightFirstValue({context:e,prop:t}){var n;e.set("highlightedValue",(n=t("collection").firstValue)!=null?n:null)},highlightLastValue({context:e,prop:t}){var n;e.set("highlightedValue",(n=t("collection").lastValue)!=null?n:null)},highlightNextValue({context:e,prop:t}){let n=t("collection"),r=e.get("highlightedValue"),i=null;pn(n)&&r?i=n.getNextRowValue(r):r&&(i=n.getNextValue(r)),!i&&(t("loopFocus")||!r)&&(i=n.firstValue),i&&e.set("highlightedValue",i)},highlightPreviousValue({context:e,prop:t}){let n=t("collection"),r=e.get("highlightedValue"),i=null;pn(n)&&r?i=n.getPreviousRowValue(r):r&&(i=n.getPreviousValue(r)),!i&&(t("loopFocus")||!r)&&(i=n.lastValue),i&&e.set("highlightedValue",i)},clearHighlightedItem({context:e}){e.set("highlightedValue",null)},selectItem({context:e,prop:t,event:n,computed:r}){let i=t("collection"),a=r("selection"),o=a.select(i,n.value);Ua(a,o,t("onSelect")),e.set("value",Array.from(o))},clearItem({context:e,event:t,computed:n}){let i=n("selection").deselect(t.value);e.set("value",Array.from(i))},setSelectedItems({context:e,event:t}){e.set("value",t.value)},clearSelectedItems({context:e}){e.set("value",[])},syncSelectedItems({context:e,prop:t}){let n=Pt({values:e.get("value"),collection:t("collection"),selectedItemMap:e.get("selectedItemMap")});e.set("selectedItemMap",n.nextSelectedItemMap)},syncHighlightedItem({context:e,prop:t}){let n=t("collection"),r=e.get("highlightedValue"),i=r?n.find(r):null;e.set("highlightedItem",i)},syncHighlightedValue({context:e,prop:t,refs:n}){let r=t("collection"),i=e.get("highlightedValue"),{autoHighlight:a}=n.get("inputState");if(a){queueMicrotask(()=>{var o;e.set("highlightedValue",(o=t("collection").firstValue)!=null?o:null)});return}i!=null&&!r.has(i)&&queueMicrotask(()=>{e.set("highlightedValue",null)})},setFocused({context:e}){e.set("focused",!0)},setDefaultHighlightedValue({context:e,prop:t}){let r=t("collection").firstValue;r!=null&&e.set("highlightedValue",r)},clearFocused({context:e}){e.set("focused",!1)},setInputState({refs:e,event:t}){e.set("inputState",{autoHighlight:!!t.autoHighlight,focused:!0})},clearInputState({refs:e}){e.set("inputState",{autoHighlight:!1,focused:!1})}}}}),Vx=(e,t)=>{let n=new Set(e);for(let r of t)n.delete(r);return n};xx=class extends X{constructor(t,n){var i;super(t,n);J(this,"_options",[]);J(this,"hasGroups",!1);J(this,"lastItemsFingerprint","");J(this,"init",()=>{try{this.machine.start(),this.render()}finally{this.el.removeAttribute("data-loading")}this.machine.subscribe(()=>{this.api=this.initApi(),this.render()})});let r=n.collection;this._options=(i=r==null?void 0:r.items)!=null?i:[]}get options(){return Array.isArray(this._options)?this._options:[]}setOptions(t){this._options=Array.isArray(t)?t:[]}itemsFingerprint(){var r,i;let t=(r=this.el.dataset.dir)!=null?r:"",n=(i=this.el.dataset.orientation)!=null?i:"";return`${this.hasGroups}:${t}:${n}:${JSON.stringify(this.options)}`}getOrderedGroupIds(){var r;let t=new Set,n=[];for(let i of this.options){let a=(r=i.group)!=null?r:"default";t.has(a)||(t.add(a),n.push(a))}return n}getCollection(){return qa(Is(this.options,this.hasGroups))}initMachine(t){let n=this.getCollection.bind(this);return new Y(Ox,v(p({},t),{get collection(){return n()}}))}initApi(){return this.zagConnect(Cx)}renderItems(){var a,o;let t=this.el.querySelector('[data-scope="listbox"][data-part="content"]');if(!t)return;let n=s=>s.closest('[data-scope="listbox"][data-part="content"]')===t,r=Ao(this.el,"listbox");if(!r)return;Array.from(t.querySelectorAll('[data-scope="listbox"][data-part="empty"]:not([data-template])')).filter(n).forEach(s=>s.remove()),Array.from(t.querySelectorAll('[data-scope="listbox"][data-part="item-group"]:not([data-template])')).filter(n).forEach(s=>s.remove()),Array.from(t.querySelectorAll('[data-scope="listbox"][data-part="item"]:not([data-template])')).filter(n).forEach(s=>s.remove());let i=this.options;if(i.length===0){let s=r.querySelector('[data-scope="listbox"][data-part="empty"][data-template]');if(s){let l=s.cloneNode(!0);l.removeAttribute("data-template"),t.appendChild(l)}}else if(this.hasGroups){let s=this.getOrderedGroupIds();for(let l of s){let c=r.querySelector(`[data-scope="listbox"][data-part="item-group"][data-id="${CSS.escape(l)}"][data-template]`);if(!c)continue;let d=c.cloneNode(!0);d.removeAttribute("data-template"),d.querySelectorAll("[data-template]").forEach(g=>g.removeAttribute("data-template")),t.appendChild(d)}}else for(let s of i){let l=String((o=(a=s.id)!=null?a:s.value)!=null?o:""),c=r.querySelector(`[data-scope="listbox"][data-part="item"][data-value="${l}"][data-template]`);if(!c)continue;let d=c.cloneNode(!0);d.removeAttribute("data-template"),t.appendChild(d)}}applyItemProps(){let t=this.el.querySelector('[data-scope="listbox"][data-part="content"]');if(!t)return;let n=r=>r.closest('[data-scope="listbox"][data-part="content"]')===t;t.querySelectorAll('[data-scope="listbox"][data-part="item-group"]').forEach(r=>{var o;if(!n(r))return;let i=(o=r.dataset.id)!=null?o:"";this.spreadProps(r,this.api.getItemGroupProps({id:i}));let a=r.querySelector('[data-scope="listbox"][data-part="item-group-label"]');a&&this.spreadProps(a,this.api.getItemGroupLabelProps({htmlFor:i}))}),t.querySelectorAll('[data-scope="listbox"][data-part="item"]').forEach(r=>{var l;if(!n(r))return;let i=(l=r.dataset.value)!=null?l:"",a=this.options.find(c=>{var d,g;return String((g=(d=c.id)!=null?d:c.value)!=null?g:"")===String(i)});if(!a)return;this.spreadProps(r,this.api.getItemProps({item:a}));let o=r.querySelector('[data-scope="listbox"][data-part="item-text"]');o&&this.spreadProps(o,this.api.getItemTextProps({item:a}));let s=r.querySelector('[data-scope="listbox"][data-part="item-indicator"]');s&&this.spreadProps(s,this.api.getItemIndicatorProps({item:a}))})}render(){var a;let t=(a=this.el.querySelector('[data-scope="listbox"][data-part="root"]'))!=null?a:this.el;this.spreadProps(t,this.api.getRootProps());let n=this.el.querySelector('[data-scope="listbox"][data-part="label"]');n&&this.spreadProps(n,this.api.getLabelProps());let r=this.el.querySelector('[data-scope="listbox"][data-part="input"]');r&&this.spreadProps(r,this.api.getInputProps());let i=this.el.querySelector('[data-scope="listbox"][data-part="content"]');if(i){this.spreadProps(i,this.api.getContentProps());let o=this.itemsFingerprint();o!==this.lastItemsFingerprint&&(this.lastItemsFingerprint=o,this.renderItems()),this.applyItemProps()}}};Rx={mounted(){var h;let e=this.el,t=JSON.parse((h=e.dataset.items)!=null?h:"[]"),n=t.some(u=>!!u.group),r=ie(e,"value"),i=ie(e,"defaultValue"),a=T(e,"controlled"),o=this.pushEvent.bind(this),s=()=>Q(this.liveSocket),l=new xx(e,p(v(p({},yv(e,this.liveSocket,o)),{collection:Ax(t,n)}),a&&r?{value:r}:{defaultValue:i!=null?i:[]}));l.hasGroups=n,l.setOptions(t),l.init(),this.listbox=l;let c=u=>{let f=l.api.value;je({respondTo:u,canPushServer:s(),pushEvent:o,serverEventName:"listbox_value_response",serverPayload:{id:e.id,value:f},el:e,domEventName:"listbox-value",domDetail:{id:e.id,value:f}})},d=de(e);this.domRegistry=d,d.add("corex:listbox:set-value",u=>{l.api.setValue(u.detail.value)}),d.add("corex:listbox:value",u=>{c(we(u.detail))});let g=ce(this);this.handleRegistry=g,g.add("listbox_set_value",u=>{B(e.id,G(u))&&l.api.setValue(u.value)}),g.add("listbox_value",u=>{B(e.id,G(u))&&c(we(u))})},updated(){var a;let e=JSON.parse((a=this.el.dataset.items)!=null?a:"[]"),t=e.some(o=>!!o.group),n=ie(this.el,"value"),r=ie(this.el,"defaultValue"),i=T(this.el,"controlled");this.listbox&&(this.listbox.hasGroups=t,this.listbox.setOptions(e),this.listbox.updateProps(p(v(p({},yv(this.el,this.liveSocket,this.pushEvent.bind(this))),{collection:this.listbox.getCollection()}),i&&n?{value:n}:{defaultValue:r!=null?r:[]})))},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.listbox)==null||n.destroy()}}});var Cv={};fe(Cv,{Marquee:()=>_x});function Lx(e,t){let{scope:n,send:r,context:i,computed:a,prop:o}=e,s=o("side"),l=i.get("paused"),c=i.get("duration"),d=a("orientation"),g=a("multiplier"),h=a("isVertical");return{paused:l,orientation:d,side:s,multiplier:g,contentCount:g+1,pause(){r({type:"PAUSE"})},resume(){r({type:"RESUME"})},togglePause(){r({type:"TOGGLE_PAUSE"})},restart(){r({type:"RESTART"})},getRootProps(){let u=o("dir");return t.element(v(p({},Wa.root.attrs),{id:Qt.getRootId(n),dir:u,role:"region","aria-roledescription":"marquee","aria-live":"off","aria-label":o("translations").root,"data-state":l?"paused":"idle","data-orientation":d,"data-paused":S(l),onMouseEnter:o("pauseOnInteraction")?()=>r({type:"PAUSE"}):void 0,onMouseLeave:o("pauseOnInteraction")?()=>r({type:"RESUME"}):void 0,onFocusCapture:o("pauseOnInteraction")?f=>{f.target!==f.currentTarget&&r({type:"PAUSE"})}:void 0,onBlurCapture:o("pauseOnInteraction")?f=>{f.currentTarget.contains(f.relatedTarget)||r({type:"RESUME"})}:void 0,style:{display:"flex",flexDirection:d==="vertical"?"column":"row",position:"relative",overflow:"hidden",contain:"layout style paint","--marquee-duration":`${c}s`,"--marquee-spacing":o("spacing"),"--marquee-delay":`${o("delay")}s`,"--marquee-loop-count":o("loopCount")===0?"infinite":o("loopCount").toString(),"--marquee-translate":Dx({side:s,dir:u})}}))},getViewportProps(){return t.element(v(p({},Wa.viewport.attrs),{id:Qt.getViewportId(n),"data-part":"viewport","data-orientation":d,"data-side":s,onAnimationIteration(u){var f;u.target===Qt.getContentEl(n,0)&&((f=o("onLoopComplete"))==null||f())},onAnimationEnd(u){var f;u.target===Qt.getContentEl(n,0)&&((f=o("onComplete"))==null||f())},style:{display:"flex",[h?"height":"width"]:"100%",flexDirection:d==="vertical"?s==="bottom"?"column-reverse":"column":s==="end"?"row-reverse":"row"}}))},getContentProps(u){let{index:f}=u,m=f>0;return t.element(v(p({},Wa.content.attrs),{id:Qt.getContentId(n,f),dir:o("dir"),"data-part":"content","data-index":f,"data-orientation":d,"data-side":s,"data-reverse":o("reverse")?"":void 0,"data-clone":S(m),role:m?"presentation":void 0,"aria-hidden":m?!0:void 0,style:{display:"flex",flexDirection:d==="vertical"?"column":"row",flexShrink:0,backfaceVisibility:"hidden",WebkitBackfaceVisibility:"hidden",willChange:l?"auto":"transform",transform:"translateZ(0)",[h?"minWidth":"minHeight"]:"auto",contain:"paint"}}))},getEdgeProps(u){let{side:f}=u,m=o("dir");return t.element(v(p({},Wa.edge.attrs),{dir:m,"data-part":"edge","data-side":f,"data-orientation":d,style:p({pointerEvents:"none",position:"absolute"},Nx({side:f,dir:m}))}))},getItemProps(){return t.element(v(p({},Wa.item.attrs),{dir:o("dir"),style:{[h?"marginBlock":"marginInline"]:"calc(var(--marquee-spacing) / 2)"}}))}}}function Sv(e){let{rootSize:t,contentSize:n,speed:r,multiplier:i,autoFill:a}=e;return a?n*i/r:n{"use strict";Ce();se();kx=j("marquee").parts("root","viewport","content","edge","item"),Wa=kx.build(),Qt={getRootId:e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`marquee:${e.id}`},getViewportId:e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.viewport)!=null?n:`marquee:${e.id}:viewport`},getContentId:(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.content)==null?void 0:r.call(n,t))!=null?i:`marquee:${e.id}:content:${t}`},getRootEl:e=>e.getById(Qt.getRootId(e)),getViewportEl:e=>e.getById(Qt.getViewportId(e)),getContentEl:(e,t)=>e.getById(Qt.getContentId(e,t))},Nx=e=>{let{side:t}=e;switch(t){case"start":return{top:0,insetInlineStart:0,height:"100%"};case"end":return{top:0,insetInlineEnd:0,height:"100%"};case"top":return{top:0,insetInline:0,width:"100%"};case"bottom":return{bottom:0,insetInline:0,width:"100%"}}},Dx=e=>{let{side:t,dir:n}=e;return t==="top"?"-100%":t==="bottom"?"100%":t==="start"&&n==="ltr"||t==="end"&&n==="rtl"?"-100%":"100%"};Mx=te({props({props:e}){return p({dir:"ltr",side:"start",speed:50,delay:0,loopCount:0,spacing:"1rem",autoFill:!1,pauseOnInteraction:!1,reverse:!1,defaultPaused:!1,translations:{root:"Marquee content"}},e)},refs(){return{dimensions:void 0,initialDurationSet:!1}},context({prop:e,bindable:t}){return{paused:t(()=>({value:e("paused"),defaultValue:e("defaultPaused"),onChange(n){var r;(r=e("onPauseChange"))==null||r({paused:n})}})),duration:t(()=>({defaultValue:2e3/Math.max(.001,e("speed"))}))}},initialState(){return"idle"},computed:{orientation:({prop:e})=>{let t=e("side");return t==="top"||t==="bottom"?"vertical":"horizontal"},isVertical:({prop:e})=>{let t=e("side");return t==="top"||t==="bottom"},multiplier:({refs:e,prop:t})=>{if(!t("autoFill"))return 1;let n=e.get("dimensions");if(!n)return 1;let{rootSize:r,contentSize:i}=n;return i===0?1:in("speed")],()=>{t(["recalculateDuration","restartAnimation"])}),e([()=>n("spacing"),()=>n("side")],()=>{t(["recalculateDuration"])})},on:{PAUSE:{actions:["setPaused"]},RESUME:{actions:["setResumed"]},TOGGLE_PAUSE:{actions:["togglePaused"]},RESTART:{actions:["restartAnimation"]}},effects:["trackDimensions"],states:{idle:{}},implementations:{actions:{setPaused({context:e}){e.set("paused",!0)},setResumed({context:e}){e.set("paused",!1)},togglePaused({context:e}){e.set("paused",t=>!t)},restartAnimation({scope:e}){let t=Qt.getViewportEl(e);if(!t)return;t.querySelectorAll('[data-part="content"]').forEach(r=>{r.style.animation="none",r.offsetHeight,r.style.animation=""})},recalculateDuration({refs:e,computed:t,context:n,prop:r}){let i=e.get("dimensions");if(!i)return;let{rootSize:a,contentSize:o}=i,s=Sv({rootSize:a,contentSize:o,speed:Math.max(.001,r("speed")),multiplier:t("multiplier"),autoFill:r("autoFill")});n.set("duration",s)}},effects:{trackDimensions({scope:e,refs:t,computed:n,context:r,prop:i}){let a=Qt.getRootEl(e),o=Qt.getContentEl(e,0);if(!a||!o)return;let s=e.getWin(),l=()=>{let h=n("isVertical")?a.clientHeight:a.clientWidth,u=n("isVertical")?o.clientHeight:o.clientWidth;return{rootSize:h,contentSize:u}},c=()=>{let{rootSize:h,contentSize:u}=l();if(h>0&&u>0&&(t.set("dimensions",{rootSize:h,contentSize:u}),!t.get("initialDurationSet"))){let f=Sv({rootSize:h,contentSize:u,speed:Math.max(.001,i("speed")),multiplier:n("multiplier"),autoFill:i("autoFill")});r.set("duration",f),t.set("initialDurationSet",!0)}},d=null,g=new s.ResizeObserver(()=>{d===null&&(d=s.requestAnimationFrame(()=>{let{rootSize:h,contentSize:u}=l();t.set("dimensions",{rootSize:h,contentSize:u}),d=null}))});return g.observe(a),g.observe(o),c(),()=>{g.disconnect(),d!==null&&s.cancelAnimationFrame(d)}}}}});Fx=class extends X{constructor(){super(...arguments);J(this,"items",null)}initMachine(t){return new Y(Mx,t)}initApi(){return this.zagConnect(Lx)}buildDom(){let t=this.el.querySelector('[data-part="ssr-preview"]');t&&t.remove();let n=this.el.querySelector('template[data-part="items-template"]');if(!n||(this.items=Array.from(n.content.children).map(l=>l.cloneNode(!0)),n.remove(),this.el.querySelector('[data-scope="marquee"][data-part="root"]')))return;let r=document.createElement("div");r.setAttribute("data-scope","marquee"),r.setAttribute("data-part","root"),r.id=`marquee:${this.el.id}`,r.style.cssText="display:flex;flex-direction:row;position:relative;overflow:hidden;width:100%",this.el.appendChild(r);let i=document.createElement("div");r.appendChild(i),this.spreadProps(i,this.api.getEdgeProps({side:"start"}));let a=document.createElement("div");a.setAttribute("data-scope","marquee"),a.setAttribute("data-part","viewport"),a.id=`marquee:${this.el.id}:viewport`,a.style.cssText="display:flex;width:100%",r.appendChild(a);let o=document.createElement("div");o.setAttribute("data-scope","marquee"),o.setAttribute("data-part","content"),o.setAttribute("data-index","0"),o.id=`marquee:${this.el.id}:content:0`,o.style.cssText="display:flex;flex-direction:row;flex-shrink:0",a.appendChild(o),this.items.forEach(l=>{o.appendChild(l.cloneNode(!0))});let s=document.createElement("div");r.appendChild(s),this.spreadProps(s,this.api.getEdgeProps({side:"end"}))}render(){if(!this.items)return;let t=this.el.querySelector('[data-scope="marquee"][data-part="root"]');if(!t)return;this.spreadProps(t,this.api.getRootProps());let n=t.querySelector('[data-part="edge"][data-side="start"]');n&&this.spreadProps(n,this.api.getEdgeProps({side:"start"}));let r=t.querySelector('[data-part="viewport"]');if(!r)return;this.spreadProps(r,this.api.getViewportProps());let i=Array.from(r.querySelectorAll(':scope > [data-part="content"]'));for(;i.length>this.api.contentCount;){let o=i.pop();o&&r.removeChild(o)}Array.from({length:this.api.contentCount}).forEach((o,s)=>{let l=i[s];l||(l=document.createElement("div"),r.appendChild(l),this.items.forEach(c=>{let d=c.cloneNode(!0);l.appendChild(d)})),this.spreadProps(l,this.api.getContentProps({index:s})),l.querySelectorAll('[data-part="item"]').forEach(c=>{this.spreadProps(c,this.api.getItemProps())})});let a=t.querySelector('[data-part="edge"][data-side="end"]');a&&this.spreadProps(a,this.api.getEdgeProps({side:"end"}))}};_x={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=new Fx(e,v(p({},Pv(e)),{onPauseChange:r=>{let i=x(e,"onPauseChange");i&&this.liveSocket.main.isConnected()&&t(i,{id:e.id,paused:r.paused});let a=x(e,"onPauseChangeClient");a&&e.dispatchEvent(new CustomEvent(a,{bubbles:!0,detail:{id:e.id,paused:r.paused}}))},onLoopComplete:()=>{let r=x(e,"onLoopComplete");r&&this.liveSocket.main.isConnected()&&t(r,{id:e.id});let i=x(e,"onLoopCompleteClient");i&&e.dispatchEvent(new CustomEvent(i,{bubbles:!0,detail:{id:e.id}}))},onComplete:()=>{let r=x(e,"onComplete");r&&this.liveSocket.main.isConnected()&&t(r,{id:e.id});let i=x(e,"onCompleteClient");i&&e.dispatchEvent(new CustomEvent(i,{bubbles:!0,detail:{id:e.id}}))}}));n.buildDom(),n.init(),this.marquee=n,this.onPause=()=>n.api.pause(),this.onResume=()=>n.api.resume(),this.onTogglePause=()=>n.api.togglePause(),e.addEventListener("corex:marquee:pause",this.onPause),e.addEventListener("corex:marquee:resume",this.onResume),e.addEventListener("corex:marquee:toggle-pause",this.onTogglePause),this.handlers=[],this.handlers.push(this.handleEvent("marquee_pause",r=>{B(e.id,G(r))&&n.api.pause()})),this.handlers.push(this.handleEvent("marquee_resume",r=>{B(e.id,G(r))&&n.api.resume()})),this.handlers.push(this.handleEvent("marquee_toggle_pause",r=>{B(e.id,G(r))&&n.api.togglePause()}))},updated(){var e;(e=this.marquee)==null||e.updateProps(Pv(this.el))},destroyed(){var e;if(this.onPause&&this.el.removeEventListener("corex:marquee:pause",this.onPause),this.onResume&&this.el.removeEventListener("corex:marquee:resume",this.onResume),this.onTogglePause&&this.el.removeEventListener("corex:marquee:toggle-pause",this.onTogglePause),this.handlers)for(let t of this.handlers)this.removeHandleEvent(t);(e=this.marquee)==null||e.destroy()}}});var Hv={};fe(Hv,{Menu:()=>dA});function Ux(...e){let t={};for(let n of e){if(!n)continue;for(let i in t){if(i.startsWith("on")&&typeof t[i]=="function"&&typeof n[i]=="function"){t[i]=vt(n[i],t[i]);continue}if(i==="className"||i==="class"){t[i]=Hx(t[i],n[i]);continue}if(i==="style"){t[i]=Gx(t[i],n[i]);continue}t[i]=n[i]!==void 0?n[i]:t[i]}for(let i in n)t[i]===void 0&&(t[i]=n[i]);let r=Object.getOwnPropertySymbols(n);for(let i of r)t[i]=n[i]}return t}function Qx(e,t){if(!e)return;let n=be(e),r=new n.CustomEvent(Wd,{detail:{value:t}});e.dispatchEvent(r)}function eA(e){var n;let t=Jr(e);return(n=En(e))!=null?n:e.getDoc().getElementById(t)}function Lv(e,t){if(!ye(e))return!1;for(let n in t){let r=t[n],i=eA(r.scope);if(i&&ge(i,e))return!0;let a=r.refs.get("children");if(Object.keys(a).length>0&&Lv(e,a))return!0}return!1}function tA(e,t){let n=Nn(e),{top:r,right:i,left:a,bottom:o}=Kg(n),[s]=t.split("-");return{top:[a,r,i,o],right:[r,i,o,a],bottom:[r,a,o,i],left:[i,r,a,o]}[s]}function Mv(e,t){let{x:n,y:r}=t,i=!1;for(let a=0,o=e.length-1;ar!=d>r&&n<(c-s)*(r-l)/(d-l)+s&&(i=!i)}return i}function Av(e){let t=e.parent;for(;t&&t.context.get("isSubmenu");)t=t.refs.get("parent");t==null||t.send({type:"CLOSE"})}function nA(e,t){return e?Mv(e,t):!1}function rA(e,t,n){let r=Object.keys(e).length>0;if(!t)return null;if(!r)return Ka(n,t);for(let i in e){let a=e[i],o=Qr(a.scope);if(o===t)return o}return Ka(n,t)}function ji(e,t){e&&(e.refs.set("pointerRoutingLocked",t),e.context.set("pointerRoutingMode",t?"locked":"interactive"))}function Fv(e){let t=e.context.get("highlightedValue");if(!t)return!1;let n=e.refs.get("children");for(let r in n){let i=n[r];if(i.state.hasTag("open")&&Qr(i.scope)===t)return!0}return!1}function iA(e,t){e&&(e.refs.get("pointerRoutingLocked")||t&&Fv(e)||ji(e,!1))}function aA(e){e&&(Fv(e)||ji(e,!1))}function oA(e,t){let{context:n,send:r,state:i,computed:a,prop:o,scope:s}=e,l=i.hasTag("open"),c=n.get("isSubmenu"),d=a("isTypingAhead"),g=o("composite"),h=n.get("currentPlacement"),u=n.get("anchorPoint"),f=n.get("highlightedValue"),m=n.get("triggerValue"),P=Lt(v(p({},o("positioning")),{placement:u?"bottom":h}));function C(y){return{id:Ka(s,y.value),disabled:!!y.disabled,highlighted:f===y.value}}function V(y){var A;let E=(A=y.valueText)!=null?A:y.value;return v(p({},y),{id:y.value,valueText:E})}function I(y){let E=C(V(y));return v(p({},E),{checked:!!y.checked})}function b(y){let{closeOnSelect:E,valueText:A,value:N}=y,O=C(y),w=Ka(s,N);return t.element(v(p({},it.item.attrs),{id:w,role:"menuitem","aria-disabled":oe(O.disabled),"data-disabled":S(O.disabled),"data-ownedby":Jr(s),"data-highlighted":S(O.highlighted),"data-value":N,"data-valuetext":A,onDragStart(k){k.currentTarget.matches("a[href]")&&k.preventDefault()},onPointerMove(k){if(O.disabled||k.pointerType!=="mouse")return;let R=k.currentTarget;if(O.highlighted)return;let D=Je(k);r({type:"ITEM_POINTERMOVE",id:w,target:R,closeOnSelect:E,point:D})},onPointerLeave(k){var W;if(O.disabled||k.pointerType!=="mouse"||!((W=e.event.previous())==null?void 0:W.type.includes("POINTER")))return;let D=k.currentTarget;r({type:"ITEM_POINTERLEAVE",id:w,target:D,closeOnSelect:E})},onPointerDown(k){if(O.disabled)return;let R=k.currentTarget;r({type:"ITEM_POINTERDOWN",target:R,id:w,closeOnSelect:E})},onClick(k){if(Ar(k)||Vn(k)||O.disabled)return;let R=k.currentTarget;r({type:"ITEM_CLICK",target:R,id:w,closeOnSelect:E})}}))}return{highlightedValue:f,open:l,setOpen(y){i.hasTag("open")!==y&&r({type:y?"OPEN":"CLOSE"})},triggerValue:m,setTriggerValue(y){r({type:"TRIGGER_VALUE.SET",value:y})},setHighlightedValue(y){r({type:"HIGHLIGHTED.SET",value:y})},setParent(y){r({type:"PARENT.SET",value:y,id:y.prop("id")})},setChild(y){r({type:"CHILD.SET",value:y,id:y.prop("id")})},reposition(y={}){r({type:"POSITIONING.SET",options:y})},addItemListener(y){let E=s.getById(y.id);if(!E)return;let A=()=>{var N;return(N=y.onSelect)==null?void 0:N.call(y)};return E.addEventListener(Wd,A),()=>E.removeEventListener(Wd,A)},getContextTriggerProps(y={}){let{value:E}=y,A=E==null?!1:m===E,N=qd(s,E);return t.element(v(p({},it.contextTrigger.attrs),{dir:o("dir"),id:N,"data-ownedby":s.id,"data-value":E,"data-current":S(A),"data-state":l?"open":"closed",onPointerDown(O){if(O.pointerType==="mouse")return;let w=Je(O);r({type:"CONTEXT_MENU_START",point:w,value:E})},onPointerCancel(O){O.pointerType!=="mouse"&&r({type:"CONTEXT_MENU_CANCEL"})},onPointerMove(O){O.pointerType!=="mouse"&&r({type:"CONTEXT_MENU_CANCEL"})},onPointerUp(O){O.pointerType!=="mouse"&&r({type:"CONTEXT_MENU_CANCEL"})},onContextMenu(O){let w=Je(O),k=l&&E!=null&&!A;r({type:k?"TRIGGER_VALUE.SET":"CONTEXT_MENU",point:w,value:E}),O.preventDefault()},style:{WebkitTouchCallout:"none",WebkitUserSelect:"none",userSelect:"none"}}))},getTriggerItemProps(y){let E=y.getTriggerProps();return Ux(b({value:E.id}),E)},getTriggerProps(y={}){let{value:E}=y,A=E==null?!1:m===E,N=Qr(s,E);return t.button(v(p(v(p({},c?it.triggerItem.attrs:it.trigger.attrs),{"data-placement":n.get("currentPlacement"),type:"button",dir:o("dir"),id:N}),E!=null&&{"data-ownedby":s.id,"data-value":E,"data-current":S(A)}),{"data-uid":o("id"),"aria-haspopup":g?"menu":"dialog","aria-controls":Jr(s),"data-controls":Jr(s),"aria-expanded":E==null?l:l&&A,"data-state":l?"open":"closed",onPointerMove(O){if(O.pointerType!=="mouse"||il(O.currentTarget)||!c)return;let k=Je(O);r({type:"TRIGGER_POINTERMOVE",target:O.currentTarget,point:k})},onPointerLeave(O){if(il(O.currentTarget)||O.pointerType!=="mouse"||!c)return;ji(e.refs.get("parent"),!0);let w=Je(O);r({type:"TRIGGER_POINTERLEAVE",target:O.currentTarget,point:w})},onPointerDown(O){il(O.currentTarget)||tr(O)||O.preventDefault()},onClick(O){if(O.defaultPrevented||il(O.currentTarget))return;let w=l&&E!=null&&!A;r({type:w?"TRIGGER_VALUE.SET":"TRIGGER_CLICK",target:O.currentTarget,value:E})},onBlur(){r({type:"TRIGGER_BLUR"})},onFocus(){r({type:"TRIGGER_FOCUS"})},onKeyDown(O){if(O.defaultPrevented)return;let w={ArrowDown(){r({type:"ARROW_DOWN",value:E})},ArrowUp(){r({type:"ARROW_UP",value:E})},Enter(){r({type:"ARROW_DOWN",src:"enter",value:E})},Space(){r({type:"ARROW_DOWN",src:"space",value:E})}},k=ve(O,{orientation:"vertical",dir:o("dir")}),R=w[k];R&&(O.preventDefault(),R(O))}}))},getIndicatorProps(){return t.element(v(p({},it.indicator.attrs),{dir:o("dir"),"data-state":l?"open":"closed"}))},getPositionerProps(){return t.element(v(p({},it.positioner.attrs),{dir:o("dir"),id:kv(s),style:P.floating}))},getArrowProps(){return t.element(v(p({id:qx(s)},it.arrow.attrs),{dir:o("dir"),style:P.arrow}))},getArrowTipProps(){return t.element(v(p({},it.arrowTip.attrs),{dir:o("dir"),style:P.arrowTip}))},getContentProps(){return t.element(v(p({},it.content.attrs),{id:Jr(s),"aria-label":o("aria-label"),hidden:!l,"data-state":l?"open":"closed",role:g?"menu":"dialog",tabIndex:0,dir:o("dir"),"aria-activedescendant":a("highlightedId")||void 0,"aria-labelledby":u?qd(s,m!=null?m:void 0):Qr(s,m!=null?m:void 0),"data-placement":h,onPointerEnter(y){y.pointerType==="mouse"&&r({type:"MENU_POINTERENTER"})},onKeyDown(y){if(y.defaultPrevented||!ge(y.currentTarget,ee(y)))return;let E=ee(y);if(!((E==null?void 0:E.closest("[role=menu]"))===y.currentTarget||E===y.currentTarget))return;if(y.key==="Tab"&&!Ho(y)){y.preventDefault();return}let N={ArrowDown(){r({type:"ARROW_DOWN"})},ArrowUp(){r({type:"ARROW_UP"})},ArrowLeft(){r({type:"ARROW_LEFT"})},ArrowRight(){r({type:"ARROW_RIGHT"})},Enter(){r({type:"ENTER"})},Space(k){var R;d?r({type:"TYPEAHEAD",key:k.key}):(R=N.Enter)==null||R.call(N,k)},Home(){r({type:"HOME"})},End(){r({type:"END"})}},O=ve(y,{dir:o("dir")}),w=N[O];if(w){w(y),y.stopPropagation(),y.preventDefault();return}o("typeahead")&&Eg(y)&&(Fe(y)||xt(E)||(r({type:"TYPEAHEAD",key:y.key}),y.preventDefault()))}}))},getSeparatorProps(){return t.element(v(p({},it.separator.attrs),{role:"separator",dir:o("dir"),"aria-orientation":"horizontal"}))},getItemState:C,getItemProps:b,getOptionItemState:I,getOptionItemProps(y){let{type:E,disabled:A,closeOnSelect:N}=y,O=V(y),w=I(y);return p(p({},b(O)),t.element(v(p({"data-type":E},it.item.attrs),{dir:o("dir"),"data-value":O.value,role:`menuitem${E}`,"aria-checked":!!w.checked,"data-state":w.checked?"checked":"unchecked",onClick(k){if(A||Ar(k)||Vn(k))return;let R=k.currentTarget;r({type:"ITEM_CLICK",target:R,option:O,closeOnSelect:N})}})))},getItemIndicatorProps(y){let E=I(Fl(y)),A=E.checked?"checked":"unchecked";return t.element(v(p({},it.itemIndicator.attrs),{dir:o("dir"),"data-disabled":S(E.disabled),"data-highlighted":S(E.highlighted),"data-state":nt(y,"checked")?A:void 0,hidden:nt(y,"checked")?!E.checked:void 0}))},getItemTextProps(y){let E=I(Fl(y)),A=E.checked?"checked":"unchecked";return t.element(v(p({},it.itemText.attrs),{dir:o("dir"),"data-disabled":S(E.disabled),"data-highlighted":S(E.highlighted),"data-state":nt(y,"checked")?A:void 0}))},getItemGroupLabelProps(y){return t.element(v(p({},it.itemGroupLabel.attrs),{id:wv(s,y.htmlFor),dir:o("dir")}))},getItemGroupProps(y){return t.element(v(p({id:Wx(s,y.id)},it.itemGroup.attrs),{dir:o("dir"),"aria-labelledby":wv(s,y.id),role:"group"}))}}}function cA(e){let t=e.parentElement;for(;t;){if(t.getAttribute("phx-hook")==="Menu")return t;t=t.parentElement}return null}function Kd(e){e.renderSubmenuTriggers();for(let t of e.children)Kd(t)}function _v(e){let t=e.el;e.updateProps({id:t.id.replace(/^menu:/,""),closeOnSelect:T(t,"closeOnSelect"),loopFocus:T(t,"loopFocus"),typeahead:T(t,"typeahead"),composite:T(t,"composite"),defaultHighlightedValue:x(t,"defaultHighlightedValue"),dir:q(t),positioning:$e(t)});for(let n of e.children)_v(n)}function $v(e){for(let t of[...e.children])$v(t),t.destroy()}var $x,it,Hx,Bx,Tv,Gx,Qr,qd,Jr,qx,kv,Wx,Ka,Zr,wv,En,Ov,Nv,Kx,jx,Dv,Vv,rl,ja,zx,Yx,jd,Xx,Zx,Jx,il,xv,Wd,Bt,Ki,sA,lA,Rv,dA,Bv=ne(()=>{"use strict";$r();gr();gn();hr();Di();Zo();Ln();se();$x=j("menu").parts("arrow","arrowTip","content","contextTrigger","indicator","item","itemGroup","itemGroupLabel","itemIndicator","itemText","positioner","separator","trigger","triggerItem"),it=$x.build(),Hx=(...e)=>e.map(t=>{var n;return(n=t==null?void 0:t.trim)==null?void 0:n.call(t)}).filter(Boolean).join(" "),Bx=/((?:--)?(?:\w+-?)+)\s*:\s*([^;]*)/g,Tv=e=>{let t={},n;for(;n=Bx.exec(e);)t[n[1]]=n[2];return t},Gx=(e,t)=>{if(sa(e)){if(sa(t))return`${e};${t}`;e=Tv(e)}else sa(t)&&(t=Tv(t));return Object.assign({},e!=null?e:{},t!=null?t:{})};Qr=(e,t)=>{var r;let n=(r=e.ids)==null?void 0:r.trigger;return n!=null?Ze(n)?n(t):n:t?`menu:${e.id}:trigger:${t}`:`menu:${e.id}:trigger`},qd=(e,t)=>{var r;let n=(r=e.ids)==null?void 0:r.contextTrigger;return n!=null?Ze(n)?n(t):n:t?`menu:${e.id}:ctx-trigger:${t}`:`menu:${e.id}:ctx-trigger`},Jr=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.content)!=null?n:`menu:${e.id}:content`},qx=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.arrow)!=null?n:`menu:${e.id}:arrow`},kv=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.positioner)!=null?n:`menu:${e.id}:popper`},Wx=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.group)==null?void 0:r.call(n,t))!=null?i:`menu:${e.id}:group:${t}`},Ka=(e,t)=>`${e.id}/${t}`,Zr=e=>{var t;return(t=e==null?void 0:e.dataset.value)!=null?t:null},wv=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.groupLabel)==null?void 0:r.call(n,t))!=null?i:`menu:${e.id}:group-label:${t}`},En=e=>e.getById(Jr(e)),Ov=e=>e.getById(kv(e)),Nv=e=>e.getById(Qr(e)),Kx=(e,t)=>t?e.getById(Ka(e,t)):null,jx=e=>e.getById(qd(e)),Dv=e=>xe(e.getDoc(),`[data-scope="menu"][data-part="trigger"][data-ownedby="${e.id}"]`),Vv=e=>xe(e.getDoc(),`[data-scope="menu"][data-part="context-trigger"][data-ownedby="${e.id}"]`),rl=(e,t)=>{var n;return t==null?(n=Nv(e))!=null?n:Dv(e)[0]:e.getById(Qr(e,t))},ja=e=>{let n=`[role^="menuitem"][data-ownedby=${CSS.escape(Jr(e))}]:not([data-disabled])`;return xe(En(e),n)},zx=e=>Tt(ja(e)),Yx=e=>qt(ja(e)),jd=(e,t)=>t?e.id===t||e.dataset.value===t:!1,Xx=(e,t)=>{var i;let n=ja(e),r=n.findIndex(a=>jd(a,t.value));return Qu(n,r,{loop:(i=t.loop)!=null?i:t.loopFocus})},Zx=(e,t)=>{var i;let n=ja(e),r=n.findIndex(a=>jd(a,t.value));return eg(n,r,{loop:(i=t.loop)!=null?i:t.loopFocus})},Jx=(e,t)=>{var i;let n=ja(e),r=n.find(a=>jd(a,t.value));return ct(n,{state:t.typeaheadState,key:t.key,activeId:(i=r==null?void 0:r.id)!=null?i:null})},il=e=>ye(e)&&(e.dataset.disabled===""||e.hasAttribute("disabled")),xv=e=>{var t;return!!((t=e==null?void 0:e.getAttribute("role"))!=null&&t.startsWith("menuitem"))&&!!(e!=null&&e.hasAttribute("data-controls"))},Wd="menu:select";({not:Bt,and:Ki,or:sA}=Te()),lA=te({props({props:e}){return v(p({closeOnSelect:!0,typeahead:!0,composite:!0,loopFocus:!1,navigate(t){bi(t.node)}},e),{positioning:p({placement:"bottom-start",gutter:8},e.positioning)})},initialState({prop:e}){return e("open")||e("defaultOpen")?"open":"idle"},context({bindable:e,prop:t,scope:n}){return{highlightedValue:e(()=>({defaultValue:t("defaultHighlightedValue")||null,value:t("highlightedValue"),onChange(r){var i;(i=t("onHighlightChange"))==null||i({highlightedValue:r})}})),lastHighlightedValue:e(()=>({defaultValue:null})),currentPlacement:e(()=>({defaultValue:void 0})),intentPolygon:e(()=>({defaultValue:null})),anchorPoint:e(()=>({defaultValue:null,hash(r){return`x: ${r==null?void 0:r.x}, y: ${r==null?void 0:r.y}`}})),isSubmenu:e(()=>({defaultValue:!1})),triggerValue:e(()=>{var r;return{defaultValue:(r=t("defaultTriggerValue"))!=null?r:null,value:t("triggerValue"),onChange(i){let a=t("onTriggerValueChange");if(!a)return;let o=rl(n,i);a({value:i,triggerElement:o})}}}),pointerRoutingMode:e(()=>({defaultValue:"interactive"}))}},refs(){return{parent:null,children:{},pointerRoutingLocked:!1,typeaheadState:p({},ct.defaultOptions),positioningOverride:{}}},computed:{isRtl:({prop:e})=>e("dir")==="rtl",isTypingAhead:({refs:e})=>e.get("typeaheadState").keysSoFar!=="",highlightedId:({context:e,scope:t,refs:n})=>rA(n.get("children"),e.get("highlightedValue"),t)},watch({track:e,action:t,context:n,prop:r}){e([()=>n.get("isSubmenu")],()=>{t(["setSubmenuPlacement"])}),e([()=>n.hash("anchorPoint")],()=>{n.get("anchorPoint")&&t(["reposition"])}),e([()=>r("open")],()=>{t(["toggleVisibility"])})},on:{"TRIGGER_VALUE.SET":{actions:["setTriggerValue","setAnchorPoint","reposition","focusMenu"]},"PARENT.SET":{actions:["setParentMenu"]},"CHILD.SET":{actions:["setChildMenu"]},OPEN:[{guard:"isOpenControlled",actions:["setTriggerValue","invokeOnOpen"]},{target:"open",actions:["setTriggerValue","invokeOnOpen"]}],OPEN_AUTOFOCUS:[{guard:"isOpenControlled",actions:["setTriggerValue","invokeOnOpen"]},{target:"open",actions:["setTriggerValue","highlightFirstItem","invokeOnOpen"]}],CLOSE:[{guard:"isOpenControlled",actions:["invokeOnClose","releaseParentRoutingLock"]},{target:"closed",actions:["invokeOnClose","releaseParentRoutingLock","focusTrigger"]}],"HIGHLIGHTED.RESTORE":{actions:["restoreHighlightedItem"]},"HIGHLIGHTED.SET":{actions:["setHighlightedItem"]},"HIGHLIGHTED.SUGGEST":{actions:["suggestHighlightedItem"]}},states:{idle:{tags:["closed"],on:{"CONTROLLED.OPEN":{target:"open"},"CONTROLLED.CLOSE":{target:"closed"},CONTEXT_MENU_START:{target:"opening:contextmenu",actions:["setAnchorPoint","setTriggerValue"]},CONTEXT_MENU:[{guard:"isOpenControlled",actions:["setAnchorPoint","setTriggerValue","invokeOnOpen"]},{target:"open",actions:["setAnchorPoint","setTriggerValue","invokeOnOpen"]}],TRIGGER_CLICK:[{guard:"isOpenControlled",actions:["invokeOnOpen","setTriggerValue"]},{target:"open",actions:["invokeOnOpen","setTriggerValue"]}],TRIGGER_FOCUS:{guard:Bt("isSubmenu"),target:"closed"},TRIGGER_POINTERMOVE:{guard:"isSubmenu",target:"opening"}}},"opening:contextmenu":{tags:["closed"],effects:["waitForLongPress"],on:{"CONTROLLED.OPEN":{target:"open"},"CONTROLLED.CLOSE":{target:"closed",actions:["focusTrigger"]},CONTEXT_MENU_CANCEL:[{guard:"isOpenControlled",actions:["invokeOnClose","releaseParentRoutingLock"]},{target:"closed",actions:["invokeOnClose","releaseParentRoutingLock","focusTrigger"]}],"LONG_PRESS.OPEN":[{guard:"isOpenControlled",actions:["setTriggerValue","invokeOnOpen"]},{target:"open",actions:["setTriggerValue","invokeOnOpen"]}]}},opening:{tags:["closed"],effects:["waitForOpenDelay"],on:{"CONTROLLED.OPEN":{target:"open"},"CONTROLLED.CLOSE":{target:"closed",actions:["focusTrigger"]},BLUR:[{guard:"isOpenControlled",actions:["invokeOnClose","releaseParentRoutingLock"]},{target:"closed",actions:["invokeOnClose","releaseParentRoutingLock","focusTrigger"]}],TRIGGER_POINTERLEAVE:[{guard:"isOpenControlled",actions:["invokeOnClose","releaseParentRoutingLock"]},{target:"closed",actions:["invokeOnClose","releaseParentRoutingLock","focusTrigger"]}],"DELAY.OPEN":[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["invokeOnOpen"]}]}},closing:{tags:["open"],effects:["trackPointerMove","trackInteractOutside","waitForCloseDelay"],on:{"CONTROLLED.OPEN":{target:"open"},"CONTROLLED.CLOSE":{target:"closed",actions:["focusParentMenu","restoreParentHighlightedItem"]},MENU_POINTERENTER:{target:"open",actions:["clearIntentPolygon"]},POINTER_MOVED_AWAY_FROM_SUBMENU:[{guard:"isOpenControlled",actions:["invokeOnClose","releaseParentRoutingLock"]},{target:"closed",actions:["focusParentMenu","restoreParentHighlightedItem"]}],"DELAY.CLOSE":[{guard:"isOpenControlled",actions:["invokeOnClose","releaseParentRoutingLock"]},{target:"closed",actions:["focusParentMenu","restoreParentHighlightedItem","invokeOnClose","releaseParentRoutingLock"]}]}},closed:{tags:["closed"],entry:["clearHighlightedItem","unlockParentOnClose","clearAnchorPoint"],on:{"CONTROLLED.OPEN":[{guard:sA("isOpenAutoFocusEvent","isArrowDownEvent"),target:"open",actions:["highlightFirstItem"]},{guard:"isArrowUpEvent",target:"open",actions:["highlightLastItem"]},{target:"open"}],CONTEXT_MENU_START:{target:"opening:contextmenu",actions:["setAnchorPoint","setTriggerValue"]},CONTEXT_MENU:[{guard:"isOpenControlled",actions:["setAnchorPoint","setTriggerValue","invokeOnOpen"]},{target:"open",actions:["setAnchorPoint","setTriggerValue","invokeOnOpen"]}],TRIGGER_CLICK:[{guard:"isOpenControlled",actions:["invokeOnOpen","setTriggerValue"]},{target:"open",actions:["invokeOnOpen","setTriggerValue"]}],TRIGGER_POINTERMOVE:{guard:"isTriggerItem",target:"opening"},TRIGGER_BLUR:{target:"idle"},ARROW_DOWN:[{guard:"isOpenControlled",actions:["setTriggerValue","invokeOnOpen"]},{target:"open",actions:["setTriggerValue","highlightFirstItem","invokeOnOpen"]}],ARROW_UP:[{guard:"isOpenControlled",actions:["setTriggerValue","invokeOnOpen"]},{target:"open",actions:["setTriggerValue","highlightLastItem","invokeOnOpen"]}]}},open:{tags:["open"],effects:["trackInteractOutside","trackFocusVisible","trackPositioning","scrollToHighlightedItem"],entry:["focusMenu","unlockParentOnOpen"],on:{"CONTROLLED.CLOSE":[{target:"closed",guard:"isArrowLeftEvent",actions:["focusParentMenu"]},{target:"closed",actions:["focusTrigger"]}],TRIGGER_CLICK:[{guard:Ki(Bt("isTriggerItem"),"isOpenControlled"),actions:["invokeOnClose","releaseParentRoutingLock"]},{guard:Bt("isTriggerItem"),target:"closed",actions:["invokeOnClose","releaseParentRoutingLock","focusTrigger"]}],CONTEXT_MENU:{actions:["setAnchorPoint","setTriggerValue","focusMenu"]},ARROW_UP:{actions:["highlightPrevItem","focusMenu"]},ARROW_DOWN:{actions:["highlightNextItem","focusMenu"]},ARROW_LEFT:[{guard:Ki("isSubmenu","isOpenControlled"),actions:["invokeOnClose","releaseParentRoutingLock"]},{guard:"isSubmenu",target:"closed",actions:["focusParentMenu","invokeOnClose","releaseParentRoutingLock"]}],HOME:{actions:["highlightFirstItem","focusMenu"]},END:{actions:["highlightLastItem","focusMenu"]},ARROW_RIGHT:{guard:"isTriggerItemHighlighted",actions:["openSubmenu"]},ENTER:[{guard:"isTriggerItemHighlighted",actions:["openSubmenu"]},{actions:["clickHighlightedItem"]}],ITEM_POINTERMOVE:[{guard:Bt("isPointerRoutingLocked"),actions:["setHighlightedItem","focusMenu","closeSiblingMenus"]},{actions:["setLastHighlightedItem","closeSiblingMenus"]}],ITEM_POINTERLEAVE:{guard:Ki(Bt("isPointerRoutingLocked"),Bt("isTriggerItem")),actions:["clearHighlightedItem"]},ITEM_CLICK:[{guard:Ki(Bt("isTriggerItemHighlighted"),Bt("isHighlightedItemEditable"),"closeOnSelect","isOpenControlled"),actions:["invokeOnSelect","setOptionState","closeRootMenu","invokeOnClose","releaseParentRoutingLock"]},{guard:Ki(Bt("isTriggerItemHighlighted"),Bt("isHighlightedItemEditable"),"closeOnSelect"),target:"closed",actions:["invokeOnSelect","setOptionState","closeRootMenu","invokeOnClose","releaseParentRoutingLock","focusTrigger"]},{guard:Ki(Bt("isTriggerItemHighlighted"),Bt("isHighlightedItemEditable")),actions:["invokeOnSelect","setOptionState"]},{actions:["setHighlightedItem"]}],TRIGGER_POINTERMOVE:{guard:"isTriggerItem",actions:["setIntentPolygon"]},TRIGGER_POINTERLEAVE:{target:"closing",actions:["setIntentPolygon"]},ITEM_POINTERDOWN:{actions:["setHighlightedItem"]},TYPEAHEAD:{actions:["highlightMatchedItem"]},FOCUS_MENU:{actions:["focusMenu"]},"POSITIONING.SET":{actions:["reposition"]}}}},implementations:{guards:{closeOnSelect:({prop:e,event:t})=>{var n;return!!((n=t==null?void 0:t.closeOnSelect)!=null?n:e("closeOnSelect"))},isTriggerItem:({event:e})=>xv(e.target),isTriggerItemHighlighted:({event:e,scope:t,computed:n})=>{var i;let r=(i=e.target)!=null?i:t.getById(n("highlightedId"));return!!(r!=null&&r.hasAttribute("data-controls"))},isSubmenu:({context:e})=>e.get("isSubmenu"),isPointerRoutingLocked:({refs:e})=>e.get("pointerRoutingLocked"),isHighlightedItemEditable:({scope:e,computed:t})=>xt(e.getById(t("highlightedId"))),isOpenControlled:({prop:e})=>e("open")!==void 0,isArrowLeftEvent:({event:e})=>{var t;return((t=e.previousEvent)==null?void 0:t.type)==="ARROW_LEFT"},isArrowUpEvent:({event:e})=>{var t;return((t=e.previousEvent)==null?void 0:t.type)==="ARROW_UP"},isArrowDownEvent:({event:e})=>{var t;return((t=e.previousEvent)==null?void 0:t.type)==="ARROW_DOWN"},isOpenAutoFocusEvent:({event:e})=>{var t;return((t=e.previousEvent)==null?void 0:t.type)==="OPEN_AUTOFOCUS"}},effects:{waitForOpenDelay({send:e}){let t=setTimeout(()=>{e({type:"DELAY.OPEN"})},200);return()=>clearTimeout(t)},waitForCloseDelay({send:e}){let t=setTimeout(()=>{e({type:"DELAY.CLOSE"})},100);return()=>clearTimeout(t)},waitForLongPress({send:e}){let t=setTimeout(()=>{e({type:"LONG_PRESS.OPEN"})},700);return()=>clearTimeout(t)},trackFocusVisible({scope:e}){var t;return et({root:(t=e.getRootNode)==null?void 0:t.call(e)})},trackPositioning({context:e,prop:t,scope:n,refs:r}){if(jx(n)||Vv(n).length>0)return;let a=p(p({},t("positioning")),r.get("positioningOverride"));return e.set("currentPlacement",a.placement),ze(()=>rl(n,e.get("triggerValue")),()=>Ov(n),v(p({},a),{defer:!0,onComplete(l){e.set("currentPlacement",l.placement)}}))},trackInteractOutside({refs:e,scope:t,prop:n,context:r,send:i}){let a=()=>En(t),o=!0,s=l=>Vv(t).some(c=>ge(c,l));return Mt(a,{type:"menu",defer:!0,exclude:[Nv(t),...Dv(t)].filter(Boolean),onInteractOutside:n("onInteractOutside"),onRequestDismiss:n("onRequestDismiss"),onFocusOutside(l){var d;(d=n("onFocusOutside"))==null||d(l);let c=ee(l.detail.originalEvent);if(s(c)){l.preventDefault();return}if(Lv(c,e.get("children"))){l.preventDefault();return}},onEscapeKeyDown(l){var c;(c=n("onEscapeKeyDown"))==null||c(l),r.get("isSubmenu")&&l.preventDefault(),Av({parent:e.get("parent")})},onPointerDownOutside(l){var d;(d=n("onPointerDownOutside"))==null||d(l);let c=ee(l.detail.originalEvent);if(s(c)&&l.detail.contextmenu){l.preventDefault();return}o=!l.detail.focusable},onDismiss(){i({type:"CLOSE",src:"interact-outside",restoreFocus:o})}})},trackPointerMove({context:e,scope:t,send:n,refs:r}){let i=r.get("parent");if(!i)return;ji(i,!0);let a=t.getDoc();return re(a,"pointermove",o=>{nA(e.get("intentPolygon"),{x:o.clientX,y:o.clientY})||(n({type:"POINTER_MOVED_AWAY_FROM_SUBMENU"}),ji(i,!1))})},scrollToHighlightedItem({scope:e,computed:t}){let n=()=>{if(sr()==="pointer")return;let a=e.getById(t("highlightedId")),o=En(e);Rn(a,{rootEl:o,block:"nearest"})};return $(()=>{lr("virtual"),n()}),kt(()=>En(e),{defer:!0,attributes:["aria-activedescendant"],callback:n})}},actions:{setAnchorPoint({context:e,event:t}){e.set("anchorPoint",n=>Ie(n,t.point)?n:t.point)},setSubmenuPlacement({context:e,computed:t,refs:n}){if(!e.get("isSubmenu"))return;let r=t("isRtl")?"left-start":"right-start";n.set("positioningOverride",{placement:r,gutter:0})},reposition({context:e,scope:t,prop:n,event:r,refs:i}){var g,h,u;let a=()=>Ov(t),o=(g=r.point)!=null?g:e.get("anchorPoint"),s=o?()=>p({width:0,height:0},o):void 0,l=p(p({},n("positioning")),i.get("positioningOverride")),c=(h=r.value)!=null?h:e.get("triggerValue");ze(()=>rl(t,c),a,v(p(v(p({},l),{defer:!0,getAnchorRect:s}),(u=r.options)!=null?u:{}),{listeners:!1,onComplete(f){e.set("currentPlacement",f.placement)}}))},setOptionState({event:e}){if(!e.option)return;let{checked:t,onCheckedChange:n,type:r}=e.option;r==="radio"?n==null||n(!0):r==="checkbox"&&(n==null||n(!t))},clickHighlightedItem({scope:e,computed:t,prop:n,context:r}){var o;let i=e.getById(t("highlightedId"));if(!i||i.dataset.disabled)return;let a=r.get("highlightedValue");Vt(i)?(o=n("navigate"))==null||o({value:a,node:i,href:i.href}):queueMicrotask(()=>i.click())},setIntentPolygon({context:e,scope:t,event:n}){let r=En(t),i=e.get("currentPlacement");if(!r||!i)return;let a=r.getBoundingClientRect(),o=tA(a,i);if(!o)return;let l=rp(i)==="right"?-5:5;e.set("intentPolygon",[v(p({},n.point),{x:n.point.x+l}),...o])},clearIntentPolygon({context:e}){e.set("intentPolygon",null)},clearAnchorPoint({context:e}){e.set("anchorPoint",null)},unlockParentOnOpen({refs:e,context:t,scope:n}){let r=e.get("parent");if(t.get("isSubmenu")){let i=Qr(n);r==null||r.send({type:"HIGHLIGHTED.SUGGEST",value:i})}ji(r,!1)},unlockParentOnClose({refs:e,context:t}){iA(e.get("parent"),t.get("isSubmenu"))},setHighlightedItem({context:e,event:t}){let n=t.value||Zr(t.target);e.set("highlightedValue",n)},clearHighlightedItem({context:e}){e.set("highlightedValue",null)},focusMenu({scope:e}){$(()=>{let t=En(e),n=nr({root:t,enabled:!ge(t,e.getActiveElement()),filter(r){var i;return!((i=r.role)!=null&&i.startsWith("menuitem"))}});n==null||n.focus({preventScroll:!0})})},highlightFirstItem({context:e,scope:t}){(En(t)?queueMicrotask:$)(()=>{let r=zx(t);r&&e.set("highlightedValue",Zr(r))})},highlightLastItem({context:e,scope:t}){(En(t)?queueMicrotask:$)(()=>{let r=Yx(t);r&&e.set("highlightedValue",Zr(r))})},highlightNextItem({context:e,scope:t,event:n,prop:r}){let i=Xx(t,{loop:n.loop,value:e.get("highlightedValue"),loopFocus:r("loopFocus")});e.set("highlightedValue",Zr(i))},highlightPrevItem({context:e,scope:t,event:n,prop:r}){let i=Zx(t,{loop:n.loop,value:e.get("highlightedValue"),loopFocus:r("loopFocus")});e.set("highlightedValue",Zr(i))},invokeOnSelect({context:e,prop:t,scope:n}){var a;let r=e.get("highlightedValue");if(r==null)return;let i=Kx(n,r);Qx(i,r),(a=t("onSelect"))==null||a({value:r})},focusTrigger({scope:e,context:t,event:n}){t.get("isSubmenu")||t.get("anchorPoint")||n.restoreFocus===!1||queueMicrotask(()=>{let r=rl(e,t.get("triggerValue"));r==null||r.focus({preventScroll:!0})})},highlightMatchedItem({scope:e,context:t,event:n,refs:r}){let i=Jx(e,{key:n.key,value:t.get("highlightedValue"),typeaheadState:r.get("typeaheadState")});i&&t.set("highlightedValue",Zr(i))},setParentMenu({refs:e,event:t,context:n}){e.set("parent",t.value),n.set("isSubmenu",!0)},setChildMenu({refs:e,event:t}){let n=e.get("children");n[t.id]=t.value,e.set("children",n)},closeSiblingMenus({refs:e,event:t,scope:n}){var o;let r=t.target;if(!xv(r))return;let i=r==null?void 0:r.getAttribute("data-uid"),a=e.get("children");for(let s in a){if(s===i)continue;let l=a[s],c=l.context.get("intentPolygon");c&&t.point&&Mv(c,t.point)||((o=En(n))==null||o.focus({preventScroll:!0}),l.send({type:"CLOSE"}))}},closeRootMenu({refs:e}){Av({parent:e.get("parent")})},openSubmenu({refs:e,scope:t,computed:n}){let r=t.getById(n("highlightedId")),i=r==null?void 0:r.getAttribute("data-uid"),a=e.get("children"),o=i?a[i]:null;o==null||o.send({type:"OPEN_AUTOFOCUS"})},focusParentMenu({refs:e}){var t;(t=e.get("parent"))==null||t.send({type:"FOCUS_MENU"})},setLastHighlightedItem({context:e,event:t}){e.set("lastHighlightedValue",Zr(t.target))},suggestHighlightedItem({context:e,event:t}){let n=t.value;if(n){if(e.get("highlightedValue")!=null){e.set("lastHighlightedValue",n);return}e.set("highlightedValue",n)}},restoreHighlightedItem({context:e}){let t=e.get("lastHighlightedValue");e.set("lastHighlightedValue",null),t&&e.set("highlightedValue",t)},restoreParentHighlightedItem({refs:e}){var t;(t=e.get("parent"))==null||t.send({type:"HIGHLIGHTED.RESTORE"})},invokeOnOpen({prop:e}){var t;(t=e("onOpenChange"))==null||t({open:!0})},invokeOnClose({prop:e}){var t;(t=e("onOpenChange"))==null||t({open:!1})},releaseParentRoutingLock({refs:e,context:t}){t.get("isSubmenu")&&aA(e.get("parent"))},toggleVisibility({prop:e,event:t,send:n}){n({type:e("open")?"CONTROLLED.OPEN":"CONTROLLED.CLOSE",previousEvent:t})},setTriggerValue({context:e,event:t}){t.value!==void 0&&e.set("triggerValue",t.value)}}}}),Rv=class extends X{constructor(){super(...arguments);J(this,"children",[])}initMachine(t){return new Y(lA,t)}initApi(){return this.zagConnect(oA)}setChild(t){this.api.setChild(t.machine.service),this.children.includes(t)||this.children.push(t)}setParent(t){this.api.setParent(t.machine.service)}isOwnElement(t){return t.closest('[phx-hook="Menu"]')===this.el}renderSubmenuTriggers(){let t=this.el.querySelector('[data-scope="menu"][data-part="content"]');if(!t)return;let n=t.querySelectorAll('[data-scope="menu"][data-nested-menu]');for(let r of n){if(!this.isOwnElement(r))continue;let i=r.dataset.nestedMenu;if(!i)continue;let a=this.children.find(s=>s.el.id===`menu:${i}`);if(!a)continue;let o=()=>{let s=this.api.getTriggerItemProps(a.api);this.spreadProps(r,s)};o(),this.machine.subscribe(o),a.machine.subscribe(o)}}render(){let t=this.el.querySelector('[data-scope="menu"][data-part="trigger"]');t&&this.spreadProps(t,this.api.getTriggerProps());let n=this.el.querySelector('[data-scope="menu"][data-part="positioner"]'),r=this.el.querySelector('[data-scope="menu"][data-part="content"]');if(n&&r){this.spreadProps(n,this.api.getPositionerProps()),this.spreadProps(r,this.api.getContentProps()),r.style.pointerEvents="auto",n.hidden=!this.api.open;let a=!this.el.querySelector('[data-scope="menu"][data-part="trigger"]');(this.api.open||a)&&(r.querySelectorAll('[data-scope="menu"][data-part="item"]').forEach(d=>{if(!this.isOwnElement(d))return;let g=d.dataset.value;if(g){let h=d.hasAttribute("data-disabled");this.spreadProps(d,this.api.getItemProps({value:g,disabled:h||void 0}))}}),r.querySelectorAll('[data-scope="menu"][data-part="item-group"]').forEach(d=>{if(!this.isOwnElement(d))return;let g=d.id;g&&this.spreadProps(d,this.api.getItemGroupProps({id:g}))}),r.querySelectorAll('[data-scope="menu"][data-part="separator"]').forEach(d=>{this.isOwnElement(d)&&this.spreadProps(d,this.api.getSeparatorProps())}))}let i=this.el.querySelector('[data-scope="menu"][data-part="indicator"]');i&&this.spreadProps(i,this.api.getIndicatorProps())}};dA={mounted(){let e=this.el;if(e.hasAttribute("data-nested"))return;let t=this.pushEvent.bind(this),n=this.liveSocket,r=()=>l=>{var g,h;if(T(e,"redirect")&&l.value){let u=e.querySelector(`[data-scope="menu"][data-part="item"][data-value="${CSS.escape(l.value)}"]`);mn(fn(u,l.value),{liveSocket:n})}let c=x(e,"onSelect");c&&Q(n)&&t(c,{id:e.id,value:(g=l.value)!=null?g:null});let d=x(e,"onSelectClient");d&&e.dispatchEvent(new CustomEvent(d,{bubbles:!0,detail:{id:e.id,value:(h=l.value)!=null?h:null}}))},i=new Rv(e,{id:e.id.replace(/^menu:/,""),closeOnSelect:T(e,"closeOnSelect"),loopFocus:T(e,"loopFocus"),typeahead:T(e,"typeahead"),composite:T(e,"composite"),defaultHighlightedValue:x(e,"defaultHighlightedValue"),dir:q(e),positioning:$e(e),onSelect:r(),onOpenChange:l=>{var g,h;let c=x(e,"onOpenChange");c&&Q(n)&&t(c,{id:e.id,open:(g=l.open)!=null?g:!1});let d=x(e,"onOpenChangeClient");d&&e.dispatchEvent(new CustomEvent(d,{bubbles:!0,detail:{id:e.id,open:(h=l.open)!=null?h:!1}}))}});i.init(),this.menu=i;let a=e.querySelectorAll('[data-scope="menu"][data-nested="menu"]'),o=new Map,s=[];a.forEach(l=>{let c=l.id;if(!c)return;let d=new Rv(l,{id:c.replace(/^menu:/,""),dir:q(l),closeOnSelect:T(l,"closeOnSelect"),loopFocus:T(l,"loopFocus"),typeahead:T(l,"typeahead"),composite:T(l,"composite"),positioning:$e(l),onSelect:r()});d.init(),o.set(c,d),s.push(d)}),setTimeout(()=>{s.forEach(l=>{let c=l.el,d=cA(c);if(!d)return;let g=d===e?this.menu:o.get(d.id);g&&(g.setChild(l),l.setParent(g))}),this.menu&&this.menu.children.length>0&&Kd(this.menu)},0),this.onSetOpen=l=>{let{open:c}=l.detail;i.api.open!==c&&i.api.setOpen(c)},e.addEventListener("corex:menu:set-open",this.onSetOpen),this.handlers=[],this.handlers.push(this.handleEvent("menu_set_open",l=>{let c=l.menu_id;(!c||e.id===c||e.id===`menu:${c}`)&&i.api.setOpen(l.open)})),this.handlers.push(this.handleEvent("menu_open",()=>{this.pushEvent("menu_open_response",{open:i.api.open})}))},updated(){this.el.hasAttribute("data-nested")||this.menu&&(_v(this.menu),this.menu.children.length>0&&Kd(this.menu))},destroyed(){if(!this.el.hasAttribute("data-nested")){if(this.onSetOpen&&this.el.removeEventListener("corex:menu:set-open",this.onSetOpen),this.handlers)for(let e of this.handlers)this.removeHandleEvent(e);this.menu&&($v(this.menu),this.menu.destroy())}}}});var ty={};fe(ty,{NumberInput:()=>HA});function Zd(e,t){if(!(!e||!t.isActiveElement(e)))try{let{selectionStart:n,selectionEnd:r,value:i}=e;return n==null||r==null?void 0:{start:n,end:r,value:i}}catch(n){return}}function gA(e,t,n){if(!(!e||!n.isActiveElement(e))){if(!t){let r=e.value.length;e.setSelectionRange(r,r);return}try{let r=e.value,{start:i,end:a,value:o}=t;if(r===o){e.setSelectionRange(i,a);return}let s=Gv(o,r,i),l=i===a?s:Gv(o,r,a),c=Math.max(0,Math.min(s,r.length)),d=Math.max(c,Math.min(l,r.length));e.setSelectionRange(c,d)}catch(r){let i=e.value.length;e.setSelectionRange(i,i)}}}function Gv(e,t,n){let r=e.slice(0,n),i=e.slice(n),a=0,o=Math.min(r.length,t.length);for(let c=0;c0&&a>=r.length)return a;if(s>=i.length)return t.length-s;if(a>0)return a;if(s>0)return t.length-s;if(n===0&&a===0&&s===0)return t.length;if(e.length>0){let c=n/e.length;return Math.round(c*t.length)}return t.length}function CA(e,t){let{state:n,send:r,prop:i,scope:a,computed:o}=e,s=n.hasTag("focus"),l=o("isDisabled"),c=!!i("readOnly"),d=!!i("required"),g=n.matches("scrubbing"),h=o("isValueEmpty"),u=i("invalid")!==void 0?!!i("invalid"):o("isOutOfRange"),f=l||!o("canIncrement")||c,m=l||!o("canDecrement")||c,P=i("translations");return{focused:s,invalid:u,empty:h,value:o("formattedValue"),valueAsNumber:o("valueAsNumber"),setValue(C){r({type:"VALUE.SET",value:C})},clearValue(){r({type:"VALUE.CLEAR"})},increment(){r({type:"VALUE.INCREMENT"})},decrement(){r({type:"VALUE.DECREMENT"})},setToMax(){r({type:"VALUE.SET",value:i("max")})},setToMin(){r({type:"VALUE.SET",value:i("min")})},focus(){var C;(C=ti(a))==null||C.focus()},getRootProps(){return t.element(v(p({id:hA(a)},br.root.attrs),{dir:i("dir"),"data-disabled":S(l),"data-focus":S(s),"data-invalid":S(u),"data-scrubbing":S(g)}))},getLabelProps(){return t.label(v(p({},br.label.attrs),{dir:i("dir"),"data-disabled":S(l),"data-focus":S(s),"data-invalid":S(u),"data-required":S(d),"data-scrubbing":S(g),id:fA(a),htmlFor:za(a),onClick(){$(()=>{fi(ti(a))})}}))},getControlProps(){return t.element(v(p({},br.control.attrs),{dir:i("dir"),role:"group","aria-disabled":l,"data-focus":S(s),"data-disabled":S(l),"data-invalid":S(u),"data-scrubbing":S(g),"aria-invalid":oe(u)}))},getValueTextProps(){return t.element(v(p({},br.valueText.attrs),{dir:i("dir"),"data-disabled":S(l),"data-invalid":S(u),"data-focus":S(s),"data-scrubbing":S(g)}))},getInputProps(){return t.input(v(p({},br.input.attrs),{dir:i("dir"),name:i("name"),form:i("form"),id:za(a),role:"spinbutton",defaultValue:o("formattedValue"),pattern:i("formatOptions")?void 0:i("pattern"),inputMode:i("inputMode"),"aria-invalid":oe(u),"data-invalid":S(u),disabled:l,"data-disabled":S(l),readOnly:c,required:i("required"),autoComplete:"off",autoCorrect:"off",spellCheck:"false",type:"text","aria-roledescription":"numberfield","aria-valuemin":i("min"),"aria-valuemax":i("max"),"aria-valuenow":Number.isNaN(o("valueAsNumber"))?void 0:o("valueAsNumber"),"aria-valuetext":o("valueText"),"data-scrubbing":S(g),onFocus(){r({type:"INPUT.FOCUS"})},onBlur(){r({type:"INPUT.BLUR"})},onInput(C){let V=Zd(C.currentTarget,a);r({type:"INPUT.CHANGE",target:C.currentTarget,hint:"set",selection:V})},onBeforeInput(C){var V;try{let{selectionStart:I,selectionEnd:b,value:y}=C.currentTarget,E=y.slice(0,I)+((V=C.data)!=null?V:"")+y.slice(b);o("parser").isValidPartialNumber(E)||C.preventDefault()}catch(I){}},onKeyDown(C){if(C.defaultPrevented||c||He(C))return;let V=xn(C)*i("step"),b={ArrowUp(){r({type:"INPUT.ARROW_UP",step:V}),C.preventDefault()},ArrowDown(){r({type:"INPUT.ARROW_DOWN",step:V}),C.preventDefault()},Home(){Fe(C)||(r({type:"INPUT.HOME"}),C.preventDefault())},End(){Fe(C)||(r({type:"INPUT.END"}),C.preventDefault())},Enter(y){let E=Zd(y.currentTarget,a);r({type:"INPUT.ENTER",selection:E})}}[C.key];b==null||b(C)}}))},getDecrementTriggerProps(){return t.button(v(p({},br.decrementTrigger.attrs),{dir:i("dir"),id:Xv(a),disabled:m,"data-disabled":S(m),"aria-label":P.decrementLabel,type:"button",tabIndex:-1,"aria-controls":za(a),"data-scrubbing":S(g),onPointerDown(C){var V;m||Ee(C)&&(r({type:"TRIGGER.PRESS_DOWN",hint:"decrement",pointerType:C.pointerType}),C.pointerType==="mouse"&&C.preventDefault(),C.pointerType==="touch"&&((V=C.currentTarget)==null||V.focus({preventScroll:!0})))},onPointerUp(C){r({type:"TRIGGER.PRESS_UP",hint:"decrement",pointerType:C.pointerType})},onPointerLeave(){m||r({type:"TRIGGER.PRESS_UP",hint:"decrement"})}}))},getIncrementTriggerProps(){return t.button(v(p({},br.incrementTrigger.attrs),{dir:i("dir"),id:Yv(a),disabled:f,"data-disabled":S(f),"aria-label":P.incrementLabel,type:"button",tabIndex:-1,"aria-controls":za(a),"data-scrubbing":S(g),onPointerDown(C){var V;f||!Ee(C)||(r({type:"TRIGGER.PRESS_DOWN",hint:"increment",pointerType:C.pointerType}),C.pointerType==="mouse"&&C.preventDefault(),C.pointerType==="touch"&&((V=C.currentTarget)==null||V.focus({preventScroll:!0})))},onPointerUp(C){r({type:"TRIGGER.PRESS_UP",hint:"increment",pointerType:C.pointerType})},onPointerLeave(C){r({type:"TRIGGER.PRESS_UP",hint:"increment",pointerType:C.pointerType})}}))},getScrubberProps(){return t.element(v(p({},br.scrubber.attrs),{dir:i("dir"),"data-disabled":S(l),id:pA(a),role:"presentation","data-scrubbing":S(g),onMouseDown(C){if(l||!Ee(C))return;let V=Je(C),b=be(C.currentTarget).devicePixelRatio;V.x=V.x-Ti(7.5,b),V.y=V.y-Ti(7.5,b),r({type:"SCRUBBER.PRESS_DOWN",point:V}),C.preventDefault(),$(()=>{fi(ti(a))})},style:{cursor:l?void 0:"ew-resize"}}))}}}function TA(e,t={}){let{numberingSystem:n}=t;if(n&&e.includes("-nu-")&&(e.includes("-u-")||(e+="-u-"),e+=`-nu-${n}`),t.style==="unit"&&!al){var r;let{unit:o,unitDisplay:s="short"}=t;if(!o)throw new Error('unit option must be provided with style: "unit"');if(!(!((r=Qv[o])===null||r===void 0)&&r[s]))throw new Error(`Unsupported unit ${o} with unitDisplay = ${s}`);t=v(p({},t),{style:"decimal"})}let i=e+(t?Object.entries(t).sort((o,s)=>o[0]0||Object.is(n,0):t==="exceptZero"&&(Object.is(n,-0)||Object.is(n,0)?n=Math.abs(n):r=n>0),r){let i=e.format(-n),a=e.format(n),o=i.replace(a,"").replace(/\u200e|\u061C/,"");return[...o].length!==1&&console.warn("@react-aria/i18n polyfill for NumberFormat signDisplay: Unsupported case"),i.replace(a,"!!!").replace(o,"+").replace("!!!",a)}else return e.format(n)}}function Yd(e,t,n){let r=qv(e,t);if(!e.includes("-nu-")&&!r.isValidPartialNumber(n)){for(let i of VA)if(i!==r.options.numberingSystem){let a=qv(e+(e.includes("-u-")?"-nu-":"-u-nu-")+i,t);if(a.isValidPartialNumber(n))return a}}return r}function qv(e,t){let n=e+(t?Object.entries(t).sort((i,a)=>i[0]l.formatToParts(w));var h;let u=(h=(i=c.find(w=>w.type==="minusSign"))===null||i===void 0?void 0:i.value)!==null&&h!==void 0?h:"-",f=(a=d.find(w=>w.type==="plusSign"))===null||a===void 0?void 0:a.value;!f&&((r==null?void 0:r.signDisplay)==="exceptZero"||(r==null?void 0:r.signDisplay)==="always")&&(f="+");let P=(o=new Intl.NumberFormat(e,v(p({},n),{minimumFractionDigits:2,maximumFractionDigits:2})).formatToParts(.001).find(w=>w.type==="decimal"))===null||o===void 0?void 0:o.value,C=(s=c.find(w=>w.type==="group"))===null||s===void 0?void 0:s.value,V=c.filter(w=>!Wv.has(w.type)).map(w=>Kv(w.value)),I=g.flatMap(w=>w.filter(k=>!Wv.has(k.type)).map(k=>Kv(k.value))),b=[...new Set([...V,...I])].sort((w,k)=>k.length-w.length),y=b.length===0?new RegExp("[\\p{White_Space}]","gu"):new RegExp(`${b.join("|")}|[\\p{White_Space}]`,"gu"),E=[...new Intl.NumberFormat(n.locale,{useGrouping:!1}).format(9876543210)].reverse(),A=new Map(E.map((w,k)=>[w,k])),N=new RegExp(`[${E.join("")}]`,"g");return{minusSign:u,plusSign:f,decimal:P,group:C,literals:y,numeral:N,index:w=>String(A.get(w))}}function zi(e,t,n){return e.replaceAll?e.replaceAll(t,n):e.split(t).join(n)}function Kv(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var uA,br,hA,za,Yv,Xv,pA,Zv,fA,ti,mA,vA,Jv,yA,bA,EA,SA,PA,zd,Jd,al,Qv,IA,OA,VA,ey,Uv,xA,Wv,AA,kA,NA,Xd,ei,DA,LA,MA,FA,jv,zv,_A,$A,HA,ny=ne(()=>{"use strict";Fs();Nt();Ce();se();uA=j("numberInput").parts("root","label","input","control","valueText","incrementTrigger","decrementTrigger","scrubber"),br=uA.build();hA=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`number-input:${e.id}`},za=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.input)!=null?n:`number-input:${e.id}:input`},Yv=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.incrementTrigger)!=null?n:`number-input:${e.id}:inc`},Xv=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.decrementTrigger)!=null?n:`number-input:${e.id}:dec`},pA=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.scrubber)!=null?n:`number-input:${e.id}:scrubber`},Zv=e=>`number-input:${e.id}:cursor`,fA=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`number-input:${e.id}:label`},ti=e=>e.getById(za(e)),mA=e=>e.getById(Yv(e)),vA=e=>e.getById(Xv(e)),Jv=e=>e.getDoc().getElementById(Zv(e)),yA=(e,t)=>{let n=null;return t==="increment"&&(n=mA(e)),t==="decrement"&&(n=vA(e)),n},bA=(e,t)=>{if(!yt())return PA(e,t),()=>{var n;(n=Jv(e))==null||n.remove()}},EA=e=>{let t=e.getDoc(),n=t.documentElement,r=t.body;return r.style.pointerEvents="none",n.style.userSelect="none",n.style.cursor="ew-resize",()=>{r.style.pointerEvents="",n.style.userSelect="",n.style.cursor="",n.style.length||n.removeAttribute("style"),r.style.length||r.removeAttribute("style")}},SA=(e,t)=>{let{point:n,isRtl:r,event:i}=t,a=e.getWin(),o=Ti(i.movementX,a.devicePixelRatio),s=Ti(i.movementY,a.devicePixelRatio),l=o>0?"increment":o<0?"decrement":null;r&&l==="increment"&&(l="decrement"),r&&l==="decrement"&&(l="increment");let c={x:n.x+o,y:n.y+s},d=a.innerWidth,g=Ti(7.5,a.devicePixelRatio);return c.x=Zg(c.x+g,d)-g,{hint:l,point:c}},PA=(e,t)=>{let n=e.getDoc(),r=n.createElement("div");r.className="scrubber--cursor",r.id=Zv(e),Object.assign(r.style,{width:"15px",height:"15px",position:"fixed",pointerEvents:"none",left:"0px",top:"0px",zIndex:No,transform:t?`translate3d(${t.x}px, ${t.y}px, 0px)`:void 0,willChange:"transform"}),r.innerHTML=` - `,n.body.appendChild(r)};zd=new Map,Jd=!1;try{Jd=new Intl.NumberFormat("de-DE",{signDisplay:"exceptZero"}).resolvedOptions().signDisplay==="exceptZero"}catch(e){}al=!1;try{al=new Intl.NumberFormat("de-DE",{style:"unit",unit:"degree"}).resolvedOptions().style==="unit"}catch(e){}Qv={degree:{narrow:{default:"\xB0","ja-JP":" \u5EA6","zh-TW":"\u5EA6","sl-SI":" \xB0"}}},bA=class{format(e){let t="";if(!Jd&&this.options.signDisplay!=null?t=SA(this.numberFormatter,this.options.signDisplay,e):t=this.numberFormatter.format(e),this.options.style==="unit"&&!al){var n;let{unit:r,unitDisplay:i="short",locale:a}=this.resolvedOptions();if(!r)return t;let o=(n=Qv[r])===null||n===void 0?void 0:n[i];t+=o[a]||o.default}return t}formatToParts(e){return this.numberFormatter.formatToParts(e)}formatRange(e,t){if(typeof this.numberFormatter.formatRange=="function")return this.numberFormatter.formatRange(e,t);if(t= start date");return`${this.format(e)} \u2013 ${this.format(t)}`}formatRangeToParts(e,t){if(typeof this.numberFormatter.formatRangeToParts=="function")return this.numberFormatter.formatRangeToParts(e,t);if(t= start date");let n=this.numberFormatter.formatToParts(e),r=this.numberFormatter.formatToParts(t);return[...n.map(i=>v(p({},i),{source:"startRange"})),{type:"literal",value:" \u2013 ",source:"shared"},...r.map(i=>v(p({},i),{source:"endRange"}))]}resolvedOptions(){let e=this.numberFormatter.resolvedOptions();return!Jd&&this.options.signDisplay!=null&&(e=v(p({},e),{signDisplay:this.options.signDisplay})),!al&&this.options.style==="unit"&&(e=v(p({},e),{style:"unit",unit:this.options.unit,unitDisplay:this.options.unitDisplay})),e}constructor(e,t={}){this.numberFormatter=EA(e,t),this.options=t}};PA=new RegExp("^.*\\(.*\\).*$"),CA=["latn","arab","hanidec","deva","beng","fullwide"],ey=class{parse(e){return Yd(this.locale,this.options,e).parse(e)}isValidPartialNumber(e,t,n){return Yd(this.locale,this.options,e).isValidPartialNumber(e,t,n)}getNumberingSystem(e){return Yd(this.locale,this.options,e).options.numberingSystem}constructor(e,t={}){this.locale=e,this.options=t}},Uv=new Map;IA=class{parse(e){let t=this.sanitize(e);if(this.symbols.group&&(t=zi(t,this.symbols.group,"")),this.symbols.decimal&&(t=t.replace(this.symbols.decimal,".")),this.symbols.minusSign&&(t=t.replace(this.symbols.minusSign,"-")),t=t.replace(this.symbols.numeral,this.symbols.index),this.options.style==="percent"){let a=t.indexOf("-");t=t.replace("-",""),t=t.replace("+","");let o=t.indexOf(".");o===-1&&(o=t.length),t=t.replace(".",""),o-2===0?t=`0.${t}`:o-2===-1?t=`0.0${t}`:o-2===-2?t="0.00":t=`${t.slice(0,o-2)}.${t.slice(o-2)}`,a>-1&&(t=`-${t}`)}let n=t?+t:NaN;if(isNaN(n))return NaN;if(this.options.style==="percent"){var r,i;let a=v(p({},this.options),{style:"decimal",minimumFractionDigits:Math.min(((r=this.options.minimumFractionDigits)!==null&&r!==void 0?r:0)+2,20),maximumFractionDigits:Math.min(((i=this.options.maximumFractionDigits)!==null&&i!==void 0?i:0)+2,20)});return new ey(this.locale,a).parse(new bA(this.locale,a).format(n))}return this.options.currencySign==="accounting"&&PA.test(e)&&(n=-1*n),n}sanitize(e){return e=e.replace(this.symbols.literals,""),this.symbols.minusSign&&(e=e.replace("-",this.symbols.minusSign)),this.options.numberingSystem==="arab"&&(this.symbols.decimal&&(e=e.replace(",",this.symbols.decimal),e=e.replace("\u060C",this.symbols.decimal)),this.symbols.group&&(e=zi(e,".",this.symbols.group))),this.symbols.group==="\u2019"&&e.includes("'")&&(e=zi(e,"'",this.symbols.group)),this.options.locale==="fr-FR"&&this.symbols.group&&(e=zi(e," ",this.symbols.group),e=zi(e,/\u00A0/g,this.symbols.group)),e}isValidPartialNumber(e,t=-1/0,n=1/0){return e=this.sanitize(e),this.symbols.minusSign&&e.startsWith(this.symbols.minusSign)&&t<0?e=e.slice(this.symbols.minusSign.length):this.symbols.plusSign&&e.startsWith(this.symbols.plusSign)&&n>0&&(e=e.slice(this.symbols.plusSign.length)),this.symbols.group&&e.startsWith(this.symbols.group)||this.symbols.decimal&&e.indexOf(this.symbols.decimal)>-1&&this.options.maximumFractionDigits===0?!1:(this.symbols.group&&(e=zi(e,this.symbols.group,"")),e=e.replace(this.symbols.numeral,""),this.symbols.decimal&&(e=e.replace(this.symbols.decimal,"")),e.length===0)}constructor(e,t={}){this.locale=e,t.roundingIncrement!==1&&t.roundingIncrement!=null&&(t.maximumFractionDigits==null&&t.minimumFractionDigits==null?(t.maximumFractionDigits=0,t.minimumFractionDigits=0):t.maximumFractionDigits==null?t.maximumFractionDigits=t.minimumFractionDigits:t.minimumFractionDigits==null&&(t.minimumFractionDigits=t.maximumFractionDigits)),this.formatter=new Intl.NumberFormat(e,t),this.options=this.formatter.resolvedOptions(),this.symbols=wA(e,this.formatter,this.options,t);var n,r;this.options.style==="percent"&&(((n=this.options.minimumFractionDigits)!==null&&n!==void 0?n:0)>18||((r=this.options.maximumFractionDigits)!==null&&r!==void 0?r:0)>18)&&console.warn("NumberParser cannot handle percentages with greater than 18 decimal places, please reduce the number in your options.")}},Wv=new Set(["decimal","fraction","integer","minusSign","plusSign","group"]),TA=[0,4,2,1,11,20,3,7,100,21,.1,1.1];OA=(e,t={})=>new Intl.NumberFormat(e,t),VA=(e,t={})=>new ey(e,t),Xd=(e,t)=>{let{prop:n,computed:r}=t;return n("formatOptions")?e===""?Number.NaN:r("parser").parse(e):parseFloat(e)},Qr=(e,t)=>{let{prop:n,computed:r}=t;return Number.isNaN(e)?"":n("formatOptions")?r("formatter").format(e):e.toString()},xA=(e,t)=>{let n=e!==void 0&&!Number.isNaN(e)?e:1;return(t==null?void 0:t.style)==="percent"&&(e===void 0||Number.isNaN(e))&&(n=.01),n},{choose:AA,guards:RA,createMachine:kA}=Ot(),{not:jv,and:zv}=RA,NA=kA({props({props:e}){let t=xA(e.step,e.formatOptions);return v(p({dir:"ltr",locale:"en-US",focusInputOnChange:!0,clampValueOnBlur:!e.allowOverflow,allowOverflow:!1,inputMode:"decimal",pattern:"-?[0-9]*(.[0-9]+)?",defaultValue:"",step:t,min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER,spinOnPress:!0},e),{translations:p({incrementLabel:"increment value",decrementLabel:"decrease value"},e.translations)})},initialState(){return"idle"},context({prop:e,bindable:t,getComputed:n}){return{value:t(()=>({defaultValue:e("defaultValue"),value:e("value"),onChange(r){var o;let i=n(),a=Xd(r,{computed:i,prop:e});(o=e("onValueChange"))==null||o({value:r,valueAsNumber:a})}})),hint:t(()=>({defaultValue:null})),scrubberCursorPoint:t(()=>({defaultValue:null,hash(r){return r?`x:${r.x}, y:${r.y}`:""}})),fieldsetDisabled:t(()=>({defaultValue:!1}))}},computed:{isRtl:({prop:e})=>e("dir")==="rtl",valueAsNumber:({context:e,computed:t,prop:n})=>Xd(e.get("value"),{computed:t,prop:n}),formattedValue:({computed:e,prop:t})=>Qr(e("valueAsNumber"),{computed:e,prop:t}),isAtMin:({computed:e,prop:t})=>Qg(e("valueAsNumber"),t("min")),isAtMax:({computed:e,prop:t})=>Jg(e("valueAsNumber"),t("max")),isOutOfRange:({computed:e,prop:t})=>!Ci(e("valueAsNumber"),t("min"),t("max")),isValueEmpty:({context:e})=>e.get("value")==="",isDisabled:({prop:e,context:t})=>!!e("disabled")||t.get("fieldsetDisabled"),canIncrement:({prop:e,computed:t})=>e("allowOverflow")||!t("isAtMax"),canDecrement:({prop:e,computed:t})=>e("allowOverflow")||!t("isAtMin"),valueText:({prop:e,context:t})=>{var n,r;return(r=(n=e("translations")).valueText)==null?void 0:r.call(n,t.get("value"))},formatter:Gr(({prop:e})=>[e("locale"),e("formatOptions")],([e,t])=>OA(e,t)),parser:Gr(({prop:e})=>[e("locale"),e("formatOptions")],([e,t])=>VA(e,t))},watch({track:e,action:t,context:n,computed:r,prop:i}){e([()=>n.get("value"),()=>i("locale"),()=>JSON.stringify(i("formatOptions"))],()=>{t(["syncInputElement"])}),e([()=>r("isOutOfRange")],()=>{t(["invokeOnInvalid"])}),e([()=>n.hash("scrubberCursorPoint")],()=>{t(["setVirtualCursorPosition"])})},effects:["trackFormControl"],on:{"VALUE.SET":{actions:["setRawValue"]},"VALUE.CLEAR":{actions:["clearValue"]},"VALUE.INCREMENT":{actions:["increment"]},"VALUE.DECREMENT":{actions:["decrement"]}},states:{idle:{on:{"TRIGGER.PRESS_DOWN":[{guard:"isTouchPointer",target:"before:spin",actions:["setHint"]},{target:"before:spin",actions:["focusInput","invokeOnFocus","setHint"]}],"SCRUBBER.PRESS_DOWN":{target:"scrubbing",actions:["focusInput","invokeOnFocus","setHint","setCursorPoint"]},"INPUT.FOCUS":{target:"focused",actions:["focusInput","invokeOnFocus"]}}},focused:{tags:["focus"],effects:["attachWheelListener"],on:{"TRIGGER.PRESS_DOWN":[{guard:"isTouchPointer",target:"before:spin",actions:["setHint"]},{target:"before:spin",actions:["focusInput","setHint"]}],"SCRUBBER.PRESS_DOWN":{target:"scrubbing",actions:["focusInput","setHint","setCursorPoint"]},"INPUT.ARROW_UP":{actions:["increment"]},"INPUT.ARROW_DOWN":{actions:["decrement"]},"INPUT.HOME":{actions:["decrementToMin"]},"INPUT.END":{actions:["incrementToMax"]},"INPUT.CHANGE":{actions:["setValue","setHint"]},"INPUT.BLUR":[{guard:zv("clampValueOnBlur",jv("isInRange")),target:"idle",actions:["setClampedValue","clearHint","invokeOnBlur","invokeOnValueCommit"]},{guard:jv("isInRange"),target:"idle",actions:["setFormattedValue","clearHint","invokeOnBlur","invokeOnInvalid","invokeOnValueCommit"]},{target:"idle",actions:["setFormattedValue","clearHint","invokeOnBlur","invokeOnValueCommit"]}],"INPUT.ENTER":{actions:["setFormattedValue","clearHint","invokeOnBlur","invokeOnValueCommit"]}}},"before:spin":{tags:["focus"],effects:["trackButtonDisabled","waitForChangeDelay"],entry:AA([{guard:"isIncrementHint",actions:["increment"]},{guard:"isDecrementHint",actions:["decrement"]}]),on:{CHANGE_DELAY:{target:"spinning",guard:zv("isInRange","spinOnPress")},"TRIGGER.PRESS_UP":[{guard:"isTouchPointer",target:"focused",actions:["clearHint"]},{target:"focused",actions:["focusInput","clearHint"]}]}},spinning:{tags:["focus"],effects:["trackButtonDisabled","spinValue"],on:{SPIN:[{guard:"isIncrementHint",actions:["increment"]},{guard:"isDecrementHint",actions:["decrement"]}],"TRIGGER.PRESS_UP":{target:"focused",actions:["focusInput","clearHint"]}}},scrubbing:{tags:["focus"],effects:["activatePointerLock","trackMousemove","setupVirtualCursor","preventTextSelection"],on:{"SCRUBBER.POINTER_UP":{target:"focused",actions:["focusInput","clearCursorPoint"]},"SCRUBBER.POINTER_MOVE":[{guard:"isIncrementHint",actions:["increment","setCursorPoint"]},{guard:"isDecrementHint",actions:["decrement","setCursorPoint"]}]}}},implementations:{guards:{clampValueOnBlur:({prop:e})=>e("clampValueOnBlur"),spinOnPress:({prop:e})=>!!e("spinOnPress"),isInRange:({computed:e})=>!e("isOutOfRange"),isDecrementHint:({context:e,event:t})=>{var n;return((n=t.hint)!=null?n:e.get("hint"))==="decrement"},isIncrementHint:({context:e,event:t})=>{var n;return((n=t.hint)!=null?n:e.get("hint"))==="increment"},isTouchPointer:({event:e})=>e.pointerType==="touch"},effects:{waitForChangeDelay({send:e}){let t=setTimeout(()=>{e({type:"CHANGE_DELAY"})},300);return()=>clearTimeout(t)},spinValue({send:e}){let t=setInterval(()=>{e({type:"SPIN"})},50);return()=>clearInterval(t)},trackFormControl({context:e,scope:t}){let n=ei(t);return Rt(n,{onFieldsetDisabledChange(r){e.set("fieldsetDisabled",r)},onFormReset(){e.set("value",e.initial("value"))}})},setupVirtualCursor({context:e,scope:t}){let n=e.get("scrubberCursorPoint");return pA(t,n)},preventTextSelection({scope:e}){return fA(e)},trackButtonDisabled({context:e,scope:t,send:n}){let r=e.get("hint"),i=hA(t,r);return kt(i,{attributes:["disabled"],callback(){n({type:"TRIGGER.PRESS_UP",src:"attr"})}})},attachWheelListener({scope:e,send:t,prop:n}){let r=ei(e);if(!r||!e.isActiveElement(r)||!n("allowMouseWheel"))return;function i(a){a.preventDefault();let o=Math.sign(a.deltaY)*-1;o===1?t({type:"VALUE.INCREMENT"}):o===-1&&t({type:"VALUE.DECREMENT"})}return re(r,"wheel",i,{passive:!1})},activatePointerLock({scope:e}){if(!yt())return Vg(e.getDoc())},trackMousemove({scope:e,send:t,context:n,computed:r}){let i=e.getDoc();function a(s){let l=n.get("scrubberCursorPoint"),c=r("isRtl"),d=mA(e,{point:l,isRtl:c,event:s});d.hint&&t({type:"SCRUBBER.POINTER_MOVE",hint:d.hint,point:d.point})}function o(){t({type:"SCRUBBER.POINTER_UP"})}return vt(re(i,"mousemove",a,!1),re(i,"mouseup",o,!1))}},actions:{focusInput({scope:e,prop:t}){if(!t("focusInputOnChange"))return;let n=ei(e);e.isActiveElement(n)||$(()=>n==null?void 0:n.focus({preventScroll:!0}))},increment({context:e,event:t,prop:n,computed:r}){var a;let i=rh(r("valueAsNumber"),(a=t.step)!=null?a:n("step"));n("allowOverflow")||(i=Oe(i,n("min"),n("max"))),e.set("value",Qr(i,{computed:r,prop:n}))},decrement({context:e,event:t,prop:n,computed:r}){var a;let i=ih(r("valueAsNumber"),(a=t.step)!=null?a:n("step"));n("allowOverflow")||(i=Oe(i,n("min"),n("max"))),e.set("value",Qr(i,{computed:r,prop:n}))},setClampedValue({context:e,prop:t,computed:n}){let r=Oe(n("valueAsNumber"),t("min"),t("max"));e.set("value",Qr(r,{computed:n,prop:t}))},setRawValue({context:e,event:t,prop:n,computed:r}){let i=Xd(t.value,{computed:r,prop:n});n("allowOverflow")||(i=Oe(i,n("min"),n("max"))),e.set("value",Qr(i,{computed:r,prop:n}))},setValue({context:e,event:t}){var r,i;let n=(i=(r=t.target)==null?void 0:r.value)!=null?i:t.value;e.set("value",n)},clearValue({context:e}){e.set("value","")},incrementToMax({context:e,prop:t,computed:n}){let r=Qr(t("max"),{computed:n,prop:t});e.set("value",r)},decrementToMin({context:e,prop:t,computed:n}){let r=Qr(t("min"),{computed:n,prop:t});e.set("value",r)},setHint({context:e,event:t}){e.set("hint",t.hint)},clearHint({context:e}){e.set("hint",null)},invokeOnFocus({computed:e,prop:t}){var n;(n=t("onFocusChange"))==null||n({focused:!0,value:e("formattedValue"),valueAsNumber:e("valueAsNumber")})},invokeOnBlur({computed:e,prop:t}){var n;(n=t("onFocusChange"))==null||n({focused:!1,value:e("formattedValue"),valueAsNumber:e("valueAsNumber")})},invokeOnInvalid({computed:e,prop:t,event:n}){var i;if(n.type==="INPUT.CHANGE")return;let r=e("valueAsNumber")>t("max")?"rangeOverflow":"rangeUnderflow";(i=t("onValueInvalid"))==null||i({reason:r,value:e("formattedValue"),valueAsNumber:e("valueAsNumber")})},invokeOnValueCommit({computed:e,prop:t}){var n;(n=t("onValueCommit"))==null||n({value:e("formattedValue"),valueAsNumber:e("valueAsNumber")})},syncInputElement({context:e,event:t,computed:n,scope:r}){var s;let i=t.type.endsWith("CHANGE")?e.get("value"):n("formattedValue"),a=ei(r),o=(s=t.selection)!=null?s:Zd(a,r);$(()=>{He(a,i),sA(a,o,r)})},setFormattedValue({context:e,computed:t,action:n}){e.set("value",t("formattedValue")),n(["syncInputElement"])},setCursorPoint({context:e,event:t}){e.set("scrubberCursorPoint",t.point)},clearCursorPoint({context:e}){e.set("scrubberCursorPoint",null)},setVirtualCursorPosition({context:e,scope:t}){let n=Jv(t),r=e.get("scrubberCursorPoint");!n||!r||(n.style.transform=`translate3d(${r.x}px, ${r.y}px, 0px)`)}}}}),DA=class extends X{initMachine(e){return new Y(NA,e)}initApi(){return this.zagConnect(yA)}render(){var s;let e=(s=this.el.querySelector('[data-scope="number-input"][data-part="root"]'))!=null?s:this.el;this.spreadProps(e,this.api.getRootProps());let t=this.el.querySelector('[data-scope="number-input"][data-part="label"]');t&&this.spreadProps(t,this.api.getLabelProps());let n=this.el.querySelector('[data-scope="number-input"][data-part="control"]');n&&this.spreadProps(n,this.api.getControlProps());let r=this.el.querySelector('[data-scope="number-input"][data-part="value-text"]');r&&this.spreadProps(r,this.api.getValueTextProps());let i=this.el.querySelector('[data-scope="number-input"][data-part="input"]');i&&this.spreadProps(i,this.api.getInputProps());let a=this.el.querySelector('[data-scope="number-input"][data-part="decrement-trigger"]');a&&this.spreadProps(a,this.api.getDecrementTriggerProps());let o=this.el.querySelector('[data-scope="number-input"][data-part="increment-trigger"]');o&&this.spreadProps(o,this.api.getIncrementTriggerProps())}},LA={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>J(this.liveSocket),r=V(e,"defaultValue"),i=new DA(e,{id:e.id,defaultValue:r,min:q(e,"min"),max:q(e,"max"),step:q(e,"step"),disabled:I(e,"disabled"),readOnly:I(e,"readOnly"),invalid:I(e,"invalid"),required:I(e,"required"),allowMouseWheel:I(e,"allowMouseWheel"),name:V(e,"name"),form:V(e,"form"),dir:U(e),onValueChange:a=>{var o;if(a.value!==void 0){let s=e.querySelector('[data-scope="number-input"][data-part="value-input"]');s&&(s.value=(o=a.value)!=null?o:"",s.dispatchEvent(new Event("input",{bubbles:!0})),s.dispatchEvent(new Event("change",{bubbles:!0})))}K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,value:a.value,valueAsNumber:a.valueAsNumber},serverEventName:V(e,"onValueChange"),clientEventName:V(e,"onValueChangeClient")})}});i.init(),this.numberInput=i},updated(){var t;let e=V(this.el,"defaultValue");(t=this.numberInput)==null||t.updateProps({id:this.el.id,defaultValue:e,min:q(this.el,"min"),max:q(this.el,"max"),step:q(this.el,"step"),disabled:I(this.el,"disabled"),readOnly:I(this.el,"readOnly"),invalid:I(this.el,"invalid"),required:I(this.el,"required"),name:V(this.el,"name"),form:V(this.el,"form"),dir:U(this.el)})},destroyed(){var e;(e=this.numberInput)==null||e.destroy()}}});var ry={};fe(ry,{PasswordInput:()=>BA});function FA(e,t){let{scope:n,prop:r,context:i}=e,a=i.get("visible"),o=!!r("disabled"),s=!!r("invalid"),l=!!r("readOnly"),c=!!r("required"),d=!(l||o),g=r("translations");return{visible:a,disabled:o,invalid:s,focus(){var h;(h=Qd(n))==null||h.focus()},setVisible(h){e.send({type:"VISIBILITY.SET",value:h})},toggleVisible(){e.send({type:"VISIBILITY.SET",value:!a})},getRootProps(){return t.element(v(p({},Yi.root.attrs),{dir:r("dir"),"data-disabled":E(o),"data-invalid":E(s),"data-readonly":E(l)}))},getLabelProps(){return t.label(v(p({},Yi.label.attrs),{htmlFor:ol(n),"data-disabled":E(o),"data-invalid":E(s),"data-readonly":E(l),"data-required":E(c)}))},getInputProps(){return t.input(p(v(p({},Yi.input.attrs),{id:ol(n),autoCapitalize:"off",name:r("name"),required:r("required"),autoComplete:r("autoComplete"),spellCheck:!1,readOnly:l,disabled:o,type:a?"text":"password","data-state":a?"visible":"hidden","aria-invalid":oe(s),"data-disabled":E(o),"data-invalid":E(s),"data-readonly":E(l)}),r("ignorePasswordManagers")?_A:{}))},getVisibilityTriggerProps(){var h;return t.button(v(p({},Yi.visibilityTrigger.attrs),{type:"button",tabIndex:-1,"aria-controls":ol(n),"aria-expanded":a,"data-readonly":E(l),disabled:o,"data-disabled":E(o),"data-state":a?"visible":"hidden","aria-label":(h=g==null?void 0:g.visibilityTrigger)==null?void 0:h.call(g,a),onPointerDown(u){Ee(u)&&d&&(u.preventDefault(),e.send({type:"TRIGGER.CLICK"}))}}))},getIndicatorProps(){return t.element(v(p({},Yi.indicator.attrs),{"aria-hidden":!0,"data-state":a?"visible":"hidden","data-disabled":E(o),"data-invalid":E(s),"data-readonly":E(l)}))},getControlProps(){return t.element(v(p({},Yi.control.attrs),{"data-disabled":E(o),"data-invalid":E(s),"data-readonly":E(l)}))}}}var MA,Yi,ol,Qd,_A,$A,HA,BA,iy=ne(()=>{"use strict";_e();Ce();se();MA=j("password-input").parts("root","input","label","control","indicator","visibilityTrigger"),Yi=MA.build(),ol=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.input)!=null?n:`p-input-${e.id}-input`},Qd=e=>e.getById(ol(e));_A={"data-1p-ignore":"","data-lpignore":"true","data-bwignore":"true","data-form-type":"other","data-protonpass-ignore":"true"},$A=te({props({props:e}){return v(p({id:la(),defaultVisible:!1,autoComplete:"current-password",ignorePasswordManagers:!1},e),{translations:p({visibilityTrigger(t){return t?"Hide password":"Show password"}},e.translations)})},context({prop:e,bindable:t}){return{visible:t(()=>({value:e("visible"),defaultValue:e("defaultVisible"),onChange(n){var r;(r=e("onVisibilityChange"))==null||r({visible:n})}}))}},initialState(){return"idle"},effects:["trackFormEvents"],states:{idle:{on:{"VISIBILITY.SET":{actions:["setVisibility"]},"TRIGGER.CLICK":{actions:["toggleVisibility","focusInputEl"]}}}},implementations:{actions:{setVisibility({context:e,event:t}){e.set("visible",t.value)},toggleVisibility({context:e}){e.set("visible",t=>!t)},focusInputEl({scope:e}){let t=Qd(e);t==null||t.focus()}},effects:{trackFormEvents({scope:e,send:t}){let n=Qd(e),r=n==null?void 0:n.form;if(!r)return;let i=e.getWin(),a=new i.AbortController;return r.addEventListener("reset",o=>{o.defaultPrevented||t({type:"VISIBILITY.SET",value:!1})},{signal:a.signal}),r.addEventListener("submit",()=>{t({type:"VISIBILITY.SET",value:!1})},{signal:a.signal}),()=>a.abort()}}}}),HA=class extends X{initMachine(e){return new Y($A,e)}initApi(){return this.zagConnect(FA)}render(){var o;let e=(o=this.el.querySelector('[data-scope="password-input"][data-part="root"]'))!=null?o:this.el;this.spreadProps(e,this.api.getRootProps());let t=this.el.querySelector('[data-scope="password-input"][data-part="label"]');t&&this.spreadProps(t,this.api.getLabelProps());let n=this.el.querySelector('[data-scope="password-input"][data-part="control"]');n&&this.spreadProps(n,this.api.getControlProps());let r=this.el.querySelector('[data-scope="password-input"][data-part="input"]');r&&this.spreadProps(r,this.api.getInputProps());let i=this.el.querySelector('[data-scope="password-input"][data-part="visibility-trigger"]');i&&this.spreadProps(i,this.api.getVisibilityTriggerProps());let a=this.el.querySelector('[data-scope="password-input"][data-part="indicator"]');a&&this.spreadProps(a,this.api.getIndicatorProps())}},BA={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>J(this.liveSocket),r=new HA(e,{id:e.id,defaultVisible:I(e,"defaultVisible"),disabled:I(e,"disabled"),invalid:I(e,"invalid"),readOnly:I(e,"readOnly"),required:I(e,"required"),ignorePasswordManagers:I(e,"ignorePasswordManagers"),name:V(e,"name"),dir:U(e),autoComplete:V(e,"autoComplete"),onVisibilityChange:o=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,visible:o.visible},serverEventName:V(e,"onVisibilityChange"),clientEventName:V(e,"onVisibilityChangeClient")})}});r.init(),this.passwordInput=r,this.handlers=[];let i=de(e);this.domRegistry=i,i.add("corex:password-input:set-visible",o=>{var l;let s=(l=o.detail)==null?void 0:l.visible;typeof s=="boolean"&&r.api.setVisible(s)}),i.add("corex:password-input:toggle-visible",()=>{r.api.toggleVisible()}),i.add("corex:password-input:focus",()=>{r.api.focus()});let a=ce(this);this.handleRegistry=a,a.add("password_input_set_visible",o=>{if(!B(e.id,G(o)))return;let s=$g(o);typeof s=="boolean"&&r.api.setVisible(s)}),a.add("password_input_toggle_visible",o=>{B(e.id,G(o))&&r.api.toggleVisible()}),a.add("password_input_focus",o=>{B(e.id,G(o))&&r.api.focus()})},updated(){var e;(e=this.passwordInput)==null||e.updateProps({id:this.el.id,disabled:I(this.el,"disabled"),invalid:I(this.el,"invalid"),readOnly:I(this.el,"readOnly"),required:I(this.el,"required"),name:V(this.el,"name"),form:V(this.el,"form"),dir:U(this.el)})},destroyed(){var e,t,n;if(this.handlers)for(let r of this.handlers)this.removeHandleEvent(r);(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.passwordInput)==null||n.destroy()}}});var ly={};fe(ly,{PinInput:()=>iR});function YA(e,t){var n;return e?!!((n=zA[e])!=null&&n.test(t)):!0}function ay(e,t,n){return n?new RegExp(n,"g").test(e):YA(t,e)}function XA(e,t){let{send:n,context:r,computed:i,prop:a,scope:o}=e,s=i("isValueComplete"),l=!!a("disabled"),c=!!a("readOnly"),d=!!a("invalid"),g=!!a("required"),h=a("translations"),u=r.get("focusedIndex");function f(){var m;(m=jA(o))==null||m.focus()}return{focus:f,count:r.get("count"),items:Array.from({length:r.get("count")}).map((m,P)=>P),value:r.get("value"),valueAsString:i("valueAsString"),complete:s,setValue(m){Array.isArray(m)||ui("[pin-input/setValue] value must be an array"),n({type:"VALUE.SET",value:m})},clearValue(){n({type:"VALUE.CLEAR"})},setValueAtIndex(m,P){n({type:"VALUE.SET",value:P,index:m})},getRootProps(){return t.element(v(p({dir:a("dir")},sl.root.attrs),{id:Ya(o),"data-invalid":E(d),"data-disabled":E(l),"data-complete":E(s),"data-readonly":E(c)}))},getLabelProps(){return t.label(v(p({},sl.label.attrs),{dir:a("dir"),htmlFor:nu(o),id:qA(o),"data-invalid":E(d),"data-disabled":E(l),"data-complete":E(s),"data-required":E(g),"data-readonly":E(c),onClick(m){m.preventDefault(),f()}}))},getHiddenInputProps(){return t.input({"aria-hidden":!0,type:"text",tabIndex:-1,id:nu(o),readOnly:c,disabled:l,required:g,name:a("name"),form:a("form"),style:dt,maxLength:i("valueLength"),defaultValue:i("valueAsString")})},getControlProps(){return t.element(v(p({},sl.control.attrs),{dir:a("dir"),id:WA(o)}))},getInputProps(m){var b;let{index:P}=m,C=a("type")==="numeric"?"tel":"text",x=i("valueLength"),T=u!==-1?u:Math.min(i("filledValueLength"),x-1);return t.input(v(p({},sl.input.attrs),{dir:a("dir"),disabled:l,tabIndex:P===T?0:-1,"data-disabled":E(l),"data-complete":E(s),"data-filled":E(r.get("value")[P]!==""),id:UA(o,P.toString()),"data-index":P,"data-ownedby":Ya(o),"aria-label":(b=h==null?void 0:h.inputLabel)==null?void 0:b.call(h,P,i("valueLength")),inputMode:a("otp")||a("type")==="numeric"?"numeric":"text","aria-invalid":oe(d),"data-invalid":E(d),enterKeyHint:P===x-1?"done":"next",type:a("mask")?"password":C,defaultValue:r.get("value")[P]||"",readOnly:c,autoCapitalize:"none",autoComplete:a("otp")?"one-time-code":"off",placeholder:u===P?"":a("placeholder"),onPaste(y){var O;let S=(O=y.clipboardData)==null?void 0:O.getData("text/plain");if(!S)return;let A=a("sanitizeValue");if(A&&(S=A(S)),!ay(S,a("type"),a("pattern"))){n({type:"VALUE.INVALID",value:S}),y.preventDefault();return}y.preventDefault(),n({type:"INPUT.PASTE",value:S})},onBeforeInput(y){try{let S=bg(y);ay(S,a("type"),a("pattern"))||(n({type:"VALUE.INVALID",value:S}),y.preventDefault()),S.length>1&&y.currentTarget.setSelectionRange(0,1,"forward")}catch(S){}},onChange(y){let S=zt(y),{value:A}=y.currentTarget;if(S.inputType==="insertFromPaste"){y.currentTarget.value=A[0]||"";return}if(A.length>2){n({type:"INPUT.PASTE",value:A}),y.currentTarget.value=A[0],y.preventDefault();return}if(S.inputType==="deleteContentBackward"){n({type:"INPUT.BACKSPACE"});return}if(S.inputType==="deleteByCut"){n({type:"INPUT.DELETE"});return}A!==i("focusedValue")&&n({type:"INPUT.CHANGE",value:A,index:P})},onKeyDown(y){if(y.defaultPrevented||$e(y)||Fe(y))return;if(y.key.length===1&&i("focusedValue")===y.key){y.preventDefault(),n({type:"INPUT.ADVANCE"});return}let A={Backspace(){n({type:"INPUT.BACKSPACE"})},Delete(){n({type:"INPUT.DELETE"})},ArrowLeft(){n({type:"INPUT.ARROW_LEFT"})},ArrowRight(){n({type:"INPUT.ARROW_RIGHT"})},Enter(){n({type:"INPUT.ENTER"})},Home(){n({type:"INPUT.HOME"})},End(){n({type:"INPUT.END"})}}[ve(y,{dir:a("dir"),orientation:"horizontal"})];A&&(A(y),y.preventDefault())},onFocus(){n({type:"INPUT.FOCUS",index:P})},onBlur(y){let S=y.relatedTarget;ye(S)&&S.dataset.ownedby===Ya(o)||n({type:"INPUT.BLUR",index:P})}}))}}}function oy(e,t){let n=t;e[0]===t[0]?n=t[1]:e[0]===t[1]&&(n=t[0]);let r=n.split("");return n=r[r.length-1],n!=null?n:""}function ll(e,t){return Array.from({length:t}).fill("").map((n,r)=>e[r]||n)}function tR(e){return e.split(",").map(t=>t.trim())}function nR(e,t){let n=[...e];for(;n.length{let a=e.querySelector('[data-scope="pin-input"][data-part="hidden-input"]');a&&(a.value=i.valueAsString,a.dispatchEvent(new Event("input",{bubbles:!0})),a.dispatchEvent(new Event("change",{bubbles:!0}))),K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,value:i.value,valueAsString:i.valueAsString},serverEventName:V(e,"onValueChange"),clientEventName:V(e,"onValueChangeClient")})},onValueComplete:i=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,value:i.value,valueAsString:i.valueAsString},serverEventName:V(e,"onValueComplete"),clientEventName:V(e,"onValueCompleteClient")})}}}var GA,sl,Ya,UA,nu,qA,WA,KA,cl,za,jA,eu,tu,zA,ZA,JA,QA,eR,iR,cy=ne(()=>{"use strict";Nt();_e();Ce();se();GA=j("pinInput").parts("root","label","input","control"),sl=GA.build(),Ya=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`pin-input:${e.id}`},UA=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.input)==null?void 0:r.call(n,t))!=null?i:`pin-input:${e.id}:${t}`},nu=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.hiddenInput)!=null?n:`pin-input:${e.id}:hidden`},qA=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`pin-input:${e.id}:label`},WA=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.control)!=null?n:`pin-input:${e.id}:control`},KA=e=>e.getById(Ya(e)),cl=e=>{let n=`input[data-ownedby=${CSS.escape(Ya(e))}]`;return xe(KA(e),n)},za=(e,t)=>cl(e)[t],jA=e=>cl(e)[0],eu=e=>e.getById(nu(e)),tu=(e,t)=>{e.value=t,e.setAttribute("value",t)},zA={numeric:/^[0-9]+$/,alphabetic:/^[A-Za-z]+$/,alphanumeric:/^[a-zA-Z0-9]+$/i};({choose:ZA,createMachine:JA}=Ot()),QA=JA({props({props:e}){return v(p({placeholder:"\u25CB",otp:!1,type:"numeric",defaultValue:e.count?ll([],e.count):[]},e),{translations:p({inputLabel:(t,n)=>`pin code ${t+1} of ${n}`},e.translations)})},initialState(){return"idle"},context({prop:e,bindable:t}){return{value:t(()=>({value:e("value"),defaultValue:e("defaultValue"),isEqual:Ie,onChange(n){var r;(r=e("onValueChange"))==null||r({value:n,valueAsString:n.join("")})}})),focusedIndex:t(()=>({sync:!0,defaultValue:-1})),count:t(()=>({defaultValue:e("count")}))}},computed:{_value:({context:e})=>ll(e.get("value"),e.get("count")),valueLength:({computed:e})=>e("_value").length,filledValueLength:({computed:e})=>e("_value").filter(t=>(t==null?void 0:t.trim())!=="").length,isValueComplete:({computed:e})=>e("valueLength")===e("filledValueLength"),valueAsString:({computed:e})=>e("_value").join(""),focusedValue:({computed:e,context:t})=>e("_value")[t.get("focusedIndex")]||""},entry:ZA([{guard:"autoFocus",actions:["setInputCount","setFocusIndexToFirst"]},{actions:["setInputCount"]}]),watch({action:e,track:t,context:n,computed:r}){t([()=>n.get("focusedIndex")],()=>{e(["focusInput","selectInputIfNeeded"])}),t([()=>n.get("value").join(",")],()=>{e(["syncInputElements","dispatchInputEvent"])}),t([()=>r("isValueComplete")],()=>{e(["invokeOnComplete","blurFocusedInputIfNeeded","autoSubmitIfNeeded"])})},on:{"VALUE.SET":[{guard:"hasIndex",actions:["setValueAtIndex"]},{actions:["setValue"]}],"VALUE.CLEAR":{actions:["clearValue","setFocusIndexToFirst"]}},states:{idle:{on:{"INPUT.FOCUS":{target:"focused",actions:["setFocusedIndex"]}}},focused:{on:{"INPUT.CHANGE":{actions:["setFocusedValue","syncInputValue","advanceFocusedIndex"]},"INPUT.ADVANCE":{actions:["advanceFocusedIndex"]},"INPUT.PASTE":{actions:["setPastedValue","setLastValueFocusIndex"]},"INPUT.FOCUS":{actions:["setFocusedIndex","focusInput"]},"INPUT.BLUR":{target:"idle",actions:["clearFocusedIndex"]},"INPUT.DELETE":{guard:"hasValue",actions:["clearFocusedValue"]},"INPUT.ARROW_LEFT":{actions:["setPrevFocusedIndex"]},"INPUT.ARROW_RIGHT":{actions:["setNextFocusedIndex"]},"INPUT.HOME":{actions:["setFocusIndexToFirst"]},"INPUT.END":{actions:["setFocusIndexToLast"]},"INPUT.BACKSPACE":[{guard:"hasValue",actions:["clearFocusedValue","setPrevFocusedIndex"]},{actions:["setPrevFocusedIndex","clearFocusedValue"]}],"INPUT.ENTER":{guard:"isValueComplete",actions:["requestFormSubmit"]},"VALUE.INVALID":{actions:["invokeOnInvalid"]}}}},implementations:{guards:{autoFocus:({prop:e})=>!!e("autoFocus"),hasValue:({context:e})=>e.get("value")[e.get("focusedIndex")]!=="",isValueComplete:({computed:e})=>e("isValueComplete"),hasIndex:({event:e})=>e.index!==void 0},actions:{dispatchInputEvent({computed:e,scope:t}){let n=eu(t);Mo(n,{value:e("valueAsString")})},setInputCount({scope:e,context:t,prop:n}){if(n("count"))return;let r=cl(e);t.set("count",r.length)},focusInput({context:e,scope:t}){let n=e.get("focusedIndex");n!==-1&&queueMicrotask(()=>{var r;(r=za(t,n))==null||r.focus({preventScroll:!0})})},selectInputIfNeeded({context:e,prop:t,scope:n}){let r=e.get("focusedIndex");!t("selectOnFocus")||r===-1||$(()=>{var i;(i=za(n,r))==null||i.select()})},invokeOnComplete({computed:e,prop:t}){var n;e("isValueComplete")&&((n=t("onValueComplete"))==null||n({value:e("_value"),valueAsString:e("valueAsString")}))},invokeOnInvalid({context:e,event:t,prop:n}){var r;(r=n("onValueInvalid"))==null||r({value:t.value,index:e.get("focusedIndex")})},clearFocusedIndex({context:e}){e.set("focusedIndex",-1)},setFocusedIndex({context:e,event:t,computed:n}){let r=Math.min(n("filledValueLength"),n("valueLength")-1);e.set("focusedIndex",Math.min(t.index,r))},setValue({context:e,event:t}){let n=ll(t.value,e.get("count"));e.set("value",n)},setFocusedValue({context:e,event:t,computed:n,flush:r}){let i=n("focusedValue"),a=e.get("focusedIndex"),o=oy(i,t.value);r(()=>{e.set("value",cc(n("_value"),a,o))})},revertInputValue({context:e,computed:t,scope:n}){let r=za(n,e.get("focusedIndex"));tu(r,t("focusedValue"))},syncInputValue({context:e,event:t,scope:n}){let r=e.get("value"),i=za(n,t.index);tu(i,r[t.index])},syncInputElements({context:e,scope:t}){let n=cl(t),r=e.get("value");n.forEach((i,a)=>{tu(i,r[a])})},setPastedValue({context:e,event:t,computed:n,flush:r}){$(()=>{let i=n("valueAsString"),a=e.get("focusedIndex"),o=n("valueLength"),s=n("filledValueLength"),l=Math.min(a,s),c=l>0?i.substring(0,a):"",d=t.value.substring(0,o-l),g=ll(`${c}${d}`.split(""),o);r(()=>{e.set("value",g)})})},setValueAtIndex({context:e,event:t,computed:n}){let r=oy(n("focusedValue"),t.value);e.set("value",cc(n("_value"),t.index,r))},clearValue({context:e}){let t=Array.from({length:e.get("count")}).fill("");queueMicrotask(()=>{e.set("value",t)})},clearFocusedValue({context:e,computed:t}){let n=e.get("focusedIndex");if(n===-1)return;let r=[...t("_value")];r.splice(n,1),r.push(""),e.set("value",r)},setFocusIndexToFirst({context:e}){e.set("focusedIndex",0)},setFocusIndexToLast({context:e,computed:t}){e.set("focusedIndex",Math.max(t("filledValueLength")-1,0))},advanceFocusedIndex({context:e,computed:t}){e.set("focusedIndex",Math.min(e.get("focusedIndex")+1,t("valueLength")-1))},setNextFocusedIndex({context:e,computed:t}){let n=e.get("focusedIndex")+1,r=Math.min(t("filledValueLength"),t("valueLength")-1);e.set("focusedIndex",Math.min(n,r))},setPrevFocusedIndex({context:e}){e.set("focusedIndex",Math.max(e.get("focusedIndex")-1,0))},setLastValueFocusIndex({context:e,computed:t}){$(()=>{e.set("focusedIndex",Math.min(t("filledValueLength"),t("valueLength")-1))})},blurFocusedInputIfNeeded({context:e,computed:t,prop:n,scope:r}){!n("blurOnComplete")||!t("isValueComplete")||$(()=>{var i;(i=za(r,e.get("focusedIndex")))==null||i.blur()})},requestFormSubmit({computed:e,prop:t,scope:n}){var i;if(!t("name")||!e("isValueComplete"))return;let r=eu(n);(i=r==null?void 0:r.form)==null||i.requestSubmit()},autoSubmitIfNeeded({computed:e,prop:t,scope:n}){var i;if(!t("autoSubmit")||!e("isValueComplete"))return;let r=eu(n);(i=r==null?void 0:r.form)==null||i.requestSubmit()}}}});eR=class extends X{initMachine(e){return new Y(QA,e)}initApi(){return this.zagConnect(XA)}render(){var i;let e=(i=this.el.querySelector('[data-scope="pin-input"][data-part="root"]'))!=null?i:this.el;this.spreadProps(e,this.api.getRootProps());let t=this.el.querySelector('[data-scope="pin-input"][data-part="label"]');t&&this.spreadProps(t,this.api.getLabelProps());let n=this.el.querySelector('[data-scope="pin-input"][data-part="hidden-input"]');n&&this.spreadProps(n,this.api.getHiddenInputProps());let r=this.el.querySelector('[data-scope="pin-input"][data-part="control"]');r&&this.spreadProps(r,this.api.getControlProps()),this.api.items.forEach(a=>{let o=this.el.querySelector(`[data-scope="pin-input"][data-part="input"][data-index="${a}"]`);o&&this.spreadProps(o,this.api.getInputProps({index:a}))})}};iR={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>J(this.liveSocket),r=new eR(e,rR(e,t,n));r.init(),this.pinInput=r;let i=s=>{let l=r.api,c=l.value,d=l.valueAsString;Ke({respondTo:s,canPushServer:n(),pushEvent:t,serverEventName:"pin_input_value_response",serverPayload:{id:e.id,value:c,valueAsString:d},el:e,domEventName:"pin-input-value",domDetail:{id:e.id,value:c,valueAsString:d}})},a=de(e);this.domRegistry=a,a.add("corex:pin-input:set-value",s=>{var c;let l=(c=s.detail)==null?void 0:c.value;Array.isArray(l)&&r.api.setValue(l)}),a.add("corex:pin-input:clear",()=>{r.api.clearValue()}),a.add("corex:pin-input:value",s=>{i(we(s.detail))});let o=ce(this);this.handleRegistry=o,o.add("pin_input_set_value",s=>{B(e.id,G(s))&&Array.isArray(s.value)&&r.api.setValue(s.value)}),o.add("pin_input_clear",s=>{B(e.id,G(s))&&r.api.clearValue()}),o.add("pin_input_value",s=>{B(e.id,G(s))&&i(we(s))})},updated(){var n;let e=this.el,t=q(e,"count");(n=this.pinInput)==null||n.updateProps({id:e.id,count:t,defaultValue:sy(e,t!=null?t:0),disabled:I(e,"disabled"),invalid:I(e,"invalid"),required:I(e,"required"),readOnly:I(e,"readOnly"),mask:I(e,"mask"),otp:I(e,"otp"),blurOnComplete:I(e,"blurOnComplete"),selectOnFocus:I(e,"selectOnFocus"),name:V(e,"name"),form:V(e,"form"),dir:U(e),type:V(e,"type"),placeholder:V(e,"placeholder")})},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.pinInput)==null||n.destroy()}}});var fy={};fe(fy,{RadioGroup:()=>bR});function hR(e,t){let{context:n,send:r,computed:i,prop:a,scope:o}=e,s=i("isDisabled"),l=a("invalid"),c=a("readOnly");function d(u){return{value:u.value,invalid:!!u.invalid||!!l,disabled:!!u.disabled||s,checked:n.get("value")===u.value,focused:n.get("focusedValue")===u.value,focusVisible:n.get("focusVisibleValue")===u.value,hovered:n.get("hoveredValue")===u.value,active:n.get("activeValue")===u.value}}function g(u){let f=d(u);return{"data-focus":E(f.focused),"data-focus-visible":E(f.focusVisible),"data-disabled":E(f.disabled),"data-readonly":E(c),"data-state":f.checked?"checked":"unchecked","data-hover":E(f.hovered),"data-invalid":E(f.invalid),"data-orientation":a("orientation"),"data-ssr":E(n.get("ssr"))}}let h=()=>{var f;let u=(f=dR(o))!=null?f:cR(o);u==null||u.focus()};return{focus:h,value:n.get("value"),setValue(u){r({type:"SET_VALUE",value:u,isTrusted:!1})},clearValue(){r({type:"SET_VALUE",value:null,isTrusted:!1})},getRootProps(){return t.element(v(p({},Xi.root.attrs),{role:"radiogroup",id:dl(o),"aria-labelledby":dy(o),"aria-required":a("required")||void 0,"aria-disabled":s||void 0,"aria-readonly":c||void 0,"data-orientation":a("orientation"),"data-disabled":E(s),"data-invalid":E(l),"data-required":E(a("required")),"aria-orientation":a("orientation"),dir:a("dir"),style:{position:"relative"}}))},getLabelProps(){return t.element(v(p({},Xi.label.attrs),{dir:a("dir"),"data-orientation":a("orientation"),"data-disabled":E(s),"data-invalid":E(l),"data-required":E(a("required")),id:dy(o),onClick:h}))},getItemState:d,getItemProps(u){let f=d(u);return t.label(v(p(v(p({},Xi.item.attrs),{dir:a("dir"),id:hy(o,u.value),htmlFor:ru(o,u.value)}),g(u)),{onPointerMove(){f.disabled||f.hovered||r({type:"SET_HOVERED",value:u.value,hovered:!0})},onPointerLeave(){f.disabled||r({type:"SET_HOVERED",value:null})},onPointerDown(m){f.disabled||Ee(m)&&(f.focused&&m.pointerType==="mouse"&&m.preventDefault(),r({type:"SET_ACTIVE",value:u.value,active:!0}))},onPointerUp(){f.disabled||r({type:"SET_ACTIVE",value:null})},onClick(){var m;!f.disabled&&yt()&&((m=sR(o,u.value))==null||m.focus())}}))},getItemTextProps(u){return t.element(p(v(p({},Xi.itemText.attrs),{dir:a("dir"),id:uy(o,u.value)}),g(u)))},getItemControlProps(u){let f=d(u);return t.element(p(v(p({},Xi.itemControl.attrs),{dir:a("dir"),id:oR(o,u.value),"data-active":E(f.active),"aria-hidden":!0}),g(u)))},getItemHiddenInputProps(u){let f=d(u);return t.input({"data-ownedby":dl(o),id:ru(o,u.value),type:"radio",name:a("name")||a("id"),form:a("form"),value:u.value,required:a("required"),"aria-labelledby":uy(o,u.value),"aria-invalid":f.invalid||void 0,onClick(m){if(c){m.preventDefault();return}m.currentTarget.checked&&r({type:"SET_VALUE",value:u.value,isTrusted:!0})},onBlur(){r({type:"SET_FOCUSED",value:null,focused:!1,focusVisible:!1})},onFocus(){let m=ln();r({type:"SET_FOCUSED",value:u.value,focused:!0,focusVisible:m})},onKeyDown(m){m.defaultPrevented||m.key===" "&&r({type:"SET_ACTIVE",value:u.value,active:!0})},onKeyUp(m){m.defaultPrevented||m.key===" "&&r({type:"SET_ACTIVE",value:null})},disabled:f.disabled||c,defaultChecked:f.checked,style:dt})},getIndicatorProps(){let u=n.get("indicatorRect"),f=n.get("animateIndicator");return t.element(v(p({id:py(o)},Xi.indicator.attrs),{dir:a("dir"),hidden:n.get("value")==null||pR(u),"data-disabled":E(s),"data-orientation":a("orientation"),onTransitionEnd(m){Q(m)===m.currentTarget&&r({type:"INDICATOR_TRANSITION_END"})},style:{"--transition-property":"left, top, width, height","--left":Re(u==null?void 0:u.x),"--top":Re(u==null?void 0:u.y),"--width":Re(u==null?void 0:u.width),"--height":Re(u==null?void 0:u.height),position:"absolute",willChange:f?"var(--transition-property)":"auto",transitionProperty:f?"var(--transition-property)":"none",transitionDuration:f?"var(--transition-duration, 150ms)":"0ms",transitionTimingFunction:"var(--transition-timing-function)",[a("orientation")==="horizontal"?"left":"top"]:a("orientation")==="horizontal"?"var(--left)":"var(--top)"}}))}}}function yR(e,t){return{id:e.id,value:t.value}}var aR,Xi,dl,dy,hy,ru,oR,uy,py,ul,sR,lR,cR,dR,gy,uR,gR,pR,fR,mR,vR,bR,my=ne(()=>{"use strict";ac();Ln();Nt();Ce();se();aR=j("radio-group").parts("root","label","item","itemText","itemControl","indicator"),Xi=aR.build(),dl=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`radio-group:${e.id}`},dy=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`radio-group:${e.id}:label`},hy=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.item)==null?void 0:r.call(n,t))!=null?i:`radio-group:${e.id}:radio:${t}`},ru=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemHiddenInput)==null?void 0:r.call(n,t))!=null?i:`radio-group:${e.id}:radio:input:${t}`},oR=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemControl)==null?void 0:r.call(n,t))!=null?i:`radio-group:${e.id}:radio:control:${t}`},uy=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemLabel)==null?void 0:r.call(n,t))!=null?i:`radio-group:${e.id}:radio:label:${t}`},py=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.indicator)!=null?n:`radio-group:${e.id}:indicator`},ul=e=>e.getById(dl(e)),sR=(e,t)=>e.getById(ru(e,t)),lR=e=>e.getById(py(e)),cR=e=>{var t;return(t=ul(e))==null?void 0:t.querySelector("input:not(:disabled)")},dR=e=>{var t;return(t=ul(e))==null?void 0:t.querySelector("input:not(:disabled):checked")},gy=e=>{let n=`input[type=radio][data-ownedby='${CSS.escape(dl(e))}']:not([disabled])`;return xe(ul(e),n)},uR=(e,t)=>{if(t)return e.getById(hy(e,t))},gR=e=>{var t,n,r,i;return{x:(t=e==null?void 0:e.offsetLeft)!=null?t:0,y:(n=e==null?void 0:e.offsetTop)!=null?n:0,width:(r=e==null?void 0:e.offsetWidth)!=null?r:0,height:(i=e==null?void 0:e.offsetHeight)!=null?i:0}};pR=e=>e==null||e.width===0&&e.height===0&&e.x===0&&e.y===0,{not:fR}=Te(),mR=te({props({props:e}){return p({orientation:"vertical"},e)},initialState(){return"idle"},context({prop:e,bindable:t}){return{value:t(()=>({defaultValue:e("defaultValue"),value:e("value"),onChange(n){var r;(r=e("onValueChange"))==null||r({value:n})}})),activeValue:t(()=>({defaultValue:null})),focusedValue:t(()=>({defaultValue:null})),focusVisibleValue:t(()=>({defaultValue:null})),hoveredValue:t(()=>({defaultValue:null})),indicatorRect:t(()=>({defaultValue:null})),animateIndicator:t(()=>({defaultValue:!1})),fieldsetDisabled:t(()=>({defaultValue:!1})),ssr:t(()=>({defaultValue:!0}))}},refs(){return{indicatorCleanup:null,focusVisibleValue:null,prevValue:null}},computed:{isDisabled:({prop:e,context:t})=>!!e("disabled")||t.get("fieldsetDisabled")},entry:["syncPrevValue","syncIndicatorRect","syncSsr"],exit:["cleanupObserver"],effects:["trackFormControlState","trackFocusVisible"],watch({track:e,action:t,context:n}){e([()=>n.get("value")],()=>{t(["syncIndicatorAnimation","syncIndicatorRect","syncInputElements"])})},on:{SET_VALUE:[{guard:fR("isTrusted"),actions:["setValue","dispatchChangeEvent"]},{actions:["setValue"]}],SET_HOVERED:{actions:["setHovered"]},SET_ACTIVE:{actions:["setActive"]},SET_FOCUSED:{actions:["setFocused"]},INDICATOR_TRANSITION_END:{actions:["clearIndicatorAnimation"]}},states:{idle:{}},implementations:{guards:{isTrusted:({event:e})=>!!e.isTrusted},effects:{trackFormControlState({context:e,scope:t}){return Rt(ul(t),{onFieldsetDisabledChange(n){e.set("fieldsetDisabled",n)},onFormReset(){e.set("value",e.initial("value"))}})},trackFocusVisible({scope:e}){var t;return Qe({root:(t=e.getRootNode)==null?void 0:t.call(e)})}},actions:{setValue({context:e,event:t}){e.set("value",t.value)},setHovered({context:e,event:t}){e.set("hoveredValue",t.value)},setActive({context:e,event:t}){e.set("activeValue",t.value)},setFocused({context:e,event:t}){e.set("focusedValue",t.value);let n=t.value!=null&&t.focusVisible?t.value:null;e.set("focusVisibleValue",n)},syncPrevValue({context:e,refs:t}){t.set("prevValue",e.get("value"))},syncIndicatorAnimation({context:e,refs:t}){let n=t.get("prevValue"),r=e.get("value"),i=n!=null&&r!=null&&n!==r;e.set("animateIndicator",i),t.set("prevValue",r)},clearIndicatorAnimation({context:e}){e.set("animateIndicator",!1)},syncInputElements({context:e,scope:t}){gy(t).forEach(r=>{r.checked=r.value===e.get("value")})},cleanupObserver({refs:e}){var t;(t=e.get("indicatorCleanup"))==null||t()},syncSsr({context:e}){e.set("ssr",!1)},syncIndicatorRect({context:e,scope:t,refs:n}){var s;if((s=n.get("indicatorCleanup"))==null||s(),!lR(t))return;let r=e.get("value"),i=uR(t,r);if(r==null||!i){e.set("indicatorRect",null);return}let a=()=>{e.set("indicatorRect",gR(i))};a();let o=kn.observe(i,a);n.set("indicatorCleanup",o)},dispatchChangeEvent({context:e,scope:t}){gy(t).forEach(r=>{let i=r.value===e.get("value");i!==r.checked&&mi(r,{checked:i})})}}}}),vR=class extends X{initMachine(e){return new Y(mR,e)}initApi(){return this.zagConnect(hR)}render(){var r;let e=(r=this.el.querySelector('[data-scope="radio-group"][data-part="root"]'))!=null?r:this.el;this.spreadProps(e,this.api.getRootProps());let t=this.el.querySelector('[data-scope="radio-group"][data-part="label"]');t&&this.spreadProps(t,this.api.getLabelProps());let n=this.el.querySelector('[data-scope="radio-group"][data-part="indicator"]');n&&this.spreadProps(n,this.api.getIndicatorProps()),this.el.querySelectorAll('[data-scope="radio-group"][data-part="item"]').forEach(i=>{let a=i.dataset.value;if(a==null)return;let o=i.dataset.disabled==="true",s=i.dataset.invalid==="true";this.spreadProps(i,this.api.getItemProps({value:a,disabled:o,invalid:s}));let l=i.querySelector('[data-scope="radio-group"][data-part="item-text"]');l&&this.spreadProps(l,this.api.getItemTextProps({value:a,disabled:o,invalid:s}));let c=i.querySelector('[data-scope="radio-group"][data-part="item-control"]');c&&this.spreadProps(c,this.api.getItemControlProps({value:a,disabled:o,invalid:s}));let d=i.querySelector('[data-scope="radio-group"][data-part="item-hidden-input"]');d&&this.spreadProps(d,this.api.getItemHiddenInputProps({value:a,disabled:o,invalid:s}))})}};bR={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>J(this.liveSocket),r=new vR(e,v(p({id:e.id},Ug(e,"value","defaultValue")),{name:V(e,"name"),form:V(e,"form"),disabled:I(e,"disabled"),invalid:I(e,"invalid"),required:I(e,"required"),readOnly:I(e,"readOnly"),dir:U(e),orientation:V(e,"orientation"),onValueChange:i=>{let a=e.querySelector('[data-scope="radio-group"][data-part="item-hidden-input"]:checked');a&&(a.dispatchEvent(new Event("input",{bubbles:!0})),a.dispatchEvent(new Event("change",{bubbles:!0}))),K({el:e,canPushServer:n(),pushEvent:t,payload:yR(e,i),serverEventName:V(e,"onValueChange"),clientEventName:V(e,"onValueChangeClient")})}}));r.init(),this.radioGroup=r},updated(){var e;(e=this.radioGroup)==null||e.updateProps(v(p({id:this.el.id},qg(this.el,"value","defaultValue")),{name:V(this.el,"name"),form:V(this.el,"form"),disabled:I(this.el,"disabled"),invalid:I(this.el,"invalid"),required:I(this.el,"required"),readOnly:I(this.el,"readOnly"),orientation:V(this.el,"orientation"),dir:U(this.el)}))},destroyed(){var e;(e=this.radioGroup)==null||e.destroy()}}});var Cy={};fe(Cy,{Select:()=>AR});function TR(e,t){let{context:n,prop:r,scope:i,state:a,computed:o,send:s}=e,l=r("translations"),c=r("disabled")||n.get("fieldsetDisabled"),d=!!r("invalid"),g=!!r("required"),h=!!r("readOnly"),u=r("composite"),f=r("collection"),m=a.hasTag("open"),P=a.matches("focused"),C=n.get("highlightedValue"),x=n.get("highlightedItem"),T=o("selectedItems"),b=n.get("currentPlacement"),y=o("isTypingAhead"),S=o("isInteractive"),A=C?lu(i,C):void 0;function N(w){let k=f.getItemDisabled(w.item),R=f.getItemValue(w.item);return jt(R,()=>`[zag-js] No value found for item ${JSON.stringify(w.item)}`),{value:R,disabled:!!(c||k),highlighted:C===R,selected:n.get("value").includes(R)}}let O=Lt(v(p({},r("positioning")),{placement:b}));return{open:m,focused:P,empty:n.get("value").length===0,highlightedItem:x,highlightedValue:C,selectedItems:T,hasSelectedItems:o("hasSelectedItems"),value:n.get("value"),valueAsString:o("valueAsString"),collection:f,multiple:!!r("multiple"),disabled:!!c,reposition(w={}){s({type:"POSITIONING.SET",options:w})},focus(){var w;(w=ni(i))==null||w.focus({preventScroll:!0})},setOpen(w){a.hasTag("open")!==w&&s({type:w?"OPEN":"CLOSE"})},selectValue(w){s({type:"ITEM.SELECT",value:w})},setValue(w){s({type:"VALUE.SET",value:w})},selectAll(){s({type:"VALUE.SET",value:f.getValues()})},setHighlightValue(w){s({type:"HIGHLIGHTED_VALUE.SET",value:w})},clearHighlightValue(){s({type:"HIGHLIGHTED_VALUE.CLEAR"})},clearValue(w){s(w?{type:"ITEM.CLEAR",value:w}:{type:"VALUE.CLEAR"})},getItemState:N,getRootProps(){return t.element(v(p({},at.root.attrs),{dir:r("dir"),id:SR(i),"data-invalid":E(d),"data-readonly":E(h)}))},getLabelProps(){return t.label(v(p({dir:r("dir"),id:gl(i)},at.label.attrs),{"data-disabled":E(c),"data-invalid":E(d),"data-readonly":E(h),"data-required":E(g),htmlFor:cu(i),onClick(w){var k;w.defaultPrevented||c||(k=ni(i))==null||k.focus({preventScroll:!0})}}))},getControlProps(){return t.element(v(p({},at.control.attrs),{dir:r("dir"),id:PR(i),"data-state":m?"open":"closed","data-focus":E(P),"data-disabled":E(c),"data-invalid":E(d)}))},getValueTextProps(){return t.element(v(p({},at.valueText.attrs),{dir:r("dir"),"data-disabled":E(c),"data-invalid":E(d),"data-focus":E(P)}))},getTriggerProps(){return t.button(v(p({id:su(i),disabled:c,dir:r("dir"),type:"button",role:"combobox","aria-controls":ou(i),"aria-expanded":m,"aria-haspopup":"listbox","data-state":m?"open":"closed","aria-invalid":d,"aria-required":g,"aria-labelledby":gl(i)},at.trigger.attrs),{"data-disabled":E(c),"data-invalid":E(d),"data-readonly":E(h),"data-placement":b,"data-placeholder-shown":E(!o("hasSelectedItems")),onClick(w){S&&(w.defaultPrevented||s({type:"TRIGGER.CLICK"}))},onFocus(){s({type:"TRIGGER.FOCUS"})},onBlur(){s({type:"TRIGGER.BLUR"})},onKeyDown(w){if(w.defaultPrevented||!S)return;let R={ArrowUp(){s({type:"TRIGGER.ARROW_UP"})},ArrowDown(D){s({type:D.altKey?"OPEN":"TRIGGER.ARROW_DOWN"})},ArrowLeft(){s({type:"TRIGGER.ARROW_LEFT"})},ArrowRight(){s({type:"TRIGGER.ARROW_RIGHT"})},Home(){s({type:"TRIGGER.HOME"})},End(){s({type:"TRIGGER.END"})},Enter(){s({type:"TRIGGER.ENTER"})},Space(D){s(y?{type:"TRIGGER.TYPEAHEAD",key:D.key}:{type:"TRIGGER.ENTER"})}}[ve(w,{dir:r("dir"),orientation:"vertical"})];if(R){R(w),w.preventDefault();return}ct.isValidEvent(w)&&(s({type:"TRIGGER.TYPEAHEAD",key:w.key}),w.preventDefault())}}))},getIndicatorProps(){return t.element(v(p({},at.indicator.attrs),{dir:r("dir"),"aria-hidden":!0,"data-state":m?"open":"closed","data-disabled":E(c),"data-invalid":E(d),"data-readonly":E(h)}))},getItemProps(w){let k=N(w);return t.element(v(p({id:lu(i,k.value),role:"option"},at.item.attrs),{dir:r("dir"),"data-value":k.value,"aria-selected":k.selected,"data-state":k.selected?"checked":"unchecked","data-highlighted":E(k.highlighted),"data-disabled":E(k.disabled),"aria-disabled":oe(k.disabled),onPointerMove(R){k.disabled||R.pointerType!=="mouse"||k.value!==C&&s({type:"ITEM.POINTER_MOVE",value:k.value})},onClick(R){R.defaultPrevented||k.disabled||s({type:"ITEM.CLICK",src:"pointerup",value:k.value})},onPointerLeave(R){var W;k.disabled||w.persistFocus||R.pointerType!=="mouse"||!((W=e.event.previous())!=null&&W.type.includes("POINTER"))||s({type:"ITEM.POINTER_LEAVE"})}}))},getItemTextProps(w){let k=N(w);return t.element(v(p({},at.itemText.attrs),{"data-state":k.selected?"checked":"unchecked","data-disabled":E(k.disabled),"data-highlighted":E(k.highlighted)}))},getItemIndicatorProps(w){let k=N(w);return t.element(v(p({"aria-hidden":!0},at.itemIndicator.attrs),{"data-state":k.selected?"checked":"unchecked",hidden:!k.selected}))},getItemGroupLabelProps(w){let{htmlFor:k}=w;return t.element(v(p({},at.itemGroupLabel.attrs),{id:vy(i,k),dir:r("dir"),role:"presentation"}))},getItemGroupProps(w){let{id:k}=w;return t.element(v(p({},at.itemGroup.attrs),{"data-disabled":E(c),id:CR(i,k),"aria-labelledby":vy(i,k),role:"group",dir:r("dir")}))},getClearTriggerProps(){return t.button(v(p({},at.clearTrigger.attrs),{id:Sy(i),type:"button","aria-label":l.clearTriggerLabel,"data-invalid":E(d),disabled:c,hidden:!o("hasSelectedItems"),dir:r("dir"),onClick(w){w.defaultPrevented||s({type:"CLEAR.CLICK"})}}))},getHiddenSelectProps(){let w=n.get("value"),k=r("multiple")?w:w==null?void 0:w[0],R=D=>{let W=zt(D);Kl(W)||s({type:"VALUE.SET",value:wR(D.currentTarget)})};return t.select({name:r("name"),form:r("form"),disabled:c,multiple:r("multiple"),required:r("required"),"aria-hidden":!0,id:cu(i),defaultValue:k,style:dt,tabIndex:-1,autoComplete:r("autoComplete"),onChange:R,onInput:R,onFocus(){var D;(D=ni(i))==null||D.focus({preventScroll:!0})},"aria-labelledby":gl(i)})},getPositionerProps(){return t.element(v(p({},at.positioner.attrs),{dir:r("dir"),id:Py(i),style:O.floating}))},getContentProps(){return t.element(v(p({hidden:!m,dir:r("dir"),id:ou(i),role:u?"listbox":"dialog"},at.content.attrs),{"data-state":m?"open":"closed","data-placement":b,"data-activedescendant":A,"aria-activedescendant":u?A:void 0,"aria-multiselectable":r("multiple")&&u?!0:void 0,"aria-labelledby":gl(i),tabIndex:0,onKeyDown(w){if(!S||!ge(w.currentTarget,Q(w)))return;if(w.key==="Tab"&&!$o(w)){w.preventDefault();return}let k={ArrowUp(){s({type:"CONTENT.ARROW_UP"})},ArrowDown(){s({type:"CONTENT.ARROW_DOWN"})},Home(){s({type:"CONTENT.HOME"})},End(){s({type:"CONTENT.END"})},Enter(){s({type:"ITEM.CLICK",src:"keydown.enter"})},Space(W){var ee;y?s({type:"CONTENT.TYPEAHEAD",key:W.key}):(ee=k.Enter)==null||ee.call(k,W)}},R=k[ve(w)];if(R){R(w),w.preventDefault();return}let D=Q(w);xt(D)||ct.isValidEvent(w)&&(s({type:"CONTENT.TYPEAHEAD",key:w.key}),w.preventDefault())}}))},getListProps(){return t.element(v(p({},at.list.attrs),{tabIndex:0,role:u?void 0:"listbox","aria-labelledby":su(i),"aria-activedescendant":u?void 0:A,"aria-multiselectable":!u&&r("multiple")?!0:void 0}))}}}function by(e){var n,r;let t=(r=e.restoreFocus)!=null?r:(n=e.previousEvent)==null?void 0:n.restoreFocus;return t==null||!!t}function Ey(e,t){return Ja(t?{items:e,itemToValue:n=>{var r,i;return(i=(r=n.id)!=null?r:n.value)!=null?i:""},itemToString:n=>n.label,isItemDisabled:n=>!!n.disabled,groupBy:n=>{var r;return(r=n.group)!=null?r:""}}:{items:e,itemToValue:n=>{var r,i;return(i=(r=n.id)!=null?r:n.value)!=null?i:""},itemToString:n=>n.label,isItemDisabled:n=>!!n.disabled})}var ER,at,Ja,SR,ou,su,Sy,gl,PR,lu,cu,Py,CR,vy,iu,Xa,ni,IR,yy,au,wR,Za,ti,OR,VR,xR,AR,Iy=ne(()=>{"use strict";wi();_r();gr();gn();Is();wa();Di();Ln();_e();Ce();se();ER=j("select").parts("label","positioner","trigger","indicator","clearTrigger","item","itemText","itemIndicator","itemGroup","itemGroupLabel","list","content","root","control","valueText"),at=ER.build(),Ja=e=>new hn(e);Ja.empty=()=>new hn({items:[]});SR=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`select:${e.id}`},ou=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.content)!=null?n:`select:${e.id}:content`},su=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.trigger)!=null?n:`select:${e.id}:trigger`},Sy=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.clearTrigger)!=null?n:`select:${e.id}:clear-trigger`},gl=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`select:${e.id}:label`},PR=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.control)!=null?n:`select:${e.id}:control`},lu=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.item)==null?void 0:r.call(n,t))!=null?i:`select:${e.id}:option:${t}`},cu=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.hiddenSelect)!=null?n:`select:${e.id}:select`},Py=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.positioner)!=null?n:`select:${e.id}:positioner`},CR=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemGroup)==null?void 0:r.call(n,t))!=null?i:`select:${e.id}:optgroup:${t}`},vy=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemGroupLabel)==null?void 0:r.call(n,t))!=null?i:`select:${e.id}:optgroup-label:${t}`},iu=e=>e.getById(cu(e)),Xa=e=>e.getById(ou(e)),ni=e=>e.getById(su(e)),IR=e=>e.getById(Sy(e)),yy=e=>e.getById(Py(e)),au=(e,t)=>t==null?null:e.getById(lu(e,t));wR=e=>e.multiple?Array.from(e.selectedOptions,t=>t.value):e.value?[e.value]:[],{and:Za,not:ti,or:OR}=Te(),VR=te({props({props:e}){var t;return v(p({loopFocus:!1,closeOnSelect:!e.multiple,composite:!0,defaultValue:[]},e),{collection:(t=e.collection)!=null?t:Ja.empty(),translations:p({clearTriggerLabel:"Clear value"},e.translations),positioning:p({placement:"bottom-start",gutter:8},e.positioning)})},context({prop:e,bindable:t,getContext:n}){var a,o;let r=(o=(a=e("value"))!=null?a:e("defaultValue"))!=null?o:[],i=e("collection").findMany(r);return{value:t(()=>({defaultValue:e("defaultValue"),value:e("value"),isEqual:Ie,onChange(s){var f,m;let l=n(),c=e("collection"),d=l.get("selectedItemMap"),g=Pt({values:s,collection:c,selectedItemMap:d}),h=(f=e("value"))!=null?f:s,u=h===s?g:Pt({values:h,collection:c,selectedItemMap:g.nextSelectedItemMap});return l.set("selectedItemMap",u.nextSelectedItemMap),(m=e("onValueChange"))==null?void 0:m({value:s,items:g.selectedItems})}})),highlightedValue:t(()=>({defaultValue:e("defaultHighlightedValue")||null,value:e("highlightedValue"),onChange(s){var l;(l=e("onHighlightChange"))==null||l({highlightedValue:s,highlightedItem:e("collection").find(s),highlightedIndex:e("collection").indexOf(s)})}})),currentPlacement:t(()=>({defaultValue:void 0})),fieldsetDisabled:t(()=>({defaultValue:!1})),highlightedItem:t(()=>({defaultValue:null})),selectedItemMap:t(()=>({defaultValue:Ni({selectedItems:i,collection:e("collection")})}))}},refs(){return{typeahead:p({},ct.defaultOptions)}},computed:{hasSelectedItems:({context:e})=>e.get("value").length>0,isTypingAhead:({refs:e})=>e.get("typeahead").keysSoFar!=="",isDisabled:({prop:e,context:t})=>!!e("disabled")||!!t.get("fieldsetDisabled"),isInteractive:({prop:e})=>!(e("disabled")||e("readOnly")),selectedItems:({context:e,prop:t})=>$r({values:e.get("value"),collection:t("collection"),selectedItemMap:e.get("selectedItemMap")}),valueAsString:({computed:e,prop:t})=>t("collection").stringifyItems(e("selectedItems"))},initialState({prop:e}){return e("open")||e("defaultOpen")?"open":"idle"},entry:["syncSelectElement"],watch({context:e,prop:t,track:n,action:r}){n([()=>e.get("value").toString()],()=>{r(["syncSelectedItems","syncSelectElement","dispatchChangeEvent"])}),n([()=>t("open")],()=>{r(["toggleVisibility"])}),n([()=>e.get("highlightedValue")],()=>{r(["syncHighlightedItem"])}),n([()=>t("collection").toString()],()=>{r(["syncCollection"])})},on:{"HIGHLIGHTED_VALUE.SET":{actions:["setHighlightedItem"]},"HIGHLIGHTED_VALUE.CLEAR":{actions:["clearHighlightedItem"]},"ITEM.SELECT":{actions:["selectItem"]},"ITEM.CLEAR":{actions:["clearItem"]},"VALUE.SET":{actions:["setSelectedItems"]},"VALUE.CLEAR":{actions:["clearSelectedItems"]},"CLEAR.CLICK":{actions:["clearSelectedItems","focusTriggerEl"]}},effects:["trackFormControlState"],states:{idle:{tags:["closed"],on:{"CONTROLLED.OPEN":[{guard:"isTriggerClickEvent",target:"open",actions:["setInitialFocus","highlightFirstSelectedItem"]},{target:"open",actions:["setInitialFocus"]}],"TRIGGER.CLICK":[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["invokeOnOpen","setInitialFocus","highlightFirstSelectedItem"]}],"TRIGGER.FOCUS":{target:"focused"},OPEN:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["setInitialFocus","invokeOnOpen"]}]}},focused:{tags:["closed"],on:{"CONTROLLED.OPEN":[{guard:"isTriggerClickEvent",target:"open",actions:["setInitialFocus","highlightFirstSelectedItem"]},{guard:"isTriggerArrowUpEvent",target:"open",actions:["setInitialFocus","highlightComputedLastItem"]},{guard:OR("isTriggerArrowDownEvent","isTriggerEnterEvent"),target:"open",actions:["setInitialFocus","highlightComputedFirstItem"]},{target:"open",actions:["setInitialFocus"]}],OPEN:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["setInitialFocus","invokeOnOpen"]}],"TRIGGER.BLUR":{target:"idle"},"TRIGGER.CLICK":[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["setInitialFocus","invokeOnOpen","highlightFirstSelectedItem"]}],"TRIGGER.ENTER":[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["setInitialFocus","invokeOnOpen","highlightComputedFirstItem"]}],"TRIGGER.ARROW_UP":[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["setInitialFocus","invokeOnOpen","highlightComputedLastItem"]}],"TRIGGER.ARROW_DOWN":[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["setInitialFocus","invokeOnOpen","highlightComputedFirstItem"]}],"TRIGGER.ARROW_LEFT":[{guard:Za(ti("multiple"),"hasSelectedItems"),actions:["selectPreviousItem"]},{guard:ti("multiple"),actions:["selectLastItem"]}],"TRIGGER.ARROW_RIGHT":[{guard:Za(ti("multiple"),"hasSelectedItems"),actions:["selectNextItem"]},{guard:ti("multiple"),actions:["selectFirstItem"]}],"TRIGGER.HOME":{guard:ti("multiple"),actions:["selectFirstItem"]},"TRIGGER.END":{guard:ti("multiple"),actions:["selectLastItem"]},"TRIGGER.TYPEAHEAD":{guard:ti("multiple"),actions:["selectMatchingItem"]}}},open:{tags:["open"],exit:["scrollContentToTop"],effects:["trackDismissableElement","trackFocusVisible","computePlacement","scrollToHighlightedItem"],on:{"CONTROLLED.CLOSE":[{guard:"restoreFocus",target:"focused",actions:["focusTriggerEl","clearHighlightedItem"]},{target:"idle",actions:["clearHighlightedItem"]}],CLOSE:[{guard:"isOpenControlled",actions:["invokeOnClose"]},{guard:"restoreFocus",target:"focused",actions:["invokeOnClose","focusTriggerEl","clearHighlightedItem"]},{target:"idle",actions:["invokeOnClose","clearHighlightedItem"]}],"TRIGGER.CLICK":[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"focused",actions:["invokeOnClose","clearHighlightedItem"]}],"ITEM.CLICK":[{guard:Za("closeOnSelect","isOpenControlled"),actions:["selectHighlightedItem","invokeOnClose"]},{guard:"closeOnSelect",target:"focused",actions:["selectHighlightedItem","invokeOnClose","focusTriggerEl","clearHighlightedItem"]},{actions:["selectHighlightedItem"]}],"CONTENT.HOME":{actions:["highlightFirstItem"]},"CONTENT.END":{actions:["highlightLastItem"]},"CONTENT.ARROW_DOWN":[{guard:Za("hasHighlightedItem","loop","isLastItemHighlighted"),actions:["highlightFirstItem"]},{guard:"hasHighlightedItem",actions:["highlightNextItem"]},{actions:["highlightFirstItem"]}],"CONTENT.ARROW_UP":[{guard:Za("hasHighlightedItem","loop","isFirstItemHighlighted"),actions:["highlightLastItem"]},{guard:"hasHighlightedItem",actions:["highlightPreviousItem"]},{actions:["highlightLastItem"]}],"CONTENT.TYPEAHEAD":{actions:["highlightMatchingItem"]},"ITEM.POINTER_MOVE":{actions:["highlightItem"]},"ITEM.POINTER_LEAVE":{actions:["clearHighlightedItem"]},"POSITIONING.SET":{actions:["reposition"]}}}},implementations:{guards:{loop:({prop:e})=>!!e("loopFocus"),multiple:({prop:e})=>!!e("multiple"),hasSelectedItems:({computed:e})=>!!e("hasSelectedItems"),hasHighlightedItem:({context:e})=>e.get("highlightedValue")!=null,isFirstItemHighlighted:({context:e,prop:t})=>e.get("highlightedValue")===t("collection").firstValue,isLastItemHighlighted:({context:e,prop:t})=>e.get("highlightedValue")===t("collection").lastValue,closeOnSelect:({prop:e,event:t})=>{var n;return!!((n=t.closeOnSelect)!=null?n:e("closeOnSelect"))},restoreFocus:({event:e})=>by(e),isOpenControlled:({prop:e})=>e("open")!==void 0,isTriggerClickEvent:({event:e})=>{var t;return((t=e.previousEvent)==null?void 0:t.type)==="TRIGGER.CLICK"},isTriggerEnterEvent:({event:e})=>{var t;return((t=e.previousEvent)==null?void 0:t.type)==="TRIGGER.ENTER"},isTriggerArrowUpEvent:({event:e})=>{var t;return((t=e.previousEvent)==null?void 0:t.type)==="TRIGGER.ARROW_UP"},isTriggerArrowDownEvent:({event:e})=>{var t;return((t=e.previousEvent)==null?void 0:t.type)==="TRIGGER.ARROW_DOWN"}},effects:{trackFocusVisible({scope:e}){var t;return Qe({root:(t=e.getRootNode)==null?void 0:t.call(e)})},trackFormControlState({context:e,scope:t}){return Rt(iu(t),{onFieldsetDisabledChange(n){e.set("fieldsetDisabled",n)},onFormReset(){let n=e.initial("value");e.set("value",n)}})},trackDismissableElement({scope:e,send:t,prop:n}){let r=()=>Xa(e),i=!0;return Mt(r,{type:"listbox",defer:!0,exclude:[ni(e),IR(e)],onFocusOutside:n("onFocusOutside"),onPointerDownOutside:n("onPointerDownOutside"),onInteractOutside(a){var o;(o=n("onInteractOutside"))==null||o(a),i=!(a.detail.focusable||a.detail.contextmenu)},onDismiss(){t({type:"CLOSE",src:"interact-outside",restoreFocus:i})}})},computePlacement({context:e,prop:t,scope:n}){let r=t("positioning");return e.set("currentPlacement",r.placement),je(()=>ni(n),()=>yy(n),v(p({defer:!0},r),{onComplete(o){e.set("currentPlacement",o.placement)}}))},scrollToHighlightedItem({context:e,prop:t,scope:n}){let r=a=>{let o=e.get("highlightedValue");if(o==null||sr()==="pointer")return;let l=Xa(n),c=t("scrollToIndexFn");if(c){let g=t("collection").indexOf(o);c==null||c({index:g,immediate:a,getElement:()=>au(n,o)});return}let d=au(n,o);Rn(d,{rootEl:l,block:"nearest"})};return $(()=>{lr("virtual"),r(!0)}),kt(()=>Xa(n),{defer:!0,attributes:["data-activedescendant"],callback(){r(!1)}})}},actions:{reposition({context:e,prop:t,scope:n,event:r}){let i=()=>yy(n);je(ni(n),i,v(p(p({},t("positioning")),r.options),{defer:!0,listeners:!1,onComplete(a){e.set("currentPlacement",a.placement)}}))},toggleVisibility({send:e,prop:t,event:n}){e({type:t("open")?"CONTROLLED.OPEN":"CONTROLLED.CLOSE",previousEvent:n})},highlightPreviousItem({context:e,prop:t}){let n=e.get("highlightedValue");if(n==null)return;let r=t("collection").getPreviousValue(n,1,t("loopFocus"));r!=null&&e.set("highlightedValue",r)},highlightNextItem({context:e,prop:t}){let n=e.get("highlightedValue");if(n==null)return;let r=t("collection").getNextValue(n,1,t("loopFocus"));r!=null&&e.set("highlightedValue",r)},highlightFirstItem({context:e,prop:t}){let n=t("collection").firstValue;e.set("highlightedValue",n)},highlightLastItem({context:e,prop:t}){let n=t("collection").lastValue;e.set("highlightedValue",n)},setInitialFocus({scope:e}){$(()=>{let t=nr({root:Xa(e)});t==null||t.focus({preventScroll:!0})})},focusTriggerEl({event:e,scope:t}){by(e)&&$(()=>{let n=ni(t);n==null||n.focus({preventScroll:!0})})},selectHighlightedItem({context:e,prop:t,event:n}){var a,o;let r=(a=n.value)!=null?a:e.get("highlightedValue");if(r==null||!t("collection").has(r))return;(o=t("onSelect"))==null||o({value:r}),r=t("deselectable")&&!t("multiple")&&e.get("value").includes(r)?null:r,e.set("value",s=>r==null?[]:t("multiple")?Kt(s,r):[r])},highlightComputedFirstItem({context:e,prop:t,computed:n}){let r=t("collection"),i=n("hasSelectedItems")?r.sort(e.get("value"))[0]:r.firstValue;e.set("highlightedValue",i)},highlightComputedLastItem({context:e,prop:t,computed:n}){let r=t("collection"),i=n("hasSelectedItems")?r.sort(e.get("value"))[0]:r.lastValue;e.set("highlightedValue",i)},highlightFirstSelectedItem({context:e,prop:t,computed:n}){if(!n("hasSelectedItems"))return;let r=t("collection").sort(e.get("value"))[0];e.set("highlightedValue",r)},highlightItem({context:e,event:t}){e.set("highlightedValue",t.value)},highlightMatchingItem({context:e,prop:t,event:n,refs:r}){let i=t("collection").search(n.key,{state:r.get("typeahead"),currentValue:e.get("highlightedValue")});i!=null&&e.set("highlightedValue",i)},setHighlightedItem({context:e,event:t}){e.set("highlightedValue",t.value)},clearHighlightedItem({context:e}){e.set("highlightedValue",null)},selectItem({context:e,prop:t,event:n}){var a;(a=t("onSelect"))==null||a({value:n.value});let i=t("deselectable")&&!t("multiple")&&e.get("value").includes(n.value)?null:n.value;e.set("value",o=>i==null?[]:t("multiple")?Kt(o,i):[i])},clearItem({context:e,event:t}){e.set("value",n=>n.filter(r=>r!==t.value))},setSelectedItems({context:e,event:t}){e.set("value",t.value)},clearSelectedItems({context:e}){e.set("value",[])},selectPreviousItem({context:e,prop:t}){let[n]=e.get("value"),r=t("collection").getPreviousValue(n);r&&e.set("value",[r])},selectNextItem({context:e,prop:t}){let[n]=e.get("value"),r=t("collection").getNextValue(n);r&&e.set("value",[r])},selectFirstItem({context:e,prop:t}){let n=t("collection").firstValue;n&&e.set("value",[n])},selectLastItem({context:e,prop:t}){let n=t("collection").lastValue;n&&e.set("value",[n])},selectMatchingItem({context:e,prop:t,event:n,refs:r}){let i=t("collection").search(n.key,{state:r.get("typeahead"),currentValue:e.get("value")[0]});i!=null&&e.set("value",[i])},scrollContentToTop({prop:e,scope:t}){var n,r;if(e("scrollToIndexFn")){let i=e("collection").firstValue;(n=e("scrollToIndexFn"))==null||n({index:0,immediate:!0,getElement:()=>au(t,i)})}else(r=Xa(t))==null||r.scrollTo(0,0)},invokeOnOpen({prop:e,context:t}){var n;(n=e("onOpenChange"))==null||n({open:!0,value:t.get("value")})},invokeOnClose({prop:e,context:t}){var n;(n=e("onOpenChange"))==null||n({open:!1,value:t.get("value")})},syncSelectElement({context:e,prop:t,scope:n}){let r=iu(n);if(r){if(e.get("value").length===0&&!t("multiple")){r.selectedIndex=-1;return}for(let i of r.options)i.selected=e.get("value").includes(i.value)}},syncCollection({context:e,prop:t}){let n=t("collection"),r=n.find(e.get("highlightedValue"));r&&e.set("highlightedItem",r);let i=Pt({values:e.get("value"),collection:n,selectedItemMap:e.get("selectedItemMap")});e.set("selectedItemMap",i.nextSelectedItemMap)},syncSelectedItems({context:e,prop:t}){let n=Pt({values:e.get("value"),collection:t("collection"),selectedItemMap:e.get("selectedItemMap")});e.set("selectedItemMap",n.nextSelectedItemMap)},syncHighlightedItem({context:e,prop:t}){let n=t("collection"),r=e.get("highlightedValue"),i=r?n.find(r):null;e.set("highlightedItem",i)},dispatchChangeEvent({scope:e}){queueMicrotask(()=>{let t=iu(e);if(!t)return;let n=e.getWin(),r=new n.Event("change",{bubbles:!0,composed:!0});t.dispatchEvent(Fo(r))})}}}});xR=class extends X{constructor(t,n){var i;super(t,n);Z(this,"_options",[]);Z(this,"hasGroups",!1);Z(this,"placeholder","");let r=n.collection;this._options=(i=r==null?void 0:r.items)!=null?i:[],this.placeholder=V(this.el,"placeholder")||""}get options(){return Array.isArray(this._options)?this._options:[]}setOptions(t){this._options=Array.isArray(t)?t:[]}getCollection(){return Ja(Cs(this.options,this.hasGroups))}initMachine(t){let n=this.getCollection.bind(this);return new Y(VR,v(p({},t),{get collection(){return n()}}))}initApi(){return this.zagConnect(TR)}applyItemProps(){let t=this.el.querySelector('[data-scope="select"][data-part="content"]');if(!t)return;let n=r=>r.closest('[data-scope="select"][data-part="content"]')===t;t.querySelectorAll('[data-scope="select"][data-part="item-group"]').forEach(r=>{var o;if(!n(r))return;let i=(o=r.dataset.id)!=null?o:"";this.spreadProps(r,this.api.getItemGroupProps({id:i}));let a=r.querySelector('[data-scope="select"][data-part="item-group-label"]');a&&this.spreadProps(a,this.api.getItemGroupLabelProps({htmlFor:i}))}),t.querySelectorAll('[data-scope="select"][data-part="item"]').forEach(r=>{var l;if(!n(r))return;let i=(l=r.dataset.value)!=null?l:"";if(!i)return;let a=this.options.find(c=>{var d,g;return String((g=(d=c.id)!=null?d:c.value)!=null?g:"")===String(i)});if(!a)return;this.spreadProps(r,this.api.getItemProps({item:a}));let o=r.querySelector('[data-scope="select"][data-part="item-text"]');o&&this.spreadProps(o,this.api.getItemTextProps({item:a}));let s=r.querySelector('[data-scope="select"][data-part="item-indicator"]');s&&this.spreadProps(s,this.api.getItemIndicatorProps({item:a}))})}render(){var o,s;let t=(o=this.el.querySelector('[data-scope="select"][data-part="root"]'))!=null?o:this.el;this.spreadProps(t,this.api.getRootProps());let n=this.el.querySelector('[data-scope="select"][data-part="value-input"]');if(n){let l=(s=this.api.value)!=null&&s.length?this.api.value.map(String).join(","):"";n.value=l}let r=this.el.querySelector('[data-scope="select"][data-part="hidden-select"]');r&&this.spreadProps(r,this.api.getHiddenSelectProps()),["label","control","trigger","indicator","clear-trigger","positioner"].forEach(l=>{let c=this.el.querySelector(`[data-scope="select"][data-part="${l}"]`);if(!c)return;let d="get"+l.split("-").map(g=>g[0].toUpperCase()+g.slice(1)).join("")+"Props";this.spreadProps(c,this.api[d]())});let i=this.el.querySelector('[data-scope="select"][data-part="item-text"]');if(i){let l=this.api.valueAsString;if(this.api.value&&this.api.value.length>0&&!l){let c=this.api.value[0],d=this.options.find(g=>{var u,f;let h=(f=(u=g.id)!=null?u:g.value)!=null?f:"";return String(h)===String(c)});i.textContent=(d==null?void 0:d.label)||this.placeholder}else i.textContent=l||this.placeholder}let a=this.el.querySelector('[data-scope="select"][data-part="content"]');a&&(this.spreadProps(a,this.api.getContentProps()),this.applyItemProps())}};AR={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>J(this.liveSocket),r=JSON.parse(e.dataset.items||"[]"),i=r.some(d=>!!d.group),a=Ey(r,i),o=I(e,"redirect"),s=new xR(e,v(p({id:e.id,collection:a},I(e,"controlled")?{value:ie(e,"value")}:{defaultValue:ie(e,"defaultValue")}),{disabled:I(e,"disabled"),closeOnSelect:I(e,"closeOnSelect"),dir:U(e),loopFocus:I(e,"loopFocus"),multiple:o?!1:I(e,"multiple"),invalid:I(e,"invalid"),name:V(e,"name"),form:V(e,"form"),readOnly:I(e,"readOnly"),required:I(e,"required"),deselectable:I(e,"deselectable"),positioning:nt(e),onValueChange:d=>{let g=d.value.length>0?String(d.value[0]):null;if(I(e,"redirect")&&g){let u=e.querySelector(`[data-scope="select"][data-part="item"][data-value="${CSS.escape(g)}"]`);mn(fn(u,g),{liveSocket:this.liveSocket})}let h=e.querySelector('[data-scope="select"][data-part="value-input"]');h&&I(e,"controlled")&&(h.value=d.value.length===0?"":d.value.length===1?String(d.value[0]):d.value.map(String).join(","),h.dispatchEvent(new Event("input",{bubbles:!0})),h.dispatchEvent(new Event("change",{bubbles:!0}))),K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,value:d.value,items:d.items},serverEventName:V(e,"onValueChange"),clientEventName:V(e,"onValueChangeClient")})}}));s.hasGroups=i,s.setOptions(r),s.init(),this.select=s,this.handlers=[],this.lastItemsJson=e.dataset.items||"[]";let l=de(e);this.domRegistry=l,l.add("corex:select:set-value",d=>{s.api.setValue(d.detail.value)}),l.add("corex:select:set-open",d=>{s.api.setOpen(d.detail.open)});let c=ce(this);this.handleRegistry=c,c.add("select_set_value",d=>{B(e.id,G(d))&&s.api.setValue(d.value)}),c.add("select_set_open",d=>{B(e.id,G(d))&&typeof d.open=="boolean"&&s.api.setOpen(d.open)})},updated(){let e=this.el.dataset.items||"[]",t=e===this.lastItemsJson,n=I(this.el,"redirect"),r=v(p({id:this.el.id},I(this.el,"controlled")?{value:ie(this.el,"value")}:{defaultValue:ie(this.el,"defaultValue")}),{name:V(this.el,"name"),form:V(this.el,"form"),disabled:I(this.el,"disabled"),multiple:n?!1:I(this.el,"multiple"),dir:U(this.el),invalid:I(this.el,"invalid"),required:I(this.el,"required"),readOnly:I(this.el,"readOnly"),positioning:nt(this.el)});if(this.select&&t){this.select.updateProps(r);return}this.lastItemsJson=e;let i=JSON.parse(e),a=i.some(o=>!!o.group);this.select&&(this.select.hasGroups=a,this.select.setOptions(i),this.select.updateProps(v(p({},r),{collection:Ey(i,a)})))},destroyed(){var e,t,n;if(this.handlers)for(let r of this.handlers)this.removeHandleEvent(r);(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.select)==null||n.destroy()}}});var qy={};fe(qy,{SignaturePad:()=>ik});function LR(e,t){let{state:n,send:r,prop:i,computed:a,context:o,scope:s}=e,l=n.matches("drawing"),c=a("isEmpty"),d=a("isInteractive"),g=!!i("disabled"),h=!!i("required"),u=i("translations");return{empty:c,drawing:l,currentPath:o.get("currentPath"),paths:o.get("paths"),clear(){r({type:"CLEAR"})},getDataUrl(f,m){return a("isEmpty")?Promise.resolve(""):$y(s,{type:f,quality:m})},getLabelProps(){return t.label(v(p({},ri.label.attrs),{id:NR(s),"data-disabled":E(g),"data-required":E(h),htmlFor:Ty(s),onClick(f){if(!d||f.defaultPrevented)return;let m=pl(s);m==null||m.focus({preventScroll:!0})}}))},getRootProps(){return t.element(v(p({},ri.root.attrs),{"data-disabled":E(g),id:kR(s)}))},getControlProps(){return t.element(v(p({},ri.control.attrs),{tabIndex:g?void 0:0,id:_y(s),role:"application","aria-roledescription":"signature pad","aria-label":u.control,"aria-disabled":g,"data-disabled":E(g),onPointerDown(f){if(!Ee(f)||Fe(f)||!d)return;let m=Q(f);if(m!=null&&m.closest("[data-part=clear-trigger]"))return;f.currentTarget.setPointerCapture(f.pointerId);let P={x:f.clientX,y:f.clientY},C=pl(s);if(!C)return;let{offset:x}=bi(P,C);r({type:"POINTER_DOWN",point:x,pressure:f.pressure})},onPointerUp(f){d&&f.currentTarget.hasPointerCapture(f.pointerId)&&f.currentTarget.releasePointerCapture(f.pointerId)},style:{position:"relative",touchAction:"none",userSelect:"none",WebkitUserSelect:"none"}}))},getSegmentProps(){return t.svg(v(p({},ri.segment.attrs),{style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",pointerEvents:"none",fill:i("drawing").fill}}))},getSegmentPathProps(f){return t.path(v(p({},ri.segmentPath.attrs),{d:f.path}))},getGuideProps(){return t.element(v(p({},ri.guide.attrs),{"data-disabled":E(g)}))},getClearTriggerProps(){return t.button(v(p({},ri.clearTrigger.attrs),{type:"button","aria-label":u.clearTrigger,hidden:!o.get("paths").length||l,disabled:g,onClick(){r({type:"CLEAR"})}}))},getHiddenInputProps(f){return t.input({id:Ty(s),type:"text",hidden:!0,disabled:g,required:i("required"),readOnly:!0,name:i("name"),value:f.value})}}}function Vy(e,t,n,r=i=>i){return e*r(.5-t*(.5-n))}function Hy(e,t,n){let r=du(1,t/n);return du(1,e+(du(1,1-r)-e)*(r*.275))}function FR(e){return[-e[0],-e[1]]}function Sn(e,t){return[e[0]+t[0],e[1]+t[1]]}function xy(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e}function Pr(e,t){return[e[0]-t[0],e[1]-t[1]]}function pu(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e}function Sr(e,t){return[e[0]*t,e[1]*t]}function uu(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e}function _R(e,t){return[e[0]/t,e[1]/t]}function By(e){return[e[1],-e[0]]}function gu(e,t){let n=t[0];return e[0]=t[1],e[1]=-n,e}function Ay(e,t){return e[0]*t[0]+e[1]*t[1]}function $R(e,t){return e[0]===t[0]&&e[1]===t[1]}function HR(e){return Math.hypot(e[0],e[1])}function Ry(e,t){let n=e[0]-t[0],r=e[1]-t[1];return n*n+r*r}function Gy(e){return _R(e,HR(e))}function BR(e,t){return Math.hypot(e[1]-t[1],e[0]-t[0])}function mu(e,t,n){let r=Math.sin(n),i=Math.cos(n),a=e[0]-t[0],o=e[1]-t[1],s=a*i-o*r,l=a*r+o*i;return[s+t[0],l+t[1]]}function ky(e,t,n,r){let i=Math.sin(r),a=Math.cos(r),o=t[0]-n[0],s=t[1]-n[1],l=o*a-s*i,c=o*i+s*a;return e[0]=l+n[0],e[1]=c+n[1],e}function Ny(e,t,n){return Sn(e,Sr(Pr(t,e),n))}function GR(e,t,n,r){let i=n[0]-t[0],a=n[1]-t[1];return e[0]=t[0]+i*r,e[1]=t[1]+a*r,e}function Uy(e,t,n){return Sn(e,Sr(t,n))}function UR(e,t){let n=Uy(e,Gy(By(Pr(e,Sn(e,[1,1])))),-t),r=[],i=1/13;for(let a=i;a<=1;a+=i)r.push(mu(n,e,Qa*2*a));return r}function qR(e,t,n){let r=[],i=1/n;for(let a=i;a<=1;a+=i)r.push(mu(t,e,Qa*a));return r}function WR(e,t,n){let r=Pr(t,n),i=Sr(r,.5),a=Sr(r,.51);return[Pr(e,i),Pr(e,a),Sn(e,a),Sn(e,i)]}function KR(e,t,n,r){let i=[],a=Uy(e,t,n),o=1/r;for(let s=o;s<1;s+=o)i.push(mu(a,e,Qa*3*s));return i}function jR(e,t,n){return[Sn(e,Sr(t,n)),Sn(e,Sr(t,n*.99)),Pr(e,Sr(t,n*.99)),Pr(e,Sr(t,n))]}function Dy(e,t,n){return e===!1||e===void 0?0:e===!0?Math.max(t,n):e}function zR(e,t,n){return e.slice(0,10).reduce((r,i)=>{let a=i.pressure;return t&&(a=Hy(r,i.distance,n)),(r+a)/2},e[0].pressure)}function YR(e,t={}){let{size:n=16,smoothing:r=.5,thinning:i=.5,simulatePressure:a=!0,easing:o=z=>z,start:s={},end:l={},last:c=!1}=t,{cap:d=!0,easing:g=z=>z*(2-z)}=s,{cap:h=!0,easing:u=z=>--z*z*z+1}=l;if(e.length===0||n<=0)return[];let f=e[e.length-1].runningLength,m=Dy(s.taper,n,f),P=Dy(l.taper,n,f),C=(n*r)**2,x=[],T=[],b=zR(e,a,n),y=Vy(n,i,e[e.length-1].pressure,o),S,A=e[0].vector,N=e[0].point,O=N,w=N,k=O,R=!1;for(let z=0;zC)&&(x.push(w),N=w),xy(Er,he,Ye),k=[Er[0],Er[1]],(z<=1||Ry(O,k)>C)&&(T.push(k),O=k),b=le,A=ae}let D=[e[0].point[0],e[0].point[1]],W=e.length>1?[e[e.length-1].point[0],e[e.length-1].point[1]]:Sn(e[0].point,[1,1]),ee=[],ue=[];if(e.length===1){if(!(m||P)||c)return UR(D,S||y)}else{m||P&&e.length===1||(d?ee.push(...qR(D,T[0],13)):ee.push(...WR(D,x[0],T[0])));let z=By(FR(e[e.length-1].vector));P||m&&e.length===1?ue.push(W):h?ue.push(...KR(W,z,y,29)):ue.push(...jR(W,z,y))}return x.concat(ue,T.reverse(),ee)}function My(e){return e!=null&&e>=0}function XR(e,t={}){var h;let{streamline:n=.5,size:r=16,last:i=!1}=t;if(e.length===0)return[];let a=.15+(1-n)*.85,o=Array.isArray(e[0])?e:e.map(({x:u,y:f,pressure:m=wy})=>[u,f,m]);if(o.length===2){let u=o[1];o=o.slice(0,-1);for(let f=1;f<5;f++)o.push(Ny(o[0],u,f/4))}o.length===1&&(o=[...o,[...Sn(o[0],Oy),...o[0].slice(2)]]);let s=[{point:[o[0][0],o[0][1]],pressure:My(o[0][2])?o[0][2]:.25,vector:[...Oy],distance:0,runningLength:0}],l=!1,c=0,d=s[0],g=o.length-1;for(let u=1;ur.trim()).filter(Boolean):[]}function fu(e){let t=e;t.phxPrivate||(t.phxPrivate={}),t.phxPrivate[nk]=!0}function Fy(e){let t={fill:V(e,"drawingFill"),size:q(e,"drawingSize"),simulatePressure:I(e,"drawingSimulatePressure"),smoothing:q(e,"drawingSmoothing"),thinning:q(e,"drawingThinning"),streamline:q(e,"drawingStreamline")},n=V(e,"drawingEasing");return n&&(t.easing=n),t}function hu(e,t,n){queueMicrotask(()=>{let r=e.querySelector('[data-scope="signature-pad"][data-part="hidden-input"]');if(!r)return;let i=t();String(r.value)!==String(i)&&(r.value=i),n.onPadTouched(),fu(r),r.dispatchEvent(new Event("input",{bubbles:!0})),r.dispatchEvent(new Event("change",{bubbles:!0}))})}var RR,ri,kR,_y,NR,Ty,pl,DR,$y,MR,Qa,wy,Oy,du,Ye,br,Er,Ly,JR,hl,ek,tk,nk,ik,Wy=ne(()=>{"use strict";Ce();se();RR=j("signature-pad").parts("root","control","segment","segmentPath","guide","clearTrigger","label"),ri=RR.build(),kR=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`signature-${e.id}`},_y=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.control)!=null?n:`signature-control-${e.id}`},NR=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`signature-label-${e.id}`},Ty=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.hiddenInput)!=null?n:`signature-input-${e.id}`},pl=e=>e.getById(_y(e)),DR=e=>rr(pl(e),"[data-part=segment]"),$y=(e,t)=>vg(DR(e),t);({PI:MR}=Math),Qa=MR+1e-4,wy=.5,Oy=[1,1];({min:du}=Math);Ye=[0,0],br=[0,0],Er=[0,0];Ly=[0,0];JR=ZR,hl=(e,t)=>(e+t)/2;ek=te({props({props:e}){return v(p({defaultPaths:[]},e),{drawing:p({size:2,simulatePressure:!1,thinning:.7,smoothing:.4,streamline:.6},e.drawing),translations:p({control:"signature pad",clearTrigger:"clear signature"},e.translations)})},initialState(){return"idle"},context({prop:e,bindable:t}){return{paths:t(()=>({defaultValue:e("defaultPaths"),value:e("paths"),sync:!0,onChange(n){var r;(r=e("onDraw"))==null||r({paths:n})}})),currentPoints:t(()=>({defaultValue:[]})),currentPath:t(()=>({defaultValue:null}))}},computed:{isInteractive:({prop:e})=>!(e("disabled")||e("readOnly")),isEmpty:({context:e})=>e.get("paths").length===0},on:{CLEAR:{actions:["clearPoints","invokeOnDrawEnd","focusCanvasEl"]}},states:{idle:{on:{POINTER_DOWN:{target:"drawing",actions:["addPoint"]}}},drawing:{effects:["trackPointerMove"],on:{POINTER_MOVE:{actions:["addPoint","invokeOnDraw"]},POINTER_UP:{target:"idle",actions:["endStroke","invokeOnDrawEnd"]}}}},implementations:{effects:{trackPointerMove({scope:e,send:t}){let n=e.getDoc();return an(n,{onPointerMove({event:r,point:i}){let a=pl(e);if(!a)return;let{offset:o}=bi(i,a);t({type:"POINTER_MOVE",point:o,pressure:r.pressure})},onPointerUp(){t({type:"POINTER_UP"})}})}},actions:{addPoint({context:e,event:t,prop:n}){let r=[...e.get("currentPoints"),t.point];e.set("currentPoints",r);let i=JR(r,n("drawing"));e.set("currentPath",QR(i))},endStroke({context:e}){let t=[...e.get("paths"),e.get("currentPath")];e.set("paths",t),e.set("currentPoints",[]),e.set("currentPath",null)},clearPoints({context:e}){e.set("currentPoints",[]),e.set("paths",[]),e.set("currentPath",null)},focusCanvasEl({scope:e}){queueMicrotask(()=>{var t;(t=e.getActiveElement())==null||t.focus({preventScroll:!0})})},invokeOnDraw({context:e,prop:t}){var n;(n=t("onDraw"))==null||n({paths:[...e.get("paths"),e.get("currentPath")]})},invokeOnDrawEnd({context:e,prop:t,scope:n,computed:r}){var i;(i=t("onDrawEnd"))==null||i({paths:[...e.get("paths")],getDataUrl(a,o=.92){return r("isEmpty")?Promise.resolve(""):$y(n,{type:a,quality:o})}})}}}}),tk=class extends X{constructor(){super(...arguments);Z(this,"imageURL","");Z(this,"paths",[]);Z(this,"name");Z(this,"syncPaths",()=>{let t=this.el.querySelector('[data-scope="signature-pad"][data-part="segment"]');if(!t)return;if(this.api.paths.length+(this.api.currentPath?1:0)===0){t.innerHTML="",this.imageURL="",this.paths=[];let r=this.el.querySelector('[data-scope="signature-pad"][data-part="hidden-input"]');r&&r.value!==""&&(r.value="");return}if(t.innerHTML="",this.api.paths.forEach(r=>{let i=document.createElementNS("http://www.w3.org/2000/svg","path");i.setAttribute("data-scope","signature-pad"),i.setAttribute("data-part","path"),this.spreadProps(i,this.api.getSegmentPathProps({path:r})),t.appendChild(i)}),this.api.currentPath){let r=document.createElementNS("http://www.w3.org/2000/svg","path");r.setAttribute("data-scope","signature-pad"),r.setAttribute("data-part","current-path"),this.spreadProps(r,this.api.getSegmentPathProps({path:this.api.currentPath})),t.appendChild(r)}})}initMachine(t){return this.name=t.name,new Y(ek,t)}setName(t){this.name=t}setPaths(t){this.paths=t}initApi(){return this.zagConnect(LR)}render(){let t=this.el.querySelector('[data-scope="signature-pad"][data-part="root"]');if(!t)return;this.spreadProps(t,this.api.getRootProps());let n=t.querySelector('[data-scope="signature-pad"][data-part="label"]');n&&this.spreadProps(n,this.api.getLabelProps());let r=t.querySelector('[data-scope="signature-pad"][data-part="control"]');r&&this.spreadProps(r,this.api.getControlProps());let i=t.querySelector('[data-scope="signature-pad"][data-part="segment"]');i&&this.spreadProps(i,this.api.getSegmentProps());let a=t.querySelector('[data-scope="signature-pad"][data-part="guide"]');a&&this.spreadProps(a,this.api.getGuideProps());let o=t.querySelector('[data-scope="signature-pad"][data-part="clear-trigger"]');o&&this.spreadProps(o,this.api.getClearTriggerProps());let s=t.querySelector('[data-scope="signature-pad"][data-part="hidden-input"]');s&&this.spreadProps(s,this.api.getHiddenInputProps({value:this.api.paths.length>0?this.api.paths.join(` -`):""})),this.syncPaths()}},nk="phx-has-focused";ik={mounted(){var o;let e=this.el,t=this,n=this.pushEvent.bind(this);t.padTouched=!1;let r=()=>{t.padTouched=!0},i=rk(e,"defaultPaths");{let s=e.querySelector('[data-scope="signature-pad"][data-part="hidden-input"]');(String((o=s==null?void 0:s.value)!=null?o:"")!==""||i.length>0)&&(t.padTouched=!0,queueMicrotask(()=>{let l=e.querySelector('[data-scope="signature-pad"][data-part="hidden-input"]');l&&fu(l)}))}let a=new tk(e,v(p({id:e.id,name:V(e,"name")},i.length>0?{defaultPaths:i}:{}),{drawing:Fy(e),onDrawEnd:s=>{a.setPaths(s.paths),hu(e,()=>s.paths.length>0?s.paths.join(` -`):"",{onPadTouched:r}),s.getDataUrl("image/png").then(l=>{a.imageURL=l;let c=V(e,"onDrawEnd");c&&this.liveSocket.main.isConnected()&&n(c,{id:e.id,paths:s.paths,url:l});let d=V(e,"onDrawEndClient");d&&e.dispatchEvent(new CustomEvent(d,{bubbles:!0,detail:{id:e.id,paths:s.paths,url:l}}))})}}));a.init(),this.signaturePad=a,this.onClear=s=>{let{id:l}=s.detail;l&&l!==e.id||(a.api.clear(),hu(e,()=>"",{onPadTouched:r}))},e.addEventListener("corex:signature-pad:clear",this.onClear),this.handlers=[],this.handlers.push(this.handleEvent("signature_pad_clear",s=>{B(e.id,G(s))&&(a.api.clear(),hu(e,()=>"",{onPadTouched:r}))}))},updated(){var n,r;let e=this.el,t=V(e,"name");t&&((n=this.signaturePad)==null||n.setName(t)),(r=this.signaturePad)==null||r.updateProps({id:e.id,name:t,drawing:Fy(e)}),this.padTouched&&queueMicrotask(()=>{let i=this.el.querySelector('[data-scope="signature-pad"][data-part="hidden-input"]');i&&fu(i)})},destroyed(){var e;if(this.onClear&&this.el.removeEventListener("corex:signature-pad:clear",this.onClear),this.handlers)for(let t of this.handlers)this.removeHandleEvent(t);(e=this.signaturePad)==null||e.destroy()}}});var Yy={};fe(Yy,{Switch:()=>hk});function ck(e,t){let{context:n,send:r,prop:i,scope:a}=e,o=!!i("disabled"),s=!!i("readOnly"),l=!!i("required"),c=!!n.get("checked"),d=!o&&n.get("focused"),g=!o&&n.get("focusVisible"),h=!o&&n.get("active"),u={"data-active":E(h),"data-focus":E(d),"data-focus-visible":E(g),"data-readonly":E(s),"data-hover":E(n.get("hovered")),"data-disabled":E(o),"data-state":c?"checked":"unchecked","data-invalid":E(i("invalid")),"data-required":E(l)};return{checked:c,disabled:o,focused:d,setChecked(f){r({type:"CHECKED.SET",checked:f,isTrusted:!1})},toggleChecked(){r({type:"CHECKED.TOGGLE",checked:c,isTrusted:!1})},getRootProps(){return t.label(v(p(p({},fl.root.attrs),u),{dir:i("dir"),id:zy(a),htmlFor:vu(a),onPointerMove(){o||r({type:"CONTEXT.SET",context:{hovered:!0}})},onPointerLeave(){o||r({type:"CONTEXT.SET",context:{hovered:!1}})},onClick(f){var P;if(o)return;Q(f)===Zi(a)&&f.stopPropagation(),yt()&&((P=Zi(a))==null||P.focus())}}))},getLabelProps(){return t.element(v(p(p({},fl.label.attrs),u),{dir:i("dir"),id:Ky(a)}))},getThumbProps(){return t.element(v(p(p({},fl.thumb.attrs),u),{dir:i("dir"),id:ok(a),"aria-hidden":!0}))},getControlProps(){return t.element(v(p(p({},fl.control.attrs),u),{dir:i("dir"),id:sk(a),"aria-hidden":!0}))},getHiddenInputProps(){return t.input({id:vu(a),type:"checkbox",required:i("required"),defaultChecked:c,disabled:o,"aria-labelledby":Ky(a),"aria-invalid":i("invalid"),name:i("name"),form:i("form"),value:i("value"),style:dt,onFocus(){let f=ln();r({type:"CONTEXT.SET",context:{focused:!0,focusVisible:f}})},onBlur(){r({type:"CONTEXT.SET",context:{focused:!1,focusVisible:!1}})},onClick(f){if(s){f.preventDefault();return}let m=f.currentTarget.checked;r({type:"CHECKED.SET",checked:m,isTrusted:!0})}})}}}function gk(e,t){return{id:e.id,checked:t.checked}}var ak,fl,zy,Ky,ok,sk,vu,lk,Zi,jy,dk,uk,hk,Xy=ne(()=>{"use strict";Ln();_e();Ce();se();ak=j("switch").parts("root","label","control","thumb"),fl=ak.build(),zy=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`switch:${e.id}`},Ky=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`switch:${e.id}:label`},ok=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.thumb)!=null?n:`switch:${e.id}:thumb`},sk=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.control)!=null?n:`switch:${e.id}:control`},vu=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.hiddenInput)!=null?n:`switch:${e.id}:input`},lk=e=>e.getById(zy(e)),Zi=e=>e.getById(vu(e));({not:jy}=Te()),dk=te({props({props:e}){return p({defaultChecked:!1,label:"switch",value:"on"},e)},initialState(){return"ready"},context({prop:e,bindable:t}){return{checked:t(()=>({defaultValue:e("defaultChecked"),value:e("checked"),onChange(n){var r;(r=e("onCheckedChange"))==null||r({checked:n})}})),fieldsetDisabled:t(()=>({defaultValue:!1})),focusVisible:t(()=>({defaultValue:!1})),active:t(()=>({defaultValue:!1})),focused:t(()=>({defaultValue:!1})),hovered:t(()=>({defaultValue:!1}))}},computed:{isDisabled:({context:e,prop:t})=>t("disabled")||e.get("fieldsetDisabled")},watch({track:e,prop:t,context:n,action:r}){e([()=>t("disabled")],()=>{r(["removeFocusIfNeeded"])}),e([()=>n.get("checked")],()=>{r(["syncInputElement"])})},effects:["trackFormControlState","trackPressEvent","trackFocusVisible"],on:{"CHECKED.TOGGLE":[{guard:jy("isTrusted"),actions:["toggleChecked","dispatchChangeEvent"]},{actions:["toggleChecked"]}],"CHECKED.SET":[{guard:jy("isTrusted"),actions:["setChecked","dispatchChangeEvent"]},{actions:["setChecked"]}],"CONTEXT.SET":{actions:["setContext"]}},states:{ready:{}},implementations:{guards:{isTrusted:({event:e})=>!!e.isTrusted},effects:{trackPressEvent({computed:e,scope:t,context:n}){if(!e("isDisabled"))return Bo({pointerNode:lk(t),keyboardNode:Zi(t),isValidKey:r=>r.key===" ",onPress:()=>n.set("active",!1),onPressStart:()=>n.set("active",!0),onPressEnd:()=>n.set("active",!1)})},trackFocusVisible({computed:e,scope:t}){if(!e("isDisabled"))return Qe({root:t.getRootNode()})},trackFormControlState({context:e,send:t,scope:n}){return Rt(Zi(n),{onFieldsetDisabledChange(r){e.set("fieldsetDisabled",r)},onFormReset(){let r=e.initial("checked");t({type:"CHECKED.SET",checked:!!r,src:"form-reset"})}})}},actions:{setContext({context:e,event:t}){for(let n in t.context)e.set(n,t.context[n])},syncInputElement({context:e,scope:t}){let n=Zi(t);n&&ha(n,!!e.get("checked"))},removeFocusIfNeeded({context:e,prop:t}){t("disabled")&&e.set("focused",!1)},setChecked({context:e,event:t}){e.set("checked",t.checked)},toggleChecked({context:e}){e.set("checked",!e.get("checked"))},dispatchChangeEvent({context:e,scope:t}){queueMicrotask(()=>{let n=Zi(t);mi(n,{checked:e.get("checked")})})}}}}),uk=class extends X{initMachine(e){return new Y(dk,e)}initApi(){return this.zagConnect(ck)}render(){let e=this.el.querySelector('[data-scope="switch"][data-part="root"]');if(!e)return;this.spreadProps(e,this.api.getRootProps());let t=e.querySelector(':scope > [data-scope="switch"][data-part="hidden-input"]');t&&this.spreadProps(t,this.api.getHiddenInputProps()),e.querySelectorAll(':scope > [data-scope="switch"][data-part="label"]').forEach(r=>{this.spreadProps(r,this.api.getLabelProps())});let n=e.querySelector(':scope > [data-scope="switch"][data-part="control"]');if(n){this.spreadProps(n,this.api.getControlProps());let r=n.querySelector(':scope > [data-scope="switch"][data-part="thumb"]');r&&this.spreadProps(r,this.api.getThumbProps())}}};hk={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>J(this.liveSocket),r=new uk(e,v(p({id:e.id},I(e,"controlled")?{checked:en(e,"checked")===!0}:{defaultChecked:en(e,"defaultChecked")===!0}),{disabled:I(e,"disabled"),name:V(e,"name"),form:V(e,"form"),value:V(e,"value"),dir:U(e),invalid:I(e,"invalid"),required:I(e,"required"),readOnly:I(e,"readOnly"),onCheckedChange:o=>{K({el:e,canPushServer:n(),pushEvent:t,payload:gk(e,o),serverEventName:V(e,"onCheckedChange"),clientEventName:V(e,"onCheckedChangeClient")})}}));r.init(),this.zagSwitch=r;let i=de(e);this.domRegistry=i,i.add("corex:switch:set-checked",o=>{let{checked:s}=o.detail;r.api.setChecked(s)}),i.add("corex:switch:toggle-checked",()=>{r.api.toggleChecked()});let a=ce(this);this.handleRegistry=a,a.add("switch_set_checked",o=>{if(!B(e.id,G(o)))return;let s=Wo(o);typeof s=="boolean"&&r.api.setChecked(s)}),a.add("switch_toggle_checked",o=>{B(e.id,G(o))&&r.api.toggleChecked()}),a.add("switch_checked",o=>{B(e.id,G(o))&&n()&&this.pushEvent("switch_checked_response",{id:e.id,value:r.api.checked})}),a.add("switch_focused",o=>{B(e.id,G(o))&&n()&&this.pushEvent("switch_focused_response",{id:e.id,value:r.api.focused})}),a.add("switch_disabled",o=>{B(e.id,G(o))&&n()&&this.pushEvent("switch_disabled_response",{id:e.id,value:r.api.disabled})})},updated(){var e;(e=this.zagSwitch)==null||e.updateProps(v(p({id:this.el.id},I(this.el,"controlled")?{checked:en(this.el,"checked")===!0}:{defaultChecked:en(this.el,"defaultChecked")===!0}),{disabled:I(this.el,"disabled"),name:V(this.el,"name"),form:V(this.el,"form"),value:V(this.el,"value"),dir:U(this.el),invalid:I(this.el,"invalid"),required:I(this.el,"required"),readOnly:I(this.el,"readOnly")}))},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.zagSwitch)==null||n.destroy()}}});var tb={};fe(tb,{Tabs:()=>Vk});function Ck(e,t){let{state:n,send:r,context:i,prop:a,scope:o}=e,s=a("translations"),l=n.matches("focused"),c=a("orientation")==="vertical",d=a("orientation")==="horizontal",g=a("composite");function h(u){return{selected:i.get("value")===u.value,focused:i.get("focusedValue")===u.value,disabled:!!u.disabled}}return{value:i.get("value"),focusedValue:i.get("focusedValue"),setValue(u){r({type:"SET_VALUE",value:u})},clearValue(){r({type:"CLEAR_VALUE"})},setIndicatorRect(u){let f=ii(o,u);r({type:"SET_INDICATOR_RECT",id:f})},syncTabIndex(){r({type:"SYNC_TAB_INDEX"})},selectNext(u){r({type:"TAB_FOCUS",value:u,src:"selectNext"}),r({type:"ARROW_NEXT",src:"selectNext"})},selectPrev(u){r({type:"TAB_FOCUS",value:u,src:"selectPrev"}),r({type:"ARROW_PREV",src:"selectPrev"})},focus(){var f;let u=i.get("value");u&&((f=ml(o,u))==null||f.focus())},getRootProps(){return t.element(v(p({},eo.root.attrs),{id:fk(o),"data-orientation":a("orientation"),"data-focus":E(l),dir:a("dir")}))},getListProps(){return t.element(v(p({},eo.list.attrs),{id:to(o),role:"tablist",dir:a("dir"),"data-focus":E(l),"aria-orientation":a("orientation"),"data-orientation":a("orientation"),"aria-label":s==null?void 0:s.listLabel,onKeyDown(u){if(u.defaultPrevented||$e(u)||!ge(u.currentTarget,Q(u)))return;let f={ArrowDown(){d||r({type:"ARROW_NEXT",key:"ArrowDown"})},ArrowUp(){d||r({type:"ARROW_PREV",key:"ArrowUp"})},ArrowLeft(){c||r({type:"ARROW_PREV",key:"ArrowLeft"})},ArrowRight(){c||r({type:"ARROW_NEXT",key:"ArrowRight"})},Home(){r({type:"HOME"})},End(){r({type:"END"})}},m=ve(u,{dir:a("dir"),orientation:a("orientation")}),P=f[m];if(P){u.preventDefault(),P(u);return}}}))},getTriggerState:h,getTriggerProps(u){let{value:f,disabled:m}=u,P=h(u);return t.button(v(p({},eo.trigger.attrs),{role:"tab",type:"button",disabled:m,dir:a("dir"),"data-orientation":a("orientation"),"data-disabled":E(m),"aria-disabled":m,"data-value":f,"aria-selected":P.selected,"data-selected":E(P.selected),"data-focus":E(P.focused),"aria-controls":P.selected?yu(o,f):void 0,"data-ownedby":to(o),"data-ssr":E(i.get("ssr")),id:ii(o,f),tabIndex:P.selected&&g?0:-1,onFocus(){r({type:"TAB_FOCUS",value:f})},onBlur(C){let x=C.relatedTarget;(x==null?void 0:x.getAttribute("role"))!=="tab"&&r({type:"TAB_BLUR"})},onClick(C){C.defaultPrevented||Vn(C)||m||(yt()&&C.currentTarget.focus(),r({type:"TAB_CLICK",value:f}))}}))},getContentProps(u){let{value:f}=u,m=i.get("value")===f;return t.element(v(p({},eo.content.attrs),{dir:a("dir"),id:yu(o,f),tabIndex:g?0:-1,"aria-labelledby":ii(o,f),role:"tabpanel","data-ownedby":to(o),"data-selected":E(m),"data-orientation":a("orientation"),hidden:!m}))},getIndicatorProps(){let u=i.get("indicatorRect"),f=i.get("animateIndicator");return t.element(v(p({id:Qy(o)},eo.indicator.attrs),{dir:a("dir"),"data-orientation":a("orientation"),hidden:Ik(u),onTransitionEnd(m){Q(m)===m.currentTarget&&r({type:"INDICATOR_TRANSITION_END"})},style:{"--transition-property":"left, right, top, bottom, width, height","--left":Re(u==null?void 0:u.x),"--top":Re(u==null?void 0:u.y),"--width":Re(u==null?void 0:u.width),"--height":Re(u==null?void 0:u.height),position:"absolute",willChange:f?"var(--transition-property)":"auto",transitionProperty:f?"var(--transition-property)":"none",transitionDuration:f?"var(--transition-duration, 150ms)":"0ms",transitionTimingFunction:"var(--transition-timing-function)",[d?"left":"top"]:d?"var(--left)":"var(--top)"}}))}}}function Jy(e){return{root:`tabs-${e}-root`,list:`tabs-${e}-list`,indicator:`tabs-${e}-indicator`,content:t=>`tabs-${e}-content-${t}`,trigger:t=>`tabs-${e}-trigger-${t}`}}var pk,eo,fk,to,yu,ii,Qy,mk,vk,ml,Zy,Ji,yk,bk,Ek,Sk,eb,Pk,Ik,Tk,wk,Ok,Vk,nb=ne(()=>{"use strict";Nt();_e();Ce();se();pk=j("tabs").parts("root","list","trigger","content","indicator"),eo=pk.build(),fk=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`tabs:${e.id}`},to=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.list)!=null?n:`tabs:${e.id}:list`},yu=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.content)==null?void 0:r.call(n,t))!=null?i:`tabs:${e.id}:content-${t}`},ii=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.trigger)==null?void 0:r.call(n,t))!=null?i:`tabs:${e.id}:trigger-${t}`},Qy=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.indicator)!=null?n:`tabs:${e.id}:indicator`},mk=e=>e.getById(to(e)),vk=(e,t)=>e.getById(yu(e,t)),ml=(e,t)=>t!=null?e.getById(ii(e,t)):null,Zy=e=>e.getById(Qy(e)),Ji=e=>{let n=`[role=tab][data-ownedby='${CSS.escape(to(e))}']:not([disabled])`;return xe(mk(e),n)},yk=e=>Tt(Ji(e)),bk=e=>qt(Ji(e)),Ek=(e,t)=>Ei(Ji(e),ii(e,t.value),t.loopFocus),Sk=(e,t)=>Si(Ji(e),ii(e,t.value),t.loopFocus),eb=e=>{var t,n,r,i;return{x:(t=e==null?void 0:e.offsetLeft)!=null?t:0,y:(n=e==null?void 0:e.offsetTop)!=null?n:0,width:(r=e==null?void 0:e.offsetWidth)!=null?r:0,height:(i=e==null?void 0:e.offsetHeight)!=null?i:0}},Pk=(e,t)=>{let n=Jl(Ji(e),ii(e,t));return eb(n)};Ik=e=>e==null||e.width===0&&e.height===0&&e.x===0&&e.y===0,{createMachine:Tk}=Ot(),wk=Tk({props({props:e}){return p({dir:"ltr",orientation:"horizontal",activationMode:"automatic",loopFocus:!0,composite:!0,navigate(t){yi(t.node)},defaultValue:null},e)},initialState(){return"idle"},context({prop:e,bindable:t}){return{value:t(()=>({defaultValue:e("defaultValue"),value:e("value"),onChange(n){var r;(r=e("onValueChange"))==null||r({value:n})}})),focusedValue:t(()=>({defaultValue:e("value")||e("defaultValue"),sync:!0,onChange(n){var r;(r=e("onFocusChange"))==null||r({focusedValue:n})}})),ssr:t(()=>({defaultValue:!0})),indicatorRect:t(()=>({defaultValue:null})),animateIndicator:t(()=>({defaultValue:!1}))}},refs(){return{indicatorCleanup:null,prevValue:null}},watch({context:e,prop:t,track:n,action:r}){n([()=>e.get("value")],()=>{r(["syncIndicatorAnimation","syncIndicatorRect","syncTabIndex","navigateIfNeeded"])}),n([()=>t("dir"),()=>t("orientation")],()=>{r(["syncIndicatorRect"])})},on:{SET_VALUE:{actions:["setValue"]},CLEAR_VALUE:{actions:["clearValue"]},SET_INDICATOR_RECT:{actions:["setIndicatorRect"]},SYNC_TAB_INDEX:{actions:["syncTabIndex"]},INDICATOR_TRANSITION_END:{actions:["clearIndicatorAnimation"]}},entry:["syncPrevValue","syncIndicatorRect","syncTabIndex","syncSsr"],exit:["cleanupObserver"],states:{idle:{on:{TAB_FOCUS:{target:"focused",actions:["setFocusedValue"]},TAB_CLICK:{target:"focused",actions:["setFocusedValue","setValue"]}}},focused:{on:{TAB_CLICK:{actions:["setFocusedValue","setValue"]},ARROW_PREV:[{guard:"selectOnFocus",actions:["focusPrevTab","selectFocusedTab"]},{actions:["focusPrevTab"]}],ARROW_NEXT:[{guard:"selectOnFocus",actions:["focusNextTab","selectFocusedTab"]},{actions:["focusNextTab"]}],HOME:[{guard:"selectOnFocus",actions:["focusFirstTab","selectFocusedTab"]},{actions:["focusFirstTab"]}],END:[{guard:"selectOnFocus",actions:["focusLastTab","selectFocusedTab"]},{actions:["focusLastTab"]}],TAB_FOCUS:{actions:["setFocusedValue"]},TAB_BLUR:{target:"idle",actions:["clearFocusedValue"]}}}},implementations:{guards:{selectOnFocus:({prop:e})=>e("activationMode")==="automatic"},actions:{selectFocusedTab({context:e,prop:t}){$(()=>{let n=e.get("focusedValue");if(!n)return;let i=t("deselectable")&&e.get("value")===n?null:n;e.set("value",i)})},setFocusedValue({context:e,event:t,flush:n}){t.value!=null&&n(()=>{e.set("focusedValue",t.value)})},clearFocusedValue({context:e}){e.set("focusedValue",null)},setValue({context:e,event:t,prop:n}){let r=n("deselectable")&&e.get("value")===e.get("focusedValue");e.set("value",r?null:t.value)},clearValue({context:e}){e.set("value",null)},focusFirstTab({scope:e}){$(()=>{var t;(t=yk(e))==null||t.focus()})},focusLastTab({scope:e}){$(()=>{var t;(t=bk(e))==null||t.focus()})},focusNextTab({context:e,prop:t,scope:n,event:r}){var o;let i=(o=r.value)!=null?o:e.get("focusedValue");if(!i)return;let a=Ek(n,{value:i,loopFocus:t("loopFocus")});$(()=>{t("composite")?a==null||a.focus():(a==null?void 0:a.dataset.value)!=null&&e.set("focusedValue",a.dataset.value)})},focusPrevTab({context:e,prop:t,scope:n,event:r}){var o;let i=(o=r.value)!=null?o:e.get("focusedValue");if(!i)return;let a=Sk(n,{value:i,loopFocus:t("loopFocus")});$(()=>{t("composite")?a==null||a.focus():(a==null?void 0:a.dataset.value)!=null&&e.set("focusedValue",a.dataset.value)})},syncTabIndex({context:e,scope:t}){$(()=>{let n=e.get("value");if(!n)return;let r=vk(t,n);if(!r)return;pa(r).length>0?r.removeAttribute("tabindex"):r.setAttribute("tabindex","0")})},cleanupObserver({refs:e}){let t=e.get("indicatorCleanup");t&&t()},setIndicatorRect({context:e,event:t,scope:n}){var o;let r=(o=t.id)!=null?o:e.get("value");!Zy(n)||!r||!ml(n,r)||e.set("indicatorRect",Pk(n,r))},syncSsr({context:e}){e.set("ssr",!1)},syncPrevValue({context:e,refs:t}){t.set("prevValue",e.get("value"))},syncIndicatorAnimation({context:e,refs:t}){let n=t.get("prevValue"),r=e.get("value"),i=n!=null&&r!=null&&n!==r;e.set("animateIndicator",i),t.set("prevValue",r)},clearIndicatorAnimation({context:e}){e.set("animateIndicator",!1)},syncIndicatorRect({context:e,refs:t,scope:n}){let r=t.get("indicatorCleanup");if(r&&r(),!Zy(n))return;let a=()=>{let l=ml(n,e.get("value"));if(!l)return;let c=eb(l);e.set("indicatorRect",d=>Ie(d,c)?d:c)};a();let o=Ji(n),s=vt(...o.map(l=>kn.observe(l,a)));t.set("indicatorCleanup",s)},navigateIfNeeded({context:e,prop:t,scope:n}){var a;let r=e.get("value");if(!r)return;let i=ml(n,r);Vt(i)&&((a=t("navigate"))==null||a({value:r,node:i,href:i.href}))}}}});Ok=class extends X{constructor(){super(...arguments);Z(this,"updateProps",t=>{var i;let n=t,r=(i=n.id)!=null?i:this.el.id;this.machine.updateProps(v(p({},n),{id:r,ids:Jy(r)}))})}initMachine(t){var r;let n=(r=t.id)!=null?r:this.el.id;return new Y(wk,v(p({},t),{id:n,ids:Jy(n)}))}initApi(){return this.zagConnect(Ck)}render(){let t=this.el.querySelector('[data-scope="tabs"][data-part="root"]');if(!t)return;this.spreadProps(t,this.api.getRootProps());let n=t.querySelector(':scope > [data-scope="tabs"][data-part="list"]');if(!n)return;this.spreadProps(n,this.api.getListProps()),n.querySelectorAll(':scope > [data-scope="tabs"][data-part="trigger"]').forEach(a=>{let o=a.dataset.value,s=a.dataset.disabled=="";o&&this.spreadProps(a,this.api.getTriggerProps({value:o,disabled:s}))}),t.querySelectorAll(':scope > [data-scope="tabs"][data-part="content"]').forEach(a=>{let o=a.dataset.value;o&&this.spreadProps(a,this.api.getContentProps({value:o}))})}},Vk={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>J(this.liveSocket),r=new Ok(e,v(p({id:e.id},I(e,"controlled")?{value:V(e,"value")}:{defaultValue:V(e,"defaultValue")}),{orientation:V(e,"orientation"),dir:V(e,"dir"),onValueChange:o=>{var s;K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,value:(s=o.value)!=null?s:null},serverEventName:V(e,"onValueChange"),clientEventName:V(e,"onValueChangeClient")})},onFocusChange:o=>{var s;K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,value:(s=o.focusedValue)!=null?s:null},serverEventName:V(e,"onFocusChange"),clientEventName:V(e,"onFocusChangeClient")})}}));r.init(),this.tabs=r;let i=de(e);this.domRegistry=i,i.add("corex:tabs:set-value",o=>{r.api.setValue(o.detail.value)});let a=ce(this);this.handleRegistry=a,a.add("tabs_set_value",o=>{B(e.id,G(o))&&r.api.setValue(o.value)}),a.add("tabs_value",o=>{B(e.id,G(o))&&n()&&this.pushEvent("tabs_value_response",{id:e.id,value:r.api.value})}),a.add("tabs_focused_value",o=>{B(e.id,G(o))&&n()&&this.pushEvent("tabs_focused_value_response",{id:e.id,value:r.api.focusedValue})})},updated(){var e;(e=this.tabs)==null||e.updateProps(v(p({id:this.el.id},I(this.el,"controlled")?{value:V(this.el,"value")}:{defaultValue:V(this.el,"defaultValue")}),{orientation:V(this.el,"orientation"),dir:V(this.el,"dir")}))},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.tabs)==null||n.destroy()}}});var ab={};fe(ab,{Timer:()=>$k});function kk(e,t){let{state:n,send:r,computed:i,scope:a,prop:o}=e,s=o("translations"),l=n.matches("running"),c=n.matches("paused"),d=i("time"),g=i("formattedTime"),h=i("progressPercent");return{running:l,paused:c,time:d,formattedTime:g,progressPercent:h,start(){r({type:"START"})},pause(){r({type:"PAUSE"})},resume(){r({type:"RESUME"})},reset(){r({type:"RESET"})},restart(){r({type:"RESTART"})},getRootProps(){return t.element(p({id:Ak(a)},Cr.root.attrs))},getAreaProps(){var u;return t.element(p({role:"timer",id:Rk(a),"aria-label":(u=s.areaLabel)==null?void 0:u.call(s,d,g),"aria-atomic":!0},Cr.area.attrs))},getControlProps(){return t.element(p({},Cr.control.attrs))},getItemProps(u){let f=d[u.type];return t.element(v(p({},Cr.item.attrs),{"data-type":u.type,style:{"--value":f}}))},getItemLabelProps(u){return t.element(v(p({},Cr.itemLabel.attrs),{"data-type":u.type}))},getItemValueProps(u){return t.element(v(p({},Cr.itemValue.attrs),{"data-type":u.type}))},getSeparatorProps(){return t.element(p({"aria-hidden":!0},Cr.separator.attrs))},getActionTriggerProps(u){if(!rb.has(u.action))throw new Error(`[zag-js] Invalid action: ${u.action}. Must be one of: ${Array.from(rb).join(", ")}`);return t.button(v(p({},Cr.actionTrigger.attrs),{hidden:Me(u.action,{start:()=>l||c,pause:()=>!l,reset:()=>!l&&!c,resume:()=>!c,restart:()=>!1}),type:"button",onClick(f){f.defaultPrevented||r({type:u.action.toUpperCase()})}}))}}}function Dk(e){let t=Math.max(0,e),n=t%1e3,r=Math.floor(t/1e3)%60,i=Math.floor(t/(1e3*60))%60,a=Math.floor(t/(1e3*60*60))%24;return{days:Math.floor(t/(1e3*60*60*24)),hours:a,minutes:i,seconds:r,milliseconds:n}}function ib(e,t,n){let r=n-t;return r===0?0:(e-t)/r}function no(e,t=2){return e.toString().padStart(t,"0")}function Lk(e,t){return Math.floor(e/t)*t}function Mk(e){let{days:t,hours:n,minutes:r,seconds:i}=e;return{days:no(t),hours:no(n),minutes:no(r),seconds:no(i),milliseconds:no(e.milliseconds,3)}}function Fk(e){let{startMs:t,targetMs:n,countdown:r,interval:i}=e;if(i!=null&&(typeof i!="number"||i<=0))throw new Error(`[timer] Invalid interval: ${i}. Must be a positive number.`);if(t!=null&&(typeof t!="number"||t<0))throw new Error(`[timer] Invalid startMs: ${t}. Must be a non-negative number.`);if(n!=null&&(typeof n!="number"||n<0))throw new Error(`[timer] Invalid targetMs: ${n}. Must be a non-negative number.`);if(r&&t!=null&&n!=null&&t<=n)throw new Error(`[timer] Invalid countdown configuration: startMs (${t}) must be greater than targetMs (${n}).`);if(!r&&t!=null&&n!=null&&t>=n)throw new Error(`[timer] Invalid stopwatch configuration: startMs (${t}) must be less than targetMs (${n}).`);if(r&&n==null&&t!=null&&t<=0)throw new Error(`[timer] Invalid countdown configuration: startMs (${t}) must be greater than 0 when no targetMs is provided.`)}var xk,Cr,Ak,Rk,rb,Nk,_k,$k,ob=ne(()=>{"use strict";Ms();ds();Nt();se();xk=j("timer").parts("root","area","control","item","itemValue","itemLabel","actionTrigger","separator"),Cr=xk.build(),Ak=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`timer:${e.id}:root`},Rk=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.area)!=null?n:`timer:${e.id}:area`},rb=new Set(["start","pause","resume","reset","restart"]);Nk=te({props({props:e}){return Fk(e),v(p({interval:1e3,startMs:0},e),{translations:p({areaLabel:(t,n)=>`${t.days} days ${n.hours}:${n.minutes}:${n.seconds}`},e.translations)})},initialState({prop:e}){return e("autoStart")?"running":"idle"},context({prop:e,bindable:t}){return{currentMs:t(()=>({defaultValue:e("startMs")}))}},watch({track:e,send:t,prop:n}){e([()=>n("startMs")],()=>{t({type:"RESTART"})})},on:{RESTART:{target:"running:temp",actions:["resetTime"]}},computed:{time:({context:e})=>Dk(e.get("currentMs")),formattedTime:({computed:e})=>Mk(e("time")),progressPercent:Gr(({context:e,prop:t})=>[e.get("currentMs"),t("targetMs"),t("startMs"),t("countdown")],([e,t=0,n,r])=>{let i=r?ib(e,t,n):ib(e,n,t);return Oe(i,0,1)})},states:{idle:{on:{START:{target:"running"},RESET:{actions:["resetTime"]}}},"running:temp":{effects:["waitForNextTick"],on:{CONTINUE:{target:"running"}}},running:{effects:["keepTicking"],on:{PAUSE:{target:"paused"},TICK:[{target:"idle",guard:"hasReachedTarget",actions:["invokeOnComplete"]},{actions:["updateTime","invokeOnTick"]}],RESET:{actions:["resetTime"]}}},paused:{on:{RESUME:{target:"running"},RESET:{target:"idle",actions:["resetTime"]}}}},implementations:{effects:{keepTicking({prop:e,send:t}){return Fh(({deltaMs:n})=>{t({type:"TICK",deltaMs:n})},e("interval"))},waitForNextTick({send:e}){return cr(()=>{e({type:"CONTINUE"})},0)}},actions:{updateTime({context:e,prop:t,event:n}){let r=t("countdown")?-1:1,i=Lk(n.deltaMs,t("interval"));e.set("currentMs",a=>{let o=a+r*i,s=t("targetMs");return s==null&&t("countdown")&&(s=0),t("countdown")&&s!=null?Math.max(o,s):!t("countdown")&&s!=null?Math.min(o,s):o})},resetTime({context:e,prop:t}){var r;let n=t("targetMs");n==null&&t("countdown")&&(n=0),e.set("currentMs",(r=t("startMs"))!=null?r:0)},invokeOnTick({context:e,prop:t,computed:n}){var r;(r=t("onTick"))==null||r({value:e.get("currentMs"),time:n("time"),formattedTime:n("formattedTime")})},invokeOnComplete({prop:e}){var t;(t=e("onComplete"))==null||t()}},guards:{hasReachedTarget:({context:e,prop:t})=>{let n=t("targetMs");if(n==null&&t("countdown")&&(n=0),n==null)return!1;let r=e.get("currentMs");return t("countdown")?r<=n:r>=n}}}});_k=class extends X{constructor(){super(...arguments);Z(this,"init",()=>{this.machine.subscribe(()=>{this.api=this.initApi(),this.render()}),this.machine.start(),this.api=this.initApi(),this.render()})}initMachine(t){return new Y(Nk,t)}initApi(){return this.zagConnect(kk)}render(){var o;let t=(o=this.el.querySelector('[data-scope="timer"][data-part="root"]'))!=null?o:this.el;this.spreadProps(t,this.api.getRootProps());let n=this.el.querySelector('[data-scope="timer"][data-part="area"]');n&&this.spreadProps(n,this.api.getAreaProps());let r=this.el.querySelector('[data-scope="timer"][data-part="control"]');r&&this.spreadProps(r,this.api.getControlProps()),["days","hours","minutes","seconds"].forEach(s=>{let l=this.el.querySelector(`[data-scope="timer"][data-part="item"][data-type="${s}"]`);l&&this.spreadProps(l,this.api.getItemProps({type:s}))}),this.el.querySelectorAll('[data-scope="timer"][data-part="separator"]').forEach(s=>{this.spreadProps(s,this.api.getSeparatorProps())}),["start","pause","resume","reset"].forEach(s=>{let l=this.el.querySelector(`[data-scope="timer"][data-part="action-trigger"][data-action="${s}"]`);l&&this.spreadProps(l,this.api.getActionTriggerProps({action:s}))})}},$k={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=new _k(e,{id:e.id,countdown:I(e,"countdown"),startMs:q(e,"startMs"),targetMs:q(e,"targetMs"),autoStart:I(e,"autoStart"),interval:q(e,"interval"),dir:U(e),orientation:V(e,"orientation"),onTick:r=>{let i=V(e,"onTick");i&&J(this.liveSocket)&&t(i,{value:r.value,time:r.time,formattedTime:r.formattedTime,id:e.id});let a=V(e,"onTickClient");a&&e.dispatchEvent(new CustomEvent(a,{bubbles:!0,detail:{id:e.id,value:r.value,time:r.time,formattedTime:r.formattedTime}}))},onComplete:()=>{let r=V(e,"onComplete");r&&J(this.liveSocket)&&t(r,{id:e.id});let i=V(e,"onCompleteClient");i&&e.dispatchEvent(new CustomEvent(i,{bubbles:!0,detail:{id:e.id}}))}});n.init(),this.timer=n,this.handlers=[]},updated(){var e;(e=this.timer)==null||e.updateProps({id:this.el.id,countdown:I(this.el,"countdown"),startMs:q(this.el,"startMs"),targetMs:q(this.el,"targetMs"),autoStart:I(this.el,"autoStart"),interval:q(this.el,"interval"),dir:U(this.el),orientation:V(this.el,"orientation")})},destroyed(){var e;if(this.handlers)for(let t of this.handlers)this.removeHandleEvent(t);(e=this.timer)==null||e.destroy()}}});var vb={};fe(vb,{Toast:()=>uN});function bu(e,t){var n;return(n=e!=null?e:ub[t])!=null?n:ub.DEFAULT}function qk(e,t){var m;let{prop:n,computed:r,context:i}=e,{offsets:a,gap:o}=n("store").attrs,s=i.get("heights"),l=Uk(a),c=n("dir")==="rtl",d=t.replace("-start",c?"-right":"-left").replace("-end",c?"-left":"-right"),g=d.includes("right"),h=d.includes("left"),u={position:"fixed",pointerEvents:r("count")>0?void 0:"none",display:"flex",flexDirection:"column","--gap":`${o}px`,"--first-height":`${((m=s[0])==null?void 0:m.height)||0}px`,"--viewport-offset-left":l.left,"--viewport-offset-right":l.right,"--viewport-offset-top":l.top,"--viewport-offset-bottom":l.bottom,zIndex:ko},f="center";if(g&&(f="flex-end"),h&&(f="flex-start"),u.alignItems=f,d.includes("top")){let P=l.top;u.top=`max(env(safe-area-inset-top, 0px), ${P})`}if(d.includes("bottom")){let P=l.bottom;u.bottom=`max(env(safe-area-inset-bottom, 0px), ${P})`}if(!d.includes("left")){let P=l.right;u.insetInlineEnd=`calc(env(safe-area-inset-right, 0px) + ${P})`}if(!d.includes("right")){let P=l.left;u.insetInlineStart=`calc(env(safe-area-inset-left, 0px) + ${P})`}return u}function Wk(e,t){let{prop:n,context:r,computed:i}=e,a=n("parent"),o=a.computed("placement"),{gap:s}=a.prop("store").attrs,[l]=o.split("-"),c=r.get("mounted"),d=r.get("remainingTime"),g=i("height"),h=i("frontmost"),u=!h,f=!n("stacked"),m=n("stacked"),C=n("type")==="loading"?Number.MAX_SAFE_INTEGER:d,x=i("heightIndex")*s+i("heightBefore"),T={position:"absolute",pointerEvents:"auto","--opacity":"0","--remove-delay":`${n("removeDelay")}ms`,"--duration":`${C}ms`,"--initial-height":`${g}px`,"--offset":`${x}px`,"--index":n("index"),"--z-index":i("zIndex"),"--lift-amount":"calc(var(--lift) * var(--gap))","--y":"100%","--x":"0"},b=y=>Object.assign(T,y);return l==="top"?b({top:"0","--sign":"-1","--y":"-100%","--lift":"1"}):l==="bottom"&&b({bottom:"0","--sign":"1","--y":"100%","--lift":"-1"}),c&&(b({"--y":"0","--opacity":"1"}),m&&b({"--y":"calc(var(--lift) * var(--offset))","--height":"var(--initial-height)"})),t||b({"--opacity":"0",pointerEvents:"none"}),u&&f&&(b({"--base-scale":"var(--index) * 0.05 + 1","--y":"calc(var(--lift-amount) * var(--index))","--scale":"calc(-1 * var(--base-scale))","--height":"var(--first-height)"}),t||b({"--y":"calc(var(--sign) * 40%)"})),u&&m&&!t&&b({"--y":"calc(var(--lift) * var(--offset) + var(--lift) * -100%)"}),h&&!t&&b({"--y":"calc(var(--lift) * -100%)"}),T}function Kk(e,t){let{computed:n}=e,r={position:"absolute",inset:"0",scale:"1 2",pointerEvents:t?"none":"auto"},i=a=>Object.assign(r,a);return n("frontmost")&&!t&&i({height:"calc(var(--initial-height) + 80%)"}),r}function jk(){return{position:"absolute",left:"0",height:"calc(var(--gap) + 2px)",bottom:"100%",width:"100%"}}function zk(e,t){let{context:n,prop:r,send:i,refs:a,computed:o}=e;return{getCount(){return n.get("toasts").length},getToasts(){return n.get("toasts")},getGroupProps(s={}){let{label:l="Notifications"}=s,{hotkey:c}=r("store").attrs,d=c.join("+").replace(/Key/g,"").replace(/Digit/g,""),g=o("placement"),[h,u="center"]=g.split("-");return t.element(v(p({},Qi.group.attrs),{dir:r("dir"),tabIndex:-1,role:"region","aria-label":`${l}, ${g} (${d})`,id:Bk(g),"data-placement":g,"data-side":h,"data-align":u,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",style:qk(e,g),onMouseEnter(){a.get("ignoreMouseTimer").isActive()||i({type:"REGION.POINTER_ENTER",placement:g})},onMouseMove(){a.get("ignoreMouseTimer").isActive()||i({type:"REGION.POINTER_ENTER",placement:g})},onMouseLeave(){a.get("ignoreMouseTimer").isActive()||i({type:"REGION.POINTER_LEAVE",placement:g})},onFocus(f){i({type:"REGION.FOCUS",target:f.relatedTarget})},onBlur(f){a.get("isFocusWithin")&&!ge(f.currentTarget,f.relatedTarget)&&queueMicrotask(()=>i({type:"REGION.BLUR"}))}}))},subscribe(s){return r("store").subscribe(()=>s(n.get("toasts")))}}}function Qk(e,t){let{state:n,send:r,prop:i,scope:a,context:o,computed:s}=e,l=i("translations"),c=n.hasTag("visible"),d=n.hasTag("paused"),g=o.get("mounted"),h=s("frontmost"),u=i("parent").computed("placement"),f=i("type"),m=i("stacked"),P=i("title"),C=i("description"),x=i("action"),[T,b="center"]=u.split("-");return{type:f,title:P,description:C,placement:u,visible:c,paused:d,closable:!!i("closable"),pause(){r({type:"PAUSE"})},resume(){r({type:"RESUME"})},dismiss(){r({type:"DISMISS",src:"programmatic"})},getRootProps(){return t.element(v(p({},Qi.root.attrs),{dir:i("dir"),id:fb(a),"data-state":c?"open":"closed","data-type":f,"data-placement":u,"data-align":b,"data-side":T,"data-mounted":E(g),"data-paused":E(d),"data-first":E(h),"data-sibling":E(!h),"data-stack":E(m),"data-overlap":E(!m),role:"status","aria-atomic":"true","aria-describedby":C?db(a):void 0,"aria-labelledby":P?cb(a):void 0,tabIndex:0,style:Wk(e,c),onKeyDown(y){y.defaultPrevented||y.key=="Escape"&&(r({type:"DISMISS",src:"keyboard"}),y.preventDefault())}}))},getGhostBeforeProps(){return t.element({"data-ghost":"before",style:Kk(e,c)})},getGhostAfterProps(){return t.element({"data-ghost":"after",style:jk()})},getTitleProps(){return t.element(v(p({},Qi.title.attrs),{id:cb(a)}))},getDescriptionProps(){return t.element(v(p({},Qi.description.attrs),{id:db(a)}))},getActionTriggerProps(){return t.button(v(p({},Qi.actionTrigger.attrs),{type:"button",onClick(y){var S;y.defaultPrevented||((S=x==null?void 0:x.onClick)==null||S.call(x),r({type:"DISMISS",src:"user"}))}}))},getCloseTriggerProps(){return t.button(v(p({id:Gk(a)},Qi.closeTrigger.attrs),{type:"button","aria-label":l==null?void 0:l.closeTriggerLabel,onClick(y){y.defaultPrevented||r({type:"DISMISS",src:"user"})}}))}}}function gb(e,t){let{id:n,height:r}=t;e.context.set("heights",i=>i.find(o=>o.id===n)?i.map(o=>o.id===n?v(p({},o),{height:r}):o):[{id:n,height:r},...i])}function aN(e={}){let t=nN(e,{placement:"bottom",overlap:!1,max:24,gap:16,offsets:"1rem",hotkey:["altKey","KeyT"],removeDelay:200,pauseOnPageIdle:!0}),n=[],r=[],i=new Set,a=[],o=R=>(n.push(R),()=>{let D=n.indexOf(R);n.splice(D,1)}),s=R=>(n.forEach(D=>D(R)),R),l=R=>{if(r.length>=t.max){a.push(R);return}s(R),r.unshift(R)},c=()=>{for(a=iN(a);a.length>0&&r.length{var ee,ue;let D=(ee=R.id)!=null?ee:`toast:${la()}`,W=r.find(z=>z.id===D);if(i.has(D)&&i.delete(D),W)r=r.map(z=>z.id===D?s(v(p(p({},z),R),{id:D})):z);else{let z=v(p({id:D,duration:t.duration,removeDelay:t.removeDelay,type:mb},R),{stacked:!t.overlap,gap:t.gap}),le=(ue=z.priority)!=null?ue:Eu(z.type,!!z.action);l(v(p({},z),{priority:le}))}return D},g=R=>(i.add(R),R?(n.forEach(D=>D({id:R,dismiss:!0})),r=r.filter(D=>D.id!==R),c()):(r.forEach(D=>{n.forEach(W=>W({id:D.id,dismiss:!0}))}),r=[],a=[]),R);return{attrs:t,subscribe:o,create:d,update:(R,D)=>d(p({id:R},D)),remove:g,dismiss:R=>{R!=null?r=r.map(D=>D.id===R?s(v(p({},D),{message:"DISMISS"})):D):r=r.map(D=>s(v(p({},D),{message:"DISMISS"})))},error:R=>d(v(p({},R),{type:"error"})),success:R=>d(v(p({},R),{type:"success"})),info:R=>d(v(p({},R),{type:"info"})),warning:R=>d(v(p({},R),{type:"warning"})),loading:R=>d(v(p({},R),{type:"loading"})),getVisibleToasts:()=>r.filter(R=>!i.has(R.id)),getCount:()=>r.length,promise:(R,D,W={})=>{if(!D||!D.loading){Ut("[zag-js > toast] toaster.promise() requires at least a 'loading' option to be specified");return}let ee=d(v(p(p({},W),D.loading),{promise:R,type:"loading"})),ue=!0,z,le=In(R).then(ae=>Ge(null,null,function*(){var De;if(z=["resolve",ae],oN(ae)&&!ae.ok){ue=!1;let Le=In(D.error,`HTTP Error! status: ${ae.status}`);d(v(p(p({},W),Le),{id:ee,type:"error"}))}else if(D.success!==void 0){ue=!1;let Le=In(D.success,ae);d(v(p(p({},W),Le),{id:ee,type:(De=Le.type)!=null?De:"success"}))}})).catch(ae=>Ge(null,null,function*(){if(z=["reject",ae],D.error!==void 0){ue=!1;let De=In(D.error,ae);d(v(p(p({},W),De),{id:ee,type:"error"}))}})).finally(()=>{var ae;ue&&g(ee),(ae=D.finally)==null||ae.call(D)});return{id:ee,unwrap:()=>new Promise((ae,De)=>le.then(()=>z[0]==="reject"?De(z[1]):ae(z[1])).catch(De))}},pause:R=>{R!=null?r=r.map(D=>D.id===R?s(v(p({},D),{message:"PAUSE"})):D):r=r.map(D=>s(v(p({},D),{message:"PAUSE"})))},resume:R=>{R!=null?r=r.map(D=>D.id===R?s(v(p({},D),{message:"RESUME"})):D):r=r.map(D=>s(v(p({},D),{message:"RESUME"})))},isVisible:R=>!i.has(R)&&!!r.find(D=>D.id===R),isDismissed:R=>i.has(R),expand:()=>{r=r.map(R=>s(v(p({},R),{stacked:!0})))},collapse:()=>{r=r.map(R=>s(v(p({},R),{stacked:!1})))}}}function dN(e,t){var a,o,s;let n=(a=t==null?void 0:t.id)!=null?a:e.id,r=(s=t==null?void 0:t.store)!=null?s:aN({placement:(o=t==null?void 0:t.placement)!=null?o:"bottom",overlap:t==null?void 0:t.overlap,max:t==null?void 0:t.max,gap:t==null?void 0:t.gap,offsets:t==null?void 0:t.offsets,pauseOnPageIdle:t==null?void 0:t.pauseOnPageIdle}),i=new cN(e,{id:n,store:r,dir:U(e)});return i.init(),sN.set(n,i),Su.set(n,r),e.dataset.toastGroup="true",e.dataset.toastGroupId=n,{group:i,store:r}}function ro(e){if(e)return Su.get(e);let t=document.querySelector("[data-toast-group]");if(!t)return;let n=t.dataset.toastGroupId||t.id;return n?Su.get(n):void 0}var Hk,Qi,Bk,sb,fb,lb,cb,db,Gk,ub,Uk,Yk,Xk,Zk,Jk,eN,tN,nN,rN,mb,Eu,iN,oN,hb,sN,Su,lN,cN,pb,uN,yb=ne(()=>{"use strict";gr();gn();ds();se();Hk=j("toast").parts("group","root","title","description","actionTrigger","closeTrigger"),Qi=Hk.build(),Bk=e=>`toast-group:${e}`,sb=(e,t)=>e.getById(`toast-group:${t}`),fb=e=>`toast:${e.id}`,lb=e=>e.getById(fb(e)),cb=e=>`toast:${e.id}:title`,db=e=>`toast:${e.id}:description`,Gk=e=>`toast${e.id}:close`,ub={info:5e3,error:5e3,success:2e3,loading:1/0,warning:5e3,DEFAULT:5e3};Uk=e=>typeof e=="string"?{left:e,right:e,bottom:e,top:e}:e;({guards:Yk,createMachine:Xk}=Ot()),{and:Zk}=Yk,Jk=Xk({props({props:e}){return v(p({dir:"ltr",id:la()},e),{store:e.store})},initialState({prop:e}){return e("store").attrs.overlap?"overlap":"stack"},refs(){return{lastFocusedEl:null,isFocusWithin:!1,isPointerWithin:!1,ignoreMouseTimer:jl.create(),dismissableCleanup:void 0}},context({bindable:e}){return{toasts:e(()=>({defaultValue:[],sync:!0,hash:t=>t.map(n=>n.id).join(",")})),heights:e(()=>({defaultValue:[],sync:!0}))}},computed:{count:({context:e})=>e.get("toasts").length,overlap:({prop:e})=>e("store").attrs.overlap,placement:({prop:e})=>e("store").attrs.placement},effects:["subscribeToStore","trackDocumentVisibility","trackHotKeyPress"],watch({track:e,context:t,action:n}){e([()=>t.hash("toasts")],()=>{queueMicrotask(()=>{n(["collapsedIfEmpty","setDismissableBranch"])})})},exit:["clearDismissableBranch","clearLastFocusedEl","clearMouseEventTimer"],on:{"DOC.HOTKEY":{actions:["focusRegionEl"]},"REGION.BLUR":[{guard:Zk("isOverlapping","isPointerOut"),target:"overlap",actions:["collapseToasts","resumeToasts","restoreFocusIfPointerOut"]},{guard:"isPointerOut",target:"stack",actions:["resumeToasts","restoreFocusIfPointerOut"]},{actions:["clearFocusWithin"]}],"TOAST.REMOVE":{actions:["removeToast","removeHeight","ignoreMouseEventsTemporarily"]},"TOAST.PAUSE":{actions:["pauseToasts"]}},states:{stack:{on:{"REGION.POINTER_LEAVE":[{guard:"isOverlapping",target:"overlap",actions:["clearPointerWithin","resumeToasts","collapseToasts"]},{actions:["clearPointerWithin","resumeToasts"]}],"REGION.OVERLAP":{target:"overlap",actions:["collapseToasts"]},"REGION.FOCUS":{actions:["setLastFocusedEl","pauseToasts"]},"REGION.POINTER_ENTER":{actions:["setPointerWithin","pauseToasts"]}}},overlap:{on:{"REGION.STACK":{target:"stack",actions:["expandToasts"]},"REGION.POINTER_ENTER":{target:"stack",actions:["setPointerWithin","pauseToasts","expandToasts"]},"REGION.FOCUS":{target:"stack",actions:["setLastFocusedEl","pauseToasts","expandToasts"]}}}},implementations:{guards:{isOverlapping:({computed:e})=>e("overlap"),isPointerOut:({refs:e})=>!e.get("isPointerWithin")},effects:{subscribeToStore({context:e,prop:t}){let n=t("store");return e.set("toasts",n.getVisibleToasts()),n.subscribe(r=>{if(r.dismiss){e.set("toasts",i=>i.filter(a=>a.id!==r.id));return}e.set("toasts",i=>{let a=i.findIndex(o=>o.id===r.id);return a!==-1?[...i.slice(0,a),p(p({},i[a]),r),...i.slice(a+1)]:[r,...i]})})},trackHotKeyPress({prop:e,send:t}){return re(document,"keydown",r=>{let{hotkey:i}=e("store").attrs;i.every(o=>r[o]||r.code===o)&&t({type:"DOC.HOTKEY"})},{capture:!0})},trackDocumentVisibility({prop:e,send:t,scope:n}){let{pauseOnPageIdle:r}=e("store").attrs;if(!r)return;let i=n.getDoc();return re(i,"visibilitychange",()=>{let a=i.visibilityState==="hidden";t({type:a?"PAUSE_ALL":"RESUME_ALL"})})}},actions:{setDismissableBranch({refs:e,context:t,computed:n,scope:r}){var c;let i=t.get("toasts"),a=n("placement"),o=i.length>0;if(!o){(c=e.get("dismissableCleanup"))==null||c();return}if(o&&e.get("dismissableCleanup"))return;let l=Pp(()=>sb(r,a),{defer:!0});e.set("dismissableCleanup",l)},clearDismissableBranch({refs:e}){var t;(t=e.get("dismissableCleanup"))==null||t()},focusRegionEl({scope:e,computed:t}){queueMicrotask(()=>{var n;(n=sb(e,t("placement")))==null||n.focus()})},pauseToasts({prop:e}){e("store").pause()},resumeToasts({prop:e}){e("store").resume()},expandToasts({prop:e}){e("store").expand()},collapseToasts({prop:e}){e("store").collapse()},removeToast({prop:e,event:t}){e("store").remove(t.id)},removeHeight({event:e,context:t}){(e==null?void 0:e.id)!=null&&queueMicrotask(()=>{t.set("heights",n=>n.filter(r=>r.id!==e.id))})},collapsedIfEmpty({send:e,computed:t}){!t("overlap")||t("count")>1||e({type:"REGION.OVERLAP"})},setLastFocusedEl({refs:e,event:t}){e.get("isFocusWithin")||!t.target||(e.set("isFocusWithin",!0),e.set("lastFocusedEl",t.target))},restoreFocusIfPointerOut({refs:e}){var t;!e.get("lastFocusedEl")||e.get("isPointerWithin")||((t=e.get("lastFocusedEl"))==null||t.focus({preventScroll:!0}),e.set("lastFocusedEl",null),e.set("isFocusWithin",!1))},setPointerWithin({refs:e}){e.set("isPointerWithin",!0)},clearPointerWithin({refs:e}){var t;e.set("isPointerWithin",!1),e.get("lastFocusedEl")&&!e.get("isFocusWithin")&&((t=e.get("lastFocusedEl"))==null||t.focus({preventScroll:!0}),e.set("lastFocusedEl",null))},clearFocusWithin({refs:e}){e.set("isFocusWithin",!1)},clearLastFocusedEl({refs:e}){var t;e.get("lastFocusedEl")&&((t=e.get("lastFocusedEl"))==null||t.focus({preventScroll:!0}),e.set("lastFocusedEl",null),e.set("isFocusWithin",!1))},ignoreMouseEventsTemporarily({refs:e}){e.get("ignoreMouseTimer").request()},clearMouseEventTimer({refs:e}){e.get("ignoreMouseTimer").cancel()}}}});({not:eN}=Te()),tN=te({props({props:e}){return rn(e,["id","type","parent","removeDelay"],"toast"),v(p({closable:!0},e),{translations:p({closeTriggerLabel:"Dismiss notification"},e.translations),duration:bu(e.duration,e.type)})},initialState({prop:e}){return e("type")==="loading"||e("duration")===1/0?"visible:persist":"visible"},context({prop:e,bindable:t}){return{remainingTime:t(()=>({defaultValue:bu(e("duration"),e("type"))})),createdAt:t(()=>({defaultValue:Date.now()})),mounted:t(()=>({defaultValue:!1})),initialHeight:t(()=>({defaultValue:0}))}},refs(){return{closeTimerStartTime:Date.now(),lastCloseStartTimerStartTime:0}},computed:{zIndex:({prop:e})=>{let t=e("parent").context.get("toasts"),n=t.findIndex(r=>r.id===e("id"));return t.length-n},height:({prop:e})=>{var r;let n=e("parent").context.get("heights").find(i=>i.id===e("id"));return(r=n==null?void 0:n.height)!=null?r:0},heightIndex:({prop:e})=>e("parent").context.get("heights").findIndex(n=>n.id===e("id")),frontmost:({prop:e})=>e("index")===0,heightBefore:({prop:e})=>{let t=e("parent").context.get("heights"),n=t.findIndex(r=>r.id===e("id"));return t.reduce((r,i,a)=>a>=n?r:r+i.height,0)},shouldPersist:({prop:e})=>e("type")==="loading"||e("duration")===1/0},watch({track:e,prop:t,send:n}){e([()=>t("message")],()=>{let r=t("message");r&&n({type:r,src:"programmatic"})}),e([()=>t("type"),()=>t("duration")],()=>{n({type:"UPDATE"})})},on:{UPDATE:[{guard:"shouldPersist",target:"visible:persist",actions:["resetCloseTimer"]},{target:"visible:updating",actions:["resetCloseTimer"]}],MEASURE:{actions:["measureHeight"]}},entry:["setMounted","measureHeight","invokeOnVisible"],effects:["trackHeight"],states:{"visible:updating":{tags:["visible","updating"],effects:["waitForNextTick"],on:{SHOW:{target:"visible"}}},"visible:persist":{tags:["visible","paused"],on:{RESUME:{guard:eN("isLoadingType"),target:"visible",actions:["setCloseTimer"]},DISMISS:{target:"dismissing"}}},visible:{tags:["visible"],effects:["waitForDuration"],on:{DISMISS:{target:"dismissing"},PAUSE:{target:"visible:persist",actions:["syncRemainingTime"]}}},dismissing:{entry:["invokeOnDismiss"],effects:["waitForRemoveDelay"],on:{REMOVE:{target:"unmounted",actions:["notifyParentToRemove"]}}},unmounted:{entry:["invokeOnUnmount"]}},implementations:{effects:{waitForRemoveDelay({prop:e,send:t}){return cr(()=>{t({type:"REMOVE",src:"timer"})},e("removeDelay"))},waitForDuration({send:e,context:t,computed:n}){if(!n("shouldPersist"))return cr(()=>{e({type:"DISMISS",src:"timer"})},t.get("remainingTime"))},waitForNextTick({send:e}){return cr(()=>{e({type:"SHOW",src:"timer"})},0)},trackHeight({scope:e,prop:t}){let n;return $(()=>{let r=lb(e);if(!r)return;let i=()=>{let s=r.style.height;r.style.height="auto";let l=r.getBoundingClientRect().height;r.style.height=s;let c={id:t("id"),height:l};gb(t("parent"),c)},a=e.getWin(),o=new a.MutationObserver(i);o.observe(r,{childList:!0,subtree:!0,characterData:!0}),n=()=>o.disconnect()}),()=>n==null?void 0:n()}},guards:{isLoadingType:({prop:e})=>e("type")==="loading",shouldPersist:({computed:e})=>e("shouldPersist")},actions:{setMounted({context:e}){$(()=>{e.set("mounted",!0)})},measureHeight({scope:e,prop:t,context:n}){queueMicrotask(()=>{let r=lb(e);if(!r)return;let i=r.style.height;r.style.height="auto";let a=r.getBoundingClientRect().height;r.style.height=i,n.set("initialHeight",a);let o={id:t("id"),height:a};gb(t("parent"),o)})},setCloseTimer({refs:e}){e.set("closeTimerStartTime",Date.now())},resetCloseTimer({context:e,refs:t,prop:n}){t.set("closeTimerStartTime",Date.now()),e.set("remainingTime",bu(n("duration"),n("type")))},syncRemainingTime({context:e,refs:t}){e.set("remainingTime",n=>{let r=t.get("closeTimerStartTime"),i=Date.now()-r;return t.set("lastCloseStartTimerStartTime",Date.now()),n-i})},notifyParentToRemove({prop:e}){e("parent").send({type:"TOAST.REMOVE",id:e("id")})},invokeOnDismiss({prop:e,event:t}){var n;(n=e("onStatusChange"))==null||n({status:"dismissing",src:t.src})},invokeOnUnmount({prop:e}){var t;(t=e("onStatusChange"))==null||t({status:"unmounted"})},invokeOnVisible({prop:e}){var t;(t=e("onStatusChange"))==null||t({status:"visible"})}}}});nN=(e,t)=>p(p({},t),On(e)),rN={error:[1,2],warning:[3,6],loading:[4,5],success:[5,7],info:[6,8]},mb="info",Eu=(e,t)=>{let[n,r]=rN[e!=null?e:mb];return t?n:r},iN=e=>e.sort((t,n)=>{var a,o;let r=(a=t.priority)!=null?a:Eu(t.type,!!t.action),i=(o=n.priority)!=null?o:Eu(n.type,!!n.action);return r-i});oN=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",hb={connect:zk,machine:Jk},sN=new Map,Su=new Map,lN=class extends X{constructor(t,n){var r;super(t,n);Z(this,"parts");Z(this,"duration");Z(this,"showLoading");Z(this,"destroy",()=>{this.machine.stop(),this.el.remove()});this.duration=n.duration,this.showLoading=((r=n.meta)==null?void 0:r.loading)===!0,this.el.setAttribute("data-scope","toast"),this.el.setAttribute("data-part","root"),this.el.classList.add("toast-item"),this.el.innerHTML=` + `,n.body.appendChild(r)};zd=new Map,Jd=!1;try{Jd=new Intl.NumberFormat("de-DE",{signDisplay:"exceptZero"}).resolvedOptions().signDisplay==="exceptZero"}catch(e){}al=!1;try{al=new Intl.NumberFormat("de-DE",{style:"unit",unit:"degree"}).resolvedOptions().style==="unit"}catch(e){}Qv={degree:{narrow:{default:"\xB0","ja-JP":" \u5EA6","zh-TW":"\u5EA6","sl-SI":" \xB0"}}},IA=class{format(e){let t="";if(!Jd&&this.options.signDisplay!=null?t=wA(this.numberFormatter,this.options.signDisplay,e):t=this.numberFormatter.format(e),this.options.style==="unit"&&!al){var n;let{unit:r,unitDisplay:i="short",locale:a}=this.resolvedOptions();if(!r)return t;let o=(n=Qv[r])===null||n===void 0?void 0:n[i];t+=o[a]||o.default}return t}formatToParts(e){return this.numberFormatter.formatToParts(e)}formatRange(e,t){if(typeof this.numberFormatter.formatRange=="function")return this.numberFormatter.formatRange(e,t);if(t= start date");return`${this.format(e)} \u2013 ${this.format(t)}`}formatRangeToParts(e,t){if(typeof this.numberFormatter.formatRangeToParts=="function")return this.numberFormatter.formatRangeToParts(e,t);if(t= start date");let n=this.numberFormatter.formatToParts(e),r=this.numberFormatter.formatToParts(t);return[...n.map(i=>v(p({},i),{source:"startRange"})),{type:"literal",value:" \u2013 ",source:"shared"},...r.map(i=>v(p({},i),{source:"endRange"}))]}resolvedOptions(){let e=this.numberFormatter.resolvedOptions();return!Jd&&this.options.signDisplay!=null&&(e=v(p({},e),{signDisplay:this.options.signDisplay})),!al&&this.options.style==="unit"&&(e=v(p({},e),{style:"unit",unit:this.options.unit,unitDisplay:this.options.unitDisplay})),e}constructor(e,t={}){this.numberFormatter=TA(e,t),this.options=t}};OA=new RegExp("^.*\\(.*\\).*$"),VA=["latn","arab","hanidec","deva","beng","fullwide"],ey=class{parse(e){return Yd(this.locale,this.options,e).parse(e)}isValidPartialNumber(e,t,n){return Yd(this.locale,this.options,e).isValidPartialNumber(e,t,n)}getNumberingSystem(e){return Yd(this.locale,this.options,e).options.numberingSystem}constructor(e,t={}){this.locale=e,this.options=t}},Uv=new Map;xA=class{parse(e){let t=this.sanitize(e);if(this.symbols.group&&(t=zi(t,this.symbols.group,"")),this.symbols.decimal&&(t=t.replace(this.symbols.decimal,".")),this.symbols.minusSign&&(t=t.replace(this.symbols.minusSign,"-")),t=t.replace(this.symbols.numeral,this.symbols.index),this.options.style==="percent"){let a=t.indexOf("-");t=t.replace("-",""),t=t.replace("+","");let o=t.indexOf(".");o===-1&&(o=t.length),t=t.replace(".",""),o-2===0?t=`0.${t}`:o-2===-1?t=`0.0${t}`:o-2===-2?t="0.00":t=`${t.slice(0,o-2)}.${t.slice(o-2)}`,a>-1&&(t=`-${t}`)}let n=t?+t:NaN;if(isNaN(n))return NaN;if(this.options.style==="percent"){var r,i;let a=v(p({},this.options),{style:"decimal",minimumFractionDigits:Math.min(((r=this.options.minimumFractionDigits)!==null&&r!==void 0?r:0)+2,20),maximumFractionDigits:Math.min(((i=this.options.maximumFractionDigits)!==null&&i!==void 0?i:0)+2,20)});return new ey(this.locale,a).parse(new IA(this.locale,a).format(n))}return this.options.currencySign==="accounting"&&OA.test(e)&&(n=-1*n),n}sanitize(e){return e=e.replace(this.symbols.literals,""),this.symbols.minusSign&&(e=e.replace("-",this.symbols.minusSign)),this.options.numberingSystem==="arab"&&(this.symbols.decimal&&(e=e.replace(",",this.symbols.decimal),e=e.replace("\u060C",this.symbols.decimal)),this.symbols.group&&(e=zi(e,".",this.symbols.group))),this.symbols.group==="\u2019"&&e.includes("'")&&(e=zi(e,"'",this.symbols.group)),this.options.locale==="fr-FR"&&this.symbols.group&&(e=zi(e," ",this.symbols.group),e=zi(e,/\u00A0/g,this.symbols.group)),e}isValidPartialNumber(e,t=-1/0,n=1/0){return e=this.sanitize(e),this.symbols.minusSign&&e.startsWith(this.symbols.minusSign)&&t<0?e=e.slice(this.symbols.minusSign.length):this.symbols.plusSign&&e.startsWith(this.symbols.plusSign)&&n>0&&(e=e.slice(this.symbols.plusSign.length)),this.symbols.group&&e.startsWith(this.symbols.group)||this.symbols.decimal&&e.indexOf(this.symbols.decimal)>-1&&this.options.maximumFractionDigits===0?!1:(this.symbols.group&&(e=zi(e,this.symbols.group,"")),e=e.replace(this.symbols.numeral,""),this.symbols.decimal&&(e=e.replace(this.symbols.decimal,"")),e.length===0)}constructor(e,t={}){this.locale=e,t.roundingIncrement!==1&&t.roundingIncrement!=null&&(t.maximumFractionDigits==null&&t.minimumFractionDigits==null?(t.maximumFractionDigits=0,t.minimumFractionDigits=0):t.maximumFractionDigits==null?t.maximumFractionDigits=t.minimumFractionDigits:t.minimumFractionDigits==null&&(t.minimumFractionDigits=t.maximumFractionDigits)),this.formatter=new Intl.NumberFormat(e,t),this.options=this.formatter.resolvedOptions(),this.symbols=RA(e,this.formatter,this.options,t);var n,r;this.options.style==="percent"&&(((n=this.options.minimumFractionDigits)!==null&&n!==void 0?n:0)>18||((r=this.options.maximumFractionDigits)!==null&&r!==void 0?r:0)>18)&&console.warn("NumberParser cannot handle percentages with greater than 18 decimal places, please reduce the number in your options.")}},Wv=new Set(["decimal","fraction","integer","minusSign","plusSign","group"]),AA=[0,4,2,1,11,20,3,7,100,21,.1,1.1];kA=(e,t={})=>new Intl.NumberFormat(e,t),NA=(e,t={})=>new ey(e,t),Xd=(e,t)=>{let{prop:n,computed:r}=t;return n("formatOptions")?e===""?Number.NaN:r("parser").parse(e):parseFloat(e)},ei=(e,t)=>{let{prop:n,computed:r}=t;return Number.isNaN(e)?"":n("formatOptions")?r("formatter").format(e):e.toString()},DA=(e,t)=>{let n=e!==void 0&&!Number.isNaN(e)?e:1;return(t==null?void 0:t.style)==="percent"&&(e===void 0||Number.isNaN(e))&&(n=.01),n},{choose:LA,guards:MA,createMachine:FA}=Ot(),{not:jv,and:zv}=MA,_A=FA({props({props:e}){let t=DA(e.step,e.formatOptions);return v(p({dir:"ltr",locale:"en-US",focusInputOnChange:!0,clampValueOnBlur:!e.allowOverflow,allowOverflow:!1,inputMode:"decimal",pattern:"-?[0-9]*(.[0-9]+)?",defaultValue:"",step:t,min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER,spinOnPress:!0},e),{translations:p({incrementLabel:"increment value",decrementLabel:"decrease value"},e.translations)})},initialState(){return"idle"},context({prop:e,bindable:t,getComputed:n}){return{value:t(()=>({defaultValue:e("defaultValue"),value:e("value"),onChange(r){var o;let i=n(),a=Xd(r,{computed:i,prop:e});(o=e("onValueChange"))==null||o({value:r,valueAsNumber:a})}})),hint:t(()=>({defaultValue:null})),scrubberCursorPoint:t(()=>({defaultValue:null,hash(r){return r?`x:${r.x}, y:${r.y}`:""}})),fieldsetDisabled:t(()=>({defaultValue:!1}))}},computed:{isRtl:({prop:e})=>e("dir")==="rtl",valueAsNumber:({context:e,computed:t,prop:n})=>Xd(e.get("value"),{computed:t,prop:n}),formattedValue:({computed:e,prop:t})=>ei(e("valueAsNumber"),{computed:e,prop:t}),isAtMin:({computed:e,prop:t})=>Qg(e("valueAsNumber"),t("min")),isAtMax:({computed:e,prop:t})=>Jg(e("valueAsNumber"),t("max")),isOutOfRange:({computed:e,prop:t})=>!Ii(e("valueAsNumber"),t("min"),t("max")),isValueEmpty:({context:e})=>e.get("value")==="",isDisabled:({prop:e,context:t})=>!!e("disabled")||t.get("fieldsetDisabled"),canIncrement:({prop:e,computed:t})=>e("allowOverflow")||!t("isAtMax"),canDecrement:({prop:e,computed:t})=>e("allowOverflow")||!t("isAtMin"),valueText:({prop:e,context:t})=>{var n,r;return(r=(n=e("translations")).valueText)==null?void 0:r.call(n,t.get("value"))},formatter:Ur(({prop:e})=>[e("locale"),e("formatOptions")],([e,t])=>kA(e,t)),parser:Ur(({prop:e})=>[e("locale"),e("formatOptions")],([e,t])=>NA(e,t))},watch({track:e,action:t,context:n,computed:r,prop:i}){e([()=>n.get("value"),()=>i("locale"),()=>JSON.stringify(i("formatOptions"))],()=>{t(["syncInputElement"])}),e([()=>r("isOutOfRange")],()=>{t(["invokeOnInvalid"])}),e([()=>n.hash("scrubberCursorPoint")],()=>{t(["setVirtualCursorPosition"])})},effects:["trackFormControl"],on:{"VALUE.SET":{actions:["setRawValue"]},"VALUE.CLEAR":{actions:["clearValue"]},"VALUE.INCREMENT":{actions:["increment"]},"VALUE.DECREMENT":{actions:["decrement"]}},states:{idle:{on:{"TRIGGER.PRESS_DOWN":[{guard:"isTouchPointer",target:"before:spin",actions:["setHint"]},{target:"before:spin",actions:["focusInput","invokeOnFocus","setHint"]}],"SCRUBBER.PRESS_DOWN":{target:"scrubbing",actions:["focusInput","invokeOnFocus","setHint","setCursorPoint"]},"INPUT.FOCUS":{target:"focused",actions:["focusInput","invokeOnFocus"]}}},focused:{tags:["focus"],effects:["attachWheelListener"],on:{"TRIGGER.PRESS_DOWN":[{guard:"isTouchPointer",target:"before:spin",actions:["setHint"]},{target:"before:spin",actions:["focusInput","setHint"]}],"SCRUBBER.PRESS_DOWN":{target:"scrubbing",actions:["focusInput","setHint","setCursorPoint"]},"INPUT.ARROW_UP":{actions:["increment"]},"INPUT.ARROW_DOWN":{actions:["decrement"]},"INPUT.HOME":{actions:["decrementToMin"]},"INPUT.END":{actions:["incrementToMax"]},"INPUT.CHANGE":{actions:["setValue","setHint"]},"INPUT.BLUR":[{guard:zv("clampValueOnBlur",jv("isInRange")),target:"idle",actions:["setClampedValue","clearHint","invokeOnBlur","invokeOnValueCommit"]},{guard:jv("isInRange"),target:"idle",actions:["setFormattedValue","clearHint","invokeOnBlur","invokeOnInvalid","invokeOnValueCommit"]},{target:"idle",actions:["setFormattedValue","clearHint","invokeOnBlur","invokeOnValueCommit"]}],"INPUT.ENTER":{actions:["setFormattedValue","clearHint","invokeOnBlur","invokeOnValueCommit"]}}},"before:spin":{tags:["focus"],effects:["trackButtonDisabled","waitForChangeDelay"],entry:LA([{guard:"isIncrementHint",actions:["increment"]},{guard:"isDecrementHint",actions:["decrement"]}]),on:{CHANGE_DELAY:{target:"spinning",guard:zv("isInRange","spinOnPress")},"TRIGGER.PRESS_UP":[{guard:"isTouchPointer",target:"focused",actions:["clearHint"]},{target:"focused",actions:["focusInput","clearHint"]}]}},spinning:{tags:["focus"],effects:["trackButtonDisabled","spinValue"],on:{SPIN:[{guard:"isIncrementHint",actions:["increment"]},{guard:"isDecrementHint",actions:["decrement"]}],"TRIGGER.PRESS_UP":{target:"focused",actions:["focusInput","clearHint"]}}},scrubbing:{tags:["focus"],effects:["activatePointerLock","trackMousemove","setupVirtualCursor","preventTextSelection"],on:{"SCRUBBER.POINTER_UP":{target:"focused",actions:["focusInput","clearCursorPoint"]},"SCRUBBER.POINTER_MOVE":[{guard:"isIncrementHint",actions:["increment","setCursorPoint"]},{guard:"isDecrementHint",actions:["decrement","setCursorPoint"]}]}}},implementations:{guards:{clampValueOnBlur:({prop:e})=>e("clampValueOnBlur"),spinOnPress:({prop:e})=>!!e("spinOnPress"),isInRange:({computed:e})=>!e("isOutOfRange"),isDecrementHint:({context:e,event:t})=>{var n;return((n=t.hint)!=null?n:e.get("hint"))==="decrement"},isIncrementHint:({context:e,event:t})=>{var n;return((n=t.hint)!=null?n:e.get("hint"))==="increment"},isTouchPointer:({event:e})=>e.pointerType==="touch"},effects:{waitForChangeDelay({send:e}){let t=setTimeout(()=>{e({type:"CHANGE_DELAY"})},300);return()=>clearTimeout(t)},spinValue({send:e}){let t=setInterval(()=>{e({type:"SPIN"})},50);return()=>clearInterval(t)},trackFormControl({context:e,scope:t}){let n=ti(t);return Rt(n,{onFieldsetDisabledChange(r){e.set("fieldsetDisabled",r)},onFormReset(){e.set("value",e.initial("value"))}})},setupVirtualCursor({context:e,scope:t}){let n=e.get("scrubberCursorPoint");return bA(t,n)},preventTextSelection({scope:e}){return EA(e)},trackButtonDisabled({context:e,scope:t,send:n}){let r=e.get("hint"),i=yA(t,r);return kt(i,{attributes:["disabled"],callback(){n({type:"TRIGGER.PRESS_UP",src:"attr"})}})},attachWheelListener({scope:e,send:t,prop:n}){let r=ti(e);if(!r||!e.isActiveElement(r)||!n("allowMouseWheel"))return;function i(a){a.preventDefault();let o=Math.sign(a.deltaY)*-1;o===1?t({type:"VALUE.INCREMENT"}):o===-1&&t({type:"VALUE.DECREMENT"})}return re(r,"wheel",i,{passive:!1})},activatePointerLock({scope:e}){if(!yt())return Vg(e.getDoc())},trackMousemove({scope:e,send:t,context:n,computed:r}){let i=e.getDoc();function a(s){let l=n.get("scrubberCursorPoint"),c=r("isRtl"),d=SA(e,{point:l,isRtl:c,event:s});d.hint&&t({type:"SCRUBBER.POINTER_MOVE",hint:d.hint,point:d.point})}function o(){t({type:"SCRUBBER.POINTER_UP"})}return vt(re(i,"mousemove",a,!1),re(i,"mouseup",o,!1))}},actions:{focusInput({scope:e,prop:t}){if(!t("focusInputOnChange"))return;let n=ti(e);e.isActiveElement(n)||$(()=>n==null?void 0:n.focus({preventScroll:!0}))},increment({context:e,event:t,prop:n,computed:r}){var a;let i=rh(r("valueAsNumber"),(a=t.step)!=null?a:n("step"));n("allowOverflow")||(i=Oe(i,n("min"),n("max"))),e.set("value",ei(i,{computed:r,prop:n}))},decrement({context:e,event:t,prop:n,computed:r}){var a;let i=ih(r("valueAsNumber"),(a=t.step)!=null?a:n("step"));n("allowOverflow")||(i=Oe(i,n("min"),n("max"))),e.set("value",ei(i,{computed:r,prop:n}))},setClampedValue({context:e,prop:t,computed:n}){let r=Oe(n("valueAsNumber"),t("min"),t("max"));e.set("value",ei(r,{computed:n,prop:t}))},setRawValue({context:e,event:t,prop:n,computed:r}){let i=Xd(t.value,{computed:r,prop:n});n("allowOverflow")||(i=Oe(i,n("min"),n("max"))),e.set("value",ei(i,{computed:r,prop:n}))},setValue({context:e,event:t}){var r,i;let n=(i=(r=t.target)==null?void 0:r.value)!=null?i:t.value;e.set("value",n)},clearValue({context:e}){e.set("value","")},incrementToMax({context:e,prop:t,computed:n}){let r=ei(t("max"),{computed:n,prop:t});e.set("value",r)},decrementToMin({context:e,prop:t,computed:n}){let r=ei(t("min"),{computed:n,prop:t});e.set("value",r)},setHint({context:e,event:t}){e.set("hint",t.hint)},clearHint({context:e}){e.set("hint",null)},invokeOnFocus({computed:e,prop:t}){var n;(n=t("onFocusChange"))==null||n({focused:!0,value:e("formattedValue"),valueAsNumber:e("valueAsNumber")})},invokeOnBlur({computed:e,prop:t}){var n;(n=t("onFocusChange"))==null||n({focused:!1,value:e("formattedValue"),valueAsNumber:e("valueAsNumber")})},invokeOnInvalid({computed:e,prop:t,event:n}){var i;if(n.type==="INPUT.CHANGE")return;let r=e("valueAsNumber")>t("max")?"rangeOverflow":"rangeUnderflow";(i=t("onValueInvalid"))==null||i({reason:r,value:e("formattedValue"),valueAsNumber:e("valueAsNumber")})},invokeOnValueCommit({computed:e,prop:t}){var n;(n=t("onValueCommit"))==null||n({value:e("formattedValue"),valueAsNumber:e("valueAsNumber")})},syncInputElement({context:e,event:t,computed:n,scope:r}){var s;let i=t.type.endsWith("CHANGE")?e.get("value"):n("formattedValue"),a=ti(r),o=(s=t.selection)!=null?s:Zd(a,r);$(()=>{Be(a,i),gA(a,o,r)})},setFormattedValue({context:e,computed:t,action:n}){e.set("value",t("formattedValue")),n(["syncInputElement"])},setCursorPoint({context:e,event:t}){e.set("scrubberCursorPoint",t.point)},clearCursorPoint({context:e}){e.set("scrubberCursorPoint",null)},setVirtualCursorPosition({context:e,scope:t}){let n=Jv(t),r=e.get("scrubberCursorPoint");!n||!r||(n.style.transform=`translate3d(${r.x}px, ${r.y}px, 0px)`)}}}}),$A=class extends X{initMachine(e){return new Y(_A,e)}initApi(){return this.zagConnect(CA)}render(){var s;let e=(s=this.el.querySelector('[data-scope="number-input"][data-part="root"]'))!=null?s:this.el;this.spreadProps(e,this.api.getRootProps());let t=this.el.querySelector('[data-scope="number-input"][data-part="label"]');t&&this.spreadProps(t,this.api.getLabelProps());let n=this.el.querySelector('[data-scope="number-input"][data-part="control"]');n&&this.spreadProps(n,this.api.getControlProps());let r=this.el.querySelector('[data-scope="number-input"][data-part="value-text"]');r&&this.spreadProps(r,this.api.getValueTextProps());let i=this.el.querySelector('[data-scope="number-input"][data-part="input"]');i&&this.spreadProps(i,this.api.getInputProps());let a=this.el.querySelector('[data-scope="number-input"][data-part="decrement-trigger"]');a&&this.spreadProps(a,this.api.getDecrementTriggerProps());let o=this.el.querySelector('[data-scope="number-input"][data-part="increment-trigger"]');o&&this.spreadProps(o,this.api.getIncrementTriggerProps())}},HA={mounted(){var a;let e=this.el,t=this.pushEvent.bind(this),n=()=>Q(this.liveSocket),r=T(e,"controlled"),i=new $A(e,v(p({id:e.id},r?{value:(a=x(e,"value"))!=null?a:""}:{defaultValue:x(e,"defaultValue")}),{min:U(e,"min"),max:U(e,"max"),step:U(e,"step"),disabled:T(e,"disabled"),readOnly:T(e,"readOnly"),invalid:T(e,"invalid"),required:T(e,"required"),allowMouseWheel:T(e,"allowMouseWheel"),name:x(e,"name"),form:x(e,"form"),dir:q(e),onValueChange:o=>{var s;if(o.value!==void 0){let l=e.querySelector('[data-scope="number-input"][data-part="value-input"]');l&&(l.value=(s=o.value)!=null?s:"",l.dispatchEvent(new Event("input",{bubbles:!0})),l.dispatchEvent(new Event("change",{bubbles:!0})))}K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,value:o.value,valueAsNumber:o.valueAsNumber},serverEventName:x(e,"onValueChange"),clientEventName:x(e,"onValueChangeClient")})}}));i.init(),this.numberInput=i},updated(){var t,n;let e={id:this.el.id,min:U(this.el,"min"),max:U(this.el,"max"),step:U(this.el,"step"),disabled:T(this.el,"disabled"),readOnly:T(this.el,"readOnly"),invalid:T(this.el,"invalid"),required:T(this.el,"required"),allowMouseWheel:T(this.el,"allowMouseWheel"),name:x(this.el,"name"),form:x(this.el,"form"),dir:q(this.el)};T(this.el,"controlled")&&(e.value=(t=x(this.el,"value"))!=null?t:""),(n=this.numberInput)==null||n.updateProps(e)},destroyed(){var e;(e=this.numberInput)==null||e.destroy()}}});var ry={};fe(ry,{PasswordInput:()=>KA});function GA(e,t){let{scope:n,prop:r,context:i}=e,a=i.get("visible"),o=!!r("disabled"),s=!!r("invalid"),l=!!r("readOnly"),c=!!r("required"),d=!(l||o),g=r("translations");return{visible:a,disabled:o,invalid:s,focus(){var h;(h=Qd(n))==null||h.focus()},setVisible(h){e.send({type:"VISIBILITY.SET",value:h})},toggleVisible(){e.send({type:"VISIBILITY.SET",value:!a})},getRootProps(){return t.element(v(p({},Yi.root.attrs),{dir:r("dir"),"data-disabled":S(o),"data-invalid":S(s),"data-readonly":S(l)}))},getLabelProps(){return t.label(v(p({},Yi.label.attrs),{htmlFor:ol(n),"data-disabled":S(o),"data-invalid":S(s),"data-readonly":S(l),"data-required":S(c)}))},getInputProps(){return t.input(p(v(p({},Yi.input.attrs),{id:ol(n),autoCapitalize:"off",name:r("name"),required:r("required"),autoComplete:r("autoComplete"),spellCheck:!1,readOnly:l,disabled:o,type:a?"text":"password","data-state":a?"visible":"hidden","aria-invalid":oe(s),"data-disabled":S(o),"data-invalid":S(s),"data-readonly":S(l)}),r("ignorePasswordManagers")?UA:{}))},getVisibilityTriggerProps(){var h;return t.button(v(p({},Yi.visibilityTrigger.attrs),{type:"button",tabIndex:-1,"aria-controls":ol(n),"aria-expanded":a,"data-readonly":S(l),disabled:o,"data-disabled":S(o),"data-state":a?"visible":"hidden","aria-label":(h=g==null?void 0:g.visibilityTrigger)==null?void 0:h.call(g,a),onPointerDown(u){Ee(u)&&d&&(u.preventDefault(),e.send({type:"TRIGGER.CLICK"}))}}))},getIndicatorProps(){return t.element(v(p({},Yi.indicator.attrs),{"aria-hidden":!0,"data-state":a?"visible":"hidden","data-disabled":S(o),"data-invalid":S(s),"data-readonly":S(l)}))},getControlProps(){return t.element(v(p({},Yi.control.attrs),{"data-disabled":S(o),"data-invalid":S(s),"data-readonly":S(l)}))}}}var BA,Yi,ol,Qd,UA,qA,WA,KA,iy=ne(()=>{"use strict";_e();Ce();se();BA=j("password-input").parts("root","input","label","control","indicator","visibilityTrigger"),Yi=BA.build(),ol=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.input)!=null?n:`p-input-${e.id}-input`},Qd=e=>e.getById(ol(e));UA={"data-1p-ignore":"","data-lpignore":"true","data-bwignore":"true","data-form-type":"other","data-protonpass-ignore":"true"},qA=te({props({props:e}){return v(p({id:la(),defaultVisible:!1,autoComplete:"current-password",ignorePasswordManagers:!1},e),{translations:p({visibilityTrigger(t){return t?"Hide password":"Show password"}},e.translations)})},context({prop:e,bindable:t}){return{visible:t(()=>({value:e("visible"),defaultValue:e("defaultVisible"),onChange(n){var r;(r=e("onVisibilityChange"))==null||r({visible:n})}}))}},initialState(){return"idle"},effects:["trackFormEvents"],states:{idle:{on:{"VISIBILITY.SET":{actions:["setVisibility"]},"TRIGGER.CLICK":{actions:["toggleVisibility","focusInputEl"]}}}},implementations:{actions:{setVisibility({context:e,event:t}){e.set("visible",t.value)},toggleVisibility({context:e}){e.set("visible",t=>!t)},focusInputEl({scope:e}){let t=Qd(e);t==null||t.focus()}},effects:{trackFormEvents({scope:e,send:t}){let n=Qd(e),r=n==null?void 0:n.form;if(!r)return;let i=e.getWin(),a=new i.AbortController;return r.addEventListener("reset",o=>{o.defaultPrevented||t({type:"VISIBILITY.SET",value:!1})},{signal:a.signal}),r.addEventListener("submit",()=>{t({type:"VISIBILITY.SET",value:!1})},{signal:a.signal}),()=>a.abort()}}}}),WA=class extends X{initMachine(e){return new Y(qA,e)}initApi(){return this.zagConnect(GA)}render(){var o;let e=(o=this.el.querySelector('[data-scope="password-input"][data-part="root"]'))!=null?o:this.el;this.spreadProps(e,this.api.getRootProps());let t=this.el.querySelector('[data-scope="password-input"][data-part="label"]');t&&this.spreadProps(t,this.api.getLabelProps());let n=this.el.querySelector('[data-scope="password-input"][data-part="control"]');n&&this.spreadProps(n,this.api.getControlProps());let r=this.el.querySelector('[data-scope="password-input"][data-part="input"]');r&&this.spreadProps(r,this.api.getInputProps());let i=this.el.querySelector('[data-scope="password-input"][data-part="visibility-trigger"]');i&&this.spreadProps(i,this.api.getVisibilityTriggerProps());let a=this.el.querySelector('[data-scope="password-input"][data-part="indicator"]');a&&this.spreadProps(a,this.api.getIndicatorProps())}},KA={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>Q(this.liveSocket),r=new WA(e,{id:e.id,defaultVisible:T(e,"defaultVisible"),disabled:T(e,"disabled"),invalid:T(e,"invalid"),readOnly:T(e,"readOnly"),required:T(e,"required"),ignorePasswordManagers:T(e,"ignorePasswordManagers"),name:x(e,"name"),dir:q(e),autoComplete:x(e,"autoComplete"),onVisibilityChange:o=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,visible:o.visible},serverEventName:x(e,"onVisibilityChange"),clientEventName:x(e,"onVisibilityChangeClient")})}});r.init(),this.passwordInput=r,this.handlers=[];let i=de(e);this.domRegistry=i,i.add("corex:password-input:set-visible",o=>{var l;let s=(l=o.detail)==null?void 0:l.visible;typeof s=="boolean"&&r.api.setVisible(s)}),i.add("corex:password-input:toggle-visible",()=>{r.api.toggleVisible()}),i.add("corex:password-input:focus",()=>{r.api.focus()});let a=ce(this);this.handleRegistry=a,a.add("password_input_set_visible",o=>{if(!B(e.id,G(o)))return;let s=$g(o);typeof s=="boolean"&&r.api.setVisible(s)}),a.add("password_input_toggle_visible",o=>{B(e.id,G(o))&&r.api.toggleVisible()}),a.add("password_input_focus",o=>{B(e.id,G(o))&&r.api.focus()})},updated(){var e;(e=this.passwordInput)==null||e.updateProps({id:this.el.id,disabled:T(this.el,"disabled"),invalid:T(this.el,"invalid"),readOnly:T(this.el,"readOnly"),required:T(this.el,"required"),name:x(this.el,"name"),form:x(this.el,"form"),dir:q(this.el)})},destroyed(){var e,t,n;if(this.handlers)for(let r of this.handlers)this.removeHandleEvent(r);(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.passwordInput)==null||n.destroy()}}});var ly={};fe(ly,{PinInput:()=>cR});function eR(e,t){var n;return e?!!((n=QA[e])!=null&&n.test(t)):!0}function ay(e,t,n){return n?new RegExp(n,"g").test(e):eR(t,e)}function tR(e,t){let{send:n,context:r,computed:i,prop:a,scope:o}=e,s=i("isValueComplete"),l=!!a("disabled"),c=!!a("readOnly"),d=!!a("invalid"),g=!!a("required"),h=a("translations"),u=r.get("focusedIndex");function f(){var m;(m=JA(o))==null||m.focus()}return{focus:f,count:r.get("count"),items:Array.from({length:r.get("count")}).map((m,P)=>P),value:r.get("value"),valueAsString:i("valueAsString"),complete:s,setValue(m){Array.isArray(m)||gi("[pin-input/setValue] value must be an array"),n({type:"VALUE.SET",value:m})},clearValue(){n({type:"VALUE.CLEAR"})},setValueAtIndex(m,P){n({type:"VALUE.SET",value:P,index:m})},getRootProps(){return t.element(v(p({dir:a("dir")},sl.root.attrs),{id:Xa(o),"data-invalid":S(d),"data-disabled":S(l),"data-complete":S(s),"data-readonly":S(c)}))},getLabelProps(){return t.label(v(p({},sl.label.attrs),{dir:a("dir"),htmlFor:nu(o),id:YA(o),"data-invalid":S(d),"data-disabled":S(l),"data-complete":S(s),"data-required":S(g),"data-readonly":S(c),onClick(m){m.preventDefault(),f()}}))},getHiddenInputProps(){return t.input({"aria-hidden":!0,type:"text",tabIndex:-1,id:nu(o),readOnly:c,disabled:l,required:g,name:a("name"),form:a("form"),style:dt,maxLength:i("valueLength"),defaultValue:i("valueAsString")})},getControlProps(){return t.element(v(p({},sl.control.attrs),{dir:a("dir"),id:XA(o)}))},getInputProps(m){var b;let{index:P}=m,C=a("type")==="numeric"?"tel":"text",V=i("valueLength"),I=u!==-1?u:Math.min(i("filledValueLength"),V-1);return t.input(v(p({},sl.input.attrs),{dir:a("dir"),disabled:l,tabIndex:P===I?0:-1,"data-disabled":S(l),"data-complete":S(s),"data-filled":S(r.get("value")[P]!==""),id:zA(o,P.toString()),"data-index":P,"data-ownedby":Xa(o),"aria-label":(b=h==null?void 0:h.inputLabel)==null?void 0:b.call(h,P,i("valueLength")),inputMode:a("otp")||a("type")==="numeric"?"numeric":"text","aria-invalid":oe(d),"data-invalid":S(d),enterKeyHint:P===V-1?"done":"next",type:a("mask")?"password":C,defaultValue:r.get("value")[P]||"",readOnly:c,autoCapitalize:"none",autoComplete:a("otp")?"one-time-code":"off",placeholder:u===P?"":a("placeholder"),onPaste(y){var O;let E=(O=y.clipboardData)==null?void 0:O.getData("text/plain");if(!E)return;let A=a("sanitizeValue");if(A&&(E=A(E)),!ay(E,a("type"),a("pattern"))){n({type:"VALUE.INVALID",value:E}),y.preventDefault();return}y.preventDefault(),n({type:"INPUT.PASTE",value:E})},onBeforeInput(y){try{let E=bg(y);ay(E,a("type"),a("pattern"))||(n({type:"VALUE.INVALID",value:E}),y.preventDefault()),E.length>1&&y.currentTarget.setSelectionRange(0,1,"forward")}catch(E){}},onChange(y){let E=zt(y),{value:A}=y.currentTarget;if(E.inputType==="insertFromPaste"){y.currentTarget.value=A[0]||"";return}if(A.length>2){n({type:"INPUT.PASTE",value:A}),y.currentTarget.value=A[0],y.preventDefault();return}if(E.inputType==="deleteContentBackward"){n({type:"INPUT.BACKSPACE"});return}if(E.inputType==="deleteByCut"){n({type:"INPUT.DELETE"});return}A!==i("focusedValue")&&n({type:"INPUT.CHANGE",value:A,index:P})},onKeyDown(y){if(y.defaultPrevented||He(y)||Fe(y))return;if(y.key.length===1&&i("focusedValue")===y.key){y.preventDefault(),n({type:"INPUT.ADVANCE"});return}let A={Backspace(){n({type:"INPUT.BACKSPACE"})},Delete(){n({type:"INPUT.DELETE"})},ArrowLeft(){n({type:"INPUT.ARROW_LEFT"})},ArrowRight(){n({type:"INPUT.ARROW_RIGHT"})},Enter(){n({type:"INPUT.ENTER"})},Home(){n({type:"INPUT.HOME"})},End(){n({type:"INPUT.END"})}}[ve(y,{dir:a("dir"),orientation:"horizontal"})];A&&(A(y),y.preventDefault())},onFocus(){n({type:"INPUT.FOCUS",index:P})},onBlur(y){let E=y.relatedTarget;ye(E)&&E.dataset.ownedby===Xa(o)||n({type:"INPUT.BLUR",index:P})}}))}}}function oy(e,t){let n=t;e[0]===t[0]?n=t[1]:e[0]===t[1]&&(n=t[0]);let r=n.split("");return n=r[r.length-1],n!=null?n:""}function ll(e,t){return Array.from({length:t}).fill("").map((n,r)=>e[r]||n)}function oR(e){return e.split(",").map(t=>t.trim())}function sR(e,t){let n=[...e];for(;n.length{let a=e.querySelector('[data-scope="pin-input"][data-part="hidden-input"]');a&&(a.value=i.valueAsString,a.dispatchEvent(new Event("input",{bubbles:!0})),a.dispatchEvent(new Event("change",{bubbles:!0}))),K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,value:i.value,valueAsString:i.valueAsString},serverEventName:x(e,"onValueChange"),clientEventName:x(e,"onValueChangeClient")})},onValueComplete:i=>{K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,value:i.value,valueAsString:i.valueAsString},serverEventName:x(e,"onValueComplete"),clientEventName:x(e,"onValueCompleteClient")})}}}var jA,sl,Xa,zA,nu,YA,XA,ZA,cl,Ya,JA,eu,tu,QA,nR,rR,iR,aR,cR,cy=ne(()=>{"use strict";Nt();_e();Ce();se();jA=j("pinInput").parts("root","label","input","control"),sl=jA.build(),Xa=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`pin-input:${e.id}`},zA=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.input)==null?void 0:r.call(n,t))!=null?i:`pin-input:${e.id}:${t}`},nu=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.hiddenInput)!=null?n:`pin-input:${e.id}:hidden`},YA=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`pin-input:${e.id}:label`},XA=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.control)!=null?n:`pin-input:${e.id}:control`},ZA=e=>e.getById(Xa(e)),cl=e=>{let n=`input[data-ownedby=${CSS.escape(Xa(e))}]`;return xe(ZA(e),n)},Ya=(e,t)=>cl(e)[t],JA=e=>cl(e)[0],eu=e=>e.getById(nu(e)),tu=(e,t)=>{e.value=t,e.setAttribute("value",t)},QA={numeric:/^[0-9]+$/,alphabetic:/^[A-Za-z]+$/,alphanumeric:/^[a-zA-Z0-9]+$/i};({choose:nR,createMachine:rR}=Ot()),iR=rR({props({props:e}){return v(p({placeholder:"\u25CB",otp:!1,type:"numeric",defaultValue:e.count?ll([],e.count):[]},e),{translations:p({inputLabel:(t,n)=>`pin code ${t+1} of ${n}`},e.translations)})},initialState(){return"idle"},context({prop:e,bindable:t}){return{value:t(()=>({value:e("value"),defaultValue:e("defaultValue"),isEqual:Ie,onChange(n){var r;(r=e("onValueChange"))==null||r({value:n,valueAsString:n.join("")})}})),focusedIndex:t(()=>({sync:!0,defaultValue:-1})),count:t(()=>({defaultValue:e("count")}))}},computed:{_value:({context:e})=>ll(e.get("value"),e.get("count")),valueLength:({computed:e})=>e("_value").length,filledValueLength:({computed:e})=>e("_value").filter(t=>(t==null?void 0:t.trim())!=="").length,isValueComplete:({computed:e})=>e("valueLength")===e("filledValueLength"),valueAsString:({computed:e})=>e("_value").join(""),focusedValue:({computed:e,context:t})=>e("_value")[t.get("focusedIndex")]||""},entry:nR([{guard:"autoFocus",actions:["setInputCount","setFocusIndexToFirst"]},{actions:["setInputCount"]}]),watch({action:e,track:t,context:n,computed:r}){t([()=>n.get("focusedIndex")],()=>{e(["focusInput","selectInputIfNeeded"])}),t([()=>n.get("value").join(",")],()=>{e(["syncInputElements","dispatchInputEvent"])}),t([()=>r("isValueComplete")],()=>{e(["invokeOnComplete","blurFocusedInputIfNeeded","autoSubmitIfNeeded"])})},on:{"VALUE.SET":[{guard:"hasIndex",actions:["setValueAtIndex"]},{actions:["setValue"]}],"VALUE.CLEAR":{actions:["clearValue","setFocusIndexToFirst"]}},states:{idle:{on:{"INPUT.FOCUS":{target:"focused",actions:["setFocusedIndex"]}}},focused:{on:{"INPUT.CHANGE":{actions:["setFocusedValue","syncInputValue","advanceFocusedIndex"]},"INPUT.ADVANCE":{actions:["advanceFocusedIndex"]},"INPUT.PASTE":{actions:["setPastedValue","setLastValueFocusIndex"]},"INPUT.FOCUS":{actions:["setFocusedIndex","focusInput"]},"INPUT.BLUR":{target:"idle",actions:["clearFocusedIndex"]},"INPUT.DELETE":{guard:"hasValue",actions:["clearFocusedValue"]},"INPUT.ARROW_LEFT":{actions:["setPrevFocusedIndex"]},"INPUT.ARROW_RIGHT":{actions:["setNextFocusedIndex"]},"INPUT.HOME":{actions:["setFocusIndexToFirst"]},"INPUT.END":{actions:["setFocusIndexToLast"]},"INPUT.BACKSPACE":[{guard:"hasValue",actions:["clearFocusedValue","setPrevFocusedIndex"]},{actions:["setPrevFocusedIndex","clearFocusedValue"]}],"INPUT.ENTER":{guard:"isValueComplete",actions:["requestFormSubmit"]},"VALUE.INVALID":{actions:["invokeOnInvalid"]}}}},implementations:{guards:{autoFocus:({prop:e})=>!!e("autoFocus"),hasValue:({context:e})=>e.get("value")[e.get("focusedIndex")]!=="",isValueComplete:({computed:e})=>e("isValueComplete"),hasIndex:({event:e})=>e.index!==void 0},actions:{dispatchInputEvent({computed:e,scope:t}){let n=eu(t);Fo(n,{value:e("valueAsString")})},setInputCount({scope:e,context:t,prop:n}){if(n("count"))return;let r=cl(e);t.set("count",r.length)},focusInput({context:e,scope:t}){let n=e.get("focusedIndex");n!==-1&&queueMicrotask(()=>{var r;(r=Ya(t,n))==null||r.focus({preventScroll:!0})})},selectInputIfNeeded({context:e,prop:t,scope:n}){let r=e.get("focusedIndex");!t("selectOnFocus")||r===-1||$(()=>{var i;(i=Ya(n,r))==null||i.select()})},invokeOnComplete({computed:e,prop:t}){var n;e("isValueComplete")&&((n=t("onValueComplete"))==null||n({value:e("_value"),valueAsString:e("valueAsString")}))},invokeOnInvalid({context:e,event:t,prop:n}){var r;(r=n("onValueInvalid"))==null||r({value:t.value,index:e.get("focusedIndex")})},clearFocusedIndex({context:e}){e.set("focusedIndex",-1)},setFocusedIndex({context:e,event:t,computed:n}){let r=Math.min(n("filledValueLength"),n("valueLength")-1);e.set("focusedIndex",Math.min(t.index,r))},setValue({context:e,event:t}){let n=ll(t.value,e.get("count"));e.set("value",n)},setFocusedValue({context:e,event:t,computed:n,flush:r}){let i=n("focusedValue"),a=e.get("focusedIndex"),o=oy(i,t.value);r(()=>{e.set("value",cc(n("_value"),a,o))})},revertInputValue({context:e,computed:t,scope:n}){let r=Ya(n,e.get("focusedIndex"));tu(r,t("focusedValue"))},syncInputValue({context:e,event:t,scope:n}){let r=e.get("value"),i=Ya(n,t.index);tu(i,r[t.index])},syncInputElements({context:e,scope:t}){let n=cl(t),r=e.get("value");n.forEach((i,a)=>{tu(i,r[a])})},setPastedValue({context:e,event:t,computed:n,flush:r}){$(()=>{let i=n("valueAsString"),a=e.get("focusedIndex"),o=n("valueLength"),s=n("filledValueLength"),l=Math.min(a,s),c=l>0?i.substring(0,a):"",d=t.value.substring(0,o-l),g=ll(`${c}${d}`.split(""),o);r(()=>{e.set("value",g)})})},setValueAtIndex({context:e,event:t,computed:n}){let r=oy(n("focusedValue"),t.value);e.set("value",cc(n("_value"),t.index,r))},clearValue({context:e}){let t=Array.from({length:e.get("count")}).fill("");queueMicrotask(()=>{e.set("value",t)})},clearFocusedValue({context:e,computed:t}){let n=e.get("focusedIndex");if(n===-1)return;let r=[...t("_value")];r.splice(n,1),r.push(""),e.set("value",r)},setFocusIndexToFirst({context:e}){e.set("focusedIndex",0)},setFocusIndexToLast({context:e,computed:t}){e.set("focusedIndex",Math.max(t("filledValueLength")-1,0))},advanceFocusedIndex({context:e,computed:t}){e.set("focusedIndex",Math.min(e.get("focusedIndex")+1,t("valueLength")-1))},setNextFocusedIndex({context:e,computed:t}){let n=e.get("focusedIndex")+1,r=Math.min(t("filledValueLength"),t("valueLength")-1);e.set("focusedIndex",Math.min(n,r))},setPrevFocusedIndex({context:e}){e.set("focusedIndex",Math.max(e.get("focusedIndex")-1,0))},setLastValueFocusIndex({context:e,computed:t}){$(()=>{e.set("focusedIndex",Math.min(t("filledValueLength"),t("valueLength")-1))})},blurFocusedInputIfNeeded({context:e,computed:t,prop:n,scope:r}){!n("blurOnComplete")||!t("isValueComplete")||$(()=>{var i;(i=Ya(r,e.get("focusedIndex")))==null||i.blur()})},requestFormSubmit({computed:e,prop:t,scope:n}){var i;if(!t("name")||!e("isValueComplete"))return;let r=eu(n);(i=r==null?void 0:r.form)==null||i.requestSubmit()},autoSubmitIfNeeded({computed:e,prop:t,scope:n}){var i;if(!t("autoSubmit")||!e("isValueComplete"))return;let r=eu(n);(i=r==null?void 0:r.form)==null||i.requestSubmit()}}}});aR=class extends X{initMachine(e){return new Y(iR,e)}initApi(){return this.zagConnect(tR)}render(){var i;let e=(i=this.el.querySelector('[data-scope="pin-input"][data-part="root"]'))!=null?i:this.el;this.spreadProps(e,this.api.getRootProps());let t=this.el.querySelector('[data-scope="pin-input"][data-part="label"]');t&&this.spreadProps(t,this.api.getLabelProps());let n=this.el.querySelector('[data-scope="pin-input"][data-part="hidden-input"]');n&&this.spreadProps(n,this.api.getHiddenInputProps());let r=this.el.querySelector('[data-scope="pin-input"][data-part="control"]');r&&this.spreadProps(r,this.api.getControlProps()),this.api.items.forEach(a=>{let o=this.el.querySelector(`[data-scope="pin-input"][data-part="input"][data-index="${a}"]`);o&&this.spreadProps(o,this.api.getInputProps({index:a}))})}};cR={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>Q(this.liveSocket),r=new aR(e,lR(e,t,n));r.init(),this.pinInput=r;let i=s=>{let l=r.api,c=l.value,d=l.valueAsString;je({respondTo:s,canPushServer:n(),pushEvent:t,serverEventName:"pin_input_value_response",serverPayload:{id:e.id,value:c,valueAsString:d},el:e,domEventName:"pin-input-value",domDetail:{id:e.id,value:c,valueAsString:d}})},a=de(e);this.domRegistry=a,a.add("corex:pin-input:set-value",s=>{var c;let l=(c=s.detail)==null?void 0:c.value;Array.isArray(l)&&r.api.setValue(l)}),a.add("corex:pin-input:clear",()=>{r.api.clearValue()}),a.add("corex:pin-input:value",s=>{i(we(s.detail))});let o=ce(this);this.handleRegistry=o,o.add("pin_input_set_value",s=>{B(e.id,G(s))&&Array.isArray(s.value)&&r.api.setValue(s.value)}),o.add("pin_input_clear",s=>{B(e.id,G(s))&&r.api.clearValue()}),o.add("pin_input_value",s=>{B(e.id,G(s))&&i(we(s))})},updated(){var n;let e=this.el,t=U(e,"count");(n=this.pinInput)==null||n.updateProps({id:e.id,count:t,defaultValue:sy(e,t!=null?t:0),disabled:T(e,"disabled"),invalid:T(e,"invalid"),required:T(e,"required"),readOnly:T(e,"readOnly"),mask:T(e,"mask"),otp:T(e,"otp"),blurOnComplete:T(e,"blurOnComplete"),selectOnFocus:T(e,"selectOnFocus"),name:x(e,"name"),form:x(e,"form"),dir:q(e),type:x(e,"type"),placeholder:x(e,"placeholder")})},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.pinInput)==null||n.destroy()}}});var fy={};fe(fy,{RadioGroup:()=>IR});function yR(e,t){let{context:n,send:r,computed:i,prop:a,scope:o}=e,s=i("isDisabled"),l=a("invalid"),c=a("readOnly");function d(u){return{value:u.value,invalid:!!u.invalid||!!l,disabled:!!u.disabled||s,checked:n.get("value")===u.value,focused:n.get("focusedValue")===u.value,focusVisible:n.get("focusVisibleValue")===u.value,hovered:n.get("hoveredValue")===u.value,active:n.get("activeValue")===u.value}}function g(u){let f=d(u);return{"data-focus":S(f.focused),"data-focus-visible":S(f.focusVisible),"data-disabled":S(f.disabled),"data-readonly":S(c),"data-state":f.checked?"checked":"unchecked","data-hover":S(f.hovered),"data-invalid":S(f.invalid),"data-orientation":a("orientation"),"data-ssr":S(n.get("ssr"))}}let h=()=>{var f;let u=(f=fR(o))!=null?f:pR(o);u==null||u.focus()};return{focus:h,value:n.get("value"),setValue(u){r({type:"SET_VALUE",value:u,isTrusted:!1})},clearValue(){r({type:"SET_VALUE",value:null,isTrusted:!1})},getRootProps(){return t.element(v(p({},Xi.root.attrs),{role:"radiogroup",id:dl(o),"aria-labelledby":dy(o),"aria-required":a("required")||void 0,"aria-disabled":s||void 0,"aria-readonly":c||void 0,"data-orientation":a("orientation"),"data-disabled":S(s),"data-invalid":S(l),"data-required":S(a("required")),"aria-orientation":a("orientation"),dir:a("dir"),style:{position:"relative"}}))},getLabelProps(){return t.element(v(p({},Xi.label.attrs),{dir:a("dir"),"data-orientation":a("orientation"),"data-disabled":S(s),"data-invalid":S(l),"data-required":S(a("required")),id:dy(o),onClick:h}))},getItemState:d,getItemProps(u){let f=d(u);return t.label(v(p(v(p({},Xi.item.attrs),{dir:a("dir"),id:hy(o,u.value),htmlFor:ru(o,u.value)}),g(u)),{onPointerMove(){f.disabled||f.hovered||r({type:"SET_HOVERED",value:u.value,hovered:!0})},onPointerLeave(){f.disabled||r({type:"SET_HOVERED",value:null})},onPointerDown(m){f.disabled||Ee(m)&&(f.focused&&m.pointerType==="mouse"&&m.preventDefault(),r({type:"SET_ACTIVE",value:u.value,active:!0}))},onPointerUp(){f.disabled||r({type:"SET_ACTIVE",value:null})},onClick(){var m;!f.disabled&&yt()&&((m=gR(o,u.value))==null||m.focus())}}))},getItemTextProps(u){return t.element(p(v(p({},Xi.itemText.attrs),{dir:a("dir"),id:uy(o,u.value)}),g(u)))},getItemControlProps(u){let f=d(u);return t.element(p(v(p({},Xi.itemControl.attrs),{dir:a("dir"),id:uR(o,u.value),"data-active":S(f.active),"aria-hidden":!0}),g(u)))},getItemHiddenInputProps(u){let f=d(u);return t.input({"data-ownedby":dl(o),id:ru(o,u.value),type:"radio",name:a("name")||a("id"),form:a("form"),value:u.value,required:a("required"),"aria-labelledby":uy(o,u.value),"aria-invalid":f.invalid||void 0,onClick(m){if(c){m.preventDefault();return}m.currentTarget.checked&&r({type:"SET_VALUE",value:u.value,isTrusted:!0})},onBlur(){r({type:"SET_FOCUSED",value:null,focused:!1,focusVisible:!1})},onFocus(){let m=ln();r({type:"SET_FOCUSED",value:u.value,focused:!0,focusVisible:m})},onKeyDown(m){m.defaultPrevented||m.key===" "&&r({type:"SET_ACTIVE",value:u.value,active:!0})},onKeyUp(m){m.defaultPrevented||m.key===" "&&r({type:"SET_ACTIVE",value:null})},disabled:f.disabled||c,defaultChecked:f.checked,style:dt})},getIndicatorProps(){let u=n.get("indicatorRect"),f=n.get("animateIndicator");return t.element(v(p({id:py(o)},Xi.indicator.attrs),{dir:a("dir"),hidden:n.get("value")==null||bR(u),"data-disabled":S(s),"data-orientation":a("orientation"),onTransitionEnd(m){ee(m)===m.currentTarget&&r({type:"INDICATOR_TRANSITION_END"})},style:{"--transition-property":"left, top, width, height","--left":Re(u==null?void 0:u.x),"--top":Re(u==null?void 0:u.y),"--width":Re(u==null?void 0:u.width),"--height":Re(u==null?void 0:u.height),position:"absolute",willChange:f?"var(--transition-property)":"auto",transitionProperty:f?"var(--transition-property)":"none",transitionDuration:f?"var(--transition-duration, 150ms)":"0ms",transitionTimingFunction:"var(--transition-timing-function)",[a("orientation")==="horizontal"?"left":"top"]:a("orientation")==="horizontal"?"var(--left)":"var(--top)"}}))}}}function CR(e,t){return{id:e.id,value:t.value}}var dR,Xi,dl,dy,hy,ru,uR,uy,py,ul,gR,hR,pR,fR,gy,mR,vR,bR,ER,SR,PR,IR,my=ne(()=>{"use strict";ac();Ln();Nt();Ce();se();dR=j("radio-group").parts("root","label","item","itemText","itemControl","indicator"),Xi=dR.build(),dl=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`radio-group:${e.id}`},dy=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`radio-group:${e.id}:label`},hy=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.item)==null?void 0:r.call(n,t))!=null?i:`radio-group:${e.id}:radio:${t}`},ru=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemHiddenInput)==null?void 0:r.call(n,t))!=null?i:`radio-group:${e.id}:radio:input:${t}`},uR=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemControl)==null?void 0:r.call(n,t))!=null?i:`radio-group:${e.id}:radio:control:${t}`},uy=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemLabel)==null?void 0:r.call(n,t))!=null?i:`radio-group:${e.id}:radio:label:${t}`},py=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.indicator)!=null?n:`radio-group:${e.id}:indicator`},ul=e=>e.getById(dl(e)),gR=(e,t)=>e.getById(ru(e,t)),hR=e=>e.getById(py(e)),pR=e=>{var t;return(t=ul(e))==null?void 0:t.querySelector("input:not(:disabled)")},fR=e=>{var t;return(t=ul(e))==null?void 0:t.querySelector("input:not(:disabled):checked")},gy=e=>{let n=`input[type=radio][data-ownedby='${CSS.escape(dl(e))}']:not([disabled])`;return xe(ul(e),n)},mR=(e,t)=>{if(t)return e.getById(hy(e,t))},vR=e=>{var t,n,r,i;return{x:(t=e==null?void 0:e.offsetLeft)!=null?t:0,y:(n=e==null?void 0:e.offsetTop)!=null?n:0,width:(r=e==null?void 0:e.offsetWidth)!=null?r:0,height:(i=e==null?void 0:e.offsetHeight)!=null?i:0}};bR=e=>e==null||e.width===0&&e.height===0&&e.x===0&&e.y===0,{not:ER}=Te(),SR=te({props({props:e}){return p({orientation:"vertical"},e)},initialState(){return"idle"},context({prop:e,bindable:t}){return{value:t(()=>({defaultValue:e("defaultValue"),value:e("value"),onChange(n){var r;(r=e("onValueChange"))==null||r({value:n})}})),activeValue:t(()=>({defaultValue:null})),focusedValue:t(()=>({defaultValue:null})),focusVisibleValue:t(()=>({defaultValue:null})),hoveredValue:t(()=>({defaultValue:null})),indicatorRect:t(()=>({defaultValue:null})),animateIndicator:t(()=>({defaultValue:!1})),fieldsetDisabled:t(()=>({defaultValue:!1})),ssr:t(()=>({defaultValue:!0}))}},refs(){return{indicatorCleanup:null,focusVisibleValue:null,prevValue:null}},computed:{isDisabled:({prop:e,context:t})=>!!e("disabled")||t.get("fieldsetDisabled")},entry:["syncPrevValue","syncIndicatorRect","syncSsr"],exit:["cleanupObserver"],effects:["trackFormControlState","trackFocusVisible"],watch({track:e,action:t,context:n}){e([()=>n.get("value")],()=>{t(["syncIndicatorAnimation","syncIndicatorRect","syncInputElements"])})},on:{SET_VALUE:[{guard:ER("isTrusted"),actions:["setValue","dispatchChangeEvent"]},{actions:["setValue"]}],SET_HOVERED:{actions:["setHovered"]},SET_ACTIVE:{actions:["setActive"]},SET_FOCUSED:{actions:["setFocused"]},INDICATOR_TRANSITION_END:{actions:["clearIndicatorAnimation"]}},states:{idle:{}},implementations:{guards:{isTrusted:({event:e})=>!!e.isTrusted},effects:{trackFormControlState({context:e,scope:t}){return Rt(ul(t),{onFieldsetDisabledChange(n){e.set("fieldsetDisabled",n)},onFormReset(){e.set("value",e.initial("value"))}})},trackFocusVisible({scope:e}){var t;return et({root:(t=e.getRootNode)==null?void 0:t.call(e)})}},actions:{setValue({context:e,event:t}){e.set("value",t.value)},setHovered({context:e,event:t}){e.set("hoveredValue",t.value)},setActive({context:e,event:t}){e.set("activeValue",t.value)},setFocused({context:e,event:t}){e.set("focusedValue",t.value);let n=t.value!=null&&t.focusVisible?t.value:null;e.set("focusVisibleValue",n)},syncPrevValue({context:e,refs:t}){t.set("prevValue",e.get("value"))},syncIndicatorAnimation({context:e,refs:t}){let n=t.get("prevValue"),r=e.get("value"),i=n!=null&&r!=null&&n!==r;e.set("animateIndicator",i),t.set("prevValue",r)},clearIndicatorAnimation({context:e}){e.set("animateIndicator",!1)},syncInputElements({context:e,scope:t}){gy(t).forEach(r=>{r.checked=r.value===e.get("value")})},cleanupObserver({refs:e}){var t;(t=e.get("indicatorCleanup"))==null||t()},syncSsr({context:e}){e.set("ssr",!1)},syncIndicatorRect({context:e,scope:t,refs:n}){var s;if((s=n.get("indicatorCleanup"))==null||s(),!hR(t))return;let r=e.get("value"),i=mR(t,r);if(r==null||!i){e.set("indicatorRect",null);return}let a=()=>{e.set("indicatorRect",vR(i))};a();let o=kn.observe(i,a);n.set("indicatorCleanup",o)},dispatchChangeEvent({context:e,scope:t}){gy(t).forEach(r=>{let i=r.value===e.get("value");i!==r.checked&&vi(r,{checked:i})})}}}}),PR=class extends X{initMachine(e){return new Y(SR,e)}initApi(){return this.zagConnect(yR)}render(){var r;let e=(r=this.el.querySelector('[data-scope="radio-group"][data-part="root"]'))!=null?r:this.el;this.spreadProps(e,this.api.getRootProps());let t=this.el.querySelector('[data-scope="radio-group"][data-part="label"]');t&&this.spreadProps(t,this.api.getLabelProps());let n=this.el.querySelector('[data-scope="radio-group"][data-part="indicator"]');n&&this.spreadProps(n,this.api.getIndicatorProps()),this.el.querySelectorAll('[data-scope="radio-group"][data-part="item"]').forEach(i=>{let a=i.dataset.value;if(a==null)return;let o=i.dataset.disabled==="true",s=i.dataset.invalid==="true";this.spreadProps(i,this.api.getItemProps({value:a,disabled:o,invalid:s}));let l=i.querySelector('[data-scope="radio-group"][data-part="item-text"]');l&&this.spreadProps(l,this.api.getItemTextProps({value:a,disabled:o,invalid:s}));let c=i.querySelector('[data-scope="radio-group"][data-part="item-control"]');c&&this.spreadProps(c,this.api.getItemControlProps({value:a,disabled:o,invalid:s}));let d=i.querySelector('[data-scope="radio-group"][data-part="item-hidden-input"]');d&&this.spreadProps(d,this.api.getItemHiddenInputProps({value:a,disabled:o,invalid:s}))})}};IR={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>Q(this.liveSocket),r=new PR(e,v(p({id:e.id},Ug(e,"value","defaultValue")),{name:x(e,"name"),form:x(e,"form"),disabled:T(e,"disabled"),invalid:T(e,"invalid"),required:T(e,"required"),readOnly:T(e,"readOnly"),dir:q(e),orientation:x(e,"orientation"),onValueChange:i=>{let a=e.querySelector('[data-scope="radio-group"][data-part="item-hidden-input"]:checked');a&&(a.dispatchEvent(new Event("input",{bubbles:!0})),a.dispatchEvent(new Event("change",{bubbles:!0}))),K({el:e,canPushServer:n(),pushEvent:t,payload:CR(e,i),serverEventName:x(e,"onValueChange"),clientEventName:x(e,"onValueChangeClient")})}}));r.init(),this.radioGroup=r},updated(){var e;(e=this.radioGroup)==null||e.updateProps(v(p({id:this.el.id},qg(this.el,"value","defaultValue")),{name:x(this.el,"name"),form:x(this.el,"form"),disabled:T(this.el,"disabled"),invalid:T(this.el,"invalid"),required:T(this.el,"required"),readOnly:T(this.el,"readOnly"),orientation:x(this.el,"orientation"),dir:q(this.el)}))},destroyed(){var e;(e=this.radioGroup)==null||e.destroy()}}});var Cy={};fe(Cy,{Select:()=>LR});function AR(e,t){let{context:n,prop:r,scope:i,state:a,computed:o,send:s}=e,l=r("translations"),c=r("disabled")||n.get("fieldsetDisabled"),d=!!r("invalid"),g=!!r("required"),h=!!r("readOnly"),u=r("composite"),f=r("collection"),m=a.hasTag("open"),P=a.matches("focused"),C=n.get("highlightedValue"),V=n.get("highlightedItem"),I=o("selectedItems"),b=n.get("currentPlacement"),y=o("isTypingAhead"),E=o("isInteractive"),A=C?lu(i,C):void 0;function N(w){let k=f.getItemDisabled(w.item),R=f.getItemValue(w.item);return jt(R,()=>`[zag-js] No value found for item ${JSON.stringify(w.item)}`),{value:R,disabled:!!(c||k),highlighted:C===R,selected:n.get("value").includes(R)}}let O=Lt(v(p({},r("positioning")),{placement:b}));return{open:m,focused:P,empty:n.get("value").length===0,highlightedItem:V,highlightedValue:C,selectedItems:I,hasSelectedItems:o("hasSelectedItems"),value:n.get("value"),valueAsString:o("valueAsString"),collection:f,multiple:!!r("multiple"),disabled:!!c,reposition(w={}){s({type:"POSITIONING.SET",options:w})},focus(){var w;(w=ri(i))==null||w.focus({preventScroll:!0})},setOpen(w){a.hasTag("open")!==w&&s({type:w?"OPEN":"CLOSE"})},selectValue(w){s({type:"ITEM.SELECT",value:w})},setValue(w){s({type:"VALUE.SET",value:w})},selectAll(){s({type:"VALUE.SET",value:f.getValues()})},setHighlightValue(w){s({type:"HIGHLIGHTED_VALUE.SET",value:w})},clearHighlightValue(){s({type:"HIGHLIGHTED_VALUE.CLEAR"})},clearValue(w){s(w?{type:"ITEM.CLEAR",value:w}:{type:"VALUE.CLEAR"})},getItemState:N,getRootProps(){return t.element(v(p({},at.root.attrs),{dir:r("dir"),id:wR(i),"data-invalid":S(d),"data-readonly":S(h)}))},getLabelProps(){return t.label(v(p({dir:r("dir"),id:gl(i)},at.label.attrs),{"data-disabled":S(c),"data-invalid":S(d),"data-readonly":S(h),"data-required":S(g),htmlFor:cu(i),onClick(w){var k;w.defaultPrevented||c||(k=ri(i))==null||k.focus({preventScroll:!0})}}))},getControlProps(){return t.element(v(p({},at.control.attrs),{dir:r("dir"),id:OR(i),"data-state":m?"open":"closed","data-focus":S(P),"data-disabled":S(c),"data-invalid":S(d)}))},getValueTextProps(){return t.element(v(p({},at.valueText.attrs),{dir:r("dir"),"data-disabled":S(c),"data-invalid":S(d),"data-focus":S(P)}))},getTriggerProps(){return t.button(v(p({id:su(i),disabled:c,dir:r("dir"),type:"button",role:"combobox","aria-controls":ou(i),"aria-expanded":m,"aria-haspopup":"listbox","data-state":m?"open":"closed","aria-invalid":d,"aria-required":g,"aria-labelledby":gl(i)},at.trigger.attrs),{"data-disabled":S(c),"data-invalid":S(d),"data-readonly":S(h),"data-placement":b,"data-placeholder-shown":S(!o("hasSelectedItems")),onClick(w){E&&(w.defaultPrevented||s({type:"TRIGGER.CLICK"}))},onFocus(){s({type:"TRIGGER.FOCUS"})},onBlur(){s({type:"TRIGGER.BLUR"})},onKeyDown(w){if(w.defaultPrevented||!E)return;let R={ArrowUp(){s({type:"TRIGGER.ARROW_UP"})},ArrowDown(D){s({type:D.altKey?"OPEN":"TRIGGER.ARROW_DOWN"})},ArrowLeft(){s({type:"TRIGGER.ARROW_LEFT"})},ArrowRight(){s({type:"TRIGGER.ARROW_RIGHT"})},Home(){s({type:"TRIGGER.HOME"})},End(){s({type:"TRIGGER.END"})},Enter(){s({type:"TRIGGER.ENTER"})},Space(D){s(y?{type:"TRIGGER.TYPEAHEAD",key:D.key}:{type:"TRIGGER.ENTER"})}}[ve(w,{dir:r("dir"),orientation:"vertical"})];if(R){R(w),w.preventDefault();return}ct.isValidEvent(w)&&(s({type:"TRIGGER.TYPEAHEAD",key:w.key}),w.preventDefault())}}))},getIndicatorProps(){return t.element(v(p({},at.indicator.attrs),{dir:r("dir"),"aria-hidden":!0,"data-state":m?"open":"closed","data-disabled":S(c),"data-invalid":S(d),"data-readonly":S(h)}))},getItemProps(w){let k=N(w);return t.element(v(p({id:lu(i,k.value),role:"option"},at.item.attrs),{dir:r("dir"),"data-value":k.value,"aria-selected":k.selected,"data-state":k.selected?"checked":"unchecked","data-highlighted":S(k.highlighted),"data-disabled":S(k.disabled),"aria-disabled":oe(k.disabled),onPointerMove(R){k.disabled||R.pointerType!=="mouse"||k.value!==C&&s({type:"ITEM.POINTER_MOVE",value:k.value})},onClick(R){R.defaultPrevented||k.disabled||s({type:"ITEM.CLICK",src:"pointerup",value:k.value})},onPointerLeave(R){var W;k.disabled||w.persistFocus||R.pointerType!=="mouse"||!((W=e.event.previous())!=null&&W.type.includes("POINTER"))||s({type:"ITEM.POINTER_LEAVE"})}}))},getItemTextProps(w){let k=N(w);return t.element(v(p({},at.itemText.attrs),{"data-state":k.selected?"checked":"unchecked","data-disabled":S(k.disabled),"data-highlighted":S(k.highlighted)}))},getItemIndicatorProps(w){let k=N(w);return t.element(v(p({"aria-hidden":!0},at.itemIndicator.attrs),{"data-state":k.selected?"checked":"unchecked",hidden:!k.selected}))},getItemGroupLabelProps(w){let{htmlFor:k}=w;return t.element(v(p({},at.itemGroupLabel.attrs),{id:vy(i,k),dir:r("dir"),role:"presentation"}))},getItemGroupProps(w){let{id:k}=w;return t.element(v(p({},at.itemGroup.attrs),{"data-disabled":S(c),id:VR(i,k),"aria-labelledby":vy(i,k),role:"group",dir:r("dir")}))},getClearTriggerProps(){return t.button(v(p({},at.clearTrigger.attrs),{id:Sy(i),type:"button","aria-label":l.clearTriggerLabel,"data-invalid":S(d),disabled:c,hidden:!o("hasSelectedItems"),dir:r("dir"),onClick(w){w.defaultPrevented||s({type:"CLEAR.CLICK"})}}))},getHiddenSelectProps(){let w=n.get("value"),k=r("multiple")?w:w==null?void 0:w[0],R=D=>{let W=zt(D);Kl(W)||s({type:"VALUE.SET",value:RR(D.currentTarget)})};return t.select({name:r("name"),form:r("form"),disabled:c,multiple:r("multiple"),required:r("required"),"aria-hidden":!0,id:cu(i),defaultValue:k,style:dt,tabIndex:-1,autoComplete:r("autoComplete"),onChange:R,onInput:R,onFocus(){var D;(D=ri(i))==null||D.focus({preventScroll:!0})},"aria-labelledby":gl(i)})},getPositionerProps(){return t.element(v(p({},at.positioner.attrs),{dir:r("dir"),id:Py(i),style:O.floating}))},getContentProps(){return t.element(v(p({hidden:!m,dir:r("dir"),id:ou(i),role:u?"listbox":"dialog"},at.content.attrs),{"data-state":m?"open":"closed","data-placement":b,"data-activedescendant":A,"aria-activedescendant":u?A:void 0,"aria-multiselectable":r("multiple")&&u?!0:void 0,"aria-labelledby":gl(i),tabIndex:0,onKeyDown(w){if(!E||!ge(w.currentTarget,ee(w)))return;if(w.key==="Tab"&&!Ho(w)){w.preventDefault();return}let k={ArrowUp(){s({type:"CONTENT.ARROW_UP"})},ArrowDown(){s({type:"CONTENT.ARROW_DOWN"})},Home(){s({type:"CONTENT.HOME"})},End(){s({type:"CONTENT.END"})},Enter(){s({type:"ITEM.CLICK",src:"keydown.enter"})},Space(W){var Z;y?s({type:"CONTENT.TYPEAHEAD",key:W.key}):(Z=k.Enter)==null||Z.call(k,W)}},R=k[ve(w)];if(R){R(w),w.preventDefault();return}let D=ee(w);xt(D)||ct.isValidEvent(w)&&(s({type:"CONTENT.TYPEAHEAD",key:w.key}),w.preventDefault())}}))},getListProps(){return t.element(v(p({},at.list.attrs),{tabIndex:0,role:u?void 0:"listbox","aria-labelledby":su(i),"aria-activedescendant":u?void 0:A,"aria-multiselectable":!u&&r("multiple")?!0:void 0}))}}}function by(e){var n,r;let t=(r=e.restoreFocus)!=null?r:(n=e.previousEvent)==null?void 0:n.restoreFocus;return t==null||!!t}function Ey(e,t){return Qa(t?{items:e,itemToValue:n=>{var r,i;return(i=(r=n.id)!=null?r:n.value)!=null?i:""},itemToString:n=>n.label,isItemDisabled:n=>!!n.disabled,groupBy:n=>{var r;return(r=n.group)!=null?r:""}}:{items:e,itemToValue:n=>{var r,i;return(i=(r=n.id)!=null?r:n.value)!=null?i:""},itemToString:n=>n.label,isItemDisabled:n=>!!n.disabled})}var TR,at,Qa,wR,ou,su,Sy,gl,OR,lu,cu,Py,VR,vy,iu,Za,ri,xR,yy,au,RR,Ja,ni,kR,NR,DR,LR,Iy=ne(()=>{"use strict";$r();gr();gn();hr();Ts();wa();Di();Ln();_e();Ce();se();TR=j("select").parts("label","positioner","trigger","indicator","clearTrigger","item","itemText","itemIndicator","itemGroup","itemGroupLabel","list","content","root","control","valueText"),at=TR.build(),Qa=e=>new hn(e);Qa.empty=()=>new hn({items:[]});wR=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`select:${e.id}`},ou=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.content)!=null?n:`select:${e.id}:content`},su=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.trigger)!=null?n:`select:${e.id}:trigger`},Sy=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.clearTrigger)!=null?n:`select:${e.id}:clear-trigger`},gl=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`select:${e.id}:label`},OR=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.control)!=null?n:`select:${e.id}:control`},lu=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.item)==null?void 0:r.call(n,t))!=null?i:`select:${e.id}:option:${t}`},cu=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.hiddenSelect)!=null?n:`select:${e.id}:select`},Py=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.positioner)!=null?n:`select:${e.id}:positioner`},VR=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemGroup)==null?void 0:r.call(n,t))!=null?i:`select:${e.id}:optgroup:${t}`},vy=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.itemGroupLabel)==null?void 0:r.call(n,t))!=null?i:`select:${e.id}:optgroup-label:${t}`},iu=e=>e.getById(cu(e)),Za=e=>e.getById(ou(e)),ri=e=>e.getById(su(e)),xR=e=>e.getById(Sy(e)),yy=e=>e.getById(Py(e)),au=(e,t)=>t==null?null:e.getById(lu(e,t));RR=e=>e.multiple?Array.from(e.selectedOptions,t=>t.value):e.value?[e.value]:[],{and:Ja,not:ni,or:kR}=Te(),NR=te({props({props:e}){var t;return v(p({loopFocus:!1,closeOnSelect:!e.multiple,composite:!0,defaultValue:[]},e),{collection:(t=e.collection)!=null?t:Qa.empty(),translations:p({clearTriggerLabel:"Clear value"},e.translations),positioning:p({placement:"bottom-start",gutter:8},e.positioning)})},context({prop:e,bindable:t,getContext:n}){var a,o;let r=(o=(a=e("value"))!=null?a:e("defaultValue"))!=null?o:[],i=e("collection").findMany(r);return{value:t(()=>({defaultValue:e("defaultValue"),value:e("value"),isEqual:Ie,onChange(s){var f,m;let l=n(),c=e("collection"),d=l.get("selectedItemMap"),g=Pt({values:s,collection:c,selectedItemMap:d}),h=(f=e("value"))!=null?f:s,u=h===s?g:Pt({values:h,collection:c,selectedItemMap:g.nextSelectedItemMap});return l.set("selectedItemMap",u.nextSelectedItemMap),(m=e("onValueChange"))==null?void 0:m({value:s,items:g.selectedItems})}})),highlightedValue:t(()=>({defaultValue:e("defaultHighlightedValue")||null,value:e("highlightedValue"),onChange(s){var l;(l=e("onHighlightChange"))==null||l({highlightedValue:s,highlightedItem:e("collection").find(s),highlightedIndex:e("collection").indexOf(s)})}})),currentPlacement:t(()=>({defaultValue:void 0})),fieldsetDisabled:t(()=>({defaultValue:!1})),highlightedItem:t(()=>({defaultValue:null})),selectedItemMap:t(()=>({defaultValue:Ni({selectedItems:i,collection:e("collection")})}))}},refs(){return{typeahead:p({},ct.defaultOptions)}},computed:{hasSelectedItems:({context:e})=>e.get("value").length>0,isTypingAhead:({refs:e})=>e.get("typeahead").keysSoFar!=="",isDisabled:({prop:e,context:t})=>!!e("disabled")||!!t.get("fieldsetDisabled"),isInteractive:({prop:e})=>!(e("disabled")||e("readOnly")),selectedItems:({context:e,prop:t})=>Hr({values:e.get("value"),collection:t("collection"),selectedItemMap:e.get("selectedItemMap")}),valueAsString:({computed:e,prop:t})=>t("collection").stringifyItems(e("selectedItems"))},initialState({prop:e}){return e("open")||e("defaultOpen")?"open":"idle"},entry:["syncSelectElement"],watch({context:e,prop:t,track:n,action:r}){n([()=>e.get("value").toString()],()=>{r(["syncSelectedItems","syncSelectElement","dispatchChangeEvent"])}),n([()=>t("open")],()=>{r(["toggleVisibility"])}),n([()=>e.get("highlightedValue")],()=>{r(["syncHighlightedItem"])}),n([()=>t("collection").toString()],()=>{r(["syncCollection"])})},on:{"HIGHLIGHTED_VALUE.SET":{actions:["setHighlightedItem"]},"HIGHLIGHTED_VALUE.CLEAR":{actions:["clearHighlightedItem"]},"ITEM.SELECT":{actions:["selectItem"]},"ITEM.CLEAR":{actions:["clearItem"]},"VALUE.SET":{actions:["setSelectedItems"]},"VALUE.CLEAR":{actions:["clearSelectedItems"]},"CLEAR.CLICK":{actions:["clearSelectedItems","focusTriggerEl"]}},effects:["trackFormControlState"],states:{idle:{tags:["closed"],on:{"CONTROLLED.OPEN":[{guard:"isTriggerClickEvent",target:"open",actions:["setInitialFocus","highlightFirstSelectedItem"]},{target:"open",actions:["setInitialFocus"]}],"TRIGGER.CLICK":[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["invokeOnOpen","setInitialFocus","highlightFirstSelectedItem"]}],"TRIGGER.FOCUS":{target:"focused"},OPEN:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["setInitialFocus","invokeOnOpen"]}]}},focused:{tags:["closed"],on:{"CONTROLLED.OPEN":[{guard:"isTriggerClickEvent",target:"open",actions:["setInitialFocus","highlightFirstSelectedItem"]},{guard:"isTriggerArrowUpEvent",target:"open",actions:["setInitialFocus","highlightComputedLastItem"]},{guard:kR("isTriggerArrowDownEvent","isTriggerEnterEvent"),target:"open",actions:["setInitialFocus","highlightComputedFirstItem"]},{target:"open",actions:["setInitialFocus"]}],OPEN:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["setInitialFocus","invokeOnOpen"]}],"TRIGGER.BLUR":{target:"idle"},"TRIGGER.CLICK":[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["setInitialFocus","invokeOnOpen","highlightFirstSelectedItem"]}],"TRIGGER.ENTER":[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["setInitialFocus","invokeOnOpen","highlightComputedFirstItem"]}],"TRIGGER.ARROW_UP":[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["setInitialFocus","invokeOnOpen","highlightComputedLastItem"]}],"TRIGGER.ARROW_DOWN":[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["setInitialFocus","invokeOnOpen","highlightComputedFirstItem"]}],"TRIGGER.ARROW_LEFT":[{guard:Ja(ni("multiple"),"hasSelectedItems"),actions:["selectPreviousItem"]},{guard:ni("multiple"),actions:["selectLastItem"]}],"TRIGGER.ARROW_RIGHT":[{guard:Ja(ni("multiple"),"hasSelectedItems"),actions:["selectNextItem"]},{guard:ni("multiple"),actions:["selectFirstItem"]}],"TRIGGER.HOME":{guard:ni("multiple"),actions:["selectFirstItem"]},"TRIGGER.END":{guard:ni("multiple"),actions:["selectLastItem"]},"TRIGGER.TYPEAHEAD":{guard:ni("multiple"),actions:["selectMatchingItem"]}}},open:{tags:["open"],exit:["scrollContentToTop"],effects:["trackDismissableElement","trackFocusVisible","computePlacement","scrollToHighlightedItem"],on:{"CONTROLLED.CLOSE":[{guard:"restoreFocus",target:"focused",actions:["focusTriggerEl","clearHighlightedItem"]},{target:"idle",actions:["clearHighlightedItem"]}],CLOSE:[{guard:"isOpenControlled",actions:["invokeOnClose"]},{guard:"restoreFocus",target:"focused",actions:["invokeOnClose","focusTriggerEl","clearHighlightedItem"]},{target:"idle",actions:["invokeOnClose","clearHighlightedItem"]}],"TRIGGER.CLICK":[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"focused",actions:["invokeOnClose","clearHighlightedItem"]}],"ITEM.CLICK":[{guard:Ja("closeOnSelect","isOpenControlled"),actions:["selectHighlightedItem","invokeOnClose"]},{guard:"closeOnSelect",target:"focused",actions:["selectHighlightedItem","invokeOnClose","focusTriggerEl","clearHighlightedItem"]},{actions:["selectHighlightedItem"]}],"CONTENT.HOME":{actions:["highlightFirstItem"]},"CONTENT.END":{actions:["highlightLastItem"]},"CONTENT.ARROW_DOWN":[{guard:Ja("hasHighlightedItem","loop","isLastItemHighlighted"),actions:["highlightFirstItem"]},{guard:"hasHighlightedItem",actions:["highlightNextItem"]},{actions:["highlightFirstItem"]}],"CONTENT.ARROW_UP":[{guard:Ja("hasHighlightedItem","loop","isFirstItemHighlighted"),actions:["highlightLastItem"]},{guard:"hasHighlightedItem",actions:["highlightPreviousItem"]},{actions:["highlightLastItem"]}],"CONTENT.TYPEAHEAD":{actions:["highlightMatchingItem"]},"ITEM.POINTER_MOVE":{actions:["highlightItem"]},"ITEM.POINTER_LEAVE":{actions:["clearHighlightedItem"]},"POSITIONING.SET":{actions:["reposition"]}}}},implementations:{guards:{loop:({prop:e})=>!!e("loopFocus"),multiple:({prop:e})=>!!e("multiple"),hasSelectedItems:({computed:e})=>!!e("hasSelectedItems"),hasHighlightedItem:({context:e})=>e.get("highlightedValue")!=null,isFirstItemHighlighted:({context:e,prop:t})=>e.get("highlightedValue")===t("collection").firstValue,isLastItemHighlighted:({context:e,prop:t})=>e.get("highlightedValue")===t("collection").lastValue,closeOnSelect:({prop:e,event:t})=>{var n;return!!((n=t.closeOnSelect)!=null?n:e("closeOnSelect"))},restoreFocus:({event:e})=>by(e),isOpenControlled:({prop:e})=>e("open")!==void 0,isTriggerClickEvent:({event:e})=>{var t;return((t=e.previousEvent)==null?void 0:t.type)==="TRIGGER.CLICK"},isTriggerEnterEvent:({event:e})=>{var t;return((t=e.previousEvent)==null?void 0:t.type)==="TRIGGER.ENTER"},isTriggerArrowUpEvent:({event:e})=>{var t;return((t=e.previousEvent)==null?void 0:t.type)==="TRIGGER.ARROW_UP"},isTriggerArrowDownEvent:({event:e})=>{var t;return((t=e.previousEvent)==null?void 0:t.type)==="TRIGGER.ARROW_DOWN"}},effects:{trackFocusVisible({scope:e}){var t;return et({root:(t=e.getRootNode)==null?void 0:t.call(e)})},trackFormControlState({context:e,scope:t}){return Rt(iu(t),{onFieldsetDisabledChange(n){e.set("fieldsetDisabled",n)},onFormReset(){let n=e.initial("value");e.set("value",n)}})},trackDismissableElement({scope:e,send:t,prop:n}){let r=()=>Za(e),i=!0;return Mt(r,{type:"listbox",defer:!0,exclude:[ri(e),xR(e)],onFocusOutside:n("onFocusOutside"),onPointerDownOutside:n("onPointerDownOutside"),onInteractOutside(a){var o;(o=n("onInteractOutside"))==null||o(a),i=!(a.detail.focusable||a.detail.contextmenu)},onDismiss(){t({type:"CLOSE",src:"interact-outside",restoreFocus:i})}})},computePlacement({context:e,prop:t,scope:n}){let r=t("positioning");return e.set("currentPlacement",r.placement),ze(()=>ri(n),()=>yy(n),v(p({defer:!0},r),{onComplete(o){e.set("currentPlacement",o.placement)}}))},scrollToHighlightedItem({context:e,prop:t,scope:n}){let r=a=>{let o=e.get("highlightedValue");if(o==null||sr()==="pointer")return;let l=Za(n),c=t("scrollToIndexFn");if(c){let g=t("collection").indexOf(o);c==null||c({index:g,immediate:a,getElement:()=>au(n,o)});return}let d=au(n,o);Rn(d,{rootEl:l,block:"nearest"})};return $(()=>{lr("virtual"),r(!0)}),kt(()=>Za(n),{defer:!0,attributes:["data-activedescendant"],callback(){r(!1)}})}},actions:{reposition({context:e,prop:t,scope:n,event:r}){let i=()=>yy(n);ze(ri(n),i,v(p(p({},t("positioning")),r.options),{defer:!0,listeners:!1,onComplete(a){e.set("currentPlacement",a.placement)}}))},toggleVisibility({send:e,prop:t,event:n}){e({type:t("open")?"CONTROLLED.OPEN":"CONTROLLED.CLOSE",previousEvent:n})},highlightPreviousItem({context:e,prop:t}){let n=e.get("highlightedValue");if(n==null)return;let r=t("collection").getPreviousValue(n,1,t("loopFocus"));r!=null&&e.set("highlightedValue",r)},highlightNextItem({context:e,prop:t}){let n=e.get("highlightedValue");if(n==null)return;let r=t("collection").getNextValue(n,1,t("loopFocus"));r!=null&&e.set("highlightedValue",r)},highlightFirstItem({context:e,prop:t}){let n=t("collection").firstValue;e.set("highlightedValue",n)},highlightLastItem({context:e,prop:t}){let n=t("collection").lastValue;e.set("highlightedValue",n)},setInitialFocus({scope:e}){$(()=>{let t=nr({root:Za(e)});t==null||t.focus({preventScroll:!0})})},focusTriggerEl({event:e,scope:t}){by(e)&&$(()=>{let n=ri(t);n==null||n.focus({preventScroll:!0})})},selectHighlightedItem({context:e,prop:t,event:n}){var a,o;let r=(a=n.value)!=null?a:e.get("highlightedValue");if(r==null||!t("collection").has(r))return;(o=t("onSelect"))==null||o({value:r}),r=t("deselectable")&&!t("multiple")&&e.get("value").includes(r)?null:r,e.set("value",s=>r==null?[]:t("multiple")?Kt(s,r):[r])},highlightComputedFirstItem({context:e,prop:t,computed:n}){let r=t("collection"),i=n("hasSelectedItems")?r.sort(e.get("value"))[0]:r.firstValue;e.set("highlightedValue",i)},highlightComputedLastItem({context:e,prop:t,computed:n}){let r=t("collection"),i=n("hasSelectedItems")?r.sort(e.get("value"))[0]:r.lastValue;e.set("highlightedValue",i)},highlightFirstSelectedItem({context:e,prop:t,computed:n}){if(!n("hasSelectedItems"))return;let r=t("collection").sort(e.get("value"))[0];e.set("highlightedValue",r)},highlightItem({context:e,event:t}){e.set("highlightedValue",t.value)},highlightMatchingItem({context:e,prop:t,event:n,refs:r}){let i=t("collection").search(n.key,{state:r.get("typeahead"),currentValue:e.get("highlightedValue")});i!=null&&e.set("highlightedValue",i)},setHighlightedItem({context:e,event:t}){e.set("highlightedValue",t.value)},clearHighlightedItem({context:e}){e.set("highlightedValue",null)},selectItem({context:e,prop:t,event:n}){var a;(a=t("onSelect"))==null||a({value:n.value});let i=t("deselectable")&&!t("multiple")&&e.get("value").includes(n.value)?null:n.value;e.set("value",o=>i==null?[]:t("multiple")?Kt(o,i):[i])},clearItem({context:e,event:t}){e.set("value",n=>n.filter(r=>r!==t.value))},setSelectedItems({context:e,event:t}){e.set("value",t.value)},clearSelectedItems({context:e}){e.set("value",[])},selectPreviousItem({context:e,prop:t}){let[n]=e.get("value"),r=t("collection").getPreviousValue(n);r&&e.set("value",[r])},selectNextItem({context:e,prop:t}){let[n]=e.get("value"),r=t("collection").getNextValue(n);r&&e.set("value",[r])},selectFirstItem({context:e,prop:t}){let n=t("collection").firstValue;n&&e.set("value",[n])},selectLastItem({context:e,prop:t}){let n=t("collection").lastValue;n&&e.set("value",[n])},selectMatchingItem({context:e,prop:t,event:n,refs:r}){let i=t("collection").search(n.key,{state:r.get("typeahead"),currentValue:e.get("value")[0]});i!=null&&e.set("value",[i])},scrollContentToTop({prop:e,scope:t}){var n,r;if(e("scrollToIndexFn")){let i=e("collection").firstValue;(n=e("scrollToIndexFn"))==null||n({index:0,immediate:!0,getElement:()=>au(t,i)})}else(r=Za(t))==null||r.scrollTo(0,0)},invokeOnOpen({prop:e,context:t}){var n;(n=e("onOpenChange"))==null||n({open:!0,value:t.get("value")})},invokeOnClose({prop:e,context:t}){var n;(n=e("onOpenChange"))==null||n({open:!1,value:t.get("value")})},syncSelectElement({context:e,prop:t,scope:n}){let r=iu(n);if(r){if(e.get("value").length===0&&!t("multiple")){r.selectedIndex=-1;return}for(let i of r.options)i.selected=e.get("value").includes(i.value)}},syncCollection({context:e,prop:t}){let n=t("collection"),r=n.find(e.get("highlightedValue"));r&&e.set("highlightedItem",r);let i=Pt({values:e.get("value"),collection:n,selectedItemMap:e.get("selectedItemMap")});e.set("selectedItemMap",i.nextSelectedItemMap)},syncSelectedItems({context:e,prop:t}){let n=Pt({values:e.get("value"),collection:t("collection"),selectedItemMap:e.get("selectedItemMap")});e.set("selectedItemMap",n.nextSelectedItemMap)},syncHighlightedItem({context:e,prop:t}){let n=t("collection"),r=e.get("highlightedValue"),i=r?n.find(r):null;e.set("highlightedItem",i)},dispatchChangeEvent({scope:e}){queueMicrotask(()=>{let t=iu(e);if(!t)return;let n=e.getWin(),r=new n.Event("change",{bubbles:!0,composed:!0});t.dispatchEvent(_o(r))})}}}});DR=class extends X{constructor(t,n){var i;super(t,n);J(this,"_options",[]);J(this,"hasGroups",!1);J(this,"placeholder","");let r=n.collection;this._options=(i=r==null?void 0:r.items)!=null?i:[],this.placeholder=x(this.el,"placeholder")||""}get options(){return Array.isArray(this._options)?this._options:[]}setOptions(t){this._options=Array.isArray(t)?t:[]}getCollection(){return Qa(Is(this.options,this.hasGroups))}initMachine(t){let n=this.getCollection.bind(this);return new Y(NR,v(p({},t),{get collection(){return n()}}))}initApi(){return this.zagConnect(AR)}applyItemProps(){let t=this.el.querySelector('[data-scope="select"][data-part="content"]');if(!t)return;let n=r=>r.closest('[data-scope="select"][data-part="content"]')===t;t.querySelectorAll('[data-scope="select"][data-part="item-group"]').forEach(r=>{var o;if(!n(r))return;let i=(o=r.dataset.id)!=null?o:"";this.spreadProps(r,this.api.getItemGroupProps({id:i}));let a=r.querySelector('[data-scope="select"][data-part="item-group-label"]');a&&this.spreadProps(a,this.api.getItemGroupLabelProps({htmlFor:i}))}),t.querySelectorAll('[data-scope="select"][data-part="item"]').forEach(r=>{var l;if(!n(r))return;let i=(l=r.dataset.value)!=null?l:"";if(!i)return;let a=this.options.find(c=>{var d,g;return String((g=(d=c.id)!=null?d:c.value)!=null?g:"")===String(i)});if(!a)return;this.spreadProps(r,this.api.getItemProps({item:a}));let o=r.querySelector('[data-scope="select"][data-part="item-text"]');o&&this.spreadProps(o,this.api.getItemTextProps({item:a}));let s=r.querySelector('[data-scope="select"][data-part="item-indicator"]');s&&this.spreadProps(s,this.api.getItemIndicatorProps({item:a}))})}render(){var o,s;let t=(o=this.el.querySelector('[data-scope="select"][data-part="root"]'))!=null?o:this.el;this.spreadProps(t,this.api.getRootProps());let n=this.el.querySelector('[data-scope="select"][data-part="value-input"]');if(n){let l=(s=this.api.value)!=null&&s.length?this.api.value.map(String).join(","):"";n.value=l}let r=this.el.querySelector('[data-scope="select"][data-part="hidden-select"]');r&&this.spreadProps(r,this.api.getHiddenSelectProps()),["label","control","trigger","indicator","clear-trigger","positioner"].forEach(l=>{let c=this.el.querySelector(`[data-scope="select"][data-part="${l}"]`);if(!c)return;let d="get"+l.split("-").map(g=>g[0].toUpperCase()+g.slice(1)).join("")+"Props";this.spreadProps(c,this.api[d]())});let i=this.el.querySelector('[data-scope="select"][data-part="item-text"]');if(i&&this.el.dataset.updateTrigger!=="false"){let l=this.api.valueAsString;if(this.api.value&&this.api.value.length>0&&!l){let c=this.api.value[0],d=this.options.find(g=>{var u,f;let h=(f=(u=g.id)!=null?u:g.value)!=null?f:"";return String(h)===String(c)});i.textContent=(d==null?void 0:d.label)||this.placeholder}else i.textContent=l||this.placeholder}let a=this.el.querySelector('[data-scope="select"][data-part="content"]');a&&(this.spreadProps(a,this.api.getContentProps()),this.applyItemProps())}};LR={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>Q(this.liveSocket),r=JSON.parse(e.dataset.items||"[]"),i=r.some(d=>!!d.group),a=Ey(r,i),o=T(e,"redirect"),s=new DR(e,v(p({id:e.id,collection:a},T(e,"controlled")?{value:ie(e,"value")}:{defaultValue:ie(e,"defaultValue")}),{disabled:T(e,"disabled"),closeOnSelect:T(e,"closeOnSelect"),dir:q(e),loopFocus:T(e,"loopFocus"),multiple:o?!1:T(e,"multiple"),invalid:T(e,"invalid"),name:x(e,"name"),form:x(e,"form"),readOnly:T(e,"readOnly"),required:T(e,"required"),deselectable:T(e,"deselectable"),positioning:$e(e),onValueChange:d=>{let g=d.value.length>0?String(d.value[0]):null;if(T(e,"redirect")&&g){let u=e.querySelector(`[data-scope="select"][data-part="item"][data-value="${CSS.escape(g)}"]`);mn(fn(u,g),{liveSocket:this.liveSocket})}let h=e.querySelector('[data-scope="select"][data-part="value-input"]');h&&T(e,"controlled")&&(h.value=d.value.length===0?"":d.value.length===1?String(d.value[0]):d.value.map(String).join(","),h.dispatchEvent(new Event("input",{bubbles:!0})),h.dispatchEvent(new Event("change",{bubbles:!0}))),K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,value:d.value,items:d.items},serverEventName:x(e,"onValueChange"),clientEventName:x(e,"onValueChangeClient")})}}));s.hasGroups=i,s.setOptions(r),s.init(),this.select=s,this.handlers=[],this.lastItemsJson=e.dataset.items||"[]";let l=de(e);this.domRegistry=l,l.add("corex:select:set-value",d=>{s.api.setValue(d.detail.value)}),l.add("corex:select:set-open",d=>{s.api.setOpen(d.detail.open)});let c=ce(this);this.handleRegistry=c,c.add("select_set_value",d=>{B(e.id,G(d))&&s.api.setValue(d.value)}),c.add("select_set_open",d=>{B(e.id,G(d))&&typeof d.open=="boolean"&&s.api.setOpen(d.open)})},updated(){let e=this.el.dataset.items||"[]",t=e===this.lastItemsJson,n=T(this.el,"redirect"),r=v(p({id:this.el.id},T(this.el,"controlled")?{value:ie(this.el,"value")}:{defaultValue:ie(this.el,"defaultValue")}),{name:x(this.el,"name"),form:x(this.el,"form"),disabled:T(this.el,"disabled"),multiple:n?!1:T(this.el,"multiple"),dir:q(this.el),invalid:T(this.el,"invalid"),required:T(this.el,"required"),readOnly:T(this.el,"readOnly"),positioning:$e(this.el)});if(this.select&&t){this.select.updateProps(r);return}this.lastItemsJson=e;let i=JSON.parse(e),a=i.some(o=>!!o.group);this.select&&(this.select.hasGroups=a,this.select.setOptions(i),this.select.updateProps(v(p({},r),{collection:Ey(i,a)})))},destroyed(){var e,t,n;if(this.handlers)for(let r of this.handlers)this.removeHandleEvent(r);(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.select)==null||n.destroy()}}});var qy={};fe(qy,{SignaturePad:()=>ck});function HR(e,t){let{state:n,send:r,prop:i,computed:a,context:o,scope:s}=e,l=n.matches("drawing"),c=a("isEmpty"),d=a("isInteractive"),g=!!i("disabled"),h=!!i("required"),u=i("translations");return{empty:c,drawing:l,currentPath:o.get("currentPath"),paths:o.get("paths"),clear(){r({type:"CLEAR"})},getDataUrl(f,m){return a("isEmpty")?Promise.resolve(""):$y(s,{type:f,quality:m})},getLabelProps(){return t.label(v(p({},ii.label.attrs),{id:_R(s),"data-disabled":S(g),"data-required":S(h),htmlFor:Ty(s),onClick(f){if(!d||f.defaultPrevented)return;let m=pl(s);m==null||m.focus({preventScroll:!0})}}))},getRootProps(){return t.element(v(p({},ii.root.attrs),{"data-disabled":S(g),id:FR(s)}))},getControlProps(){return t.element(v(p({},ii.control.attrs),{tabIndex:g?void 0:0,id:_y(s),role:"application","aria-roledescription":"signature pad","aria-label":u.control,"aria-disabled":g,"data-disabled":S(g),onPointerDown(f){if(!Ee(f)||Fe(f)||!d)return;let m=ee(f);if(m!=null&&m.closest("[data-part=clear-trigger]"))return;f.currentTarget.setPointerCapture(f.pointerId);let P={x:f.clientX,y:f.clientY},C=pl(s);if(!C)return;let{offset:V}=Ei(P,C);r({type:"POINTER_DOWN",point:V,pressure:f.pressure})},onPointerUp(f){d&&f.currentTarget.hasPointerCapture(f.pointerId)&&f.currentTarget.releasePointerCapture(f.pointerId)},style:{position:"relative",touchAction:"none",userSelect:"none",WebkitUserSelect:"none"}}))},getSegmentProps(){return t.svg(v(p({},ii.segment.attrs),{style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",pointerEvents:"none",fill:i("drawing").fill}}))},getSegmentPathProps(f){return t.path(v(p({},ii.segmentPath.attrs),{d:f.path}))},getGuideProps(){return t.element(v(p({},ii.guide.attrs),{"data-disabled":S(g)}))},getClearTriggerProps(){return t.button(v(p({},ii.clearTrigger.attrs),{type:"button","aria-label":u.clearTrigger,hidden:!o.get("paths").length||l,disabled:g,onClick(){r({type:"CLEAR"})}}))},getHiddenInputProps(f){return t.input({id:Ty(s),type:"text",hidden:!0,disabled:g,required:i("required"),readOnly:!0,name:i("name"),value:f.value})}}}function Vy(e,t,n,r=i=>i){return e*r(.5-t*(.5-n))}function Hy(e,t,n){let r=du(1,t/n);return du(1,e+(du(1,1-r)-e)*(r*.275))}function GR(e){return[-e[0],-e[1]]}function Sn(e,t){return[e[0]+t[0],e[1]+t[1]]}function xy(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e}function Cr(e,t){return[e[0]-t[0],e[1]-t[1]]}function pu(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e}function Pr(e,t){return[e[0]*t,e[1]*t]}function uu(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e}function UR(e,t){return[e[0]/t,e[1]/t]}function By(e){return[e[1],-e[0]]}function gu(e,t){let n=t[0];return e[0]=t[1],e[1]=-n,e}function Ay(e,t){return e[0]*t[0]+e[1]*t[1]}function qR(e,t){return e[0]===t[0]&&e[1]===t[1]}function WR(e){return Math.hypot(e[0],e[1])}function Ry(e,t){let n=e[0]-t[0],r=e[1]-t[1];return n*n+r*r}function Gy(e){return UR(e,WR(e))}function KR(e,t){return Math.hypot(e[1]-t[1],e[0]-t[0])}function mu(e,t,n){let r=Math.sin(n),i=Math.cos(n),a=e[0]-t[0],o=e[1]-t[1],s=a*i-o*r,l=a*r+o*i;return[s+t[0],l+t[1]]}function ky(e,t,n,r){let i=Math.sin(r),a=Math.cos(r),o=t[0]-n[0],s=t[1]-n[1],l=o*a-s*i,c=o*i+s*a;return e[0]=l+n[0],e[1]=c+n[1],e}function Ny(e,t,n){return Sn(e,Pr(Cr(t,e),n))}function jR(e,t,n,r){let i=n[0]-t[0],a=n[1]-t[1];return e[0]=t[0]+i*r,e[1]=t[1]+a*r,e}function Uy(e,t,n){return Sn(e,Pr(t,n))}function zR(e,t){let n=Uy(e,Gy(By(Cr(e,Sn(e,[1,1])))),-t),r=[],i=1/13;for(let a=i;a<=1;a+=i)r.push(mu(n,e,eo*2*a));return r}function YR(e,t,n){let r=[],i=1/n;for(let a=i;a<=1;a+=i)r.push(mu(t,e,eo*a));return r}function XR(e,t,n){let r=Cr(t,n),i=Pr(r,.5),a=Pr(r,.51);return[Cr(e,i),Cr(e,a),Sn(e,a),Sn(e,i)]}function ZR(e,t,n,r){let i=[],a=Uy(e,t,n),o=1/r;for(let s=o;s<1;s+=o)i.push(mu(a,e,eo*3*s));return i}function JR(e,t,n){return[Sn(e,Pr(t,n)),Sn(e,Pr(t,n*.99)),Cr(e,Pr(t,n*.99)),Cr(e,Pr(t,n))]}function Dy(e,t,n){return e===!1||e===void 0?0:e===!0?Math.max(t,n):e}function QR(e,t,n){return e.slice(0,10).reduce((r,i)=>{let a=i.pressure;return t&&(a=Hy(r,i.distance,n)),(r+a)/2},e[0].pressure)}function ek(e,t={}){let{size:n=16,smoothing:r=.5,thinning:i=.5,simulatePressure:a=!0,easing:o=z=>z,start:s={},end:l={},last:c=!1}=t,{cap:d=!0,easing:g=z=>z*(2-z)}=s,{cap:h=!0,easing:u=z=>--z*z*z+1}=l;if(e.length===0||n<=0)return[];let f=e[e.length-1].runningLength,m=Dy(s.taper,n,f),P=Dy(l.taper,n,f),C=(n*r)**2,V=[],I=[],b=QR(e,a,n),y=Vy(n,i,e[e.length-1].pressure,o),E,A=e[0].vector,N=e[0].point,O=N,w=N,k=O,R=!1;for(let z=0;zC)&&(V.push(w),N=w),xy(Sr,he,Xe),k=[Sr[0],Sr[1]],(z<=1||Ry(O,k)>C)&&(I.push(k),O=k),b=le,A=ae}let D=[e[0].point[0],e[0].point[1]],W=e.length>1?[e[e.length-1].point[0],e[e.length-1].point[1]]:Sn(e[0].point,[1,1]),Z=[],ue=[];if(e.length===1){if(!(m||P)||c)return zR(D,E||y)}else{m||P&&e.length===1||(d?Z.push(...YR(D,I[0],13)):Z.push(...XR(D,V[0],I[0])));let z=By(GR(e[e.length-1].vector));P||m&&e.length===1?ue.push(W):h?ue.push(...ZR(W,z,y,29)):ue.push(...JR(W,z,y))}return V.concat(ue,I.reverse(),Z)}function My(e){return e!=null&&e>=0}function tk(e,t={}){var h;let{streamline:n=.5,size:r=16,last:i=!1}=t;if(e.length===0)return[];let a=.15+(1-n)*.85,o=Array.isArray(e[0])?e:e.map(({x:u,y:f,pressure:m=wy})=>[u,f,m]);if(o.length===2){let u=o[1];o=o.slice(0,-1);for(let f=1;f<5;f++)o.push(Ny(o[0],u,f/4))}o.length===1&&(o=[...o,[...Sn(o[0],Oy),...o[0].slice(2)]]);let s=[{point:[o[0][0],o[0][1]],pressure:My(o[0][2])?o[0][2]:.25,vector:[...Oy],distance:0,runningLength:0}],l=!1,c=0,d=s[0],g=o.length-1;for(let u=1;ur.trim()).filter(Boolean):[]}function fu(e){let t=e;t.phxPrivate||(t.phxPrivate={}),t.phxPrivate[sk]=!0}function Fy(e){let t={fill:x(e,"drawingFill"),size:U(e,"drawingSize"),simulatePressure:T(e,"drawingSimulatePressure"),smoothing:U(e,"drawingSmoothing"),thinning:U(e,"drawingThinning"),streamline:U(e,"drawingStreamline")},n=x(e,"drawingEasing");return n&&(t.easing=n),t}function hu(e,t,n){queueMicrotask(()=>{let r=e.querySelector('[data-scope="signature-pad"][data-part="hidden-input"]');if(!r)return;let i=t();String(r.value)!==String(i)&&(r.value=i),n.onPadTouched(),fu(r),r.dispatchEvent(new Event("input",{bubbles:!0})),r.dispatchEvent(new Event("change",{bubbles:!0}))})}var MR,ii,FR,_y,_R,Ty,pl,$R,$y,BR,eo,wy,Oy,du,Xe,Er,Sr,Ly,rk,hl,ak,ok,sk,ck,Wy=ne(()=>{"use strict";Ce();se();MR=j("signature-pad").parts("root","control","segment","segmentPath","guide","clearTrigger","label"),ii=MR.build(),FR=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`signature-${e.id}`},_y=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.control)!=null?n:`signature-control-${e.id}`},_R=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`signature-label-${e.id}`},Ty=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.hiddenInput)!=null?n:`signature-input-${e.id}`},pl=e=>e.getById(_y(e)),$R=e=>rr(pl(e),"[data-part=segment]"),$y=(e,t)=>vg($R(e),t);({PI:BR}=Math),eo=BR+1e-4,wy=.5,Oy=[1,1];({min:du}=Math);Xe=[0,0],Er=[0,0],Sr=[0,0];Ly=[0,0];rk=nk,hl=(e,t)=>(e+t)/2;ak=te({props({props:e}){return v(p({defaultPaths:[]},e),{drawing:p({size:2,simulatePressure:!1,thinning:.7,smoothing:.4,streamline:.6},e.drawing),translations:p({control:"signature pad",clearTrigger:"clear signature"},e.translations)})},initialState(){return"idle"},context({prop:e,bindable:t}){return{paths:t(()=>({defaultValue:e("defaultPaths"),value:e("paths"),sync:!0,onChange(n){var r;(r=e("onDraw"))==null||r({paths:n})}})),currentPoints:t(()=>({defaultValue:[]})),currentPath:t(()=>({defaultValue:null}))}},computed:{isInteractive:({prop:e})=>!(e("disabled")||e("readOnly")),isEmpty:({context:e})=>e.get("paths").length===0},on:{CLEAR:{actions:["clearPoints","invokeOnDrawEnd","focusCanvasEl"]}},states:{idle:{on:{POINTER_DOWN:{target:"drawing",actions:["addPoint"]}}},drawing:{effects:["trackPointerMove"],on:{POINTER_MOVE:{actions:["addPoint","invokeOnDraw"]},POINTER_UP:{target:"idle",actions:["endStroke","invokeOnDrawEnd"]}}}},implementations:{effects:{trackPointerMove({scope:e,send:t}){let n=e.getDoc();return an(n,{onPointerMove({event:r,point:i}){let a=pl(e);if(!a)return;let{offset:o}=Ei(i,a);t({type:"POINTER_MOVE",point:o,pressure:r.pressure})},onPointerUp(){t({type:"POINTER_UP"})}})}},actions:{addPoint({context:e,event:t,prop:n}){let r=[...e.get("currentPoints"),t.point];e.set("currentPoints",r);let i=rk(r,n("drawing"));e.set("currentPath",ik(i))},endStroke({context:e}){let t=[...e.get("paths"),e.get("currentPath")];e.set("paths",t),e.set("currentPoints",[]),e.set("currentPath",null)},clearPoints({context:e}){e.set("currentPoints",[]),e.set("paths",[]),e.set("currentPath",null)},focusCanvasEl({scope:e}){queueMicrotask(()=>{var t;(t=e.getActiveElement())==null||t.focus({preventScroll:!0})})},invokeOnDraw({context:e,prop:t}){var n;(n=t("onDraw"))==null||n({paths:[...e.get("paths"),e.get("currentPath")]})},invokeOnDrawEnd({context:e,prop:t,scope:n,computed:r}){var i;(i=t("onDrawEnd"))==null||i({paths:[...e.get("paths")],getDataUrl(a,o=.92){return r("isEmpty")?Promise.resolve(""):$y(n,{type:a,quality:o})}})}}}}),ok=class extends X{constructor(){super(...arguments);J(this,"imageURL","");J(this,"paths",[]);J(this,"name");J(this,"syncPaths",()=>{let t=this.el.querySelector('[data-scope="signature-pad"][data-part="segment"]');if(!t)return;if(this.api.paths.length+(this.api.currentPath?1:0)===0){t.innerHTML="",this.imageURL="",this.paths=[];let r=this.el.querySelector('[data-scope="signature-pad"][data-part="hidden-input"]');r&&r.value!==""&&(r.value="");return}if(t.innerHTML="",this.api.paths.forEach(r=>{let i=document.createElementNS("http://www.w3.org/2000/svg","path");i.setAttribute("data-scope","signature-pad"),i.setAttribute("data-part","path"),this.spreadProps(i,this.api.getSegmentPathProps({path:r})),t.appendChild(i)}),this.api.currentPath){let r=document.createElementNS("http://www.w3.org/2000/svg","path");r.setAttribute("data-scope","signature-pad"),r.setAttribute("data-part","current-path"),this.spreadProps(r,this.api.getSegmentPathProps({path:this.api.currentPath})),t.appendChild(r)}})}initMachine(t){return this.name=t.name,new Y(ak,t)}setName(t){this.name=t}setPaths(t){this.paths=t}initApi(){return this.zagConnect(HR)}render(){let t=this.el.querySelector('[data-scope="signature-pad"][data-part="root"]');if(!t)return;this.spreadProps(t,this.api.getRootProps());let n=t.querySelector('[data-scope="signature-pad"][data-part="label"]');n&&this.spreadProps(n,this.api.getLabelProps());let r=t.querySelector('[data-scope="signature-pad"][data-part="control"]');r&&this.spreadProps(r,this.api.getControlProps());let i=t.querySelector('[data-scope="signature-pad"][data-part="segment"]');i&&this.spreadProps(i,this.api.getSegmentProps());let a=t.querySelector('[data-scope="signature-pad"][data-part="guide"]');a&&this.spreadProps(a,this.api.getGuideProps());let o=t.querySelector('[data-scope="signature-pad"][data-part="clear-trigger"]');o&&this.spreadProps(o,this.api.getClearTriggerProps());let s=t.querySelector('[data-scope="signature-pad"][data-part="hidden-input"]');s&&this.spreadProps(s,this.api.getHiddenInputProps({value:this.api.paths.length>0?this.api.paths.join(` +`):""})),this.syncPaths()}},sk="phx-has-focused";ck={mounted(){var o;let e=this.el,t=this,n=this.pushEvent.bind(this);t.padTouched=!1;let r=()=>{t.padTouched=!0},i=lk(e,"defaultPaths");{let s=e.querySelector('[data-scope="signature-pad"][data-part="hidden-input"]');(String((o=s==null?void 0:s.value)!=null?o:"")!==""||i.length>0)&&(t.padTouched=!0,queueMicrotask(()=>{let l=e.querySelector('[data-scope="signature-pad"][data-part="hidden-input"]');l&&fu(l)}))}let a=new ok(e,v(p({id:e.id,name:x(e,"name")},i.length>0?{defaultPaths:i}:{}),{drawing:Fy(e),onDrawEnd:s=>{a.setPaths(s.paths),hu(e,()=>s.paths.length>0?s.paths.join(` +`):"",{onPadTouched:r}),s.getDataUrl("image/png").then(l=>{a.imageURL=l;let c=x(e,"onDrawEnd");c&&this.liveSocket.main.isConnected()&&n(c,{id:e.id,paths:s.paths,url:l});let d=x(e,"onDrawEndClient");d&&e.dispatchEvent(new CustomEvent(d,{bubbles:!0,detail:{id:e.id,paths:s.paths,url:l}}))})}}));a.init(),this.signaturePad=a,this.onClear=s=>{let{id:l}=s.detail;l&&l!==e.id||(a.api.clear(),hu(e,()=>"",{onPadTouched:r}))},e.addEventListener("corex:signature-pad:clear",this.onClear),this.handlers=[],this.handlers.push(this.handleEvent("signature_pad_clear",s=>{B(e.id,G(s))&&(a.api.clear(),hu(e,()=>"",{onPadTouched:r}))}))},updated(){var n,r;let e=this.el,t=x(e,"name");t&&((n=this.signaturePad)==null||n.setName(t)),(r=this.signaturePad)==null||r.updateProps({id:e.id,name:t,drawing:Fy(e)}),this.padTouched&&queueMicrotask(()=>{let i=this.el.querySelector('[data-scope="signature-pad"][data-part="hidden-input"]');i&&fu(i)})},destroyed(){var e;if(this.onClear&&this.el.removeEventListener("corex:signature-pad:clear",this.onClear),this.handlers)for(let t of this.handlers)this.removeHandleEvent(t);(e=this.signaturePad)==null||e.destroy()}}});var Yy={};fe(Yy,{Switch:()=>yk});function pk(e,t){let{context:n,send:r,prop:i,scope:a}=e,o=!!i("disabled"),s=!!i("readOnly"),l=!!i("required"),c=!!n.get("checked"),d=!o&&n.get("focused"),g=!o&&n.get("focusVisible"),h=!o&&n.get("active"),u={"data-active":S(h),"data-focus":S(d),"data-focus-visible":S(g),"data-readonly":S(s),"data-hover":S(n.get("hovered")),"data-disabled":S(o),"data-state":c?"checked":"unchecked","data-invalid":S(i("invalid")),"data-required":S(l)};return{checked:c,disabled:o,focused:d,setChecked(f){r({type:"CHECKED.SET",checked:f,isTrusted:!1})},toggleChecked(){r({type:"CHECKED.TOGGLE",checked:c,isTrusted:!1})},getRootProps(){return t.label(v(p(p({},fl.root.attrs),u),{dir:i("dir"),id:zy(a),htmlFor:vu(a),onPointerMove(){o||r({type:"CONTEXT.SET",context:{hovered:!0}})},onPointerLeave(){o||r({type:"CONTEXT.SET",context:{hovered:!1}})},onClick(f){var P;if(o)return;ee(f)===Zi(a)&&f.stopPropagation(),yt()&&((P=Zi(a))==null||P.focus())}}))},getLabelProps(){return t.element(v(p(p({},fl.label.attrs),u),{dir:i("dir"),id:Ky(a)}))},getThumbProps(){return t.element(v(p(p({},fl.thumb.attrs),u),{dir:i("dir"),id:uk(a),"aria-hidden":!0}))},getControlProps(){return t.element(v(p(p({},fl.control.attrs),u),{dir:i("dir"),id:gk(a),"aria-hidden":!0}))},getHiddenInputProps(){return t.input({id:vu(a),type:"checkbox",required:i("required"),defaultChecked:c,disabled:o,"aria-labelledby":Ky(a),"aria-invalid":i("invalid"),name:i("name"),form:i("form"),value:i("value"),style:dt,onFocus(){let f=ln();r({type:"CONTEXT.SET",context:{focused:!0,focusVisible:f}})},onBlur(){r({type:"CONTEXT.SET",context:{focused:!1,focusVisible:!1}})},onClick(f){if(s){f.preventDefault();return}let m=f.currentTarget.checked;r({type:"CHECKED.SET",checked:m,isTrusted:!0})}})}}}function vk(e,t){return{id:e.id,checked:t.checked}}var dk,fl,zy,Ky,uk,gk,vu,hk,Zi,jy,fk,mk,yk,Xy=ne(()=>{"use strict";Ln();_e();Ce();se();dk=j("switch").parts("root","label","control","thumb"),fl=dk.build(),zy=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`switch:${e.id}`},Ky=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`switch:${e.id}:label`},uk=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.thumb)!=null?n:`switch:${e.id}:thumb`},gk=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.control)!=null?n:`switch:${e.id}:control`},vu=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.hiddenInput)!=null?n:`switch:${e.id}:input`},hk=e=>e.getById(zy(e)),Zi=e=>e.getById(vu(e));({not:jy}=Te()),fk=te({props({props:e}){return p({defaultChecked:!1,label:"switch",value:"on"},e)},initialState(){return"ready"},context({prop:e,bindable:t}){return{checked:t(()=>({defaultValue:e("defaultChecked"),value:e("checked"),onChange(n){var r;(r=e("onCheckedChange"))==null||r({checked:n})}})),fieldsetDisabled:t(()=>({defaultValue:!1})),focusVisible:t(()=>({defaultValue:!1})),active:t(()=>({defaultValue:!1})),focused:t(()=>({defaultValue:!1})),hovered:t(()=>({defaultValue:!1}))}},computed:{isDisabled:({context:e,prop:t})=>t("disabled")||e.get("fieldsetDisabled")},watch({track:e,prop:t,context:n,action:r}){e([()=>t("disabled")],()=>{r(["removeFocusIfNeeded"])}),e([()=>n.get("checked")],()=>{r(["syncInputElement"])})},effects:["trackFormControlState","trackPressEvent","trackFocusVisible"],on:{"CHECKED.TOGGLE":[{guard:jy("isTrusted"),actions:["toggleChecked","dispatchChangeEvent"]},{actions:["toggleChecked"]}],"CHECKED.SET":[{guard:jy("isTrusted"),actions:["setChecked","dispatchChangeEvent"]},{actions:["setChecked"]}],"CONTEXT.SET":{actions:["setContext"]}},states:{ready:{}},implementations:{guards:{isTrusted:({event:e})=>!!e.isTrusted},effects:{trackPressEvent({computed:e,scope:t,context:n}){if(!e("isDisabled"))return Go({pointerNode:hk(t),keyboardNode:Zi(t),isValidKey:r=>r.key===" ",onPress:()=>n.set("active",!1),onPressStart:()=>n.set("active",!0),onPressEnd:()=>n.set("active",!1)})},trackFocusVisible({computed:e,scope:t}){if(!e("isDisabled"))return et({root:t.getRootNode()})},trackFormControlState({context:e,send:t,scope:n}){return Rt(Zi(n),{onFieldsetDisabledChange(r){e.set("fieldsetDisabled",r)},onFormReset(){let r=e.initial("checked");t({type:"CHECKED.SET",checked:!!r,src:"form-reset"})}})}},actions:{setContext({context:e,event:t}){for(let n in t.context)e.set(n,t.context[n])},syncInputElement({context:e,scope:t}){let n=Zi(t);n&&ha(n,!!e.get("checked"))},removeFocusIfNeeded({context:e,prop:t}){t("disabled")&&e.set("focused",!1)},setChecked({context:e,event:t}){e.set("checked",t.checked)},toggleChecked({context:e}){e.set("checked",!e.get("checked"))},dispatchChangeEvent({context:e,scope:t}){queueMicrotask(()=>{let n=Zi(t);vi(n,{checked:e.get("checked")})})}}}}),mk=class extends X{initMachine(e){return new Y(fk,e)}initApi(){return this.zagConnect(pk)}render(){let e=this.el.querySelector('[data-scope="switch"][data-part="root"]');if(!e)return;this.spreadProps(e,this.api.getRootProps());let t=e.querySelector(':scope > [data-scope="switch"][data-part="hidden-input"]');t&&this.spreadProps(t,this.api.getHiddenInputProps()),e.querySelectorAll(':scope > [data-scope="switch"][data-part="label"]').forEach(r=>{this.spreadProps(r,this.api.getLabelProps())});let n=e.querySelector(':scope > [data-scope="switch"][data-part="control"]');if(n){this.spreadProps(n,this.api.getControlProps());let r=n.querySelector(':scope > [data-scope="switch"][data-part="thumb"]');r&&this.spreadProps(r,this.api.getThumbProps())}}};yk={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>Q(this.liveSocket),r=new mk(e,v(p({id:e.id},T(e,"controlled")?{checked:en(e,"checked")===!0}:{defaultChecked:en(e,"defaultChecked")===!0}),{disabled:T(e,"disabled"),name:x(e,"name"),form:x(e,"form"),value:x(e,"value"),dir:q(e),invalid:T(e,"invalid"),required:T(e,"required"),readOnly:T(e,"readOnly"),onCheckedChange:o=>{K({el:e,canPushServer:n(),pushEvent:t,payload:vk(e,o),serverEventName:x(e,"onCheckedChange"),clientEventName:x(e,"onCheckedChangeClient")})}}));r.init(),this.zagSwitch=r;let i=de(e);this.domRegistry=i,i.add("corex:switch:set-checked",o=>{let{checked:s}=o.detail;r.api.setChecked(s)}),i.add("corex:switch:toggle-checked",()=>{r.api.toggleChecked()});let a=ce(this);this.handleRegistry=a,a.add("switch_set_checked",o=>{if(!B(e.id,G(o)))return;let s=Ko(o);typeof s=="boolean"&&r.api.setChecked(s)}),a.add("switch_toggle_checked",o=>{B(e.id,G(o))&&r.api.toggleChecked()}),a.add("switch_checked",o=>{B(e.id,G(o))&&n()&&this.pushEvent("switch_checked_response",{id:e.id,value:r.api.checked})}),a.add("switch_focused",o=>{B(e.id,G(o))&&n()&&this.pushEvent("switch_focused_response",{id:e.id,value:r.api.focused})}),a.add("switch_disabled",o=>{B(e.id,G(o))&&n()&&this.pushEvent("switch_disabled_response",{id:e.id,value:r.api.disabled})})},updated(){var e;(e=this.zagSwitch)==null||e.updateProps(v(p({id:this.el.id},T(this.el,"controlled")?{checked:en(this.el,"checked")===!0}:{defaultChecked:en(this.el,"defaultChecked")===!0}),{disabled:T(this.el,"disabled"),name:x(this.el,"name"),form:x(this.el,"form"),value:x(this.el,"value"),dir:q(this.el),invalid:T(this.el,"invalid"),required:T(this.el,"required"),readOnly:T(this.el,"readOnly")}))},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.zagSwitch)==null||n.destroy()}}});var tb={};fe(tb,{Tabs:()=>Nk});function Vk(e,t){let{state:n,send:r,context:i,prop:a,scope:o}=e,s=a("translations"),l=n.matches("focused"),c=a("orientation")==="vertical",d=a("orientation")==="horizontal",g=a("composite");function h(u){return{selected:i.get("value")===u.value,focused:i.get("focusedValue")===u.value,disabled:!!u.disabled}}return{value:i.get("value"),focusedValue:i.get("focusedValue"),setValue(u){r({type:"SET_VALUE",value:u})},clearValue(){r({type:"CLEAR_VALUE"})},setIndicatorRect(u){let f=ai(o,u);r({type:"SET_INDICATOR_RECT",id:f})},syncTabIndex(){r({type:"SYNC_TAB_INDEX"})},selectNext(u){r({type:"TAB_FOCUS",value:u,src:"selectNext"}),r({type:"ARROW_NEXT",src:"selectNext"})},selectPrev(u){r({type:"TAB_FOCUS",value:u,src:"selectPrev"}),r({type:"ARROW_PREV",src:"selectPrev"})},focus(){var f;let u=i.get("value");u&&((f=ml(o,u))==null||f.focus())},getRootProps(){return t.element(v(p({},to.root.attrs),{id:Ek(o),"data-orientation":a("orientation"),"data-focus":S(l),dir:a("dir")}))},getListProps(){return t.element(v(p({},to.list.attrs),{id:no(o),role:"tablist",dir:a("dir"),"data-focus":S(l),"aria-orientation":a("orientation"),"data-orientation":a("orientation"),"aria-label":s==null?void 0:s.listLabel,onKeyDown(u){if(u.defaultPrevented||He(u)||!ge(u.currentTarget,ee(u)))return;let f={ArrowDown(){d||r({type:"ARROW_NEXT",key:"ArrowDown"})},ArrowUp(){d||r({type:"ARROW_PREV",key:"ArrowUp"})},ArrowLeft(){c||r({type:"ARROW_PREV",key:"ArrowLeft"})},ArrowRight(){c||r({type:"ARROW_NEXT",key:"ArrowRight"})},Home(){r({type:"HOME"})},End(){r({type:"END"})}},m=ve(u,{dir:a("dir"),orientation:a("orientation")}),P=f[m];if(P){u.preventDefault(),P(u);return}}}))},getTriggerState:h,getTriggerProps(u){let{value:f,disabled:m}=u,P=h(u);return t.button(v(p({},to.trigger.attrs),{role:"tab",type:"button",disabled:m,dir:a("dir"),"data-orientation":a("orientation"),"data-disabled":S(m),"aria-disabled":m,"data-value":f,"aria-selected":P.selected,"data-selected":S(P.selected),"data-focus":S(P.focused),"aria-controls":P.selected?yu(o,f):void 0,"data-ownedby":no(o),"data-ssr":S(i.get("ssr")),id:ai(o,f),tabIndex:P.selected&&g?0:-1,onFocus(){r({type:"TAB_FOCUS",value:f})},onBlur(C){let V=C.relatedTarget;(V==null?void 0:V.getAttribute("role"))!=="tab"&&r({type:"TAB_BLUR"})},onClick(C){C.defaultPrevented||Vn(C)||m||(yt()&&C.currentTarget.focus(),r({type:"TAB_CLICK",value:f}))}}))},getContentProps(u){let{value:f}=u,m=i.get("value")===f;return t.element(v(p({},to.content.attrs),{dir:a("dir"),id:yu(o,f),tabIndex:g?0:-1,"aria-labelledby":ai(o,f),role:"tabpanel","data-ownedby":no(o),"data-selected":S(m),"data-orientation":a("orientation"),hidden:!m}))},getIndicatorProps(){let u=i.get("indicatorRect"),f=i.get("animateIndicator");return t.element(v(p({id:Qy(o)},to.indicator.attrs),{dir:a("dir"),"data-orientation":a("orientation"),hidden:xk(u),onTransitionEnd(m){ee(m)===m.currentTarget&&r({type:"INDICATOR_TRANSITION_END"})},style:{"--transition-property":"left, right, top, bottom, width, height","--left":Re(u==null?void 0:u.x),"--top":Re(u==null?void 0:u.y),"--width":Re(u==null?void 0:u.width),"--height":Re(u==null?void 0:u.height),position:"absolute",willChange:f?"var(--transition-property)":"auto",transitionProperty:f?"var(--transition-property)":"none",transitionDuration:f?"var(--transition-duration, 150ms)":"0ms",transitionTimingFunction:"var(--transition-timing-function)",[d?"left":"top"]:d?"var(--left)":"var(--top)"}}))}}}function Jy(e){return{root:`tabs-${e}-root`,list:`tabs-${e}-list`,indicator:`tabs-${e}-indicator`,content:t=>`tabs-${e}-content-${t}`,trigger:t=>`tabs-${e}-trigger-${t}`}}var bk,to,Ek,no,yu,ai,Qy,Sk,Pk,ml,Zy,Ji,Ck,Ik,Tk,wk,eb,Ok,xk,Ak,Rk,kk,Nk,nb=ne(()=>{"use strict";Nt();_e();Ce();se();bk=j("tabs").parts("root","list","trigger","content","indicator"),to=bk.build(),Ek=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`tabs:${e.id}`},no=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.list)!=null?n:`tabs:${e.id}:list`},yu=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.content)==null?void 0:r.call(n,t))!=null?i:`tabs:${e.id}:content-${t}`},ai=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.trigger)==null?void 0:r.call(n,t))!=null?i:`tabs:${e.id}:trigger-${t}`},Qy=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.indicator)!=null?n:`tabs:${e.id}:indicator`},Sk=e=>e.getById(no(e)),Pk=(e,t)=>e.getById(yu(e,t)),ml=(e,t)=>t!=null?e.getById(ai(e,t)):null,Zy=e=>e.getById(Qy(e)),Ji=e=>{let n=`[role=tab][data-ownedby='${CSS.escape(no(e))}']:not([disabled])`;return xe(Sk(e),n)},Ck=e=>Tt(Ji(e)),Ik=e=>qt(Ji(e)),Tk=(e,t)=>Si(Ji(e),ai(e,t.value),t.loopFocus),wk=(e,t)=>Pi(Ji(e),ai(e,t.value),t.loopFocus),eb=e=>{var t,n,r,i;return{x:(t=e==null?void 0:e.offsetLeft)!=null?t:0,y:(n=e==null?void 0:e.offsetTop)!=null?n:0,width:(r=e==null?void 0:e.offsetWidth)!=null?r:0,height:(i=e==null?void 0:e.offsetHeight)!=null?i:0}},Ok=(e,t)=>{let n=Jl(Ji(e),ai(e,t));return eb(n)};xk=e=>e==null||e.width===0&&e.height===0&&e.x===0&&e.y===0,{createMachine:Ak}=Ot(),Rk=Ak({props({props:e}){return p({dir:"ltr",orientation:"horizontal",activationMode:"automatic",loopFocus:!0,composite:!0,navigate(t){bi(t.node)},defaultValue:null},e)},initialState(){return"idle"},context({prop:e,bindable:t}){return{value:t(()=>({defaultValue:e("defaultValue"),value:e("value"),onChange(n){var r;(r=e("onValueChange"))==null||r({value:n})}})),focusedValue:t(()=>({defaultValue:e("value")||e("defaultValue"),sync:!0,onChange(n){var r;(r=e("onFocusChange"))==null||r({focusedValue:n})}})),ssr:t(()=>({defaultValue:!0})),indicatorRect:t(()=>({defaultValue:null})),animateIndicator:t(()=>({defaultValue:!1}))}},refs(){return{indicatorCleanup:null,prevValue:null}},watch({context:e,prop:t,track:n,action:r}){n([()=>e.get("value")],()=>{r(["syncIndicatorAnimation","syncIndicatorRect","syncTabIndex","navigateIfNeeded"])}),n([()=>t("dir"),()=>t("orientation")],()=>{r(["syncIndicatorRect"])})},on:{SET_VALUE:{actions:["setValue"]},CLEAR_VALUE:{actions:["clearValue"]},SET_INDICATOR_RECT:{actions:["setIndicatorRect"]},SYNC_TAB_INDEX:{actions:["syncTabIndex"]},INDICATOR_TRANSITION_END:{actions:["clearIndicatorAnimation"]}},entry:["syncPrevValue","syncIndicatorRect","syncTabIndex","syncSsr"],exit:["cleanupObserver"],states:{idle:{on:{TAB_FOCUS:{target:"focused",actions:["setFocusedValue"]},TAB_CLICK:{target:"focused",actions:["setFocusedValue","setValue"]}}},focused:{on:{TAB_CLICK:{actions:["setFocusedValue","setValue"]},ARROW_PREV:[{guard:"selectOnFocus",actions:["focusPrevTab","selectFocusedTab"]},{actions:["focusPrevTab"]}],ARROW_NEXT:[{guard:"selectOnFocus",actions:["focusNextTab","selectFocusedTab"]},{actions:["focusNextTab"]}],HOME:[{guard:"selectOnFocus",actions:["focusFirstTab","selectFocusedTab"]},{actions:["focusFirstTab"]}],END:[{guard:"selectOnFocus",actions:["focusLastTab","selectFocusedTab"]},{actions:["focusLastTab"]}],TAB_FOCUS:{actions:["setFocusedValue"]},TAB_BLUR:{target:"idle",actions:["clearFocusedValue"]}}}},implementations:{guards:{selectOnFocus:({prop:e})=>e("activationMode")==="automatic"},actions:{selectFocusedTab({context:e,prop:t}){$(()=>{let n=e.get("focusedValue");if(!n)return;let i=t("deselectable")&&e.get("value")===n?null:n;e.set("value",i)})},setFocusedValue({context:e,event:t,flush:n}){t.value!=null&&n(()=>{e.set("focusedValue",t.value)})},clearFocusedValue({context:e}){e.set("focusedValue",null)},setValue({context:e,event:t,prop:n}){let r=n("deselectable")&&e.get("value")===e.get("focusedValue");e.set("value",r?null:t.value)},clearValue({context:e}){e.set("value",null)},focusFirstTab({scope:e}){$(()=>{var t;(t=Ck(e))==null||t.focus()})},focusLastTab({scope:e}){$(()=>{var t;(t=Ik(e))==null||t.focus()})},focusNextTab({context:e,prop:t,scope:n,event:r}){var o;let i=(o=r.value)!=null?o:e.get("focusedValue");if(!i)return;let a=Tk(n,{value:i,loopFocus:t("loopFocus")});$(()=>{t("composite")?a==null||a.focus():(a==null?void 0:a.dataset.value)!=null&&e.set("focusedValue",a.dataset.value)})},focusPrevTab({context:e,prop:t,scope:n,event:r}){var o;let i=(o=r.value)!=null?o:e.get("focusedValue");if(!i)return;let a=wk(n,{value:i,loopFocus:t("loopFocus")});$(()=>{t("composite")?a==null||a.focus():(a==null?void 0:a.dataset.value)!=null&&e.set("focusedValue",a.dataset.value)})},syncTabIndex({context:e,scope:t}){$(()=>{let n=e.get("value");if(!n)return;let r=Pk(t,n);if(!r)return;pa(r).length>0?r.removeAttribute("tabindex"):r.setAttribute("tabindex","0")})},cleanupObserver({refs:e}){let t=e.get("indicatorCleanup");t&&t()},setIndicatorRect({context:e,event:t,scope:n}){var o;let r=(o=t.id)!=null?o:e.get("value");!Zy(n)||!r||!ml(n,r)||e.set("indicatorRect",Ok(n,r))},syncSsr({context:e}){e.set("ssr",!1)},syncPrevValue({context:e,refs:t}){t.set("prevValue",e.get("value"))},syncIndicatorAnimation({context:e,refs:t}){let n=t.get("prevValue"),r=e.get("value"),i=n!=null&&r!=null&&n!==r;e.set("animateIndicator",i),t.set("prevValue",r)},clearIndicatorAnimation({context:e}){e.set("animateIndicator",!1)},syncIndicatorRect({context:e,refs:t,scope:n}){let r=t.get("indicatorCleanup");if(r&&r(),!Zy(n))return;let a=()=>{let l=ml(n,e.get("value"));if(!l)return;let c=eb(l);e.set("indicatorRect",d=>Ie(d,c)?d:c)};a();let o=Ji(n),s=vt(...o.map(l=>kn.observe(l,a)));t.set("indicatorCleanup",s)},navigateIfNeeded({context:e,prop:t,scope:n}){var a;let r=e.get("value");if(!r)return;let i=ml(n,r);Vt(i)&&((a=t("navigate"))==null||a({value:r,node:i,href:i.href}))}}}});kk=class extends X{constructor(){super(...arguments);J(this,"updateProps",t=>{var i;let n=t,r=(i=n.id)!=null?i:this.el.id;this.machine.updateProps(v(p({},n),{id:r,ids:Jy(r)}))})}initMachine(t){var r;let n=(r=t.id)!=null?r:this.el.id;return new Y(Rk,v(p({},t),{id:n,ids:Jy(n)}))}initApi(){return this.zagConnect(Vk)}render(){let t=this.el.querySelector('[data-scope="tabs"][data-part="root"]');if(!t)return;this.spreadProps(t,this.api.getRootProps());let n=t.querySelector(':scope > [data-scope="tabs"][data-part="list"]');if(!n)return;this.spreadProps(n,this.api.getListProps()),n.querySelectorAll(':scope > [data-scope="tabs"][data-part="trigger"]').forEach(a=>{let o=a.dataset.value,s=a.dataset.disabled=="";o&&this.spreadProps(a,this.api.getTriggerProps({value:o,disabled:s}))}),t.querySelectorAll(':scope > [data-scope="tabs"][data-part="content"]').forEach(a=>{let o=a.dataset.value;o&&this.spreadProps(a,this.api.getContentProps({value:o}))})}},Nk={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=()=>Q(this.liveSocket),r=new kk(e,v(p({id:e.id},T(e,"controlled")?{value:x(e,"value")}:{defaultValue:x(e,"defaultValue")}),{orientation:x(e,"orientation"),dir:x(e,"dir"),onValueChange:o=>{var s;K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,value:(s=o.value)!=null?s:null},serverEventName:x(e,"onValueChange"),clientEventName:x(e,"onValueChangeClient")})},onFocusChange:o=>{var s;K({el:e,canPushServer:n(),pushEvent:t,payload:{id:e.id,value:(s=o.focusedValue)!=null?s:null},serverEventName:x(e,"onFocusChange"),clientEventName:x(e,"onFocusChangeClient")})}}));r.init(),this.tabs=r;let i=de(e);this.domRegistry=i,i.add("corex:tabs:set-value",o=>{r.api.setValue(o.detail.value)});let a=ce(this);this.handleRegistry=a,a.add("tabs_set_value",o=>{B(e.id,G(o))&&r.api.setValue(o.value)}),a.add("tabs_value",o=>{B(e.id,G(o))&&n()&&this.pushEvent("tabs_value_response",{id:e.id,value:r.api.value})}),a.add("tabs_focused_value",o=>{B(e.id,G(o))&&n()&&this.pushEvent("tabs_focused_value_response",{id:e.id,value:r.api.focusedValue})})},updated(){var e;(e=this.tabs)==null||e.updateProps(v(p({id:this.el.id},T(this.el,"controlled")?{value:x(this.el,"value")}:{defaultValue:x(this.el,"defaultValue")}),{orientation:x(this.el,"orientation"),dir:x(this.el,"dir")}))},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.tabs)==null||n.destroy()}}});var ob={};fe(ob,{Timer:()=>jk});function Fk(e,t){let{state:n,send:r,computed:i,scope:a,prop:o}=e,s=o("translations"),l=n.matches("running"),c=n.matches("paused"),d=i("time"),g=i("formattedTime"),h=i("progressPercent");return{running:l,paused:c,time:d,formattedTime:g,progressPercent:h,start(){r({type:"START"})},pause(){r({type:"PAUSE"})},resume(){r({type:"RESUME"})},reset(){r({type:"RESET"})},restart(){r({type:"RESTART"})},getRootProps(){return t.element(p({id:Lk(a)},Ir.root.attrs))},getAreaProps(){var u;return t.element(p({role:"timer",id:Mk(a),"aria-label":(u=s.areaLabel)==null?void 0:u.call(s,d,g),"aria-atomic":!0},Ir.area.attrs))},getControlProps(){return t.element(p({},Ir.control.attrs))},getItemProps(u){let f=d[u.type];return t.element(v(p({},Ir.item.attrs),{"data-type":u.type,style:{"--value":f}}))},getItemLabelProps(u){return t.element(v(p({},Ir.itemLabel.attrs),{"data-type":u.type}))},getItemValueProps(u){return t.element(v(p({},Ir.itemValue.attrs),{"data-type":u.type}))},getSeparatorProps(){return t.element(p({"aria-hidden":!0},Ir.separator.attrs))},getActionTriggerProps(u){if(!rb.has(u.action))throw new Error(`[zag-js] Invalid action: ${u.action}. Must be one of: ${Array.from(rb).join(", ")}`);return t.button(v(p({},Ir.actionTrigger.attrs),{hidden:Me(u.action,{start:()=>l||c,pause:()=>!l,reset:()=>!l&&!c,resume:()=>!c,restart:()=>!1}),type:"button",onClick(f){f.defaultPrevented||r({type:u.action.toUpperCase()})}}))}}}function $k(e){let t=Math.max(0,e),n=t%1e3,r=Math.floor(t/1e3)%60,i=Math.floor(t/(1e3*60))%60,a=Math.floor(t/(1e3*60*60))%24;return{days:Math.floor(t/(1e3*60*60*24)),hours:a,minutes:i,seconds:r,milliseconds:n}}function ib(e,t,n){let r=n-t;return r===0?0:(e-t)/r}function ro(e,t=2){return e.toString().padStart(t,"0")}function Hk(e,t){return Math.floor(e/t)*t}function Bk(e){let{days:t,hours:n,minutes:r,seconds:i}=e;return{days:ro(t),hours:ro(n),minutes:ro(r),seconds:ro(i),milliseconds:ro(e.milliseconds,3)}}function Gk(e){let{startMs:t,targetMs:n,countdown:r,interval:i}=e;if(i!=null&&(typeof i!="number"||i<=0))throw new Error(`[timer] Invalid interval: ${i}. Must be a positive number.`);if(t!=null&&(typeof t!="number"||t<0))throw new Error(`[timer] Invalid startMs: ${t}. Must be a non-negative number.`);if(n!=null&&(typeof n!="number"||n<0))throw new Error(`[timer] Invalid targetMs: ${n}. Must be a non-negative number.`);if(r&&t!=null&&n!=null&&t<=n)throw new Error(`[timer] Invalid countdown configuration: startMs (${t}) must be greater than targetMs (${n}).`);if(!r&&t!=null&&n!=null&&t>=n)throw new Error(`[timer] Invalid stopwatch configuration: startMs (${t}) must be less than targetMs (${n}).`);if(r&&n==null&&t!=null&&t<=0)throw new Error(`[timer] Invalid countdown configuration: startMs (${t}) must be greater than 0 when no targetMs is provided.`)}function Uk(e){let t=n=>{if(n>2)return n;let r=e.length-n;return n<3&&e[n]===0&&r>2?t(n+1):n};return t(0)}function qk(e,t){let n=["days","hours","minutes","seconds"],r=[t.days,t.hours,t.minutes,t.seconds].map(Number),i=ie(e,"segments"),a=e.dataset.countdown==="true",o=e.dataset.collapseLeadingZeros;if(i&&i.length>0)return n.map(s=>!i.includes(s));if(o==="false")return[!1,!1,!1,!1];if(o==="true"||o!=="false"&&a){let s=Uk(r);return n.map((l,c)=>c{let s=e.querySelector(`[data-timer-segment][data-type="${a}"]`);s&&(n[o]?s.setAttribute("hidden",""):s.removeAttribute("hidden"));let l=e.querySelector(`[data-scope="timer"][data-part="item"][data-type="${a}"]`);l&&(n[o]?(l.setAttribute("hidden",""),l.setAttribute("aria-hidden","true")):(l.removeAttribute("hidden"),l.setAttribute("aria-hidden","false")))});for(let a=0;a<3;a++){let o=`timer:${i}:sep:${a}`,s=e.querySelector(`[id="${CSS.escape(o)}"]`);s&&(n[a]?s.setAttribute("hidden",""):s.removeAttribute("hidden"))}}function ab(e){let t=e.dataset.translation;if(t)try{let n=JSON.parse(t);if(typeof n.areaLabel=="string"&&n.areaLabel.length>0){let r=n.areaLabel;return{areaLabel:()=>r}}}catch(n){return}}var Dk,Ir,Lk,Mk,rb,_k,Kk,jk,sb=ne(()=>{"use strict";Fs();us();Nt();se();Dk=j("timer").parts("root","area","control","item","itemValue","itemLabel","actionTrigger","separator"),Ir=Dk.build(),Lk=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`timer:${e.id}:root`},Mk=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.area)!=null?n:`timer:${e.id}:area`},rb=new Set(["start","pause","resume","reset","restart"]);_k=te({props({props:e}){return Gk(e),v(p({interval:1e3,startMs:0},e),{translations:p({areaLabel:(t,n)=>`${t.days} days ${n.hours}:${n.minutes}:${n.seconds}`},e.translations)})},initialState({prop:e}){return e("autoStart")?"running":"idle"},context({prop:e,bindable:t}){return{currentMs:t(()=>({defaultValue:e("startMs")}))}},watch({track:e,send:t,prop:n}){e([()=>n("startMs")],()=>{t({type:"RESTART"})})},on:{RESTART:{target:"running:temp",actions:["resetTime"]}},computed:{time:({context:e})=>$k(e.get("currentMs")),formattedTime:({computed:e})=>Bk(e("time")),progressPercent:Ur(({context:e,prop:t})=>[e.get("currentMs"),t("targetMs"),t("startMs"),t("countdown")],([e,t=0,n,r])=>{let i=r?ib(e,t,n):ib(e,n,t);return Oe(i,0,1)})},states:{idle:{on:{START:{target:"running"},RESET:{actions:["resetTime"]}}},"running:temp":{effects:["waitForNextTick"],on:{CONTINUE:{target:"running"}}},running:{effects:["keepTicking"],on:{PAUSE:{target:"paused"},TICK:[{target:"idle",guard:"hasReachedTarget",actions:["invokeOnComplete"]},{actions:["updateTime","invokeOnTick"]}],RESET:{actions:["resetTime"]}}},paused:{on:{RESUME:{target:"running"},RESET:{target:"idle",actions:["resetTime"]}}}},implementations:{effects:{keepTicking({prop:e,send:t}){return Fh(({deltaMs:n})=>{t({type:"TICK",deltaMs:n})},e("interval"))},waitForNextTick({send:e}){return cr(()=>{e({type:"CONTINUE"})},0)}},actions:{updateTime({context:e,prop:t,event:n}){let r=t("countdown")?-1:1,i=Hk(n.deltaMs,t("interval"));e.set("currentMs",a=>{let o=a+r*i,s=t("targetMs");return s==null&&t("countdown")&&(s=0),t("countdown")&&s!=null?Math.max(o,s):!t("countdown")&&s!=null?Math.min(o,s):o})},resetTime({context:e,prop:t}){var r;let n=t("targetMs");n==null&&t("countdown")&&(n=0),e.set("currentMs",(r=t("startMs"))!=null?r:0)},invokeOnTick({context:e,prop:t,computed:n}){var r;(r=t("onTick"))==null||r({value:e.get("currentMs"),time:n("time"),formattedTime:n("formattedTime")})},invokeOnComplete({prop:e}){var t;(t=e("onComplete"))==null||t()}},guards:{hasReachedTarget:({context:e,prop:t})=>{let n=t("targetMs");if(n==null&&t("countdown")&&(n=0),n==null)return!1;let r=e.get("currentMs");return t("countdown")?r<=n:r>=n}}}});Kk=class extends X{constructor(){super(...arguments);J(this,"init",()=>{this.machine.subscribe(()=>{this.api=this.initApi(),this.render()});try{this.machine.start(),this.api=this.initApi(),this.render()}finally{this.el.removeAttribute("data-loading")}})}initMachine(t){return new Y(_k,t)}initApi(){return this.zagConnect(Fk)}render(){var o;let t=(o=this.el.querySelector('[data-scope="timer"][data-part="root"]'))!=null?o:this.el;this.spreadProps(t,this.api.getRootProps());let n=this.el.querySelector('[data-scope="timer"][data-part="area"]');n&&this.spreadProps(n,this.api.getAreaProps());let r=this.el.querySelector('[data-scope="timer"][data-part="control"]');r&&this.spreadProps(r,this.api.getControlProps()),["days","hours","minutes","seconds"].forEach(s=>{let l=this.el.querySelector(`[data-scope="timer"][data-part="item"][data-type="${s}"]`);l&&this.spreadProps(l,this.api.getItemProps({type:s}));let c=this.el.querySelector(`[data-scope="timer"][data-part="item-label"][data-type="${s}"]`);c&&this.spreadProps(c,this.api.getItemLabelProps({type:s}))}),this.el.querySelectorAll('[data-scope="timer"][data-part="separator"]').forEach(s=>{this.spreadProps(s,this.api.getSeparatorProps())}),["start","pause","resume","reset"].forEach(s=>{let l=this.el.querySelector(`[data-scope="timer"][data-part="action-trigger"][data-action="${s}"]`);l&&this.spreadProps(l,this.api.getActionTriggerProps({action:s}))}),Wk(this.el,this.api)}};jk={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=new Kk(e,{id:e.id,countdown:T(e,"countdown"),startMs:U(e,"startMs"),targetMs:U(e,"targetMs"),autoStart:T(e,"autoStart"),interval:U(e,"interval"),dir:q(e),orientation:x(e,"orientation"),translations:ab(e),onTick:r=>{let i=x(e,"onTick");i&&Q(this.liveSocket)&&t(i,{value:r.value,time:r.time,formattedTime:r.formattedTime,id:e.id});let a=x(e,"onTickClient");a&&e.dispatchEvent(new CustomEvent(a,{bubbles:!0,detail:{id:e.id,value:r.value,time:r.time,formattedTime:r.formattedTime}}))},onComplete:()=>{let r=x(e,"onComplete");r&&Q(this.liveSocket)&&t(r,{id:e.id});let i=x(e,"onCompleteClient");i&&e.dispatchEvent(new CustomEvent(i,{bubbles:!0,detail:{id:e.id}}))}});n.init(),this.timer=n,this.handlers=[]},updated(){var e;(e=this.timer)==null||e.updateProps({id:this.el.id,countdown:T(this.el,"countdown"),startMs:U(this.el,"startMs"),targetMs:U(this.el,"targetMs"),autoStart:T(this.el,"autoStart"),interval:U(this.el,"interval"),dir:q(this.el),orientation:x(this.el,"orientation"),translations:ab(this.el)})},destroyed(){var e;if(this.handlers)for(let t of this.handlers)this.removeHandleEvent(t);(e=this.timer)==null||e.destroy()}}});var yb={};fe(yb,{Toast:()=>bN});function bu(e,t){var n;return(n=e!=null?e:gb[t])!=null?n:gb.DEFAULT}function Jk(e,t){var m;let{prop:n,computed:r,context:i}=e,{offsets:a,gap:o}=n("store").attrs,s=i.get("heights"),l=Zk(a),c=n("dir")==="rtl",d=t.replace("-start",c?"-right":"-left").replace("-end",c?"-left":"-right"),g=d.includes("right"),h=d.includes("left"),u={position:"fixed",pointerEvents:r("count")>0?void 0:"none",display:"flex",flexDirection:"column","--gap":`${o}px`,"--first-height":`${((m=s[0])==null?void 0:m.height)||0}px`,"--viewport-offset-left":l.left,"--viewport-offset-right":l.right,"--viewport-offset-top":l.top,"--viewport-offset-bottom":l.bottom,zIndex:No},f="center";if(g&&(f="flex-end"),h&&(f="flex-start"),u.alignItems=f,d.includes("top")){let P=l.top;u.top=`max(env(safe-area-inset-top, 0px), ${P})`}if(d.includes("bottom")){let P=l.bottom;u.bottom=`max(env(safe-area-inset-bottom, 0px), ${P})`}if(!d.includes("left")){let P=l.right;u.insetInlineEnd=`calc(env(safe-area-inset-right, 0px) + ${P})`}if(!d.includes("right")){let P=l.left;u.insetInlineStart=`calc(env(safe-area-inset-left, 0px) + ${P})`}return u}function Qk(e,t){let{prop:n,context:r,computed:i}=e,a=n("parent"),o=a.computed("placement"),{gap:s}=a.prop("store").attrs,[l]=o.split("-"),c=r.get("mounted"),d=r.get("remainingTime"),g=i("height"),h=i("frontmost"),u=!h,f=!n("stacked"),m=n("stacked"),C=n("type")==="loading"?Number.MAX_SAFE_INTEGER:d,V=i("heightIndex")*s+i("heightBefore"),I={position:"absolute",pointerEvents:"auto","--opacity":"0","--remove-delay":`${n("removeDelay")}ms`,"--duration":`${C}ms`,"--initial-height":`${g}px`,"--offset":`${V}px`,"--index":n("index"),"--z-index":i("zIndex"),"--lift-amount":"calc(var(--lift) * var(--gap))","--y":"100%","--x":"0"},b=y=>Object.assign(I,y);return l==="top"?b({top:"0","--sign":"-1","--y":"-100%","--lift":"1"}):l==="bottom"&&b({bottom:"0","--sign":"1","--y":"100%","--lift":"-1"}),c&&(b({"--y":"0","--opacity":"1"}),m&&b({"--y":"calc(var(--lift) * var(--offset))","--height":"var(--initial-height)"})),t||b({"--opacity":"0",pointerEvents:"none"}),u&&f&&(b({"--base-scale":"var(--index) * 0.05 + 1","--y":"calc(var(--lift-amount) * var(--index))","--scale":"calc(-1 * var(--base-scale))","--height":"var(--first-height)"}),t||b({"--y":"calc(var(--sign) * 40%)"})),u&&m&&!t&&b({"--y":"calc(var(--lift) * var(--offset) + var(--lift) * -100%)"}),h&&!t&&b({"--y":"calc(var(--lift) * -100%)"}),I}function eN(e,t){let{computed:n}=e,r={position:"absolute",inset:"0",scale:"1 2",pointerEvents:t?"none":"auto"},i=a=>Object.assign(r,a);return n("frontmost")&&!t&&i({height:"calc(var(--initial-height) + 80%)"}),r}function tN(){return{position:"absolute",left:"0",height:"calc(var(--gap) + 2px)",bottom:"100%",width:"100%"}}function nN(e,t){let{context:n,prop:r,send:i,refs:a,computed:o}=e;return{getCount(){return n.get("toasts").length},getToasts(){return n.get("toasts")},getGroupProps(s={}){let{label:l="Notifications"}=s,{hotkey:c}=r("store").attrs,d=c.join("+").replace(/Key/g,"").replace(/Digit/g,""),g=o("placement"),[h,u="center"]=g.split("-");return t.element(v(p({},Qi.group.attrs),{dir:r("dir"),tabIndex:-1,role:"region","aria-label":`${l}, ${g} (${d})`,id:Yk(g),"data-placement":g,"data-side":h,"data-align":u,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",style:Jk(e,g),onMouseEnter(){a.get("ignoreMouseTimer").isActive()||i({type:"REGION.POINTER_ENTER",placement:g})},onMouseMove(){a.get("ignoreMouseTimer").isActive()||i({type:"REGION.POINTER_ENTER",placement:g})},onMouseLeave(){a.get("ignoreMouseTimer").isActive()||i({type:"REGION.POINTER_LEAVE",placement:g})},onFocus(f){i({type:"REGION.FOCUS",target:f.relatedTarget})},onBlur(f){a.get("isFocusWithin")&&!ge(f.currentTarget,f.relatedTarget)&&queueMicrotask(()=>i({type:"REGION.BLUR"}))}}))},subscribe(s){return r("store").subscribe(()=>s(n.get("toasts")))}}}function sN(e,t){let{state:n,send:r,prop:i,scope:a,context:o,computed:s}=e,l=i("translations"),c=n.hasTag("visible"),d=n.hasTag("paused"),g=o.get("mounted"),h=s("frontmost"),u=i("parent").computed("placement"),f=i("type"),m=i("stacked"),P=i("title"),C=i("description"),V=i("action"),[I,b="center"]=u.split("-");return{type:f,title:P,description:C,placement:u,visible:c,paused:d,closable:!!i("closable"),pause(){r({type:"PAUSE"})},resume(){r({type:"RESUME"})},dismiss(){r({type:"DISMISS",src:"programmatic"})},getRootProps(){return t.element(v(p({},Qi.root.attrs),{dir:i("dir"),id:mb(a),"data-state":c?"open":"closed","data-type":f,"data-placement":u,"data-align":b,"data-side":I,"data-mounted":S(g),"data-paused":S(d),"data-first":S(h),"data-sibling":S(!h),"data-stack":S(m),"data-overlap":S(!m),role:"status","aria-atomic":"true","aria-describedby":C?ub(a):void 0,"aria-labelledby":P?db(a):void 0,tabIndex:0,style:Qk(e,c),onKeyDown(y){y.defaultPrevented||y.key=="Escape"&&(r({type:"DISMISS",src:"keyboard"}),y.preventDefault())}}))},getGhostBeforeProps(){return t.element({"data-ghost":"before",style:eN(e,c)})},getGhostAfterProps(){return t.element({"data-ghost":"after",style:tN()})},getTitleProps(){return t.element(v(p({},Qi.title.attrs),{id:db(a)}))},getDescriptionProps(){return t.element(v(p({},Qi.description.attrs),{id:ub(a)}))},getActionTriggerProps(){return t.button(v(p({},Qi.actionTrigger.attrs),{type:"button",onClick(y){var E;y.defaultPrevented||((E=V==null?void 0:V.onClick)==null||E.call(V),r({type:"DISMISS",src:"user"}))}}))},getCloseTriggerProps(){return t.button(v(p({id:Xk(a)},Qi.closeTrigger.attrs),{type:"button","aria-label":l==null?void 0:l.closeTriggerLabel,onClick(y){y.defaultPrevented||r({type:"DISMISS",src:"user"})}}))}}}function hb(e,t){let{id:n,height:r}=t;e.context.set("heights",i=>i.find(o=>o.id===n)?i.map(o=>o.id===n?v(p({},o),{height:r}):o):[{id:n,height:r},...i])}function hN(e={}){let t=dN(e,{placement:"bottom",overlap:!1,max:24,gap:16,offsets:"1rem",hotkey:["altKey","KeyT"],removeDelay:200,pauseOnPageIdle:!0}),n=[],r=[],i=new Set,a=[],o=R=>(n.push(R),()=>{let D=n.indexOf(R);n.splice(D,1)}),s=R=>(n.forEach(D=>D(R)),R),l=R=>{if(r.length>=t.max){a.push(R);return}s(R),r.unshift(R)},c=()=>{for(a=gN(a);a.length>0&&r.length{var Z,ue;let D=(Z=R.id)!=null?Z:`toast:${la()}`,W=r.find(z=>z.id===D);if(i.has(D)&&i.delete(D),W)r=r.map(z=>z.id===D?s(v(p(p({},z),R),{id:D})):z);else{let z=v(p({id:D,duration:t.duration,removeDelay:t.removeDelay,type:vb},R),{stacked:!t.overlap,gap:t.gap}),le=(ue=z.priority)!=null?ue:Eu(z.type,!!z.action);l(v(p({},z),{priority:le}))}return D},g=R=>(i.add(R),R?(n.forEach(D=>D({id:R,dismiss:!0})),r=r.filter(D=>D.id!==R),c()):(r.forEach(D=>{n.forEach(W=>W({id:D.id,dismiss:!0}))}),r=[],a=[]),R);return{attrs:t,subscribe:o,create:d,update:(R,D)=>d(p({id:R},D)),remove:g,dismiss:R=>{R!=null?r=r.map(D=>D.id===R?s(v(p({},D),{message:"DISMISS"})):D):r=r.map(D=>s(v(p({},D),{message:"DISMISS"})))},error:R=>d(v(p({},R),{type:"error"})),success:R=>d(v(p({},R),{type:"success"})),info:R=>d(v(p({},R),{type:"info"})),warning:R=>d(v(p({},R),{type:"warning"})),loading:R=>d(v(p({},R),{type:"loading"})),getVisibleToasts:()=>r.filter(R=>!i.has(R.id)),getCount:()=>r.length,promise:(R,D,W={})=>{if(!D||!D.loading){Ut("[zag-js > toast] toaster.promise() requires at least a 'loading' option to be specified");return}let Z=d(v(p(p({},W),D.loading),{promise:R,type:"loading"})),ue=!0,z,le=In(R).then(ae=>Ue(null,null,function*(){var De;if(z=["resolve",ae],pN(ae)&&!ae.ok){ue=!1;let Le=In(D.error,`HTTP Error! status: ${ae.status}`);d(v(p(p({},W),Le),{id:Z,type:"error"}))}else if(D.success!==void 0){ue=!1;let Le=In(D.success,ae);d(v(p(p({},W),Le),{id:Z,type:(De=Le.type)!=null?De:"success"}))}})).catch(ae=>Ue(null,null,function*(){if(z=["reject",ae],D.error!==void 0){ue=!1;let De=In(D.error,ae);d(v(p(p({},W),De),{id:Z,type:"error"}))}})).finally(()=>{var ae;ue&&g(Z),(ae=D.finally)==null||ae.call(D)});return{id:Z,unwrap:()=>new Promise((ae,De)=>le.then(()=>z[0]==="reject"?De(z[1]):ae(z[1])).catch(De))}},pause:R=>{R!=null?r=r.map(D=>D.id===R?s(v(p({},D),{message:"PAUSE"})):D):r=r.map(D=>s(v(p({},D),{message:"PAUSE"})))},resume:R=>{R!=null?r=r.map(D=>D.id===R?s(v(p({},D),{message:"RESUME"})):D):r=r.map(D=>s(v(p({},D),{message:"RESUME"})))},isVisible:R=>!i.has(R)&&!!r.find(D=>D.id===R),isDismissed:R=>i.has(R),expand:()=>{r=r.map(R=>s(v(p({},R),{stacked:!0})))},collapse:()=>{r=r.map(R=>s(v(p({},R),{stacked:!1})))}}}function yN(e,t){var a,o,s;let n=(a=t==null?void 0:t.id)!=null?a:e.id,r=(s=t==null?void 0:t.store)!=null?s:hN({placement:(o=t==null?void 0:t.placement)!=null?o:"bottom",overlap:t==null?void 0:t.overlap,max:t==null?void 0:t.max,gap:t==null?void 0:t.gap,offsets:t==null?void 0:t.offsets,pauseOnPageIdle:t==null?void 0:t.pauseOnPageIdle}),i=new vN(e,{id:n,store:r,dir:q(e)});return i.init(),fN.set(n,i),Su.set(n,r),e.dataset.toastGroup="true",e.dataset.toastGroupId=n,{group:i,store:r}}function io(e){if(e)return Su.get(e);let t=document.querySelector("[data-toast-group]");if(!t)return;let n=t.dataset.toastGroupId||t.id;return n?Su.get(n):void 0}var zk,Qi,Yk,lb,mb,cb,db,ub,Xk,gb,Zk,rN,iN,aN,oN,lN,cN,dN,uN,vb,Eu,gN,pN,pb,fN,Su,mN,vN,fb,bN,bb=ne(()=>{"use strict";gr();gn();us();se();zk=j("toast").parts("group","root","title","description","actionTrigger","closeTrigger"),Qi=zk.build(),Yk=e=>`toast-group:${e}`,lb=(e,t)=>e.getById(`toast-group:${t}`),mb=e=>`toast:${e.id}`,cb=e=>e.getById(mb(e)),db=e=>`toast:${e.id}:title`,ub=e=>`toast:${e.id}:description`,Xk=e=>`toast${e.id}:close`,gb={info:5e3,error:5e3,success:2e3,loading:1/0,warning:5e3,DEFAULT:5e3};Zk=e=>typeof e=="string"?{left:e,right:e,bottom:e,top:e}:e;({guards:rN,createMachine:iN}=Ot()),{and:aN}=rN,oN=iN({props({props:e}){return v(p({dir:"ltr",id:la()},e),{store:e.store})},initialState({prop:e}){return e("store").attrs.overlap?"overlap":"stack"},refs(){return{lastFocusedEl:null,isFocusWithin:!1,isPointerWithin:!1,ignoreMouseTimer:jl.create(),dismissableCleanup:void 0}},context({bindable:e}){return{toasts:e(()=>({defaultValue:[],sync:!0,hash:t=>t.map(n=>n.id).join(",")})),heights:e(()=>({defaultValue:[],sync:!0}))}},computed:{count:({context:e})=>e.get("toasts").length,overlap:({prop:e})=>e("store").attrs.overlap,placement:({prop:e})=>e("store").attrs.placement},effects:["subscribeToStore","trackDocumentVisibility","trackHotKeyPress"],watch({track:e,context:t,action:n}){e([()=>t.hash("toasts")],()=>{queueMicrotask(()=>{n(["collapsedIfEmpty","setDismissableBranch"])})})},exit:["clearDismissableBranch","clearLastFocusedEl","clearMouseEventTimer"],on:{"DOC.HOTKEY":{actions:["focusRegionEl"]},"REGION.BLUR":[{guard:aN("isOverlapping","isPointerOut"),target:"overlap",actions:["collapseToasts","resumeToasts","restoreFocusIfPointerOut"]},{guard:"isPointerOut",target:"stack",actions:["resumeToasts","restoreFocusIfPointerOut"]},{actions:["clearFocusWithin"]}],"TOAST.REMOVE":{actions:["removeToast","removeHeight","ignoreMouseEventsTemporarily"]},"TOAST.PAUSE":{actions:["pauseToasts"]}},states:{stack:{on:{"REGION.POINTER_LEAVE":[{guard:"isOverlapping",target:"overlap",actions:["clearPointerWithin","resumeToasts","collapseToasts"]},{actions:["clearPointerWithin","resumeToasts"]}],"REGION.OVERLAP":{target:"overlap",actions:["collapseToasts"]},"REGION.FOCUS":{actions:["setLastFocusedEl","pauseToasts"]},"REGION.POINTER_ENTER":{actions:["setPointerWithin","pauseToasts"]}}},overlap:{on:{"REGION.STACK":{target:"stack",actions:["expandToasts"]},"REGION.POINTER_ENTER":{target:"stack",actions:["setPointerWithin","pauseToasts","expandToasts"]},"REGION.FOCUS":{target:"stack",actions:["setLastFocusedEl","pauseToasts","expandToasts"]}}}},implementations:{guards:{isOverlapping:({computed:e})=>e("overlap"),isPointerOut:({refs:e})=>!e.get("isPointerWithin")},effects:{subscribeToStore({context:e,prop:t}){let n=t("store");return e.set("toasts",n.getVisibleToasts()),n.subscribe(r=>{if(r.dismiss){e.set("toasts",i=>i.filter(a=>a.id!==r.id));return}e.set("toasts",i=>{let a=i.findIndex(o=>o.id===r.id);return a!==-1?[...i.slice(0,a),p(p({},i[a]),r),...i.slice(a+1)]:[r,...i]})})},trackHotKeyPress({prop:e,send:t}){return re(document,"keydown",r=>{let{hotkey:i}=e("store").attrs;i.every(o=>r[o]||r.code===o)&&t({type:"DOC.HOTKEY"})},{capture:!0})},trackDocumentVisibility({prop:e,send:t,scope:n}){let{pauseOnPageIdle:r}=e("store").attrs;if(!r)return;let i=n.getDoc();return re(i,"visibilitychange",()=>{let a=i.visibilityState==="hidden";t({type:a?"PAUSE_ALL":"RESUME_ALL"})})}},actions:{setDismissableBranch({refs:e,context:t,computed:n,scope:r}){var c;let i=t.get("toasts"),a=n("placement"),o=i.length>0;if(!o){(c=e.get("dismissableCleanup"))==null||c();return}if(o&&e.get("dismissableCleanup"))return;let l=Pp(()=>lb(r,a),{defer:!0});e.set("dismissableCleanup",l)},clearDismissableBranch({refs:e}){var t;(t=e.get("dismissableCleanup"))==null||t()},focusRegionEl({scope:e,computed:t}){queueMicrotask(()=>{var n;(n=lb(e,t("placement")))==null||n.focus()})},pauseToasts({prop:e}){e("store").pause()},resumeToasts({prop:e}){e("store").resume()},expandToasts({prop:e}){e("store").expand()},collapseToasts({prop:e}){e("store").collapse()},removeToast({prop:e,event:t}){e("store").remove(t.id)},removeHeight({event:e,context:t}){(e==null?void 0:e.id)!=null&&queueMicrotask(()=>{t.set("heights",n=>n.filter(r=>r.id!==e.id))})},collapsedIfEmpty({send:e,computed:t}){!t("overlap")||t("count")>1||e({type:"REGION.OVERLAP"})},setLastFocusedEl({refs:e,event:t}){e.get("isFocusWithin")||!t.target||(e.set("isFocusWithin",!0),e.set("lastFocusedEl",t.target))},restoreFocusIfPointerOut({refs:e}){var t;!e.get("lastFocusedEl")||e.get("isPointerWithin")||((t=e.get("lastFocusedEl"))==null||t.focus({preventScroll:!0}),e.set("lastFocusedEl",null),e.set("isFocusWithin",!1))},setPointerWithin({refs:e}){e.set("isPointerWithin",!0)},clearPointerWithin({refs:e}){var t;e.set("isPointerWithin",!1),e.get("lastFocusedEl")&&!e.get("isFocusWithin")&&((t=e.get("lastFocusedEl"))==null||t.focus({preventScroll:!0}),e.set("lastFocusedEl",null))},clearFocusWithin({refs:e}){e.set("isFocusWithin",!1)},clearLastFocusedEl({refs:e}){var t;e.get("lastFocusedEl")&&((t=e.get("lastFocusedEl"))==null||t.focus({preventScroll:!0}),e.set("lastFocusedEl",null),e.set("isFocusWithin",!1))},ignoreMouseEventsTemporarily({refs:e}){e.get("ignoreMouseTimer").request()},clearMouseEventTimer({refs:e}){e.get("ignoreMouseTimer").cancel()}}}});({not:lN}=Te()),cN=te({props({props:e}){return rn(e,["id","type","parent","removeDelay"],"toast"),v(p({closable:!0},e),{translations:p({closeTriggerLabel:"Dismiss notification"},e.translations),duration:bu(e.duration,e.type)})},initialState({prop:e}){return e("type")==="loading"||e("duration")===1/0?"visible:persist":"visible"},context({prop:e,bindable:t}){return{remainingTime:t(()=>({defaultValue:bu(e("duration"),e("type"))})),createdAt:t(()=>({defaultValue:Date.now()})),mounted:t(()=>({defaultValue:!1})),initialHeight:t(()=>({defaultValue:0}))}},refs(){return{closeTimerStartTime:Date.now(),lastCloseStartTimerStartTime:0}},computed:{zIndex:({prop:e})=>{let t=e("parent").context.get("toasts"),n=t.findIndex(r=>r.id===e("id"));return t.length-n},height:({prop:e})=>{var r;let n=e("parent").context.get("heights").find(i=>i.id===e("id"));return(r=n==null?void 0:n.height)!=null?r:0},heightIndex:({prop:e})=>e("parent").context.get("heights").findIndex(n=>n.id===e("id")),frontmost:({prop:e})=>e("index")===0,heightBefore:({prop:e})=>{let t=e("parent").context.get("heights"),n=t.findIndex(r=>r.id===e("id"));return t.reduce((r,i,a)=>a>=n?r:r+i.height,0)},shouldPersist:({prop:e})=>e("type")==="loading"||e("duration")===1/0},watch({track:e,prop:t,send:n}){e([()=>t("message")],()=>{let r=t("message");r&&n({type:r,src:"programmatic"})}),e([()=>t("type"),()=>t("duration")],()=>{n({type:"UPDATE"})})},on:{UPDATE:[{guard:"shouldPersist",target:"visible:persist",actions:["resetCloseTimer"]},{target:"visible:updating",actions:["resetCloseTimer"]}],MEASURE:{actions:["measureHeight"]}},entry:["setMounted","measureHeight","invokeOnVisible"],effects:["trackHeight"],states:{"visible:updating":{tags:["visible","updating"],effects:["waitForNextTick"],on:{SHOW:{target:"visible"}}},"visible:persist":{tags:["visible","paused"],on:{RESUME:{guard:lN("isLoadingType"),target:"visible",actions:["setCloseTimer"]},DISMISS:{target:"dismissing"}}},visible:{tags:["visible"],effects:["waitForDuration"],on:{DISMISS:{target:"dismissing"},PAUSE:{target:"visible:persist",actions:["syncRemainingTime"]}}},dismissing:{entry:["invokeOnDismiss"],effects:["waitForRemoveDelay"],on:{REMOVE:{target:"unmounted",actions:["notifyParentToRemove"]}}},unmounted:{entry:["invokeOnUnmount"]}},implementations:{effects:{waitForRemoveDelay({prop:e,send:t}){return cr(()=>{t({type:"REMOVE",src:"timer"})},e("removeDelay"))},waitForDuration({send:e,context:t,computed:n}){if(!n("shouldPersist"))return cr(()=>{e({type:"DISMISS",src:"timer"})},t.get("remainingTime"))},waitForNextTick({send:e}){return cr(()=>{e({type:"SHOW",src:"timer"})},0)},trackHeight({scope:e,prop:t}){let n;return $(()=>{let r=cb(e);if(!r)return;let i=()=>{let s=r.style.height;r.style.height="auto";let l=r.getBoundingClientRect().height;r.style.height=s;let c={id:t("id"),height:l};hb(t("parent"),c)},a=e.getWin(),o=new a.MutationObserver(i);o.observe(r,{childList:!0,subtree:!0,characterData:!0}),n=()=>o.disconnect()}),()=>n==null?void 0:n()}},guards:{isLoadingType:({prop:e})=>e("type")==="loading",shouldPersist:({computed:e})=>e("shouldPersist")},actions:{setMounted({context:e}){$(()=>{e.set("mounted",!0)})},measureHeight({scope:e,prop:t,context:n}){queueMicrotask(()=>{let r=cb(e);if(!r)return;let i=r.style.height;r.style.height="auto";let a=r.getBoundingClientRect().height;r.style.height=i,n.set("initialHeight",a);let o={id:t("id"),height:a};hb(t("parent"),o)})},setCloseTimer({refs:e}){e.set("closeTimerStartTime",Date.now())},resetCloseTimer({context:e,refs:t,prop:n}){t.set("closeTimerStartTime",Date.now()),e.set("remainingTime",bu(n("duration"),n("type")))},syncRemainingTime({context:e,refs:t}){e.set("remainingTime",n=>{let r=t.get("closeTimerStartTime"),i=Date.now()-r;return t.set("lastCloseStartTimerStartTime",Date.now()),n-i})},notifyParentToRemove({prop:e}){e("parent").send({type:"TOAST.REMOVE",id:e("id")})},invokeOnDismiss({prop:e,event:t}){var n;(n=e("onStatusChange"))==null||n({status:"dismissing",src:t.src})},invokeOnUnmount({prop:e}){var t;(t=e("onStatusChange"))==null||t({status:"unmounted"})},invokeOnVisible({prop:e}){var t;(t=e("onStatusChange"))==null||t({status:"visible"})}}}});dN=(e,t)=>p(p({},t),On(e)),uN={error:[1,2],warning:[3,6],loading:[4,5],success:[5,7],info:[6,8]},vb="info",Eu=(e,t)=>{let[n,r]=uN[e!=null?e:vb];return t?n:r},gN=e=>e.sort((t,n)=>{var a,o;let r=(a=t.priority)!=null?a:Eu(t.type,!!t.action),i=(o=n.priority)!=null?o:Eu(n.type,!!n.action);return r-i});pN=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",pb={connect:nN,machine:oN},fN=new Map,Su=new Map,mN=class extends X{constructor(t,n){var r;super(t,n);J(this,"parts");J(this,"duration");J(this,"showLoading");J(this,"destroy",()=>{this.machine.stop(),this.el.remove()});this.duration=n.duration,this.showLoading=((r=n.meta)==null?void 0:r.loading)===!0,this.el.setAttribute("data-scope","toast"),this.el.setAttribute("data-part","root"),this.el.classList.add("toast-item"),this.el.innerHTML=`
@@ -23,4 +23,4 @@ ${g}`)}).finally(()=>{n.set("transforming",!1)})):c(s)},removeFile({context:e,ev
- `,this.parts={title:this.el.querySelector('[data-part="title"]'),description:this.el.querySelector('[data-part="description"]'),close:this.el.querySelector('[data-part="close-trigger"]'),ghostBefore:this.el.querySelector('[data-part="ghost-before"]'),ghostAfter:this.el.querySelector('[data-part="ghost-after"]'),progressbar:this.el.querySelector('[data-part="progressbar"]'),loadingSpinner:this.el.querySelector('[data-part="loading-spinner"]')}}initMachine(t){return new Y(tN,t)}initApi(){return this.zagConnect(Qk)}render(){var l,c;this.spreadProps(this.el,this.api.getRootProps()),this.spreadProps(this.parts.close,this.api.getCloseTriggerProps()),this.spreadProps(this.parts.ghostBefore,this.api.getGhostBeforeProps()),this.spreadProps(this.parts.ghostAfter,this.api.getGhostAfterProps());let t=this.el.closest('[phx-hook="Toast"]'),n=t==null?void 0:t.querySelector("[data-loading-icon-template]"),r=t==null?void 0:t.querySelector("[data-close-icon-template]"),i=n==null?void 0:n.innerHTML,a=r==null?void 0:r.innerHTML;a?this.parts.close.innerHTML!==a&&(this.parts.close.innerHTML=a):this.parts.close.innerHTML||(this.parts.close.innerHTML="\xD7"),this.parts.title.textContent!==this.api.title&&(this.parts.title.textContent=(l=this.api.title)!=null?l:""),this.parts.description.textContent!==this.api.description&&(this.parts.description.textContent=(c=this.api.description)!=null?c:""),this.spreadProps(this.parts.title,this.api.getTitleProps()),this.spreadProps(this.parts.description,this.api.getDescriptionProps());let o=this.duration;o==="Infinity"||o===1/0||o===Number.POSITIVE_INFINITY?(this.parts.progressbar.style.display="none",this.el.setAttribute("data-duration-infinity","true")):(this.parts.progressbar.style.display="block",this.el.removeAttribute("data-duration-infinity")),this.showLoading?(this.parts.loadingSpinner.style.display="flex",i&&this.parts.loadingSpinner.innerHTML!==i&&(this.parts.loadingSpinner.innerHTML=i)):this.parts.loadingSpinner.style.display="none"}},cN=class extends X{constructor(t,n){var r;super(t,n);Z(this,"toastComponents",new Map);Z(this,"groupEl");Z(this,"store");Z(this,"destroy",()=>{for(let t of this.toastComponents.values())t.destroy();this.toastComponents.clear(),this.machine.stop()});this.store=n.store,this.groupEl=(r=t.querySelector('[data-part="group"]'))!=null?r:(()=>{let i=document.createElement("div");return i.setAttribute("data-scope","toast"),i.setAttribute("data-part","group"),t.appendChild(i),i})()}initMachine(t){return new Y(hb.machine,t)}initApi(){return this.zagConnect(hb.connect)}render(){this.spreadProps(this.groupEl,this.api.getGroupProps());let t=this.api.getToasts().filter(r=>typeof r.id=="string"),n=new Set(t.map(r=>r.id));t.forEach((r,i)=>{var o;let a=this.toastComponents.get(r.id);if(a)a.duration=r.duration,a.showLoading=((o=r.meta)==null?void 0:o.loading)===!0,a.updateProps(v(p({},r),{parent:this.machine.service,index:i}));else{let s=document.createElement("div");s.classList.add("toast-item"),s.setAttribute("data-scope","toast"),s.setAttribute("data-part","root"),this.groupEl.appendChild(s),a=new lN(s,v(p({},r),{parent:this.machine.service,index:i})),a.init(),this.toastComponents.set(r.id,a)}});for(let[r,i]of this.toastComponents)n.has(r)||(i.destroy(),this.toastComponents.delete(r))}};pb=e=>e===!0||e==="true"?{meta:{loading:!0}}:{},uN={mounted(){var g;let e=this.el;e.id||(e.id=gi(e,"toast")),this.groupId=e.id;let t=h=>{if(h)try{return h.includes("{")?JSON.parse(h):h}catch(u){return h}},n=h=>h==="Infinity"||h===1/0?1/0:typeof h=="string"?parseInt(h,10)||void 0:h,r=(g=V(e,"placement",["top-start","top","top-end","bottom-start","bottom","bottom-end"]))!=null?g:"bottom-end";dN(e,{id:this.groupId,placement:r,overlap:I(e,"overlap"),max:q(e,"max"),gap:q(e,"gap"),offsets:t(V(e,"offset")),pauseOnPageIdle:I(e,"pauseOnPageIdle")}),e.setAttribute("data-ready","");let i=ro(this.groupId),a=e.getAttribute("data-flash-info"),o=e.getAttribute("data-flash-info-title"),s=e.getAttribute("data-flash-error"),l=e.getAttribute("data-flash-error-title"),c=e.getAttribute("data-flash-info-duration"),d=e.getAttribute("data-flash-error-duration");if(i&&a)try{i.create({title:o||"Success",description:a,type:"info",id:gi(void 0,"toast"),duration:n(c!=null?c:void 0)})}catch(h){console.error("Failed to create flash info toast:",h)}if(i&&s)try{i.create({title:l||"Error",description:s,type:"error",id:gi(void 0,"toast"),duration:n(d!=null?d:void 0)})}catch(h){console.error("Failed to create flash error toast:",h)}this.handlers=[],this.handlers.push(this.handleEvent("toast-create",h=>{let u=ro(h.groupId||this.groupId);if(u)try{u.create(p({title:h.title,description:h.description,type:h.type||"info",id:h.id||gi(void 0,"toast"),duration:n(h.duration)},pb(h.loading)))}catch(f){console.error("Failed to create toast:",f)}})),this.handlers.push(this.handleEvent("toast-update",h=>{let u=ro(h.groupId||this.groupId);if(u)try{u.update(h.id,{title:h.title,description:h.description,type:h.type})}catch(f){console.error("Failed to update toast:",f)}})),this.handlers.push(this.handleEvent("toast-dismiss",h=>{let u=ro(h.groupId||this.groupId);if(u)try{u.dismiss(h.id)}catch(f){console.error("Failed to dismiss toast:",f)}})),e.addEventListener("toast:create",h=>{let{detail:u}=h,f=ro(u.groupId||this.groupId);if(f)try{f.create(p({title:u.title,description:u.description,type:u.type||"info",id:u.id||gi(void 0,"toast"),duration:n(u.duration)},pb(u.loading)))}catch(m){console.error("Failed to create toast:",m)}})},destroyed(){if(this.handlers)for(let e of this.handlers)this.removeHandleEvent(e)}}});var Cb={};fe(Cb,{Tooltip:()=>SN});function hN(e,t=Object.is){let n=p({},e),r=new Set,i=d=>(r.add(d),()=>r.delete(d)),a=()=>{r.forEach(d=>d())};return{subscribe:i,get:d=>n[d],set:(d,g)=>{t(n[d],g)||(n[d]=g,a())},update:d=>{let g=!1;for(let h in d){let u=d[h];u!==void 0&&!t(n[h],u)&&(n[h]=u,g=!0)}g&&a()},snapshot:()=>p({},n)}}function vN(e,t){let{state:n,context:r,send:i,scope:a,prop:o,event:s}=e,l=o("id"),c=!!o("aria-label"),d=n.matches("open","closing"),g=r.get("triggerValue"),h=pN(a),u=o("disabled"),f=Lt(v(p({},o("positioning")),{placement:r.get("currentPlacement")}));return{open:d,setOpen(m){n.matches("open","closing")!==m&&i({type:m?"open":"close"})},triggerValue:g,setTriggerValue(m){i({type:"triggerValue.set",value:m!=null?m:void 0})},reposition(m={}){i({type:"positioning.set",options:m})},getTriggerProps(m={}){let{value:P}=m,C=P==null?!1:g===P,x=Sb(a,P);return t.button(v(p({},io.trigger.attrs),{id:x,"data-ownedby":a.id,"data-value":P,"data-current":E(C),dir:o("dir"),"data-expanded":E(d),"data-state":d?"open":"closed","aria-describedby":d?h:void 0,onClick(T){if(T.defaultPrevented||u||!o("closeOnClick"))return;let b=d&&P!=null&&!C;i({type:b?"triggerValue.set":"close",src:"trigger.click",value:P,triggerId:x})},onFocus(T){if(T.defaultPrevented||u||!ln())return;let b=d&&P!=null&&!C;i({type:b?"triggerValue.set":"open",src:"trigger.focus",value:P,triggerId:x})},onBlur(T){var S;if(T.defaultPrevented||u||l!==It.get("id"))return;let b=(S=T.relatedTarget)!=null?S:a.getDoc().activeElement;(b==null?void 0:b.closest(`[data-ownedby="${a.id}"]`))!=null||i({type:"close",src:"trigger.blur",value:P,triggerId:x})},onPointerDown(T){T.defaultPrevented||u||Ee(T)&&o("closeOnPointerDown")&&l===It.get("id")&&i({type:"close",src:"trigger.pointerdown",value:P,triggerId:x})},onPointerMove(T){if(T.defaultPrevented||u||T.pointerType==="touch")return;let b=d&&P!=null&&!C;i({type:b?"triggerValue.set":"pointer.move",value:P,triggerId:x})},onPointerOver(T){T.defaultPrevented||u||T.pointerType!=="touch"&&i({type:"pointer.move",value:P,triggerId:x})},onPointerLeave(){u||i({type:"pointer.leave"})},onPointerCancel(){u||i({type:"pointer.leave"})}}))},getArrowProps(){return t.element(v(p({id:fN(a)},io.arrow.attrs),{dir:o("dir"),style:f.arrow}))},getArrowTipProps(){return t.element(v(p({},io.arrowTip.attrs),{dir:o("dir"),style:f.arrowTip}))},getPositionerProps(){return t.element(v(p({id:Pb(a)},io.positioner.attrs),{dir:o("dir"),style:f.floating}))},getContentProps(){let m=It.get("id")===l,P=It.get("prevId")===l,C=It.get("instant")&&(d&&m||P);return t.element(v(p({},io.content.attrs),{dir:o("dir"),hidden:!d,"data-state":d?"open":"closed","data-instant":E(C),role:c?void 0:"tooltip",id:c?void 0:h,"data-placement":r.get("currentPlacement"),onPointerEnter(){i({type:"content.pointer.move"})},onPointerLeave(){i({type:"content.pointer.leave"})},style:{pointerEvents:o("interactive")?"auto":"none"}}))}}}function Eb(e){let t=I(e,"interactive"),n=q(e,"closeDelay");return t&&(n===void 0||n===0)?400:n}var gN,io,Sb,pN,fN,Pb,Pu,mN,ao,It,yN,bb,bN,EN,SN,Ib=ne(()=>{"use strict";_r();Ln();Ce();se();gN=j("tooltip").parts("trigger","arrow","arrowTip","positioner","content"),io=gN.build();Sb=(e,t)=>{var r;let n=(r=e.ids)==null?void 0:r.trigger;return n!=null?Xe(n)?n(t):n:t?`tooltip:${e.id}:trigger:${t}`:`tooltip:${e.id}:trigger`},pN=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.content)!=null?n:`tooltip:${e.id}:content`},fN=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.arrow)!=null?n:`tooltip:${e.id}:arrow`},Pb=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.positioner)!=null?n:`tooltip:${e.id}:popper`},Pu=e=>e.getById(Pb(e)),mN=e=>xe(e.getDoc(),`[data-scope="tooltip"][data-part="trigger"][data-ownedby="${e.id}"]`),ao=(e,t)=>t==null?mN(e)[0]:e.getById(Sb(e,t)),It=hN({id:null,prevId:null,instant:!1});({and:yN,not:bb}=Te()),bN=te({initialState:({prop:e})=>e("open")||e("defaultOpen")?"open":"closed",props({props:e}){var r,i;rn(e,["id"]);let t=(r=e.closeOnClick)!=null?r:!0,n=(i=e.closeOnPointerDown)!=null?i:t;return v(p({openDelay:400,closeDelay:150,closeOnEscape:!0,interactive:!1,closeOnScroll:!0,disabled:!1},e),{closeOnPointerDown:n,closeOnClick:t,positioning:p({placement:"bottom"},e.positioning)})},effects:["trackFocusVisible","trackStore"],context:({bindable:e,prop:t,scope:n})=>({currentPlacement:e(()=>({defaultValue:void 0})),hasPointerMoveOpened:e(()=>({defaultValue:null})),triggerValue:e(()=>{var r;return{defaultValue:(r=t("defaultTriggerValue"))!=null?r:null,value:t("triggerValue"),onChange(i){let a=t("onTriggerValueChange");if(!a)return;let o=ao(n,i);a({value:i,triggerElement:o})}}})}),watch({track:e,action:t,prop:n}){e([()=>n("disabled")],()=>{t(["closeIfDisabled"])}),e([()=>n("open")],()=>{t(["toggleVisibility"])}),e([()=>n("triggerValue")],()=>{t(["repositionImmediate"])})},on:{"triggerValue.set":{actions:["setTriggerValue","repositionImmediate"]}},states:{closed:{entry:["clearGlobalId"],on:{"controlled.open":{target:"open"},open:[{guard:"isOpenControlled",actions:["setTriggerValue","invokeOnOpen"]},{target:"open",actions:["setTriggerValue","invokeOnOpen"]}],"pointer.leave":{actions:["clearPointerMoveOpened"]},"pointer.move":[{guard:yN("noVisibleTooltip",bb("hasPointerMoveOpened")),target:"opening",actions:["setTriggerValue"]},{guard:bb("hasPointerMoveOpened"),target:"open",actions:["setPointerMoveOpened","invokeOnOpen","setTriggerValue"]}]}},opening:{effects:["trackScroll","trackPointerlockChange","waitForOpenDelay"],on:{"after.openDelay":[{guard:"isOpenControlled",actions:["setPointerMoveOpened","invokeOnOpen"]},{target:"open",actions:["setPointerMoveOpened","invokeOnOpen"]}],"controlled.open":{target:"open"},"controlled.close":{target:"closed"},open:[{guard:"isOpenControlled",actions:["setTriggerValue","invokeOnOpen"]},{target:"open",actions:["setTriggerValue","invokeOnOpen"]}],"pointer.leave":[{guard:"isOpenControlled",actions:["clearPointerMoveOpened","invokeOnClose","toggleVisibility"]},{target:"closed",actions:["clearPointerMoveOpened","invokeOnClose"]}],close:[{guard:"isOpenControlled",actions:["invokeOnClose","toggleVisibility"]},{target:"closed",actions:["invokeOnClose"]}]}},open:{effects:["trackEscapeKey","trackScroll","trackPointerlockChange","trackPositioning"],entry:["setGlobalId"],on:{"controlled.close":{target:"closed"},close:[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed",actions:["invokeOnClose"]}],"pointer.leave":[{guard:"isVisible",target:"closing",actions:["clearPointerMoveOpened"]},{guard:"isOpenControlled",actions:["clearPointerMoveOpened","invokeOnClose"]},{target:"closed",actions:["clearPointerMoveOpened","invokeOnClose"]}],"content.pointer.leave":{guard:"isInteractive",target:"closing"},"positioning.set":{actions:["reposition"]},"triggerValue.set":{target:"closing",actions:["setTriggerValue","immediateReopen"]}}},closing:{effects:["trackPositioning","waitForCloseDelay"],on:{"after.closeDelay":[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed",actions:["invokeOnClose"]}],"controlled.close":{target:"closed"},"controlled.open":{target:"open"},close:[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed",actions:["invokeOnClose"]}],"pointer.move":[{guard:"isOpenControlled",actions:["setPointerMoveOpened","setTriggerValue","invokeOnOpen","toggleVisibility"]},{target:"open",actions:["setPointerMoveOpened","setTriggerValue","invokeOnOpen"]}],"triggerValue.set":{target:"open",actions:["setTriggerValue","repositionImmediate"]},reopen:{target:"open"},"content.pointer.move":{guard:"isInteractive",target:"open"},"positioning.set":{actions:["reposition"]}}}},implementations:{guards:{noVisibleTooltip:()=>It.get("id")===null,isVisible:({prop:e})=>e("id")===It.get("id"),isInteractive:({prop:e})=>!!e("interactive"),hasPointerMoveOpened:({context:e})=>!!e.get("hasPointerMoveOpened"),isOpenControlled:({prop:e})=>e("open")!==void 0},actions:{setGlobalId:({prop:e})=>{let t=It.get("id"),n=t!==null&&t!==e("id");It.update({id:e("id"),prevId:n?t:null,instant:n})},clearGlobalId:({prop:e})=>{e("id")===It.get("id")&&It.update({id:null,prevId:null,instant:!1})},invokeOnOpen:({prop:e})=>{var t;(t=e("onOpenChange"))==null||t({open:!0})},invokeOnClose:({prop:e})=>{var t;(t=e("onOpenChange"))==null||t({open:!1})},closeIfDisabled:({prop:e,send:t})=>{e("disabled")&&t({type:"close",src:"disabled.change"})},reposition:({context:e,event:t,prop:n,scope:r})=>{if(t.type!=="positioning.set")return;je(()=>ao(r,e.get("triggerValue")),()=>Pu(r),v(p(p({},n("positioning")),t.options),{listeners:!1,onComplete(o){e.set("currentPlacement",o.placement)}}))},repositionImmediate:({context:e,event:t,prop:n,scope:r})=>{var s;let i=(s=t.value)!=null?s:e.get("triggerValue");return je(()=>ao(r,i),()=>Pu(r),v(p({},n("positioning")),{onComplete(l){e.set("currentPlacement",l.placement)}}))},toggleVisibility:({prop:e,event:t,send:n})=>{queueMicrotask(()=>{n({type:e("open")?"controlled.open":"controlled.close",previousEvent:t})})},setPointerMoveOpened:({context:e,event:t})=>{var r,i;let n=(i=t.triggerId)!=null?i:(r=t.previousEvent)==null?void 0:r.triggerId;e.set("hasPointerMoveOpened",n!=null?n:null)},clearPointerMoveOpened:({context:e})=>{e.set("hasPointerMoveOpened",null)},setTriggerValue:({context:e,event:t})=>{t.value!==void 0&&e.set("triggerValue",t.value)},immediateReopen:({send:e})=>{queueMicrotask(()=>{e({type:"reopen"})})}},effects:{trackFocusVisible:({scope:e})=>{var t;return Qe({root:(t=e.getRootNode)==null?void 0:t.call(e)})},trackPositioning:({context:e,prop:t,scope:n})=>(e.get("currentPlacement")||e.set("currentPlacement",t("positioning").placement),je(()=>ao(n,e.get("triggerValue")),()=>Pu(n),v(p({},t("positioning")),{defer:!0,onComplete(a){e.set("currentPlacement",a.placement)}}))),trackPointerlockChange:({send:e,scope:t})=>{let n=t.getDoc();return re(n,"pointerlockchange",()=>e({type:"close",src:"pointerlock:change"}),!1)},trackScroll:({send:e,prop:t,scope:n,context:r})=>{if(!t("closeOnScroll"))return;let i=r.get("triggerValue"),a=ao(n,i);if(!a)return;let s=zl(a).map(l=>re(l,"scroll",()=>{e({type:"close",src:"scroll"})},{passive:!0,capture:!0}));return()=>{s.forEach(l=>l==null?void 0:l())}},trackStore:({prop:e,send:t})=>{let n;return queueMicrotask(()=>{n=It.subscribe(()=>{It.get("id")!==e("id")&&t({type:"close",src:"id.change"})})}),()=>n==null?void 0:n()},trackEscapeKey:({send:e,prop:t})=>t("closeOnEscape")?re(document,"keydown",r=>{$e(r)||r.key==="Escape"&&(r.stopPropagation(),e({type:"close",src:"keydown.escape"}))},!0):void 0,waitForOpenDelay:({send:e,prop:t,event:n})=>{let r=setTimeout(()=>{e({type:"after.openDelay",previousEvent:n})},t("openDelay"));return()=>clearTimeout(r)},waitForCloseDelay:({send:e,prop:t,event:n})=>{let r=setTimeout(()=>{e({type:"after.closeDelay",previousEvent:n})},t("closeDelay"));return()=>clearTimeout(r)}}}}),EN=class extends X{initMachine(e){return new Y(bN,e)}initApi(){return this.zagConnect(vN)}render(){let e=this.el,t=e.querySelector('[data-scope="tooltip"][data-part="trigger"]');t&&this.spreadProps(t,this.api.getTriggerProps());let n=e.querySelector('[data-scope="tooltip"][data-part="positioner"]');n&&this.spreadProps(n,this.api.getPositionerProps());let r=e.querySelector('[data-scope="tooltip"][data-part="content"]');r&&this.spreadProps(r,this.api.getContentProps());let i=e.querySelector('[data-scope="tooltip"][data-part="arrow"]');i&&this.spreadProps(i,this.api.getArrowProps());let a=e.querySelector('[data-scope="tooltip"][data-part="arrow-tip"]');a&&this.spreadProps(a,this.api.getArrowTipProps())}};SN={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=V(e,"placement"),r=n?{placement:n}:void 0,i=new EN(e,v(p({id:e.id},I(e,"controlled")?{open:I(e,"open")}:{defaultOpen:I(e,"defaultOpen")}),{disabled:I(e,"disabled"),dir:U(e),openDelay:q(e,"openDelay"),closeDelay:Eb(e),positioning:r,closeOnEscape:I(e,"closeOnEscape"),closeOnClick:I(e,"closeOnClick"),closeOnPointerDown:I(e,"closeOnPointerDown"),closeOnScroll:I(e,"closeOnScroll"),interactive:I(e,"interactive"),onOpenChange:a=>{let o=V(e,"onOpenChange");o&&J(this.liveSocket)&&t(o,{id:e.id,open:a.open});let s=V(e,"onOpenChangeClient");s&&e.dispatchEvent(new CustomEvent(s,{bubbles:!0,detail:{id:e.id,open:a.open}}))}}));i.init(),this.tooltip=i,this.onSetOpen=a=>{let{open:o}=a.detail;i.api.setOpen(o)},e.addEventListener("corex:tooltip:set-open",this.onSetOpen),this.handlers=[],this.handlers.push(this.handleEvent("tooltip_set_open",a=>{B(e.id,G(a))&&i.api.setOpen(a.open)}))},updated(){var n;let e=V(this.el,"placement"),t=e?{placement:e}:void 0;(n=this.tooltip)==null||n.updateProps(v(p({id:this.el.id},I(this.el,"controlled")?{open:I(this.el,"open")}:{defaultOpen:I(this.el,"defaultOpen")}),{disabled:I(this.el,"disabled"),dir:U(this.el),openDelay:q(this.el,"openDelay"),closeDelay:Eb(this.el),positioning:t,closeOnEscape:I(this.el,"closeOnEscape"),closeOnClick:I(this.el,"closeOnClick"),closeOnPointerDown:I(this.el,"closeOnPointerDown"),closeOnScroll:I(this.el,"closeOnScroll"),interactive:I(this.el,"interactive")})),queueMicrotask(()=>{var r,i,a;(a=(r=this.tooltip)==null?void 0:(i=r.api).reposition)==null||a.call(i)})},destroyed(){var e;if(this.onSetOpen&&this.el.removeEventListener("corex:tooltip:set-open",this.onSetOpen),this.handlers)for(let t of this.handlers)this.removeHandleEvent(t);(e=this.tooltip)==null||e.destroy()}}});var xb={};fe(xb,{ToggleGroup:()=>NN});function ON(e,t){let{context:n,send:r,prop:i,scope:a}=e,o=n.get("value"),s=i("disabled"),l=!i("multiple"),c=i("rovingFocus"),d=i("orientation")==="horizontal";function g(h){let u=CN(a,h.value);return{id:u,disabled:!!(h.disabled||s),pressed:!!o.includes(h.value),focused:n.get("focusedId")===u}}return{value:o,setValue(h){r({type:"VALUE.SET",value:h})},getRootProps(){return t.element(v(p({},Tb.root.attrs),{id:vl(a),dir:i("dir"),role:l?"radiogroup":"group",tabIndex:n.get("isTabbingBackward")?-1:0,"data-disabled":E(s),"data-orientation":i("orientation"),"data-focus":E(n.get("focusedId")!=null),style:{outline:"none"},onMouseDown(){s||r({type:"ROOT.MOUSE_DOWN"})},onFocus(h){s||h.currentTarget===Q(h)&&(n.get("isClickFocus")||n.get("isTabbingBackward")||r({type:"ROOT.FOCUS"}))},onBlur(h){let u=h.relatedTarget;ge(h.currentTarget,u)||s||r({type:"ROOT.BLUR"})}}))},getItemState:g,getItemProps(h){let u=g(h),f=u.focused?0:-1;return t.button(v(p({},Tb.item.attrs),{id:u.id,type:"button","data-ownedby":vl(a),"data-focus":E(u.focused),disabled:u.disabled,tabIndex:c?f:void 0,role:l?"radio":void 0,"aria-checked":l?u.pressed:void 0,"aria-pressed":l?void 0:u.pressed,"data-disabled":E(u.disabled),"data-orientation":i("orientation"),dir:i("dir"),"data-state":u.pressed?"on":"off",onFocus(){u.disabled||r({type:"TOGGLE.FOCUS",id:u.id})},onClick(m){u.disabled||(r({type:"TOGGLE.CLICK",id:u.id,value:h.value}),yt()&&m.currentTarget.focus({preventScroll:!0}))},onKeyDown(m){if(m.defaultPrevented||!ge(m.currentTarget,Q(m))||u.disabled)return;let C={Tab(x){let T=x.shiftKey;r({type:"TOGGLE.SHIFT_TAB",isShiftTab:T})},ArrowLeft(){!c||!d||r({type:"TOGGLE.FOCUS_PREV"})},ArrowRight(){!c||!d||r({type:"TOGGLE.FOCUS_NEXT"})},ArrowUp(){!c||d||r({type:"TOGGLE.FOCUS_PREV"})},ArrowDown(){!c||d||r({type:"TOGGLE.FOCUS_NEXT"})},Home(){c&&r({type:"TOGGLE.FOCUS_FIRST"})},End(){c&&r({type:"TOGGLE.FOCUS_LAST"})}}[ve(m)];C&&(C(m),m.key!=="Tab"&&m.preventDefault())}}))}}}function RN(e,t){return{id:e.id,value:t.value}}function kN(e){var r;if(!e||typeof e!="object")return;let t=e,n=(r=t.value)!=null?r:t.value;if(Array.isArray(n)&&n.every(i=>typeof i=="string"))return n}var PN,Tb,vl,CN,Vb,yl,wb,IN,TN,wN,Ob,VN,xN,AN,NN,Ab=ne(()=>{"use strict";_e();Ce();se();PN=j("toggle-group").parts("root","item"),Tb=PN.build(),vl=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`toggle-group:${e.id}`},CN=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.item)==null?void 0:r.call(n,t))!=null?i:`toggle-group:${e.id}:${t}`},Vb=e=>e.getById(vl(e)),yl=e=>{let n=`[data-ownedby='${CSS.escape(vl(e))}']:not([data-disabled])`;return xe(Vb(e),n)},wb=e=>Tt(yl(e)),IN=e=>qt(yl(e)),TN=(e,t,n)=>Ei(yl(e),t,n),wN=(e,t,n)=>Si(yl(e),t,n);({not:Ob,and:VN}=Te()),xN=te({props({props:e}){return p({defaultValue:[],orientation:"horizontal",rovingFocus:!0,loopFocus:!0,deselectable:!0},e)},initialState(){return"idle"},context({prop:e,bindable:t}){return{value:t(()=>({defaultValue:e("defaultValue"),value:e("value"),onChange(n){var r;(r=e("onValueChange"))==null||r({value:n})}})),focusedId:t(()=>({defaultValue:null})),isTabbingBackward:t(()=>({defaultValue:!1})),isClickFocus:t(()=>({defaultValue:!1})),isWithinToolbar:t(()=>({defaultValue:!1}))}},computed:{currentLoopFocus:({context:e,prop:t})=>t("loopFocus")&&!e.get("isWithinToolbar")},entry:["checkIfWithinToolbar"],on:{"VALUE.SET":{actions:["setValue"]},"TOGGLE.CLICK":{actions:["setValue"]},"ROOT.MOUSE_DOWN":{actions:["setClickFocus"]}},states:{idle:{on:{"ROOT.FOCUS":{target:"focused",guard:Ob(VN("isClickFocus","isTabbingBackward")),actions:["focusFirstToggle","clearClickFocus"]},"TOGGLE.FOCUS":{target:"focused",actions:["setFocusedId"]}}},focused:{on:{"ROOT.BLUR":{target:"idle",actions:["clearIsTabbingBackward","clearFocusedId","clearClickFocus"]},"TOGGLE.FOCUS":{actions:["setFocusedId"]},"TOGGLE.FOCUS_NEXT":{actions:["focusNextToggle"]},"TOGGLE.FOCUS_PREV":{actions:["focusPrevToggle"]},"TOGGLE.FOCUS_FIRST":{actions:["focusFirstToggle"]},"TOGGLE.FOCUS_LAST":{actions:["focusLastToggle"]},"TOGGLE.SHIFT_TAB":[{guard:Ob("isFirstToggleFocused"),target:"idle",actions:["setIsTabbingBackward"]},{actions:["setIsTabbingBackward"]}]}}},implementations:{guards:{isClickFocus:({context:e})=>e.get("isClickFocus"),isTabbingBackward:({context:e})=>e.get("isTabbingBackward"),isFirstToggleFocused:({context:e,scope:t})=>{var n;return e.get("focusedId")===((n=wb(t))==null?void 0:n.id)}},actions:{setIsTabbingBackward({context:e}){e.set("isTabbingBackward",!0)},clearIsTabbingBackward({context:e}){e.set("isTabbingBackward",!1)},setClickFocus({context:e}){e.set("isClickFocus",!0)},clearClickFocus({context:e}){e.set("isClickFocus",!1)},checkIfWithinToolbar({context:e,scope:t}){var r;let n=(r=Vb(t))==null?void 0:r.closest("[role=toolbar]");e.set("isWithinToolbar",!!n)},setFocusedId({context:e,event:t}){e.set("focusedId",t.id)},clearFocusedId({context:e}){e.set("focusedId",null)},setValue({context:e,event:t,prop:n}){rn(t,["value"]);let r=e.get("value");Zn(t.value)?r=t.value:n("multiple")?r=Kt(r,t.value):r=Ie(r,[t.value])&&n("deselectable")?[]:[t.value],e.set("value",r)},focusNextToggle({context:e,scope:t,prop:n}){$(()=>{var i;let r=e.get("focusedId");r&&((i=TN(t,r,n("loopFocus")))==null||i.focus({preventScroll:!0}))})},focusPrevToggle({context:e,scope:t,prop:n}){$(()=>{var i;let r=e.get("focusedId");r&&((i=wN(t,r,n("loopFocus")))==null||i.focus({preventScroll:!0}))})},focusFirstToggle({scope:e}){$(()=>{var t;(t=wb(e))==null||t.focus({preventScroll:!0})})},focusLastToggle({scope:e}){$(()=>{var t;(t=IN(e))==null||t.focus({preventScroll:!0})})}}}}),AN=class extends X{initMachine(e){return new Y(xN,e)}initApi(){return this.zagConnect(ON)}render(){let e=this.el.querySelector('[data-scope="toggle-group"][data-part="root"]');if(!e)return;this.spreadProps(e,this.api.getRootProps());let t=this.el.querySelectorAll('[data-scope="toggle-group"][data-part="item"]');for(let n=0;nJ(this.liveSocket),r=v(p({id:e.id},I(e,"controlled")?{value:ie(e,"value")}:{defaultValue:ie(e,"defaultValue")}),{deselectable:I(e,"deselectable"),loopFocus:I(e,"loopFocus"),rovingFocus:I(e,"rovingFocus"),disabled:I(e,"disabled"),multiple:I(e,"multiple"),orientation:V(e,"orientation"),dir:U(e),onValueChange:s=>{K({el:e,canPushServer:n(),pushEvent:t,payload:RN(e,s),serverEventName:V(e,"onValueChange"),clientEventName:V(e,"onValueChangeClient")})}}),i=new AN(e,r);i.init(),this.toggleGroup=i;let a=de(e);this.domRegistry=a,a.add("corex:toggle-group:set-value",s=>{let{value:l}=s.detail;i.api.setValue(l)});let o=ce(this);this.handleRegistry=o,o.add("toggle-group_set_value",s=>{if(!B(e.id,G(s)))return;let l=kN(s);l&&i.api.setValue(l)}),o.add("toggle-group:value",s=>{B(e.id,G(s))&&n()&&this.pushEvent("toggle-group:value_response",{id:e.id,value:i.api.value})})},updated(){var e;(e=this.toggleGroup)==null||e.updateProps(v(p({},I(this.el,"controlled")?{value:ie(this.el,"value")}:{defaultValue:ie(this.el,"defaultValue")}),{deselectable:I(this.el,"deselectable"),loopFocus:I(this.el,"loopFocus"),rovingFocus:I(this.el,"rovingFocus"),disabled:I(this.el,"disabled"),multiple:I(this.el,"multiple"),orientation:V(this.el,"orientation"),dir:U(this.el)}))},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.toggleGroup)==null||n.destroy()}}});var $b={};fe($b,{TreeView:()=>BN});function _b(e,t,n){let r=e.getNodeValue(t);if(!e.isBranchNode(t))return n.includes(r);let i=e.getDescendantValues(r),a=i.every(s=>n.includes(s)),o=i.some(s=>n.includes(s));return a?!0:o?"indeterminate":!1}function MN(e,t,n){let r=e.getDescendantValues(t),i=r.every(a=>n.includes(a));return Wt(i?wt(n,...r):mt(n,...r))}function FN(e,t){let n=new Map;return e.visit({onEnter:r=>{let i=e.getNodeValue(r),a=e.isBranchNode(r),o=_b(e,r,t);n.set(i,{type:a?"branch":"leaf",checked:o})}}),n}function _N(e,t){let{context:n,scope:r,computed:i,prop:a,send:o}=e,s=a("collection"),l=a("translations"),c=Array.from(n.get("expandedValue")),d=Array.from(n.get("selectedValue")),g=Array.from(n.get("checkedValue")),h=i("isTypingAhead"),u=n.get("focusedValue"),f=n.get("loadingStatus"),m=n.get("renamingValue"),P=({indexPath:b})=>s.getValuePath(b).slice(0,-1).some(S=>!c.includes(S)),C=s.getFirstNode(void 0,{skip:P}),x=C?s.getNodeValue(C):null;function T(b){let{node:y,indexPath:S}=b,A=s.getNodeValue(y);return{id:Tu(r,A),value:A,indexPath:S,valuePath:s.getValuePath(S),disabled:!!y.disabled,focused:u==null?x===A:u===A,selected:d.includes(A),expanded:c.includes(A),loading:f[A]==="loading",depth:S.length,isBranch:s.isBranchNode(y),renaming:m===A,get checked(){return _b(s,y,g)}}}return{collection:s,expandedValue:c,selectedValue:d,checkedValue:g,toggleChecked(b,y){o({type:"CHECKED.TOGGLE",value:b,isBranch:y})},setChecked(b){o({type:"CHECKED.SET",value:b})},clearChecked(){o({type:"CHECKED.CLEAR"})},getCheckedMap(){return FN(s,g)},expand(b){o({type:b?"BRANCH.EXPAND":"EXPANDED.ALL",value:b})},collapse(b){o({type:b?"BRANCH.COLLAPSE":"EXPANDED.CLEAR",value:b})},deselect(b){o({type:b?"NODE.DESELECT":"SELECTED.CLEAR",value:b})},select(b){o({type:b?"NODE.SELECT":"SELECTED.ALL",value:b,isTrusted:!1})},getVisibleNodes(){return i("visibleNodes")},focus(b){qe(r,b)},selectParent(b){let y=s.getParentNode(b);if(!y)return;let S=mt(d,s.getNodeValue(y));o({type:"SELECTED.SET",value:S,src:"select.parent"})},expandParent(b){let y=s.getParentNode(b);if(!y)return;let S=mt(c,s.getNodeValue(y));o({type:"EXPANDED.SET",value:S,src:"expand.parent"})},setExpandedValue(b){let y=Wt(b);o({type:"EXPANDED.SET",value:y})},setSelectedValue(b){let y=Wt(b);o({type:"SELECTED.SET",value:y})},startRenaming(b){o({type:"NODE.RENAME",value:b})},submitRenaming(b,y){o({type:"RENAME.SUBMIT",value:b,label:y})},cancelRenaming(){o({type:"RENAME.CANCEL"})},getRootProps(){return t.element(v(p({},ot.root.attrs),{id:LN(r),dir:a("dir")}))},getLabelProps(){return t.element(v(p({},ot.label.attrs),{id:Rb(r),dir:a("dir")}))},getTreeProps(){return t.element(v(p({},ot.tree.attrs),{id:Cu(r),dir:a("dir"),role:"tree","aria-label":l.treeLabel,"aria-labelledby":Rb(r),"aria-multiselectable":a("selectionMode")==="multiple"||void 0,tabIndex:-1,onKeyDown(b){if(b.defaultPrevented||$e(b))return;let y=Q(b);if(xt(y))return;let S=y==null?void 0:y.closest("[data-part=branch-control], [data-part=item]");if(!S)return;let A=S.dataset.value;if(A==null){console.warn("[zag-js/tree-view] Node id not found for node",S);return}let N=S.matches("[data-part=branch-control]"),O={ArrowDown(R){Fe(R)||(R.preventDefault(),o({type:"NODE.ARROW_DOWN",id:A,shiftKey:R.shiftKey}))},ArrowUp(R){Fe(R)||(R.preventDefault(),o({type:"NODE.ARROW_UP",id:A,shiftKey:R.shiftKey}))},ArrowLeft(R){Fe(R)||S.dataset.disabled||(R.preventDefault(),o({type:N?"BRANCH_NODE.ARROW_LEFT":"NODE.ARROW_LEFT",id:A}))},ArrowRight(R){!N||S.dataset.disabled||(R.preventDefault(),o({type:"BRANCH_NODE.ARROW_RIGHT",id:A}))},Home(R){Fe(R)||(R.preventDefault(),o({type:"NODE.HOME",id:A,shiftKey:R.shiftKey}))},End(R){Fe(R)||(R.preventDefault(),o({type:"NODE.END",id:A,shiftKey:R.shiftKey}))},Space(R){var D;S.dataset.disabled||(h?o({type:"TREE.TYPEAHEAD",key:R.key}):(D=O.Enter)==null||D.call(O,R))},Enter(R){S.dataset.disabled||Vt(y)&&Fe(R)||(o({type:N?"BRANCH_NODE.CLICK":"NODE.CLICK",id:A,src:"keyboard"}),Vt(y)||R.preventDefault())},"*"(R){S.dataset.disabled||(R.preventDefault(),o({type:"SIBLINGS.EXPAND",id:A}))},a(R){!R.metaKey||S.dataset.disabled||(R.preventDefault(),o({type:"SELECTED.ALL",moveFocus:!0}))},F2(R){if(S.dataset.disabled)return;let D=a("canRename");if(!D)return;let W=s.getIndexPath(A);if(W){let ee=s.at(W);if(ee&&!D(ee,W))return}R.preventDefault(),o({type:"NODE.RENAME",value:A})}},w=ve(b,{dir:a("dir")}),k=O[w];if(k){k(b);return}ct.isValidEvent(b)&&(o({type:"TREE.TYPEAHEAD",key:b.key,id:A}),b.preventDefault())}}))},getNodeState:T,getItemProps(b){let y=T(b);return t.element(v(p({},ot.item.attrs),{id:y.id,dir:a("dir"),"data-ownedby":Cu(r),"data-path":b.indexPath.join("/"),"data-value":y.value,tabIndex:y.focused?0:-1,"data-focus":E(y.focused),role:"treeitem","aria-current":y.selected?"true":void 0,"aria-selected":y.disabled?void 0:y.selected,"data-selected":E(y.selected),"aria-disabled":oe(y.disabled),"data-disabled":E(y.disabled),"data-renaming":E(y.renaming),"data-checked":E(y.checked===!0),"data-indeterminate":E(y.checked==="indeterminate"),"aria-level":y.depth,"data-depth":y.depth,style:{"--depth":y.depth},onFocus(S){S.stopPropagation(),o({type:"NODE.FOCUS",id:y.value})},onClick(S){if(y.disabled||!Ee(S)||Vt(S.currentTarget)&&Fe(S))return;let A=S.metaKey||S.ctrlKey;o({type:"NODE.CLICK",id:y.value,shiftKey:S.shiftKey,ctrlKey:A}),S.stopPropagation(),Vt(S.currentTarget)||S.preventDefault()}}))},getItemTextProps(b){let y=T(b);return t.element(v(p({},ot.itemText.attrs),{"data-disabled":E(y.disabled),"data-selected":E(y.selected),"data-focus":E(y.focused)}))},getItemIndicatorProps(b){let y=T(b);return t.element(v(p({},ot.itemIndicator.attrs),{"aria-hidden":!0,"data-disabled":E(y.disabled),"data-selected":E(y.selected),"data-focus":E(y.focused),hidden:!y.selected}))},getBranchProps(b){let y=T(b);return t.element(v(p({},ot.branch.attrs),{"data-depth":y.depth,dir:a("dir"),"data-branch":y.value,role:"treeitem","data-ownedby":Cu(r),"data-value":y.value,"aria-level":y.depth,"aria-selected":y.disabled?void 0:y.selected,"data-path":b.indexPath.join("/"),"data-selected":E(y.selected),"aria-expanded":y.expanded,"data-state":y.expanded?"open":"closed","aria-disabled":oe(y.disabled),"data-disabled":E(y.disabled),"data-loading":E(y.loading),"aria-busy":oe(y.loading),style:{"--depth":y.depth}}))},getBranchIndicatorProps(b){let y=T(b);return t.element(v(p({},ot.branchIndicator.attrs),{"aria-hidden":!0,"data-state":y.expanded?"open":"closed","data-disabled":E(y.disabled),"data-selected":E(y.selected),"data-focus":E(y.focused),"data-loading":E(y.loading)}))},getBranchTriggerProps(b){let y=T(b);return t.element(v(p({},ot.branchTrigger.attrs),{role:"button",dir:a("dir"),"data-disabled":E(y.disabled),"data-state":y.expanded?"open":"closed","data-value":y.value,"data-loading":E(y.loading),disabled:y.loading,onClick(S){y.disabled||y.loading||(o({type:"BRANCH_TOGGLE.CLICK",id:y.value}),S.stopPropagation())}}))},getBranchControlProps(b){let y=T(b);return t.element(v(p({},ot.branchControl.attrs),{role:"button",id:y.id,dir:a("dir"),tabIndex:y.focused?0:-1,"data-path":b.indexPath.join("/"),"data-state":y.expanded?"open":"closed","data-disabled":E(y.disabled),"data-selected":E(y.selected),"data-focus":E(y.focused),"data-renaming":E(y.renaming),"data-checked":E(y.checked===!0),"data-indeterminate":E(y.checked==="indeterminate"),"data-value":y.value,"data-depth":y.depth,"data-loading":E(y.loading),"aria-busy":oe(y.loading),onFocus(S){o({type:"NODE.FOCUS",id:y.value}),S.stopPropagation()},onClick(S){if(y.disabled||y.loading||!Ee(S)||Vt(S.currentTarget)&&Fe(S))return;let A=S.metaKey||S.ctrlKey;o({type:"BRANCH_NODE.CLICK",id:y.value,shiftKey:S.shiftKey,ctrlKey:A}),S.stopPropagation()}}))},getBranchTextProps(b){let y=T(b);return t.element(v(p({},ot.branchText.attrs),{dir:a("dir"),"data-disabled":E(y.disabled),"data-state":y.expanded?"open":"closed","data-loading":E(y.loading)}))},getBranchContentProps(b){let y=T(b);return t.element(v(p({},ot.branchContent.attrs),{role:"group",dir:a("dir"),"data-state":y.expanded?"open":"closed","data-depth":y.depth,"data-path":b.indexPath.join("/"),"data-value":y.value,hidden:!y.expanded}))},getBranchIndentGuideProps(b){let y=T(b);return t.element(v(p({},ot.branchIndentGuide.attrs),{"data-depth":y.depth}))},getNodeCheckboxProps(b){let y=T(b),S=y.checked;return t.element(v(p({},ot.nodeCheckbox.attrs),{tabIndex:-1,role:"checkbox","data-state":S===!0?"checked":S===!1?"unchecked":"indeterminate","aria-checked":S===!0?"true":S===!1?"false":"mixed","data-disabled":E(y.disabled),onClick(A){if(A.defaultPrevented||y.disabled||!Ee(A))return;o({type:"CHECKED.TOGGLE",value:y.value,isBranch:y.isBranch}),A.stopPropagation();let N=A.currentTarget.closest("[role=treeitem]");N==null||N.focus({preventScroll:!0})}}))},getNodeRenameInputProps(b){let y=T(b);return t.input(v(p({},ot.nodeRenameInput.attrs),{id:Fb(r,y.value),type:"text","aria-label":l.renameInputLabel,hidden:!y.renaming,onKeyDown(S){$e(S)||(S.key==="Escape"&&(o({type:"RENAME.CANCEL"}),S.preventDefault()),S.key==="Enter"&&(o({type:"RENAME.SUBMIT",label:S.currentTarget.value}),S.preventDefault()),S.stopPropagation())},onBlur(S){o({type:"RENAME.SUBMIT",label:S.currentTarget.value})}}))}}}function bl(e,t){let{context:n,prop:r,refs:i}=e;if(!r("loadChildren")){n.set("expandedValue",m=>Wt(mt(m,...t)));return}let a=n.get("loadingStatus"),[o,s]=Ml(t,m=>a[m]==="loaded");if(o.length>0&&n.set("expandedValue",m=>Wt(mt(m,...o))),s.length===0)return;let l=r("collection"),[c,d]=Ml(s,m=>{let P=l.findNode(m);return l.getNodeChildren(P).length>0});if(c.length>0&&n.set("expandedValue",m=>Wt(mt(m,...c))),d.length===0)return;n.set("loadingStatus",m=>p(p({},m),d.reduce((P,C)=>v(p({},P),{[C]:"loading"}),{})));let g=d.map(m=>{let P=l.getIndexPath(m),C=l.getValuePath(P),x=l.findNode(m);return{id:m,indexPath:P,valuePath:C,node:x}}),h=i.get("pendingAborts"),u=r("loadChildren");jt(u,()=>"[zag-js/tree-view] `loadChildren` is required for async expansion");let f=g.map(({id:m,indexPath:P,valuePath:C,node:x})=>{let T=h.get(m);T&&(T.abort(),h.delete(m));let b=new AbortController;return h.set(m,b),u({valuePath:C,indexPath:P,node:x,signal:b.signal})});Promise.allSettled(f).then(m=>{var b,y;let P=[],C=[],x=n.get("loadingStatus"),T=r("collection");m.forEach((S,A)=>{let{id:N,indexPath:O,node:w,valuePath:k}=g[A];S.status==="fulfilled"?(x[N]="loaded",P.push(N),T=T.replace(O,v(p({},w),{children:S.value}))):(h.delete(N),Reflect.deleteProperty(x,N),C.push({node:w,error:S.reason,indexPath:O,valuePath:k}))}),n.set("loadingStatus",x),P.length&&(n.set("expandedValue",S=>Wt(mt(S,...P))),(b=r("onLoadChildrenComplete"))==null||b({collection:T})),C.length&&((y=r("onLoadChildrenError"))==null||y({nodes:C}))})}function Pn(e){let{prop:t,context:n}=e;return function({indexPath:i}){return t("collection").getValuePath(i).slice(0,-1).some(o=>!n.get("expandedValue").includes(o))}}function ai(e,t){let{prop:n,scope:r,computed:i}=e,a=n("scrollToIndexFn");if(!a)return!1;let o=n("collection"),s=i("visibleNodes");for(let l=0;lr.getById(Tu(r,t))}),!0}return!1}function Nb(e){return Iu({nodeToValue:t=>t.id,nodeToString:t=>t.name,rootNode:e})}function Db(e){var t,n;return I(e,"controlled")?(t=e.getAttribute("data-expanded-value"))!=null?t:"":(n=e.getAttribute("data-default-expanded-value"))!=null?n:""}function Lb(e){var t,n;return I(e,"controlled")?(t=e.getAttribute("data-selected-value"))!=null?t:"":(n=e.getAttribute("data-default-selected-value"))!=null?n:""}function Mb(e){let t=e.dataset.tree;if(t==null||t==="")throw new Error("TreeView: missing data-tree");return JSON.parse(t)}var DN,ot,Iu,LN,Rb,Tu,Cu,qe,Fb,kb,Cn,$N,HN,BN,Hb=ne(()=>{"use strict";wa();Di();Il();qo();_e();Ce();se();DN=j("tree-view").parts("branch","branchContent","branchControl","branchIndentGuide","branchIndicator","branchText","branchTrigger","item","itemIndicator","itemText","label","nodeCheckbox","nodeRenameInput","root","tree"),ot=DN.build(),Iu=e=>new $c(e);Iu.empty=()=>new $c({rootNode:{children:[]}});LN=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`tree:${e.id}:root`},Rb=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`tree:${e.id}:label`},Tu=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.node)==null?void 0:r.call(n,t))!=null?i:`tree:${e.id}:node:${t}`},Cu=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.tree)!=null?n:`tree:${e.id}:tree`},qe=(e,t)=>{var n;t!=null&&((n=e.getById(Tu(e,t)))==null||n.focus())},Fb=(e,t)=>`tree:${e.id}:rename-input:${t}`,kb=(e,t)=>e.getById(Fb(e,t));({and:Cn}=Te()),$N=te({props({props:e}){return v(p({selectionMode:"single",collection:Iu.empty(),typeahead:!0,expandOnClick:!0,defaultExpandedValue:[],defaultSelectedValue:[]},e),{translations:p({treeLabel:"Tree View",renameInputLabel:"Rename tree item"},e.translations)})},initialState(){return"idle"},context({prop:e,bindable:t,getContext:n}){return{expandedValue:t(()=>({defaultValue:e("defaultExpandedValue"),value:e("expandedValue"),isEqual:Ie,onChange(r){var o;let a=n().get("focusedValue");(o=e("onExpandedChange"))==null||o({expandedValue:r,focusedValue:a,get expandedNodes(){return e("collection").findNodes(r)}})}})),selectedValue:t(()=>({defaultValue:e("defaultSelectedValue"),value:e("selectedValue"),isEqual:Ie,onChange(r){var o;let a=n().get("focusedValue");(o=e("onSelectionChange"))==null||o({selectedValue:r,focusedValue:a,get selectedNodes(){return e("collection").findNodes(r)}})}})),focusedValue:t(()=>({defaultValue:e("defaultFocusedValue")||null,value:e("focusedValue"),onChange(r){var i;(i=e("onFocusChange"))==null||i({focusedValue:r,get focusedNode(){return r?e("collection").findNode(r):null}})}})),loadingStatus:t(()=>({defaultValue:{}})),checkedValue:t(()=>({defaultValue:e("defaultCheckedValue")||[],value:e("checkedValue"),isEqual:Ie,onChange(r){var i;(i=e("onCheckedChange"))==null||i({checkedValue:r})}})),renamingValue:t(()=>({sync:!0,defaultValue:null}))}},refs(){return{typeaheadState:p({},ct.defaultOptions),pendingAborts:new Map}},computed:{isMultipleSelection:({prop:e})=>e("selectionMode")==="multiple",isTypingAhead:({refs:e})=>e.get("typeaheadState").keysSoFar.length>0,visibleNodes:({prop:e,context:t})=>{let n=[];return e("collection").visit({skip:Pn({prop:e,context:t}),onEnter:(r,i)=>{n.push({node:r,indexPath:i})}}),n}},on:{"EXPANDED.SET":{actions:["setExpanded"]},"EXPANDED.CLEAR":{actions:["clearExpanded"]},"EXPANDED.ALL":{actions:["expandAllBranches"]},"BRANCH.EXPAND":{actions:["expandBranches"]},"BRANCH.COLLAPSE":{actions:["collapseBranches"]},"SELECTED.SET":{actions:["setSelected"]},"SELECTED.ALL":[{guard:Cn("isMultipleSelection","moveFocus"),actions:["selectAllNodes","focusTreeLastNode"]},{guard:"isMultipleSelection",actions:["selectAllNodes"]}],"SELECTED.CLEAR":{actions:["clearSelected"]},"NODE.SELECT":{actions:["selectNode"]},"NODE.DESELECT":{actions:["deselectNode"]},"CHECKED.TOGGLE":{actions:["toggleChecked"]},"CHECKED.SET":{actions:["setChecked"]},"CHECKED.CLEAR":{actions:["clearChecked"]},"NODE.FOCUS":{actions:["setFocusedNode"]},"NODE.ARROW_DOWN":[{guard:Cn("isShiftKey","isMultipleSelection"),actions:["focusTreeNextNode","extendSelectionToNextNode"]},{actions:["focusTreeNextNode"]}],"NODE.ARROW_UP":[{guard:Cn("isShiftKey","isMultipleSelection"),actions:["focusTreePrevNode","extendSelectionToPrevNode"]},{actions:["focusTreePrevNode"]}],"NODE.ARROW_LEFT":{actions:["focusBranchNode"]},"BRANCH_NODE.ARROW_LEFT":[{guard:"isBranchExpanded",actions:["collapseBranch"]},{actions:["focusBranchNode"]}],"BRANCH_NODE.ARROW_RIGHT":[{guard:Cn("isBranchFocused","isBranchExpanded"),actions:["focusBranchFirstNode"]},{actions:["expandBranch"]}],"SIBLINGS.EXPAND":{actions:["expandSiblingBranches"]},"NODE.HOME":[{guard:Cn("isShiftKey","isMultipleSelection"),actions:["extendSelectionToFirstNode","focusTreeFirstNode"]},{actions:["focusTreeFirstNode"]}],"NODE.END":[{guard:Cn("isShiftKey","isMultipleSelection"),actions:["extendSelectionToLastNode","focusTreeLastNode"]},{actions:["focusTreeLastNode"]}],"NODE.CLICK":[{guard:Cn("isCtrlKey","isMultipleSelection"),actions:["toggleNodeSelection"]},{guard:Cn("isShiftKey","isMultipleSelection"),actions:["extendSelectionToNode"]},{actions:["selectNode"]}],"BRANCH_NODE.CLICK":[{guard:Cn("isCtrlKey","isMultipleSelection"),actions:["toggleNodeSelection"]},{guard:Cn("isShiftKey","isMultipleSelection"),actions:["extendSelectionToNode"]},{guard:"expandOnClick",actions:["selectNode","toggleBranchNode"]},{actions:["selectNode"]}],"BRANCH_TOGGLE.CLICK":{actions:["toggleBranchNode"]},"TREE.TYPEAHEAD":{actions:["focusMatchedNode"]}},exit:["clearPendingAborts"],states:{idle:{on:{"NODE.RENAME":{target:"renaming",actions:["setRenamingValue"]}}},renaming:{entry:["syncRenameInput","focusRenameInput"],on:{"RENAME.SUBMIT":{guard:"isRenameLabelValid",target:"idle",actions:["submitRenaming"]},"RENAME.CANCEL":{target:"idle",actions:["cancelRenaming"]}}}},implementations:{guards:{isBranchFocused:({context:e,event:t})=>e.get("focusedValue")===t.id,isBranchExpanded:({context:e,event:t})=>e.get("expandedValue").includes(t.id),isShiftKey:({event:e})=>e.shiftKey,isCtrlKey:({event:e})=>e.ctrlKey,hasSelectedItems:({context:e})=>e.get("selectedValue").length>0,isMultipleSelection:({prop:e})=>e("selectionMode")==="multiple",moveFocus:({event:e})=>!!e.moveFocus,expandOnClick:({prop:e})=>!!e("expandOnClick"),isRenameLabelValid:({event:e})=>e.label.trim()!==""},actions:{selectNode({context:e,event:t}){let n=t.id||t.value;e.set("selectedValue",r=>n==null?r:!t.isTrusted&&Zn(n)?r.concat(...n):[Zn(n)?qt(n):n].filter(Boolean))},deselectNode({context:e,event:t}){let n=ia(t.id||t.value);e.set("selectedValue",r=>wt(r,...n))},setFocusedNode({context:e,event:t}){e.set("focusedValue",t.id)},clearFocusedNode({context:e}){e.set("focusedValue",null)},clearSelectedItem({context:e}){e.set("selectedValue",[])},toggleBranchNode({context:e,event:t,action:n}){let r=e.get("expandedValue").includes(t.id);n(r?["collapseBranch"]:["expandBranch"])},expandBranch(e){let{event:t}=e;bl(e,[t.id])},expandBranches(e){let{context:t,event:n}=e,r=ia(n.value);bl(e,Ao(r,t.get("expandedValue")))},collapseBranch({context:e,event:t}){e.set("expandedValue",n=>wt(n,t.id))},collapseBranches(e){let{context:t,event:n}=e,r=ia(n.value);t.set("expandedValue",i=>wt(i,...r))},setExpanded({context:e,event:t}){Zn(t.value)&&e.set("expandedValue",t.value)},clearExpanded({context:e}){e.set("expandedValue",[])},setSelected({context:e,event:t}){Zn(t.value)&&e.set("selectedValue",t.value)},clearSelected({context:e}){e.set("selectedValue",[])},focusTreeFirstNode(e){let{prop:t,scope:n}=e,r=t("collection"),i=r.getFirstNode(void 0,{skip:Pn(e)});if(!i)return;let a=r.getNodeValue(i);ai(e,a)?$(()=>qe(n,a)):qe(n,a)},focusTreeLastNode(e){let{prop:t,scope:n}=e,r=t("collection"),i=r.getLastNode(void 0,{skip:Pn(e)}),a=r.getNodeValue(i);ai(e,a)?$(()=>qe(n,a)):qe(n,a)},focusBranchFirstNode(e){let{event:t,prop:n,scope:r}=e,i=n("collection"),a=i.findNode(t.id),o=i.getFirstNode(a,{skip:Pn(e)});if(!o)return;let s=i.getNodeValue(o);ai(e,s)?$(()=>qe(r,s)):qe(r,s)},focusTreeNextNode(e){let{event:t,prop:n,scope:r}=e,i=n("collection"),a=i.getNextNode(t.id,{skip:Pn(e)});if(!a)return;let o=i.getNodeValue(a);ai(e,o)?$(()=>qe(r,o)):qe(r,o)},focusTreePrevNode(e){let{event:t,prop:n,scope:r}=e,i=n("collection"),a=i.getPreviousNode(t.id,{skip:Pn(e)});if(!a)return;let o=i.getNodeValue(a);ai(e,o)?$(()=>qe(r,o)):qe(r,o)},focusBranchNode(e){let{event:t,prop:n,scope:r}=e,i=n("collection"),a=i.getParentNode(t.id),o=a?i.getNodeValue(a):void 0;if(!o)return;ai(e,o)?$(()=>qe(r,o)):qe(r,o)},selectAllNodes({context:e,prop:t}){e.set("selectedValue",t("collection").getValues())},focusMatchedNode(e){let{context:t,prop:n,refs:r,event:i,scope:a,computed:o}=e,l=o("visibleNodes").map(({node:g})=>({textContent:n("collection").stringifyNode(g),id:n("collection").getNodeValue(g)})),c=ct(l,{state:r.get("typeaheadState"),activeId:t.get("focusedValue"),key:i.key});if(!(c!=null&&c.id))return;ai(e,c.id)?$(()=>qe(a,c.id)):qe(a,c.id)},toggleNodeSelection({context:e,event:t}){let n=Kt(e.get("selectedValue"),t.id);e.set("selectedValue",n)},expandAllBranches(e){let{context:t,prop:n}=e,r=n("collection").getBranchValues(),i=Ao(r,t.get("expandedValue"));bl(e,i)},expandSiblingBranches(e){let{context:t,event:n,prop:r}=e,i=r("collection"),a=i.getIndexPath(n.id);if(!a)return;let s=i.getSiblingNodes(a).map(c=>i.getNodeValue(c)),l=Ao(s,t.get("expandedValue"));bl(e,l)},extendSelectionToNode(e){let{context:t,event:n,prop:r,computed:i}=e,a=r("collection"),o=Tt(t.get("selectedValue"))||a.getNodeValue(a.getFirstNode()),s=n.id,l=[o,s],c=0;i("visibleNodes").forEach(({node:g})=>{let h=a.getNodeValue(g);c===1&&l.push(h),(h===o||h===s)&&c++}),t.set("selectedValue",Wt(l))},extendSelectionToNextNode(e){let{context:t,event:n,prop:r}=e,i=r("collection"),a=i.getNextNode(n.id,{skip:Pn(e)});if(!a)return;let o=new Set(t.get("selectedValue")),s=i.getNodeValue(a);s!=null&&(o.has(n.id)&&o.has(s)?o.delete(n.id):o.has(s)||o.add(s),t.set("selectedValue",Array.from(o)))},extendSelectionToPrevNode(e){let{context:t,event:n,prop:r}=e,i=r("collection"),a=i.getPreviousNode(n.id,{skip:Pn(e)});if(!a)return;let o=new Set(t.get("selectedValue")),s=i.getNodeValue(a);s!=null&&(o.has(n.id)&&o.has(s)?o.delete(n.id):o.has(s)||o.add(s),t.set("selectedValue",Array.from(o)))},extendSelectionToFirstNode(e){let{context:t,prop:n}=e,r=n("collection"),i=Tt(t.get("selectedValue")),a=[];r.visit({skip:Pn(e),onEnter:o=>{let s=r.getNodeValue(o);if(a.push(s),s===i)return"stop"}}),t.set("selectedValue",a)},extendSelectionToLastNode(e){let{context:t,prop:n}=e,r=n("collection"),i=Tt(t.get("selectedValue")),a=[],o=!1;r.visit({skip:Pn(e),onEnter:s=>{let l=r.getNodeValue(s);l===i&&(o=!0),o&&a.push(l)}}),t.set("selectedValue",a)},clearPendingAborts({refs:e}){let t=e.get("pendingAborts");t.forEach(n=>n.abort()),t.clear()},toggleChecked({context:e,event:t,prop:n}){let r=n("collection");e.set("checkedValue",i=>t.isBranch?MN(r,t.value,i):Kt(i,t.value))},setChecked({context:e,event:t}){e.set("checkedValue",t.value)},clearChecked({context:e}){e.set("checkedValue",[])},setRenamingValue({context:e,event:t,prop:n}){e.set("renamingValue",t.value);let r=n("onRenameStart");if(r){let i=n("collection"),a=i.getIndexPath(t.value);if(a){let o=i.at(a);o&&r({value:t.value,node:o,indexPath:a})}}},submitRenaming({context:e,event:t,prop:n,scope:r}){var c;let i=e.get("renamingValue");if(!i)return;let o=n("collection").getIndexPath(i);if(!o)return;let s=t.label.trim(),l=n("onBeforeRename");if(l&&!l({value:i,label:s,indexPath:o})){e.set("renamingValue",null),qe(r,i);return}(c=n("onRenameComplete"))==null||c({value:i,label:s,indexPath:o}),e.set("renamingValue",null),qe(r,i)},cancelRenaming({context:e,scope:t}){let n=e.get("renamingValue");e.set("renamingValue",null),n&&qe(t,n)},syncRenameInput({context:e,scope:t,prop:n}){let r=e.get("renamingValue");if(!r)return;let i=n("collection"),a=i.findNode(r);if(!a)return;let o=i.stringifyNode(a),s=kb(t,r);He(s,o)},focusRenameInput({context:e,scope:t}){let n=e.get("renamingValue");if(!n)return;let r=kb(t,n);r&&(r.focus(),r.select())}}}});HN=class extends X{constructor(t,n){let o=n,{rootNode:r}=o,i=ft(o,["rootNode"]),a=Nb(r);super(t,v(p({},i),{collection:a}));Z(this,"treeCollection");Z(this,"syncTree",()=>{let t=this.el.querySelector('[data-scope="tree-view"][data-part="tree"]');t&&(this.spreadProps(t,this.api.getTreeProps()),this.updateExistingTree(t))});this.treeCollection=a}replaceRootNode(t){let n=Nb(t);this.treeCollection=n,this.updateProps({collection:n})}initMachine(t){return new Y($N,p({},t))}initApi(){return this.zagConnect(_N)}getNodeAt(t){var r;if(t.length===0)return;let n=this.treeCollection.rootNode;for(let i of t)if(n=(r=n==null?void 0:n.children)==null?void 0:r[i],!n)return;return n}updateExistingTree(t){var o;this.spreadProps(t,this.api.getTreeProps());let n=(o=this.el.dataset.animation)!=null?o:"instant",r=s=>s.closest('[data-scope="tree-view"][data-part="tree"]')===t,i=t.querySelectorAll('[data-scope="tree-view"][data-part="branch"]');for(let s of i){if(!r(s))continue;let l=s.getAttribute("data-path");if(l==null)continue;let c=l.split("/").map(C=>parseInt(C,10)),d=this.getNodeAt(c);if(!d)continue;let g={indexPath:c,node:d};this.spreadProps(s,this.api.getBranchProps(g));let h=s.querySelector('[data-scope="tree-view"][data-part="branch-control"]');h&&this.spreadProps(h,this.api.getBranchControlProps(g));let u=s.querySelector('[data-scope="tree-view"][data-part="branch-text"]');u&&this.spreadProps(u,this.api.getBranchTextProps(g));let f=s.querySelector('[data-scope="tree-view"][data-part="branch-indicator"]');f&&this.spreadProps(f,this.api.getBranchIndicatorProps(g));let m=s.querySelector('[data-scope="tree-view"][data-part="branch-content"]');if(m){let C=this.api.getBranchContentProps(g);n==="instant"?this.spreadProps(m,C):(n==="js"||n==="custom")&&(this.spreadProps(m,kr(C)),m.removeAttribute("hidden"))}let P=s.querySelector('[data-scope="tree-view"][data-part="branch-indent-guide"]');P&&this.spreadProps(P,this.api.getBranchIndentGuideProps(g))}let a=t.querySelectorAll('[data-scope="tree-view"][data-part="item"]');for(let s of a){if(!r(s))continue;let l=s.getAttribute("data-path");if(l==null)continue;let c=l.split("/").map(f=>parseInt(f,10)),d=this.getNodeAt(c);if(!d)continue;let g={indexPath:c,node:d};this.spreadProps(s,this.api.getItemProps(g));let h=s.querySelector('[data-scope="tree-view"][data-part="item-text"]');h&&this.spreadProps(h,this.api.getItemTextProps(g));let u=s.querySelector('[data-scope="tree-view"][data-part="item-indicator"]');u&&this.spreadProps(u,this.api.getItemIndicatorProps(g))}}render(){var r;let t=(r=this.el.querySelector('[data-scope="tree-view"][data-part="root"]'))!=null?r:this.el;this.spreadProps(t,this.api.getRootProps());let n=this.el.querySelector('[data-scope="tree-view"][data-part="label"]');n&&this.spreadProps(n,this.api.getLabelProps()),this.syncTree()}};BN={mounted(){var g,h,u,f,m,P,C,x,T;let e=this.el,t=this,n=this.pushEvent.bind(this),r=()=>J(this.liveSocket),i=Mb(e);this.lastDataTree=e.dataset.tree;let a=I(e,"controlled");t.lastExpanded=a?(g=ie(e,"expandedValue"))!=null?g:[]:(h=ie(e,"defaultExpandedValue"))!=null?h:[],t.lastSelected=a?(u=ie(e,"selectedValue"))!=null?u:[]:(f=ie(e,"defaultSelectedValue"))!=null?f:[],t.lastExpandedAttr=Db(e),t.lastSelectedAttr=Lb(e);let o=new HN(e,v(p({id:e.id,rootNode:i},a?{expandedValue:(m=ie(e,"expandedValue"))!=null?m:[],selectedValue:(P=ie(e,"selectedValue"))!=null?P:[]}:{defaultExpandedValue:(C=ie(e,"defaultExpandedValue"))!=null?C:[],defaultSelectedValue:(x=ie(e,"defaultSelectedValue"))!=null?x:[]}),{selectionMode:(T=V(e,"selectionMode"))!=null?T:"single",typeahead:e.dataset.typeahead!=="false",dir:U(e),onSelectionChange:b=>{var W,ee,ue;let y=I(e,"redirect"),S=(W=b.selectedValue)!=null&&W.length?b.selectedValue[0]:void 0,A=S?e.querySelector(`[data-scope="tree-view"][data-part="item"][data-value="${CSS.escape(S)}"]`):null,N=!!A;y&&N&&mn(fn(A,S),{liveSocket:this.liveSocket});let O=(ee=b.selectedValue)!=null?ee:[],w=(ue=t.lastSelected)!=null?ue:[],{added:k,removed:R}=ea(O,w);t.lastSelected=O;let D={id:e.id,selectedValue:O,previousSelectedValue:w,added:k,removed:R,focusedValue:b.focusedValue,isItem:N};K({el:e,canPushServer:r(),pushEvent:n,payload:D,serverEventName:V(e,"onSelectionChange"),clientEventName:V(e,"onSelectionChangeClient")})},onExpandedChange:b=>{var w,k;let y=(w=b.expandedValue)!=null?w:[],S=(k=t.lastExpanded)!=null?k:[],{added:A,removed:N}=ea(y,S);t.lastExpanded=y;let O={id:e.id,expandedValue:y,previousExpandedValue:S,added:A,removed:N,focusedValue:b.focusedValue};K({el:e,canPushServer:r(),pushEvent:n,payload:O,serverEventName:V(e,"onExpandedChange"),clientEventName:V(e,"onExpandedChangeClient")}),e.dataset.animation==="js"&&Pi({rootEl:e,selector:'[data-scope="tree-view"][data-part="branch-content"]',opts:ar(e),isOpen:R=>{let D=R.dataset.value;return!!D&&y.includes(D)}})}}));if(o.init(),this.treeView=o,e.dataset.animation==="js"){let b=ar(e);Uo(e,'[data-scope="tree-view"][data-part="branch-content"]',b)}let s=b=>{let y=o.api.selectedValue;Ke({respondTo:b,canPushServer:r(),pushEvent:n,serverEventName:"tree_view_value_response",serverPayload:{id:e.id,value:y},el:e,domEventName:"tree-view-value",domDetail:{id:e.id,value:y}})},l=b=>{let y=o.api.expandedValue;Ke({respondTo:b,canPushServer:r(),pushEvent:n,serverEventName:"tree_view_expanded_value_response",serverPayload:{id:e.id,value:y},el:e,domEventName:"tree-view-expanded-value",domDetail:{id:e.id,value:y}})},c=de(e);this.domRegistry=c,c.add("corex:tree-view:set-expanded-value",b=>{o.api.setExpandedValue(b.detail.value)}),c.add("corex:tree-view:set-selected-value",b=>{o.api.setSelectedValue(b.detail.value)}),c.add("corex:tree-view:value",b=>{s(we(b.detail))}),c.add("corex:tree-view:expanded-value",b=>{l(we(b.detail))});let d=ce(this);this.handleRegistry=d,d.add("tree_view_set_expanded_value",b=>{B(e.id,G(b))&&o.api.setExpandedValue(b.value)}),d.add("tree_view_set_selected_value",b=>{B(e.id,G(b))&&o.api.setSelectedValue(b.value)}),d.add("tree_view_value",b=>{B(e.id,G(b))&&s(we(b))}),d.add("tree_view_expanded_value",b=>{B(e.id,G(b))&&l(we(b))})},beforeUpdate(){var e;I(this.el,"controlled")&&this.el.dataset.animation==="js"&&(this.previousExpanded=(e=ie(this.el,"expandedValue"))!=null?e:[])},updated(){var u,f,m,P,C,x,T;let e=this.el,t=this.treeView;if(!t)return;let n=e.dataset.tree;n!=null&&n!==this.lastDataTree&&(this.lastDataTree=n,t.replaceRootNode(Mb(e)));let r=I(e,"controlled"),i=r?(u=ie(e,"selectedValue"))!=null?u:[]:(f=ie(e,"defaultSelectedValue"))!=null?f:[],a=r?(m=ie(e,"expandedValue"))!=null?m:[]:(P=ie(e,"defaultExpandedValue"))!=null?P:[],o=(C=V(e,"selectionMode"))!=null?C:"single",s=e.dataset.typeahead!=="false",l=U(e),c=Db(e),d=Lb(e),g=c!==this.lastExpandedAttr,h=d!==this.lastSelectedAttr;if(this.lastExpandedAttr=c,this.lastSelectedAttr=d,r){let b=(T=(x=this.previousExpanded)!=null?x:this.lastExpanded)!=null?T:[];this.previousExpanded=void 0,g&&(this.lastExpanded=a),h&&(this.lastSelected=i),e.dataset.animation==="js"&&Pi({rootEl:e,selector:'[data-scope="tree-view"][data-part="branch-content"]',opts:ar(e),wasOpen:y=>{let S=y.dataset.value;return!!S&&b.includes(S)},isOpen:y=>{let S=y.dataset.value;return!!S&&a.includes(S)}}),t.updateProps({expandedValue:a,selectedValue:i,selectionMode:o,typeahead:s,dir:l})}else t.updateProps({selectionMode:o,typeahead:s,dir:l}),g&&t.api.setExpandedValue(a),h&&t.api.setSelectedValue(i)},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.treeView)==null||n.destroy()}}});var UN={};fe(UN,{Hooks:()=>Bb,animateHeightClose:()=>Mu,animateHeightOpen:()=>Lu,animateScaleClose:()=>_u,animateScaleOpen:()=>Fu,applyClosedHeight:()=>po,applyClosedScale:()=>mo,applyOpenHeight:()=>fo,applyOpenScale:()=>vo,default:()=>GN,findAccordionContent:()=>Ru,findDialogBackdrop:()=>Nu,findDialogContent:()=>Du,findTreeBranch:()=>ku});var yo="ease-out";function bo(){return typeof window!="undefined"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}function po(e){e.style.opacity="0",e.style.height="0px",e.style.overflow="hidden"}function fo(e){e.style.opacity="",e.style.height="",e.style.overflow=""}function Ru(e,t){return e.querySelector(`[data-scope="accordion"][data-part="item"][data-value="${CSS.escape(t)}"] [data-part="item-content"]`)}function ku(e,t){return e.querySelector(`[data-scope="tree-view"][data-part="branch-content"][data-value="${CSS.escape(t)}"]`)}function Nu(e){return e.querySelector('[data-scope="dialog"][data-part="backdrop"]')}function Du(e){return e.querySelector('[data-scope="dialog"][data-part="content"]')}function mo(e,t={}){var a,o;let n=e.dataset.part==="backdrop",r=(a=t.opacityStart)!=null?a:0,i=(o=t.scaleStart)!=null?o:.96;e.style.opacity=String(r),!n&&i!==1?e.style.transform=`scale(${i})`:e.style.removeProperty("transform")}function vo(e){e.style.opacity="",e.style.removeProperty("transform")}function Lu(e,t){var s,l,c,d;if(bo())return fo(e),Promise.resolve();let n=(s=t.duration)!=null?s:.3,r=(l=t.easing)!=null?l:yo,i=(c=t.opacityStart)!=null?c:0,a=(d=t.opacityEnd)!=null?d:1,o=`${e.scrollHeight}px`;return e.style.height="0px",e.style.overflow="hidden",Promise.resolve(t.animator(e,{height:["0px",o],opacity:[i,a]},{duration:n,easing:r}).finished.then(()=>{fo(e)})).then(()=>{})}function Mu(e,t){var s,l,c,d;if(bo())return po(e),Promise.resolve();let n=(s=t.duration)!=null?s:.3,r=(l=t.easing)!=null?l:yo,i=(c=t.opacityStart)!=null?c:0,a=(d=t.opacityEnd)!=null?d:1,o=`${e.scrollHeight}px`;return e.style.height=o,e.style.overflow="hidden",Promise.resolve(t.animator(e,{height:[o,"0px"],opacity:[a,i]},{duration:n,easing:r}).finished.then(()=>{po(e)})).then(()=>{})}function Fu(e,t){var d,g,h,u,f,m;let n=e.dataset.part==="backdrop";if(bo())return vo(e),Promise.resolve();let r=(d=t.duration)!=null?d:.3,i=(g=t.easing)!=null?g:yo,a=(h=t.opacityStart)!=null?h:0,o=(u=t.opacityEnd)!=null?u:1,s=(f=t.scaleStart)!=null?f:.96,l=(m=t.scaleEnd)!=null?m:1,c={opacity:[a,o]};return!n&&(s!==l||s!==1||l!==1)&&(c.transform=[`scale(${s})`,`scale(${l})`]),Promise.resolve(t.animator(e,c,{duration:r,easing:i}).finished.then(()=>{vo(e)})).then(()=>{})}function _u(e,t){var d,g,h,u,f,m;let n=e.dataset.part==="backdrop";if(bo())return mo(e,{scaleStart:t.scaleStart,opacityStart:t.opacityStart}),Promise.resolve();let r=(d=t.duration)!=null?d:.3,i=(g=t.easing)!=null?g:yo,a=(h=t.opacityStart)!=null?h:0,o=(u=t.opacityEnd)!=null?u:1,s=(f=t.scaleStart)!=null?f:.96,l=(m=t.scaleEnd)!=null?m:1,c={opacity:[o,a]};return!n&&(s!==l||s!==1||l!==1)&&(c.transform=[`scale(${l})`,`scale(${s})`]),Promise.resolve(t.animator(e,c,{duration:r,easing:i}).finished.then(()=>{mo(e,{scaleStart:s,opacityStart:a})})).then(()=>{})}function me(e,t){return{mounted(){return Ge(this,null,function*(){let i=(yield e())[t];if(this._realHook=i,i!=null&&i.mounted)return i.mounted.call(this)})},updated(){var r,i;(i=(r=this._realHook)==null?void 0:r.updated)==null||i.call(this)},destroyed(){var r,i;(i=(r=this._realHook)==null?void 0:r.destroyed)==null||i.call(this)},disconnected(){var r,i;(i=(r=this._realHook)==null?void 0:r.disconnected)==null||i.call(this)},reconnected(){var r,i;(i=(r=this._realHook)==null?void 0:r.reconnected)==null||i.call(this)},beforeUpdate(){var r,i;(i=(r=this._realHook)==null?void 0:r.beforeUpdate)==null||i.call(this)}}}var Bb={Accordion:me(()=>Promise.resolve().then(()=>(Gg(),Bg)),"Accordion"),AngleSlider:me(()=>Promise.resolve().then(()=>(ph(),hh)),"AngleSlider"),Avatar:me(()=>Promise.resolve().then(()=>(yh(),vh)),"Avatar"),Carousel:me(()=>Promise.resolve().then(()=>(wh(),Th)),"Carousel"),Checkbox:me(()=>Promise.resolve().then(()=>(Lh(),Dh)),"Checkbox"),Clipboard:me(()=>Promise.resolve().then(()=>($h(),_h)),"Clipboard"),Code:me(()=>Promise.resolve().then(()=>(Bh(),Hh)),"Code"),Collapsible:me(()=>Promise.resolve().then(()=>(Uh(),Gh)),"Collapsible"),Combobox:me(()=>Promise.resolve().then(()=>(Kp(),Wp)),"Combobox"),ColorPicker:me(()=>Promise.resolve().then(()=>(ff(),pf)),"ColorPicker"),DatePicker:me(()=>Promise.resolve().then(()=>(mm(),fm)),"DatePicker"),Dialog:me(()=>Promise.resolve().then(()=>(xm(),Vm)),"Dialog"),Editable:me(()=>Promise.resolve().then(()=>(Mm(),Lm)),"Editable"),FileUpload:me(()=>Promise.resolve().then(()=>(zm(),jm)),"FileUpload"),FloatingPanel:me(()=>Promise.resolve().then(()=>(pv(),hv)),"FloatingPanel"),Listbox:me(()=>Promise.resolve().then(()=>(Ev(),bv)),"Listbox"),Marquee:me(()=>Promise.resolve().then(()=>(Iv(),Cv)),"Marquee"),Menu:me(()=>Promise.resolve().then(()=>(Bv(),Hv)),"Menu"),NumberInput:me(()=>Promise.resolve().then(()=>(ny(),ty)),"NumberInput"),PasswordInput:me(()=>Promise.resolve().then(()=>(iy(),ry)),"PasswordInput"),PinInput:me(()=>Promise.resolve().then(()=>(cy(),ly)),"PinInput"),RadioGroup:me(()=>Promise.resolve().then(()=>(my(),fy)),"RadioGroup"),Select:me(()=>Promise.resolve().then(()=>(Iy(),Cy)),"Select"),SignaturePad:me(()=>Promise.resolve().then(()=>(Wy(),qy)),"SignaturePad"),Switch:me(()=>Promise.resolve().then(()=>(Xy(),Yy)),"Switch"),Tabs:me(()=>Promise.resolve().then(()=>(nb(),tb)),"Tabs"),Timer:me(()=>Promise.resolve().then(()=>(ob(),ab)),"Timer"),Toast:me(()=>Promise.resolve().then(()=>(yb(),vb)),"Toast"),Tooltip:me(()=>Promise.resolve().then(()=>(Ib(),Cb)),"Tooltip"),ToggleGroup:me(()=>Promise.resolve().then(()=>(Ab(),xb)),"ToggleGroup"),TreeView:me(()=>Promise.resolve().then(()=>(Hb(),$b)),"TreeView")},GN=Bb;return jb(UN);})(); + `,this.parts={title:this.el.querySelector('[data-part="title"]'),description:this.el.querySelector('[data-part="description"]'),close:this.el.querySelector('[data-part="close-trigger"]'),ghostBefore:this.el.querySelector('[data-part="ghost-before"]'),ghostAfter:this.el.querySelector('[data-part="ghost-after"]'),progressbar:this.el.querySelector('[data-part="progressbar"]'),loadingSpinner:this.el.querySelector('[data-part="loading-spinner"]')}}initMachine(t){return new Y(cN,t)}initApi(){return this.zagConnect(sN)}render(){var l,c;this.spreadProps(this.el,this.api.getRootProps()),this.spreadProps(this.parts.close,this.api.getCloseTriggerProps()),this.spreadProps(this.parts.ghostBefore,this.api.getGhostBeforeProps()),this.spreadProps(this.parts.ghostAfter,this.api.getGhostAfterProps());let t=this.el.closest('[phx-hook="Toast"]'),n=t==null?void 0:t.querySelector("[data-loading-icon-template]"),r=t==null?void 0:t.querySelector("[data-close-icon-template]"),i=n==null?void 0:n.innerHTML,a=r==null?void 0:r.innerHTML;a?this.parts.close.innerHTML!==a&&(this.parts.close.innerHTML=a):this.parts.close.innerHTML||(this.parts.close.innerHTML="\xD7"),this.parts.title.textContent!==this.api.title&&(this.parts.title.textContent=(l=this.api.title)!=null?l:""),this.parts.description.textContent!==this.api.description&&(this.parts.description.textContent=(c=this.api.description)!=null?c:""),this.spreadProps(this.parts.title,this.api.getTitleProps()),this.spreadProps(this.parts.description,this.api.getDescriptionProps());let o=this.duration;o==="Infinity"||o===1/0||o===Number.POSITIVE_INFINITY?(this.parts.progressbar.style.display="none",this.el.setAttribute("data-duration-infinity","true")):(this.parts.progressbar.style.display="block",this.el.removeAttribute("data-duration-infinity")),this.showLoading?(this.parts.loadingSpinner.style.display="flex",i&&this.parts.loadingSpinner.innerHTML!==i&&(this.parts.loadingSpinner.innerHTML=i)):this.parts.loadingSpinner.style.display="none"}},vN=class extends X{constructor(t,n){var r;super(t,n);J(this,"toastComponents",new Map);J(this,"groupEl");J(this,"store");J(this,"destroy",()=>{for(let t of this.toastComponents.values())t.destroy();this.toastComponents.clear(),this.machine.stop()});this.store=n.store,this.groupEl=(r=t.querySelector('[data-part="group"]'))!=null?r:(()=>{let i=document.createElement("div");return i.setAttribute("data-scope","toast"),i.setAttribute("data-part","group"),t.appendChild(i),i})()}initMachine(t){return new Y(pb.machine,t)}initApi(){return this.zagConnect(pb.connect)}render(){this.spreadProps(this.groupEl,this.api.getGroupProps());let t=this.api.getToasts().filter(r=>typeof r.id=="string"),n=new Set(t.map(r=>r.id));t.forEach((r,i)=>{var o;let a=this.toastComponents.get(r.id);if(a)a.duration=r.duration,a.showLoading=((o=r.meta)==null?void 0:o.loading)===!0,a.updateProps(v(p({},r),{parent:this.machine.service,index:i}));else{let s=document.createElement("div");s.classList.add("toast-item"),s.setAttribute("data-scope","toast"),s.setAttribute("data-part","root"),this.groupEl.appendChild(s),a=new mN(s,v(p({},r),{parent:this.machine.service,index:i})),a.init(),this.toastComponents.set(r.id,a)}});for(let[r,i]of this.toastComponents)n.has(r)||(i.destroy(),this.toastComponents.delete(r))}};fb=e=>e===!0||e==="true"?{meta:{loading:!0}}:{},bN={mounted(){var g;let e=this.el;e.id||(e.id=hi(e,"toast")),this.groupId=e.id;let t=h=>{if(h)try{return h.includes("{")?JSON.parse(h):h}catch(u){return h}},n=h=>h==="Infinity"||h===1/0?1/0:typeof h=="string"?parseInt(h,10)||void 0:h,r=(g=x(e,"placement",["top-start","top","top-end","bottom-start","bottom","bottom-end"]))!=null?g:"bottom-end";yN(e,{id:this.groupId,placement:r,overlap:T(e,"overlap"),max:U(e,"max"),gap:U(e,"gap"),offsets:t(x(e,"offset")),pauseOnPageIdle:T(e,"pauseOnPageIdle")}),e.setAttribute("data-ready","");let i=io(this.groupId),a=e.getAttribute("data-flash-info"),o=e.getAttribute("data-flash-info-title"),s=e.getAttribute("data-flash-error"),l=e.getAttribute("data-flash-error-title"),c=e.getAttribute("data-flash-info-duration"),d=e.getAttribute("data-flash-error-duration");if(i&&a)try{i.create({title:o||"Success",description:a,type:"info",id:hi(void 0,"toast"),duration:n(c!=null?c:void 0)})}catch(h){console.error("Failed to create flash info toast:",h)}if(i&&s)try{i.create({title:l||"Error",description:s,type:"error",id:hi(void 0,"toast"),duration:n(d!=null?d:void 0)})}catch(h){console.error("Failed to create flash error toast:",h)}this.handlers=[],this.handlers.push(this.handleEvent("toast-create",h=>{let u=io(h.groupId||this.groupId);if(u)try{u.create(p({title:h.title,description:h.description,type:h.type||"info",id:h.id||hi(void 0,"toast"),duration:n(h.duration)},fb(h.loading)))}catch(f){console.error("Failed to create toast:",f)}})),this.handlers.push(this.handleEvent("toast-update",h=>{let u=io(h.groupId||this.groupId);if(u)try{u.update(h.id,{title:h.title,description:h.description,type:h.type})}catch(f){console.error("Failed to update toast:",f)}})),this.handlers.push(this.handleEvent("toast-dismiss",h=>{let u=io(h.groupId||this.groupId);if(u)try{u.dismiss(h.id)}catch(f){console.error("Failed to dismiss toast:",f)}})),e.addEventListener("toast:create",h=>{let{detail:u}=h,f=io(u.groupId||this.groupId);if(f)try{f.create(p({title:u.title,description:u.description,type:u.type||"info",id:u.id||hi(void 0,"toast"),duration:n(u.duration)},fb(u.loading)))}catch(m){console.error("Failed to create toast:",m)}})},destroyed(){if(this.handlers)for(let e of this.handlers)this.removeHandleEvent(e)}}});var Tb={};fe(Tb,{Tooltip:()=>xN});function SN(e,t=Object.is){let n=p({},e),r=new Set,i=d=>(r.add(d),()=>r.delete(d)),a=()=>{r.forEach(d=>d())};return{subscribe:i,get:d=>n[d],set:(d,g)=>{t(n[d],g)||(n[d]=g,a())},update:d=>{let g=!1;for(let h in d){let u=d[h];u!==void 0&&!t(n[h],u)&&(n[h]=u,g=!0)}g&&a()},snapshot:()=>p({},n)}}function TN(e,t){let{state:n,context:r,send:i,scope:a,prop:o,event:s}=e,l=o("id"),c=!!o("aria-label"),d=n.matches("open","closing"),g=r.get("triggerValue"),h=PN(a),u=o("disabled"),f=Lt(v(p({},o("positioning")),{placement:r.get("currentPlacement")}));return{open:d,setOpen(m){n.matches("open","closing")!==m&&i({type:m?"open":"close"})},triggerValue:g,setTriggerValue(m){i({type:"triggerValue.set",value:m!=null?m:void 0})},reposition(m={}){i({type:"positioning.set",options:m})},getTriggerProps(m={}){let{value:P}=m,C=P==null?!1:g===P,V=Cb(a,P);return t.button(v(p({},ao.trigger.attrs),{id:V,"data-ownedby":a.id,"data-value":P,"data-current":S(C),dir:o("dir"),"data-expanded":S(d),"data-state":d?"open":"closed","aria-describedby":d?h:void 0,onClick(I){if(I.defaultPrevented||u||!o("closeOnClick"))return;let b=d&&P!=null&&!C;i({type:b?"triggerValue.set":"close",src:"trigger.click",value:P,triggerId:V})},onFocus(I){if(I.defaultPrevented||u||!ln())return;let b=d&&P!=null&&!C;i({type:b?"triggerValue.set":"open",src:"trigger.focus",value:P,triggerId:V})},onBlur(I){var E;if(I.defaultPrevented||u||l!==It.get("id"))return;let b=(E=I.relatedTarget)!=null?E:a.getDoc().activeElement;(b==null?void 0:b.closest(`[data-ownedby="${a.id}"]`))!=null||i({type:"close",src:"trigger.blur",value:P,triggerId:V})},onPointerDown(I){I.defaultPrevented||u||Ee(I)&&o("closeOnPointerDown")&&l===It.get("id")&&i({type:"close",src:"trigger.pointerdown",value:P,triggerId:V})},onPointerMove(I){if(I.defaultPrevented||u||I.pointerType==="touch")return;let b=d&&P!=null&&!C;i({type:b?"triggerValue.set":"pointer.move",value:P,triggerId:V})},onPointerOver(I){I.defaultPrevented||u||I.pointerType!=="touch"&&i({type:"pointer.move",value:P,triggerId:V})},onPointerLeave(){u||i({type:"pointer.leave"})},onPointerCancel(){u||i({type:"pointer.leave"})}}))},getArrowProps(){return t.element(v(p({id:CN(a)},ao.arrow.attrs),{dir:o("dir"),style:f.arrow}))},getArrowTipProps(){return t.element(v(p({},ao.arrowTip.attrs),{dir:o("dir"),style:f.arrowTip}))},getPositionerProps(){return t.element(v(p({id:Ib(a)},ao.positioner.attrs),{dir:o("dir"),style:f.floating}))},getContentProps(){let m=It.get("id")===l,P=It.get("prevId")===l,C=It.get("instant")&&(d&&m||P);return t.element(v(p({},ao.content.attrs),{dir:o("dir"),hidden:!d,"data-state":d?"open":"closed","data-instant":S(C),role:c?void 0:"tooltip",id:c?void 0:h,"data-placement":r.get("currentPlacement"),onPointerEnter(){i({type:"content.pointer.move"})},onPointerLeave(){i({type:"content.pointer.leave"})},style:{pointerEvents:o("interactive")?"auto":"none"}}))}}}function Sb(e,t,n){return{onOpenChange:a=>{let o=x(e,"onOpenChange");o&&Q(n)&&t(o,{id:e.id,open:a.open});let s=x(e,"onOpenChangeClient");s&&e.dispatchEvent(new CustomEvent(s,{bubbles:!0,detail:{id:e.id,open:a.open}}))},onTriggerValueChange:a=>{var s;let o=x(e,"onTriggerValueChange");o&&Q(n)&&t(o,{id:e.id,value:(s=a.value)!=null?s:""})}}}function Pb(e){let t=T(e,"interactive"),n=U(e,"closeDelay");return t&&(n===void 0||n===0)?400:n}var EN,ao,Cb,PN,CN,Ib,Pu,IN,oo,It,wN,Eb,ON,VN,xN,wb=ne(()=>{"use strict";$r();hr();Ln();Ce();se();EN=j("tooltip").parts("trigger","arrow","arrowTip","positioner","content"),ao=EN.build();Cb=(e,t)=>{var r;let n=(r=e.ids)==null?void 0:r.trigger;return n!=null?Ze(n)?n(t):n:t?`tooltip:${e.id}:trigger:${t}`:`tooltip:${e.id}:trigger`},PN=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.content)!=null?n:`tooltip:${e.id}:content`},CN=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.arrow)!=null?n:`tooltip:${e.id}:arrow`},Ib=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.positioner)!=null?n:`tooltip:${e.id}:popper`},Pu=e=>e.getById(Ib(e)),IN=e=>xe(e.getDoc(),`[data-scope="tooltip"][data-part="trigger"][data-ownedby="${e.id}"]`),oo=(e,t)=>t==null?IN(e)[0]:e.getById(Cb(e,t)),It=SN({id:null,prevId:null,instant:!1});({and:wN,not:Eb}=Te()),ON=te({initialState:({prop:e})=>e("open")||e("defaultOpen")?"open":"closed",props({props:e}){var r,i;rn(e,["id"]);let t=(r=e.closeOnClick)!=null?r:!0,n=(i=e.closeOnPointerDown)!=null?i:t;return v(p({openDelay:400,closeDelay:150,closeOnEscape:!0,interactive:!1,closeOnScroll:!0,disabled:!1},e),{closeOnPointerDown:n,closeOnClick:t,positioning:p({placement:"bottom"},e.positioning)})},effects:["trackFocusVisible","trackStore"],context:({bindable:e,prop:t,scope:n})=>({currentPlacement:e(()=>({defaultValue:void 0})),hasPointerMoveOpened:e(()=>({defaultValue:null})),triggerValue:e(()=>{var r;return{defaultValue:(r=t("defaultTriggerValue"))!=null?r:null,value:t("triggerValue"),onChange(i){let a=t("onTriggerValueChange");if(!a)return;let o=oo(n,i);a({value:i,triggerElement:o})}}})}),watch({track:e,action:t,prop:n}){e([()=>n("disabled")],()=>{t(["closeIfDisabled"])}),e([()=>n("open")],()=>{t(["toggleVisibility"])}),e([()=>n("triggerValue")],()=>{t(["repositionImmediate"])})},on:{"triggerValue.set":{actions:["setTriggerValue","repositionImmediate"]}},states:{closed:{entry:["clearGlobalId"],on:{"controlled.open":{target:"open"},open:[{guard:"isOpenControlled",actions:["setTriggerValue","invokeOnOpen"]},{target:"open",actions:["setTriggerValue","invokeOnOpen"]}],"pointer.leave":{actions:["clearPointerMoveOpened"]},"pointer.move":[{guard:wN("noVisibleTooltip",Eb("hasPointerMoveOpened")),target:"opening",actions:["setTriggerValue"]},{guard:Eb("hasPointerMoveOpened"),target:"open",actions:["setPointerMoveOpened","invokeOnOpen","setTriggerValue"]}]}},opening:{effects:["trackScroll","trackPointerlockChange","waitForOpenDelay"],on:{"after.openDelay":[{guard:"isOpenControlled",actions:["setPointerMoveOpened","invokeOnOpen"]},{target:"open",actions:["setPointerMoveOpened","invokeOnOpen"]}],"controlled.open":{target:"open"},"controlled.close":{target:"closed"},open:[{guard:"isOpenControlled",actions:["setTriggerValue","invokeOnOpen"]},{target:"open",actions:["setTriggerValue","invokeOnOpen"]}],"pointer.leave":[{guard:"isOpenControlled",actions:["clearPointerMoveOpened","invokeOnClose","toggleVisibility"]},{target:"closed",actions:["clearPointerMoveOpened","invokeOnClose"]}],close:[{guard:"isOpenControlled",actions:["invokeOnClose","toggleVisibility"]},{target:"closed",actions:["invokeOnClose"]}]}},open:{effects:["trackEscapeKey","trackScroll","trackPointerlockChange","trackPositioning"],entry:["setGlobalId"],on:{"controlled.close":{target:"closed"},close:[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed",actions:["invokeOnClose"]}],"pointer.leave":[{guard:"isVisible",target:"closing",actions:["clearPointerMoveOpened"]},{guard:"isOpenControlled",actions:["clearPointerMoveOpened","invokeOnClose"]},{target:"closed",actions:["clearPointerMoveOpened","invokeOnClose"]}],"content.pointer.leave":{guard:"isInteractive",target:"closing"},"positioning.set":{actions:["reposition"]},"triggerValue.set":{target:"closing",actions:["setTriggerValue","immediateReopen"]}}},closing:{effects:["trackPositioning","waitForCloseDelay"],on:{"after.closeDelay":[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed",actions:["invokeOnClose"]}],"controlled.close":{target:"closed"},"controlled.open":{target:"open"},close:[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed",actions:["invokeOnClose"]}],"pointer.move":[{guard:"isOpenControlled",actions:["setPointerMoveOpened","setTriggerValue","invokeOnOpen","toggleVisibility"]},{target:"open",actions:["setPointerMoveOpened","setTriggerValue","invokeOnOpen"]}],"triggerValue.set":{target:"open",actions:["setTriggerValue","repositionImmediate"]},reopen:{target:"open"},"content.pointer.move":{guard:"isInteractive",target:"open"},"positioning.set":{actions:["reposition"]}}}},implementations:{guards:{noVisibleTooltip:()=>It.get("id")===null,isVisible:({prop:e})=>e("id")===It.get("id"),isInteractive:({prop:e})=>!!e("interactive"),hasPointerMoveOpened:({context:e})=>!!e.get("hasPointerMoveOpened"),isOpenControlled:({prop:e})=>e("open")!==void 0},actions:{setGlobalId:({prop:e})=>{let t=It.get("id"),n=t!==null&&t!==e("id");It.update({id:e("id"),prevId:n?t:null,instant:n})},clearGlobalId:({prop:e})=>{e("id")===It.get("id")&&It.update({id:null,prevId:null,instant:!1})},invokeOnOpen:({prop:e})=>{var t;(t=e("onOpenChange"))==null||t({open:!0})},invokeOnClose:({prop:e})=>{var t;(t=e("onOpenChange"))==null||t({open:!1})},closeIfDisabled:({prop:e,send:t})=>{e("disabled")&&t({type:"close",src:"disabled.change"})},reposition:({context:e,event:t,prop:n,scope:r})=>{if(t.type!=="positioning.set")return;ze(()=>oo(r,e.get("triggerValue")),()=>Pu(r),v(p(p({},n("positioning")),t.options),{listeners:!1,onComplete(o){e.set("currentPlacement",o.placement)}}))},repositionImmediate:({context:e,event:t,prop:n,scope:r})=>{var s;let i=(s=t.value)!=null?s:e.get("triggerValue");return ze(()=>oo(r,i),()=>Pu(r),v(p({},n("positioning")),{onComplete(l){e.set("currentPlacement",l.placement)}}))},toggleVisibility:({prop:e,event:t,send:n})=>{queueMicrotask(()=>{n({type:e("open")?"controlled.open":"controlled.close",previousEvent:t})})},setPointerMoveOpened:({context:e,event:t})=>{var r,i;let n=(i=t.triggerId)!=null?i:(r=t.previousEvent)==null?void 0:r.triggerId;e.set("hasPointerMoveOpened",n!=null?n:null)},clearPointerMoveOpened:({context:e})=>{e.set("hasPointerMoveOpened",null)},setTriggerValue:({context:e,event:t})=>{t.value!==void 0&&e.set("triggerValue",t.value)},immediateReopen:({send:e})=>{queueMicrotask(()=>{e({type:"reopen"})})}},effects:{trackFocusVisible:({scope:e})=>{var t;return et({root:(t=e.getRootNode)==null?void 0:t.call(e)})},trackPositioning:({context:e,prop:t,scope:n})=>(e.get("currentPlacement")||e.set("currentPlacement",t("positioning").placement),ze(()=>oo(n,e.get("triggerValue")),()=>Pu(n),v(p({},t("positioning")),{defer:!0,onComplete(a){e.set("currentPlacement",a.placement)}}))),trackPointerlockChange:({send:e,scope:t})=>{let n=t.getDoc();return re(n,"pointerlockchange",()=>e({type:"close",src:"pointerlock:change"}),!1)},trackScroll:({send:e,prop:t,scope:n,context:r})=>{if(!t("closeOnScroll"))return;let i=r.get("triggerValue"),a=oo(n,i);if(!a)return;let s=zl(a).map(l=>re(l,"scroll",()=>{e({type:"close",src:"scroll"})},{passive:!0,capture:!0}));return()=>{s.forEach(l=>l==null?void 0:l())}},trackStore:({prop:e,send:t})=>{let n;return queueMicrotask(()=>{n=It.subscribe(()=>{It.get("id")!==e("id")&&t({type:"close",src:"id.change"})})}),()=>n==null?void 0:n()},trackEscapeKey:({send:e,prop:t})=>t("closeOnEscape")?re(document,"keydown",r=>{He(r)||r.key==="Escape"&&(r.stopPropagation(),e({type:"close",src:"keydown.escape"}))},!0):void 0,waitForOpenDelay:({send:e,prop:t,event:n})=>{let r=setTimeout(()=>{e({type:"after.openDelay",previousEvent:n})},t("openDelay"));return()=>clearTimeout(r)},waitForCloseDelay:({send:e,prop:t,event:n})=>{let r=setTimeout(()=>{e({type:"after.closeDelay",previousEvent:n})},t("closeDelay"));return()=>clearTimeout(r)}}}}),VN=class extends X{initMachine(e){return new Y(ON,e)}initApi(){return this.zagConnect(TN)}syncDom(){this.api=this.initApi(),this.render()}render(){let e=this.el;e.querySelectorAll('[data-scope="tooltip"][data-part="trigger"]').forEach(o=>{let s=o.dataset.value,l=s!=null&&s!==""?{value:s}:{};this.spreadProps(o,this.api.getTriggerProps(l))});let n=e.querySelector('[data-scope="tooltip"][data-part="positioner"]');n&&this.spreadProps(n,this.api.getPositionerProps());let r=e.querySelector('[data-scope="tooltip"][data-part="content"]');r&&this.spreadProps(r,this.api.getContentProps());let i=e.querySelector('[data-scope="tooltip"][data-part="arrow"]');i&&this.spreadProps(i,this.api.getArrowProps());let a=e.querySelector('[data-scope="tooltip"][data-part="arrow-tip"]');a&&this.spreadProps(a,this.api.getArrowTipProps())}};xN={mounted(){let e=this.el,t=this.pushEvent.bind(this),n=this.liveSocket,r=$e(e),i=Sb(e,t,n),a=new VN(e,p({id:e.id,defaultOpen:T(e,"defaultOpen"),disabled:T(e,"disabled"),dir:q(e),openDelay:U(e,"openDelay"),closeDelay:Pb(e),positioning:r,closeOnEscape:T(e,"closeOnEscape"),closeOnClick:T(e,"closeOnClick"),closeOnPointerDown:T(e,"closeOnPointerDown"),closeOnScroll:T(e,"closeOnScroll"),interactive:T(e,"interactive")},i));a.init(),this.tooltip=a,this.onSetOpen=o=>{let{open:s}=o.detail;a.api.setOpen(s)},e.addEventListener("corex:tooltip:set-open",this.onSetOpen),this.handlers=[],this.handlers.push(this.handleEvent("tooltip_set_open",o=>{B(e.id,G(o))&&a.api.setOpen(o.open)}))},updated(){var a;let e=this.el,t=this.pushEvent.bind(this),n=this.liveSocket,r=$e(e),i=Sb(e,t,n);(a=this.tooltip)==null||a.updateProps(p({id:e.id,defaultOpen:T(e,"defaultOpen"),disabled:T(e,"disabled"),dir:q(e),openDelay:U(e,"openDelay"),closeDelay:Pb(e),positioning:r,closeOnEscape:T(e,"closeOnEscape"),closeOnClick:T(e,"closeOnClick"),closeOnPointerDown:T(e,"closeOnPointerDown"),closeOnScroll:T(e,"closeOnScroll"),interactive:T(e,"interactive")},i)),queueMicrotask(()=>{var o,s,l,c;(o=this.tooltip)==null||o.syncDom(),(c=(s=this.tooltip)==null?void 0:(l=s.api).reposition)==null||c.call(l)})},destroyed(){var e;if(this.onSetOpen&&this.el.removeEventListener("corex:tooltip:set-open",this.onSetOpen),this.handlers)for(let t of this.handlers)this.removeHandleEvent(t);(e=this.tooltip)==null||e.destroy()}}});var Rb={};fe(Rb,{ToggleGroup:()=>BN});function LN(e,t){let{context:n,send:r,prop:i,scope:a}=e,o=n.get("value"),s=i("disabled"),l=!i("multiple"),c=i("rovingFocus"),d=i("orientation")==="horizontal";function g(h){let u=RN(a,h.value);return{id:u,disabled:!!(h.disabled||s),pressed:!!o.includes(h.value),focused:n.get("focusedId")===u}}return{value:o,setValue(h){r({type:"VALUE.SET",value:h})},getRootProps(){return t.element(v(p({},Ob.root.attrs),{id:vl(a),dir:i("dir"),role:l?"radiogroup":"group",tabIndex:n.get("isTabbingBackward")?-1:0,"data-disabled":S(s),"data-orientation":i("orientation"),"data-focus":S(n.get("focusedId")!=null),style:{outline:"none"},onMouseDown(){s||r({type:"ROOT.MOUSE_DOWN"})},onFocus(h){s||h.currentTarget===ee(h)&&(n.get("isClickFocus")||n.get("isTabbingBackward")||r({type:"ROOT.FOCUS"}))},onBlur(h){let u=h.relatedTarget;ge(h.currentTarget,u)||s||r({type:"ROOT.BLUR"})}}))},getItemState:g,getItemProps(h){let u=g(h),f=u.focused?0:-1;return t.button(v(p({},Ob.item.attrs),{id:u.id,type:"button","data-ownedby":vl(a),"data-focus":S(u.focused),disabled:u.disabled,tabIndex:c?f:void 0,role:l?"radio":void 0,"aria-checked":l?u.pressed:void 0,"aria-pressed":l?void 0:u.pressed,"data-disabled":S(u.disabled),"data-orientation":i("orientation"),dir:i("dir"),"data-state":u.pressed?"on":"off",onFocus(){u.disabled||r({type:"TOGGLE.FOCUS",id:u.id})},onClick(m){u.disabled||(r({type:"TOGGLE.CLICK",id:u.id,value:h.value}),yt()&&m.currentTarget.focus({preventScroll:!0}))},onKeyDown(m){if(m.defaultPrevented||!ge(m.currentTarget,ee(m))||u.disabled)return;let C={Tab(V){let I=V.shiftKey;r({type:"TOGGLE.SHIFT_TAB",isShiftTab:I})},ArrowLeft(){!c||!d||r({type:"TOGGLE.FOCUS_PREV"})},ArrowRight(){!c||!d||r({type:"TOGGLE.FOCUS_NEXT"})},ArrowUp(){!c||d||r({type:"TOGGLE.FOCUS_PREV"})},ArrowDown(){!c||d||r({type:"TOGGLE.FOCUS_NEXT"})},Home(){c&&r({type:"TOGGLE.FOCUS_FIRST"})},End(){c&&r({type:"TOGGLE.FOCUS_LAST"})}}[ve(m)];C&&(C(m),m.key!=="Tab"&&m.preventDefault())}}))}}}function $N(e,t){return{id:e.id,value:t.value}}function HN(e){var r;if(!e||typeof e!="object")return;let t=e,n=(r=t.value)!=null?r:t.value;if(Array.isArray(n)&&n.every(i=>typeof i=="string"))return n}var AN,Ob,vl,RN,Ab,yl,Vb,kN,NN,DN,xb,MN,FN,_N,BN,kb=ne(()=>{"use strict";_e();Ce();se();AN=j("toggle-group").parts("root","item"),Ob=AN.build(),vl=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`toggle-group:${e.id}`},RN=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.item)==null?void 0:r.call(n,t))!=null?i:`toggle-group:${e.id}:${t}`},Ab=e=>e.getById(vl(e)),yl=e=>{let n=`[data-ownedby='${CSS.escape(vl(e))}']:not([data-disabled])`;return xe(Ab(e),n)},Vb=e=>Tt(yl(e)),kN=e=>qt(yl(e)),NN=(e,t,n)=>Si(yl(e),t,n),DN=(e,t,n)=>Pi(yl(e),t,n);({not:xb,and:MN}=Te()),FN=te({props({props:e}){return p({defaultValue:[],orientation:"horizontal",rovingFocus:!0,loopFocus:!0,deselectable:!0},e)},initialState(){return"idle"},context({prop:e,bindable:t}){return{value:t(()=>({defaultValue:e("defaultValue"),value:e("value"),onChange(n){var r;(r=e("onValueChange"))==null||r({value:n})}})),focusedId:t(()=>({defaultValue:null})),isTabbingBackward:t(()=>({defaultValue:!1})),isClickFocus:t(()=>({defaultValue:!1})),isWithinToolbar:t(()=>({defaultValue:!1}))}},computed:{currentLoopFocus:({context:e,prop:t})=>t("loopFocus")&&!e.get("isWithinToolbar")},entry:["checkIfWithinToolbar"],on:{"VALUE.SET":{actions:["setValue"]},"TOGGLE.CLICK":{actions:["setValue"]},"ROOT.MOUSE_DOWN":{actions:["setClickFocus"]}},states:{idle:{on:{"ROOT.FOCUS":{target:"focused",guard:xb(MN("isClickFocus","isTabbingBackward")),actions:["focusFirstToggle","clearClickFocus"]},"TOGGLE.FOCUS":{target:"focused",actions:["setFocusedId"]}}},focused:{on:{"ROOT.BLUR":{target:"idle",actions:["clearIsTabbingBackward","clearFocusedId","clearClickFocus"]},"TOGGLE.FOCUS":{actions:["setFocusedId"]},"TOGGLE.FOCUS_NEXT":{actions:["focusNextToggle"]},"TOGGLE.FOCUS_PREV":{actions:["focusPrevToggle"]},"TOGGLE.FOCUS_FIRST":{actions:["focusFirstToggle"]},"TOGGLE.FOCUS_LAST":{actions:["focusLastToggle"]},"TOGGLE.SHIFT_TAB":[{guard:xb("isFirstToggleFocused"),target:"idle",actions:["setIsTabbingBackward"]},{actions:["setIsTabbingBackward"]}]}}},implementations:{guards:{isClickFocus:({context:e})=>e.get("isClickFocus"),isTabbingBackward:({context:e})=>e.get("isTabbingBackward"),isFirstToggleFocused:({context:e,scope:t})=>{var n;return e.get("focusedId")===((n=Vb(t))==null?void 0:n.id)}},actions:{setIsTabbingBackward({context:e}){e.set("isTabbingBackward",!0)},clearIsTabbingBackward({context:e}){e.set("isTabbingBackward",!1)},setClickFocus({context:e}){e.set("isClickFocus",!0)},clearClickFocus({context:e}){e.set("isClickFocus",!1)},checkIfWithinToolbar({context:e,scope:t}){var r;let n=(r=Ab(t))==null?void 0:r.closest("[role=toolbar]");e.set("isWithinToolbar",!!n)},setFocusedId({context:e,event:t}){e.set("focusedId",t.id)},clearFocusedId({context:e}){e.set("focusedId",null)},setValue({context:e,event:t,prop:n}){rn(t,["value"]);let r=e.get("value");Zn(t.value)?r=t.value:n("multiple")?r=Kt(r,t.value):r=Ie(r,[t.value])&&n("deselectable")?[]:[t.value],e.set("value",r)},focusNextToggle({context:e,scope:t,prop:n}){$(()=>{var i;let r=e.get("focusedId");r&&((i=NN(t,r,n("loopFocus")))==null||i.focus({preventScroll:!0}))})},focusPrevToggle({context:e,scope:t,prop:n}){$(()=>{var i;let r=e.get("focusedId");r&&((i=DN(t,r,n("loopFocus")))==null||i.focus({preventScroll:!0}))})},focusFirstToggle({scope:e}){$(()=>{var t;(t=Vb(e))==null||t.focus({preventScroll:!0})})},focusLastToggle({scope:e}){$(()=>{var t;(t=kN(e))==null||t.focus({preventScroll:!0})})}}}}),_N=class extends X{initMachine(e){return new Y(FN,e)}initApi(){return this.zagConnect(LN)}render(){let e=this.el.querySelector('[data-scope="toggle-group"][data-part="root"]');if(!e)return;this.spreadProps(e,this.api.getRootProps());let t=this.el.querySelectorAll('[data-scope="toggle-group"][data-part="item"]');for(let n=0;nQ(this.liveSocket),r=v(p({id:e.id},T(e,"controlled")?{value:ie(e,"value")}:{defaultValue:ie(e,"defaultValue")}),{deselectable:T(e,"deselectable"),loopFocus:T(e,"loopFocus"),rovingFocus:T(e,"rovingFocus"),disabled:T(e,"disabled"),multiple:T(e,"multiple"),orientation:x(e,"orientation"),dir:q(e),onValueChange:s=>{K({el:e,canPushServer:n(),pushEvent:t,payload:$N(e,s),serverEventName:x(e,"onValueChange"),clientEventName:x(e,"onValueChangeClient")})}}),i=new _N(e,r);i.init(),this.toggleGroup=i;let a=de(e);this.domRegistry=a,a.add("corex:toggle-group:set-value",s=>{let{value:l}=s.detail;i.api.setValue(l)});let o=ce(this);this.handleRegistry=o,o.add("toggle-group_set_value",s=>{if(!B(e.id,G(s)))return;let l=HN(s);l&&i.api.setValue(l)}),o.add("toggle-group:value",s=>{B(e.id,G(s))&&n()&&this.pushEvent("toggle-group:value_response",{id:e.id,value:i.api.value})})},updated(){var e;(e=this.toggleGroup)==null||e.updateProps(v(p({},T(this.el,"controlled")?{value:ie(this.el,"value")}:{defaultValue:ie(this.el,"defaultValue")}),{deselectable:T(this.el,"deselectable"),loopFocus:T(this.el,"loopFocus"),rovingFocus:T(this.el,"rovingFocus"),disabled:T(this.el,"disabled"),multiple:T(this.el,"multiple"),orientation:x(this.el,"orientation"),dir:q(this.el)}))},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.toggleGroup)==null||n.destroy()}}});var Bb={};fe(Bb,{TreeView:()=>YN});function Hb(e,t,n){let r=e.getNodeValue(t);if(!e.isBranchNode(t))return n.includes(r);let i=e.getDescendantValues(r),a=i.every(s=>n.includes(s)),o=i.some(s=>n.includes(s));return a?!0:o?"indeterminate":!1}function qN(e,t,n){let r=e.getDescendantValues(t),i=r.every(a=>n.includes(a));return Wt(i?wt(n,...r):mt(n,...r))}function WN(e,t){let n=new Map;return e.visit({onEnter:r=>{let i=e.getNodeValue(r),a=e.isBranchNode(r),o=Hb(e,r,t);n.set(i,{type:a?"branch":"leaf",checked:o})}}),n}function KN(e,t){let{context:n,scope:r,computed:i,prop:a,send:o}=e,s=a("collection"),l=a("translations"),c=Array.from(n.get("expandedValue")),d=Array.from(n.get("selectedValue")),g=Array.from(n.get("checkedValue")),h=i("isTypingAhead"),u=n.get("focusedValue"),f=n.get("loadingStatus"),m=n.get("renamingValue"),P=({indexPath:b})=>s.getValuePath(b).slice(0,-1).some(E=>!c.includes(E)),C=s.getFirstNode(void 0,{skip:P}),V=C?s.getNodeValue(C):null;function I(b){let{node:y,indexPath:E}=b,A=s.getNodeValue(y);return{id:Tu(r,A),value:A,indexPath:E,valuePath:s.getValuePath(E),disabled:!!y.disabled,focused:u==null?V===A:u===A,selected:d.includes(A),expanded:c.includes(A),loading:f[A]==="loading",depth:E.length,isBranch:s.isBranchNode(y),renaming:m===A,get checked(){return Hb(s,y,g)}}}return{collection:s,expandedValue:c,selectedValue:d,checkedValue:g,toggleChecked(b,y){o({type:"CHECKED.TOGGLE",value:b,isBranch:y})},setChecked(b){o({type:"CHECKED.SET",value:b})},clearChecked(){o({type:"CHECKED.CLEAR"})},getCheckedMap(){return WN(s,g)},expand(b){o({type:b?"BRANCH.EXPAND":"EXPANDED.ALL",value:b})},collapse(b){o({type:b?"BRANCH.COLLAPSE":"EXPANDED.CLEAR",value:b})},deselect(b){o({type:b?"NODE.DESELECT":"SELECTED.CLEAR",value:b})},select(b){o({type:b?"NODE.SELECT":"SELECTED.ALL",value:b,isTrusted:!1})},getVisibleNodes(){return i("visibleNodes")},focus(b){We(r,b)},selectParent(b){let y=s.getParentNode(b);if(!y)return;let E=mt(d,s.getNodeValue(y));o({type:"SELECTED.SET",value:E,src:"select.parent"})},expandParent(b){let y=s.getParentNode(b);if(!y)return;let E=mt(c,s.getNodeValue(y));o({type:"EXPANDED.SET",value:E,src:"expand.parent"})},setExpandedValue(b){let y=Wt(b);o({type:"EXPANDED.SET",value:y})},setSelectedValue(b){let y=Wt(b);o({type:"SELECTED.SET",value:y})},startRenaming(b){o({type:"NODE.RENAME",value:b})},submitRenaming(b,y){o({type:"RENAME.SUBMIT",value:b,label:y})},cancelRenaming(){o({type:"RENAME.CANCEL"})},getRootProps(){return t.element(v(p({},ot.root.attrs),{id:UN(r),dir:a("dir")}))},getLabelProps(){return t.element(v(p({},ot.label.attrs),{id:Nb(r),dir:a("dir")}))},getTreeProps(){return t.element(v(p({},ot.tree.attrs),{id:Cu(r),dir:a("dir"),role:"tree","aria-label":l.treeLabel,"aria-labelledby":Nb(r),"aria-multiselectable":a("selectionMode")==="multiple"||void 0,tabIndex:-1,onKeyDown(b){if(b.defaultPrevented||He(b))return;let y=ee(b);if(xt(y))return;let E=y==null?void 0:y.closest("[data-part=branch-control], [data-part=item]");if(!E)return;let A=E.dataset.value;if(A==null){console.warn("[zag-js/tree-view] Node id not found for node",E);return}let N=E.matches("[data-part=branch-control]"),O={ArrowDown(R){Fe(R)||(R.preventDefault(),o({type:"NODE.ARROW_DOWN",id:A,shiftKey:R.shiftKey}))},ArrowUp(R){Fe(R)||(R.preventDefault(),o({type:"NODE.ARROW_UP",id:A,shiftKey:R.shiftKey}))},ArrowLeft(R){Fe(R)||E.dataset.disabled||(R.preventDefault(),o({type:N?"BRANCH_NODE.ARROW_LEFT":"NODE.ARROW_LEFT",id:A}))},ArrowRight(R){!N||E.dataset.disabled||(R.preventDefault(),o({type:"BRANCH_NODE.ARROW_RIGHT",id:A}))},Home(R){Fe(R)||(R.preventDefault(),o({type:"NODE.HOME",id:A,shiftKey:R.shiftKey}))},End(R){Fe(R)||(R.preventDefault(),o({type:"NODE.END",id:A,shiftKey:R.shiftKey}))},Space(R){var D;E.dataset.disabled||(h?o({type:"TREE.TYPEAHEAD",key:R.key}):(D=O.Enter)==null||D.call(O,R))},Enter(R){E.dataset.disabled||Vt(y)&&Fe(R)||(o({type:N?"BRANCH_NODE.CLICK":"NODE.CLICK",id:A,src:"keyboard"}),Vt(y)||R.preventDefault())},"*"(R){E.dataset.disabled||(R.preventDefault(),o({type:"SIBLINGS.EXPAND",id:A}))},a(R){!R.metaKey||E.dataset.disabled||(R.preventDefault(),o({type:"SELECTED.ALL",moveFocus:!0}))},F2(R){if(E.dataset.disabled)return;let D=a("canRename");if(!D)return;let W=s.getIndexPath(A);if(W){let Z=s.at(W);if(Z&&!D(Z,W))return}R.preventDefault(),o({type:"NODE.RENAME",value:A})}},w=ve(b,{dir:a("dir")}),k=O[w];if(k){k(b);return}ct.isValidEvent(b)&&(o({type:"TREE.TYPEAHEAD",key:b.key,id:A}),b.preventDefault())}}))},getNodeState:I,getItemProps(b){let y=I(b);return t.element(v(p({},ot.item.attrs),{id:y.id,dir:a("dir"),"data-ownedby":Cu(r),"data-path":b.indexPath.join("/"),"data-value":y.value,tabIndex:y.focused?0:-1,"data-focus":S(y.focused),role:"treeitem","aria-current":y.selected?"true":void 0,"aria-selected":y.disabled?void 0:y.selected,"data-selected":S(y.selected),"aria-disabled":oe(y.disabled),"data-disabled":S(y.disabled),"data-renaming":S(y.renaming),"data-checked":S(y.checked===!0),"data-indeterminate":S(y.checked==="indeterminate"),"aria-level":y.depth,"data-depth":y.depth,style:{"--depth":y.depth},onFocus(E){E.stopPropagation(),o({type:"NODE.FOCUS",id:y.value})},onClick(E){if(y.disabled||!Ee(E)||Vt(E.currentTarget)&&Fe(E))return;let A=E.metaKey||E.ctrlKey;o({type:"NODE.CLICK",id:y.value,shiftKey:E.shiftKey,ctrlKey:A}),E.stopPropagation(),Vt(E.currentTarget)||E.preventDefault()}}))},getItemTextProps(b){let y=I(b);return t.element(v(p({},ot.itemText.attrs),{"data-disabled":S(y.disabled),"data-selected":S(y.selected),"data-focus":S(y.focused)}))},getItemIndicatorProps(b){let y=I(b);return t.element(v(p({},ot.itemIndicator.attrs),{"aria-hidden":!0,"data-disabled":S(y.disabled),"data-selected":S(y.selected),"data-focus":S(y.focused),hidden:!y.selected}))},getBranchProps(b){let y=I(b);return t.element(v(p({},ot.branch.attrs),{"data-depth":y.depth,dir:a("dir"),"data-branch":y.value,role:"treeitem","data-ownedby":Cu(r),"data-value":y.value,"aria-level":y.depth,"aria-selected":y.disabled?void 0:y.selected,"data-path":b.indexPath.join("/"),"data-selected":S(y.selected),"aria-expanded":y.expanded,"data-state":y.expanded?"open":"closed","aria-disabled":oe(y.disabled),"data-disabled":S(y.disabled),"data-loading":S(y.loading),"aria-busy":oe(y.loading),style:{"--depth":y.depth}}))},getBranchIndicatorProps(b){let y=I(b);return t.element(v(p({},ot.branchIndicator.attrs),{"aria-hidden":!0,"data-state":y.expanded?"open":"closed","data-disabled":S(y.disabled),"data-selected":S(y.selected),"data-focus":S(y.focused),"data-loading":S(y.loading)}))},getBranchTriggerProps(b){let y=I(b);return t.element(v(p({},ot.branchTrigger.attrs),{role:"button",dir:a("dir"),"data-disabled":S(y.disabled),"data-state":y.expanded?"open":"closed","data-value":y.value,"data-loading":S(y.loading),disabled:y.loading,onClick(E){y.disabled||y.loading||(o({type:"BRANCH_TOGGLE.CLICK",id:y.value}),E.stopPropagation())}}))},getBranchControlProps(b){let y=I(b);return t.element(v(p({},ot.branchControl.attrs),{role:"button",id:y.id,dir:a("dir"),tabIndex:y.focused?0:-1,"data-path":b.indexPath.join("/"),"data-state":y.expanded?"open":"closed","data-disabled":S(y.disabled),"data-selected":S(y.selected),"data-focus":S(y.focused),"data-renaming":S(y.renaming),"data-checked":S(y.checked===!0),"data-indeterminate":S(y.checked==="indeterminate"),"data-value":y.value,"data-depth":y.depth,"data-loading":S(y.loading),"aria-busy":oe(y.loading),onFocus(E){o({type:"NODE.FOCUS",id:y.value}),E.stopPropagation()},onClick(E){if(y.disabled||y.loading||!Ee(E)||Vt(E.currentTarget)&&Fe(E))return;let A=E.metaKey||E.ctrlKey;o({type:"BRANCH_NODE.CLICK",id:y.value,shiftKey:E.shiftKey,ctrlKey:A}),E.stopPropagation()}}))},getBranchTextProps(b){let y=I(b);return t.element(v(p({},ot.branchText.attrs),{dir:a("dir"),"data-disabled":S(y.disabled),"data-state":y.expanded?"open":"closed","data-loading":S(y.loading)}))},getBranchContentProps(b){let y=I(b);return t.element(v(p({},ot.branchContent.attrs),{role:"group",dir:a("dir"),"data-state":y.expanded?"open":"closed","data-depth":y.depth,"data-path":b.indexPath.join("/"),"data-value":y.value,hidden:!y.expanded}))},getBranchIndentGuideProps(b){let y=I(b);return t.element(v(p({},ot.branchIndentGuide.attrs),{"data-depth":y.depth}))},getNodeCheckboxProps(b){let y=I(b),E=y.checked;return t.element(v(p({},ot.nodeCheckbox.attrs),{tabIndex:-1,role:"checkbox","data-state":E===!0?"checked":E===!1?"unchecked":"indeterminate","aria-checked":E===!0?"true":E===!1?"false":"mixed","data-disabled":S(y.disabled),onClick(A){if(A.defaultPrevented||y.disabled||!Ee(A))return;o({type:"CHECKED.TOGGLE",value:y.value,isBranch:y.isBranch}),A.stopPropagation();let N=A.currentTarget.closest("[role=treeitem]");N==null||N.focus({preventScroll:!0})}}))},getNodeRenameInputProps(b){let y=I(b);return t.input(v(p({},ot.nodeRenameInput.attrs),{id:$b(r,y.value),type:"text","aria-label":l.renameInputLabel,hidden:!y.renaming,onKeyDown(E){He(E)||(E.key==="Escape"&&(o({type:"RENAME.CANCEL"}),E.preventDefault()),E.key==="Enter"&&(o({type:"RENAME.SUBMIT",label:E.currentTarget.value}),E.preventDefault()),E.stopPropagation())},onBlur(E){o({type:"RENAME.SUBMIT",label:E.currentTarget.value})}}))}}}function bl(e,t){let{context:n,prop:r,refs:i}=e;if(!r("loadChildren")){n.set("expandedValue",m=>Wt(mt(m,...t)));return}let a=n.get("loadingStatus"),[o,s]=Ml(t,m=>a[m]==="loaded");if(o.length>0&&n.set("expandedValue",m=>Wt(mt(m,...o))),s.length===0)return;let l=r("collection"),[c,d]=Ml(s,m=>{let P=l.findNode(m);return l.getNodeChildren(P).length>0});if(c.length>0&&n.set("expandedValue",m=>Wt(mt(m,...c))),d.length===0)return;n.set("loadingStatus",m=>p(p({},m),d.reduce((P,C)=>v(p({},P),{[C]:"loading"}),{})));let g=d.map(m=>{let P=l.getIndexPath(m),C=l.getValuePath(P),V=l.findNode(m);return{id:m,indexPath:P,valuePath:C,node:V}}),h=i.get("pendingAborts"),u=r("loadChildren");jt(u,()=>"[zag-js/tree-view] `loadChildren` is required for async expansion");let f=g.map(({id:m,indexPath:P,valuePath:C,node:V})=>{let I=h.get(m);I&&(I.abort(),h.delete(m));let b=new AbortController;return h.set(m,b),u({valuePath:C,indexPath:P,node:V,signal:b.signal})});Promise.allSettled(f).then(m=>{var b,y;let P=[],C=[],V=n.get("loadingStatus"),I=r("collection");m.forEach((E,A)=>{let{id:N,indexPath:O,node:w,valuePath:k}=g[A];E.status==="fulfilled"?(V[N]="loaded",P.push(N),I=I.replace(O,v(p({},w),{children:E.value}))):(h.delete(N),Reflect.deleteProperty(V,N),C.push({node:w,error:E.reason,indexPath:O,valuePath:k}))}),n.set("loadingStatus",V),P.length&&(n.set("expandedValue",E=>Wt(mt(E,...P))),(b=r("onLoadChildrenComplete"))==null||b({collection:I})),C.length&&((y=r("onLoadChildrenError"))==null||y({nodes:C}))})}function Pn(e){let{prop:t,context:n}=e;return function({indexPath:i}){return t("collection").getValuePath(i).slice(0,-1).some(o=>!n.get("expandedValue").includes(o))}}function oi(e,t){let{prop:n,scope:r,computed:i}=e,a=n("scrollToIndexFn");if(!a)return!1;let o=n("collection"),s=i("visibleNodes");for(let l=0;lr.getById(Tu(r,t))}),!0}return!1}function Lb(e){return Iu({nodeToValue:t=>t.id,nodeToString:t=>t.name,rootNode:e})}function Mb(e){var t,n;return T(e,"controlled")?(t=e.getAttribute("data-expanded-value"))!=null?t:"":(n=e.getAttribute("data-default-expanded-value"))!=null?n:""}function Fb(e){var t,n;return T(e,"controlled")?(t=e.getAttribute("data-selected-value"))!=null?t:"":(n=e.getAttribute("data-default-selected-value"))!=null?n:""}function _b(e){let t=e.dataset.tree;if(t==null||t==="")throw new Error("TreeView: missing data-tree");return JSON.parse(t)}var GN,ot,Iu,UN,Nb,Tu,Cu,We,$b,Db,Cn,jN,zN,YN,Gb=ne(()=>{"use strict";wa();Di();Il();Wo();_e();Ce();se();GN=j("tree-view").parts("branch","branchContent","branchControl","branchIndentGuide","branchIndicator","branchText","branchTrigger","item","itemIndicator","itemText","label","nodeCheckbox","nodeRenameInput","root","tree"),ot=GN.build(),Iu=e=>new $c(e);Iu.empty=()=>new $c({rootNode:{children:[]}});UN=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.root)!=null?n:`tree:${e.id}:root`},Nb=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.label)!=null?n:`tree:${e.id}:label`},Tu=(e,t)=>{var n,r,i;return(i=(r=(n=e.ids)==null?void 0:n.node)==null?void 0:r.call(n,t))!=null?i:`tree:${e.id}:node:${t}`},Cu=e=>{var t,n;return(n=(t=e.ids)==null?void 0:t.tree)!=null?n:`tree:${e.id}:tree`},We=(e,t)=>{var n;t!=null&&((n=e.getById(Tu(e,t)))==null||n.focus())},$b=(e,t)=>`tree:${e.id}:rename-input:${t}`,Db=(e,t)=>e.getById($b(e,t));({and:Cn}=Te()),jN=te({props({props:e}){return v(p({selectionMode:"single",collection:Iu.empty(),typeahead:!0,expandOnClick:!0,defaultExpandedValue:[],defaultSelectedValue:[]},e),{translations:p({treeLabel:"Tree View",renameInputLabel:"Rename tree item"},e.translations)})},initialState(){return"idle"},context({prop:e,bindable:t,getContext:n}){return{expandedValue:t(()=>({defaultValue:e("defaultExpandedValue"),value:e("expandedValue"),isEqual:Ie,onChange(r){var o;let a=n().get("focusedValue");(o=e("onExpandedChange"))==null||o({expandedValue:r,focusedValue:a,get expandedNodes(){return e("collection").findNodes(r)}})}})),selectedValue:t(()=>({defaultValue:e("defaultSelectedValue"),value:e("selectedValue"),isEqual:Ie,onChange(r){var o;let a=n().get("focusedValue");(o=e("onSelectionChange"))==null||o({selectedValue:r,focusedValue:a,get selectedNodes(){return e("collection").findNodes(r)}})}})),focusedValue:t(()=>({defaultValue:e("defaultFocusedValue")||null,value:e("focusedValue"),onChange(r){var i;(i=e("onFocusChange"))==null||i({focusedValue:r,get focusedNode(){return r?e("collection").findNode(r):null}})}})),loadingStatus:t(()=>({defaultValue:{}})),checkedValue:t(()=>({defaultValue:e("defaultCheckedValue")||[],value:e("checkedValue"),isEqual:Ie,onChange(r){var i;(i=e("onCheckedChange"))==null||i({checkedValue:r})}})),renamingValue:t(()=>({sync:!0,defaultValue:null}))}},refs(){return{typeaheadState:p({},ct.defaultOptions),pendingAborts:new Map}},computed:{isMultipleSelection:({prop:e})=>e("selectionMode")==="multiple",isTypingAhead:({refs:e})=>e.get("typeaheadState").keysSoFar.length>0,visibleNodes:({prop:e,context:t})=>{let n=[];return e("collection").visit({skip:Pn({prop:e,context:t}),onEnter:(r,i)=>{n.push({node:r,indexPath:i})}}),n}},on:{"EXPANDED.SET":{actions:["setExpanded"]},"EXPANDED.CLEAR":{actions:["clearExpanded"]},"EXPANDED.ALL":{actions:["expandAllBranches"]},"BRANCH.EXPAND":{actions:["expandBranches"]},"BRANCH.COLLAPSE":{actions:["collapseBranches"]},"SELECTED.SET":{actions:["setSelected"]},"SELECTED.ALL":[{guard:Cn("isMultipleSelection","moveFocus"),actions:["selectAllNodes","focusTreeLastNode"]},{guard:"isMultipleSelection",actions:["selectAllNodes"]}],"SELECTED.CLEAR":{actions:["clearSelected"]},"NODE.SELECT":{actions:["selectNode"]},"NODE.DESELECT":{actions:["deselectNode"]},"CHECKED.TOGGLE":{actions:["toggleChecked"]},"CHECKED.SET":{actions:["setChecked"]},"CHECKED.CLEAR":{actions:["clearChecked"]},"NODE.FOCUS":{actions:["setFocusedNode"]},"NODE.ARROW_DOWN":[{guard:Cn("isShiftKey","isMultipleSelection"),actions:["focusTreeNextNode","extendSelectionToNextNode"]},{actions:["focusTreeNextNode"]}],"NODE.ARROW_UP":[{guard:Cn("isShiftKey","isMultipleSelection"),actions:["focusTreePrevNode","extendSelectionToPrevNode"]},{actions:["focusTreePrevNode"]}],"NODE.ARROW_LEFT":{actions:["focusBranchNode"]},"BRANCH_NODE.ARROW_LEFT":[{guard:"isBranchExpanded",actions:["collapseBranch"]},{actions:["focusBranchNode"]}],"BRANCH_NODE.ARROW_RIGHT":[{guard:Cn("isBranchFocused","isBranchExpanded"),actions:["focusBranchFirstNode"]},{actions:["expandBranch"]}],"SIBLINGS.EXPAND":{actions:["expandSiblingBranches"]},"NODE.HOME":[{guard:Cn("isShiftKey","isMultipleSelection"),actions:["extendSelectionToFirstNode","focusTreeFirstNode"]},{actions:["focusTreeFirstNode"]}],"NODE.END":[{guard:Cn("isShiftKey","isMultipleSelection"),actions:["extendSelectionToLastNode","focusTreeLastNode"]},{actions:["focusTreeLastNode"]}],"NODE.CLICK":[{guard:Cn("isCtrlKey","isMultipleSelection"),actions:["toggleNodeSelection"]},{guard:Cn("isShiftKey","isMultipleSelection"),actions:["extendSelectionToNode"]},{actions:["selectNode"]}],"BRANCH_NODE.CLICK":[{guard:Cn("isCtrlKey","isMultipleSelection"),actions:["toggleNodeSelection"]},{guard:Cn("isShiftKey","isMultipleSelection"),actions:["extendSelectionToNode"]},{guard:"expandOnClick",actions:["selectNode","toggleBranchNode"]},{actions:["selectNode"]}],"BRANCH_TOGGLE.CLICK":{actions:["toggleBranchNode"]},"TREE.TYPEAHEAD":{actions:["focusMatchedNode"]}},exit:["clearPendingAborts"],states:{idle:{on:{"NODE.RENAME":{target:"renaming",actions:["setRenamingValue"]}}},renaming:{entry:["syncRenameInput","focusRenameInput"],on:{"RENAME.SUBMIT":{guard:"isRenameLabelValid",target:"idle",actions:["submitRenaming"]},"RENAME.CANCEL":{target:"idle",actions:["cancelRenaming"]}}}},implementations:{guards:{isBranchFocused:({context:e,event:t})=>e.get("focusedValue")===t.id,isBranchExpanded:({context:e,event:t})=>e.get("expandedValue").includes(t.id),isShiftKey:({event:e})=>e.shiftKey,isCtrlKey:({event:e})=>e.ctrlKey,hasSelectedItems:({context:e})=>e.get("selectedValue").length>0,isMultipleSelection:({prop:e})=>e("selectionMode")==="multiple",moveFocus:({event:e})=>!!e.moveFocus,expandOnClick:({prop:e})=>!!e("expandOnClick"),isRenameLabelValid:({event:e})=>e.label.trim()!==""},actions:{selectNode({context:e,event:t}){let n=t.id||t.value;e.set("selectedValue",r=>n==null?r:!t.isTrusted&&Zn(n)?r.concat(...n):[Zn(n)?qt(n):n].filter(Boolean))},deselectNode({context:e,event:t}){let n=ia(t.id||t.value);e.set("selectedValue",r=>wt(r,...n))},setFocusedNode({context:e,event:t}){e.set("focusedValue",t.id)},clearFocusedNode({context:e}){e.set("focusedValue",null)},clearSelectedItem({context:e}){e.set("selectedValue",[])},toggleBranchNode({context:e,event:t,action:n}){let r=e.get("expandedValue").includes(t.id);n(r?["collapseBranch"]:["expandBranch"])},expandBranch(e){let{event:t}=e;bl(e,[t.id])},expandBranches(e){let{context:t,event:n}=e,r=ia(n.value);bl(e,Ro(r,t.get("expandedValue")))},collapseBranch({context:e,event:t}){e.set("expandedValue",n=>wt(n,t.id))},collapseBranches(e){let{context:t,event:n}=e,r=ia(n.value);t.set("expandedValue",i=>wt(i,...r))},setExpanded({context:e,event:t}){Zn(t.value)&&e.set("expandedValue",t.value)},clearExpanded({context:e}){e.set("expandedValue",[])},setSelected({context:e,event:t}){Zn(t.value)&&e.set("selectedValue",t.value)},clearSelected({context:e}){e.set("selectedValue",[])},focusTreeFirstNode(e){let{prop:t,scope:n}=e,r=t("collection"),i=r.getFirstNode(void 0,{skip:Pn(e)});if(!i)return;let a=r.getNodeValue(i);oi(e,a)?$(()=>We(n,a)):We(n,a)},focusTreeLastNode(e){let{prop:t,scope:n}=e,r=t("collection"),i=r.getLastNode(void 0,{skip:Pn(e)}),a=r.getNodeValue(i);oi(e,a)?$(()=>We(n,a)):We(n,a)},focusBranchFirstNode(e){let{event:t,prop:n,scope:r}=e,i=n("collection"),a=i.findNode(t.id),o=i.getFirstNode(a,{skip:Pn(e)});if(!o)return;let s=i.getNodeValue(o);oi(e,s)?$(()=>We(r,s)):We(r,s)},focusTreeNextNode(e){let{event:t,prop:n,scope:r}=e,i=n("collection"),a=i.getNextNode(t.id,{skip:Pn(e)});if(!a)return;let o=i.getNodeValue(a);oi(e,o)?$(()=>We(r,o)):We(r,o)},focusTreePrevNode(e){let{event:t,prop:n,scope:r}=e,i=n("collection"),a=i.getPreviousNode(t.id,{skip:Pn(e)});if(!a)return;let o=i.getNodeValue(a);oi(e,o)?$(()=>We(r,o)):We(r,o)},focusBranchNode(e){let{event:t,prop:n,scope:r}=e,i=n("collection"),a=i.getParentNode(t.id),o=a?i.getNodeValue(a):void 0;if(!o)return;oi(e,o)?$(()=>We(r,o)):We(r,o)},selectAllNodes({context:e,prop:t}){e.set("selectedValue",t("collection").getValues())},focusMatchedNode(e){let{context:t,prop:n,refs:r,event:i,scope:a,computed:o}=e,l=o("visibleNodes").map(({node:g})=>({textContent:n("collection").stringifyNode(g),id:n("collection").getNodeValue(g)})),c=ct(l,{state:r.get("typeaheadState"),activeId:t.get("focusedValue"),key:i.key});if(!(c!=null&&c.id))return;oi(e,c.id)?$(()=>We(a,c.id)):We(a,c.id)},toggleNodeSelection({context:e,event:t}){let n=Kt(e.get("selectedValue"),t.id);e.set("selectedValue",n)},expandAllBranches(e){let{context:t,prop:n}=e,r=n("collection").getBranchValues(),i=Ro(r,t.get("expandedValue"));bl(e,i)},expandSiblingBranches(e){let{context:t,event:n,prop:r}=e,i=r("collection"),a=i.getIndexPath(n.id);if(!a)return;let s=i.getSiblingNodes(a).map(c=>i.getNodeValue(c)),l=Ro(s,t.get("expandedValue"));bl(e,l)},extendSelectionToNode(e){let{context:t,event:n,prop:r,computed:i}=e,a=r("collection"),o=Tt(t.get("selectedValue"))||a.getNodeValue(a.getFirstNode()),s=n.id,l=[o,s],c=0;i("visibleNodes").forEach(({node:g})=>{let h=a.getNodeValue(g);c===1&&l.push(h),(h===o||h===s)&&c++}),t.set("selectedValue",Wt(l))},extendSelectionToNextNode(e){let{context:t,event:n,prop:r}=e,i=r("collection"),a=i.getNextNode(n.id,{skip:Pn(e)});if(!a)return;let o=new Set(t.get("selectedValue")),s=i.getNodeValue(a);s!=null&&(o.has(n.id)&&o.has(s)?o.delete(n.id):o.has(s)||o.add(s),t.set("selectedValue",Array.from(o)))},extendSelectionToPrevNode(e){let{context:t,event:n,prop:r}=e,i=r("collection"),a=i.getPreviousNode(n.id,{skip:Pn(e)});if(!a)return;let o=new Set(t.get("selectedValue")),s=i.getNodeValue(a);s!=null&&(o.has(n.id)&&o.has(s)?o.delete(n.id):o.has(s)||o.add(s),t.set("selectedValue",Array.from(o)))},extendSelectionToFirstNode(e){let{context:t,prop:n}=e,r=n("collection"),i=Tt(t.get("selectedValue")),a=[];r.visit({skip:Pn(e),onEnter:o=>{let s=r.getNodeValue(o);if(a.push(s),s===i)return"stop"}}),t.set("selectedValue",a)},extendSelectionToLastNode(e){let{context:t,prop:n}=e,r=n("collection"),i=Tt(t.get("selectedValue")),a=[],o=!1;r.visit({skip:Pn(e),onEnter:s=>{let l=r.getNodeValue(s);l===i&&(o=!0),o&&a.push(l)}}),t.set("selectedValue",a)},clearPendingAborts({refs:e}){let t=e.get("pendingAborts");t.forEach(n=>n.abort()),t.clear()},toggleChecked({context:e,event:t,prop:n}){let r=n("collection");e.set("checkedValue",i=>t.isBranch?qN(r,t.value,i):Kt(i,t.value))},setChecked({context:e,event:t}){e.set("checkedValue",t.value)},clearChecked({context:e}){e.set("checkedValue",[])},setRenamingValue({context:e,event:t,prop:n}){e.set("renamingValue",t.value);let r=n("onRenameStart");if(r){let i=n("collection"),a=i.getIndexPath(t.value);if(a){let o=i.at(a);o&&r({value:t.value,node:o,indexPath:a})}}},submitRenaming({context:e,event:t,prop:n,scope:r}){var c;let i=e.get("renamingValue");if(!i)return;let o=n("collection").getIndexPath(i);if(!o)return;let s=t.label.trim(),l=n("onBeforeRename");if(l&&!l({value:i,label:s,indexPath:o})){e.set("renamingValue",null),We(r,i);return}(c=n("onRenameComplete"))==null||c({value:i,label:s,indexPath:o}),e.set("renamingValue",null),We(r,i)},cancelRenaming({context:e,scope:t}){let n=e.get("renamingValue");e.set("renamingValue",null),n&&We(t,n)},syncRenameInput({context:e,scope:t,prop:n}){let r=e.get("renamingValue");if(!r)return;let i=n("collection"),a=i.findNode(r);if(!a)return;let o=i.stringifyNode(a),s=Db(t,r);Be(s,o)},focusRenameInput({context:e,scope:t}){let n=e.get("renamingValue");if(!n)return;let r=Db(t,n);r&&(r.focus(),r.select())}}}});zN=class extends X{constructor(t,n){let o=n,{rootNode:r}=o,i=ft(o,["rootNode"]),a=Lb(r);super(t,v(p({},i),{collection:a}));J(this,"treeCollection");J(this,"syncTree",()=>{let t=this.el.querySelector('[data-scope="tree-view"][data-part="tree"]');t&&(this.spreadProps(t,this.api.getTreeProps()),this.updateExistingTree(t))});this.treeCollection=a}replaceRootNode(t){let n=Lb(t);this.treeCollection=n,this.updateProps({collection:n})}initMachine(t){return new Y(jN,p({},t))}initApi(){return this.zagConnect(KN)}getNodeAt(t){var r;if(t.length===0)return;let n=this.treeCollection.rootNode;for(let i of t)if(n=(r=n==null?void 0:n.children)==null?void 0:r[i],!n)return;return n}updateExistingTree(t){var o;this.spreadProps(t,this.api.getTreeProps());let n=(o=this.el.dataset.animation)!=null?o:"instant",r=s=>s.closest('[data-scope="tree-view"][data-part="tree"]')===t,i=t.querySelectorAll('[data-scope="tree-view"][data-part="branch"]');for(let s of i){if(!r(s))continue;let l=s.getAttribute("data-path");if(l==null)continue;let c=l.split("/").map(C=>parseInt(C,10)),d=this.getNodeAt(c);if(!d)continue;let g={indexPath:c,node:d};this.spreadProps(s,this.api.getBranchProps(g));let h=s.querySelector('[data-scope="tree-view"][data-part="branch-control"]');h&&this.spreadProps(h,this.api.getBranchControlProps(g));let u=s.querySelector('[data-scope="tree-view"][data-part="branch-text"]');u&&this.spreadProps(u,this.api.getBranchTextProps(g));let f=s.querySelector('[data-scope="tree-view"][data-part="branch-indicator"]');f&&this.spreadProps(f,this.api.getBranchIndicatorProps(g));let m=s.querySelector('[data-scope="tree-view"][data-part="branch-content"]');if(m){let C=this.api.getBranchContentProps(g);n==="instant"?this.spreadProps(m,C):(n==="js"||n==="custom")&&(this.spreadProps(m,Nr(C)),m.removeAttribute("hidden"))}let P=s.querySelector('[data-scope="tree-view"][data-part="branch-indent-guide"]');P&&this.spreadProps(P,this.api.getBranchIndentGuideProps(g))}let a=t.querySelectorAll('[data-scope="tree-view"][data-part="item"]');for(let s of a){if(!r(s))continue;let l=s.getAttribute("data-path");if(l==null)continue;let c=l.split("/").map(f=>parseInt(f,10)),d=this.getNodeAt(c);if(!d)continue;let g={indexPath:c,node:d};this.spreadProps(s,this.api.getItemProps(g));let h=s.querySelector('[data-scope="tree-view"][data-part="item-text"]');h&&this.spreadProps(h,this.api.getItemTextProps(g));let u=s.querySelector('[data-scope="tree-view"][data-part="item-indicator"]');u&&this.spreadProps(u,this.api.getItemIndicatorProps(g))}}render(){var r;let t=(r=this.el.querySelector('[data-scope="tree-view"][data-part="root"]'))!=null?r:this.el;this.spreadProps(t,this.api.getRootProps());let n=this.el.querySelector('[data-scope="tree-view"][data-part="label"]');n&&this.spreadProps(n,this.api.getLabelProps()),this.syncTree()}};YN={mounted(){var g,h,u,f,m,P,C,V,I;let e=this.el,t=this,n=this.pushEvent.bind(this),r=()=>Q(this.liveSocket),i=_b(e);this.lastDataTree=e.dataset.tree;let a=T(e,"controlled");t.lastExpanded=a?(g=ie(e,"expandedValue"))!=null?g:[]:(h=ie(e,"defaultExpandedValue"))!=null?h:[],t.lastSelected=a?(u=ie(e,"selectedValue"))!=null?u:[]:(f=ie(e,"defaultSelectedValue"))!=null?f:[],t.lastExpandedAttr=Mb(e),t.lastSelectedAttr=Fb(e);let o=new zN(e,v(p({id:e.id,rootNode:i},a?{expandedValue:(m=ie(e,"expandedValue"))!=null?m:[],selectedValue:(P=ie(e,"selectedValue"))!=null?P:[]}:{defaultExpandedValue:(C=ie(e,"defaultExpandedValue"))!=null?C:[],defaultSelectedValue:(V=ie(e,"defaultSelectedValue"))!=null?V:[]}),{selectionMode:(I=x(e,"selectionMode"))!=null?I:"single",typeahead:e.dataset.typeahead!=="false",dir:q(e),onSelectionChange:b=>{var W,Z,ue;let y=T(e,"redirect"),E=(W=b.selectedValue)!=null&&W.length?b.selectedValue[0]:void 0,A=E?e.querySelector(`[data-scope="tree-view"][data-part="item"][data-value="${CSS.escape(E)}"]`):null,N=!!A;y&&N&&mn(fn(A,E),{liveSocket:this.liveSocket});let O=(Z=b.selectedValue)!=null?Z:[],w=(ue=t.lastSelected)!=null?ue:[],{added:k,removed:R}=ea(O,w);t.lastSelected=O;let D={id:e.id,selectedValue:O,previousSelectedValue:w,added:k,removed:R,focusedValue:b.focusedValue,isItem:N};K({el:e,canPushServer:r(),pushEvent:n,payload:D,serverEventName:x(e,"onSelectionChange"),clientEventName:x(e,"onSelectionChangeClient")})},onExpandedChange:b=>{var w,k;let y=(w=b.expandedValue)!=null?w:[],E=(k=t.lastExpanded)!=null?k:[],{added:A,removed:N}=ea(y,E);t.lastExpanded=y;let O={id:e.id,expandedValue:y,previousExpandedValue:E,added:A,removed:N,focusedValue:b.focusedValue};K({el:e,canPushServer:r(),pushEvent:n,payload:O,serverEventName:x(e,"onExpandedChange"),clientEventName:x(e,"onExpandedChangeClient")}),e.dataset.animation==="js"&&Ci({rootEl:e,selector:'[data-scope="tree-view"][data-part="branch-content"]',opts:ar(e),isOpen:R=>{let D=R.dataset.value;return!!D&&y.includes(D)}})}}));if(o.init(),this.treeView=o,e.dataset.animation==="js"){let b=ar(e);qo(e,'[data-scope="tree-view"][data-part="branch-content"]',b)}let s=b=>{let y=o.api.selectedValue;je({respondTo:b,canPushServer:r(),pushEvent:n,serverEventName:"tree_view_value_response",serverPayload:{id:e.id,value:y},el:e,domEventName:"tree-view-value",domDetail:{id:e.id,value:y}})},l=b=>{let y=o.api.expandedValue;je({respondTo:b,canPushServer:r(),pushEvent:n,serverEventName:"tree_view_expanded_value_response",serverPayload:{id:e.id,value:y},el:e,domEventName:"tree-view-expanded-value",domDetail:{id:e.id,value:y}})},c=de(e);this.domRegistry=c,c.add("corex:tree-view:set-expanded-value",b=>{o.api.setExpandedValue(b.detail.value)}),c.add("corex:tree-view:set-selected-value",b=>{o.api.setSelectedValue(b.detail.value)}),c.add("corex:tree-view:value",b=>{s(we(b.detail))}),c.add("corex:tree-view:expanded-value",b=>{l(we(b.detail))});let d=ce(this);this.handleRegistry=d,d.add("tree_view_set_expanded_value",b=>{B(e.id,G(b))&&o.api.setExpandedValue(b.value)}),d.add("tree_view_set_selected_value",b=>{B(e.id,G(b))&&o.api.setSelectedValue(b.value)}),d.add("tree_view_value",b=>{B(e.id,G(b))&&s(we(b))}),d.add("tree_view_expanded_value",b=>{B(e.id,G(b))&&l(we(b))})},beforeUpdate(){var e;T(this.el,"controlled")&&this.el.dataset.animation==="js"&&(this.previousExpanded=(e=ie(this.el,"expandedValue"))!=null?e:[])},updated(){var u,f,m,P,C,V,I;let e=this.el,t=this.treeView;if(!t)return;let n=e.dataset.tree;n!=null&&n!==this.lastDataTree&&(this.lastDataTree=n,t.replaceRootNode(_b(e)));let r=T(e,"controlled"),i=r?(u=ie(e,"selectedValue"))!=null?u:[]:(f=ie(e,"defaultSelectedValue"))!=null?f:[],a=r?(m=ie(e,"expandedValue"))!=null?m:[]:(P=ie(e,"defaultExpandedValue"))!=null?P:[],o=(C=x(e,"selectionMode"))!=null?C:"single",s=e.dataset.typeahead!=="false",l=q(e),c=Mb(e),d=Fb(e),g=c!==this.lastExpandedAttr,h=d!==this.lastSelectedAttr;if(this.lastExpandedAttr=c,this.lastSelectedAttr=d,r){let b=(I=(V=this.previousExpanded)!=null?V:this.lastExpanded)!=null?I:[];this.previousExpanded=void 0,g&&(this.lastExpanded=a),h&&(this.lastSelected=i),e.dataset.animation==="js"&&Ci({rootEl:e,selector:'[data-scope="tree-view"][data-part="branch-content"]',opts:ar(e),wasOpen:y=>{let E=y.dataset.value;return!!E&&b.includes(E)},isOpen:y=>{let E=y.dataset.value;return!!E&&a.includes(E)}}),t.updateProps({expandedValue:a,selectedValue:i,selectionMode:o,typeahead:s,dir:l})}else t.updateProps({selectionMode:o,typeahead:s,dir:l}),g&&t.api.setExpandedValue(a),h&&t.api.setSelectedValue(i)},destroyed(){var e,t,n;(e=this.domRegistry)==null||e.teardown(),(t=this.handleRegistry)==null||t.teardown(),(n=this.treeView)==null||n.destroy()}}});var ZN={};fe(ZN,{Hooks:()=>Ub,animateHeightClose:()=>Mu,animateHeightOpen:()=>Lu,animateScaleClose:()=>_u,animateScaleOpen:()=>Fu,applyClosedHeight:()=>fo,applyClosedScale:()=>vo,applyOpenHeight:()=>mo,applyOpenScale:()=>yo,default:()=>XN,findAccordionContent:()=>Ru,findDialogBackdrop:()=>Nu,findDialogContent:()=>Du,findTreeBranch:()=>ku});var bo="ease-out";function Eo(){return typeof window!="undefined"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}function fo(e){e.style.opacity="0",e.style.height="0px",e.style.overflow="hidden"}function mo(e){e.style.opacity="",e.style.height="",e.style.overflow=""}function Ru(e,t){return e.querySelector(`[data-scope="accordion"][data-part="item"][data-value="${CSS.escape(t)}"] [data-part="item-content"]`)}function ku(e,t){return e.querySelector(`[data-scope="tree-view"][data-part="branch-content"][data-value="${CSS.escape(t)}"]`)}function Nu(e){return e.querySelector('[data-scope="dialog"][data-part="backdrop"]')}function Du(e){return e.querySelector('[data-scope="dialog"][data-part="content"]')}function vo(e,t={}){var a,o;let n=e.dataset.part==="backdrop",r=(a=t.opacityStart)!=null?a:0,i=(o=t.scaleStart)!=null?o:.96;e.style.opacity=String(r),!n&&i!==1?e.style.transform=`scale(${i})`:e.style.removeProperty("transform")}function yo(e){e.style.opacity="",e.style.removeProperty("transform")}function Lu(e,t){var s,l,c,d;if(Eo())return mo(e),Promise.resolve();let n=(s=t.duration)!=null?s:.3,r=(l=t.easing)!=null?l:bo,i=(c=t.opacityStart)!=null?c:0,a=(d=t.opacityEnd)!=null?d:1,o=`${e.scrollHeight}px`;return e.style.height="0px",e.style.overflow="hidden",Promise.resolve(t.animator(e,{height:["0px",o],opacity:[i,a]},{duration:n,easing:r}).finished.then(()=>{mo(e)})).then(()=>{})}function Mu(e,t){var s,l,c,d;if(Eo())return fo(e),Promise.resolve();let n=(s=t.duration)!=null?s:.3,r=(l=t.easing)!=null?l:bo,i=(c=t.opacityStart)!=null?c:0,a=(d=t.opacityEnd)!=null?d:1,o=`${e.scrollHeight}px`;return e.style.height=o,e.style.overflow="hidden",Promise.resolve(t.animator(e,{height:[o,"0px"],opacity:[a,i]},{duration:n,easing:r}).finished.then(()=>{fo(e)})).then(()=>{})}function Fu(e,t){var d,g,h,u,f,m;let n=e.dataset.part==="backdrop";if(Eo())return yo(e),Promise.resolve();let r=(d=t.duration)!=null?d:.3,i=(g=t.easing)!=null?g:bo,a=(h=t.opacityStart)!=null?h:0,o=(u=t.opacityEnd)!=null?u:1,s=(f=t.scaleStart)!=null?f:.96,l=(m=t.scaleEnd)!=null?m:1,c={opacity:[a,o]};return!n&&(s!==l||s!==1||l!==1)&&(c.transform=[`scale(${s})`,`scale(${l})`]),Promise.resolve(t.animator(e,c,{duration:r,easing:i}).finished.then(()=>{yo(e)})).then(()=>{})}function _u(e,t){var d,g,h,u,f,m;let n=e.dataset.part==="backdrop";if(Eo())return vo(e,{scaleStart:t.scaleStart,opacityStart:t.opacityStart}),Promise.resolve();let r=(d=t.duration)!=null?d:.3,i=(g=t.easing)!=null?g:bo,a=(h=t.opacityStart)!=null?h:0,o=(u=t.opacityEnd)!=null?u:1,s=(f=t.scaleStart)!=null?f:.96,l=(m=t.scaleEnd)!=null?m:1,c={opacity:[o,a]};return!n&&(s!==l||s!==1||l!==1)&&(c.transform=[`scale(${l})`,`scale(${s})`]),Promise.resolve(t.animator(e,c,{duration:r,easing:i}).finished.then(()=>{vo(e,{scaleStart:s,opacityStart:a})})).then(()=>{})}function me(e,t){return{mounted(){return Ue(this,null,function*(){let i=(yield e())[t];if(this._realHook=i,i!=null&&i.mounted)return i.mounted.call(this)})},updated(){var r,i;(i=(r=this._realHook)==null?void 0:r.updated)==null||i.call(this)},destroyed(){var r,i;(i=(r=this._realHook)==null?void 0:r.destroyed)==null||i.call(this)},disconnected(){var r,i;(i=(r=this._realHook)==null?void 0:r.disconnected)==null||i.call(this)},reconnected(){var r,i;(i=(r=this._realHook)==null?void 0:r.reconnected)==null||i.call(this)},beforeUpdate(){var r,i;(i=(r=this._realHook)==null?void 0:r.beforeUpdate)==null||i.call(this)}}}var Ub={Accordion:me(()=>Promise.resolve().then(()=>(Gg(),Bg)),"Accordion"),AngleSlider:me(()=>Promise.resolve().then(()=>(ph(),hh)),"AngleSlider"),Avatar:me(()=>Promise.resolve().then(()=>(yh(),vh)),"Avatar"),Carousel:me(()=>Promise.resolve().then(()=>(wh(),Th)),"Carousel"),Checkbox:me(()=>Promise.resolve().then(()=>(Lh(),Dh)),"Checkbox"),Clipboard:me(()=>Promise.resolve().then(()=>($h(),_h)),"Clipboard"),Code:me(()=>Promise.resolve().then(()=>(Bh(),Hh)),"Code"),Collapsible:me(()=>Promise.resolve().then(()=>(Uh(),Gh)),"Collapsible"),Combobox:me(()=>Promise.resolve().then(()=>(Kp(),Wp)),"Combobox"),ColorPicker:me(()=>Promise.resolve().then(()=>(ff(),pf)),"ColorPicker"),DatePicker:me(()=>Promise.resolve().then(()=>(mm(),fm)),"DatePicker"),Dialog:me(()=>Promise.resolve().then(()=>(xm(),Vm)),"Dialog"),Editable:me(()=>Promise.resolve().then(()=>(Mm(),Lm)),"Editable"),FileUpload:me(()=>Promise.resolve().then(()=>(zm(),jm)),"FileUpload"),FloatingPanel:me(()=>Promise.resolve().then(()=>(pv(),hv)),"FloatingPanel"),Listbox:me(()=>Promise.resolve().then(()=>(Ev(),bv)),"Listbox"),Marquee:me(()=>Promise.resolve().then(()=>(Iv(),Cv)),"Marquee"),Menu:me(()=>Promise.resolve().then(()=>(Bv(),Hv)),"Menu"),NumberInput:me(()=>Promise.resolve().then(()=>(ny(),ty)),"NumberInput"),PasswordInput:me(()=>Promise.resolve().then(()=>(iy(),ry)),"PasswordInput"),PinInput:me(()=>Promise.resolve().then(()=>(cy(),ly)),"PinInput"),RadioGroup:me(()=>Promise.resolve().then(()=>(my(),fy)),"RadioGroup"),Select:me(()=>Promise.resolve().then(()=>(Iy(),Cy)),"Select"),SignaturePad:me(()=>Promise.resolve().then(()=>(Wy(),qy)),"SignaturePad"),Switch:me(()=>Promise.resolve().then(()=>(Xy(),Yy)),"Switch"),Tabs:me(()=>Promise.resolve().then(()=>(nb(),tb)),"Tabs"),Timer:me(()=>Promise.resolve().then(()=>(sb(),ob)),"Timer"),Toast:me(()=>Promise.resolve().then(()=>(bb(),yb)),"Toast"),Tooltip:me(()=>Promise.resolve().then(()=>(wb(),Tb)),"Tooltip"),ToggleGroup:me(()=>Promise.resolve().then(()=>(kb(),Rb)),"ToggleGroup"),TreeView:me(()=>Promise.resolve().then(()=>(Gb(),Bb)),"TreeView")},XN=Ub;return Yb(ZN);})(); diff --git a/priv/static/date-picker.mjs b/priv/static/date-picker.mjs index 0cad1391..7ac14168 100644 --- a/priv/static/date-picker.mjs +++ b/priv/static/date-picker.mjs @@ -4,9 +4,6 @@ import { import { createLiveRegion } from "./chunks/chunk-7BZGUIUZ.mjs"; -import { - readPositioningOptions -} from "./chunks/chunk-4EUE6P2Z.mjs"; import { getPlacement, getPlacementStyles @@ -15,6 +12,9 @@ import { trackDismissableElement } from "./chunks/chunk-ZZR3S6PP.mjs"; import "./chunks/chunk-K2P3QAIZ.mjs"; +import { + readPositioningOptions +} from "./chunks/chunk-6QZYI6OY.mjs"; import { clampValue, isValueWithinRange diff --git a/priv/static/floating-panel.mjs b/priv/static/floating-panel.mjs index f3012505..55af13e9 100644 --- a/priv/static/floating-panel.mjs +++ b/priv/static/floating-panel.mjs @@ -1,3 +1,6 @@ +import { + readPositioningOptions +} from "./chunks/chunk-6QZYI6OY.mjs"; import { __publicField, addPoints, @@ -1419,6 +1422,64 @@ var FloatingPanel = class extends Component { } }; +// lib/floating-panel-anchor.ts +function anchorPointFromPositioning(positioning, details, panelSize, dir) { + const boundaryRect = details.boundaryRect; + if (!boundaryRect) return void 0; + const gutter = positioning.gutter ?? 8; + const shift = positioning.shift ?? 0; + const mainAxis = positioning.offset?.mainAxis ?? 0; + const crossAxis = positioning.offset?.crossAxis ?? 0; + const placement = positioning.placement ?? "bottom"; + const { width: pw, height: ph } = panelSize; + const b = boundaryRect; + const isRtl = dir === "rtl"; + const xInnerLeft = b.x + gutter; + const xInnerRight = b.x + b.width - pw - gutter; + const xCenter = b.x + (b.width - pw) / 2; + const yInnerTop = b.y + gutter; + const yInnerBottom = b.y + b.height - ph - gutter; + const yCenter = b.y + (b.height - ph) / 2; + const parts2 = placement.split("-"); + const side = parts2[0]; + const align = parts2[1]; + const xForBottomTop = () => { + if (align === "start") return isRtl ? xInnerRight : xInnerLeft; + if (align === "end") return isRtl ? xInnerLeft : xInnerRight; + return xCenter; + }; + if (side === "bottom") { + return { + x: xForBottomTop() + shift + crossAxis, + y: yInnerBottom - mainAxis + }; + } + if (side === "top") { + return { + x: xForBottomTop() + shift + crossAxis, + y: yInnerTop + mainAxis + }; + } + if (side === "left") { + const y = align === "start" ? yInnerTop : align === "end" ? yInnerBottom : yCenter; + return { + x: b.x + gutter + mainAxis, + y: y + shift + crossAxis + }; + } + if (side === "right") { + const y = align === "start" ? yInnerTop : align === "end" ? yInnerBottom : yCenter; + return { + x: b.x + b.width - pw - gutter - mainAxis, + y: y + shift + crossAxis + }; + } + return { + x: xCenter + crossAxis, + y: yCenter + mainAxis + }; +} + // hooks/floating-panel.ts function parseSize(val) { if (!val) return void 0; @@ -1442,6 +1503,14 @@ function parsePoint(val) { } return void 0; } +var FALLBACK_DEFAULT_SIZE = { width: 320, height: 240 }; +function buildAnchorProps(el) { + const defaultSize = parseSize(el.dataset.defaultSize) ?? FALLBACK_DEFAULT_SIZE; + const defaultPosition = parsePoint(el.dataset.defaultPosition); + const positioning = readPositioningOptions(el); + const getAnchorPosition = defaultPosition == null && positioning ? (details) => anchorPointFromPositioning(positioning, details, defaultSize, getDir(el)) : void 0; + return { defaultPosition, getAnchorPosition }; +} var FloatingPanelHook = { mounted() { const el = this.el; @@ -1449,8 +1518,7 @@ var FloatingPanelHook = { const canPush = () => canPushEvent(this.liveSocket); const size = parseSize(el.dataset.size); const defaultSize = parseSize(el.dataset.defaultSize); - const position = parsePoint(el.dataset.position); - const defaultPosition = parsePoint(el.dataset.defaultPosition); + const anchorProps = buildAnchorProps(el); const zag = new FloatingPanel(el, { id: el.id, defaultOpen: false, @@ -1462,8 +1530,8 @@ var FloatingPanelHook = { dir: getDir(el), size, defaultSize, - position, - defaultPosition, + defaultPosition: anchorProps.defaultPosition, + getAnchorPosition: anchorProps.getAnchorPosition, minSize: parseSize(el.dataset.minSize), maxSize: parseSize(el.dataset.maxSize), persistRect: getBoolean(el, "persistRect"), @@ -1530,10 +1598,14 @@ var FloatingPanelHook = { }); }, updated() { + const el = this.el; + const anchorProps = buildAnchorProps(el); this.floatingPanel?.updateProps({ - id: this.el.id, - disabled: getBoolean(this.el, "disabled"), - dir: getDir(this.el) + id: el.id, + disabled: getBoolean(el, "disabled"), + dir: getDir(el), + defaultPosition: anchorProps.defaultPosition, + getAnchorPosition: anchorProps.getAnchorPosition }); }, destroyed() { diff --git a/priv/static/listbox.mjs b/priv/static/listbox.mjs index 4c0703f3..6d070067 100644 --- a/priv/static/listbox.mjs +++ b/priv/static/listbox.mjs @@ -899,7 +899,9 @@ var Listbox = class extends Component { this._options = Array.isArray(options) ? options : []; } itemsFingerprint() { - return `${this.hasGroups}:${JSON.stringify(this.options)}`; + const dir = this.el.dataset.dir ?? ""; + const orientation = this.el.dataset.orientation ?? ""; + return `${this.hasGroups}:${dir}:${orientation}:${JSON.stringify(this.options)}`; } getOrderedGroupIds() { const seen = /* @__PURE__ */ new Set(); @@ -930,8 +932,12 @@ var Listbox = class extends Component { return this.zagConnect(connect); } init = () => { - this.machine.start(); - this.render(); + try { + this.machine.start(); + this.render(); + } finally { + this.el.removeAttribute("data-loading"); + } this.machine.subscribe(() => { this.api = this.initApi(); this.render(); @@ -1167,7 +1173,6 @@ var ListboxHook = { if (this.listbox) { this.listbox.hasGroups = hasGroups; this.listbox.setOptions(newItems); - this.listbox.render(); this.listbox.updateProps({ ...listboxZagPropsBase(this.el, this.liveSocket, this.pushEvent.bind(this)), collection: this.listbox.getCollection(), diff --git a/priv/static/menu.mjs b/priv/static/menu.mjs index e4fa700a..9cba2cc2 100644 --- a/priv/static/menu.mjs +++ b/priv/static/menu.mjs @@ -1,6 +1,3 @@ -import { - readPositioningOptions -} from "./chunks/chunk-4EUE6P2Z.mjs"; import { getPlacement, getPlacementSide, @@ -10,6 +7,9 @@ import { trackDismissableElement } from "./chunks/chunk-ZZR3S6PP.mjs"; import "./chunks/chunk-K2P3QAIZ.mjs"; +import { + readPositioningOptions +} from "./chunks/chunk-6QZYI6OY.mjs"; import { performRedirect, readDomItemRedirect diff --git a/priv/static/number-input.mjs b/priv/static/number-input.mjs index d4f2369f..fdfa2ff9 100644 --- a/priv/static/number-input.mjs +++ b/priv/static/number-input.mjs @@ -1342,10 +1342,10 @@ var NumberInputHook = { const el = this.el; const pushEvent = this.pushEvent.bind(this); const canPush = () => canPushEvent(this.liveSocket); - const defaultValueStr = getString(el, "defaultValue"); + const controlled = getBoolean(el, "controlled"); const zag = new NumberInput(el, { id: el.id, - defaultValue: defaultValueStr, + ...controlled ? { value: getString(el, "value") ?? "" } : { defaultValue: getString(el, "defaultValue") }, min: getNumber(el, "min"), max: getNumber(el, "max"), step: getNumber(el, "step"), @@ -1386,10 +1386,8 @@ var NumberInputHook = { this.numberInput = zag; }, updated() { - const defaultValueStr = getString(this.el, "defaultValue"); - this.numberInput?.updateProps({ + const next = { id: this.el.id, - defaultValue: defaultValueStr, min: getNumber(this.el, "min"), max: getNumber(this.el, "max"), step: getNumber(this.el, "step"), @@ -1397,10 +1395,15 @@ var NumberInputHook = { readOnly: getBoolean(this.el, "readOnly"), invalid: getBoolean(this.el, "invalid"), required: getBoolean(this.el, "required"), + allowMouseWheel: getBoolean(this.el, "allowMouseWheel"), name: getString(this.el, "name"), form: getString(this.el, "form"), dir: getDir(this.el) - }); + }; + if (getBoolean(this.el, "controlled")) { + next.value = getString(this.el, "value") ?? ""; + } + this.numberInput?.updateProps(next); }, destroyed() { this.numberInput?.destroy(); diff --git a/priv/static/select.mjs b/priv/static/select.mjs index edaa39f8..8f2af5ad 100644 --- a/priv/static/select.mjs +++ b/priv/static/select.mjs @@ -1,6 +1,3 @@ -import { - readPositioningOptions -} from "./chunks/chunk-4EUE6P2Z.mjs"; import { getPlacement, getPlacementStyles @@ -9,6 +6,9 @@ import { trackDismissableElement } from "./chunks/chunk-ZZR3S6PP.mjs"; import "./chunks/chunk-K2P3QAIZ.mjs"; +import { + readPositioningOptions +} from "./chunks/chunk-6QZYI6OY.mjs"; import { zagIdValueLabelCollectionConfig } from "./chunks/chunk-7NUJK5QP.mjs"; @@ -1341,7 +1341,7 @@ var Select = class extends Component { const valueText = this.el.querySelector( '[data-scope="select"][data-part="item-text"]' ); - if (valueText) { + if (valueText && this.el.dataset.updateTrigger !== "false") { const valueAsString = this.api.valueAsString; if (this.api.value && this.api.value.length > 0 && !valueAsString) { const selectedValue = this.api.value[0]; diff --git a/priv/static/timer.mjs b/priv/static/timer.mjs index 0f6d3f27..2d737b9d 100644 --- a/priv/static/timer.mjs +++ b/priv/static/timer.mjs @@ -18,6 +18,7 @@ import { getDir, getNumber, getString, + getStringList, match } from "./chunks/chunk-LTYT3NRU.mjs"; @@ -365,6 +366,73 @@ function validateProps(props) { } // components/timer.ts +function collapseStartIndex(vals) { + const rec = (idx) => { + if (idx > 2) return idx; + const restAfter = vals.length - idx; + if (idx < 3 && vals[idx] === 0 && restAfter > 2) { + return rec(idx + 1); + } + return idx; + }; + return rec(0); +} +function computeItemHidden(root, time) { + const types = ["days", "hours", "minutes", "seconds"]; + const vals = [time.days, time.hours, time.minutes, time.seconds].map(Number); + const segments = getStringList(root, "segments"); + const countdown = root.dataset.countdown === "true"; + const collapseRaw = root.dataset.collapseLeadingZeros; + if (segments && segments.length > 0) { + return types.map((t) => !segments.includes(t)); + } + if (collapseRaw === "false") { + return [false, false, false, false]; + } + if (collapseRaw === "true" || collapseRaw !== "false" && countdown) { + const start = collapseStartIndex(vals); + return types.map((_, i) => i < start); + } + return [false, false, false, false]; +} +function applyTimerItemVisibility(root, api) { + const hidden = computeItemHidden(root, api.time); + const types = ["days", "hours", "minutes", "seconds"]; + const hostId = root.id; + types.forEach((type, i) => { + const segmentEl = root.querySelector(`[data-timer-segment][data-type="${type}"]`); + if (segmentEl) { + if (hidden[i]) { + segmentEl.setAttribute("hidden", ""); + } else { + segmentEl.removeAttribute("hidden"); + } + } + const itemEl = root.querySelector( + `[data-scope="timer"][data-part="item"][data-type="${type}"]` + ); + if (itemEl) { + if (hidden[i]) { + itemEl.setAttribute("hidden", ""); + itemEl.setAttribute("aria-hidden", "true"); + } else { + itemEl.removeAttribute("hidden"); + itemEl.setAttribute("aria-hidden", "false"); + } + } + }); + for (let k = 0; k < 3; k++) { + const sepId = `timer:${hostId}:sep:${k}`; + const sepEl = root.querySelector(`[id="${CSS.escape(sepId)}"]`); + if (sepEl) { + if (hidden[k]) { + sepEl.setAttribute("hidden", ""); + } else { + sepEl.removeAttribute("hidden"); + } + } + } +} var Timer = class extends Component { // eslint-disable-next-line @typescript-eslint/no-explicit-any initMachine(props) { @@ -378,9 +446,13 @@ var Timer = class extends Component { this.api = this.initApi(); this.render(); }); - this.machine.start(); - this.api = this.initApi(); - this.render(); + try { + this.machine.start(); + this.api = this.initApi(); + this.render(); + } finally { + this.el.removeAttribute("data-loading"); + } }; render() { const rootEl = this.el.querySelector('[data-scope="timer"][data-part="root"]') ?? this.el; @@ -399,6 +471,12 @@ var Timer = class extends Component { if (itemEl) { this.spreadProps(itemEl, this.api.getItemProps({ type })); } + const labelEl = this.el.querySelector( + `[data-scope="timer"][data-part="item-label"][data-type="${type}"]` + ); + if (labelEl) { + this.spreadProps(labelEl, this.api.getItemLabelProps({ type })); + } }); this.el.querySelectorAll('[data-scope="timer"][data-part="separator"]').forEach((separatorEl) => { this.spreadProps(separatorEl, this.api.getSeparatorProps()); @@ -414,10 +492,25 @@ var Timer = class extends Component { this.api.getActionTriggerProps({ action }) ); }); + applyTimerItemVisibility(this.el, this.api); } }; // hooks/timer.ts +function parseTimerTranslations(el) { + const raw = el.dataset.translation; + if (!raw) return void 0; + try { + const o = JSON.parse(raw); + if (typeof o.areaLabel === "string" && o.areaLabel.length > 0) { + const label = o.areaLabel; + return { areaLabel: () => label }; + } + } catch { + return void 0; + } + return void 0; +} var TimerHook = { mounted() { const el = this.el; @@ -431,6 +524,7 @@ var TimerHook = { interval: getNumber(el, "interval"), dir: getDir(el), orientation: getString(el, "orientation"), + translations: parseTimerTranslations(el), onTick: (details) => { const eventName = getString(el, "onTick"); if (eventName && canPushEvent(this.liveSocket)) { @@ -485,7 +579,8 @@ var TimerHook = { autoStart: getBoolean(this.el, "autoStart"), interval: getNumber(this.el, "interval"), dir: getDir(this.el), - orientation: getString(this.el, "orientation") + orientation: getString(this.el, "orientation"), + translations: parseTimerTranslations(this.el) }); }, destroyed() { diff --git a/priv/static/tooltip.mjs b/priv/static/tooltip.mjs index d81b4fea..7ce488f9 100644 --- a/priv/static/tooltip.mjs +++ b/priv/static/tooltip.mjs @@ -2,6 +2,9 @@ import { getPlacement, getPlacementStyles } from "./chunks/chunk-RJABPW5C.mjs"; +import { + readPositioningOptions +} from "./chunks/chunk-6QZYI6OY.mjs"; import { isFocusVisible, trackFocusVisible @@ -663,12 +666,20 @@ var Tooltip = class extends Component { initApi() { return this.zagConnect(connect); } + syncDom() { + this.api = this.initApi(); + this.render(); + } render() { const rootEl = this.el; - const triggerEl = rootEl.querySelector( + const triggerEls = rootEl.querySelectorAll( '[data-scope="tooltip"][data-part="trigger"]' ); - if (triggerEl) this.spreadProps(triggerEl, this.api.getTriggerProps()); + triggerEls.forEach((triggerEl) => { + const raw = triggerEl.dataset.value; + const valueProps = raw != null && raw !== "" ? { value: raw } : {}; + this.spreadProps(triggerEl, this.api.getTriggerProps(valueProps)); + }); const positionerEl = rootEl.querySelector( '[data-scope="tooltip"][data-part="positioner"]' ); @@ -687,6 +698,39 @@ var Tooltip = class extends Component { }; // hooks/tooltip.ts +function createTooltipCallbacks(el, pushEvent, liveSocket) { + const onTriggerValueChange = (details) => { + const eventName = getString(el, "onTriggerValueChange"); + if (eventName && canPushEvent(liveSocket)) { + pushEvent(eventName, { + id: el.id, + value: details.value ?? "" + }); + } + }; + const onOpenChange = (details) => { + const eventName = getString(el, "onOpenChange"); + if (eventName && canPushEvent(liveSocket)) { + pushEvent(eventName, { + id: el.id, + open: details.open + }); + } + const eventNameClient = getString(el, "onOpenChangeClient"); + if (eventNameClient) { + el.dispatchEvent( + new CustomEvent(eventNameClient, { + bubbles: true, + detail: { + id: el.id, + open: details.open + } + }) + ); + } + }; + return { onOpenChange, onTriggerValueChange }; +} function getCloseDelay(el) { const interactive = getBoolean(el, "interactive"); const raw = getNumber(el, "closeDelay"); @@ -697,11 +741,12 @@ var TooltipHook = { mounted() { const el = this.el; const pushEvent = this.pushEvent.bind(this); - const placement = getString(el, "placement"); - const positioning = placement ? { placement } : void 0; + const liveSocket = this.liveSocket; + const positioning = readPositioningOptions(el); + const callbacks = createTooltipCallbacks(el, pushEvent, liveSocket); const tooltip = new Tooltip(el, { id: el.id, - ...getBoolean(el, "controlled") ? { open: getBoolean(el, "open") } : { defaultOpen: getBoolean(el, "defaultOpen") }, + defaultOpen: getBoolean(el, "defaultOpen"), disabled: getBoolean(el, "disabled"), dir: getDir(el), openDelay: getNumber(el, "openDelay"), @@ -712,27 +757,7 @@ var TooltipHook = { closeOnPointerDown: getBoolean(el, "closeOnPointerDown"), closeOnScroll: getBoolean(el, "closeOnScroll"), interactive: getBoolean(el, "interactive"), - onOpenChange: (details) => { - const eventName = getString(el, "onOpenChange"); - if (eventName && canPushEvent(this.liveSocket)) { - pushEvent(eventName, { - id: el.id, - open: details.open - }); - } - const eventNameClient = getString(el, "onOpenChangeClient"); - if (eventNameClient) { - el.dispatchEvent( - new CustomEvent(eventNameClient, { - bubbles: true, - detail: { - id: el.id, - open: details.open - } - }) - ); - } - } + ...callbacks }); tooltip.init(); this.tooltip = tooltip; @@ -750,23 +775,28 @@ var TooltipHook = { ); }, updated() { - const placement = getString(this.el, "placement"); - const positioning = placement ? { placement } : void 0; + const el = this.el; + const pushEvent = this.pushEvent.bind(this); + const liveSocket = this.liveSocket; + const positioning = readPositioningOptions(el); + const callbacks = createTooltipCallbacks(el, pushEvent, liveSocket); this.tooltip?.updateProps({ - id: this.el.id, - ...getBoolean(this.el, "controlled") ? { open: getBoolean(this.el, "open") } : { defaultOpen: getBoolean(this.el, "defaultOpen") }, - disabled: getBoolean(this.el, "disabled"), - dir: getDir(this.el), - openDelay: getNumber(this.el, "openDelay"), - closeDelay: getCloseDelay(this.el), + id: el.id, + defaultOpen: getBoolean(el, "defaultOpen"), + disabled: getBoolean(el, "disabled"), + dir: getDir(el), + openDelay: getNumber(el, "openDelay"), + closeDelay: getCloseDelay(el), positioning, - closeOnEscape: getBoolean(this.el, "closeOnEscape"), - closeOnClick: getBoolean(this.el, "closeOnClick"), - closeOnPointerDown: getBoolean(this.el, "closeOnPointerDown"), - closeOnScroll: getBoolean(this.el, "closeOnScroll"), - interactive: getBoolean(this.el, "interactive") + closeOnEscape: getBoolean(el, "closeOnEscape"), + closeOnClick: getBoolean(el, "closeOnClick"), + closeOnPointerDown: getBoolean(el, "closeOnPointerDown"), + closeOnScroll: getBoolean(el, "closeOnScroll"), + interactive: getBoolean(el, "interactive"), + ...callbacks }); queueMicrotask(() => { + this.tooltip?.syncDom(); this.tooltip?.api.reposition?.(); }); }, diff --git a/test/components/checkbox_test.exs b/test/components/checkbox_test.exs index 7de00ab1..4ef6bb4a 100644 --- a/test/components/checkbox_test.exs +++ b/test/components/checkbox_test.exs @@ -96,7 +96,7 @@ defmodule Corex.CheckboxTest do assert html =~ ~r/data-part="control"/ assert html =~ ~r/data-part="indicator"/ assert html =~ ~r/data-part="label"/ - assert html =~ ~r/dir="ltr"/ + refute html =~ ~r/\bdir=/ assert html =~ ~r/data-orientation="horizontal"/ end diff --git a/test/components/date_picker_test.exs b/test/components/date_picker_test.exs index 07494f48..356133fa 100644 --- a/test/components/date_picker_test.exs +++ b/test/components/date_picker_test.exs @@ -179,7 +179,16 @@ defmodule Corex.DatePickerTest do assert result["data-translation"] =~ "openCalendar" end - test "props/1 merges trigger_aria_label and input_aria_label into data-translation JSON" do + test "props/1 encodes translation open_calendar, close_calendar, and input in data-translation JSON" do + base = DatePicker.default_translation() + + translation = + struct!(base, %{ + open_calendar: "Pick a date", + close_calendar: "Pick a date", + input: "Event date" + }) + assigns = %{ id: "test-dp", controlled: false, @@ -187,9 +196,7 @@ defmodule Corex.DatePickerTest do locale: "en", time_zone: "UTC", dir: "ltr", - translation: DatePicker.default_translation(), - trigger_aria_label: "Pick a date", - input_aria_label: "Event date" + translation: translation } result = Connect.props(Map.merge(default_props(), assigns)) @@ -260,8 +267,6 @@ defmodule Corex.DatePickerTest do on_open_change: nil, on_value_change_client: nil, on_open_change_client: nil, - trigger_aria_label: nil, - input_aria_label: nil, max_selected_dates: nil, translation: nil } diff --git a/test/components/floating_panel_test.exs b/test/components/floating_panel_test.exs index 7d66bdaf..fa9ceea2 100644 --- a/test/components/floating_panel_test.exs +++ b/test/components/floating_panel_test.exs @@ -10,6 +10,19 @@ defmodule Corex.FloatingPanelTest do html = render_component(&CorexTest.ComponentHelpers.render_floating_panel/1, []) assert html =~ ~r/data-scope="floating-panel"/ assert html =~ ~r/data-part="root"/ + assert html =~ "Title" + assert html =~ ~s(data-part="stage-trigger") + end + + test "omits stage trigger buttons when stage slots are absent" do + html = + render_component( + &CorexTest.ComponentHelpers.render_floating_panel_without_stage_triggers/1, + [] + ) + + assert html =~ "No stages" + refute html =~ ~s(data-part="stage-trigger") end test "renders with all attributes and custom translation" do @@ -34,10 +47,9 @@ defmodule Corex.FloatingPanelTest do close_on_escape={false} disabled={true} dir="rtl" - size={%{width: 200, height: 200}} - default_size={%{width: 300, height: 300}} - position={%{x: 10, y: 10}} - default_position={%{x: 20, y: 20}} + value_size={%{width: 200, height: 200}} + size={%{width: 300, height: 300}} + position={%{x: 20, y: 20}} min_size={%{width: 100, height: 100}} max_size={%{width: 500, height: 500}} persist_rect={true} @@ -49,8 +61,11 @@ defmodule Corex.FloatingPanelTest do on_stage_change="stage_change" translation={@translation} > - <:open_trigger>Open - <:closed_trigger>Closed + <:trigger> + Open + Closed + + <:title>Panel title <:minimize_trigger>MinBtn <:maximize_trigger>MaxBtn <:default_trigger>DefBtn @@ -68,6 +83,7 @@ defmodule Corex.FloatingPanelTest do assert html =~ "MaxBtn" assert html =~ "DefBtn" assert html =~ "ClsBtn" + assert html =~ "Panel title" assert html =~ "Panel Content" assert html =~ "aria-label=\"Min\"" assert html =~ "aria-label=\"Max\"" @@ -76,10 +92,62 @@ defmodule Corex.FloatingPanelTest do assert html =~ "data-disabled" assert html =~ "data-dir=\"rtl\"" assert html =~ ~s("width":200) and html =~ ~s("height":200) - assert html =~ ~s("x":10) and html =~ ~s("y":10) + assert html =~ ~s("x":20) and html =~ ~s("y":20) assert html =~ "data-grid-size=\"10\"" assert html =~ "data-persist-rect" end + + test "merges positioning dataset for anchor placement" do + html = + render_component( + fn assigns -> + _ = assigns + + ~H""" + + <:trigger> + Open + Closed + + <:title>T + <:close_trigger>X + <:content>C + + """ + end, + %{} + ) + + assert html =~ ~s(data-position-placement="bottom-start") + assert html =~ ~s(data-position-gutter="16") + end + + test "applies class from trigger slot to button" do + html = + render_component( + fn assigns -> + _ = assigns + + ~H""" + + <:trigger class="button button--ghost button--sm"> + Trigger label + + <:title>T + <:close_trigger>X + <:content>C + + """ + end, + %{} + ) + + assert html =~ ~s(class="button button--ghost button--sm") + assert html =~ "Trigger label" + end end describe "set_open/2" do diff --git a/test/components/number_input_test.exs b/test/components/number_input_test.exs index c80c2e0f..4cf620ba 100644 --- a/test/components/number_input_test.exs +++ b/test/components/number_input_test.exs @@ -109,7 +109,7 @@ defmodule Corex.NumberInputTest do assert html =~ "-" end - test "does not emit data-controlled" do + test "does not emit data-controlled when uncontrolled" do html = render_component( fn assigns -> @@ -127,6 +127,53 @@ defmodule Corex.NumberInputTest do refute html =~ "data-controlled" end + + test "controlled emits data-controlled and data-value" do + html = + render_component( + fn assigns -> + _ = assigns + + ~H""" + + <:decrement_trigger>- + <:increment_trigger>+ + + """ + end, + %{} + ) + + assert html =~ "data-controlled" + assert html =~ ~s(data-value="42") + refute html =~ ~s(data-default-value="42") + end + + test "field forces uncontrolled even when controlled is passed" do + changeset = + {%{}, %{value: :string}} + |> Ecto.Changeset.cast(%{"value" => "99"}, [:value]) + + form = to_form(changeset, as: :item, id: "item-form") + + html = + render_component( + fn assigns -> + _ = assigns + + ~H""" + + <:decrement_trigger>- + <:increment_trigger>+ + + """ + end, + %{form: form} + ) + + refute html =~ "data-controlled" + assert html =~ ~s(data-default-value="99") + end end describe "Connect.root/1" do diff --git a/test/components/timer_test.exs b/test/components/timer_test.exs index 3d7c60fa..2fd89710 100644 --- a/test/components/timer_test.exs +++ b/test/components/timer_test.exs @@ -1,6 +1,9 @@ defmodule Corex.TimerTest do use CorexTest.ComponentCase, async: true + import Phoenix.Component + import Corex.Timer, only: [timer: 1] + alias Corex.Timer.Connect describe "timer/1" do @@ -8,6 +11,29 @@ defmodule Corex.TimerTest do html = render_component(&CorexTest.ComponentHelpers.render_timer/1, []) assert html =~ ~r/data-scope="timer"/ assert html =~ ~r/data-part="root"/ + assert html =~ "data-auto-start" + end + + test "omits auto_start attribute when false" do + html = render_component(&CorexTest.ComponentHelpers.render_timer_paused/1, []) + refute html =~ "data-auto-start" + end + + test "omits separator markup when separator slot is absent" do + html = + render_component( + fn assigns -> + _ = assigns + + ~H""" + <.timer id="no-sep" start_ms={60_000}> + + """ + end, + %{} + ) + + refute html =~ ~s(data-part="separator") end end diff --git a/test/components/tooltip_test.exs b/test/components/tooltip_test.exs index 3c2571f2..a1f64c37 100644 --- a/test/components/tooltip_test.exs +++ b/test/components/tooltip_test.exs @@ -23,6 +23,7 @@ defmodule Corex.TooltipTest do ) assert html =~ ~s(data-scope="tooltip") + assert html =~ ~s(id="tooltip:tip-unit:popper") assert html =~ "Hover" assert html =~ "Details" assert html =~ ~s(data-part="arrow") @@ -44,6 +45,72 @@ defmodule Corex.TooltipTest do refute html =~ ~s(data-part="arrow") end + + test "renders multiple triggers with distinct ids and data-value" do + html = + render_component( + fn assigns -> + ~H""" + <.tooltip id="tip-multi" show_arrow={false}> + <:trigger value="x">A + <:trigger value="y">B + <:content>Shared + + """ + end, + %{} + ) + + assert html =~ ~s(id="tooltip:tip-multi:trigger:x") + assert html =~ ~s(id="tooltip:tip-multi:trigger:y") + assert html =~ ~s(data-value="x") + assert html =~ ~s(data-value="y") + assert html =~ "Shared" + end + + test "raises when multiple triggers omit value" do + assert_raise ArgumentError, fn -> + render_component( + fn assigns -> + ~H""" + <.tooltip id="tip-bad" show_arrow={false}> + <:trigger>A + <:trigger>B + <:content>C + + """ + end, + %{} + ) + end + end + + test "raises when multiple triggers reuse value" do + assert_raise ArgumentError, fn -> + render_component( + fn assigns -> + ~H""" + <.tooltip id="tip-dup" show_arrow={false}> + <:trigger value="same">A + <:trigger value="same">B + <:content>C + + """ + end, + %{} + ) + end + end + end + + describe "Connect.trigger_id/2" do + test "nil value uses single-trigger id suffix" do + assert Connect.trigger_id("t1", nil) == "tooltip:t1:trigger" + end + + test "value appends to id" do + assert Connect.trigger_id("t1", "v") == "tooltip:t1:trigger:v" + end end describe "Connect.props/1" do @@ -51,14 +118,25 @@ defmodule Corex.TooltipTest do m = Connect.props(%Props{ id: "id1", - controlled: true, + positioning: %Corex.Positioning{placement: "top-start"}, on_open_change: "evt" }) assert m["id"] == "id1" - assert m["data-controlled"] == "" + assert m["data-position-placement"] == "top-start" assert m["data-on-open-change"] == "evt" end + + test "maps on_trigger_value_change to data attribute" do + m = + Connect.props(%Props{ + id: "id1", + positioning: %Corex.Positioning{}, + on_trigger_value_change: "tooltip_trigger" + }) + + assert m["data-on-trigger-value-change"] == "tooltip_trigger" + end end describe "set_open/2 and set_open/3" do diff --git a/test/corex/mcp/tools/components_test.exs b/test/corex/mcp/tools/components_test.exs index a15ff893..90b2274d 100644 --- a/test/corex/mcp/tools/components_test.exs +++ b/test/corex/mcp/tools/components_test.exs @@ -10,7 +10,12 @@ defmodule Corex.MCP.Tools.ComponentsTest do end test "list_components returns encoded ids" do - assert {:ok, json} = Components.list_components(%{}) + json = + case Components.list_components(%{}) do + {:ok, j} -> j + other -> flunk("expected {:ok, json}, got #{inspect(other)}") + end + decoded = Corex.Json.decode!(json) assert is_list(decoded["components"]) assert "accordion" in decoded["components"] @@ -18,7 +23,12 @@ defmodule Corex.MCP.Tools.ComponentsTest do end test "get_component returns spec, docs, and source metadata for a known id" do - assert {:ok, json} = Components.get_component(%{"id" => "accordion"}) + json = + case Components.get_component(%{"id" => "accordion"}) do + {:ok, j} -> j + other -> flunk("expected {:ok, json}, got #{inspect(other)}") + end + decoded = Corex.Json.decode!(json) assert decoded["id"] == "accordion" assert decoded["module"] =~ "Accordion" diff --git a/test/corex/mcp/tools/installation_test.exs b/test/corex/mcp/tools/installation_test.exs index 9944f82d..ae45dd5b 100644 --- a/test/corex/mcp/tools/installation_test.exs +++ b/test/corex/mcp/tools/installation_test.exs @@ -4,7 +4,12 @@ defmodule Corex.MCP.Tools.InstallationTest do alias Corex.MCP.Tools.Installation test "installation_guide all returns both sections" do - assert {:ok, json} = Installation.installation_guide(%{}) + json = + case Installation.installation_guide(%{}) do + {:ok, j} -> j + other -> flunk("expected {:ok, json}, got #{inspect(other)}") + end + decoded = Corex.Json.decode!(json) assert decoded["scenario"] == "all" assert is_map(decoded["new_project"]) @@ -18,7 +23,12 @@ defmodule Corex.MCP.Tools.InstallationTest do end test "installation_guide new_project is scoped" do - assert {:ok, json} = Installation.installation_guide(%{"scenario" => "new_project"}) + json = + case Installation.installation_guide(%{"scenario" => "new_project"}) do + {:ok, j} -> j + other -> flunk("expected {:ok, json}, got #{inspect(other)}") + end + decoded = Corex.Json.decode!(json) assert decoded["scenario"] == "new_project" assert decoded["intent"] @@ -26,7 +36,12 @@ defmodule Corex.MCP.Tools.InstallationTest do end test "installation_guide existing_project is scoped" do - assert {:ok, json} = Installation.installation_guide(%{"scenario" => "existing_project"}) + json = + case Installation.installation_guide(%{"scenario" => "existing_project"}) do + {:ok, j} -> j + other -> flunk("expected {:ok, json}, got #{inspect(other)}") + end + decoded = Corex.Json.decode!(json) assert decoded["scenario"] == "existing_project" assert decoded["intent"] diff --git a/test/corex/point_test.exs b/test/corex/point_test.exs new file mode 100644 index 00000000..5f318451 --- /dev/null +++ b/test/corex/point_test.exs @@ -0,0 +1,23 @@ +defmodule Corex.PointTest do + use ExUnit.Case, async: true + + alias Corex.Point + + describe "to_map/1" do + test "nil" do + assert Point.to_map(nil) == nil + end + + test "struct" do + assert Point.to_map(%Point{x: 1, y: 2.5}) == %{x: 1, y: 2.5} + end + + test "map" do + assert Point.to_map(%{x: 0, y: 0}) == %{x: 0, y: 0} + end + + test "rejects invalid" do + assert_raise ArgumentError, fn -> Point.to_map(%{x: 1}) end + end + end +end diff --git a/test/corex/positioning_test.exs b/test/corex/positioning_test.exs index 451f639d..a2f242f3 100644 --- a/test/corex/positioning_test.exs +++ b/test/corex/positioning_test.exs @@ -10,6 +10,17 @@ defmodule Corex.PositioningTest do assert m["data-position-gutter"] == "12" end + test "emits offset axis keys when set" do + p = %Corex.Positioning{ + offset: %Corex.Offset{main_axis: 1, cross_axis: 2} + } + + m = Corex.Positioning.to_dataset(p) + + assert m["data-position-offset-main-axis"] == "1" + assert m["data-position-offset-cross-axis"] == "2" + end + test "empty map for nil" do assert Corex.Positioning.to_dataset(nil) == %{} end diff --git a/test/support/component_case.ex b/test/support/component_case.ex index 4e78db41..599c7373 100644 --- a/test/support/component_case.ex +++ b/test/support/component_case.ex @@ -10,13 +10,23 @@ defmodule CorexTest.ComponentCase do import CorexTest.Assertions defp find_in_html(html, selector) do - {:ok, doc} = Floki.parse_fragment(to_string(html)) - Floki.find(doc, selector) + case Floki.parse_fragment(to_string(html)) do + {:ok, doc} -> + Floki.find(doc, selector) + + {:error, reason} -> + flunk("expected HTML fragment, got #{inspect(reason)}") + end end defp text_in_html(html) do - {:ok, doc} = Floki.parse_fragment(to_string(html)) - Floki.text(doc) + case Floki.parse_fragment(to_string(html)) do + {:ok, doc} -> + Floki.text(doc) + + {:error, reason} -> + flunk("expected HTML fragment, got #{inspect(reason)}") + end end end end diff --git a/test/support/component_helpers.ex b/test/support/component_helpers.ex index e57d529e..14ce0057 100644 --- a/test/support/component_helpers.ex +++ b/test/support/component_helpers.ex @@ -294,8 +294,11 @@ defmodule CorexTest.ComponentHelpers do def render_floating_panel(assigns) do ~H""" <.floating_panel> - <:open_trigger>Open - <:closed_trigger>Closed + <:trigger> + Open + Closed + + <:title>Title <:minimize_trigger>Min <:maximize_trigger>Max <:default_trigger>Default @@ -305,6 +308,20 @@ defmodule CorexTest.ComponentHelpers do """ end + def render_floating_panel_without_stage_triggers(assigns) do + ~H""" + <.floating_panel id="fp-no-stage"> + <:trigger> + Open + Closed + + <:title>No stages + <:close_trigger>Close + <:content>Content + + """ + end + def render_listbox(assigns) do ~H""" <.listbox items={Corex.List.new([%{label: "A", id: "a"}])} /> @@ -486,6 +503,17 @@ defmodule CorexTest.ComponentHelpers do """ end + def render_timer_paused(assigns) do + ~H""" + <.timer start_ms={60_000} auto_start={false}> + <:start_trigger>Start + <:pause_trigger>Pause + <:resume_trigger>Resume + <:reset_trigger>Reset + + """ + end + def render_signature_pad(assigns) do ~H""" <.signature_pad name="sig"> diff --git a/test/support/corex_test/assertions.ex b/test/support/corex_test/assertions.ex index da6453aa..5de59975 100644 --- a/test/support/corex_test/assertions.ex +++ b/test/support/corex_test/assertions.ex @@ -3,8 +3,13 @@ defmodule CorexTest.Assertions do import ExUnit.Assertions def assert_has_data(html, selector, expected) when is_binary(html) and is_map(expected) do - {:ok, doc} = Floki.parse_fragment(html) - assert_has_data(doc, selector, expected) + case Floki.parse_fragment(html) do + {:ok, doc} -> + assert_has_data(doc, selector, expected) + + {:error, reason} -> + flunk("expected HTML fragment, got #{inspect(reason)}") + end end def assert_has_data(doc, selector, expected) when is_map(expected) do @@ -21,8 +26,13 @@ defmodule CorexTest.Assertions do end def refute_data(html, selector, attr) when is_binary(html) do - {:ok, doc} = Floki.parse_fragment(html) - refute_data(doc, selector, attr) + case Floki.parse_fragment(html) do + {:ok, doc} -> + refute_data(doc, selector, attr) + + {:error, reason} -> + flunk("expected HTML fragment, got #{inspect(reason)}") + end end def refute_data(doc, selector, attr) do