@vireo-ai/trellis-ui 0.1.39 → 0.1.40
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/components/data-grid/styles.css +73 -0
- package/packages/client/src/components/select/styles.css +14 -0
- package/packages/client/src/styles/components.css +1 -0
- package/packages/client/src/styles/generated-sources.css +1 -1
- package/packages/client/types/assets/full-runtime.generated.d.ts +1 -1
- package/packages/client/types/components/badge/contract.d.ts +1 -1
- package/packages/client/types/components/button/contract.d.ts +1 -1
- package/packages/client/types/components/card/contract.d.ts +2 -2
- package/packages/client/types/components/checkbox/contract.d.ts +6 -6
- package/packages/client/types/components/data-grid/contract.d.ts +107 -0
- package/packages/client/types/components/data-grid/entry.generated.d.ts +5 -0
- package/packages/client/types/components/data-grid/index.d.ts +34 -0
- package/packages/client/types/components/data-grid/model.d.ts +43 -0
- package/packages/client/types/components/data-grid/runtime-docs.d.ts +2 -0
- package/packages/client/types/components/date-picker/contract.d.ts +1 -1
- package/packages/client/types/components/date-picker/machine.d.ts +2 -2
- package/packages/client/types/components/entry.generated.d.ts +1 -0
- package/packages/client/types/components/menu/contract.d.ts +1 -1
- package/packages/client/types/components/radio/contract.d.ts +4 -4
- package/packages/client/types/components/runtime.d.ts +3 -0
- package/packages/client/types/components/select/contract.d.ts +10 -1
- package/packages/client/types/components/select/machine.d.ts +20 -2
- package/packages/client/types/components/sidebar/contract.d.ts +1 -1
- package/packages/client/types/components/table/contract.d.ts +3 -3
- package/packages/client/types/components/toast/contract.d.ts +1 -1
- package/packages/client/types/components/toast/machine.d.ts +1 -1
- package/packages/client/types/directives/sortable.d.ts +6 -0
- package/packages/client/types/runtime/drag-and-drop/sortable/contract.d.ts +6 -1
- package/packages/client/types/runtime/drag-and-drop/sortable/ghost.d.ts +5 -2
- package/packages/client/types/runtime/index.d.ts +1 -0
- package/packages/client/types/runtime/virtualizer-fragment.d.ts +14 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/css/trellis.css +82 -0
- 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 +156 -112
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/capabilities/resizable.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-resizable-Bga8TngJ.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{capability-resizable-C6LKIbpv.js.map → capability-resizable-Bga8TngJ.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-BU1g9uTC.js +3 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-BU1g9uTC.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{drag-and-drop-BV6kB47L.js → drag-and-drop-DHq3udf7.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{drag-and-drop-BV6kB47L.js.map → drag-and-drop-DHq3udf7.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B2rTvkxi.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-B2rTvkxi.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C35Q-qoz.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-C35Q-qoz.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DI48yD0K.js → entry.generated-C7Kas-N2.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DI48yD0K.js.map → entry.generated-C7Kas-N2.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DvAia1Wz.js → entry.generated-Cc5mRBBS.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry.generated-DvAia1Wz.js.map → entry.generated-Cc5mRBBS.js.map} +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/{entry2.generated-BhPEF6oz.js → entry.generated-QspMEPHx.js} +2 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-QspMEPHx.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-C5DAZC4R.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-C5DAZC4R.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/virtual-window-BHdOw3Pi.js +2 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/virtual-window-BHdOw3Pi.js.map +1 -0
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/data-grid.js +1 -0
- 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/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/table.js +1 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer.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 +61 -33
- 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-resizable-C6LKIbpv.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-l7SPMutG.js +0 -3
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/capability-sortable-l7SPMutG.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Bsennsyl.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-Bsennsyl.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DuNS3MYH.js +0 -2
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry.generated-DuNS3MYH.js.map +0 -1
- package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/entry2.generated-BhPEF6oz.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry2.generated-C5DAZC4R.js","names":[],"sources":["../../../../../../../../client/src/components/data-grid/contract.ts","../../../../../../../../client/src/components/data-grid/model.ts","../../../../../../../../client/src/components/data-grid/index.ts","../../../../../../../../client/src/components/data-grid/entry.generated.ts"],"sourcesContent":["import {bool, json, number, oneOf, string, type SchemaToProps} from '../../runtime';\nimport {INTERACTION_TREATMENTS, SELECTION_COLORS} from '../common';\n\nconst DATA_GRID_SELECTIONS = ['none', 'single', 'multiple'] as const;\nconst DATA_GRID_DENSITIES = ['compact', 'default', 'comfortable'] as const;\nconst DATA_GRID_BORDERS = ['none', 'row', 'grid'] as const;\nconst DATA_GRID_RESIZE_MODES = ['onChange', 'onEnd'] as const;\nconst DATA_GRID_PINS = ['', 'left', 'right'] as const;\nconst DATA_GRID_SORTS = ['none', 'ascending', 'descending', 'other'] as const;\nconst DATA_GRID_ALIGNS = ['start', 'center', 'end'] as const;\n\ntype DataGridSelectionValue =\n | {mode: 'ids'; ids: string[]}\n | {mode: 'query'; token: string; total: number; except: string[]};\n\nconst dataGridSchema = {\n fetchUrl: string,\n totalRows: number.min(0).default(0),\n rowHeight: number.min(Number.EPSILON).default(36),\n bufferSize: number.min(1).default(50),\n overscan: number.min(0).default(0),\n initialIndex: number.min(0).default(0),\n startParam: string.default('start'),\n countParam: string.default('count'),\n totalParam: string.default('total'),\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 selection: oneOf(DATA_GRID_SELECTIONS, 'none'),\n selectionValue: json<DataGridSelectionValue>({mode: 'ids', ids: []}),\n selectOnRowClick: bool,\n rowKey: string.default('id'),\n stickyHeader: bool.default(true),\n resizableColumns: bool.default(true),\n reorderableColumns: bool.default(true),\n sortableColumns: bool.default(true),\n minColumnWidth: number.min(0).default(60),\n defaultColumnWidth: number.min(Number.EPSILON).default(180),\n maxColumnWidth: json<number | null>(null),\n resizeMode: oneOf(DATA_GRID_RESIZE_MODES, 'onChange'),\n color: oneOf(SELECTION_COLORS, 'neutral'),\n interaction: oneOf(INTERACTION_TREATMENTS, 'edge'),\n dragPreviewPosition: string.trim.default('12px 12px'),\n density: oneOf(DATA_GRID_DENSITIES, 'default'),\n border: oneOf(DATA_GRID_BORDERS, 'row'),\n empty: string.default('No rows found.'),\n class: string,\n controlsClass: string,\n viewportClass: string,\n headerClass: string,\n rowClass: string,\n cellClass: string,\n footerClass: string,\n emptyClass: string,\n};\n\nconst dataGridColumnSchema = {\n key: string,\n label: string,\n width: number.min(Number.EPSILON).default(180),\n minWidth: number.min(0).default(60),\n maxWidth: json<number | null>(null),\n hidden: bool,\n pinned: oneOf(DATA_GRID_PINS, ''),\n sortable: bool,\n sort: oneOf(DATA_GRID_SORTS, 'none'),\n resizable: bool.default(true),\n reorderable: bool.default(true),\n align: oneOf(DATA_GRID_ALIGNS, 'start'),\n class: string,\n headerClass: string,\n labelClass: string,\n resizeHandleClass: string,\n};\n\nconst dataGridRowsSchema = {\n rows: json<unknown[]>([]),\n columns: json<Array<Record<string, unknown>>>([]),\n startIndex: number.min(0).default(0),\n rowKey: string.default('id'),\n rowComponent: string.default('ui.data-grid.row'),\n cellComponent: string.default('ui.data-grid.cell'),\n class: string,\n};\nconst dataGridRowSchema = {key: string, index: number.min(0).default(0), class: string};\nconst dataGridCellSchema = {column: string, index: number.min(1).default(1), align: oneOf(DATA_GRID_ALIGNS, 'start'), class: string};\nconst dataGridEmptySchema = {class: string};\n\ntype DataGridProps = SchemaToProps<typeof dataGridSchema>;\ntype DataGridColumnProps = SchemaToProps<typeof dataGridColumnSchema>;\ntype DataGridRowsProps = SchemaToProps<typeof dataGridRowsSchema>;\ntype DataGridSelection = typeof DATA_GRID_SELECTIONS[number];\ntype DataGridPin = Exclude<typeof DATA_GRID_PINS[number], ''> | null;\ntype DataGridSort = typeof DATA_GRID_SORTS[number];\ntype DataGridAlign = typeof DATA_GRID_ALIGNS[number];\n\nexport {\n DATA_GRID_ALIGNS,\n DATA_GRID_BORDERS,\n DATA_GRID_DENSITIES,\n DATA_GRID_PINS,\n DATA_GRID_RESIZE_MODES,\n DATA_GRID_SELECTIONS,\n DATA_GRID_SORTS,\n dataGridCellSchema,\n dataGridColumnSchema,\n dataGridEmptySchema,\n dataGridRowSchema,\n dataGridRowsSchema,\n dataGridSchema,\n};\nexport type {\n DataGridAlign,\n DataGridColumnProps,\n DataGridPin,\n DataGridProps,\n DataGridRowsProps,\n DataGridSelection,\n DataGridSelectionValue,\n DataGridSort,\n};\n","import type {DataGridAlign, DataGridPin, DataGridSelection, DataGridSelectionValue, DataGridSort} from './contract';\n\ntype DataGridColumn = {\n key: string;\n label: string;\n width: number;\n minWidth: number;\n maxWidth: number | null;\n hidden: boolean;\n pinned: DataGridPin;\n sortable: boolean;\n sort: DataGridSort;\n resizable: boolean;\n reorderable: boolean;\n align: DataGridAlign;\n cellClass: string;\n element: HTMLElement;\n};\n\ntype DataGridColumnDefaults = {\n width: number;\n minWidth: number;\n maxWidth: number | null;\n resizable: boolean;\n reorderable: boolean;\n};\n\ntype DataGridPinnedOffsets = {left: Map<string, number>; right: Map<string, number>};\ntype SelectionChange = {selection: DataGridSelectionValue; added: string[]; removed: string[]};\n\nconst numberAttribute = (element: HTMLElement, name: string, fallback: number): number => {\n const raw = element.getAttribute(name);\n if (raw === null || raw.trim() === '') return fallback;\n const value = Number(raw);\n return Number.isFinite(value) ? value : fallback;\n};\n\nconst optionalNumberAttribute = (element: HTMLElement, name: string, fallback: number | null): number | null => {\n const raw = element.getAttribute(name);\n if (raw === null || raw.trim() === '') return fallback;\n const value = Number(raw);\n return Number.isFinite(value) && value > 0 ? value : null;\n};\n\nconst boolAttribute = (element: HTMLElement, name: string, fallback: boolean): boolean => {\n if (!element.hasAttribute(name)) return fallback;\n const raw = element.getAttribute(name) ?? '';\n return raw === '' || ['true', '1', 'yes', 'on'].includes(raw.toLowerCase());\n};\n\nconst normalizeDataGridColumns = (\n elements: readonly HTMLElement[],\n defaults: DataGridColumnDefaults,\n): DataGridColumn[] => {\n const seen = new Set<string>();\n return elements.flatMap((element) => {\n const key = (element.dataset.column ?? '').trim();\n if (!key) throw new Error('Data Grid columns require a non-empty key.');\n if (element.hasAttribute('data-hidden')) return [];\n if (seen.has(key)) throw new Error(`Data Grid column key \"${key}\" is duplicated.`);\n seen.add(key);\n const minWidth = Math.max(0, numberAttribute(element, 'data-min-width', defaults.minWidth));\n const maxWidth = optionalNumberAttribute(element, 'data-max-width', defaults.maxWidth);\n const unclamped = numberAttribute(element, 'data-width', defaults.width);\n const width = Math.min(maxWidth ?? Number.POSITIVE_INFINITY, Math.max(minWidth, unclamped));\n const pinned = element.dataset.pinned === 'left' || element.dataset.pinned === 'right'\n ? element.dataset.pinned\n : null;\n const sort = ['ascending', 'descending', 'other'].includes(element.dataset.sort ?? '')\n ? element.dataset.sort as DataGridSort\n : 'none';\n const align = ['center', 'end'].includes(element.dataset.align ?? '')\n ? element.dataset.align as DataGridAlign\n : 'start';\n return [{\n key,\n label: element.dataset.label ?? element.textContent?.trim() ?? key,\n width,\n minWidth,\n maxWidth,\n hidden: false,\n pinned,\n sortable: boolAttribute(element, 'data-sortable', false),\n sort,\n resizable: boolAttribute(element, 'data-resizable', defaults.resizable),\n reorderable: boolAttribute(element, 'data-reorderable', defaults.reorderable),\n align,\n cellClass: element.dataset.cellClass ?? '',\n element,\n }];\n });\n};\n\nconst columnTemplate = (columns: readonly DataGridColumn[]): string => (\n columns.map(({width}) => `${width}px`).join(' ')\n);\n\nconst pinnedOffsets = (columns: readonly DataGridColumn[]): DataGridPinnedOffsets => {\n const left = new Map<string, number>();\n const right = new Map<string, number>();\n let offset = 0;\n columns.forEach((column) => {\n if (column.pinned !== 'left') return;\n left.set(column.key, offset);\n offset += column.width;\n });\n offset = 0;\n [...columns].reverse().forEach((column) => {\n if (column.pinned !== 'right') return;\n right.set(column.key, offset);\n offset += column.width;\n });\n return {left, right};\n};\n\nconst cssEscape = (value: string): string => (\n globalThis.CSS?.escape ? globalThis.CSS.escape(value) : value.replace(/[^a-zA-Z0-9_-]/g, (character) => `\\\\${character}`)\n);\n\nconst dataGridLayoutCss = (scope: string, columns: readonly DataGridColumn[]): string => {\n const offsets = pinnedOffsets(columns);\n return columns.map((column, index) => {\n const owner = `[data-ui-data-grid-scope=\"${cssEscape(scope)}\"]`;\n const columnSelector = `[data-column=\"${cssEscape(column.key)}\"]`;\n const selector = `${owner} [data-ui-data-grid-column-header]${columnSelector},${owner} [data-ui-data-grid-cell]${columnSelector}`;\n const pin = column.pinned === 'left'\n ? `position:sticky;left:${offsets.left.get(column.key) ?? 0}px;z-index:2;`\n : column.pinned === 'right'\n ? `position:sticky;right:${offsets.right.get(column.key) ?? 0}px;z-index:2;`\n : '';\n return `${selector}{grid-column:${index + 1};${pin}}`;\n }).join('');\n};\n\nconst normalizeSelection = (value: unknown, mode: DataGridSelection): DataGridSelectionValue => {\n if (mode === 'multiple' && typeof value === 'object' && value !== null && (value as {mode?: unknown}).mode === 'query') {\n const query = value as Partial<Extract<DataGridSelectionValue, {mode: 'query'}>>;\n if (typeof query.token === 'string' && Number.isFinite(query.total)) return {\n mode: 'query',\n token: query.token,\n total: Math.max(0, Math.floor(query.total ?? 0)),\n except: [...new Set(Array.isArray(query.except) ? query.except.filter((key): key is string => typeof key === 'string') : [])],\n };\n }\n const ids = typeof value === 'object' && value !== null && (value as {mode?: unknown}).mode === 'ids'\n && Array.isArray((value as {ids?: unknown}).ids)\n ? (value as {ids: unknown[]}).ids.filter((key): key is string => typeof key === 'string')\n : [];\n const unique = [...new Set(ids)];\n return {mode: 'ids', ids: mode === 'single' ? unique.slice(0, 1) : mode === 'none' ? [] : unique};\n};\n\nconst isRowSelected = (selection: DataGridSelectionValue, key: string): boolean => (\n selection.mode === 'query' ? !selection.except.includes(key) : selection.ids.includes(key)\n);\n\nconst toggleSelection = (\n current: DataGridSelectionValue,\n key: string,\n mode: DataGridSelection,\n selected?: boolean,\n): SelectionChange => {\n const normalized = normalizeSelection(current, mode);\n if (mode === 'none') return {selection: normalized, added: [], removed: []};\n const wasSelected = isRowSelected(normalized, key);\n const nextSelected = selected ?? !wasSelected;\n if (wasSelected === nextSelected) return {selection: normalized, added: [], removed: []};\n if (normalized.mode === 'query') {\n const except = nextSelected\n ? normalized.except.filter((value) => value !== key)\n : [...normalized.except, key];\n return {selection: {...normalized, except}, added: nextSelected ? [key] : [], removed: nextSelected ? [] : [key]};\n }\n const ids = mode === 'single' && nextSelected\n ? [key]\n : nextSelected\n ? [...normalized.ids, key]\n : normalized.ids.filter((value) => value !== key);\n return {selection: {mode: 'ids', ids}, added: nextSelected ? [key] : [], removed: nextSelected ? [] : [key]};\n};\n\nconst reorderColumns = (columns: readonly DataGridColumn[], key: string, toIndex: number): DataGridColumn[] | null => {\n const from = columns.findIndex((column) => column.key === key);\n if (from < 0 || !columns[from]?.reorderable) return null;\n const region = columns[from]?.pinned ?? null;\n const regionIndexes = columns.flatMap((column, index) => column.pinned === region ? [index] : []);\n if (!regionIndexes.includes(toIndex)) return null;\n const next = [...columns];\n const [column] = next.splice(from, 1);\n if (!column) return null;\n next.splice(toIndex, 0, column);\n return next;\n};\n\nexport {\n columnTemplate,\n dataGridLayoutCss,\n isRowSelected,\n normalizeDataGridColumns,\n normalizeSelection,\n pinnedOffsets,\n reorderColumns,\n toggleSelection,\n};\nexport type {DataGridColumn, DataGridColumnDefaults, DataGridPinnedOffsets, SelectionChange};\n","import type Alpine from 'alpinejs';\n\nimport {\n createResizable,\n createVirtualWindowController,\n defineAlpineData,\n defineProps,\n fixedAxisWindowAdapter,\n parseVirtualizerFragmentResponse,\n reflectSchemaProp,\n replaceFragmentChildren,\n type FixedAxisWindow,\n type PropState,\n type ResizeEvent,\n type TrellisAlpineComponent,\n type VirtualScrollAlign,\n type VirtualWindowRequest,\n} from '@client/runtime';\nimport {dataGridSchema, type DataGridSelectionValue} from './contract';\nimport {\n columnTemplate,\n dataGridLayoutCss,\n isRowSelected,\n normalizeDataGridColumns,\n normalizeSelection,\n reorderColumns,\n toggleSelection,\n type DataGridColumn,\n} from './model';\n\ntype DataGridResetOptions = {scrollTop?: number};\ntype DataGridSetUrlOptions = {reset?: boolean};\n\n/** Public Alpine API for `ui.data-grid`. @public */\ninterface UiDataGridApi {\n reload(options?: DataGridResetOptions): void;\n reset(options?: DataGridResetOptions): void;\n scrollToIndex(index: number, align?: VirtualScrollAlign): void;\n setUrl(url: string, options?: DataGridSetUrlOptions): void;\n setTotalRows(count: number): void;\n resizeColumn(key: string, width: number): void;\n reorderColumn(key: string, toIndex: number): void;\n selectRow(key: string): void;\n deselectRow(key: string): void;\n toggleRow(key: string): void;\n setSelection(value: DataGridSelectionValue): void;\n selectQuery(token: string, total: number, except?: string[]): void;\n clearSelection(): void;\n}\n\ntype DataGridData = UiDataGridApi & {\n props: PropState<typeof dataGridSchema>;\n init(): void;\n destroy(): void;\n};\n\ntype BlockRecord = {key: string; element: HTMLElement};\n\nconst integer = (value: number, minimum = 0): number => (\n Math.max(minimum, Math.floor(Number.isFinite(value) ? value : minimum))\n);\n\nconst interactiveSelector = 'a,button,input,select,textarea,[contenteditable],[role=\"button\"],[role=\"link\"]';\n\nconst UiDataGrid = (AlpineInstance: Alpine.Alpine): TrellisAlpineComponent<DataGridData> => {\n let root: HTMLElement | null = null;\n let viewport: HTMLElement | null = null;\n let table: HTMLElement | null = null;\n let spacer: HTMLElement | null = null;\n let styleElement: HTMLStyleElement | null = null;\n let columns: DataGridColumn[] = [];\n let blocks: BlockRecord[] = [];\n let totalRows = 0;\n let selection: DataGridSelectionValue = {mode: 'ids', ids: []};\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 suppressPropChange = false;\n const requestAborters = new Map<string, AbortController>();\n const resizeCleanups: Array<() => void> = [];\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 addClasses = (element: HTMLElement, value: string): void => {\n const names = value.split(/\\s+/).filter(Boolean);\n if (names.length) element.classList.add(...names);\n };\n const rows = (): HTMLElement[] => Array.from(root?.querySelectorAll<HTMLElement>('[data-ui-data-grid-row]') ?? []);\n const reflectMountedSelection = (): void => {\n rows().forEach((row) => {\n const key = row.dataset.rowKey ?? '';\n const selected = component.props.selection !== 'none' && key !== '' && isRowSelected(selection, key);\n row.toggleAttribute('data-selected', selected);\n if (component.props.selection === 'none') row.removeAttribute('aria-selected');\n else row.setAttribute('aria-selected', String(selected));\n });\n };\n const syncColumnLayout = (): void => {\n if (!root || !styleElement) return;\n root.style.setProperty('--ui-data-grid-template', columnTemplate(columns));\n const scope = root.dataset.uiDataGridScope ?? '';\n styleElement.textContent = dataGridLayoutCss(scope, columns);\n table?.setAttribute('aria-colcount', String(columns.length));\n const headerRow = root.querySelector<HTMLElement>('[data-ui-data-grid-header-row]');\n columns.forEach((column) => headerRow?.append(column.element));\n const indicator = headerRow?.querySelector<HTMLElement>('[data-ui-data-grid-column-indicator]');\n if (indicator) headerRow?.append(indicator);\n rows().forEach((row) => {\n const cells = new Map(Array.from(row.children).flatMap((element) => (\n element instanceof HTMLElement && element.hasAttribute('data-ui-data-grid-cell')\n ? [[element.dataset.column ?? '', element] as const]\n : []\n )));\n columns.forEach(({key}) => {\n const cell = cells.get(key);\n if (cell) row.append(cell);\n });\n });\n columns.forEach((column, index) => {\n column.element.setAttribute('aria-colindex', String(index + 1));\n column.element.dataset.pinned = column.pinned ?? '';\n column.element.toggleAttribute('data-pinned', column.pinned !== null);\n });\n rows().forEach((row) => addClasses(row, component.props.rowClass));\n root.querySelectorAll<HTMLElement>('[data-ui-data-grid-cell]').forEach((cell) => {\n const index = columns.findIndex(({key}) => key === cell.dataset.column);\n if (index >= 0) {\n const column = columns[index]!;\n cell.setAttribute('aria-colindex', String(index + 1));\n addClasses(cell, component.props.cellClass);\n addClasses(cell, column.cellClass);\n if (column.pinned) cell.dataset.pinned = column.pinned;\n else cell.removeAttribute('data-pinned');\n }\n });\n };\n const syncState = (): void => {\n if (!root || !spacer) return;\n root.toggleAttribute('data-loading', loading > 0);\n root.toggleAttribute('data-empty', totalRows === 0);\n root.dataset.selection = component.props.selection;\n table?.setAttribute('aria-rowcount', String(totalRows + 1));\n root.style.setProperty('--ui-data-grid-row-height', `${component.props.rowHeight}px`);\n root.style.setProperty('--ui-data-grid-total-height', `${Math.max(totalRows * component.props.rowHeight, component.props.rowHeight)}px`);\n spacer.style.height = `var(--ui-data-grid-total-height)`;\n reflectMountedSelection();\n };\n const updateTotal = (next: number): void => {\n const normalized = integer(next);\n if (normalized === totalRows) return;\n totalRows = normalized;\n syncState();\n dispatch('ui:data-grid-total-change', {totalRows});\n };\n const blockWindow = (start: number): FixedAxisWindow => fixedAxisWindowAdapter.compute({axes: {y: {\n total: totalRows,\n itemSize: component.props.rowHeight,\n viewportSize: component.props.bufferSize * component.props.rowHeight,\n scrollOffset: start * component.props.rowHeight,\n buffer: 0,\n }}});\n const desiredWindows = (scrollTop: number): FixedAxisWindow[] => {\n if (totalRows === 0) return [];\n const size = integer(component.props.bufferSize, 1);\n const index = Math.min(totalRows - 1, Math.floor(Math.max(0, scrollTop) / component.props.rowHeight));\n const center = Math.floor(index / size) * size;\n const last = Math.floor((totalRows - 1) / size) * size;\n const starts = [center - size, center, center + size].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('Data Grid requires a vertical virtual 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 requestAborters.set(block.key, aborter);\n loading += 1;\n syncState();\n root?.removeAttribute('data-error');\n dispatch('ui:data-grid-load-start', {window});\n try {\n const requestId = globalThis.crypto?.randomUUID?.() ?? `${Date.now()}-${request.requestGeneration}`;\n const response = await fetch(requestUrl(window), {method: 'GET', headers: {\n Accept: 'text/html',\n 'X-Trellis-Virtualizer': 'true',\n 'X-Trellis-Request-ID': requestId,\n }, signal: aborter.signal});\n if (!response.ok && response.status !== 204) {\n controller.fail(request);\n root?.setAttribute('data-error', '');\n dispatch('ui:data-grid-error', {window, status: response.status});\n return;\n }\n const payload = await parseVirtualizerFragmentResponse(response, component.props);\n if (controller.pending(block.key) !== request || destroyed) return;\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 (payload.totalItems !== null) updateTotal(payload.totalItems);\n if (!controller.commit(request, window)) return;\n block.element.style.height = `${axis.count * component.props.rowHeight}px`;\n block.element.style.transform = `translateY(${axis.translateOffset}px)`;\n syncColumnLayout();\n reflectMountedSelection();\n dispatch('ui:data-grid-load', {window, start: axis.start, count: axis.count, end: axis.start + axis.count});\n } catch (error) {\n if (aborter.signal.aborted) return;\n controller.fail(request);\n root?.setAttribute('data-error', '');\n dispatch('ui:data-grid-error', {window, status: 0, error});\n } finally {\n if (requestAborters.get(block.key) === aborter) requestAborters.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 logicalIndex = Math.min(Math.max(0, totalRows - 1), Math.floor(Math.max(0, scrollTop) / component.props.rowHeight));\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:data-grid-range', {start: axis.start, count: axis.count, end: axis.start + axis.count, window: center});\n }\n if (desired.length === 0) {\n blocks.forEach((block) => void replaceFragmentChildren(AlpineInstance, block.element, ''));\n return;\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 requestAborters.forEach((aborter) => aborter.abort());\n requestAborters.clear();\n loading = 0;\n latestScrollTop = null;\n currentWindowKey = '';\n controller.invalidate();\n blocks.forEach((block) => {\n block.element.style.height = '';\n block.element.style.transform = '';\n void replaceFragmentChildren(AlpineInstance, block.element, '');\n });\n syncState();\n };\n const setSelection = (value: DataGridSelectionValue, detail?: {added: string[]; removed: string[]}): void => {\n selection = normalizeSelection(value, component.props.selection);\n suppressPropChange = true;\n component.props.selectionValue = selection;\n if (root) reflectSchemaProp({el: root, schema: dataGridSchema, key: 'selectionValue', value: selection});\n suppressPropChange = false;\n reflectMountedSelection();\n dispatch('ui:data-grid-selection-change', {selection, added: detail?.added ?? [], removed: detail?.removed ?? []});\n };\n const changeRow = (key: string, selected?: boolean): void => {\n const change = toggleSelection(selection, String(key), component.props.selection, selected);\n if (change.added.length === 0 && change.removed.length === 0) return;\n setSelection(change.selection, change);\n };\n const updateColumnWidth = (column: DataGridColumn, width: number, phase: 'start' | 'resize' | 'end'): void => {\n column.width = Math.min(column.maxWidth ?? Number.POSITIVE_INFINITY, Math.max(column.minWidth, width));\n syncColumnLayout();\n dispatch('ui:data-grid-column-resize', {column: column.key, width: column.width, phase});\n };\n const registerResizeHandles = (): void => {\n resizeCleanups.splice(0).forEach((cleanup) => cleanup());\n columns.forEach((column) => {\n const handle = column.element.querySelector<HTMLElement>('[data-ui-data-grid-resize-handle]');\n if (!handle) return;\n const enabled = column.resizable && component.props.resizableColumns;\n if (enabled) handle.removeAttribute('aria-disabled');\n else handle.setAttribute('aria-disabled', 'true');\n handle.tabIndex = enabled ? 0 : -1;\n if (!enabled) return;\n const onResize = (event: ResizeEvent): void => updateColumnWidth(column, event.previewWidth, event.phase);\n resizeCleanups.push(createResizable({\n element: column.element,\n handle,\n axis: 'x',\n min: column.minWidth,\n max: column.maxWidth,\n mode: component.props.resizeMode,\n disabled: () => !component.props.resizableColumns || !column.resizable,\n onStart: onResize,\n onResize,\n onEnd: onResize,\n }));\n });\n };\n\n const component: TrellisAlpineComponent<DataGridData> = {\n props: null as unknown as PropState<typeof dataGridSchema>,\n init(): void {\n root = this.$el;\n destroyed = false;\n const scope = globalThis.crypto?.randomUUID?.() ?? `grid-${Date.now()}-${Math.random().toString(36).slice(2)}`;\n root.dataset.uiDataGridScope = scope;\n root.querySelector<HTMLElement>('[data-ui-data-grid-header-row]')?.setAttribute('data-sortable-scope', scope);\n this.props = defineProps({el: root, schema: dataGridSchema, onChange: (_state, changes) => {\n if (suppressPropChange) return;\n const keys = changes.map(({key}) => key);\n if (keys.includes('selectionValue') || keys.includes('selection')) {\n selection = normalizeSelection(this.props.selectionValue, this.props.selection);\n reflectMountedSelection();\n }\n if (keys.includes('resizableColumns')) registerResizeHandles();\n if (keys.includes('totalRows')) {\n updateTotal(this.props.totalRows);\n this.reload();\n } else if (keys.some((key) => ['fetchUrl', 'rowHeight', 'bufferSize'].includes(key))) this.reload();\n }});\n totalRows = integer(this.props.totalRows);\n selection = normalizeSelection(this.props.selectionValue, this.props.selection);\n viewport = root.querySelector<HTMLElement>('[data-ui-data-grid-viewport]')\n ?? root.querySelector<HTMLElement>('[data-ui-scroll-area-viewport]');\n table = root.querySelector<HTMLElement>('[data-ui-data-grid-inner]');\n spacer = root.querySelector<HTMLElement>('[data-ui-data-grid-spacer]');\n styleElement = root.querySelector<HTMLStyleElement>('style[data-ui-data-grid-layout]');\n blocks = Array.from(root.querySelectorAll<HTMLElement>('[data-ui-data-grid-block]')).slice(0, 3)\n .map((element, index) => ({element, key: `block-${index + 1}`}));\n if (!viewport || !table || !spacer || !styleElement || blocks.length !== 3) {\n throw new Error('Data Grid requires one viewport, table owner, spacer, layout style, and three row blocks.');\n }\n viewport.setAttribute('data-ui-data-grid-viewport', '');\n columns = normalizeDataGridColumns(\n Array.from(root.querySelectorAll<HTMLElement>('[data-ui-data-grid-column-header]')),\n {width: this.props.defaultColumnWidth, minWidth: this.props.minColumnWidth,\n maxWidth: this.props.maxColumnWidth, resizable: this.props.resizableColumns,\n reorderable: this.props.reorderableColumns},\n );\n syncColumnLayout();\n registerResizeHandles();\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 root.addEventListener('click', (event) => {\n const target = event.target as HTMLElement;\n const sortButton = target.closest<HTMLElement>('[data-ui-data-grid-sort-button]');\n if (sortButton && this.props.sortableColumns) {\n const header = sortButton.closest<HTMLElement>('[data-ui-data-grid-column-header]');\n const column = columns.find(({key}) => key === header?.dataset.column);\n if (column?.sortable) {\n const direction = column.sort === 'ascending' ? 'descending' : 'ascending';\n dispatch('ui:data-grid-sort', {column: column.key, direction, additive: event.shiftKey});\n }\n return;\n }\n const row = target.closest<HTMLElement>('[data-ui-data-grid-row]');\n if (!row || !root?.contains(row)) return;\n const key = row.dataset.rowKey ?? '';\n if (this.props.selectOnRowClick && !target.closest(interactiveSelector)) changeRow(key);\n dispatch('ui:data-grid-row-activate', {rowKey: key, row});\n }, {signal: listenerAborter.signal});\n root.addEventListener('dblclick', (event) => {\n const cell = (event.target as HTMLElement).closest<HTMLElement>('[data-ui-data-grid-cell]');\n const row = cell?.closest<HTMLElement>('[data-ui-data-grid-row]');\n if (cell && row) dispatch('ui:data-grid-cell-activate', {\n rowKey: row.dataset.rowKey ?? '', column: cell.dataset.column ?? '', cell,\n });\n }, {signal: listenerAborter.signal});\n root.addEventListener('ui:sortable-drop', ((event: CustomEvent) => {\n const source = event.detail?.source;\n if (source?.type !== 'data-grid-column') return;\n const to = Number(event.detail?.index ?? event.detail?.anchor?.index);\n if (Number.isInteger(to)) this.reorderColumn(String(source.id), to);\n }) as EventListener, {signal: listenerAborter.signal});\n viewport.style.overscrollBehavior = 'contain';\n viewport.style.overflowAnchor = 'none';\n viewport.scrollTop = fixedAxisWindowAdapter.scrollTo({\n total: totalRows, itemSize: this.props.rowHeight, viewportSize: viewport.clientHeight,\n scrollOffset: 0, 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 resizeCleanups.splice(0).forEach((cleanup) => cleanup());\n invalidate();\n this.props.disconnect();\n root = null;\n viewport = null;\n table = null;\n spacer = null;\n styleElement = null;\n columns = [];\n blocks = [];\n },\n scrollToIndex(index, align = 'start'): void {\n if (!viewport) return;\n viewport.scrollTop = fixedAxisWindowAdapter.scrollTo({\n total: totalRows, itemSize: this.props.rowHeight, viewportSize: viewport.clientHeight,\n scrollOffset: viewport.scrollTop, buffer: this.props.bufferSize,\n }, {axis: 'y', index, align});\n reconcile(viewport.scrollTop);\n },\n setTotalRows(count): void {\n updateTotal(count);\n this.reload({scrollTop: viewport?.scrollTop ?? 0});\n },\n setUrl(url, options = {}): void {\n suppressPropChange = true;\n this.props.fetchUrl = String(url);\n if (root) reflectSchemaProp({el: root, schema: dataGridSchema, key: 'fetchUrl', value: String(url)});\n suppressPropChange = false;\n if (options.reset ?? true) this.reset();\n else this.reload();\n },\n reset(options = {}): void { this.reload({scrollTop: options.scrollTop ?? 0}); },\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 resizeColumn(key, width): void {\n const column = columns.find((candidate) => candidate.key === key);\n if (column) updateColumnWidth(column, Number(width), 'end');\n },\n reorderColumn(key, toIndex): void {\n const from = columns.findIndex((column) => column.key === key);\n const next = reorderColumns(columns, key, integer(toIndex));\n if (!next) return;\n columns = next;\n syncColumnLayout();\n dispatch('ui:data-grid-column-reorder', {column: key, from, to: integer(toIndex), columns: columns.map(({key: columnKey}) => columnKey)});\n },\n selectRow(key): void { changeRow(String(key), true); },\n deselectRow(key): void { changeRow(String(key), false); },\n toggleRow(key): void { changeRow(String(key)); },\n setSelection(value): void { setSelection(value); },\n selectQuery(token, total, except = []): void {\n setSelection({mode: 'query', token: String(token), total: integer(total), except: except.map(String)});\n },\n clearSelection(): void { setSelection({mode: 'ids', ids: []}); },\n };\n return component;\n};\n\nconst registerDataGrid = (AlpineInstance: Alpine.Alpine): void => {\n defineAlpineData('UiDataGrid', () => UiDataGrid(AlpineInstance))(AlpineInstance);\n};\n\nexport {registerDataGrid, UiDataGrid};\nexport type {DataGridData, DataGridResetOptions, DataGridSetUrlOptions, UiDataGridApi};\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 {registerResizableCapability} from '../../capabilities/resizable';\nimport {registerMotionCapability} from '../../capabilities/motion';\nimport {registerSortableCapability} from '../../capabilities/sortable';\nimport {registerDataGrid as registerComponent} from './index';\n\nconst registered = new WeakSet<AlpineType>();\n\nconst registerDataGrid = (AlpineInstance: AlpineType): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerResizableCapability(AlpineInstance);\n registerMotionCapability(AlpineInstance);\n registerSortableCapability(AlpineInstance);\n registerComponent(AlpineInstance);\n};\n\nexport {registerDataGrid};\nexport default registerDataGrid;\nexport * from './index';\n"],"mappings":"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"}
|
package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/chunks/virtual-window-BHdOw3Pi.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var e=e=>Math.max(0,Math.floor(e)),t=e=>{if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`object`&&!!e&&typeof e.id==`string`&&typeof e.src==`string`):[]}catch{return[]}},n=async(n,r)=>{let i=n.status===204?``:await n.text(),a=document.createElement(`template`);a.innerHTML=i;let o=null,s=n.headers.get(r.totalHeader),c=s===null||s.trim()===``?NaN:Number(s);Number.isFinite(c)&&c>=0&&(o=e(c));let l=a.content.querySelector(r.metaSelector);if(l){if(o===null)try{let t=JSON.parse(l.innerHTML),n=Number(t.totalItems);Number.isFinite(n)&&n>=0&&(o=e(n))}catch{}l.remove()}let u=document.createElement(`div`);return u.append(a.content),{html:u.innerHTML,assets:t(n.headers.get(r.assetsHeader)),totalItems:o}},r=(e,t=0)=>Number.isFinite(e)?e:t,i=e=>Math.max(0,Math.floor(r(e))),a=(e,t=1)=>Math.max(2**-52,r(e,t)),o=(e,t,n)=>Math.min(n,Math.max(t,e)),s=(e,t)=>{let n=i(t.total),s=a(t.itemSize),c=Math.max(0,r(t.viewportSize)),l=i(t.buffer),u=Math.min(n,Math.max(1,Math.ceil(c/s))),d=Math.max(0,n-u),f=o(Math.max(0,r(t.scrollOffset)),0,Math.max(0,n*s-c)),p=o(Math.floor(f/s),0,d),m=Math.min(n,u+l*2),h=o(p-l,0,Math.max(0,n-m));return{axis:e,start:h,count:m,total:n,itemSize:s,viewportSize:c,scrollOffset:f,buffer:l,visibleStart:p,visibleCount:u,guardStart:Math.min(n,h+l),guardEnd:Math.max(0,h+m-l),translateOffset:h*s,spacerSize:n*s}},c={compute(e){let t={};return e.axes.x&&(t.x=s(`x`,e.axes.x)),e.axes.y&&(t.y=s(`y`,e.axes.y)),{kind:`fixed-axis`,key:[`x`,`y`].map(e=>{let n=t[e];return n?`${e}:${n.start}:${n.count}:${n.total}`:``}).filter(Boolean).join(`|`),axes:t}},covers(e,t){return[`x`,`y`].every(n=>{let r=t.axes[n];if(!r)return!0;let i=e.axes[n];if(!i||i.total!==r.total||i.itemSize!==r.itemSize)return!1;let a=r.visibleStart+r.visibleCount;return r.visibleStart>=i.guardStart&&a<=i.guardEnd})},serialize(e){let t={};return[`x`,`y`].forEach(n=>{let r=e.axes[n];r&&(t[n]={start:r.start,count:r.count,total:r.total})}),{window:JSON.stringify(t)}},spacerSize(e,t){return e.axes[t]?.spacerSize??0},translateOffset(e,t){return e.axes[t]?.translateOffset??0},setAxisTotal(e,t,n){let r=e.axes[t];return r?{...e,axes:{...e.axes,[t]:{...r,total:i(n)}}}:e},scrollTo(e,t){let n=i(e.total),s=a(e.itemSize),c=Math.max(0,r(e.viewportSize)),l=o(i(t.index),0,Math.max(0,n-1))*s,u=l+s,d=Math.max(0,n*s-c),f=l;if(t.align===`center`)f=l-(c-s)/2;else if(t.align===`end`)f=u-c;else if(t.align===`auto`){let t=Math.max(0,r(e.scrollOffset));if(l>=t&&u<=t+c)return o(t,0,d);f=l<t?l:u-c}return o(f,0,d)}},l=(e,t={})=>{let n=0,r=0,i=new Map,a=new Map,o=new Map,s=()=>({generation:n,mounted:new Map(i),pending:new Map(a),latestDesired:new Map(o)}),c=()=>t.onChange?.(s()),l=e=>{let t=a.get(e.block);return e.generation===n&&t?.requestGeneration===e.requestGeneration};return{computeWindow:t=>e.compute(t),shouldLoad:(t,n)=>!n||!e.covers(n,t),begin(e,t){if(o.set(e,t),a.has(e)||!this.shouldLoad(t,i.get(e)))return c(),null;let s={block:e,window:t,generation:n,requestGeneration:++r};return a.set(e,s),c(),s},commit(e,t=e.window){return l(e)?(a.delete(e.block),i.set(e.block,t),c(),!0):!1},fail(e){return l(e)?(a.delete(e.block),c(),!0):!1},next(t){if(a.has(t))return null;let n=o.get(t);if(!n)return null;let r=i.get(t);return r&&e.covers(r,n)?null:n},mounted:e=>i.get(e)??null,pending:e=>a.get(e)??null,invalidate(){n+=1,i.clear(),a.clear(),o.clear(),c()},snapshot:s}};export{c as n,n as r,l as t};
|
|
2
|
+
//# sourceMappingURL=virtual-window-BHdOw3Pi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"virtual-window-BHdOw3Pi.js","names":[],"sources":["../../../../../../../../client/src/runtime/virtualizer-fragment.ts","../../../../../../../../client/src/runtime/virtual-window.ts"],"sourcesContent":["import type {AssetDescriptor} from '../assets/bridge';\n\ntype VirtualizerFragmentOptions = {\n totalHeader: string;\n assetsHeader: string;\n metaSelector: string;\n};\n\ntype VirtualizerFragmentPayload = {\n html: string;\n assets: AssetDescriptor[];\n totalItems: number | null;\n};\n\nconst integer = (value: number): number => Math.max(0, Math.floor(value));\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 parseVirtualizerFragmentResponse = async (\n response: Response,\n options: VirtualizerFragmentOptions,\n): Promise<VirtualizerFragmentPayload> => {\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(options.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>(options.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(options.assetsHeader)),\n totalItems,\n };\n};\n\nexport {parseVirtualizerFragmentResponse};\nexport type {VirtualizerFragmentOptions, VirtualizerFragmentPayload};\n","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"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e,t}from"../chunks/entry2.generated-C5DAZC4R.js";export{e as UiDataGrid,t as default,t as registerDataGrid};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"../chunks/motion-D44EkjK3.js";import{n as t,r as ee,t as n}from"../chunks/entry.generated-bERshNT6.js";import{t as r}from"../chunks/capability-motion-VFYcNVM5.js";import{n as i,t as a}from"../chunks/entry.generated-
|
|
1
|
+
import{t as e}from"../chunks/motion-D44EkjK3.js";import{n as t,r as ee,t as n}from"../chunks/entry.generated-bERshNT6.js";import{t as r}from"../chunks/capability-motion-VFYcNVM5.js";import{n as i,t as a}from"../chunks/entry.generated-C35Q-qoz.js";import{t as o}from"../chunks/drag-and-drop-DHq3udf7.js";import{i as s,n as c,r as l,t as u}from"../chunks/capability-sortable-BU1g9uTC.js";import{n as te,t as d}from"../chunks/entry.generated-UHQD4FyC.js";import{n as f,t as p}from"../chunks/entry.generated-C-lyYGbo.js";import{n as m,r as h,t as g}from"../chunks/entry.generated-DfuZKFMG.js";import{n as _,t as v}from"../chunks/entry.generated-2VgVfygk.js";import{n as y,t as b}from"../chunks/entry.generated-B_xTkYSB.js";import{n as x,t as S}from"../chunks/entry.generated-D91HRlIV.js";import{n as ne,t as C}from"../chunks/entry.generated-BC8JUf6f.js";import{n as re,t as w}from"../chunks/entry.generated-DNtvOM3X.js";import{n as ie,t as T}from"../chunks/entry.generated-DYBALnuF.js";import{n as E,r as D,t as O}from"../chunks/entry.generated-LUzMUcng.js";import{t as k}from"../chunks/capability-resizable-Bga8TngJ.js";import{n as A,r as j,t as M}from"../chunks/entry.generated-C7Kas-N2.js";import{n as N,r as P,t as F}from"../chunks/entry.generated-D5gXHQl_.js";import{n as I,t as L}from"../chunks/entry.generated-CPbvsglm.js";import{i as R,n as z,r as B,t as V}from"../chunks/entry.generated-Cc5mRBBS.js";import{n as H,t as U}from"../chunks/entry.generated-Dgrr543E.js";import{n as W,t as G}from"../chunks/entry.generated-DIPrCNjK.js";import{n as K,t as q}from"../chunks/entry.generated-BVBXXN6t.js";import{n as ae,t as J}from"../chunks/entry2.generated-C5DAZC4R.js";import{n as oe,t as Y}from"../chunks/entry.generated-B2rTvkxi.js";import{_ as se,a as ce,b as le,c as ue,d as de,f as fe,g as pe,h as me,i as he,l as ge,m as _e,n as ve,o as ye,p as be,r as xe,s as Se,t as X,u as Z,v as Ce,x as we,y as Te}from"../chunks/entry.generated-QspMEPHx.js";var Q=new WeakSet,$=e=>{Q.has(e)||(Q.add(e),r(e),k(e),u(e),d(e),p(),g(e),v(e),b(e),S(e),C(e),w(e),T(e),O(e),M(e),F(e),L(e),a(e),V(e),U(e),G(e),q(e),n(e),J(e),Y(e),X(e))};export{ve as TABLE_ALIGNS,xe as TABLE_BORDERS,he as TABLE_COLUMN_SCOPES,ce as TABLE_DENSITIES,ye as TABLE_FILTER_AS_VALUES,Se as TABLE_LAYOUTS,ue as TABLE_ROW_HEADER_SCOPES,ge as TABLE_SORTS,Z as TABLE_VALIGNS,de as TABLE_VARIANTS,fe as TABLE_WIDTHS,te as UiAccordion,m as UiCheckbox,h as UiCheckboxGroup,ae as UiDataGrid,_ as UiDatePicker,y as UiDirectUpload,x as UiDropdown,ne as UiField,re as UiFileUpload,ie as UiInput,E as UiModal,D as UiModalTrigger,A as UiPanelToggle,j as UiPanels,N as UiRadio,P as UiRadioGroup,I as UiScrollArea,i as UiSelect,z as UiSidebar,B as UiSidebarEdge,R as UiSidebarToggle,H as UiSlider,W as UiSwitch,K as UiTabs,t as UiToast,ee as UiToastOutlet,oe as UiVirtualizer,$ as components,$ as default,o as createResizable,l as createSortableRegistry,e as motion,d as registerAccordion,p as registerButton,g as registerCheckbox,J as registerDataGrid,v as registerDatePicker,b as registerDirectUpload,S as registerDropdown,C as registerField,w as registerFileUpload,T as registerInput,O as registerModal,r as registerMotionCapability,M as registerPanels,F as registerRadio,k as registerResizableCapability,L as registerScrollArea,a as registerSelect,V as registerSidebar,U as registerSlider,u as registerSortableCapability,c as registerSortableDirective,G as registerSwitch,X as registerTable,q as registerTabs,n as registerToast,Y as registerVirtualizer,s as sortable,be as tableCaptionSchema,_e as tableCellSchema,me as tableColumnFilterSchema,pe as tableColumnSchema,se as tableEmptySchema,Ce as tableRowHeaderSchema,Te as tableRowSchema,le as tableSchema,we as tableSectionSchema,f as unregisterButton};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../../../client/src/components/entry.generated.ts"],"sourcesContent":["// 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 {registerAccordion} from './accordion/entry.generated';\nimport {registerButton} from './button/entry.generated';\nimport {registerCheckbox} from './checkbox/entry.generated';\nimport {registerDatePicker} from './date-picker/entry.generated';\nimport {registerDirectUpload} from './direct-upload/entry.generated';\nimport {registerDropdown} from './dropdown/entry.generated';\nimport {registerField} from './field/entry.generated';\nimport {registerFileUpload} from './file-upload/entry.generated';\nimport {registerInput} from './input/entry.generated';\nimport {registerModal} from './modal/entry.generated';\nimport {registerPanels} from './panels/entry.generated';\nimport {registerRadio} from './radio/entry.generated';\nimport {registerScrollArea} from './scroll-area/entry.generated';\nimport {registerSelect} from './select/entry.generated';\nimport {registerSidebar} from './sidebar/entry.generated';\nimport {registerSlider} from './slider/entry.generated';\nimport {registerSwitch} from './switch/entry.generated';\nimport {registerTabs} from './tabs/entry.generated';\nimport {registerToast} from './toast/entry.generated';\nimport {registerVirtualizer} from './virtualizer/entry.generated';\nimport {registerTable} from './table/entry.generated';\nimport {registerMotionCapability} from '../capabilities/motion';\nimport {registerResizableCapability} from '../capabilities/resizable';\nimport {registerSortableCapability} from '../capabilities/sortable';\n\ntype ComponentsPlugin = (AlpineInstance: AlpineType) => void;\nconst registered = new WeakSet<AlpineType>();\n\nconst components: ComponentsPlugin = (AlpineInstance): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerMotionCapability(AlpineInstance);\n registerResizableCapability(AlpineInstance);\n registerSortableCapability(AlpineInstance);\n registerAccordion(AlpineInstance);\n registerButton();\n registerCheckbox(AlpineInstance);\n registerDatePicker(AlpineInstance);\n registerDirectUpload(AlpineInstance);\n registerDropdown(AlpineInstance);\n registerField(AlpineInstance);\n registerFileUpload(AlpineInstance);\n registerInput(AlpineInstance);\n registerModal(AlpineInstance);\n registerPanels(AlpineInstance);\n registerRadio(AlpineInstance);\n registerScrollArea(AlpineInstance);\n registerSelect(AlpineInstance);\n registerSidebar(AlpineInstance);\n registerSlider(AlpineInstance);\n registerSwitch(AlpineInstance);\n registerTabs(AlpineInstance);\n registerToast(AlpineInstance);\n registerVirtualizer(AlpineInstance);\n registerTable(AlpineInstance);\n};\n\nexport {components};\nexport default components;\nexport type {ComponentsPlugin};\nexport * from './accordion/entry.generated';\nexport * from './button/entry.generated';\nexport * from './checkbox/entry.generated';\nexport * from './date-picker/entry.generated';\nexport * from './direct-upload/entry.generated';\nexport * from './dropdown/entry.generated';\nexport * from './field/entry.generated';\nexport * from './file-upload/entry.generated';\nexport * from './input/entry.generated';\nexport * from './modal/entry.generated';\nexport * from './panels/entry.generated';\nexport * from './radio/entry.generated';\nexport * from './scroll-area/entry.generated';\nexport * from './select/entry.generated';\nexport * from './sidebar/entry.generated';\nexport * from './slider/entry.generated';\nexport * from './switch/entry.generated';\nexport * from './tabs/entry.generated';\nexport * from './toast/entry.generated';\nexport * from './virtualizer/entry.generated';\nexport * from './table/entry.generated';\nexport * from '../capabilities/motion';\nexport * from '../capabilities/resizable';\nexport * from '../capabilities/sortable';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../../../client/src/components/entry.generated.ts"],"sourcesContent":["// 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 {registerAccordion} from './accordion/entry.generated';\nimport {registerButton} from './button/entry.generated';\nimport {registerCheckbox} from './checkbox/entry.generated';\nimport {registerDatePicker} from './date-picker/entry.generated';\nimport {registerDirectUpload} from './direct-upload/entry.generated';\nimport {registerDropdown} from './dropdown/entry.generated';\nimport {registerField} from './field/entry.generated';\nimport {registerFileUpload} from './file-upload/entry.generated';\nimport {registerInput} from './input/entry.generated';\nimport {registerModal} from './modal/entry.generated';\nimport {registerPanels} from './panels/entry.generated';\nimport {registerRadio} from './radio/entry.generated';\nimport {registerScrollArea} from './scroll-area/entry.generated';\nimport {registerSelect} from './select/entry.generated';\nimport {registerSidebar} from './sidebar/entry.generated';\nimport {registerSlider} from './slider/entry.generated';\nimport {registerSwitch} from './switch/entry.generated';\nimport {registerTabs} from './tabs/entry.generated';\nimport {registerToast} from './toast/entry.generated';\nimport {registerDataGrid} from './data-grid/entry.generated';\nimport {registerVirtualizer} from './virtualizer/entry.generated';\nimport {registerTable} from './table/entry.generated';\nimport {registerMotionCapability} from '../capabilities/motion';\nimport {registerResizableCapability} from '../capabilities/resizable';\nimport {registerSortableCapability} from '../capabilities/sortable';\n\ntype ComponentsPlugin = (AlpineInstance: AlpineType) => void;\nconst registered = new WeakSet<AlpineType>();\n\nconst components: ComponentsPlugin = (AlpineInstance): void => {\n if (registered.has(AlpineInstance)) return;\n registered.add(AlpineInstance);\n registerMotionCapability(AlpineInstance);\n registerResizableCapability(AlpineInstance);\n registerSortableCapability(AlpineInstance);\n registerAccordion(AlpineInstance);\n registerButton();\n registerCheckbox(AlpineInstance);\n registerDatePicker(AlpineInstance);\n registerDirectUpload(AlpineInstance);\n registerDropdown(AlpineInstance);\n registerField(AlpineInstance);\n registerFileUpload(AlpineInstance);\n registerInput(AlpineInstance);\n registerModal(AlpineInstance);\n registerPanels(AlpineInstance);\n registerRadio(AlpineInstance);\n registerScrollArea(AlpineInstance);\n registerSelect(AlpineInstance);\n registerSidebar(AlpineInstance);\n registerSlider(AlpineInstance);\n registerSwitch(AlpineInstance);\n registerTabs(AlpineInstance);\n registerToast(AlpineInstance);\n registerDataGrid(AlpineInstance);\n registerVirtualizer(AlpineInstance);\n registerTable(AlpineInstance);\n};\n\nexport {components};\nexport default components;\nexport type {ComponentsPlugin};\nexport * from './accordion/entry.generated';\nexport * from './button/entry.generated';\nexport * from './checkbox/entry.generated';\nexport * from './date-picker/entry.generated';\nexport * from './direct-upload/entry.generated';\nexport * from './dropdown/entry.generated';\nexport * from './field/entry.generated';\nexport * from './file-upload/entry.generated';\nexport * from './input/entry.generated';\nexport * from './modal/entry.generated';\nexport * from './panels/entry.generated';\nexport * from './radio/entry.generated';\nexport * from './scroll-area/entry.generated';\nexport * from './select/entry.generated';\nexport * from './sidebar/entry.generated';\nexport * from './slider/entry.generated';\nexport * from './switch/entry.generated';\nexport * from './tabs/entry.generated';\nexport * from './toast/entry.generated';\nexport * from './data-grid/entry.generated';\nexport * from './virtualizer/entry.generated';\nexport * from './table/entry.generated';\nexport * from '../capabilities/motion';\nexport * from '../capabilities/resizable';\nexport * from '../capabilities/sortable';\n"],"mappings":"85DA8BA,IAAM,EAAa,IAAI,QAEjB,EAAgC,GAAyB,CACvD,EAAW,IAAI,CAAc,IACjC,EAAW,IAAI,CAAc,EAC7B,EAAyB,CAAc,EACvC,EAA4B,CAAc,EAC1C,EAA2B,CAAc,EACzC,EAAkB,CAAc,EAChC,EAAe,EACf,EAAiB,CAAc,EAC/B,EAAmB,CAAc,EACjC,EAAqB,CAAc,EACnC,EAAiB,CAAc,EAC/B,EAAc,CAAc,EAC5B,EAAmB,CAAc,EACjC,EAAc,CAAc,EAC5B,EAAc,CAAc,EAC5B,EAAe,CAAc,EAC7B,EAAc,CAAc,EAC5B,EAAmB,CAAc,EACjC,EAAe,CAAc,EAC7B,EAAgB,CAAc,EAC9B,EAAe,CAAc,EAC7B,EAAe,CAAc,EAC7B,EAAa,CAAc,EAC3B,EAAc,CAAc,EAC5B,EAAiB,CAAc,EAC/B,EAAoB,CAAc,EAClC,EAAc,CAAc,EAChC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,r as t,t as n}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,r as t,t as n}from"../chunks/entry.generated-C7Kas-N2.js";export{e as UiPanelToggle,t as UiPanels,n as default,n as registerPanels};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-C35Q-qoz.js";export{e as UiSelect,t as default,t as registerSelect};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e,n as t,r as n,t as r}from"../chunks/entry.generated-
|
|
1
|
+
import{i as e,n as t,r as n,t as r}from"../chunks/entry.generated-Cc5mRBBS.js";export{t as UiSidebar,n as UiSidebarEdge,e as UiSidebarToggle,r as default,r as registerSidebar};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as e,a as t,b as n,c as r,d as i,f as a,g as o,h as s,i as c,l,m as u,n as d,o as f,p,r as m,s as h,t as g,u as _,v,x as y,y as b}from"../chunks/
|
|
1
|
+
import{_ as e,a as t,b as n,c as r,d as i,f as a,g as o,h as s,i as c,l,m as u,n as d,o as f,p,r as m,s as h,t as g,u as _,v,x as y,y as b}from"../chunks/entry.generated-QspMEPHx.js";export{d as TABLE_ALIGNS,m as TABLE_BORDERS,c as TABLE_COLUMN_SCOPES,t as TABLE_DENSITIES,f as TABLE_FILTER_AS_VALUES,h as TABLE_LAYOUTS,r as TABLE_ROW_HEADER_SCOPES,l as TABLE_SORTS,_ as TABLE_VALIGNS,i as TABLE_VARIANTS,a as TABLE_WIDTHS,g as default,g as registerTable,p as tableCaptionSchema,u as tableCellSchema,s as tableColumnFilterSchema,o as tableColumnSchema,e as tableEmptySchema,v as tableRowHeaderSchema,b as tableRowSchema,n as tableSchema,y as tableSectionSchema};
|
package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/components/virtualizer.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"../chunks/entry.generated-
|
|
1
|
+
import{n as e,t}from"../chunks/entry.generated-B2rTvkxi.js";export{e as UiVirtualizer,t as default,t as registerVirtualizer};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as e}from"./chunks/bridge-B4S_D6hV.js";import{t}from"./chunks/motion-D44EkjK3.js";import{n,r as ee,t as te}from"./chunks/entry.generated-bERshNT6.js";import{i as
|
|
1
|
+
import{n as e}from"./chunks/bridge-B4S_D6hV.js";import{t}from"./chunks/motion-D44EkjK3.js";import{n,r as ee,t as te}from"./chunks/entry.generated-bERshNT6.js";import{i as ne}from"./chunks/ui-BWVDkV-D.js";import{t as r}from"./chunks/capability-motion-VFYcNVM5.js";import{a as i,c as a,f as o,l as s,n as c,o as l,s as u}from"./chunks/codecs-Cb1ns_47.js";import{i as d,r as f,t as p}from"./chunks/alpine-machine-BS13dbK4.js";import{t as m}from"./chunks/alpine-data-CytyCyfk.js";import{i as h,n as g,r as _,t as v}from"./chunks/core-LsAXy99P.js";import{n as y,t as b}from"./chunks/styles-TfvwVPGw.js";import{t as x}from"./chunks/merge-bindings-C8ewA_FD.js";import{t as S}from"./chunks/machine-Dqut4h89.js";import{n as C,t as w}from"./chunks/entry.generated-C35Q-qoz.js";import{t as T}from"./chunks/drag-and-drop-DHq3udf7.js";import{i as E,n as D,r as O,t as k}from"./chunks/capability-sortable-BU1g9uTC.js";import{n as A,t as j}from"./chunks/entry.generated-UHQD4FyC.js";import{n as M,t as N}from"./chunks/entry.generated-C-lyYGbo.js";import{n as P,r as F,t as I}from"./chunks/entry.generated-DfuZKFMG.js";import{n as L,t as R}from"./chunks/entry.generated-2VgVfygk.js";import{n as z,t as B}from"./chunks/entry.generated-B_xTkYSB.js";import{n as V,t as H}from"./chunks/entry.generated-D91HRlIV.js";import{n as U,t as W}from"./chunks/entry.generated-BC8JUf6f.js";import{n as G,t as K}from"./chunks/entry.generated-DNtvOM3X.js";import{n as q,t as J}from"./chunks/entry.generated-DYBALnuF.js";import{n as Y,r as X,t as Z}from"./chunks/entry.generated-LUzMUcng.js";import{t as re}from"./chunks/capability-resizable-Bga8TngJ.js";import{n as ie,r as ae,t as oe}from"./chunks/entry.generated-C7Kas-N2.js";import{n as se,r as ce,t as le}from"./chunks/entry.generated-D5gXHQl_.js";import{n as ue,t as de}from"./chunks/entry.generated-CPbvsglm.js";import{i as fe,n as pe,r as me,t as he}from"./chunks/entry.generated-Cc5mRBBS.js";import{n as ge,t as _e}from"./chunks/entry.generated-Dgrr543E.js";import{n as ve,t as ye}from"./chunks/entry.generated-DIPrCNjK.js";import{n as be,t as xe}from"./chunks/entry.generated-BVBXXN6t.js";import{n as Se,t as Ce}from"./chunks/entry2.generated-C5DAZC4R.js";import{n as we,t as Te}from"./chunks/entry.generated-B2rTvkxi.js";import{_ as Ee,a as De,b as Oe,c as ke,d as Ae,f as je,g as Me,h as Ne,i as Pe,l as Fe,m as Ie,n as Le,o as Re,p as ze,r as Be,s as Ve,t as He,u as Ue,v as We,x as Ge,y as Ke}from"./chunks/entry.generated-QspMEPHx.js";import{components as Q}from"./components/index.js";var qe=`trellis:core.trellis:motion.trellis:resizable.trellis:sortable.trellis:accordion.trellis:button.trellis:checkbox.trellis:date-picker.trellis:direct-upload.trellis:dropdown.trellis:field.trellis:file-upload.trellis:input.trellis:modal.trellis:panels.trellis:radio.trellis:scroll-area.trellis:select.trellis:sidebar.trellis:slider.trellis:switch.trellis:tabs.trellis:toast.trellis:data-grid.trellis:virtualizer.trellis:table`.split(`.`),$=t=>{v(t),Q(t),e(qe,t)};export{Le as TABLE_ALIGNS,Be as TABLE_BORDERS,Pe as TABLE_COLUMN_SCOPES,De as TABLE_DENSITIES,Re as TABLE_FILTER_AS_VALUES,Ve as TABLE_LAYOUTS,ke as TABLE_ROW_HEADER_SCOPES,Fe as TABLE_SORTS,Ue as TABLE_VALIGNS,Ae as TABLE_VARIANTS,je as TABLE_WIDTHS,A as UiAccordion,P as UiCheckbox,F as UiCheckboxGroup,Se as UiDataGrid,L as UiDatePicker,z as UiDirectUpload,V as UiDropdown,U as UiField,G as UiFileUpload,q as UiInput,Y as UiModal,X as UiModalTrigger,ie as UiPanelToggle,ae as UiPanels,se as UiRadio,ce as UiRadioGroup,ue as UiScrollArea,C as UiSelect,pe as UiSidebar,me as UiSidebarEdge,fe as UiSidebarToggle,ge as UiSlider,ve as UiSwitch,be as UiTabs,n as UiToast,ee as UiToastOutlet,we as UiVirtualizer,c as bool,Q as components,v as coreRuntime,p as createAlpineMachine,S as createMachine,T as createResizable,O as createSortableRegistry,f as createTransitionCoordinator,i as decodeProps,$ as default,$ as trellisUi,m as defineAlpineData,d as defineHook,_ as defineManifest,l as defineProps,b as defineStyles,u as json,x as mergeBindings,t as motion,a as number,s as oneOf,h as propsFromSchema,j as registerAccordion,N as registerButton,I as registerCheckbox,Ce as registerDataGrid,R as registerDatePicker,B as registerDirectUpload,H as registerDropdown,W as registerField,K as registerFileUpload,J as registerInput,Z as registerModal,r as registerMotionCapability,oe as registerPanels,le as registerRadio,re as registerResizableCapability,de as registerScrollArea,w as registerSelect,he as registerSidebar,_e as registerSlider,k as registerSortableCapability,D as registerSortableDirective,ye as registerSwitch,He as registerTable,xe as registerTabs,te as registerToast,g as registerTransitionDirective,Te as registerVirtualizer,y as resolveStyle,E as sortable,o as string,ze as tableCaptionSchema,Ie as tableCellSchema,Ne as tableColumnFilterSchema,Me as tableColumnSchema,Ee as tableEmptySchema,We as tableRowHeaderSchema,Ke as tableRowSchema,Oe as tableSchema,Ge as tableSectionSchema,ne as ui,M as unregisterButton};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../../client/src/assets/full-runtime.generated.ts","../../../../../../../client/src/index.ts"],"sourcesContent":["// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nconst fullRuntimeAssetIds = [\n 'trellis:core',\n 'trellis:motion',\n 'trellis:resizable',\n 'trellis:sortable',\n 'trellis:accordion',\n 'trellis:button',\n 'trellis:checkbox',\n 'trellis:date-picker',\n 'trellis:direct-upload',\n 'trellis:dropdown',\n 'trellis:field',\n 'trellis:file-upload',\n 'trellis:input',\n 'trellis:modal',\n 'trellis:panels',\n 'trellis:radio',\n 'trellis:scroll-area',\n 'trellis:select',\n 'trellis:sidebar',\n 'trellis:slider',\n 'trellis:switch',\n 'trellis:tabs',\n 'trellis:toast',\n 'trellis:virtualizer',\n 'trellis:table',\n] as const;\n\nexport {fullRuntimeAssetIds};\n","import type {Alpine as AlpineType} from 'alpinejs';\n\nimport {markAssetsRegistered} from './assets/bridge';\nimport {fullRuntimeAssetIds} from './assets/full-runtime.generated';\nimport components from './components/entry.generated';\nimport coreRuntime from './core';\n\ntype TrellisUIPlugin = (AlpineInstance: AlpineType) => void;\n\nconst trellisUi: TrellisUIPlugin = (AlpineInstance): void => {\n coreRuntime(AlpineInstance);\n components(AlpineInstance);\n markAssetsRegistered(fullRuntimeAssetIds, AlpineInstance);\n};\n\nexport {trellisUi};\nexport default trellisUi;\nexport type {TrellisUIPlugin};\nexport * from './core';\nexport * from './components/entry.generated';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../../client/src/assets/full-runtime.generated.ts","../../../../../../../client/src/index.ts"],"sourcesContent":["// Generated by scripts/generate_component_entries.mjs from packages/client/component-entries.json.\n// Do not edit by hand.\nconst fullRuntimeAssetIds = [\n 'trellis:core',\n 'trellis:motion',\n 'trellis:resizable',\n 'trellis:sortable',\n 'trellis:accordion',\n 'trellis:button',\n 'trellis:checkbox',\n 'trellis:date-picker',\n 'trellis:direct-upload',\n 'trellis:dropdown',\n 'trellis:field',\n 'trellis:file-upload',\n 'trellis:input',\n 'trellis:modal',\n 'trellis:panels',\n 'trellis:radio',\n 'trellis:scroll-area',\n 'trellis:select',\n 'trellis:sidebar',\n 'trellis:slider',\n 'trellis:switch',\n 'trellis:tabs',\n 'trellis:toast',\n 'trellis:data-grid',\n 'trellis:virtualizer',\n 'trellis:table',\n] as const;\n\nexport {fullRuntimeAssetIds};\n","import type {Alpine as AlpineType} from 'alpinejs';\n\nimport {markAssetsRegistered} from './assets/bridge';\nimport {fullRuntimeAssetIds} from './assets/full-runtime.generated';\nimport components from './components/entry.generated';\nimport coreRuntime from './core';\n\ntype TrellisUIPlugin = (AlpineInstance: AlpineType) => void;\n\nconst trellisUi: TrellisUIPlugin = (AlpineInstance): void => {\n coreRuntime(AlpineInstance);\n components(AlpineInstance);\n markAssetsRegistered(fullRuntimeAssetIds, AlpineInstance);\n};\n\nexport {trellisUi};\nexport default trellisUi;\nexport type {TrellisUIPlugin};\nexport * from './core';\nexport * from './components/entry.generated';\n"],"mappings":"q9EAEA,IAAM,GAAsB,kbA2B5B,ECpBM,EAA8B,GAAyB,CACzD,EAAY,CAAc,EAC1B,EAAW,CAAc,EACzB,EAAqB,GAAqB,CAAc,CAC5D"}
|
package/packages/server/trellis_ui/static/trellis_ui/assets/js/esm/logical-entry-manifest.json
CHANGED
|
@@ -22,10 +22,10 @@
|
|
|
22
22
|
"trellis:resizable": {
|
|
23
23
|
"file": "capabilities/resizable.js",
|
|
24
24
|
"imports": [
|
|
25
|
-
"chunks/capability-resizable-
|
|
25
|
+
"chunks/capability-resizable-Bga8TngJ.js",
|
|
26
26
|
"chunks/codecs-Cb1ns_47.js",
|
|
27
27
|
"chunks/dom-qAeVl7dc.js",
|
|
28
|
-
"chunks/drag-and-drop-
|
|
28
|
+
"chunks/drag-and-drop-DHq3udf7.js",
|
|
29
29
|
"chunks/element-adapter-native-data-key-CW8suC9A.js"
|
|
30
30
|
]
|
|
31
31
|
},
|
|
@@ -34,10 +34,11 @@
|
|
|
34
34
|
"imports": [
|
|
35
35
|
"chunks/alpine-machine-BS13dbK4.js",
|
|
36
36
|
"chunks/bridge-B4S_D6hV.js",
|
|
37
|
-
"chunks/capability-sortable-
|
|
37
|
+
"chunks/capability-sortable-BU1g9uTC.js",
|
|
38
38
|
"chunks/codecs-Cb1ns_47.js",
|
|
39
|
+
"chunks/common-BOd_thC-.js",
|
|
39
40
|
"chunks/dom-qAeVl7dc.js",
|
|
40
|
-
"chunks/drag-and-drop-
|
|
41
|
+
"chunks/drag-and-drop-DHq3udf7.js",
|
|
41
42
|
"chunks/element-adapter-native-data-key-CW8suC9A.js",
|
|
42
43
|
"chunks/fragment-Bl3Rq38L.js",
|
|
43
44
|
"chunks/machine-Dqut4h89.js",
|
|
@@ -87,6 +88,28 @@
|
|
|
87
88
|
"chunks/props-change-2xfsIAEN.js"
|
|
88
89
|
]
|
|
89
90
|
},
|
|
91
|
+
"trellis:data-grid": {
|
|
92
|
+
"file": "components/data-grid.js",
|
|
93
|
+
"imports": [
|
|
94
|
+
"chunks/alpine-data-CytyCyfk.js",
|
|
95
|
+
"chunks/alpine-machine-BS13dbK4.js",
|
|
96
|
+
"chunks/bridge-B4S_D6hV.js",
|
|
97
|
+
"chunks/capability-motion-VFYcNVM5.js",
|
|
98
|
+
"chunks/capability-resizable-Bga8TngJ.js",
|
|
99
|
+
"chunks/capability-sortable-BU1g9uTC.js",
|
|
100
|
+
"chunks/codecs-Cb1ns_47.js",
|
|
101
|
+
"chunks/common-BOd_thC-.js",
|
|
102
|
+
"chunks/dom-qAeVl7dc.js",
|
|
103
|
+
"chunks/drag-and-drop-DHq3udf7.js",
|
|
104
|
+
"chunks/element-adapter-native-data-key-CW8suC9A.js",
|
|
105
|
+
"chunks/entry2.generated-C5DAZC4R.js",
|
|
106
|
+
"chunks/fragment-Bl3Rq38L.js",
|
|
107
|
+
"chunks/machine-Dqut4h89.js",
|
|
108
|
+
"chunks/motion-D44EkjK3.js",
|
|
109
|
+
"chunks/ui-BWVDkV-D.js",
|
|
110
|
+
"chunks/virtual-window-BHdOw3Pi.js"
|
|
111
|
+
]
|
|
112
|
+
},
|
|
90
113
|
"trellis:date-picker": {
|
|
91
114
|
"file": "components/date-picker.js",
|
|
92
115
|
"imports": [
|
|
@@ -180,37 +203,38 @@
|
|
|
180
203
|
"chunks/anchored-popover-BXEMsLrA.js",
|
|
181
204
|
"chunks/bridge-B4S_D6hV.js",
|
|
182
205
|
"chunks/capability-motion-VFYcNVM5.js",
|
|
183
|
-
"chunks/capability-resizable-
|
|
184
|
-
"chunks/capability-sortable-
|
|
206
|
+
"chunks/capability-resizable-Bga8TngJ.js",
|
|
207
|
+
"chunks/capability-sortable-BU1g9uTC.js",
|
|
185
208
|
"chunks/codecs-Cb1ns_47.js",
|
|
186
209
|
"chunks/collection-navigation-CtNDGKcQ.js",
|
|
187
210
|
"chunks/common-BOd_thC-.js",
|
|
188
211
|
"chunks/controlled-open-Hy4-OT-6.js",
|
|
189
212
|
"chunks/dismissable-layer-BROE-Ln2.js",
|
|
190
213
|
"chunks/dom-qAeVl7dc.js",
|
|
191
|
-
"chunks/drag-and-drop-
|
|
214
|
+
"chunks/drag-and-drop-DHq3udf7.js",
|
|
192
215
|
"chunks/element-adapter-native-data-key-CW8suC9A.js",
|
|
193
216
|
"chunks/entry.generated-2VgVfygk.js",
|
|
217
|
+
"chunks/entry.generated-B2rTvkxi.js",
|
|
194
218
|
"chunks/entry.generated-BC8JUf6f.js",
|
|
195
219
|
"chunks/entry.generated-BVBXXN6t.js",
|
|
196
220
|
"chunks/entry.generated-B_xTkYSB.js",
|
|
197
|
-
"chunks/entry.generated-Bsennsyl.js",
|
|
198
221
|
"chunks/entry.generated-C-lyYGbo.js",
|
|
222
|
+
"chunks/entry.generated-C35Q-qoz.js",
|
|
223
|
+
"chunks/entry.generated-C7Kas-N2.js",
|
|
199
224
|
"chunks/entry.generated-CPbvsglm.js",
|
|
225
|
+
"chunks/entry.generated-Cc5mRBBS.js",
|
|
200
226
|
"chunks/entry.generated-D5gXHQl_.js",
|
|
201
227
|
"chunks/entry.generated-D91HRlIV.js",
|
|
202
|
-
"chunks/entry.generated-DI48yD0K.js",
|
|
203
228
|
"chunks/entry.generated-DIPrCNjK.js",
|
|
204
229
|
"chunks/entry.generated-DNtvOM3X.js",
|
|
205
230
|
"chunks/entry.generated-DYBALnuF.js",
|
|
206
231
|
"chunks/entry.generated-DfuZKFMG.js",
|
|
207
232
|
"chunks/entry.generated-Dgrr543E.js",
|
|
208
|
-
"chunks/entry.generated-DuNS3MYH.js",
|
|
209
|
-
"chunks/entry.generated-DvAia1Wz.js",
|
|
210
233
|
"chunks/entry.generated-LUzMUcng.js",
|
|
234
|
+
"chunks/entry.generated-QspMEPHx.js",
|
|
211
235
|
"chunks/entry.generated-UHQD4FyC.js",
|
|
212
236
|
"chunks/entry.generated-bERshNT6.js",
|
|
213
|
-
"chunks/entry2.generated-
|
|
237
|
+
"chunks/entry2.generated-C5DAZC4R.js",
|
|
214
238
|
"chunks/focus-scope-DtaPVNl5.js",
|
|
215
239
|
"chunks/form-control-BkVb2Qed.js",
|
|
216
240
|
"chunks/fragment-Bl3Rq38L.js",
|
|
@@ -222,7 +246,8 @@
|
|
|
222
246
|
"chunks/scroll-lock-DOw7dmi1.js",
|
|
223
247
|
"chunks/semantic-observer-BUswpsNx.js",
|
|
224
248
|
"chunks/styles-TfvwVPGw.js",
|
|
225
|
-
"chunks/ui-BWVDkV-D.js"
|
|
249
|
+
"chunks/ui-BWVDkV-D.js",
|
|
250
|
+
"chunks/virtual-window-BHdOw3Pi.js"
|
|
226
251
|
]
|
|
227
252
|
},
|
|
228
253
|
"trellis:input": {
|
|
@@ -270,12 +295,12 @@
|
|
|
270
295
|
"chunks/alpine-machine-BS13dbK4.js",
|
|
271
296
|
"chunks/bridge-B4S_D6hV.js",
|
|
272
297
|
"chunks/capability-motion-VFYcNVM5.js",
|
|
273
|
-
"chunks/capability-resizable-
|
|
298
|
+
"chunks/capability-resizable-Bga8TngJ.js",
|
|
274
299
|
"chunks/codecs-Cb1ns_47.js",
|
|
275
300
|
"chunks/dom-qAeVl7dc.js",
|
|
276
|
-
"chunks/drag-and-drop-
|
|
301
|
+
"chunks/drag-and-drop-DHq3udf7.js",
|
|
277
302
|
"chunks/element-adapter-native-data-key-CW8suC9A.js",
|
|
278
|
-
"chunks/entry.generated-
|
|
303
|
+
"chunks/entry.generated-C7Kas-N2.js",
|
|
279
304
|
"chunks/focus-scope-DtaPVNl5.js",
|
|
280
305
|
"chunks/fragment-Bl3Rq38L.js",
|
|
281
306
|
"chunks/machine-Dqut4h89.js",
|
|
@@ -327,7 +352,7 @@
|
|
|
327
352
|
"chunks/common-BOd_thC-.js",
|
|
328
353
|
"chunks/dismissable-layer-BROE-Ln2.js",
|
|
329
354
|
"chunks/dom-qAeVl7dc.js",
|
|
330
|
-
"chunks/entry.generated-
|
|
355
|
+
"chunks/entry.generated-C35Q-qoz.js",
|
|
331
356
|
"chunks/focus-scope-DtaPVNl5.js",
|
|
332
357
|
"chunks/form-control-BkVb2Qed.js",
|
|
333
358
|
"chunks/fragment-Bl3Rq38L.js",
|
|
@@ -348,14 +373,14 @@
|
|
|
348
373
|
"chunks/alpine-machine-BS13dbK4.js",
|
|
349
374
|
"chunks/bridge-B4S_D6hV.js",
|
|
350
375
|
"chunks/capability-motion-VFYcNVM5.js",
|
|
351
|
-
"chunks/capability-resizable-
|
|
376
|
+
"chunks/capability-resizable-Bga8TngJ.js",
|
|
352
377
|
"chunks/codecs-Cb1ns_47.js",
|
|
353
378
|
"chunks/common-BOd_thC-.js",
|
|
354
379
|
"chunks/dismissable-layer-BROE-Ln2.js",
|
|
355
380
|
"chunks/dom-qAeVl7dc.js",
|
|
356
|
-
"chunks/drag-and-drop-
|
|
381
|
+
"chunks/drag-and-drop-DHq3udf7.js",
|
|
357
382
|
"chunks/element-adapter-native-data-key-CW8suC9A.js",
|
|
358
|
-
"chunks/entry.generated-
|
|
383
|
+
"chunks/entry.generated-Cc5mRBBS.js",
|
|
359
384
|
"chunks/focus-scope-DtaPVNl5.js",
|
|
360
385
|
"chunks/fragment-Bl3Rq38L.js",
|
|
361
386
|
"chunks/machine-Dqut4h89.js",
|
|
@@ -398,12 +423,12 @@
|
|
|
398
423
|
"trellis:table": {
|
|
399
424
|
"file": "components/table.js",
|
|
400
425
|
"imports": [
|
|
401
|
-
"chunks/capability-resizable-
|
|
426
|
+
"chunks/capability-resizable-Bga8TngJ.js",
|
|
402
427
|
"chunks/codecs-Cb1ns_47.js",
|
|
403
428
|
"chunks/dom-qAeVl7dc.js",
|
|
404
|
-
"chunks/drag-and-drop-
|
|
429
|
+
"chunks/drag-and-drop-DHq3udf7.js",
|
|
405
430
|
"chunks/element-adapter-native-data-key-CW8suC9A.js",
|
|
406
|
-
"chunks/
|
|
431
|
+
"chunks/entry.generated-QspMEPHx.js"
|
|
407
432
|
]
|
|
408
433
|
},
|
|
409
434
|
"trellis:tabs": {
|
|
@@ -449,8 +474,9 @@
|
|
|
449
474
|
"chunks/alpine-data-CytyCyfk.js",
|
|
450
475
|
"chunks/bridge-B4S_D6hV.js",
|
|
451
476
|
"chunks/codecs-Cb1ns_47.js",
|
|
452
|
-
"chunks/entry.generated-
|
|
453
|
-
"chunks/fragment-Bl3Rq38L.js"
|
|
477
|
+
"chunks/entry.generated-B2rTvkxi.js",
|
|
478
|
+
"chunks/fragment-Bl3Rq38L.js",
|
|
479
|
+
"chunks/virtual-window-BHdOw3Pi.js"
|
|
454
480
|
]
|
|
455
481
|
},
|
|
456
482
|
"trellis:core": {
|
|
@@ -476,8 +502,8 @@
|
|
|
476
502
|
"chunks/anchored-popover-BXEMsLrA.js",
|
|
477
503
|
"chunks/bridge-B4S_D6hV.js",
|
|
478
504
|
"chunks/capability-motion-VFYcNVM5.js",
|
|
479
|
-
"chunks/capability-resizable-
|
|
480
|
-
"chunks/capability-sortable-
|
|
505
|
+
"chunks/capability-resizable-Bga8TngJ.js",
|
|
506
|
+
"chunks/capability-sortable-BU1g9uTC.js",
|
|
481
507
|
"chunks/codecs-Cb1ns_47.js",
|
|
482
508
|
"chunks/collection-navigation-CtNDGKcQ.js",
|
|
483
509
|
"chunks/common-BOd_thC-.js",
|
|
@@ -485,29 +511,30 @@
|
|
|
485
511
|
"chunks/core-LsAXy99P.js",
|
|
486
512
|
"chunks/dismissable-layer-BROE-Ln2.js",
|
|
487
513
|
"chunks/dom-qAeVl7dc.js",
|
|
488
|
-
"chunks/drag-and-drop-
|
|
514
|
+
"chunks/drag-and-drop-DHq3udf7.js",
|
|
489
515
|
"chunks/element-adapter-native-data-key-CW8suC9A.js",
|
|
490
516
|
"chunks/entry.generated-2VgVfygk.js",
|
|
517
|
+
"chunks/entry.generated-B2rTvkxi.js",
|
|
491
518
|
"chunks/entry.generated-BC8JUf6f.js",
|
|
492
519
|
"chunks/entry.generated-BVBXXN6t.js",
|
|
493
520
|
"chunks/entry.generated-B_xTkYSB.js",
|
|
494
|
-
"chunks/entry.generated-Bsennsyl.js",
|
|
495
521
|
"chunks/entry.generated-C-lyYGbo.js",
|
|
522
|
+
"chunks/entry.generated-C35Q-qoz.js",
|
|
523
|
+
"chunks/entry.generated-C7Kas-N2.js",
|
|
496
524
|
"chunks/entry.generated-CPbvsglm.js",
|
|
525
|
+
"chunks/entry.generated-Cc5mRBBS.js",
|
|
497
526
|
"chunks/entry.generated-D5gXHQl_.js",
|
|
498
527
|
"chunks/entry.generated-D91HRlIV.js",
|
|
499
|
-
"chunks/entry.generated-DI48yD0K.js",
|
|
500
528
|
"chunks/entry.generated-DIPrCNjK.js",
|
|
501
529
|
"chunks/entry.generated-DNtvOM3X.js",
|
|
502
530
|
"chunks/entry.generated-DYBALnuF.js",
|
|
503
531
|
"chunks/entry.generated-DfuZKFMG.js",
|
|
504
532
|
"chunks/entry.generated-Dgrr543E.js",
|
|
505
|
-
"chunks/entry.generated-DuNS3MYH.js",
|
|
506
|
-
"chunks/entry.generated-DvAia1Wz.js",
|
|
507
533
|
"chunks/entry.generated-LUzMUcng.js",
|
|
534
|
+
"chunks/entry.generated-QspMEPHx.js",
|
|
508
535
|
"chunks/entry.generated-UHQD4FyC.js",
|
|
509
536
|
"chunks/entry.generated-bERshNT6.js",
|
|
510
|
-
"chunks/entry2.generated-
|
|
537
|
+
"chunks/entry2.generated-C5DAZC4R.js",
|
|
511
538
|
"chunks/focus-scope-DtaPVNl5.js",
|
|
512
539
|
"chunks/form-control-BkVb2Qed.js",
|
|
513
540
|
"chunks/fragment-Bl3Rq38L.js",
|
|
@@ -520,6 +547,7 @@
|
|
|
520
547
|
"chunks/semantic-observer-BUswpsNx.js",
|
|
521
548
|
"chunks/styles-TfvwVPGw.js",
|
|
522
549
|
"chunks/ui-BWVDkV-D.js",
|
|
550
|
+
"chunks/virtual-window-BHdOw3Pi.js",
|
|
523
551
|
"components/index.js"
|
|
524
552
|
]
|
|
525
553
|
}
|