@vireo-ai/trellis-ui 0.1.34 → 0.1.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/packages/client/src/styles/recipes/selection.css +4 -1
- package/packages/client/types/assets/full-runtime.generated.d.ts +1 -1
- package/packages/client/types/components/direct-upload/contract.d.ts +9 -0
- package/packages/client/types/components/direct-upload/entry.generated.d.ts +5 -0
- package/packages/client/types/components/direct-upload/index.d.ts +17 -0
- package/packages/client/types/components/direct-upload/machine.d.ts +18 -0
- package/packages/client/types/components/direct-upload/runtime-docs.d.ts +2 -0
- package/packages/client/types/components/direct-upload/transport.d.ts +18 -0
- package/packages/client/types/components/entry.generated.d.ts +1 -0
- package/packages/client/types/core.d.ts +1 -1
- package/packages/client/types/runtime/engine/navigation.d.ts +1 -1
- package/packages/client/types/runtime/index.d.ts +1 -1
- package/packages/client/types/runtime/ui.d.ts +14 -6
- package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.css +4 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min.css +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/build-metadata.json +252 -233
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-DfhXNOeS.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-motion-ikQPX2KS.js.map → capability-motion-DfhXNOeS.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-sortable-2JKu59uA.js → capability-sortable-BRJcBFiv.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-sortable-2JKu59uA.js.map → capability-sortable-BRJcBFiv.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-DgDJeD0_.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-DgDJeD0_.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B_xTkYSB.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B_xTkYSB.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-WUm64hMS.js → entry.generated-BpFSxftY.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-WUm64hMS.js.map → entry.generated-BpFSxftY.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CM26DIxy.js → entry.generated-BzwiO3Z7.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CM26DIxy.js.map → entry.generated-BzwiO3Z7.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BgxTv7ov.js → entry.generated-CCaDoOMG.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BgxTv7ov.js.map → entry.generated-CCaDoOMG.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DkHtVCQf.js → entry.generated-CMQJQDmL.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DkHtVCQf.js.map → entry.generated-CMQJQDmL.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DXWS-S4C.js → entry.generated-CX-gPcvm.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DXWS-S4C.js.map → entry.generated-CX-gPcvm.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DhtIfdSe.js → entry.generated-DNtvOM3X.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DhtIfdSe.js.map → entry.generated-DNtvOM3X.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CaBUZe9u.js → entry.generated-D_rl42NB.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CaBUZe9u.js.map → entry.generated-D_rl42NB.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-Ch-bdMyP.js → entry.generated-DjK5lRgV.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-Ch-bdMyP.js.map → entry.generated-DjK5lRgV.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-B654Bqgy.js → entry.generated-bGDH9x5v.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-B654Bqgy.js.map → entry.generated-bGDH9x5v.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DBmmM-XT.js → entry.generated-c7D1ZIve.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DBmmM-XT.js.map → entry.generated-c7D1ZIve.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{motion-D8nzvbpd.js → motion-CCqo-hWP.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{motion-D8nzvbpd.js.map → motion-CCqo-hWP.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-Cpl1SRYT.js +4 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-Cpl1SRYT.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/direct-upload.js +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/file-upload.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js.map +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js.map +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/logical-entry-manifest.json +88 -87
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.js +9 -9
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min.js +9 -9
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-motion-ikQPX2KS.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-Cedv-Tv-.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-Cedv-Tv-.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/stream-DVqpCtdQ.js +0 -4
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/stream-DVqpCtdQ.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-ZuNy_Awl.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-ZuNy_Awl.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry.generated-CaBUZe9u.js","names":[],"sources":["../../../../../../../../client/src/components/tabs/contract.ts","../../../../../../../../client/src/components/tabs/machine.ts","../../../../../../../../client/src/components/tabs/index.ts","../../../../../../../../client/src/components/tabs/entry.generated.ts"],"sourcesContent":["import {bool, oneOf, string, type SchemaToProps} from '../../runtime';\nimport {\n INTERACTION_TREATMENTS,\n LAYOUT_SPACES,\n ORIENTATIONS,\n SELECTION_COLORS,\n type ControlSize,\n type LayoutSpace,\n type Orientation,\n} from '../common';\n\nconst TABS_ACTIVATIONS = ['manual', 'automatic'] as const;\nconst TABS_ORIENTATIONS = ORIENTATIONS;\nconst TABS_LIST_ORIENTATIONS = ['inherit', ...TABS_ORIENTATIONS] as const;\nconst TABS_LIST_GAPS = ['auto', ...LAYOUT_SPACES] as const;\nconst TABS_VARIANTS = ['subtle', 'line', 'segmented', 'pills'] as const;\nconst TABS_SIZES = ['sm', 'md'] as const satisfies readonly ControlSize[];\nconst TABS_COLORS = SELECTION_COLORS;\nconst TABS_INTERACTIONS = INTERACTION_TREATMENTS;\n\nconst tabsSchema = {\n id: string.default('ui-tabs'),\n animate: bool,\n defaultValue: string,\n value: string,\n activation: oneOf(TABS_ACTIVATIONS, 'manual'),\n orientation: oneOf(TABS_ORIENTATIONS, 'horizontal'),\n gap: oneOf(TABS_LIST_GAPS, 'auto'),\n loop: bool.default(true),\n panels: string,\n class: string,\n};\n\ntype TabsActivation = typeof TABS_ACTIVATIONS[number];\ntype TabsOrientation = Orientation;\ntype TabsGap = 'auto' | LayoutSpace;\ntype TabsListOrientation = typeof TABS_LIST_ORIENTATIONS[number];\ntype TabsListGap = TabsGap;\ntype TabsVariant = typeof TABS_VARIANTS[number];\ntype TabsSize = typeof TABS_SIZES[number];\ntype TabsColor = typeof TABS_COLORS[number];\ntype TabsInteraction = typeof TABS_INTERACTIONS[number];\ntype TabsProps = SchemaToProps<typeof tabsSchema>;\n\nexport {\n TABS_ACTIVATIONS,\n TABS_COLORS,\n TABS_INTERACTIONS,\n TABS_LIST_ORIENTATIONS,\n TABS_LIST_GAPS,\n TABS_ORIENTATIONS,\n TABS_SIZES,\n TABS_VARIANTS,\n tabsSchema,\n};\nexport type {\n TabsActivation,\n TabsColor,\n TabsGap,\n TabsListOrientation,\n TabsInteraction,\n TabsListGap,\n TabsOrientation,\n TabsProps,\n TabsSize,\n TabsVariant,\n};\n","import {\n createMachine,\n propsChanged,\n propsChangedEvent,\n type Machine,\n type MachineEventObject,\n type MachineScope,\n} from '../../runtime/state-machine';\nimport {defineHook, type TransitionHookDefinition} from '../../runtime/transition-coordinator';\nimport type {TabsProps} from './contract';\n\ntype TabsContext = {\n selection: {value: string};\n change: {previousValue: string; value: string; panelId: string};\n collection: {values: string[]; disabledValues: string[]; panelIds: Record<string, string>};\n};\n\ntype TabsTransitionData = TabsContext['change'];\n\ntype TabsMachineEffects = {\n prepareSwitch(scope: MachineScope<TabsContext, TabsProps>): void;\n finishSwitch(scope: MachineScope<TabsContext, TabsProps>): void;\n syncDom(scope: MachineScope<TabsContext, TabsProps>): void;\n syncProps(scope: MachineScope<TabsContext, TabsProps>): void;\n syncItems(scope: MachineScope<TabsContext, TabsProps>): void;\n};\n\ntype CreateTabsMachineOptions = {\n props: TabsProps;\n context: TabsContext;\n effects: TabsMachineEffects;\n};\n\nconst switchingHook = defineHook({\n name: 'switching',\n state: 'switching',\n project: (snapshot) => snapshot.context.change,\n onDone: 'SWITCH_DONE',\n onError: 'SWITCH_ERROR',\n sends: {\n select: (value: string) => ({type: 'SELECT', value}),\n },\n} satisfies TransitionHookDefinition<TabsContext, TabsProps, TabsTransitionData, 'switching'>);\n\nconst tabsHooks = [switchingHook] as const;\n\nconst stringValue = (value: unknown): string => typeof value === 'string' ? value : '';\nconst stringValues = (value: unknown): string[] => Array.isArray(value)\n ? value.filter((item): item is string => typeof item === 'string')\n : [];\nconst panelIds = (value: unknown): Record<string, string> => {\n if (!value || typeof value !== 'object' || Array.isArray(value)) return {};\n return Object.fromEntries(Object.entries(value).filter((entry): entry is [string, string] => (\n typeof entry[1] === 'string'\n )));\n};\n\nconst nextProps = (scope: MachineScope<TabsContext, TabsProps>): TabsProps => (\n propsChangedEvent<TabsProps>(scope.event)?.props ?? scope.props\n);\n\nconst nextCollection = (scope: MachineScope<TabsContext, TabsProps>): TabsContext['collection'] => {\n if (scope.event.type !== 'ITEMS_CHANGED') return scope.context.collection;\n return {\n values: stringValues(scope.event.values),\n disabledValues: stringValues(scope.event.disabledValues),\n panelIds: panelIds(scope.event.panelIds),\n };\n};\n\nconst normalizeValue = (value: string, collection: TabsContext['collection']): string => {\n if (value && collection.values.includes(value) && !collection.disabledValues.includes(value)) return value;\n return collection.values.find((item) => !collection.disabledValues.includes(item)) ?? '';\n};\n\nconst nextValue = (scope: MachineScope<TabsContext, TabsProps>): string => {\n const collection = nextCollection(scope);\n if (scope.event.type === 'SELECT') {\n const requested = stringValue(scope.event.value);\n return requested && collection.values.includes(requested) && !collection.disabledValues.includes(requested)\n ? requested\n : scope.context.selection.value;\n }\n if (scope.event.type === 'PROPS_CHANGED' && propsChanged<TabsProps>(scope.event, 'value')) {\n return normalizeValue(nextProps(scope).value, collection);\n }\n return normalizeValue(scope.context.selection.value, collection);\n};\n\nconst selectionChanges = (scope: MachineScope<TabsContext, TabsProps>): boolean => (\n scope.context.selection.value !== nextValue(scope)\n);\n\nconst transition = (target: 'switching', effects: 'prepareSwitch') => ({\n target,\n guard: selectionChanges,\n reduce: 'applySwitch',\n effects,\n} as const);\n\nconst createTabsMachine = ({\n props,\n context,\n effects,\n}: CreateTabsMachineOptions): Machine<TabsContext, TabsProps> => createMachine<TabsContext, TabsProps>({\n initial: 'stable',\n on: {\n DOM_INVALIDATED: {effects: 'syncDom'},\n },\n states: {\n stable: {\n tags: ['stable'],\n on: {\n SELECT: transition('switching', 'prepareSwitch'),\n PROPS_CHANGED: [\n transition('switching', 'prepareSwitch'),\n {reduce: 'reconcile', effects: 'syncProps'},\n ],\n ITEMS_CHANGED: [\n transition('switching', 'prepareSwitch'),\n {reduce: 'reconcile', effects: 'syncItems'},\n ],\n },\n },\n switching: {\n tags: ['switching', 'transitioning'],\n on: {\n SWITCH_DONE: {target: 'stable', effects: 'finishSwitch'},\n SWITCH_ERROR: {target: 'stable', effects: 'finishSwitch'},\n SELECT: transition('switching', 'prepareSwitch'),\n PROPS_CHANGED: [\n transition('switching', 'prepareSwitch'),\n {reduce: 'reconcile', effects: 'syncProps'},\n ],\n ITEMS_CHANGED: [\n transition('switching', 'prepareSwitch'),\n {reduce: 'reconcile', effects: 'syncItems'},\n ],\n },\n },\n },\n}, {\n context,\n props,\n reducers: {\n applySwitch: (scope) => {\n const collection = nextCollection(scope);\n const value = nextValue(scope);\n return {\n props: nextProps(scope),\n context: {\n ...scope.context,\n selection: {value},\n change: {\n previousValue: scope.context.selection.value,\n value,\n panelId: collection.panelIds[value] ?? '',\n },\n collection,\n },\n };\n },\n reconcile: (scope) => ({\n props: nextProps(scope),\n context: {\n ...scope.context,\n collection: nextCollection(scope),\n selection: {value: nextValue(scope)},\n },\n }),\n },\n effects: {\n prepareSwitch: effects.prepareSwitch,\n finishSwitch: effects.finishSwitch,\n syncDom: effects.syncDom,\n syncProps: effects.syncProps,\n syncItems: effects.syncItems,\n },\n});\n\nexport {createTabsMachine, tabsHooks};\nexport type {\n CreateTabsMachineOptions,\n TabsContext,\n TabsMachineEffects,\n TabsTransitionData,\n};\n","import type Alpine from 'alpinejs';\nimport {animate} from 'motion/mini';\nimport {spring} from 'motion';\n\nimport {\n type AlpineMachine,\n type BindingObject,\n createAlpineMachine,\n createCollectionNavigation,\n type CollectionNavigation,\n defineAlpineData,\n type MachineSnapshot,\n observeSemanticChanges,\n type TransitionForHook,\n type TrellisAlpineComponent,\n} from '@client/runtime';\nimport {\n shouldReduceMotion,\n speeds,\n type MotionHandle,\n type MotionTransitionSubject,\n} from '@client/motion';\nimport {noopHandle} from '@client/motion/animate';\nimport {ownMotion} from '@client/motion/owned';\nimport {asBool, dispatch, isRtl, setPresence} from '@client/utils';\nimport {\n tabsSchema,\n type TabsOrientation,\n type TabsProps,\n type TabsSize,\n type TabsVariant,\n} from './contract';\nimport {\n createTabsMachine,\n type TabsContext,\n tabsHooks,\n type TabsTransitionData,\n} from './machine';\n\ntype TabsTransitionName = (typeof tabsHooks)[number]['name'];\ntype TabsTransition<TName extends TabsTransitionName = TabsTransitionName> = TransitionForHook<\n Extract<(typeof tabsHooks)[number], {name: TName}>,\n HTMLElement\n>;\n\ntype TabsTabElement = HTMLButtonElement | HTMLAnchorElement;\n\ntype TabsItem = {\n tab: TabsTabElement;\n value: string;\n disabled: boolean;\n panel: HTMLElement | null;\n};\n\ntype TabsChangeDetail = {value: string};\ntype TabsActivateDetail = {value: string; panelId: string};\n\n/**\n * Public Alpine API for `ui.tabs`.\n *\n * @public\n */\ninterface UiTabsApi {\n /** Currently selected tab value. */\n readonly value: string;\n\n /** Select an enabled tab that belongs to this Tabs owner. */\n select(value: string): void;\n\n /** Whether `value` is currently selected. */\n isActive(value: string): boolean;\n}\n\ntype TabsData = AlpineMachine<TabsContext, TabsProps, typeof tabsHooks> & UiTabsApi & {\n readonly root: BindingObject;\n init(): void;\n destroy(): void;\n transitionIndicator(transition: TabsMotionTransition): MotionHandle | Promise<void>;\n};\n\ntype TabsMotionTransition = MotionTransitionSubject & Readonly<{\n el: unknown;\n event: {motion?: boolean};\n props: {animate: boolean};\n}>;\n\nconst DEFAULT_OWNER = 'ui-tabs';\nconst stateFor = (active: boolean): 'active' | 'inactive' => active ? 'active' : 'inactive';\nconst safeIdPart = (value: string): string => {\n const sanitized = value.trim().toLowerCase().replace(/[^a-z0-9_-]+/g, '-').replace(/^-+|-+$/g, '');\n return sanitized || 'tab';\n};\nconst tabIdFor = (owner: string, value: string): string => `${owner}-tab-${safeIdPart(value)}`;\nconst panelIdFor = (owner: string, value: string): string => `${owner}-panel-${safeIdPart(value)}`;\nconst isTabElement = (element: Element | null): element is TabsTabElement => (\n element instanceof HTMLButtonElement || element instanceof HTMLAnchorElement\n);\nconst uniqueElements = <T extends HTMLElement>(elements: T[]): T[] => Array.from(new Set(elements));\n\nconst UiTabs = (): TrellisAlpineComponent<TabsData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let collection: CollectionNavigation | null = null;\n let disconnectObserver: (() => void) | null = null;\n let resizeObserver: ResizeObserver | null = null;\n let pointerFocusedTab: TabsTabElement | null = null;\n let pointerFocusReset: number | undefined;\n let connectingProps: TabsProps | null = null;\n\n const root = (): HTMLElement & Alpine.ElementWithXAttributes => {\n if (!rootEl) throw new Error('Tabs has not been initialized.');\n return rootEl;\n };\n const owner = (): string => root().id || root().dataset.id || root().dataset.owner || DEFAULT_OWNER;\n const owns = (element: Element): boolean => element.closest('[data-ui-tabs]') === root();\n const boolDataset = (value: string | undefined): boolean => asBool({value});\n\n const primaryList = (): HTMLElement | null => Array.from(\n root().querySelectorAll<HTMLElement>('[data-ui-tabs-list]'),\n ).find(owns) ?? null;\n\n const listVariant = (list?: HTMLElement | null): TabsVariant => {\n const value = (list ?? primaryList())?.dataset.variant;\n if (value === 'subtle' || value === 'segmented' || value === 'pills') return value;\n return 'line';\n };\n const listSize = (list?: HTMLElement | null): TabsSize => (\n (list ?? primaryList())?.dataset.size === 'sm' ? 'sm' : 'md'\n );\n const listOrientation = (list?: HTMLElement | null): TabsOrientation => {\n const value = (list ?? primaryList())?.dataset.orientation;\n return value === 'vertical' || value === 'horizontal' ? value : currentProps().orientation;\n };\n\n const panels = (): HTMLElement[] => {\n const ownerId = owner();\n const detached = (panel: HTMLElement): boolean => (\n panel.dataset.uiTabsOwner === ownerId || panel.dataset.owner === ownerId\n );\n const found = Array.from(root().querySelectorAll<HTMLElement>('[data-ui-tabs-panel]')).filter(owns);\n const selector = currentProps().panels;\n if (selector) {\n const target = document.querySelector<HTMLElement>(selector);\n if (target) found.push(...Array.from(\n target.querySelectorAll<HTMLElement>('[data-ui-tabs-panel]'),\n ).filter(detached));\n }\n found.push(...Array.from(document.querySelectorAll<HTMLElement>(\n `[data-ui-tabs-panel][data-ui-tabs-owner=\"${CSS.escape(ownerId)}\"]`,\n )).filter(detached));\n return uniqueElements(found);\n };\n\n const panelForValue = (value: string): HTMLElement | null => (\n panels().find((panel) => panel.dataset.value === value) ?? null\n );\n\n const items = (): TabsItem[] => Array.from(\n root().querySelectorAll<HTMLElement>('[data-ui-tabs-tab]'),\n ).filter(owns).map((element, index) => {\n if (!isTabElement(element)) return null;\n element.dataset.value ||= `tab-${index + 1}`;\n return {\n tab: element,\n value: element.dataset.value,\n disabled: boolDataset(element.dataset.disabled) || element.hasAttribute('disabled'),\n panel: panelForValue(element.dataset.value),\n } satisfies TabsItem;\n }).filter((item): item is TabsItem => item !== null);\n\n const itemForValue = (value: string): TabsItem | null => items().find((item) => item.value === value) ?? null;\n const itemFrom = (target: EventTarget | null): TabsItem | null => {\n if (!(target instanceof Element)) return null;\n const tab = target.closest<HTMLElement>('[data-ui-tabs-tab]');\n return tab && owns(tab) ? items().find((item) => item.tab === tab) ?? null : null;\n };\n\n const collectionContext = (): TabsContext['collection'] => {\n const records = items();\n return {\n values: records.map((item) => item.value),\n disabledValues: records.filter((item) => item.disabled).map((item) => item.value),\n panelIds: Object.fromEntries(records.map((item) => [\n item.value,\n item.panel?.id || panelIdFor(item.tab.dataset.uiTabsOwner || item.tab.dataset.owner || owner(), item.value),\n ])),\n };\n };\n\n const initialContext = (props: TabsProps): TabsContext => {\n const collectionState = collectionContext();\n const authoredTab = items().find((item) => (\n boolDataset(item.tab.dataset.selected) || item.tab.getAttribute('aria-selected') === 'true'\n ));\n const authoredPanel = panels().find((panel) => boolDataset(panel.dataset.selected));\n const requested = props.value || props.defaultValue || authoredTab?.value || authoredPanel?.dataset.value || '';\n const value = requested\n && collectionState.values.includes(requested)\n && !collectionState.disabledValues.includes(requested)\n ? requested\n : collectionState.values.find((item) => !collectionState.disabledValues.includes(item)) ?? '';\n return {\n selection: {value},\n change: {previousValue: '', value, panelId: collectionState.panelIds[value] ?? ''},\n collection: collectionState,\n };\n };\n\n const currentProps = (): Readonly<TabsProps> => (\n connectingProps ?? bridge.getCommittedSnapshot().props\n );\n const currentContext = (): Readonly<TabsContext> => bridge.getCommittedSnapshot().context;\n\n const activeValue = (): string => currentContext().selection.value;\n const activeTabStop = (): TabsTabElement | null => {\n const records = items();\n const focused = records.find((item) => document.activeElement === item.tab || item.tab.dataset.active === 'true');\n return focused?.tab ?? records.find((item) => item.value === activeValue())?.tab ?? null;\n };\n\n const indicatorFor = (list: HTMLElement): HTMLElement | null => (\n list.querySelector<HTMLElement>(':scope > [data-ui-tabs-indicator]')\n );\n const indicatorFrame = (tab: Element): {indicator: HTMLElement; styles: {\n height: number;\n left: number;\n top: number;\n width: number;\n }} | null => {\n if (!(tab instanceof HTMLElement)) return null;\n const list = tab.closest<HTMLElement>('[data-ui-tabs-list]');\n const indicator = list ? indicatorFor(list) : null;\n if (!list || !indicator) return null;\n indicator.hidden = false;\n const listRect = list.getBoundingClientRect();\n const tabRect = tab.getBoundingClientRect();\n const vertical = list.dataset.orientation === 'vertical';\n const line = list.dataset.variant === 'line';\n const width = line && vertical ? 2 : tabRect.width;\n const height = line && !vertical ? 2 : tabRect.height;\n const separatorWidth = line\n ? Number.parseFloat(getComputedStyle(list).getPropertyValue('--border-width-edge-separator')) || 1\n : 0;\n const targetLeft = line && vertical\n ? listRect.left - ((width - separatorWidth) / 2)\n : tabRect.left;\n const targetTop = line && !vertical\n ? listRect.bottom - ((height + separatorWidth) / 2)\n : tabRect.top;\n return {\n indicator,\n styles: {\n height,\n left: targetLeft - listRect.left,\n top: targetTop - listRect.top,\n width,\n },\n };\n };\n const positionIndicator = (list: HTMLElement): void => {\n const indicator = indicatorFor(list);\n if (!indicator) return;\n const active = items().find((item) => (\n item.value === activeValue() && item.tab.closest('[data-ui-tabs-list]') === list\n ));\n if (!active) {\n indicator.hidden = true;\n list.dataset.uiTabsReady = '';\n return;\n }\n const frame = indicatorFrame(active.tab);\n if (frame) {\n frame.indicator.style.height = `${frame.styles.height}px`;\n frame.indicator.style.left = `${frame.styles.left}px`;\n frame.indicator.style.top = `${frame.styles.top}px`;\n frame.indicator.style.width = `${frame.styles.width}px`;\n }\n list.dataset.uiTabsReady = '';\n };\n\n const syncRoot = (): void => {\n const props = currentProps();\n if (!root().id && props.id) root().id = props.id;\n root().dataset.orientation = props.orientation;\n root().dataset.activation = props.activation;\n root().dataset.value = activeValue();\n setPresence({el: root(), attr: 'data-animate', present: props.animate});\n };\n\n const syncList = (list: HTMLElement): void => {\n const orientation = listOrientation(list);\n list.setAttribute('role', 'tablist');\n list.dataset.orientation = orientation;\n if (orientation === 'vertical') list.setAttribute('aria-orientation', 'vertical');\n else list.removeAttribute('aria-orientation');\n };\n\n const syncTab = (item: TabsItem): void => {\n const active = item.value === activeValue();\n const list = item.tab.closest<HTMLElement>('[data-ui-tabs-list]');\n const orientation = listOrientation(list);\n const variant = listVariant(list);\n const size = listSize(list);\n const ownerId = item.tab.dataset.uiTabsOwner || item.tab.dataset.owner || owner();\n const selectedIcon = item.tab.querySelector<HTMLElement>('[data-ui-tabs-tab-selected-icon]');\n const state = stateFor(active);\n const tabStop = activeTabStop();\n\n item.tab.id ||= tabIdFor(ownerId, item.value);\n item.tab.dataset.state = state;\n item.tab.dataset.orientation = orientation;\n item.tab.dataset.variant = variant;\n item.tab.dataset.size = size;\n item.tab.setAttribute('role', 'tab');\n item.tab.setAttribute('aria-selected', active ? 'true' : 'false');\n item.tab.setAttribute('aria-controls', item.panel?.id || panelIdFor(ownerId, item.value));\n item.tab.tabIndex = item.tab === tabStop ? 0 : -1;\n setPresence({el: item.tab, attr: 'data-selected', present: active});\n if (selectedIcon) selectedIcon.style.visibility = active ? 'visible' : 'hidden';\n\n setPresence({el: item.tab, attr: 'data-disabled', present: item.disabled});\n if (item.disabled) {\n item.tab.setAttribute('aria-disabled', 'true');\n item.tab.tabIndex = -1;\n } else item.tab.removeAttribute('aria-disabled');\n if (item.tab instanceof HTMLButtonElement) item.tab.disabled = item.disabled;\n };\n\n const syncPanel = (panel: HTMLElement): void => {\n const value = panel.dataset.value || '';\n const active = value === activeValue();\n const ownerId = panel.dataset.uiTabsOwner || panel.dataset.owner || owner();\n const id = panelIdFor(ownerId, value);\n if (value && !panel.id) panel.id = id;\n if (value && !panel.hasAttribute('data-ui-key')) panel.setAttribute('data-ui-key', panel.id || id);\n panel.dataset.state = stateFor(active);\n panel.dataset.orientation = currentProps().orientation;\n panel.setAttribute('role', 'tabpanel');\n panel.setAttribute('aria-labelledby', tabIdFor(ownerId, value));\n if (!panel.hasAttribute('tabindex')) panel.tabIndex = 0;\n panel.hidden = !active;\n setPresence({el: panel, attr: 'data-selected', present: active});\n };\n\n const syncAll = ({indicator = false}: {indicator?: boolean} = {}): void => {\n syncRoot();\n const tabList = primaryList();\n if (tabList) syncList(tabList);\n items().forEach(syncTab);\n panels().forEach(syncPanel);\n if (indicator && tabList) positionIndicator(tabList);\n };\n\n const emitChange = (): void => {\n dispatch<TabsChangeDetail>({el: root(), name: 'ui:change', detail: {value: activeValue()}});\n };\n const emitActivate = (tab: TabsTabElement, value: string): void => {\n dispatch<TabsActivateDetail>({\n el: tab,\n name: 'ui:tabs:activate',\n detail: {value, panelId: panelForValue(value)?.id ?? ''},\n });\n };\n const syncDom = (): void => {\n syncAll({indicator: true});\n setupObservers();\n setupResizeObserver();\n };\n\n const bridge = createAlpineMachine({\n schema: tabsSchema,\n hooks: tabsHooks,\n resolveTransitionElement: ({data}) => itemForValue((data as TabsTransitionData).value)?.tab ?? null,\n createMachine: ({props}) => {\n connectingProps = props;\n const context = initialContext(props);\n connectingProps = null;\n return createTabsMachine({\n props,\n context,\n effects: {\n prepareSwitch: ({event}) => {\n syncAll();\n if (event.type === 'SELECT') emitChange();\n },\n finishSwitch: () => syncAll(),\n syncDom,\n syncProps: syncDom,\n syncItems: () => {\n syncAll({indicator: true});\n setupResizeObserver();\n },\n },\n });\n },\n });\n\n const collectionNav = (): CollectionNavigation => {\n if (!collection) throw new Error('Tabs navigation has not been initialized.');\n return collection;\n };\n\n const selectValue = (value: string, {tab, motion = true}: {\n tab?: TabsTabElement;\n motion?: boolean;\n } = {}): void => {\n const previous = activeValue();\n bridge.send({type: 'SELECT', value, motion});\n if (activeValue() !== previous && tab) emitActivate(tab, activeValue());\n };\n\n const handleClick = (event: Event): void => {\n const item = itemFrom(event.target);\n if (!item) return;\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n const motion = !(event instanceof MouseEvent) || event.detail > 0;\n selectValue(item.value, {tab: item.tab, motion});\n };\n\n const handlePointerDown = (event: Event): void => {\n pointerFocusedTab = itemFrom(event.target)?.tab ?? null;\n window.clearTimeout(pointerFocusReset);\n pointerFocusReset = window.setTimeout(() => {\n pointerFocusedTab = null;\n pointerFocusReset = undefined;\n });\n };\n\n const handleFocus = (event: Event): void => {\n const item = itemFrom(event.target);\n if (!item || event.target !== item.tab || item.disabled) return;\n collectionNav().activateItem({el: item.tab});\n if (currentProps().activation === 'automatic' && pointerFocusedTab !== item.tab) {\n selectValue(item.value, {tab: item.tab, motion: false});\n } else syncAll();\n };\n\n const handleKeydown = (event: KeyboardEvent): void => {\n const item = itemFrom(event.target);\n if (!item || event.target !== item.tab) return;\n if (event.key === ' ' && item.tab instanceof HTMLAnchorElement) {\n event.preventDefault();\n selectValue(item.value, {tab: item.tab, motion: false});\n return;\n }\n const orientation = listOrientation(item.tab.closest<HTMLElement>('[data-ui-tabs-list]'));\n if (event.key === 'Home') {\n event.preventDefault();\n collectionNav().focusFirst();\n return;\n }\n if (event.key === 'End') {\n event.preventDefault();\n collectionNav().focusLast();\n return;\n }\n if (orientation === 'vertical') {\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n collectionNav().focusNext();\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n collectionNav().focusPrevious();\n }\n return;\n }\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n if (isRtl({el: root()})) collectionNav().focusPrevious();\n else collectionNav().focusNext();\n } else if (event.key === 'ArrowLeft') {\n event.preventDefault();\n if (isRtl({el: root()})) collectionNav().focusNext();\n else collectionNav().focusPrevious();\n }\n };\n\n const sendItemsChanged = (): void => {\n const next = collectionContext();\n bridge.send({type: 'ITEMS_CHANGED', ...next});\n };\n\n const setupObservers = (): void => {\n disconnectObserver?.();\n const targets = [root()];\n const selector = currentProps().panels;\n if (selector) {\n const detached = document.querySelector<HTMLElement>(selector);\n if (detached) targets.push(detached);\n }\n disconnectObserver = observeSemanticChanges({\n targets: uniqueElements(targets),\n read: collectionContext,\n onChange: sendItemsChanged,\n observer: {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: [\n 'data-value',\n 'data-disabled',\n 'disabled',\n 'data-ui-tabs-owner',\n 'data-owner',\n 'data-variant',\n 'data-size',\n 'data-orientation',\n 'data-gap',\n 'id',\n ],\n },\n });\n };\n\n const setupResizeObserver = (): void => {\n resizeObserver?.disconnect();\n if (typeof ResizeObserver === 'undefined') return;\n resizeObserver = new ResizeObserver(() => {\n if (!rootEl) return;\n const list = primaryList();\n if (list) positionIndicator(list);\n });\n const list = primaryList();\n if (list) resizeObserver.observe(list);\n items().forEach((item) => resizeObserver?.observe(item.tab));\n };\n\n let component!: TrellisAlpineComponent<TabsData>;\n component = {\n ...bridge,\n get value(): string {\n return this.snapshot.current?.context.selection.value ?? '';\n },\n init(): void {\n rootEl = this.$el;\n bridge.connect(this.$el, this.snapshot);\n collection = createCollectionNavigation({\n root,\n itemSelector: '[data-ui-tabs-tab]',\n isDisabled: (element) => !owns(element)\n || boolDataset(element.dataset.disabled)\n || element.hasAttribute('disabled'),\n loop: () => currentProps().loop,\n });\n syncAll({indicator: true});\n setupObservers();\n setupResizeObserver();\n },\n destroy(): void {\n disconnectObserver?.();\n disconnectObserver = null;\n resizeObserver?.disconnect();\n resizeObserver = null;\n window.clearTimeout(pointerFocusReset);\n pointerFocusedTab = null;\n pointerFocusReset = undefined;\n bridge.disconnect();\n collection = null;\n rootEl = null;\n },\n transitionIndicator(transition: TabsMotionTransition): MotionHandle | Promise<void> {\n if (!(transition.el instanceof Element)) return Promise.resolve();\n const frame = indicatorFrame(transition.el);\n if (!frame) return Promise.resolve();\n if (!transition.props.animate || transition.event.motion === false || shouldReduceMotion()) {\n positionIndicator(transition.el.closest<HTMLElement>('[data-ui-tabs-list]') as HTMLElement);\n return noopHandle();\n }\n\n return ownMotion(frame.indicator, () => animate(frame.indicator, frame.styles, {\n type: spring,\n ...speeds.moderate,\n }), new Set(['layout']), transition.signal);\n },\n get root(): BindingObject {\n return {\n 'data-ui-tabs': '',\n ':data-orientation': () => currentProps().orientation,\n ':data-activation': () => currentProps().activation,\n ':data-animate': () => currentProps().animate ? '' : undefined,\n '@pointerdown': handlePointerDown,\n '@click': handleClick,\n '@focusin': handleFocus,\n '@keydown': (event: Event) => {\n if (event instanceof KeyboardEvent) handleKeydown(event);\n },\n };\n },\n select(value: string): void {\n selectValue(value);\n },\n isActive(value: string): boolean {\n return this.snapshot.current?.context.selection.value === value;\n },\n };\n\n return component;\n};\n\nconst registerTabs = defineAlpineData('UiTabs', UiTabs);\n\nexport {registerTabs, UiTabs};\nexport type {TabsActivateDetail, TabsChangeDetail, TabsTransition, UiTabsApi};\n","// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\nimport {registerMotionCapability} from '../../capabilities/motion';\nimport {registerTabs as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerTabs = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerMotionCapability(AlpineInstance);\n registerComponent(AlpineInstance);\n};\n\nexport {registerTabs};\nexport default registerTabs;\nexport * from './index';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"entry.generated-D_rl42NB.js","names":[],"sources":["../../../../../../../../client/src/components/tabs/contract.ts","../../../../../../../../client/src/components/tabs/machine.ts","../../../../../../../../client/src/components/tabs/index.ts","../../../../../../../../client/src/components/tabs/entry.generated.ts"],"sourcesContent":["import {bool, oneOf, string, type SchemaToProps} from '../../runtime';\nimport {\n INTERACTION_TREATMENTS,\n LAYOUT_SPACES,\n ORIENTATIONS,\n SELECTION_COLORS,\n type ControlSize,\n type LayoutSpace,\n type Orientation,\n} from '../common';\n\nconst TABS_ACTIVATIONS = ['manual', 'automatic'] as const;\nconst TABS_ORIENTATIONS = ORIENTATIONS;\nconst TABS_LIST_ORIENTATIONS = ['inherit', ...TABS_ORIENTATIONS] as const;\nconst TABS_LIST_GAPS = ['auto', ...LAYOUT_SPACES] as const;\nconst TABS_VARIANTS = ['subtle', 'line', 'segmented', 'pills'] as const;\nconst TABS_SIZES = ['sm', 'md'] as const satisfies readonly ControlSize[];\nconst TABS_COLORS = SELECTION_COLORS;\nconst TABS_INTERACTIONS = INTERACTION_TREATMENTS;\n\nconst tabsSchema = {\n id: string.default('ui-tabs'),\n animate: bool,\n defaultValue: string,\n value: string,\n activation: oneOf(TABS_ACTIVATIONS, 'manual'),\n orientation: oneOf(TABS_ORIENTATIONS, 'horizontal'),\n gap: oneOf(TABS_LIST_GAPS, 'auto'),\n loop: bool.default(true),\n panels: string,\n class: string,\n};\n\ntype TabsActivation = typeof TABS_ACTIVATIONS[number];\ntype TabsOrientation = Orientation;\ntype TabsGap = 'auto' | LayoutSpace;\ntype TabsListOrientation = typeof TABS_LIST_ORIENTATIONS[number];\ntype TabsListGap = TabsGap;\ntype TabsVariant = typeof TABS_VARIANTS[number];\ntype TabsSize = typeof TABS_SIZES[number];\ntype TabsColor = typeof TABS_COLORS[number];\ntype TabsInteraction = typeof TABS_INTERACTIONS[number];\ntype TabsProps = SchemaToProps<typeof tabsSchema>;\n\nexport {\n TABS_ACTIVATIONS,\n TABS_COLORS,\n TABS_INTERACTIONS,\n TABS_LIST_ORIENTATIONS,\n TABS_LIST_GAPS,\n TABS_ORIENTATIONS,\n TABS_SIZES,\n TABS_VARIANTS,\n tabsSchema,\n};\nexport type {\n TabsActivation,\n TabsColor,\n TabsGap,\n TabsListOrientation,\n TabsInteraction,\n TabsListGap,\n TabsOrientation,\n TabsProps,\n TabsSize,\n TabsVariant,\n};\n","import {\n createMachine,\n propsChanged,\n propsChangedEvent,\n type Machine,\n type MachineEventObject,\n type MachineScope,\n} from '../../runtime/state-machine';\nimport {defineHook, type TransitionHookDefinition} from '../../runtime/transition-coordinator';\nimport type {TabsProps} from './contract';\n\ntype TabsContext = {\n selection: {value: string};\n change: {previousValue: string; value: string; panelId: string};\n collection: {values: string[]; disabledValues: string[]; panelIds: Record<string, string>};\n};\n\ntype TabsTransitionData = TabsContext['change'];\n\ntype TabsMachineEffects = {\n prepareSwitch(scope: MachineScope<TabsContext, TabsProps>): void;\n finishSwitch(scope: MachineScope<TabsContext, TabsProps>): void;\n syncDom(scope: MachineScope<TabsContext, TabsProps>): void;\n syncProps(scope: MachineScope<TabsContext, TabsProps>): void;\n syncItems(scope: MachineScope<TabsContext, TabsProps>): void;\n};\n\ntype CreateTabsMachineOptions = {\n props: TabsProps;\n context: TabsContext;\n effects: TabsMachineEffects;\n};\n\nconst switchingHook = defineHook({\n name: 'switching',\n state: 'switching',\n project: (snapshot) => snapshot.context.change,\n onDone: 'SWITCH_DONE',\n onError: 'SWITCH_ERROR',\n sends: {\n select: (value: string) => ({type: 'SELECT', value}),\n },\n} satisfies TransitionHookDefinition<TabsContext, TabsProps, TabsTransitionData, 'switching'>);\n\nconst tabsHooks = [switchingHook] as const;\n\nconst stringValue = (value: unknown): string => typeof value === 'string' ? value : '';\nconst stringValues = (value: unknown): string[] => Array.isArray(value)\n ? value.filter((item): item is string => typeof item === 'string')\n : [];\nconst panelIds = (value: unknown): Record<string, string> => {\n if (!value || typeof value !== 'object' || Array.isArray(value)) return {};\n return Object.fromEntries(Object.entries(value).filter((entry): entry is [string, string] => (\n typeof entry[1] === 'string'\n )));\n};\n\nconst nextProps = (scope: MachineScope<TabsContext, TabsProps>): TabsProps => (\n propsChangedEvent<TabsProps>(scope.event)?.props ?? scope.props\n);\n\nconst nextCollection = (scope: MachineScope<TabsContext, TabsProps>): TabsContext['collection'] => {\n if (scope.event.type !== 'ITEMS_CHANGED') return scope.context.collection;\n return {\n values: stringValues(scope.event.values),\n disabledValues: stringValues(scope.event.disabledValues),\n panelIds: panelIds(scope.event.panelIds),\n };\n};\n\nconst normalizeValue = (value: string, collection: TabsContext['collection']): string => {\n if (value && collection.values.includes(value) && !collection.disabledValues.includes(value)) return value;\n return collection.values.find((item) => !collection.disabledValues.includes(item)) ?? '';\n};\n\nconst nextValue = (scope: MachineScope<TabsContext, TabsProps>): string => {\n const collection = nextCollection(scope);\n if (scope.event.type === 'SELECT') {\n const requested = stringValue(scope.event.value);\n return requested && collection.values.includes(requested) && !collection.disabledValues.includes(requested)\n ? requested\n : scope.context.selection.value;\n }\n if (scope.event.type === 'PROPS_CHANGED' && propsChanged<TabsProps>(scope.event, 'value')) {\n return normalizeValue(nextProps(scope).value, collection);\n }\n return normalizeValue(scope.context.selection.value, collection);\n};\n\nconst selectionChanges = (scope: MachineScope<TabsContext, TabsProps>): boolean => (\n scope.context.selection.value !== nextValue(scope)\n);\n\nconst transition = (target: 'switching', effects: 'prepareSwitch') => ({\n target,\n guard: selectionChanges,\n reduce: 'applySwitch',\n effects,\n} as const);\n\nconst createTabsMachine = ({\n props,\n context,\n effects,\n}: CreateTabsMachineOptions): Machine<TabsContext, TabsProps> => createMachine<TabsContext, TabsProps>({\n initial: 'stable',\n on: {\n DOM_INVALIDATED: {effects: 'syncDom'},\n },\n states: {\n stable: {\n tags: ['stable'],\n on: {\n SELECT: transition('switching', 'prepareSwitch'),\n PROPS_CHANGED: [\n transition('switching', 'prepareSwitch'),\n {reduce: 'reconcile', effects: 'syncProps'},\n ],\n ITEMS_CHANGED: [\n transition('switching', 'prepareSwitch'),\n {reduce: 'reconcile', effects: 'syncItems'},\n ],\n },\n },\n switching: {\n tags: ['switching', 'transitioning'],\n on: {\n SWITCH_DONE: {target: 'stable', effects: 'finishSwitch'},\n SWITCH_ERROR: {target: 'stable', effects: 'finishSwitch'},\n SELECT: transition('switching', 'prepareSwitch'),\n PROPS_CHANGED: [\n transition('switching', 'prepareSwitch'),\n {reduce: 'reconcile', effects: 'syncProps'},\n ],\n ITEMS_CHANGED: [\n transition('switching', 'prepareSwitch'),\n {reduce: 'reconcile', effects: 'syncItems'},\n ],\n },\n },\n },\n}, {\n context,\n props,\n reducers: {\n applySwitch: (scope) => {\n const collection = nextCollection(scope);\n const value = nextValue(scope);\n return {\n props: nextProps(scope),\n context: {\n ...scope.context,\n selection: {value},\n change: {\n previousValue: scope.context.selection.value,\n value,\n panelId: collection.panelIds[value] ?? '',\n },\n collection,\n },\n };\n },\n reconcile: (scope) => ({\n props: nextProps(scope),\n context: {\n ...scope.context,\n collection: nextCollection(scope),\n selection: {value: nextValue(scope)},\n },\n }),\n },\n effects: {\n prepareSwitch: effects.prepareSwitch,\n finishSwitch: effects.finishSwitch,\n syncDom: effects.syncDom,\n syncProps: effects.syncProps,\n syncItems: effects.syncItems,\n },\n});\n\nexport {createTabsMachine, tabsHooks};\nexport type {\n CreateTabsMachineOptions,\n TabsContext,\n TabsMachineEffects,\n TabsTransitionData,\n};\n","import type Alpine from 'alpinejs';\nimport {animate} from 'motion/mini';\nimport {spring} from 'motion';\n\nimport {\n type AlpineMachine,\n type BindingObject,\n createAlpineMachine,\n createCollectionNavigation,\n type CollectionNavigation,\n defineAlpineData,\n type MachineSnapshot,\n observeSemanticChanges,\n type TransitionForHook,\n type TrellisAlpineComponent,\n} from '@client/runtime';\nimport {\n shouldReduceMotion,\n speeds,\n type MotionHandle,\n type MotionTransitionSubject,\n} from '@client/motion';\nimport {noopHandle} from '@client/motion/animate';\nimport {ownMotion} from '@client/motion/owned';\nimport {asBool, dispatch, isRtl, setPresence} from '@client/utils';\nimport {\n tabsSchema,\n type TabsOrientation,\n type TabsProps,\n type TabsSize,\n type TabsVariant,\n} from './contract';\nimport {\n createTabsMachine,\n type TabsContext,\n tabsHooks,\n type TabsTransitionData,\n} from './machine';\n\ntype TabsTransitionName = (typeof tabsHooks)[number]['name'];\ntype TabsTransition<TName extends TabsTransitionName = TabsTransitionName> = TransitionForHook<\n Extract<(typeof tabsHooks)[number], {name: TName}>,\n HTMLElement\n>;\n\ntype TabsTabElement = HTMLButtonElement | HTMLAnchorElement;\n\ntype TabsItem = {\n tab: TabsTabElement;\n value: string;\n disabled: boolean;\n panel: HTMLElement | null;\n};\n\ntype TabsChangeDetail = {value: string};\ntype TabsActivateDetail = {value: string; panelId: string};\n\n/**\n * Public Alpine API for `ui.tabs`.\n *\n * @public\n */\ninterface UiTabsApi {\n /** Currently selected tab value. */\n readonly value: string;\n\n /** Select an enabled tab that belongs to this Tabs owner. */\n select(value: string): void;\n\n /** Whether `value` is currently selected. */\n isActive(value: string): boolean;\n}\n\ntype TabsData = AlpineMachine<TabsContext, TabsProps, typeof tabsHooks> & UiTabsApi & {\n readonly root: BindingObject;\n init(): void;\n destroy(): void;\n transitionIndicator(transition: TabsMotionTransition): MotionHandle | Promise<void>;\n};\n\ntype TabsMotionTransition = MotionTransitionSubject & Readonly<{\n el: unknown;\n event: {motion?: boolean};\n props: {animate: boolean};\n}>;\n\nconst DEFAULT_OWNER = 'ui-tabs';\nconst stateFor = (active: boolean): 'active' | 'inactive' => active ? 'active' : 'inactive';\nconst safeIdPart = (value: string): string => {\n const sanitized = value.trim().toLowerCase().replace(/[^a-z0-9_-]+/g, '-').replace(/^-+|-+$/g, '');\n return sanitized || 'tab';\n};\nconst tabIdFor = (owner: string, value: string): string => `${owner}-tab-${safeIdPart(value)}`;\nconst panelIdFor = (owner: string, value: string): string => `${owner}-panel-${safeIdPart(value)}`;\nconst isTabElement = (element: Element | null): element is TabsTabElement => (\n element instanceof HTMLButtonElement || element instanceof HTMLAnchorElement\n);\nconst uniqueElements = <T extends HTMLElement>(elements: T[]): T[] => Array.from(new Set(elements));\n\nconst UiTabs = (): TrellisAlpineComponent<TabsData> => {\n let rootEl: (HTMLElement & Alpine.ElementWithXAttributes) | null = null;\n let collection: CollectionNavigation | null = null;\n let disconnectObserver: (() => void) | null = null;\n let resizeObserver: ResizeObserver | null = null;\n let pointerFocusedTab: TabsTabElement | null = null;\n let pointerFocusReset: number | undefined;\n let connectingProps: TabsProps | null = null;\n\n const root = (): HTMLElement & Alpine.ElementWithXAttributes => {\n if (!rootEl) throw new Error('Tabs has not been initialized.');\n return rootEl;\n };\n const owner = (): string => root().id || root().dataset.id || root().dataset.owner || DEFAULT_OWNER;\n const owns = (element: Element): boolean => element.closest('[data-ui-tabs]') === root();\n const boolDataset = (value: string | undefined): boolean => asBool({value});\n\n const primaryList = (): HTMLElement | null => Array.from(\n root().querySelectorAll<HTMLElement>('[data-ui-tabs-list]'),\n ).find(owns) ?? null;\n\n const listVariant = (list?: HTMLElement | null): TabsVariant => {\n const value = (list ?? primaryList())?.dataset.variant;\n if (value === 'subtle' || value === 'segmented' || value === 'pills') return value;\n return 'line';\n };\n const listSize = (list?: HTMLElement | null): TabsSize => (\n (list ?? primaryList())?.dataset.size === 'sm' ? 'sm' : 'md'\n );\n const listOrientation = (list?: HTMLElement | null): TabsOrientation => {\n const value = (list ?? primaryList())?.dataset.orientation;\n return value === 'vertical' || value === 'horizontal' ? value : currentProps().orientation;\n };\n\n const panels = (): HTMLElement[] => {\n const ownerId = owner();\n const detached = (panel: HTMLElement): boolean => (\n panel.dataset.uiTabsOwner === ownerId || panel.dataset.owner === ownerId\n );\n const found = Array.from(root().querySelectorAll<HTMLElement>('[data-ui-tabs-panel]')).filter(owns);\n const selector = currentProps().panels;\n if (selector) {\n const target = document.querySelector<HTMLElement>(selector);\n if (target) found.push(...Array.from(\n target.querySelectorAll<HTMLElement>('[data-ui-tabs-panel]'),\n ).filter(detached));\n }\n found.push(...Array.from(document.querySelectorAll<HTMLElement>(\n `[data-ui-tabs-panel][data-ui-tabs-owner=\"${CSS.escape(ownerId)}\"]`,\n )).filter(detached));\n return uniqueElements(found);\n };\n\n const panelForValue = (value: string): HTMLElement | null => (\n panels().find((panel) => panel.dataset.value === value) ?? null\n );\n\n const items = (): TabsItem[] => Array.from(\n root().querySelectorAll<HTMLElement>('[data-ui-tabs-tab]'),\n ).filter(owns).map((element, index) => {\n if (!isTabElement(element)) return null;\n element.dataset.value ||= `tab-${index + 1}`;\n return {\n tab: element,\n value: element.dataset.value,\n disabled: boolDataset(element.dataset.disabled) || element.hasAttribute('disabled'),\n panel: panelForValue(element.dataset.value),\n } satisfies TabsItem;\n }).filter((item): item is TabsItem => item !== null);\n\n const itemForValue = (value: string): TabsItem | null => items().find((item) => item.value === value) ?? null;\n const itemFrom = (target: EventTarget | null): TabsItem | null => {\n if (!(target instanceof Element)) return null;\n const tab = target.closest<HTMLElement>('[data-ui-tabs-tab]');\n return tab && owns(tab) ? items().find((item) => item.tab === tab) ?? null : null;\n };\n\n const collectionContext = (): TabsContext['collection'] => {\n const records = items();\n return {\n values: records.map((item) => item.value),\n disabledValues: records.filter((item) => item.disabled).map((item) => item.value),\n panelIds: Object.fromEntries(records.map((item) => [\n item.value,\n item.panel?.id || panelIdFor(item.tab.dataset.uiTabsOwner || item.tab.dataset.owner || owner(), item.value),\n ])),\n };\n };\n\n const initialContext = (props: TabsProps): TabsContext => {\n const collectionState = collectionContext();\n const authoredTab = items().find((item) => (\n boolDataset(item.tab.dataset.selected) || item.tab.getAttribute('aria-selected') === 'true'\n ));\n const authoredPanel = panels().find((panel) => boolDataset(panel.dataset.selected));\n const requested = props.value || props.defaultValue || authoredTab?.value || authoredPanel?.dataset.value || '';\n const value = requested\n && collectionState.values.includes(requested)\n && !collectionState.disabledValues.includes(requested)\n ? requested\n : collectionState.values.find((item) => !collectionState.disabledValues.includes(item)) ?? '';\n return {\n selection: {value},\n change: {previousValue: '', value, panelId: collectionState.panelIds[value] ?? ''},\n collection: collectionState,\n };\n };\n\n const currentProps = (): Readonly<TabsProps> => (\n connectingProps ?? bridge.getCommittedSnapshot().props\n );\n const currentContext = (): Readonly<TabsContext> => bridge.getCommittedSnapshot().context;\n\n const activeValue = (): string => currentContext().selection.value;\n const activeTabStop = (): TabsTabElement | null => {\n const records = items();\n const focused = records.find((item) => document.activeElement === item.tab || item.tab.dataset.active === 'true');\n return focused?.tab ?? records.find((item) => item.value === activeValue())?.tab ?? null;\n };\n\n const indicatorFor = (list: HTMLElement): HTMLElement | null => (\n list.querySelector<HTMLElement>(':scope > [data-ui-tabs-indicator]')\n );\n const indicatorFrame = (tab: Element): {indicator: HTMLElement; styles: {\n height: number;\n left: number;\n top: number;\n width: number;\n }} | null => {\n if (!(tab instanceof HTMLElement)) return null;\n const list = tab.closest<HTMLElement>('[data-ui-tabs-list]');\n const indicator = list ? indicatorFor(list) : null;\n if (!list || !indicator) return null;\n indicator.hidden = false;\n const listRect = list.getBoundingClientRect();\n const tabRect = tab.getBoundingClientRect();\n const vertical = list.dataset.orientation === 'vertical';\n const line = list.dataset.variant === 'line';\n const width = line && vertical ? 2 : tabRect.width;\n const height = line && !vertical ? 2 : tabRect.height;\n const separatorWidth = line\n ? Number.parseFloat(getComputedStyle(list).getPropertyValue('--border-width-edge-separator')) || 1\n : 0;\n const targetLeft = line && vertical\n ? listRect.left - ((width - separatorWidth) / 2)\n : tabRect.left;\n const targetTop = line && !vertical\n ? listRect.bottom - ((height + separatorWidth) / 2)\n : tabRect.top;\n return {\n indicator,\n styles: {\n height,\n left: targetLeft - listRect.left,\n top: targetTop - listRect.top,\n width,\n },\n };\n };\n const positionIndicator = (list: HTMLElement): void => {\n const indicator = indicatorFor(list);\n if (!indicator) return;\n const active = items().find((item) => (\n item.value === activeValue() && item.tab.closest('[data-ui-tabs-list]') === list\n ));\n if (!active) {\n indicator.hidden = true;\n list.dataset.uiTabsReady = '';\n return;\n }\n const frame = indicatorFrame(active.tab);\n if (frame) {\n frame.indicator.style.height = `${frame.styles.height}px`;\n frame.indicator.style.left = `${frame.styles.left}px`;\n frame.indicator.style.top = `${frame.styles.top}px`;\n frame.indicator.style.width = `${frame.styles.width}px`;\n }\n list.dataset.uiTabsReady = '';\n };\n\n const syncRoot = (): void => {\n const props = currentProps();\n if (!root().id && props.id) root().id = props.id;\n root().dataset.orientation = props.orientation;\n root().dataset.activation = props.activation;\n root().dataset.value = activeValue();\n setPresence({el: root(), attr: 'data-animate', present: props.animate});\n };\n\n const syncList = (list: HTMLElement): void => {\n const orientation = listOrientation(list);\n list.setAttribute('role', 'tablist');\n list.dataset.orientation = orientation;\n if (orientation === 'vertical') list.setAttribute('aria-orientation', 'vertical');\n else list.removeAttribute('aria-orientation');\n };\n\n const syncTab = (item: TabsItem): void => {\n const active = item.value === activeValue();\n const list = item.tab.closest<HTMLElement>('[data-ui-tabs-list]');\n const orientation = listOrientation(list);\n const variant = listVariant(list);\n const size = listSize(list);\n const ownerId = item.tab.dataset.uiTabsOwner || item.tab.dataset.owner || owner();\n const selectedIcon = item.tab.querySelector<HTMLElement>('[data-ui-tabs-tab-selected-icon]');\n const state = stateFor(active);\n const tabStop = activeTabStop();\n\n item.tab.id ||= tabIdFor(ownerId, item.value);\n item.tab.dataset.state = state;\n item.tab.dataset.orientation = orientation;\n item.tab.dataset.variant = variant;\n item.tab.dataset.size = size;\n item.tab.setAttribute('role', 'tab');\n item.tab.setAttribute('aria-selected', active ? 'true' : 'false');\n item.tab.setAttribute('aria-controls', item.panel?.id || panelIdFor(ownerId, item.value));\n item.tab.tabIndex = item.tab === tabStop ? 0 : -1;\n setPresence({el: item.tab, attr: 'data-selected', present: active});\n if (selectedIcon) selectedIcon.style.visibility = active ? 'visible' : 'hidden';\n\n setPresence({el: item.tab, attr: 'data-disabled', present: item.disabled});\n if (item.disabled) {\n item.tab.setAttribute('aria-disabled', 'true');\n item.tab.tabIndex = -1;\n } else item.tab.removeAttribute('aria-disabled');\n if (item.tab instanceof HTMLButtonElement) item.tab.disabled = item.disabled;\n };\n\n const syncPanel = (panel: HTMLElement): void => {\n const value = panel.dataset.value || '';\n const active = value === activeValue();\n const ownerId = panel.dataset.uiTabsOwner || panel.dataset.owner || owner();\n const id = panelIdFor(ownerId, value);\n if (value && !panel.id) panel.id = id;\n if (value && !panel.hasAttribute('data-ui-key')) panel.setAttribute('data-ui-key', panel.id || id);\n panel.dataset.state = stateFor(active);\n panel.dataset.orientation = currentProps().orientation;\n panel.setAttribute('role', 'tabpanel');\n panel.setAttribute('aria-labelledby', tabIdFor(ownerId, value));\n if (!panel.hasAttribute('tabindex')) panel.tabIndex = 0;\n panel.hidden = !active;\n setPresence({el: panel, attr: 'data-selected', present: active});\n };\n\n const syncAll = ({indicator = false}: {indicator?: boolean} = {}): void => {\n syncRoot();\n const tabList = primaryList();\n if (tabList) syncList(tabList);\n items().forEach(syncTab);\n panels().forEach(syncPanel);\n if (indicator && tabList) positionIndicator(tabList);\n };\n\n const emitChange = (): void => {\n dispatch<TabsChangeDetail>({el: root(), name: 'ui:change', detail: {value: activeValue()}});\n };\n const emitActivate = (tab: TabsTabElement, value: string): void => {\n dispatch<TabsActivateDetail>({\n el: tab,\n name: 'ui:tabs:activate',\n detail: {value, panelId: panelForValue(value)?.id ?? ''},\n });\n };\n const syncDom = (): void => {\n syncAll({indicator: true});\n setupObservers();\n setupResizeObserver();\n };\n\n const bridge = createAlpineMachine({\n schema: tabsSchema,\n hooks: tabsHooks,\n resolveTransitionElement: ({data}) => itemForValue((data as TabsTransitionData).value)?.tab ?? null,\n createMachine: ({props}) => {\n connectingProps = props;\n const context = initialContext(props);\n connectingProps = null;\n return createTabsMachine({\n props,\n context,\n effects: {\n prepareSwitch: ({event}) => {\n syncAll();\n if (event.type === 'SELECT') emitChange();\n },\n finishSwitch: () => syncAll(),\n syncDom,\n syncProps: syncDom,\n syncItems: () => {\n syncAll({indicator: true});\n setupResizeObserver();\n },\n },\n });\n },\n });\n\n const collectionNav = (): CollectionNavigation => {\n if (!collection) throw new Error('Tabs navigation has not been initialized.');\n return collection;\n };\n\n const selectValue = (value: string, {tab, motion = true}: {\n tab?: TabsTabElement;\n motion?: boolean;\n } = {}): void => {\n const previous = activeValue();\n bridge.send({type: 'SELECT', value, motion});\n if (activeValue() !== previous && tab) emitActivate(tab, activeValue());\n };\n\n const handleClick = (event: Event): void => {\n const item = itemFrom(event.target);\n if (!item) return;\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n const motion = !(event instanceof MouseEvent) || event.detail > 0;\n selectValue(item.value, {tab: item.tab, motion});\n };\n\n const handlePointerDown = (event: Event): void => {\n pointerFocusedTab = itemFrom(event.target)?.tab ?? null;\n window.clearTimeout(pointerFocusReset);\n pointerFocusReset = window.setTimeout(() => {\n pointerFocusedTab = null;\n pointerFocusReset = undefined;\n });\n };\n\n const handleFocus = (event: Event): void => {\n const item = itemFrom(event.target);\n if (!item || event.target !== item.tab || item.disabled) return;\n collectionNav().activateItem({el: item.tab});\n if (currentProps().activation === 'automatic' && pointerFocusedTab !== item.tab) {\n selectValue(item.value, {tab: item.tab, motion: false});\n } else syncAll();\n };\n\n const handleKeydown = (event: KeyboardEvent): void => {\n const item = itemFrom(event.target);\n if (!item || event.target !== item.tab) return;\n if (event.key === ' ' && item.tab instanceof HTMLAnchorElement) {\n event.preventDefault();\n selectValue(item.value, {tab: item.tab, motion: false});\n return;\n }\n const orientation = listOrientation(item.tab.closest<HTMLElement>('[data-ui-tabs-list]'));\n if (event.key === 'Home') {\n event.preventDefault();\n collectionNav().focusFirst();\n return;\n }\n if (event.key === 'End') {\n event.preventDefault();\n collectionNav().focusLast();\n return;\n }\n if (orientation === 'vertical') {\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n collectionNav().focusNext();\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n collectionNav().focusPrevious();\n }\n return;\n }\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n if (isRtl({el: root()})) collectionNav().focusPrevious();\n else collectionNav().focusNext();\n } else if (event.key === 'ArrowLeft') {\n event.preventDefault();\n if (isRtl({el: root()})) collectionNav().focusNext();\n else collectionNav().focusPrevious();\n }\n };\n\n const sendItemsChanged = (): void => {\n const next = collectionContext();\n bridge.send({type: 'ITEMS_CHANGED', ...next});\n };\n\n const setupObservers = (): void => {\n disconnectObserver?.();\n const targets = [root()];\n const selector = currentProps().panels;\n if (selector) {\n const detached = document.querySelector<HTMLElement>(selector);\n if (detached) targets.push(detached);\n }\n disconnectObserver = observeSemanticChanges({\n targets: uniqueElements(targets),\n read: collectionContext,\n onChange: sendItemsChanged,\n observer: {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: [\n 'data-value',\n 'data-disabled',\n 'disabled',\n 'data-ui-tabs-owner',\n 'data-owner',\n 'data-variant',\n 'data-size',\n 'data-orientation',\n 'data-gap',\n 'id',\n ],\n },\n });\n };\n\n const setupResizeObserver = (): void => {\n resizeObserver?.disconnect();\n if (typeof ResizeObserver === 'undefined') return;\n resizeObserver = new ResizeObserver(() => {\n if (!rootEl) return;\n const list = primaryList();\n if (list) positionIndicator(list);\n });\n const list = primaryList();\n if (list) resizeObserver.observe(list);\n items().forEach((item) => resizeObserver?.observe(item.tab));\n };\n\n let component!: TrellisAlpineComponent<TabsData>;\n component = {\n ...bridge,\n get value(): string {\n return this.snapshot.current?.context.selection.value ?? '';\n },\n init(): void {\n rootEl = this.$el;\n bridge.connect(this.$el, this.snapshot);\n collection = createCollectionNavigation({\n root,\n itemSelector: '[data-ui-tabs-tab]',\n isDisabled: (element) => !owns(element)\n || boolDataset(element.dataset.disabled)\n || element.hasAttribute('disabled'),\n loop: () => currentProps().loop,\n });\n syncAll({indicator: true});\n setupObservers();\n setupResizeObserver();\n },\n destroy(): void {\n disconnectObserver?.();\n disconnectObserver = null;\n resizeObserver?.disconnect();\n resizeObserver = null;\n window.clearTimeout(pointerFocusReset);\n pointerFocusedTab = null;\n pointerFocusReset = undefined;\n bridge.disconnect();\n collection = null;\n rootEl = null;\n },\n transitionIndicator(transition: TabsMotionTransition): MotionHandle | Promise<void> {\n if (!(transition.el instanceof Element)) return Promise.resolve();\n const frame = indicatorFrame(transition.el);\n if (!frame) return Promise.resolve();\n if (!transition.props.animate || transition.event.motion === false || shouldReduceMotion()) {\n positionIndicator(transition.el.closest<HTMLElement>('[data-ui-tabs-list]') as HTMLElement);\n return noopHandle();\n }\n\n return ownMotion(frame.indicator, () => animate(frame.indicator, frame.styles, {\n type: spring,\n ...speeds.moderate,\n }), new Set(['layout']), transition.signal);\n },\n get root(): BindingObject {\n return {\n 'data-ui-tabs': '',\n ':data-orientation': () => currentProps().orientation,\n ':data-activation': () => currentProps().activation,\n ':data-animate': () => currentProps().animate ? '' : undefined,\n '@pointerdown': handlePointerDown,\n '@click': handleClick,\n '@focusin': handleFocus,\n '@keydown': (event: Event) => {\n if (event instanceof KeyboardEvent) handleKeydown(event);\n },\n };\n },\n select(value: string): void {\n selectValue(value);\n },\n isActive(value: string): boolean {\n return this.snapshot.current?.context.selection.value === value;\n },\n };\n\n return component;\n};\n\nconst registerTabs = defineAlpineData('UiTabs', UiTabs);\n\nexport {registerTabs, UiTabs};\nexport type {TabsActivateDetail, TabsChangeDetail, TabsTransition, UiTabsApi};\n","// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nimport type {Alpine as AlpineType} from 'alpinejs';\nimport {registerMotionCapability} from '../../capabilities/motion';\nimport {registerTabs as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerTabs = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerMotionCapability(AlpineInstance);\n registerComponent(AlpineInstance);\n};\n\nexport {registerTabs};\nexport default registerTabs;\nexport * from './index';\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as e,d as t,f as n,g as r,l as i,m as a,o,u as s}from"./motion-D8nzvbpd.js";import{t as c}from"./capability-motion-ikQPX2KS.js";import{a as l,f as u,l as d,n as f,u as ee}from"./codecs-Cb1ns_47.js";import{r as p,t as m}from"./dom-qAeVl7dc.js";import{i as h,t as te}from"./alpine-machine-BS13dbK4.js";import{t as g}from"./alpine-data-CytyCyfk.js";import{n as _,t as v}from"./styles-TfvwVPGw.js";import{t as y}from"./merge-bindings-C8ewA_FD.js";import{t as b}from"./machine-Dqut4h89.js";import{t as ne}from"./dismissable-layer-BROE-Ln2.js";import{o as re,r as ie}from"./focus-scope-DtaPVNl5.js";import{n as ae,t as oe}from"./scroll-lock-DOw7dmi1.js";import{D as x,O as S,u as C}from"./common-BOd_thC-.js";import{t as w}from"./capability-resizable-C6LKIbpv.js";var T=e=>{let t=getComputedStyle(e).getPropertyValue(`--ui-shell-sidebar-breakpoint`),n=Number.parseFloat(t);return Number.isFinite(n)?n:1/0},E=[`left`,`right`],D=[`side`,`top`],O=[`none`,`mobile`,`desktop`,`both`],k=[`toggle`,`open`,`close`,`stash`,`expand`],A=[`a`,`button`],j=[`ghost`,`surface`],M=[`neutral`,`accent`],N=x,P=C,F={id:u.default(`ui-sidebar`),placement:d(D,`side`),side:d(E,`left`),surface:d(N,`inherit`),elevation:d(P,`none`),drawerElevation:d(P,`2`),divider:f.default(!0),sticky:f.default(!0),collapse:d(O,`mobile`),open:f,stashed:f,persist:f.default(!0),edgeReveal:f.default(!0),resizable:f,class:u};d(A,`a`),d(j,`ghost`),d(M,`neutral`),f.default(!0);var I={target:u,icon:u.default(`side_panel`),label:u.default(`Toggle sidebar`),action:d(k,`toggle`),class:u},L=({context:e})=>({mode:e.responsive.mode,presentation:e.transition.presentation,width:e.layout.width,height:e.layout.height}),se=[h({name:`opening`,state:`opening`,project:L,onDone:`OPENING_DONE`,onError:`OPENING_ERROR`}),h({name:`closing`,state:`closing`,project:L,onDone:`CLOSING_DONE`,onError:`CLOSING_ERROR`})],R=(e,t)=>typeof e.target==`string`?e.target:t,z=e=>e.presentation===`layout`?`layout`:`drawer`,ce=({props:e,mode:t,desktopStashed:n,effects:r})=>{let i=t===`mobile`?e.open?`mobileOpen`:`mobileClosed`:e.placement===`top`?`desktopTop`:n?`desktopStashed`:`desktopExpanded`,a={target:`opening`,reduce:`beginOpen`,effects:`prepareOpen`},o={target:`closing`,reduce:`beginClose`,effects:`prepareClose`},s={reduce:`replaceProps`,effects:`syncProps`};return b({initial:i,on:{MODE:[{target:`desktopTop`,guard:`toTop`,reduce:`setMode`,effects:`sync`},{target:`desktopDrawer`,guard:`toDesktopDrawer`,reduce:`setMode`,effects:`sync`},{target:`desktopStashed`,guard:`toDesktopStashed`,reduce:`setMode`,effects:`sync`},{target:`desktopExpanded`,guard:`toDesktop`,reduce:`setMode`,effects:`sync`},{target:`mobileOpen`,guard:`toMobileOpen`,reduce:`setMode`,effects:`sync`},{target:`mobileClosed`,reduce:`setMode`,effects:`sync`}],RESIZE:{reduce:`resize`,effects:`sync`}},states:{mobileClosed:{tags:[`mobile`,`closed`],on:{OPEN:a,EXPAND:a,PROPS_CHANGED:s}},mobileOpen:{tags:[`mobile`,`visible`,`expanded`,`open`],on:{CLOSE:o,STASH:o,TOGGLE:o,PROPS_CHANGED:s}},desktopExpanded:{tags:[`desktop`,`visible`,`expanded`,`open`,`layout`],on:{CLOSE:o,STASH:o,TOGGLE:o,OPEN:{},EXPAND:{},PROPS_CHANGED:s}},desktopStashed:{tags:[`desktop`,`stashed`,`closed`],on:{OPEN:a,EXPAND:a,TOGGLE:a,PROPS_CHANGED:s}},desktopDrawer:{tags:[`desktop`,`stashed`,`visible`,`expanded`,`open`,`drawer`],on:{CLOSE:o,STASH:o,TOGGLE:o,EXPAND:a,PROPS_CHANGED:s}},desktopTop:{tags:[`desktop`,`top`,`visible`,`expanded`,`open`,`layout`],on:{PROPS_CHANGED:s}},opening:{tags:[`visible`,`expanded`,`transitioning`],on:{OPENING_DONE:[{target:`mobileOpen`,guard:`targetsMobileOpen`,effects:`finishOpen`},{target:`desktopDrawer`,guard:`targetsDesktopDrawer`,effects:`finishOpen`},{target:`desktopTop`,guard:`targetsDesktopTop`,effects:`finishOpen`},{target:`desktopExpanded`,effects:`finishOpen`}],OPENING_ERROR:[{target:`mobileOpen`,guard:`targetsMobileOpen`,effects:`finishOpen`},{target:`desktopDrawer`,guard:`targetsDesktopDrawer`,effects:`finishOpen`},{target:`desktopTop`,guard:`targetsDesktopTop`,effects:`finishOpen`},{target:`desktopExpanded`,effects:`finishOpen`}],CLOSE:o,STASH:o,TOGGLE:o,PROPS_CHANGED:s}},closing:{tags:[`visible`,`transitioning`],on:{CLOSING_DONE:[{target:`mobileClosed`,guard:`targetsMobileClosed`,effects:`finishClose`},{target:`desktopStashed`,effects:`finishClose`}],CLOSING_ERROR:[{target:`mobileClosed`,guard:`targetsMobileClosed`,effects:`finishClose`},{target:`desktopStashed`,effects:`finishClose`}],OPEN:a,EXPAND:a,TOGGLE:a,PROPS_CHANGED:s}}}},{props:e,context:{responsive:{mode:t},layout:{desktopStashed:n,desktopDrawerOpen:!1,width:`var(--spacing-sidebar-width)`,height:``},transition:{target:i,presentation:i===`desktopExpanded`||i===`desktopTop`?`layout`:`drawer`}},reducers:{beginOpen:({context:e,event:t})=>{let n=R(t,`mobileOpen`);return{context:{...e,layout:{...e.layout,desktopStashed:n===`desktopDrawer`?!0:n===`desktopExpanded`?!1:e.layout.desktopStashed,desktopDrawerOpen:n===`desktopDrawer`||n===`mobileOpen`&&e.layout.desktopStashed},transition:{target:n,presentation:z(t)}}}},beginClose:({context:e,event:t})=>{let n=R(t,`mobileClosed`),r=n===`desktopStashed`||n===`mobileClosed`&&e.layout.desktopStashed;return{context:{...e,layout:{...e.layout,desktopStashed:n===`desktopStashed`?!0:e.layout.desktopStashed,desktopDrawerOpen:r?!1:e.layout.desktopDrawerOpen},transition:{target:n,presentation:z(t)}}}},setMode:({context:e,event:t})=>({context:{...e,responsive:{mode:t.mode===`desktop`?`desktop`:`mobile`}}}),replaceProps:({context:e,event:t})=>({props:t.props,context:e}),resize:({context:e,event:t})=>({context:{...e,layout:{...e.layout,width:typeof t.width==`string`?t.width:e.layout.width,height:typeof t.height==`string`?t.height:e.layout.height}}})},guards:{toTop:({event:e})=>e.mode===`desktop`&&e.placement===`top`,toDesktopDrawer:({event:e})=>e.mode===`desktop`&&e.stashed===!0&&e.open===!0,toDesktopStashed:({event:e})=>e.mode===`desktop`&&e.stashed===!0,toDesktop:({event:e})=>e.mode===`desktop`,toMobileOpen:({event:e})=>e.mode===`mobile`&&e.open===!0,targetsMobileOpen:({context:e})=>e.transition.target===`mobileOpen`,targetsMobileClosed:({context:e})=>e.transition.target===`mobileClosed`,targetsDesktopDrawer:({context:e})=>e.transition.target===`desktopDrawer`,targetsDesktopTop:({context:e})=>e.transition.target===`desktopTop`},effects:{prepareOpen:r.prepareOpen,finishOpen:r.finishOpen,prepareClose:r.prepareClose,finishClose:r.finishClose,sync:r.sync,syncProps:r.syncProps}})},B=v({definition:{component:`ui.sidebar`,parts:{root:{base:[`fixed inset-y-2 z-dialog flex min-h-0 w-[var(--spacing-sidebar-drawer-width)] flex-col overflow-hidden rounded-overlay-md`,`border-separator outline-none`,`data-[drawer-state=open]:bg-surface`,`data-[mobile-state=closed]:-translate-x-full data-[mobile-state=open]:translate-x-0`,`data-[responsive-mode=desktop]:z-auto data-[responsive-mode=desktop]:w-[var(--ui-sidebar-width,var(--spacing-sidebar-width))] data-[responsive-mode=desktop]:translate-x-0 data-[responsive-mode=desktop]:data-[mobile-state=closed]:translate-x-0 data-[responsive-mode=desktop]:data-[mobile-state=open]:translate-x-0`,`data-[responsive-mode=desktop]:data-[desktop-state=expanded]:inset-y-0 data-[responsive-mode=desktop]:data-[desktop-state=expanded]:w-full data-[responsive-mode=desktop]:data-[desktop-state=expanded]:rounded-none`,`data-[responsive-mode=desktop]:data-[desktop-state=stashed]:data-[drawer-state=closed]:data-[sidebar-exiting=false]:hidden`,`data-[responsive-mode=desktop]:data-[desktop-state=stashed]:data-[drawer-state=open]:fixed`,`data-[responsive-mode=desktop]:data-[desktop-state=stashed]:data-[drawer-state=open]:z-dialog data-[responsive-mode=desktop]:data-[desktop-state=stashed]:data-[drawer-state=open]:h-auto`,`[grid-area:sidebar]`,`data-[placement=top]:data-[responsive-mode=desktop]:relative data-[placement=top]:data-[responsive-mode=desktop]:inset-auto data-[placement=top]:data-[responsive-mode=desktop]:z-auto data-[placement=top]:data-[responsive-mode=desktop]:h-[var(--ui-sidebar-height,auto)] data-[placement=top]:data-[responsive-mode=desktop]:w-full data-[placement=top]:data-[responsive-mode=desktop]:max-w-none data-[placement=top]:data-[responsive-mode=desktop]:translate-x-0 data-[placement=top]:data-[responsive-mode=desktop]:flex-row data-[placement=top]:data-[responsive-mode=desktop]:overflow-visible`,`data-[placement=top]:data-[responsive-mode=desktop]:[&_[data-ui-sidebar-content]]:overflow-visible data-[placement=top]:data-[responsive-mode=desktop]:[&_[data-ui-sidebar-content]]:flex-1`,`data-[placement=top]:data-[responsive-mode=desktop]:[&_[data-ui-sidebar-content]>[data-ui-scroll-area]]:overflow-visible data-[placement=top]:data-[responsive-mode=desktop]:[&_[data-ui-sidebar-content-inner]]:flex data-[placement=top]:data-[responsive-mode=desktop]:[&_[data-ui-sidebar-content-inner]]:items-center`,`data-[placement=top]:data-[responsive-mode=desktop]:[&_[data-ui-sidebar-nav]]:flex data-[placement=top]:data-[responsive-mode=desktop]:[&_[data-ui-sidebar-nav]]:items-center`,`data-[placement=top]:data-[responsive-mode=desktop]:[&_[data-ui-sidebar-item]]:w-auto`,`data-[placement=top]:data-[responsive-mode=desktop]:[&_[data-ui-sidebar-footer]]:flex data-[placement=top]:data-[responsive-mode=desktop]:[&_[data-ui-sidebar-footer]]:items-center`],variants:{elevation:S(`--ui-sidebar-resting-elevation`),drawerElevation:S(`--ui-sidebar-drawer-elevation`),divider:{true:`data-[placement=side][data-side=left]:border-r-edge-divider data-[placement=side][data-side=right]:border-l-edge-divider data-[placement=top]:border-b-edge-divider`,false:``},side:{left:`left-2 border-r-edge-divider data-[responsive-mode=desktop]:data-[desktop-state=expanded]:left-auto`,right:`right-2 border-l-edge-divider data-[mobile-state=closed]:translate-x-full data-[mobile-state=open]:translate-x-0 data-[responsive-mode=desktop]:data-[desktop-state=expanded]:right-auto`},sticky:{true:`data-[responsive-mode=desktop]:sticky data-[responsive-mode=desktop]:h-screen`,false:`data-[responsive-mode=desktop]:relative data-[responsive-mode=desktop]:h-auto data-[responsive-mode=desktop]:data-[sticky=false]:relative data-[responsive-mode=desktop]:data-[sticky=False]:relative data-[responsive-mode=desktop]:data-[sticky=false]:h-auto data-[responsive-mode=desktop]:data-[sticky=False]:h-auto`}},defaults:{elevation:`none`,drawerElevation:`2`,divider:!0,side:`left`,sticky:!0}},header:{base:`flex min-h-control-xlg shrink-0 items-center gap-sidebar-header-gap px-sidebar-header-padding-inline py-sidebar-header-padding-block`},content:{base:[`min-h-0 flex-1 overflow-hidden`]},contentInner:{base:[`grid min-w-0 content-start gap-sidebar-content-gap px-sidebar-content-padding-inline py-sidebar-content-padding-block`,`[&>[data-ui-separator]]:-mx-sidebar-content-padding-inline [&>[data-ui-separator]]:w-auto`]},footer:{base:`grid shrink-0 gap-sidebar-content-gap px-sidebar-content-padding-inline py-sidebar-content-padding-block`},nav:{base:`grid gap-sidebar-content-gap`},item:{base:[`group/sidebar-item flex h-control-md w-full min-w-0 select-none items-center gap-2 rounded-control-md px-2`,`border border-transparent text-left text-sm font-medium outline-none`,`cursor-default`,`data-disabled:pointer-events-none`],variants:{variant:{ghost:``,surface:`data-current:border-transparent data-current:shadow-none`},color:{neutral:``,accent:``},withActions:{true:`pr-9`,false:``}},defaults:{variant:`ghost`,color:`neutral`,withActions:!1}},itemRow:{base:`group/sidebar-item-row relative min-w-0`},itemIcon:{base:`size-icon-xs shrink-0 fill-current text-icon`,variants:{position:{leading:``,trailing:`ml-auto`}},defaults:{position:`leading`}},itemLabel:{base:`min-w-0 flex-1`},itemBadge:{base:`ml-auto shrink-0 rounded-control-sm bg-interaction-hover px-1.5 py-0.5 text-xs text-surface-ink-muted`},itemActions:{base:`absolute right-1 top-1/2 z-10 flex -translate-y-1/2 items-center gap-1`},group:{base:`relative grid gap-sidebar-content-gap`},groupSummary:{base:[`block h-control-md cursor-default select-none list-none rounded-control-md text-xs font-medium text-surface-ink-muted outline-none`,`hover:bg-interaction-hover hover:text-surface-ink focus-visible:ui-focus-ring`,`[&::-webkit-details-marker]:hidden`],variants:{hasActions:{true:``,false:``}},defaults:{hasActions:!1}},groupSummaryInner:{base:`flex h-full min-w-0 items-center gap-2 px-2`},groupHeading:{base:`flex min-h-control-md min-w-0 select-none items-center gap-2 px-2 py-1 cursor-default`},groupIcon:{base:`size-icon-xs shrink-0 fill-current text-icon group-open/sidebar-group:rotate-90`},groupLabel:{base:`min-w-0 flex-1`},groupHeadingLabel:{base:`min-w-0 flex-1`},groupActions:{base:`ml-auto flex shrink-0 items-center gap-1`},groupContent:{base:`grid gap-sidebar-content-gap`},toggle:{base:[`inline-flex h-control-md w-control-md shrink-0 items-center justify-center rounded-control-md text-surface-ink-muted outline-none`,`hover:bg-interaction-hover hover:text-surface-ink focus-visible:ui-focus-ring`]},toggleIcon:{base:`size-icon fill-current text-current`},edge:{base:[`fixed inset-y-0 z-30 hidden w-4 bg-transparent outline-none data-[state=visible]:block`,`focus-visible:ui-focus-ring-inset`,`data-[state=hidden]:hidden`],variants:{side:{left:`left-0`,right:`right-0`}},defaults:{side:`left`}},resizeHandle:{base:[`absolute inset-y-0 z-10 hidden w-3 cursor-col-resize touch-none border-transparent outline-none group-data-[responsive-mode=desktop]/sidebar:block`,`hover:border-intent-neutral-edge-hover`,`focus-visible:ui-focus-ring-inset`,`data-disabled:hidden`,`group-data-[placement=top]/sidebar:inset-x-0 group-data-[placement=top]/sidebar:bottom-0 group-data-[placement=top]/sidebar:top-auto group-data-[placement=top]/sidebar:h-3 group-data-[placement=top]/sidebar:w-auto group-data-[placement=top]/sidebar:cursor-row-resize group-data-[placement=top]/sidebar:border-b-edge-divider group-data-[placement=top]/sidebar:border-r-0 group-data-[placement=top]/sidebar:border-l-0`],variants:{side:{left:`right-0 border-r-edge-divider`,right:`left-0 border-l-edge-divider`}},defaults:{side:`left`}}}}}),V={target:I.target,action:I.action,class:I.class},H=new Set,U=e=>e instanceof CustomEvent&&e.detail&&typeof e.detail==`object`?e.detail:{},le=(()=>{let e=!1;return()=>{if(e||typeof document>`u`)return;let t=e=>t=>{if(t.target instanceof Element&&t.target.hasAttribute(`data-ui-sidebar`))return;let n=U(t);H.forEach(t=>{(!n.id||n.id===t.id)&&t.perform(n.action??e,n.trigger)})};document.addEventListener(`ui:sidebar-open`,t(`open`)),document.addEventListener(`ui:sidebar-close`,t(`close`)),document.addEventListener(`ui:sidebar-toggle`,t(`toggle`)),e=!0}})(),W=()=>{let c=null,u=[],d=null,f=`mobile`,h=null,g=!1,v=null,b=null,x=!1,S=()=>{if(!c)throw Error(`Sidebar has not been initialized.`);return c},C=()=>S().closest(`[data-ui-app]`),w=()=>C()?.querySelector(`[data-ui-app-backdrop]`)??null,E=()=>J.getSnapshot().props,D=()=>J.getSnapshot().context,O=()=>J.hasTag(`visible`)&&(J.hasTag(`drawer`)||f===`mobile`||J.hasTag(`transitioning`)&&D().transition.presentation===`drawer`),k=()=>O()&&f===`mobile`,A=()=>J.hasTag(`expanded`),j=()=>f===`mobile`&&J.matches(`closing`),M=()=>`trellis-ui-sidebar:${S().id||E().id}:stashed`,N=e=>{if(!e.persist)return null;try{let t=localStorage.getItem(`trellis-ui-sidebar:${S().id||e.id}:stashed`);return t===null?null:t===`true`}catch{return null}},P=()=>{let e=E();if(!(!e.persist||e.placement===`top`))try{localStorage.setItem(M(),D().layout.desktopStashed?`true`:`false`)}catch{}},I=()=>{let e=document.activeElement;if(!(e instanceof HTMLElement)||!S().contains(e))return;let t=h??Array.from(document.querySelectorAll(`[data-ui-sidebar-toggle]`)).find(e=>!S().contains(e)&&(!e.dataset.target||e.dataset.target===S().id));t&&document.contains(t)?t.focus({preventScroll:!0}):e.blur()},L=()=>{let e=A();document.querySelectorAll(`[data-ui-sidebar-toggle], [data-ui-sidebar-state-icon], [data-ui-sidebar-edge]`).forEach(t=>{t.dataset.target&&t.dataset.target!==S().id||(t.matches(`[data-ui-sidebar-edge]`)||(t.dataset.state=e?`open`:`closed`),t.matches(`[data-ui-sidebar-toggle], [data-ui-sidebar-edge]`)&&(t.setAttribute(`aria-controls`,S().id),t.setAttribute(`aria-expanded`,String(e))))})},R=({reflectControlled:e=!0}={})=>{let t=E(),n=J.hasTag(`visible`),r=A(),i=D().layout.desktopStashed,a=O(),o=S();e&&ee(f===`mobile`?{el:o,schema:F,key:`open`,value:r}:{el:o,schema:F,key:`stashed`,value:i}),o.dataset.state=r?`open`:`closed`,o.dataset.mobileState=f===`mobile`&&(r||j())?`open`:`closed`,o.dataset.desktopState=i?`stashed`:`expanded`,o.dataset.drawerState=a?`open`:`closed`,o.dataset.responsiveMode=f,o.dataset.placement=t.placement,o.dataset.side=t.side,o.hidden=!n&&!(f===`desktop`&&t.placement===`top`),o.toggleAttribute(`inert`,!r),r?o.removeAttribute(`aria-hidden`):o.setAttribute(`aria-hidden`,`true`);let c=!t.resizable||f!==`desktop`||a;o.toggleAttribute(`data-resize-disabled`,c);let l=o.querySelector(`[data-ui-sidebar-resize-handle]`);l?.toggleAttribute(`data-disabled`,c),l?.setAttribute(`aria-disabled`,String(c)),o.style.setProperty(`--ui-sidebar-width`,D().layout.width),D().layout.height&&o.style.setProperty(`--ui-sidebar-height`,D().layout.height);let u=C();u&&(u.style.setProperty(`--ui-app-sidebar-width`,D().layout.width),D().layout.height&&u.style.setProperty(`--ui-app-sidebar-height`,D().layout.height),u.dataset.sidebarState=i?`stashed`:`expanded`,u.dataset.sidebarSide=t.side,!x&&!J.hasTag(`transitioning`)&&(u.style.gridTemplateColumns=``));let d=w();if(d){let e=k();d.hidden=!e,d.dataset.state=e?`open`:`closed`}!a&&!J.hasTag(`transitioning`)&&(s(o),o.style.opacity=``,o.style.transform=``,d&&(s(d),d.style.opacity=``));let p=k();p&&!g&&(oe(),g=!0),!p&&g&&(ae(),g=!1),document.querySelectorAll(`[data-ui-sidebar-edge]`).forEach(e=>{if(e.dataset.target&&e.dataset.target!==S().id)return;let n=a&&h===e,r=t.edgeReveal&&f===`desktop`&&t.placement===`side`&&i&&(!a||n);e.dataset.state=r?`visible`:`hidden`,e.hidden=!r}),L(),P()},z=(e,t)=>{let n=C();if(t!==`layout`||!n){x=!1,v=null,b=null;return}let r=getComputedStyle(n).gridTemplateColumns;x=!0;let i=r.split(` `).map(Number.parseFloat);if(i.length!==3||i.some(e=>!Number.isFinite(e))){v=null,b=null;return}let[a=0,o=0]=i,s=Number.parseFloat(getComputedStyle(S()).width);v=E().side===`right`?o:a,b=e?0:Number.isFinite(s)?s:S().getBoundingClientRect().width;let c=`${v}px`;n.style.gridTemplateColumns=E().side===`right`?`minmax(0, 1fr) ${c} min-content`:`${c} minmax(0, 1fr) min-content`,n.offsetWidth},V=e=>{z(!1,e?.event?.presentation??(O()?`drawer`:`layout`)),S().hidden=!1,R(),k()&&queueMicrotask(()=>{k()&&ie(S())})},U=()=>{x=!1,R(),p({el:S(),name:`ui:sidebar-open`,detail:{id:S().id}})},W=e=>{z(!0,e?.event?.presentation??(O()?`drawer`:`layout`)),I(),R()},G=()=>{x=!1,R(),p({el:S(),name:`ui:sidebar-close`,detail:{id:S().id}}),h=null},K=()=>{R({reflectControlled:!1}),queueMicrotask(()=>{let e=E();f===`desktop`?e.placement===`top`?J.hasTag(`top`)||J.send({type:`MODE`,mode:`desktop`,placement:`top`,stashed:!1,open:!0}):e.stashed!==D().layout.desktopStashed&&(e.stashed?Q():Z()):e.open!==A()&&(e.open?Y():X())})},q=()=>l({el:S(),schema:F}),J=te({schema:F,hooks:se,createMachine:({props:e})=>ce({props:e,mode:f,desktopStashed:N(e)??e.stashed,effects:{prepareOpen:V,finishOpen:U,prepareClose:W,finishClose:G,sync:R,syncProps:K}})}),ue=()=>{let e=E();return f===`mobile`?{target:`mobileOpen`,presentation:`drawer`}:e.placement===`top`?null:D().layout.desktopStashed?{target:`desktopDrawer`,presentation:`drawer`}:{target:`desktopExpanded`,presentation:`layout`}},Y=e=>{e?.preventDefault(),e?.currentTarget instanceof HTMLElement&&(h=e.currentTarget);let t=ue();t&&J.send({type:`OPEN`,...t})},X=e=>{e?.preventDefault(),!(E().placement===`top`&&f===`desktop`)&&J.send({type:`CLOSE`,target:f===`mobile`?`mobileClosed`:`desktopStashed`,presentation:O()?`drawer`:`layout`})},Z=e=>{if(e?.preventDefault(),f===`mobile`){Y(e);return}E().placement===`side`&&J.send({type:`EXPAND`,target:`desktopExpanded`,presentation:`layout`})},Q=e=>{if(e?.preventDefault(),f===`mobile`){X(e);return}E().placement===`side`&&J.send({type:`STASH`,target:`desktopStashed`,presentation:O()?`drawer`:`layout`})},de=e=>{if(e?.preventDefault(),!(E().placement===`top`&&f===`desktop`)){if(f===`desktop`&&E().placement===`side`&&D().layout.desktopStashed&&!O()){Z(e);return}A()?X(e):Y(e)}},fe=e=>{let t=E(),n=e>=T(C()??S())?`desktop`:`mobile`;if(n===f)return;f=n;let r=D().layout.desktopStashed;J.send({type:`MODE`,mode:n,placement:t.placement,stashed:r,open:n===`desktop`&&r&&D().layout.desktopDrawerOpen})},pe=e=>{let t=e instanceof CustomEvent?e.detail:null;!t||f!==`desktop`||O()||(E().placement===`top`&&Number.isFinite(t.height)?(J.send({type:`RESIZE`,height:`${Math.round(t.height)}px`}),S().style.setProperty(`--ui-sidebar-height`,`${Math.round(t.height)}px`),C()?.style.setProperty(`--ui-app-sidebar-height`,`${Math.round(t.height)}px`)):Number.isFinite(t.width)&&(J.send({type:`RESIZE`,width:`${Math.round(t.width)}px`}),S().style.setProperty(`--ui-sidebar-width`,`${Math.round(t.width)}px`),C()?.style.setProperty(`--ui-app-sidebar-width`,`${Math.round(t.width)}px`)))},me=e=>{if(!(e instanceof PointerEvent)||f!==`desktop`||!O()||!h?.matches(`[data-ui-sidebar-edge]`))return;let t=e.relatedTarget;t instanceof Node&&(S().contains(t)||h.contains(t))||X(e)},$;return $={...J,get id(){return S().id||E().id},get isOpen(){return A()},get isDesktop(){return f===`desktop`},get isStashed(){return D().layout.desktopStashed},get width(){return D().layout.width},get height(){return D().layout.height},init(){c=this.$el;let e=C()??S();f=e.getBoundingClientRect().width>=T(e)?`desktop`:`mobile`,J.connect(this.$el,this.snapshot),S().id||=E().id,H.add($),le(),d=new ResizeObserver(t=>fe(t[0]?.contentRect.width??e.clientWidth)),d.observe(e),u.push(ne({isEnabled:O,roots:()=>[S()],onDismiss:X})),m({target:document,event:`keydown`,handler:e=>{!(e instanceof KeyboardEvent)||!O()||(e.key===`Escape`?X(e):k()&&re(e,S()))},cleanup:u}),m({target:S(),event:`ui:resize`,handler:pe,cleanup:u}),m({target:S(),event:`ui:resize-end`,handler:pe,cleanup:u}),m({target:S(),event:`pointerleave`,handler:me,cleanup:u}),S().querySelectorAll(`details[data-ui-sidebar-group]`).forEach(e=>m({target:e,event:`toggle`,handler:()=>{e.dataset.state=e.open?`open`:`closed`,p({el:e,name:`ui:sidebar-group-change`,detail:{open:e.open}})},cleanup:u})),R()},destroy(){H.delete($),d?.disconnect(),d=null,u.forEach(e=>e()),u=[],g&&ae(),g=!1,J.disconnect(),c=null},transitionSidebar(s){if(s.data.presentation===`layout`){let o=C(),c=v,l=b;if(v=null,b=null,!o||c===null||l===null)return n();if(t())return o.style.gridTemplateColumns=``,n();if(c===l)return n();let u=()=>{};return i(o,()=>{let t=r(c),n=e=>{let t=`${e}px`;o.style.gridTemplateColumns=E().side===`right`?`minmax(0, 1fr) ${t} min-content`:`${t} minmax(0, 1fr) min-content`};return u=t.on(`change`,n),n(c),a(t,l,{duration:e.moderate.duration,ease:[.77,0,.175,1]})},new Set([`layout`]),s.signal,()=>{u(),o.style.gridTemplateColumns=``})}let c=S().dataset.side===`right`?1:-1,l=s.to===`opening`,u=c===1?`translateX(calc(100% + 0.5rem))`:`translateX(calc(-100% - 0.5rem))`,d=o(s).animate({opacity:l?[0,1]:1,transform:l?[u,`none`]:u}).speed(`moderate`),f=w();return f&&s.data.mode===`mobile`&&(d=d.with(f,{opacity:l?[0,1]:0}).speed(`fast`)),d.play()},get root(){let e=this.snapshot.current?.props??q();return y({inputs:[_({part:B.parts.root,props:e,className:e.class}),{"data-ui-sidebar":``}]})},open:Y,close:X,toggle:de,stash:Q,expand:Z,isExpanded:A,perform(e,t){h=t??null,{open:Y,close:X,toggle:de,stash:Q,expand:Z}[e]?.()},syncToggles:L},$},G=()=>{let e={};return{get props(){return e},init(){e=l({el:this.$el,schema:V})},destroy(){},get root(){return y({inputs:[_({part:B.parts.toggle,props:{},className:e.class}),{"data-ui-sidebar-toggle":``,":data-target":()=>e.target,":data-action":()=>e.action,"@click":e=>this.trigger(e)}]})},trigger(t){t?.preventDefault(),document.dispatchEvent(new CustomEvent(`ui:sidebar-toggle`,{detail:{id:e.target||`ui-sidebar`,action:e.action,trigger:this.$el}}))}}},K=()=>{let e={};return{get props(){return e},init(){e=l({el:this.$el,schema:V})},destroy(){},get root(){return y({inputs:[_({part:B.parts.edge,props:{side:this.$el.dataset.side||`left`},className:e.class}),{"data-ui-sidebar-edge":``,":data-target":()=>e.target,"@pointerenter":e=>this.trigger(e),"@pointerleave":e=>this.leave(e),"@focus":e=>this.trigger(e),"@click":e=>this.trigger(e)}]})},trigger(t){t?.preventDefault(),document.dispatchEvent(new CustomEvent(`ui:sidebar-open`,{detail:{id:e.target||`ui-sidebar`,action:`open`,trigger:this.$el}}))},leave(t){let n=t instanceof PointerEvent?t.relatedTarget:null,r=document.getElementById(e.target||`ui-sidebar`);n instanceof Node&&r?.contains(n)||document.dispatchEvent(new CustomEvent(`ui:sidebar-close`,{detail:{id:e.target||`ui-sidebar`,action:`close`,trigger:this.$el}}))}}},q=e=>{g(`UiSidebar`,W)(e),g(`UiSidebarEdge`,K)(e),g(`UiSidebarToggle`,G)(e)},J=new WeakSet,ue=e=>{J.has(e)||(J.add(e),c(e),w(e),q(e))};export{G as i,W as n,K as r,ue as t};
|
|
2
|
-
//# sourceMappingURL=entry.generated-
|
|
1
|
+
import{c as e,d as t,f as n,g as r,l as i,m as a,o,u as s}from"./motion-CCqo-hWP.js";import{t as c}from"./capability-motion-DfhXNOeS.js";import{a as l,f as u,l as d,n as f,u as ee}from"./codecs-Cb1ns_47.js";import{r as p,t as m}from"./dom-qAeVl7dc.js";import{i as h,t as te}from"./alpine-machine-BS13dbK4.js";import{t as g}from"./alpine-data-CytyCyfk.js";import{n as _,t as v}from"./styles-TfvwVPGw.js";import{t as y}from"./merge-bindings-C8ewA_FD.js";import{t as b}from"./machine-Dqut4h89.js";import{t as ne}from"./dismissable-layer-BROE-Ln2.js";import{o as re,r as ie}from"./focus-scope-DtaPVNl5.js";import{n as ae,t as oe}from"./scroll-lock-DOw7dmi1.js";import{D as x,O as S,u as C}from"./common-BOd_thC-.js";import{t as w}from"./capability-resizable-C6LKIbpv.js";var T=e=>{let t=getComputedStyle(e).getPropertyValue(`--ui-shell-sidebar-breakpoint`),n=Number.parseFloat(t);return Number.isFinite(n)?n:1/0},E=[`left`,`right`],D=[`side`,`top`],O=[`none`,`mobile`,`desktop`,`both`],k=[`toggle`,`open`,`close`,`stash`,`expand`],A=[`a`,`button`],j=[`ghost`,`surface`],M=[`neutral`,`accent`],N=x,P=C,F={id:u.default(`ui-sidebar`),placement:d(D,`side`),side:d(E,`left`),surface:d(N,`inherit`),elevation:d(P,`none`),drawerElevation:d(P,`2`),divider:f.default(!0),sticky:f.default(!0),collapse:d(O,`mobile`),open:f,stashed:f,persist:f.default(!0),edgeReveal:f.default(!0),resizable:f,class:u};d(A,`a`),d(j,`ghost`),d(M,`neutral`),f.default(!0);var I={target:u,icon:u.default(`side_panel`),label:u.default(`Toggle sidebar`),action:d(k,`toggle`),class:u},L=({context:e})=>({mode:e.responsive.mode,presentation:e.transition.presentation,width:e.layout.width,height:e.layout.height}),se=[h({name:`opening`,state:`opening`,project:L,onDone:`OPENING_DONE`,onError:`OPENING_ERROR`}),h({name:`closing`,state:`closing`,project:L,onDone:`CLOSING_DONE`,onError:`CLOSING_ERROR`})],R=(e,t)=>typeof e.target==`string`?e.target:t,z=e=>e.presentation===`layout`?`layout`:`drawer`,ce=({props:e,mode:t,desktopStashed:n,effects:r})=>{let i=t===`mobile`?e.open?`mobileOpen`:`mobileClosed`:e.placement===`top`?`desktopTop`:n?`desktopStashed`:`desktopExpanded`,a={target:`opening`,reduce:`beginOpen`,effects:`prepareOpen`},o={target:`closing`,reduce:`beginClose`,effects:`prepareClose`},s={reduce:`replaceProps`,effects:`syncProps`};return b({initial:i,on:{MODE:[{target:`desktopTop`,guard:`toTop`,reduce:`setMode`,effects:`sync`},{target:`desktopDrawer`,guard:`toDesktopDrawer`,reduce:`setMode`,effects:`sync`},{target:`desktopStashed`,guard:`toDesktopStashed`,reduce:`setMode`,effects:`sync`},{target:`desktopExpanded`,guard:`toDesktop`,reduce:`setMode`,effects:`sync`},{target:`mobileOpen`,guard:`toMobileOpen`,reduce:`setMode`,effects:`sync`},{target:`mobileClosed`,reduce:`setMode`,effects:`sync`}],RESIZE:{reduce:`resize`,effects:`sync`}},states:{mobileClosed:{tags:[`mobile`,`closed`],on:{OPEN:a,EXPAND:a,PROPS_CHANGED:s}},mobileOpen:{tags:[`mobile`,`visible`,`expanded`,`open`],on:{CLOSE:o,STASH:o,TOGGLE:o,PROPS_CHANGED:s}},desktopExpanded:{tags:[`desktop`,`visible`,`expanded`,`open`,`layout`],on:{CLOSE:o,STASH:o,TOGGLE:o,OPEN:{},EXPAND:{},PROPS_CHANGED:s}},desktopStashed:{tags:[`desktop`,`stashed`,`closed`],on:{OPEN:a,EXPAND:a,TOGGLE:a,PROPS_CHANGED:s}},desktopDrawer:{tags:[`desktop`,`stashed`,`visible`,`expanded`,`open`,`drawer`],on:{CLOSE:o,STASH:o,TOGGLE:o,EXPAND:a,PROPS_CHANGED:s}},desktopTop:{tags:[`desktop`,`top`,`visible`,`expanded`,`open`,`layout`],on:{PROPS_CHANGED:s}},opening:{tags:[`visible`,`expanded`,`transitioning`],on:{OPENING_DONE:[{target:`mobileOpen`,guard:`targetsMobileOpen`,effects:`finishOpen`},{target:`desktopDrawer`,guard:`targetsDesktopDrawer`,effects:`finishOpen`},{target:`desktopTop`,guard:`targetsDesktopTop`,effects:`finishOpen`},{target:`desktopExpanded`,effects:`finishOpen`}],OPENING_ERROR:[{target:`mobileOpen`,guard:`targetsMobileOpen`,effects:`finishOpen`},{target:`desktopDrawer`,guard:`targetsDesktopDrawer`,effects:`finishOpen`},{target:`desktopTop`,guard:`targetsDesktopTop`,effects:`finishOpen`},{target:`desktopExpanded`,effects:`finishOpen`}],CLOSE:o,STASH:o,TOGGLE:o,PROPS_CHANGED:s}},closing:{tags:[`visible`,`transitioning`],on:{CLOSING_DONE:[{target:`mobileClosed`,guard:`targetsMobileClosed`,effects:`finishClose`},{target:`desktopStashed`,effects:`finishClose`}],CLOSING_ERROR:[{target:`mobileClosed`,guard:`targetsMobileClosed`,effects:`finishClose`},{target:`desktopStashed`,effects:`finishClose`}],OPEN:a,EXPAND:a,TOGGLE:a,PROPS_CHANGED:s}}}},{props:e,context:{responsive:{mode:t},layout:{desktopStashed:n,desktopDrawerOpen:!1,width:`var(--spacing-sidebar-width)`,height:``},transition:{target:i,presentation:i===`desktopExpanded`||i===`desktopTop`?`layout`:`drawer`}},reducers:{beginOpen:({context:e,event:t})=>{let n=R(t,`mobileOpen`);return{context:{...e,layout:{...e.layout,desktopStashed:n===`desktopDrawer`?!0:n===`desktopExpanded`?!1:e.layout.desktopStashed,desktopDrawerOpen:n===`desktopDrawer`||n===`mobileOpen`&&e.layout.desktopStashed},transition:{target:n,presentation:z(t)}}}},beginClose:({context:e,event:t})=>{let n=R(t,`mobileClosed`),r=n===`desktopStashed`||n===`mobileClosed`&&e.layout.desktopStashed;return{context:{...e,layout:{...e.layout,desktopStashed:n===`desktopStashed`?!0:e.layout.desktopStashed,desktopDrawerOpen:r?!1:e.layout.desktopDrawerOpen},transition:{target:n,presentation:z(t)}}}},setMode:({context:e,event:t})=>({context:{...e,responsive:{mode:t.mode===`desktop`?`desktop`:`mobile`}}}),replaceProps:({context:e,event:t})=>({props:t.props,context:e}),resize:({context:e,event:t})=>({context:{...e,layout:{...e.layout,width:typeof t.width==`string`?t.width:e.layout.width,height:typeof t.height==`string`?t.height:e.layout.height}}})},guards:{toTop:({event:e})=>e.mode===`desktop`&&e.placement===`top`,toDesktopDrawer:({event:e})=>e.mode===`desktop`&&e.stashed===!0&&e.open===!0,toDesktopStashed:({event:e})=>e.mode===`desktop`&&e.stashed===!0,toDesktop:({event:e})=>e.mode===`desktop`,toMobileOpen:({event:e})=>e.mode===`mobile`&&e.open===!0,targetsMobileOpen:({context:e})=>e.transition.target===`mobileOpen`,targetsMobileClosed:({context:e})=>e.transition.target===`mobileClosed`,targetsDesktopDrawer:({context:e})=>e.transition.target===`desktopDrawer`,targetsDesktopTop:({context:e})=>e.transition.target===`desktopTop`},effects:{prepareOpen:r.prepareOpen,finishOpen:r.finishOpen,prepareClose:r.prepareClose,finishClose:r.finishClose,sync:r.sync,syncProps:r.syncProps}})},B=v({definition:{component:`ui.sidebar`,parts:{root:{base:[`fixed inset-y-2 z-dialog flex min-h-0 w-[var(--spacing-sidebar-drawer-width)] flex-col overflow-hidden rounded-overlay-md`,`border-separator outline-none`,`data-[drawer-state=open]:bg-surface`,`data-[mobile-state=closed]:-translate-x-full data-[mobile-state=open]:translate-x-0`,`data-[responsive-mode=desktop]:z-auto data-[responsive-mode=desktop]:w-[var(--ui-sidebar-width,var(--spacing-sidebar-width))] data-[responsive-mode=desktop]:translate-x-0 data-[responsive-mode=desktop]:data-[mobile-state=closed]:translate-x-0 data-[responsive-mode=desktop]:data-[mobile-state=open]:translate-x-0`,`data-[responsive-mode=desktop]:data-[desktop-state=expanded]:inset-y-0 data-[responsive-mode=desktop]:data-[desktop-state=expanded]:w-full data-[responsive-mode=desktop]:data-[desktop-state=expanded]:rounded-none`,`data-[responsive-mode=desktop]:data-[desktop-state=stashed]:data-[drawer-state=closed]:data-[sidebar-exiting=false]:hidden`,`data-[responsive-mode=desktop]:data-[desktop-state=stashed]:data-[drawer-state=open]:fixed`,`data-[responsive-mode=desktop]:data-[desktop-state=stashed]:data-[drawer-state=open]:z-dialog data-[responsive-mode=desktop]:data-[desktop-state=stashed]:data-[drawer-state=open]:h-auto`,`[grid-area:sidebar]`,`data-[placement=top]:data-[responsive-mode=desktop]:relative data-[placement=top]:data-[responsive-mode=desktop]:inset-auto data-[placement=top]:data-[responsive-mode=desktop]:z-auto data-[placement=top]:data-[responsive-mode=desktop]:h-[var(--ui-sidebar-height,auto)] data-[placement=top]:data-[responsive-mode=desktop]:w-full data-[placement=top]:data-[responsive-mode=desktop]:max-w-none data-[placement=top]:data-[responsive-mode=desktop]:translate-x-0 data-[placement=top]:data-[responsive-mode=desktop]:flex-row data-[placement=top]:data-[responsive-mode=desktop]:overflow-visible`,`data-[placement=top]:data-[responsive-mode=desktop]:[&_[data-ui-sidebar-content]]:overflow-visible data-[placement=top]:data-[responsive-mode=desktop]:[&_[data-ui-sidebar-content]]:flex-1`,`data-[placement=top]:data-[responsive-mode=desktop]:[&_[data-ui-sidebar-content]>[data-ui-scroll-area]]:overflow-visible data-[placement=top]:data-[responsive-mode=desktop]:[&_[data-ui-sidebar-content-inner]]:flex data-[placement=top]:data-[responsive-mode=desktop]:[&_[data-ui-sidebar-content-inner]]:items-center`,`data-[placement=top]:data-[responsive-mode=desktop]:[&_[data-ui-sidebar-nav]]:flex data-[placement=top]:data-[responsive-mode=desktop]:[&_[data-ui-sidebar-nav]]:items-center`,`data-[placement=top]:data-[responsive-mode=desktop]:[&_[data-ui-sidebar-item]]:w-auto`,`data-[placement=top]:data-[responsive-mode=desktop]:[&_[data-ui-sidebar-footer]]:flex data-[placement=top]:data-[responsive-mode=desktop]:[&_[data-ui-sidebar-footer]]:items-center`],variants:{elevation:S(`--ui-sidebar-resting-elevation`),drawerElevation:S(`--ui-sidebar-drawer-elevation`),divider:{true:`data-[placement=side][data-side=left]:border-r-edge-divider data-[placement=side][data-side=right]:border-l-edge-divider data-[placement=top]:border-b-edge-divider`,false:``},side:{left:`left-2 border-r-edge-divider data-[responsive-mode=desktop]:data-[desktop-state=expanded]:left-auto`,right:`right-2 border-l-edge-divider data-[mobile-state=closed]:translate-x-full data-[mobile-state=open]:translate-x-0 data-[responsive-mode=desktop]:data-[desktop-state=expanded]:right-auto`},sticky:{true:`data-[responsive-mode=desktop]:sticky data-[responsive-mode=desktop]:h-screen`,false:`data-[responsive-mode=desktop]:relative data-[responsive-mode=desktop]:h-auto data-[responsive-mode=desktop]:data-[sticky=false]:relative data-[responsive-mode=desktop]:data-[sticky=False]:relative data-[responsive-mode=desktop]:data-[sticky=false]:h-auto data-[responsive-mode=desktop]:data-[sticky=False]:h-auto`}},defaults:{elevation:`none`,drawerElevation:`2`,divider:!0,side:`left`,sticky:!0}},header:{base:`flex min-h-control-xlg shrink-0 items-center gap-sidebar-header-gap px-sidebar-header-padding-inline py-sidebar-header-padding-block`},content:{base:[`min-h-0 flex-1 overflow-hidden`]},contentInner:{base:[`grid min-w-0 content-start gap-sidebar-content-gap px-sidebar-content-padding-inline py-sidebar-content-padding-block`,`[&>[data-ui-separator]]:-mx-sidebar-content-padding-inline [&>[data-ui-separator]]:w-auto`]},footer:{base:`grid shrink-0 gap-sidebar-content-gap px-sidebar-content-padding-inline py-sidebar-content-padding-block`},nav:{base:`grid gap-sidebar-content-gap`},item:{base:[`group/sidebar-item flex h-control-md w-full min-w-0 select-none items-center gap-2 rounded-control-md px-2`,`border border-transparent text-left text-sm font-medium outline-none`,`cursor-default`,`data-disabled:pointer-events-none`],variants:{variant:{ghost:``,surface:`data-current:border-transparent data-current:shadow-none`},color:{neutral:``,accent:``},withActions:{true:`pr-9`,false:``}},defaults:{variant:`ghost`,color:`neutral`,withActions:!1}},itemRow:{base:`group/sidebar-item-row relative min-w-0`},itemIcon:{base:`size-icon-xs shrink-0 fill-current text-icon`,variants:{position:{leading:``,trailing:`ml-auto`}},defaults:{position:`leading`}},itemLabel:{base:`min-w-0 flex-1`},itemBadge:{base:`ml-auto shrink-0 rounded-control-sm bg-interaction-hover px-1.5 py-0.5 text-xs text-surface-ink-muted`},itemActions:{base:`absolute right-1 top-1/2 z-10 flex -translate-y-1/2 items-center gap-1`},group:{base:`relative grid gap-sidebar-content-gap`},groupSummary:{base:[`block h-control-md cursor-default select-none list-none rounded-control-md text-xs font-medium text-surface-ink-muted outline-none`,`hover:bg-interaction-hover hover:text-surface-ink focus-visible:ui-focus-ring`,`[&::-webkit-details-marker]:hidden`],variants:{hasActions:{true:``,false:``}},defaults:{hasActions:!1}},groupSummaryInner:{base:`flex h-full min-w-0 items-center gap-2 px-2`},groupHeading:{base:`flex min-h-control-md min-w-0 select-none items-center gap-2 px-2 py-1 cursor-default`},groupIcon:{base:`size-icon-xs shrink-0 fill-current text-icon group-open/sidebar-group:rotate-90`},groupLabel:{base:`min-w-0 flex-1`},groupHeadingLabel:{base:`min-w-0 flex-1`},groupActions:{base:`ml-auto flex shrink-0 items-center gap-1`},groupContent:{base:`grid gap-sidebar-content-gap`},toggle:{base:[`inline-flex h-control-md w-control-md shrink-0 items-center justify-center rounded-control-md text-surface-ink-muted outline-none`,`hover:bg-interaction-hover hover:text-surface-ink focus-visible:ui-focus-ring`]},toggleIcon:{base:`size-icon fill-current text-current`},edge:{base:[`fixed inset-y-0 z-30 hidden w-4 bg-transparent outline-none data-[state=visible]:block`,`focus-visible:ui-focus-ring-inset`,`data-[state=hidden]:hidden`],variants:{side:{left:`left-0`,right:`right-0`}},defaults:{side:`left`}},resizeHandle:{base:[`absolute inset-y-0 z-10 hidden w-3 cursor-col-resize touch-none border-transparent outline-none group-data-[responsive-mode=desktop]/sidebar:block`,`hover:border-intent-neutral-edge-hover`,`focus-visible:ui-focus-ring-inset`,`data-disabled:hidden`,`group-data-[placement=top]/sidebar:inset-x-0 group-data-[placement=top]/sidebar:bottom-0 group-data-[placement=top]/sidebar:top-auto group-data-[placement=top]/sidebar:h-3 group-data-[placement=top]/sidebar:w-auto group-data-[placement=top]/sidebar:cursor-row-resize group-data-[placement=top]/sidebar:border-b-edge-divider group-data-[placement=top]/sidebar:border-r-0 group-data-[placement=top]/sidebar:border-l-0`],variants:{side:{left:`right-0 border-r-edge-divider`,right:`left-0 border-l-edge-divider`}},defaults:{side:`left`}}}}}),V={target:I.target,action:I.action,class:I.class},H=new Set,U=e=>e instanceof CustomEvent&&e.detail&&typeof e.detail==`object`?e.detail:{},le=(()=>{let e=!1;return()=>{if(e||typeof document>`u`)return;let t=e=>t=>{if(t.target instanceof Element&&t.target.hasAttribute(`data-ui-sidebar`))return;let n=U(t);H.forEach(t=>{(!n.id||n.id===t.id)&&t.perform(n.action??e,n.trigger)})};document.addEventListener(`ui:sidebar-open`,t(`open`)),document.addEventListener(`ui:sidebar-close`,t(`close`)),document.addEventListener(`ui:sidebar-toggle`,t(`toggle`)),e=!0}})(),W=()=>{let c=null,u=[],d=null,f=`mobile`,h=null,g=!1,v=null,b=null,x=!1,S=()=>{if(!c)throw Error(`Sidebar has not been initialized.`);return c},C=()=>S().closest(`[data-ui-app]`),w=()=>C()?.querySelector(`[data-ui-app-backdrop]`)??null,E=()=>J.getSnapshot().props,D=()=>J.getSnapshot().context,O=()=>J.hasTag(`visible`)&&(J.hasTag(`drawer`)||f===`mobile`||J.hasTag(`transitioning`)&&D().transition.presentation===`drawer`),k=()=>O()&&f===`mobile`,A=()=>J.hasTag(`expanded`),j=()=>f===`mobile`&&J.matches(`closing`),M=()=>`trellis-ui-sidebar:${S().id||E().id}:stashed`,N=e=>{if(!e.persist)return null;try{let t=localStorage.getItem(`trellis-ui-sidebar:${S().id||e.id}:stashed`);return t===null?null:t===`true`}catch{return null}},P=()=>{let e=E();if(!(!e.persist||e.placement===`top`))try{localStorage.setItem(M(),D().layout.desktopStashed?`true`:`false`)}catch{}},I=()=>{let e=document.activeElement;if(!(e instanceof HTMLElement)||!S().contains(e))return;let t=h??Array.from(document.querySelectorAll(`[data-ui-sidebar-toggle]`)).find(e=>!S().contains(e)&&(!e.dataset.target||e.dataset.target===S().id));t&&document.contains(t)?t.focus({preventScroll:!0}):e.blur()},L=()=>{let e=A();document.querySelectorAll(`[data-ui-sidebar-toggle], [data-ui-sidebar-state-icon], [data-ui-sidebar-edge]`).forEach(t=>{t.dataset.target&&t.dataset.target!==S().id||(t.matches(`[data-ui-sidebar-edge]`)||(t.dataset.state=e?`open`:`closed`),t.matches(`[data-ui-sidebar-toggle], [data-ui-sidebar-edge]`)&&(t.setAttribute(`aria-controls`,S().id),t.setAttribute(`aria-expanded`,String(e))))})},R=({reflectControlled:e=!0}={})=>{let t=E(),n=J.hasTag(`visible`),r=A(),i=D().layout.desktopStashed,a=O(),o=S();e&&ee(f===`mobile`?{el:o,schema:F,key:`open`,value:r}:{el:o,schema:F,key:`stashed`,value:i}),o.dataset.state=r?`open`:`closed`,o.dataset.mobileState=f===`mobile`&&(r||j())?`open`:`closed`,o.dataset.desktopState=i?`stashed`:`expanded`,o.dataset.drawerState=a?`open`:`closed`,o.dataset.responsiveMode=f,o.dataset.placement=t.placement,o.dataset.side=t.side,o.hidden=!n&&!(f===`desktop`&&t.placement===`top`),o.toggleAttribute(`inert`,!r),r?o.removeAttribute(`aria-hidden`):o.setAttribute(`aria-hidden`,`true`);let c=!t.resizable||f!==`desktop`||a;o.toggleAttribute(`data-resize-disabled`,c);let l=o.querySelector(`[data-ui-sidebar-resize-handle]`);l?.toggleAttribute(`data-disabled`,c),l?.setAttribute(`aria-disabled`,String(c)),o.style.setProperty(`--ui-sidebar-width`,D().layout.width),D().layout.height&&o.style.setProperty(`--ui-sidebar-height`,D().layout.height);let u=C();u&&(u.style.setProperty(`--ui-app-sidebar-width`,D().layout.width),D().layout.height&&u.style.setProperty(`--ui-app-sidebar-height`,D().layout.height),u.dataset.sidebarState=i?`stashed`:`expanded`,u.dataset.sidebarSide=t.side,!x&&!J.hasTag(`transitioning`)&&(u.style.gridTemplateColumns=``));let d=w();if(d){let e=k();d.hidden=!e,d.dataset.state=e?`open`:`closed`}!a&&!J.hasTag(`transitioning`)&&(s(o),o.style.opacity=``,o.style.transform=``,d&&(s(d),d.style.opacity=``));let p=k();p&&!g&&(oe(),g=!0),!p&&g&&(ae(),g=!1),document.querySelectorAll(`[data-ui-sidebar-edge]`).forEach(e=>{if(e.dataset.target&&e.dataset.target!==S().id)return;let n=a&&h===e,r=t.edgeReveal&&f===`desktop`&&t.placement===`side`&&i&&(!a||n);e.dataset.state=r?`visible`:`hidden`,e.hidden=!r}),L(),P()},z=(e,t)=>{let n=C();if(t!==`layout`||!n){x=!1,v=null,b=null;return}let r=getComputedStyle(n).gridTemplateColumns;x=!0;let i=r.split(` `).map(Number.parseFloat);if(i.length!==3||i.some(e=>!Number.isFinite(e))){v=null,b=null;return}let[a=0,o=0]=i,s=Number.parseFloat(getComputedStyle(S()).width);v=E().side===`right`?o:a,b=e?0:Number.isFinite(s)?s:S().getBoundingClientRect().width;let c=`${v}px`;n.style.gridTemplateColumns=E().side===`right`?`minmax(0, 1fr) ${c} min-content`:`${c} minmax(0, 1fr) min-content`,n.offsetWidth},V=e=>{z(!1,e?.event?.presentation??(O()?`drawer`:`layout`)),S().hidden=!1,R(),k()&&queueMicrotask(()=>{k()&&ie(S())})},U=()=>{x=!1,R(),p({el:S(),name:`ui:sidebar-open`,detail:{id:S().id}})},W=e=>{z(!0,e?.event?.presentation??(O()?`drawer`:`layout`)),I(),R()},G=()=>{x=!1,R(),p({el:S(),name:`ui:sidebar-close`,detail:{id:S().id}}),h=null},K=()=>{R({reflectControlled:!1}),queueMicrotask(()=>{let e=E();f===`desktop`?e.placement===`top`?J.hasTag(`top`)||J.send({type:`MODE`,mode:`desktop`,placement:`top`,stashed:!1,open:!0}):e.stashed!==D().layout.desktopStashed&&(e.stashed?Q():Z()):e.open!==A()&&(e.open?Y():X())})},q=()=>l({el:S(),schema:F}),J=te({schema:F,hooks:se,createMachine:({props:e})=>ce({props:e,mode:f,desktopStashed:N(e)??e.stashed,effects:{prepareOpen:V,finishOpen:U,prepareClose:W,finishClose:G,sync:R,syncProps:K}})}),ue=()=>{let e=E();return f===`mobile`?{target:`mobileOpen`,presentation:`drawer`}:e.placement===`top`?null:D().layout.desktopStashed?{target:`desktopDrawer`,presentation:`drawer`}:{target:`desktopExpanded`,presentation:`layout`}},Y=e=>{e?.preventDefault(),e?.currentTarget instanceof HTMLElement&&(h=e.currentTarget);let t=ue();t&&J.send({type:`OPEN`,...t})},X=e=>{e?.preventDefault(),!(E().placement===`top`&&f===`desktop`)&&J.send({type:`CLOSE`,target:f===`mobile`?`mobileClosed`:`desktopStashed`,presentation:O()?`drawer`:`layout`})},Z=e=>{if(e?.preventDefault(),f===`mobile`){Y(e);return}E().placement===`side`&&J.send({type:`EXPAND`,target:`desktopExpanded`,presentation:`layout`})},Q=e=>{if(e?.preventDefault(),f===`mobile`){X(e);return}E().placement===`side`&&J.send({type:`STASH`,target:`desktopStashed`,presentation:O()?`drawer`:`layout`})},de=e=>{if(e?.preventDefault(),!(E().placement===`top`&&f===`desktop`)){if(f===`desktop`&&E().placement===`side`&&D().layout.desktopStashed&&!O()){Z(e);return}A()?X(e):Y(e)}},fe=e=>{let t=E(),n=e>=T(C()??S())?`desktop`:`mobile`;if(n===f)return;f=n;let r=D().layout.desktopStashed;J.send({type:`MODE`,mode:n,placement:t.placement,stashed:r,open:n===`desktop`&&r&&D().layout.desktopDrawerOpen})},pe=e=>{let t=e instanceof CustomEvent?e.detail:null;!t||f!==`desktop`||O()||(E().placement===`top`&&Number.isFinite(t.height)?(J.send({type:`RESIZE`,height:`${Math.round(t.height)}px`}),S().style.setProperty(`--ui-sidebar-height`,`${Math.round(t.height)}px`),C()?.style.setProperty(`--ui-app-sidebar-height`,`${Math.round(t.height)}px`)):Number.isFinite(t.width)&&(J.send({type:`RESIZE`,width:`${Math.round(t.width)}px`}),S().style.setProperty(`--ui-sidebar-width`,`${Math.round(t.width)}px`),C()?.style.setProperty(`--ui-app-sidebar-width`,`${Math.round(t.width)}px`)))},me=e=>{if(!(e instanceof PointerEvent)||f!==`desktop`||!O()||!h?.matches(`[data-ui-sidebar-edge]`))return;let t=e.relatedTarget;t instanceof Node&&(S().contains(t)||h.contains(t))||X(e)},$;return $={...J,get id(){return S().id||E().id},get isOpen(){return A()},get isDesktop(){return f===`desktop`},get isStashed(){return D().layout.desktopStashed},get width(){return D().layout.width},get height(){return D().layout.height},init(){c=this.$el;let e=C()??S();f=e.getBoundingClientRect().width>=T(e)?`desktop`:`mobile`,J.connect(this.$el,this.snapshot),S().id||=E().id,H.add($),le(),d=new ResizeObserver(t=>fe(t[0]?.contentRect.width??e.clientWidth)),d.observe(e),u.push(ne({isEnabled:O,roots:()=>[S()],onDismiss:X})),m({target:document,event:`keydown`,handler:e=>{!(e instanceof KeyboardEvent)||!O()||(e.key===`Escape`?X(e):k()&&re(e,S()))},cleanup:u}),m({target:S(),event:`ui:resize`,handler:pe,cleanup:u}),m({target:S(),event:`ui:resize-end`,handler:pe,cleanup:u}),m({target:S(),event:`pointerleave`,handler:me,cleanup:u}),S().querySelectorAll(`details[data-ui-sidebar-group]`).forEach(e=>m({target:e,event:`toggle`,handler:()=>{e.dataset.state=e.open?`open`:`closed`,p({el:e,name:`ui:sidebar-group-change`,detail:{open:e.open}})},cleanup:u})),R()},destroy(){H.delete($),d?.disconnect(),d=null,u.forEach(e=>e()),u=[],g&&ae(),g=!1,J.disconnect(),c=null},transitionSidebar(s){if(s.data.presentation===`layout`){let o=C(),c=v,l=b;if(v=null,b=null,!o||c===null||l===null)return n();if(t())return o.style.gridTemplateColumns=``,n();if(c===l)return n();let u=()=>{};return i(o,()=>{let t=r(c),n=e=>{let t=`${e}px`;o.style.gridTemplateColumns=E().side===`right`?`minmax(0, 1fr) ${t} min-content`:`${t} minmax(0, 1fr) min-content`};return u=t.on(`change`,n),n(c),a(t,l,{duration:e.moderate.duration,ease:[.77,0,.175,1]})},new Set([`layout`]),s.signal,()=>{u(),o.style.gridTemplateColumns=``})}let c=S().dataset.side===`right`?1:-1,l=s.to===`opening`,u=c===1?`translateX(calc(100% + 0.5rem))`:`translateX(calc(-100% - 0.5rem))`,d=o(s).animate({opacity:l?[0,1]:1,transform:l?[u,`none`]:u}).speed(`moderate`),f=w();return f&&s.data.mode===`mobile`&&(d=d.with(f,{opacity:l?[0,1]:0}).speed(`fast`)),d.play()},get root(){let e=this.snapshot.current?.props??q();return y({inputs:[_({part:B.parts.root,props:e,className:e.class}),{"data-ui-sidebar":``}]})},open:Y,close:X,toggle:de,stash:Q,expand:Z,isExpanded:A,perform(e,t){h=t??null,{open:Y,close:X,toggle:de,stash:Q,expand:Z}[e]?.()},syncToggles:L},$},G=()=>{let e={};return{get props(){return e},init(){e=l({el:this.$el,schema:V})},destroy(){},get root(){return y({inputs:[_({part:B.parts.toggle,props:{},className:e.class}),{"data-ui-sidebar-toggle":``,":data-target":()=>e.target,":data-action":()=>e.action,"@click":e=>this.trigger(e)}]})},trigger(t){t?.preventDefault(),document.dispatchEvent(new CustomEvent(`ui:sidebar-toggle`,{detail:{id:e.target||`ui-sidebar`,action:e.action,trigger:this.$el}}))}}},K=()=>{let e={};return{get props(){return e},init(){e=l({el:this.$el,schema:V})},destroy(){},get root(){return y({inputs:[_({part:B.parts.edge,props:{side:this.$el.dataset.side||`left`},className:e.class}),{"data-ui-sidebar-edge":``,":data-target":()=>e.target,"@pointerenter":e=>this.trigger(e),"@pointerleave":e=>this.leave(e),"@focus":e=>this.trigger(e),"@click":e=>this.trigger(e)}]})},trigger(t){t?.preventDefault(),document.dispatchEvent(new CustomEvent(`ui:sidebar-open`,{detail:{id:e.target||`ui-sidebar`,action:`open`,trigger:this.$el}}))},leave(t){let n=t instanceof PointerEvent?t.relatedTarget:null,r=document.getElementById(e.target||`ui-sidebar`);n instanceof Node&&r?.contains(n)||document.dispatchEvent(new CustomEvent(`ui:sidebar-close`,{detail:{id:e.target||`ui-sidebar`,action:`close`,trigger:this.$el}}))}}},q=e=>{g(`UiSidebar`,W)(e),g(`UiSidebarEdge`,K)(e),g(`UiSidebarToggle`,G)(e)},J=new WeakSet,ue=e=>{J.has(e)||(J.add(e),c(e),w(e),q(e))};export{G as i,W as n,K as r,ue as t};
|
|
2
|
+
//# sourceMappingURL=entry.generated-DjK5lRgV.js.map
|