@vireo-ai/trellis-ui 0.1.37 → 0.1.39

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.
Files changed (78) hide show
  1. package/package.json +1 -1
  2. package/packages/client/src/styles/generated-sources.css +1 -1
  3. package/packages/client/types/assets/full-runtime.generated.d.ts +1 -1
  4. package/packages/client/types/component-api.d.ts +1 -0
  5. package/packages/client/types/components/entry.generated.d.ts +1 -0
  6. package/packages/client/types/components/runtime.d.ts +2 -0
  7. package/packages/client/types/components/virtualizer/contract.d.ts +29 -0
  8. package/packages/client/types/components/virtualizer/entry.generated.d.ts +5 -0
  9. package/packages/client/types/components/virtualizer/index.d.ts +31 -0
  10. package/packages/client/types/components/virtualizer/runtime-docs.d.ts +2 -0
  11. package/packages/client/types/runtime/engine/fragment.d.ts +11 -0
  12. package/packages/client/types/runtime/engine/request.d.ts +1 -5
  13. package/packages/client/types/runtime/engine/stream.d.ts +3 -1
  14. package/packages/client/types/runtime/index.d.ts +2 -0
  15. package/packages/client/types/runtime/virtual-window.d.ts +85 -0
  16. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.css +3 -0
  17. package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.min.css +1 -1
  18. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/build-metadata.json +261 -222
  19. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/motion.js +1 -1
  20. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/sortable.js +1 -1
  21. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-motion-CHT-6DKB.js → capability-motion-VFYcNVM5.js} +2 -2
  22. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-motion-CHT-6DKB.js.map → capability-motion-VFYcNVM5.js.map} +1 -1
  23. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-sortable-CIC0ACle.js → capability-sortable-l7SPMutG.js} +3 -3
  24. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-sortable-CIC0ACle.js.map → capability-sortable-l7SPMutG.js.map} +1 -1
  25. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-LsAXy99P.js +2 -0
  26. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-LsAXy99P.js.map +1 -0
  27. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DeIdrz3R.js → entry.generated-2VgVfygk.js} +2 -2
  28. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DeIdrz3R.js.map → entry.generated-2VgVfygk.js.map} +1 -1
  29. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CaapC7Ct.js → entry.generated-BVBXXN6t.js} +2 -2
  30. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CaapC7Ct.js.map → entry.generated-BVBXXN6t.js.map} +1 -1
  31. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-Cj3Cx01k.js → entry.generated-Bsennsyl.js} +2 -2
  32. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-Cj3Cx01k.js.map → entry.generated-Bsennsyl.js.map} +1 -1
  33. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated--6MGmLYe.js → entry.generated-D91HRlIV.js} +2 -2
  34. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated--6MGmLYe.js.map → entry.generated-D91HRlIV.js.map} +1 -1
  35. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-GsY6gpiw.js → entry.generated-DI48yD0K.js} +2 -2
  36. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-GsY6gpiw.js.map → entry.generated-DI48yD0K.js.map} +1 -1
  37. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DuNS3MYH.js +2 -0
  38. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DuNS3MYH.js.map +1 -0
  39. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CMEyTYos.js → entry.generated-DvAia1Wz.js} +2 -2
  40. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-CMEyTYos.js.map → entry.generated-DvAia1Wz.js.map} +1 -1
  41. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-B-DK_TD9.js → entry.generated-LUzMUcng.js} +2 -2
  42. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-B-DK_TD9.js.map → entry.generated-LUzMUcng.js.map} +1 -1
  43. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-1CSz8kEV.js → entry.generated-UHQD4FyC.js} +2 -2
  44. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-1CSz8kEV.js.map → entry.generated-UHQD4FyC.js.map} +1 -1
  45. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-IfKkAqoN.js → entry.generated-bERshNT6.js} +2 -2
  46. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-IfKkAqoN.js.map → entry.generated-bERshNT6.js.map} +1 -1
  47. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-BhPEF6oz.js → entry2.generated-BhPEF6oz.js} +1 -1
  48. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-BhPEF6oz.js.map +1 -0
  49. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/fragment-Bl3Rq38L.js +2 -0
  50. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/fragment-Bl3Rq38L.js.map +1 -0
  51. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{motion-Dmm9SoIv.js → motion-D44EkjK3.js} +2 -2
  52. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{motion-Dmm9SoIv.js.map → motion-D44EkjK3.js.map} +1 -1
  53. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-BWVDkV-D.js +4 -0
  54. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-BWVDkV-D.js.map +1 -0
  55. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/accordion.js +1 -1
  56. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/date-picker.js +1 -1
  57. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/dropdown.js +1 -1
  58. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js +1 -1
  59. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/index.js.map +1 -1
  60. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/modal.js +1 -1
  61. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/panels.js +1 -1
  62. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/select.js +1 -1
  63. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/sidebar.js +1 -1
  64. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/table.js +1 -1
  65. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/tabs.js +1 -1
  66. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/toast.js +1 -1
  67. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer.js +1 -0
  68. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/core.js +1 -1
  69. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js +1 -1
  70. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/index.js.map +1 -1
  71. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/logical-entry-manifest.json +100 -74
  72. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.js +9 -9
  73. package/packages/server/trellis_ui/static/trellis_ui/assets/js/trellis.min.js +9 -9
  74. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-D8VKfoWC.js +0 -2
  75. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/core-D8VKfoWC.js.map +0 -1
  76. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-BhPEF6oz.js.map +0 -1
  77. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-DQwcal8k.js +0 -4
  78. package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/ui-DQwcal8k.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry.generated-DuNS3MYH.js","names":[],"sources":["../../../../../../../../client/src/runtime/virtual-window.ts","../../../../../../../../client/src/components/virtualizer/contract.ts","../../../../../../../../client/src/components/virtualizer/index.ts","../../../../../../../../client/src/components/virtualizer/entry.generated.ts"],"sourcesContent":["type VirtualWindowKind = string;\n\ntype VirtualWindowBase = {\n kind: VirtualWindowKind;\n key: string;\n};\n\ntype VirtualWindowAdapter<Input, Window extends VirtualWindowBase> = {\n compute(input: Input): Window;\n covers(mounted: Window, desired: Window): boolean;\n serialize(window: Window): Record<string, string>;\n};\n\ntype VirtualAxis = 'x' | 'y';\ntype VirtualScrollAlign = 'start' | 'center' | 'end' | 'auto';\n\ntype FixedAxisInputDetail = {\n total: number;\n itemSize: number;\n viewportSize: number;\n scrollOffset: number;\n buffer: number;\n overscan?: number;\n};\n\ntype FixedAxisWindowInput = {\n axes: Partial<Record<VirtualAxis, FixedAxisInputDetail>>;\n};\n\ntype VirtualAxisWindow = {\n axis: VirtualAxis;\n start: number;\n count: number;\n total: number;\n itemSize: number;\n viewportSize: number;\n scrollOffset: number;\n buffer: number;\n visibleStart: number;\n visibleCount: number;\n guardStart: number;\n guardEnd: number;\n translateOffset: number;\n spacerSize: number;\n};\n\ntype FixedAxisWindow = VirtualWindowBase & {\n kind: 'fixed-axis';\n axes: Partial<Record<VirtualAxis, VirtualAxisWindow>>;\n};\n\ntype FixedAxisScrollTarget = {\n axis: VirtualAxis;\n index: number;\n align?: VirtualScrollAlign;\n};\n\ntype FixedAxisWindowAdapter = VirtualWindowAdapter<FixedAxisWindowInput, FixedAxisWindow> & {\n spacerSize(window: FixedAxisWindow, axis: VirtualAxis): number;\n translateOffset(window: FixedAxisWindow, axis: VirtualAxis): number;\n setAxisTotal(input: FixedAxisWindowInput, axis: VirtualAxis, total: number): FixedAxisWindowInput;\n scrollTo(input: FixedAxisInputDetail, target: FixedAxisScrollTarget): number;\n};\n\ntype VirtualWindowRequest<Window extends VirtualWindowBase> = {\n block: string;\n window: Window;\n generation: number;\n requestGeneration: number;\n};\n\ntype VirtualWindowSnapshot<Window extends VirtualWindowBase> = {\n generation: number;\n mounted: ReadonlyMap<string, Window>;\n pending: ReadonlyMap<string, VirtualWindowRequest<Window>>;\n latestDesired: ReadonlyMap<string, Window>;\n};\n\ntype VirtualWindowControllerOptions<Window extends VirtualWindowBase> = {\n onChange?(snapshot: VirtualWindowSnapshot<Window>): void;\n};\n\ntype VirtualWindowController<Input, Window extends VirtualWindowBase> = {\n computeWindow(input: Input): Window;\n shouldLoad(desired: Window, mounted?: Window | null): boolean;\n begin(block: string, desired: Window): VirtualWindowRequest<Window> | null;\n commit(request: VirtualWindowRequest<Window>, mounted?: Window): boolean;\n fail(request: VirtualWindowRequest<Window>): boolean;\n next(block: string): Window | null;\n mounted(block: string): Window | null;\n pending(block: string): VirtualWindowRequest<Window> | null;\n invalidate(): void;\n snapshot(): VirtualWindowSnapshot<Window>;\n};\n\nconst finite = (value: number, fallback = 0): number => (\n Number.isFinite(value) ? value : fallback\n);\n\nconst nonNegativeInteger = (value: number): number => (\n Math.max(0, Math.floor(finite(value)))\n);\n\nconst positive = (value: number, fallback = 1): number => (\n Math.max(Number.EPSILON, finite(value, fallback))\n);\n\nconst clamp = (value: number, minimum: number, maximum: number): number => (\n Math.min(maximum, Math.max(minimum, value))\n);\n\nconst computeAxis = (axis: VirtualAxis, input: FixedAxisInputDetail): VirtualAxisWindow => {\n const total = nonNegativeInteger(input.total);\n const itemSize = positive(input.itemSize);\n const viewportSize = Math.max(0, finite(input.viewportSize));\n const buffer = nonNegativeInteger(input.buffer);\n const visibleCount = Math.min(total, Math.max(1, Math.ceil(viewportSize / itemSize)));\n const maximumVisibleStart = Math.max(0, total - visibleCount);\n const scrollOffset = clamp(\n Math.max(0, finite(input.scrollOffset)),\n 0,\n Math.max(0, total * itemSize - viewportSize),\n );\n const visibleStart = clamp(Math.floor(scrollOffset / itemSize), 0, maximumVisibleStart);\n const count = Math.min(total, visibleCount + (buffer * 2));\n const start = clamp(visibleStart - buffer, 0, Math.max(0, total - count));\n\n return {\n axis,\n start,\n count,\n total,\n itemSize,\n viewportSize,\n scrollOffset,\n buffer,\n visibleStart,\n visibleCount,\n guardStart: Math.min(total, start + buffer),\n guardEnd: Math.max(0, start + count - buffer),\n translateOffset: start * itemSize,\n spacerSize: total * itemSize,\n };\n};\n\nconst fixedAxisWindowAdapter: FixedAxisWindowAdapter = {\n compute(input: FixedAxisWindowInput): FixedAxisWindow {\n const axes: FixedAxisWindow['axes'] = {};\n if (input.axes.x) axes.x = computeAxis('x', input.axes.x);\n if (input.axes.y) axes.y = computeAxis('y', input.axes.y);\n const key = (['x', 'y'] as const)\n .map((axis) => {\n const detail = axes[axis];\n return detail ? `${axis}:${detail.start}:${detail.count}:${detail.total}` : '';\n })\n .filter(Boolean)\n .join('|');\n return {kind: 'fixed-axis', key, axes};\n },\n\n covers(mounted: FixedAxisWindow, desired: FixedAxisWindow): boolean {\n return (['x', 'y'] as const).every((axis) => {\n const wanted = desired.axes[axis];\n if (!wanted) return true;\n const current = mounted.axes[axis];\n if (!current || current.total !== wanted.total || current.itemSize !== wanted.itemSize) return false;\n const desiredEnd = wanted.visibleStart + wanted.visibleCount;\n return wanted.visibleStart >= current.guardStart && desiredEnd <= current.guardEnd;\n });\n },\n\n serialize(window: FixedAxisWindow): Record<string, string> {\n const axes: Record<string, {start: number; count: number; total: number}> = {};\n (['x', 'y'] as const).forEach((axis) => {\n const detail = window.axes[axis];\n if (detail) axes[axis] = {start: detail.start, count: detail.count, total: detail.total};\n });\n return {window: JSON.stringify(axes)};\n },\n\n spacerSize(window: FixedAxisWindow, axis: VirtualAxis): number {\n return window.axes[axis]?.spacerSize ?? 0;\n },\n\n translateOffset(window: FixedAxisWindow, axis: VirtualAxis): number {\n return window.axes[axis]?.translateOffset ?? 0;\n },\n\n setAxisTotal(input: FixedAxisWindowInput, axis: VirtualAxis, total: number): FixedAxisWindowInput {\n const current = input.axes[axis];\n if (!current) return input;\n return {...input, axes: {...input.axes, [axis]: {...current, total: nonNegativeInteger(total)}}};\n },\n\n scrollTo(input: FixedAxisInputDetail, target: FixedAxisScrollTarget): number {\n const total = nonNegativeInteger(input.total);\n const itemSize = positive(input.itemSize);\n const viewportSize = Math.max(0, finite(input.viewportSize));\n const index = clamp(nonNegativeInteger(target.index), 0, Math.max(0, total - 1));\n const itemStart = index * itemSize;\n const itemEnd = itemStart + itemSize;\n const maximum = Math.max(0, total * itemSize - viewportSize);\n let offset = itemStart;\n if (target.align === 'center') offset = itemStart - ((viewportSize - itemSize) / 2);\n else if (target.align === 'end') offset = itemEnd - viewportSize;\n else if (target.align === 'auto') {\n const current = Math.max(0, finite(input.scrollOffset));\n if (itemStart >= current && itemEnd <= current + viewportSize) return clamp(current, 0, maximum);\n offset = itemStart < current ? itemStart : itemEnd - viewportSize;\n }\n return clamp(offset, 0, maximum);\n },\n};\n\nconst createVirtualWindowController = <Input, Window extends VirtualWindowBase>(\n adapter: VirtualWindowAdapter<Input, Window>,\n options: VirtualWindowControllerOptions<Window> = {},\n): VirtualWindowController<Input, Window> => {\n let generation = 0;\n let requestGeneration = 0;\n const mountedWindows = new Map<string, Window>();\n const pendingWindows = new Map<string, VirtualWindowRequest<Window>>();\n const latestDesired = new Map<string, Window>();\n\n const snapshot = (): VirtualWindowSnapshot<Window> => ({\n generation,\n mounted: new Map(mountedWindows),\n pending: new Map(pendingWindows),\n latestDesired: new Map(latestDesired),\n });\n const notify = (): void => options.onChange?.(snapshot());\n const isCurrent = (request: VirtualWindowRequest<Window>): boolean => {\n const pending = pendingWindows.get(request.block);\n return request.generation === generation\n && pending?.requestGeneration === request.requestGeneration;\n };\n\n return {\n computeWindow: (input) => adapter.compute(input),\n shouldLoad: (desired, mounted) => !mounted || !adapter.covers(mounted, desired),\n begin(block, desired) {\n latestDesired.set(block, desired);\n if (pendingWindows.has(block) || !this.shouldLoad(desired, mountedWindows.get(block))) {\n notify();\n return null;\n }\n const request = {\n block,\n window: desired,\n generation,\n requestGeneration: ++requestGeneration,\n };\n pendingWindows.set(block, request);\n notify();\n return request;\n },\n commit(request, mounted = request.window) {\n if (!isCurrent(request)) return false;\n pendingWindows.delete(request.block);\n mountedWindows.set(request.block, mounted);\n notify();\n return true;\n },\n fail(request) {\n if (!isCurrent(request)) return false;\n pendingWindows.delete(request.block);\n notify();\n return true;\n },\n next(block) {\n if (pendingWindows.has(block)) return null;\n const desired = latestDesired.get(block);\n if (!desired) return null;\n const mounted = mountedWindows.get(block);\n if (mounted && adapter.covers(mounted, desired)) return null;\n return desired;\n },\n mounted: (block) => mountedWindows.get(block) ?? null,\n pending: (block) => pendingWindows.get(block) ?? null,\n invalidate() {\n generation += 1;\n mountedWindows.clear();\n pendingWindows.clear();\n latestDesired.clear();\n notify();\n },\n snapshot,\n };\n};\n\nexport {\n createVirtualWindowController,\n fixedAxisWindowAdapter,\n};\nexport type {\n FixedAxisInputDetail,\n FixedAxisScrollTarget,\n FixedAxisWindowAdapter,\n FixedAxisWindow,\n FixedAxisWindowInput,\n VirtualAxis,\n VirtualAxisWindow,\n VirtualScrollAlign,\n VirtualWindowAdapter,\n VirtualWindowBase,\n VirtualWindowController,\n VirtualWindowControllerOptions,\n VirtualWindowKind,\n VirtualWindowRequest,\n VirtualWindowSnapshot,\n};\n","import {bool, number, oneOf, string, type SchemaToProps} from '../../runtime';\n\nconst VIRTUALIZER_AXES = ['vertical'] as const;\ntype VirtualizerAxis = typeof VIRTUALIZER_AXES[number];\n\nconst virtualizerSchema = {\n fetchUrl: string,\n totalItems: number.min(0).default(0),\n itemSize: number.min(Number.EPSILON).default(36),\n bufferSize: number.min(1).default(50),\n overscan: number.min(0).default(0),\n axis: oneOf(VIRTUALIZER_AXES, 'vertical' as VirtualizerAxis),\n initialIndex: number.min(0).default(0),\n startParam: string.default('start'),\n countParam: string.default('count'),\n totalParam: string.default('total'),\n windowParam: string.default('window'),\n totalHeader: string.default('X-Trellis-Total-Items'),\n assetsHeader: string.default('X-Trellis-Assets'),\n metaSelector: string.default('template[data-ui-virtualizer-meta]'),\n scrollArea: bool.default(true),\n fill: bool.default(true),\n class: string,\n scrollAreaClass: string,\n viewportClass: string,\n spacerClass: string,\n blockClass: string,\n};\n\ntype VirtualizerProps = SchemaToProps<typeof virtualizerSchema>;\n\nexport {VIRTUALIZER_AXES, virtualizerSchema};\nexport type {VirtualizerAxis, VirtualizerProps};\n","import type Alpine from 'alpinejs';\n\nimport {\n createVirtualWindowController,\n defineAlpineData,\n defineProps,\n fixedAxisWindowAdapter,\n replaceFragmentChildren,\n type FixedAxisWindow,\n type PropState,\n type TrellisAlpineComponent,\n type VirtualScrollAlign,\n type VirtualWindowRequest,\n} from '@client/runtime';\nimport type {AssetDescriptor} from '@client/assets/bridge';\nimport {virtualizerSchema, type VirtualizerProps} from './contract';\n\ntype ResetOptions = {scrollTop?: number};\ntype SetUrlOptions = {reset?: boolean};\n\n/** Public Alpine API for `ui.virtualizer`. @public */\ninterface UiVirtualizerApi {\n /** Scrolls a logical item into the requested vertical alignment. */\n scrollToIndex(index: number, align?: VirtualScrollAlign): void;\n /** Replaces the known logical item count and reloads mounted ranges. */\n setTotalItems(count: number): void;\n /** Replaces the fragment endpoint and optionally resets to the top. */\n setUrl(url: string, options?: SetUrlOptions): void;\n /** Invalidates all blocks and reloads them around a scroll position. */\n reset(options?: ResetOptions): void;\n /** Reloads all blocks without changing the fragment endpoint. */\n reload(options?: ResetOptions): void;\n}\n\ntype VirtualizerData = UiVirtualizerApi & {\n props: PropState<typeof virtualizerSchema>;\n init(): void;\n destroy(): void;\n};\n\ntype BlockRecord = {\n key: string;\n element: HTMLElement;\n};\n\ntype FragmentPayload = {\n html: string;\n assets: AssetDescriptor[];\n totalItems: number | null;\n};\n\nconst integer = (value: number, minimum = 0): number => (\n Math.max(minimum, Math.floor(Number.isFinite(value) ? value : minimum))\n);\n\nconst parseAssets = (raw: string | null): AssetDescriptor[] => {\n if (!raw) return [];\n try {\n const parsed: unknown = JSON.parse(raw);\n if (!Array.isArray(parsed)) return [];\n return parsed.filter((value): value is AssetDescriptor => (\n typeof value === 'object'\n && value !== null\n && typeof (value as Partial<AssetDescriptor>).id === 'string'\n && typeof (value as Partial<AssetDescriptor>).src === 'string'\n ));\n } catch {\n return [];\n }\n};\n\nconst parseFragment = async (response: Response, props: VirtualizerProps): Promise<FragmentPayload> => {\n const html = response.status === 204 ? '' : await response.text();\n const template = document.createElement('template');\n template.innerHTML = html;\n let totalItems: number | null = null;\n const rawHeaderTotal = response.headers.get(props.totalHeader);\n const headerTotal = rawHeaderTotal === null || rawHeaderTotal.trim() === ''\n ? Number.NaN\n : Number(rawHeaderTotal);\n if (Number.isFinite(headerTotal) && headerTotal >= 0) totalItems = integer(headerTotal);\n\n const meta = template.content.querySelector<HTMLTemplateElement>(props.metaSelector);\n if (meta) {\n if (totalItems === null) {\n try {\n const parsed = JSON.parse(meta.innerHTML) as {totalItems?: unknown};\n const inlineTotal = Number(parsed.totalItems);\n if (Number.isFinite(inlineTotal) && inlineTotal >= 0) totalItems = integer(inlineTotal);\n } catch {\n // Invalid optional metadata does not invalidate otherwise usable fragment HTML.\n }\n }\n meta.remove();\n }\n\n const container = document.createElement('div');\n container.append(template.content);\n return {\n html: container.innerHTML,\n assets: parseAssets(response.headers.get(props.assetsHeader)),\n totalItems,\n };\n};\n\nconst UiVirtualizer = (AlpineInstance: Alpine.Alpine): TrellisAlpineComponent<VirtualizerData> => {\n let root: HTMLElement | null = null;\n let viewport: HTMLElement | null = null;\n let spacer: HTMLElement | null = null;\n let blocks: BlockRecord[] = [];\n let totalItems = 0;\n let currentWindowKey = '';\n let latestScrollTop: number | null = null;\n let scrollFrame = 0;\n let loading = 0;\n let destroyed = false;\n let listenerAborter: AbortController | null = null;\n let suppressPropReload = false;\n const aborters = new Map<string, AbortController>();\n const controller = createVirtualWindowController(fixedAxisWindowAdapter);\n\n const dispatch = (name: string, detail: Record<string, unknown>): void => {\n root?.dispatchEvent(new CustomEvent(name, {bubbles: true, composed: true, detail}));\n };\n const syncState = (): void => {\n if (!root || !spacer) return;\n root.toggleAttribute('data-loading', loading > 0);\n root.toggleAttribute('data-empty', totalItems === 0);\n spacer.style.height = `${Math.max(totalItems * component.props.itemSize, component.props.itemSize)}px`;\n };\n const updateTotal = (next: number): void => {\n const normalized = integer(next);\n if (normalized === totalItems) return;\n totalItems = normalized;\n syncState();\n dispatch('ui:virtualizer-total-change', {totalItems});\n dispatch('ui:virtualizer-axis-total-change', {axis: 'y', total: totalItems, window: null});\n };\n const blockWindow = (start: number): FixedAxisWindow => fixedAxisWindowAdapter.compute({axes: {\n y: {\n total: totalItems,\n itemSize: component.props.itemSize,\n viewportSize: component.props.bufferSize * component.props.itemSize,\n scrollOffset: start * component.props.itemSize,\n buffer: 0,\n },\n }});\n const desiredWindows = (scrollTop: number): FixedAxisWindow[] => {\n if (totalItems === 0) return [];\n const size = integer(component.props.bufferSize, 1);\n const index = Math.min(totalItems - 1, Math.floor(Math.max(0, scrollTop) / component.props.itemSize));\n const center = Math.floor(index / size) * size;\n const last = Math.floor((totalItems - 1) / size) * size;\n const starts = [center - size, center, center + size]\n .map((start) => Math.min(last, Math.max(0, start)));\n if (center === 0 && last > size) starts.splice(0, 3, 0, size, Math.min(last, size * 2));\n else if (center === last && last > size) starts.splice(0, 3, Math.max(0, last - (size * 2)), last - size, last);\n return [...new Set(starts)].map(blockWindow);\n };\n const requestUrl = (window: FixedAxisWindow): string => {\n const axis = window.axes.y;\n if (!axis) throw new Error('Vertical virtualizer requires a y window.');\n const url = new URL(component.props.fetchUrl, document.baseURI);\n url.searchParams.set(component.props.startParam, String(axis.start));\n url.searchParams.set(component.props.countParam, String(axis.count));\n url.searchParams.set(component.props.totalParam, String(axis.total));\n return /^[a-z][a-z\\d+.-]*:/i.test(component.props.fetchUrl) || component.props.fetchUrl.startsWith('//')\n ? url.href\n : `${url.pathname}${url.search}${url.hash}`;\n };\n const settle = (): void => {\n loading = Math.max(0, loading - 1);\n syncState();\n if (loading > 0 || latestScrollTop === null || destroyed) return;\n const scrollTop = latestScrollTop;\n latestScrollTop = null;\n reconcile(scrollTop);\n };\n const load = async (\n block: BlockRecord,\n window: FixedAxisWindow,\n request: VirtualWindowRequest<FixedAxisWindow>,\n ): Promise<void> => {\n const axis = window.axes.y;\n if (!axis) return;\n const aborter = new AbortController();\n aborters.set(block.key, aborter);\n loading += 1;\n syncState();\n root?.removeAttribute('data-error');\n dispatch('ui:virtualizer-load-start', {block: block.key, window});\n try {\n const requestId = globalThis.crypto?.randomUUID?.() ?? `${Date.now()}-${request.requestGeneration}`;\n const response = await fetch(requestUrl(window), {\n method: 'GET',\n headers: {\n Accept: 'text/html',\n 'X-Trellis-Virtualizer': 'true',\n 'X-Trellis-Request-ID': requestId,\n },\n signal: aborter.signal,\n });\n if (!response.ok && response.status !== 204) {\n controller.fail(request);\n root?.setAttribute('data-error', '');\n dispatch('ui:virtualizer-error', {block: block.key, window, status: response.status});\n return;\n }\n const payload = await parseFragment(response, component.props);\n if (controller.pending(block.key) !== request || destroyed) return;\n const hadFocus = block.element.contains(document.activeElement);\n const replaced = await replaceFragmentChildren(AlpineInstance, block.element, payload.html, {\n assets: payload.assets,\n shouldReplace: () => controller.pending(block.key) === request && !destroyed,\n });\n if (!replaced) return;\n if (hadFocus) viewport?.focus({preventScroll: true});\n if (payload.totalItems !== null) updateTotal(payload.totalItems);\n if (!controller.commit(request, window)) return;\n block.element.style.transform = `translateY(${axis.translateOffset}px)`;\n dispatch('ui:virtualizer-load', {block: block.key, window});\n } catch (error) {\n if (aborter.signal.aborted) return;\n controller.fail(request);\n root?.setAttribute('data-error', '');\n dispatch('ui:virtualizer-error', {block: block.key, window, status: 0, error});\n } finally {\n if (aborters.get(block.key) === aborter) aborters.delete(block.key);\n settle();\n }\n };\n const reconcile = (scrollTop: number): void => {\n if (loading > 0) {\n latestScrollTop = scrollTop;\n return;\n }\n const desired = desiredWindows(scrollTop);\n const signature = desired.map((window) => window.key).join(',');\n const logicalIndex = Math.min(\n Math.max(0, totalItems - 1),\n Math.floor(Math.max(0, scrollTop) / component.props.itemSize),\n );\n const center = desired.find((window) => {\n const axis = window.axes.y;\n return axis && logicalIndex >= axis.start && logicalIndex < axis.start + axis.count;\n }) ?? desired[0];\n if (center && currentWindowKey !== center.key) {\n currentWindowKey = center.key;\n const axis = center.axes.y!;\n dispatch('ui:virtualizer-window', {window: center});\n dispatch('ui:virtualizer-range', {\n start: axis.start,\n count: axis.count,\n end: axis.start + axis.count,\n window: center,\n });\n }\n if (!signature) {\n blocks.forEach((block) => void replaceFragmentChildren(AlpineInstance, block.element, ''));\n return;\n }\n\n const preserved = new Set<BlockRecord>();\n desired.forEach((window) => {\n const existing = blocks.find((block) => controller.mounted(block.key)?.key === window.key);\n if (existing) preserved.add(existing);\n });\n const available = blocks.filter((block) => !preserved.has(block));\n desired.forEach((window) => {\n if (blocks.some((block) => controller.mounted(block.key)?.key === window.key)) return;\n const block = available.shift();\n if (!block) return;\n const request = controller.begin(block.key, window);\n if (request) void load(block, window, request);\n });\n };\n const invalidate = (): void => {\n aborters.forEach((aborter) => aborter.abort());\n aborters.clear();\n loading = 0;\n latestScrollTop = null;\n currentWindowKey = '';\n controller.invalidate();\n blocks.forEach((block) => {\n block.element.style.transform = '';\n void replaceFragmentChildren(AlpineInstance, block.element, '');\n });\n syncState();\n };\n\n const component: TrellisAlpineComponent<VirtualizerData> = {\n props: null as unknown as PropState<typeof virtualizerSchema>,\n init(): void {\n root = this.$el;\n destroyed = false;\n this.props = defineProps({\n el: root,\n schema: virtualizerSchema,\n onChange: (_state, changes) => {\n if (suppressPropReload) return;\n if (changes.some(({key}) => key === 'totalItems')) {\n updateTotal(this.props.totalItems);\n this.reload();\n } else if (changes.some(({key}) => ['fetchUrl', 'itemSize', 'bufferSize'].includes(key))) {\n this.reload();\n }\n },\n });\n totalItems = integer(this.props.totalItems);\n viewport = root.querySelector<HTMLElement>('[data-ui-scroll-area-viewport]') ?? root;\n spacer = root.querySelector<HTMLElement>('[data-ui-virtualizer-spacer]');\n blocks = Array.from(root.querySelectorAll<HTMLElement>('[data-ui-virtualizer-block]'))\n .slice(0, 3)\n .map((element, index) => ({element, key: `block-${index + 1}`}));\n if (!spacer || blocks.length !== 3) throw new Error('Virtualizer requires one spacer and three block containers.');\n viewport.style.overscrollBehavior = 'contain';\n viewport.style.overflowAnchor = 'none';\n listenerAborter = new AbortController();\n viewport.addEventListener('scroll', () => {\n if (scrollFrame) return;\n scrollFrame = requestAnimationFrame(() => {\n scrollFrame = 0;\n if (viewport) reconcile(viewport.scrollTop);\n });\n }, {passive: true, signal: listenerAborter.signal});\n viewport.scrollTop = fixedAxisWindowAdapter.scrollTo({\n total: totalItems,\n itemSize: this.props.itemSize,\n viewportSize: viewport.clientHeight,\n scrollOffset: 0,\n buffer: this.props.bufferSize,\n }, {axis: 'y', index: this.props.initialIndex});\n syncState();\n reconcile(viewport.scrollTop);\n },\n destroy(): void {\n destroyed = true;\n if (scrollFrame) cancelAnimationFrame(scrollFrame);\n listenerAborter?.abort();\n listenerAborter = null;\n invalidate();\n this.props.disconnect();\n root = null;\n viewport = null;\n spacer = null;\n blocks = [];\n },\n scrollToIndex(index, align = 'start'): void {\n if (!viewport) return;\n viewport.scrollTop = fixedAxisWindowAdapter.scrollTo({\n total: totalItems,\n itemSize: this.props.itemSize,\n viewportSize: viewport.clientHeight,\n scrollOffset: viewport.scrollTop,\n buffer: this.props.bufferSize,\n }, {axis: 'y', index, align});\n reconcile(viewport.scrollTop);\n },\n setTotalItems(count): void {\n updateTotal(count);\n const scrollTop = viewport?.scrollTop;\n this.reload(scrollTop === undefined ? {} : {scrollTop});\n },\n setUrl(url, options = {}): void {\n suppressPropReload = true;\n this.props.fetchUrl = String(url);\n suppressPropReload = false;\n if (options.reset ?? true) this.reset();\n else this.reload();\n },\n reset(options = {}): void {\n this.reload({scrollTop: options.scrollTop ?? 0});\n },\n reload(options = {}): void {\n const scrollTop = options.scrollTop ?? viewport?.scrollTop ?? 0;\n invalidate();\n if (viewport) viewport.scrollTop = Math.max(0, scrollTop);\n reconcile(scrollTop);\n },\n };\n return component;\n};\n\nconst registerVirtualizer = (AlpineInstance: Alpine.Alpine): void => {\n defineAlpineData('UiVirtualizer', () => UiVirtualizer(AlpineInstance))(AlpineInstance);\n};\n\nexport {registerVirtualizer, UiVirtualizer};\nexport type {\n ResetOptions,\n SetUrlOptions,\n UiVirtualizerApi,\n VirtualizerData,\n VirtualScrollAlign,\n};\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';\n\nimport {registerVirtualizer as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerVirtualizer = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n\n registerComponent(AlpineInstance);\n};\n\nexport {registerVirtualizer};\nexport default registerVirtualizer;\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-Dmm9SoIv.js";import{t as c}from"./capability-motion-CHT-6DKB.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-CMEyTYos.js.map
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-D44EkjK3.js";import{t as c}from"./capability-motion-VFYcNVM5.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-DvAia1Wz.js.map