@aquera/nile-elements 1.7.5 → 1.7.7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"nile-detail.cjs.js","sources":["../../../src/nile-detail/nile-detail.ts"],"sourcesContent":["import { html, TemplateResult, nothing } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { styles } from './nile-detail.css';\nimport NileElement from '../internal/nile-element';\nimport { watch } from '../internal/watch';\nimport {\n animateShow,\n animateHide,\n showDetail,\n hideDetail,\n handleSummaryClick,\n handleSummaryKeyDown,\n} from './nile-detail.utils';\nimport '../nile-checkbox/index';\nimport '../nile-input/index';\nimport '../nile-link/index';\nimport '../nile-icon/index';\nimport '../nile-lite-tooltip/index';\nimport { VirtualizerController } from '@tanstack/lit-virtual';\nimport type { CSSResultGroup } from 'lit';\n\nexport type NileDetailVariant = 'default' | 'selection';\n\nexport interface NileDetailSelectionItem {\n value: string;\n label?: string;\n description?: string;\n prefix?: string;\n suffix?: string;\n disabled?: boolean;\n className?: string;\n}\n\nexport interface NileDetailRenderItemConfig {\n getDisplayText: (item: any) => string;\n getValue?: (item: any) => string;\n getSearchText?: (item: any) => string;\n getDescription?: (item: any) => string;\n getPrefix?: (item: any) => string;\n getSuffix?: (item: any) => string;\n getDisabled?: (item: any) => boolean;\n getClassName?: (item: any) => string;\n}\n\ntype SelectionItem = string | NileDetailSelectionItem | Record<string, any>;\n\nconst IS_BROWSER = typeof window !== 'undefined';\n\nexport interface NileDetailSelectionConfig {\n // Identity\n variant?: NileDetailVariant;\n heading?: string;\n description?: string;\n itemsLabel?: string;\n\n // Items / selection\n items?: SelectionItem[];\n selected?: string[];\n renderItemConfig?: NileDetailRenderItemConfig;\n allowHtmlLabel?: boolean;\n\n // Layout\n layout?: {\n orientation?: 'horizontal' | 'vertical' | 'both';\n gridRows?: number;\n gridColumns?: number;\n matrixColumns?: number;\n minColumnWidth?: string;\n laneHeight?: number;\n maxHeight?: string;\n expandIconPlacement?: 'left' | 'right';\n };\n\n // Search\n search?: {\n placeholder?: string;\n disableLocal?: boolean;\n };\n\n // Virtualization\n virtualization?: {\n enabled?: boolean;\n threshold?: number;\n overscan?: number;\n };\n\n // Pagination / infinite scroll\n pagination?: {\n totalCount?: number;\n pageSize?: number;\n fetchPage?: (offset: number, limit: number) => Promise<SelectionItem[]>;\n placeholderLabel?: string;\n };\n\n // Action labels\n labels?: {\n restore?: string;\n clear?: string;\n };\n\n // Inherited / passthrough\n open?: boolean;\n disabled?: boolean;\n}\n\n@customElement('nile-detail')\nexport class NileDetail extends NileElement {\n\n static styles: CSSResultGroup = styles;\n\n @query('details') detail: HTMLDetailsElement;\n @query('summary') header: HTMLElement;\n @query('.detail__body') body: HTMLElement;\n\n @property({ attribute: true, type: Boolean, reflect: true }) open = false;\n\n @property({ attribute: true, type: String, reflect: true }) heading = '';\n\n @property({ attribute: true, type: String, reflect: true }) description = '';\n\n @property({ attribute: true, reflect: true }) expandIconPlacement: 'left' | 'right' = 'right';\n\n @property({ attribute: true, type: Boolean, reflect: true }) disabled = false;\n\n @property({ attribute: true, type: String, reflect: true }) variant: NileDetailVariant = 'default';\n\n @property({ attribute: false, type: Array }) items: SelectionItem[] = [];\n\n @property({ attribute: false, type: Array }) selected: string[] = [];\n\n @property({ attribute: false }) renderItemConfig?: NileDetailRenderItemConfig;\n\n @property({ attribute: 'allow-html-label', type: Boolean }) allowHtmlLabel = false;\n\n @property({ attribute: 'disable-local-search', type: Boolean }) disableLocalSearch = false;\n\n @property({ attribute: 'total-count', type: Number }) totalCount?: number;\n\n @property({ attribute: 'page-size', type: Number }) pageSize = 200;\n\n @property({ attribute: false }) fetchPage?: (offset: number, limit: number) => Promise<SelectionItem[]>;\n\n @property({ attribute: 'placeholder-label', type: String }) placeholderLabel = 'Loading…';\n\n @property({ attribute: false }) config?: NileDetailSelectionConfig;\n\n @property({ attribute: 'search-placeholder', type: String }) searchPlaceholder = 'Search...';\n\n @property({ attribute: 'items-label', type: String }) itemsLabel = 'attributes';\n\n @property({ attribute: 'restore-label', type: String }) restoreLabel = 'Restore';\n\n @property({ attribute: 'clear-label', type: String }) clearLabel = 'Clear';\n\n @property({ attribute: 'grid-rows', type: Number }) gridRows = 6;\n\n @property({ attribute: 'grid-columns', type: Number }) gridColumns = 3;\n\n @property({ attribute: 'min-column-width', type: String }) minColumnWidth = '220px';\n\n @property({ attribute: 'lane-height', type: Number }) laneHeight = 32;\n\n @property({ attribute: true, type: String, reflect: true }) orientation: 'horizontal' | 'vertical' | 'both' = 'horizontal';\n\n @property({ attribute: 'max-height', type: String }) maxHeight = '320px';\n\n @property({ attribute: 'matrix-columns', type: Number }) matrixColumns = 20;\n\n @property({ attribute: true, type: Boolean }) virtualize = false;\n\n @property({ attribute: 'virtualize-threshold', type: Number }) virtualizeThreshold = 60;\n\n @property({ attribute: 'overscan', type: Number }) overscan = 4;\n\n @state() private _detailOpen = false;\n\n @state() private _searchTerm = '';\n\n @state() private _selectedSet: Set<string> = new Set();\n\n private _restoreDefaults: string[] | null = null;\n\n private _gridResizeObserver: ResizeObserver | null = null;\n\n private _virtCtrl: VirtualizerController<HTMLElement, HTMLElement> | null = null;\n\n private _rowVirtCtrl: VirtualizerController<HTMLElement, HTMLElement> | null = null;\n\n private _colVirtCtrl: VirtualizerController<HTMLElement, HTMLElement> | null = null;\n\n private _pageCache: any = new Map();\n\n private _pendingPages: any = new Set();\n\n private get _isInfiniteMode(): boolean {\n return (\n this.variant === 'selection' &&\n typeof this.fetchPage === 'function' &&\n typeof this.totalCount === 'number' &&\n this.orientation !== 'both'\n );\n }\n\n private _effectiveTotalCount(): number {\n if (this._isInfiniteMode) return this.totalCount ?? 0;\n return this._filteredItems.length;\n }\n\n private _getItemAt(index: number): SelectionItem | undefined {\n if (!this._isInfiniteMode) return this._filteredItems[index];\n const pageSize = Math.max(1, this.pageSize);\n const pageIndex = Math.floor(index / pageSize);\n const page = this._pageCache.get(pageIndex);\n if (!page) return undefined;\n return page[index - pageIndex * pageSize];\n }\n\n private _scheduleFetchForRange(start: number, end: number) {\n if (!this._isInfiniteMode || !this.fetchPage) return;\n const pageSize = Math.max(1, this.pageSize);\n const total = this.totalCount ?? 0;\n if (total <= 0) return;\n\n const firstPage = Math.floor(start / pageSize);\n const lastPage = Math.floor(Math.min(end, total - 1) / pageSize);\n for (let p = firstPage; p <= lastPage; p++) {\n if (this._pageCache.has(p) || this._pendingPages.has(p)) continue;\n this._loadPage(p);\n }\n }\n\n private async _loadPage(pageIndex: number) {\n if (!this.fetchPage) return;\n const pageSize = Math.max(1, this.pageSize);\n const offset = pageIndex * pageSize;\n const total = this.totalCount ?? 0;\n const limit = Math.min(pageSize, Math.max(0, total - offset));\n if (limit <= 0) return;\n\n this._pendingPages.add(pageIndex);\n try {\n const rows = await this.fetchPage(offset, limit);\n this._pageCache.set(pageIndex, Array.isArray(rows) ? rows : []);\n this.dispatchEvent(\n new CustomEvent('nile-page-load', {\n detail: { pageIndex, offset, limit, rows: this._pageCache.get(pageIndex) },\n bubbles: true,\n composed: true,\n })\n );\n } catch (err) {\n this.dispatchEvent(\n new CustomEvent('nile-page-error', {\n detail: { pageIndex, offset, limit, error: err },\n bubbles: true,\n composed: true,\n })\n );\n } finally {\n this._pendingPages.delete(pageIndex);\n this.requestUpdate();\n }\n }\n\n /** Public: clear the page cache (use after a query change to refetch). */\n resetPages() {\n this._pageCache = new Map();\n this._pendingPages = new Set();\n this.requestUpdate();\n }\n\n private get _isVirtualized(): boolean {\n if (!IS_BROWSER) return false;\n if (this._isInfiniteMode) return true;\n return this.variant === 'selection'\n && (this.virtualize || this.items.length > this.virtualizeThreshold);\n }\n\n private get _columnWidthPx(): number {\n const parsed = parseInt(this.minColumnWidth, 10);\n return Number.isFinite(parsed) && parsed > 0 ? parsed : 220;\n }\n\n firstUpdated() {\n this._detailOpen = this.open;\n this.body.hidden = !this.open;\n this.body.style.height = this.open ? 'auto' : '0';\n this._syncSelectedFromProperty();\n if (this._restoreDefaults === null) {\n this._restoreDefaults = [...this._selectedSet];\n }\n this._setupGridResizeObserver();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this._gridResizeObserver?.disconnect();\n this._gridResizeObserver = null;\n }\n\n updated(_changed: Map<string, unknown>) {\n if (this.variant === 'selection') {\n this._setupGridResizeObserver();\n this._syncVirtualizer();\n this._scheduleTooltipOverflowCheck();\n }\n }\n\n private _syncVirtualizer() {\n if (!IS_BROWSER) return;\n if (!this._isVirtualized) {\n this._virtCtrl = null;\n this._rowVirtCtrl = null;\n this._colVirtCtrl = null;\n return;\n }\n const grid = this.shadowRoot?.querySelector('.detail__selection-grid') as HTMLElement | null;\n if (!grid) return;\n\n if (this.orientation === 'both') {\n this._virtCtrl = null;\n this._syncBothVirtualizers();\n return;\n }\n\n // Reset 2-axis controllers if we switched away from 'both'.\n this._rowVirtCtrl = null;\n this._colVirtCtrl = null;\n\n const count = this._effectiveTotalCount();\n const isVertical = this.orientation === 'vertical';\n const lanes = Math.max(1, isVertical ? this.gridColumns : this.gridRows);\n const itemSize = isVertical ? this.laneHeight : this._columnWidthPx;\n\n if (!this._virtCtrl) {\n this._virtCtrl = new VirtualizerController<HTMLElement, HTMLElement>(this, {\n count,\n getScrollElement: () =>\n this.shadowRoot?.querySelector('.detail__selection-grid') as HTMLElement | null,\n estimateSize: () => itemSize,\n horizontal: !isVertical,\n lanes,\n overscan: this.overscan,\n });\n return;\n }\n\n const v = this._virtCtrl.getVirtualizer();\n const prev = v.options;\n const orientationChanged = !!prev.horizontal !== !isVertical;\n if (\n prev.count !== count ||\n prev.lanes !== lanes ||\n prev.overscan !== this.overscan ||\n orientationChanged\n ) {\n v.setOptions({\n ...prev,\n count,\n lanes,\n overscan: this.overscan,\n horizontal: !isVertical,\n estimateSize: () => itemSize,\n });\n v.measure();\n }\n }\n\n private _syncBothVirtualizers() {\n const totalItems = this._filteredItems.length;\n const cols = Math.max(1, this.matrixColumns);\n const rows = Math.max(1, Math.ceil(totalItems / cols));\n const columnWidth = this._columnWidthPx;\n const rowHeight = this.laneHeight;\n const getScrollEl = () =>\n this.shadowRoot?.querySelector('.detail__selection-grid') as HTMLElement | null;\n\n if (!this._rowVirtCtrl) {\n this._rowVirtCtrl = new VirtualizerController<HTMLElement, HTMLElement>(this, {\n count: rows,\n getScrollElement: getScrollEl,\n estimateSize: () => rowHeight,\n horizontal: false,\n overscan: this.overscan,\n });\n } else {\n const rv = this._rowVirtCtrl.getVirtualizer();\n const prev = rv.options;\n if (prev.count !== rows || prev.overscan !== this.overscan) {\n rv.setOptions({\n ...prev,\n count: rows,\n overscan: this.overscan,\n estimateSize: () => rowHeight,\n });\n rv.measure();\n }\n }\n\n if (!this._colVirtCtrl) {\n this._colVirtCtrl = new VirtualizerController<HTMLElement, HTMLElement>(this, {\n count: cols,\n getScrollElement: getScrollEl,\n estimateSize: () => columnWidth,\n horizontal: true,\n overscan: this.overscan,\n });\n } else {\n const cv = this._colVirtCtrl.getVirtualizer();\n const prev = cv.options;\n if (prev.count !== cols || prev.overscan !== this.overscan) {\n cv.setOptions({\n ...prev,\n count: cols,\n overscan: this.overscan,\n estimateSize: () => columnWidth,\n });\n cv.measure();\n }\n }\n }\n\n private _setupGridResizeObserver() {\n if (this.variant !== 'selection') return;\n if (typeof ResizeObserver === 'undefined') return;\n const grid = this.shadowRoot?.querySelector('.detail__selection-grid') as HTMLElement | null;\n if (!grid) return;\n if (this._gridResizeObserver) return;\n this._gridResizeObserver = new ResizeObserver(() => this._scheduleTooltipOverflowCheck());\n this._gridResizeObserver.observe(grid);\n }\n\n private _scheduleTooltipOverflowCheck() {\n if (typeof requestAnimationFrame === 'undefined') return;\n requestAnimationFrame(() => this._updateTooltipOverflowStates());\n }\n\n private async _updateTooltipOverflowStates() {\n const tooltips = this.shadowRoot?.querySelectorAll(\n '.detail__selection-tooltip'\n ) as NodeListOf<HTMLElement> | undefined;\n if (!tooltips) return;\n for (const tip of tooltips) {\n const cb = tip.querySelector('nile-checkbox') as HTMLElement & { updateComplete?: Promise<unknown> } | null;\n if (!cb) continue;\n if (cb.updateComplete) await cb.updateComplete;\n const labelEl = cb.shadowRoot?.querySelector('[part=\"label\"]') as HTMLElement | null;\n const overflowing = !!labelEl && labelEl.scrollWidth > labelEl.clientWidth + 1;\n if (overflowing) tip.removeAttribute('disabled');\n else tip.setAttribute('disabled', '');\n }\n }\n\n @watch('selected', { waitUntilFirstUpdate: false })\n _onSelectedPropertyChange() {\n this._syncSelectedFromProperty();\n }\n\n @watch('config', { waitUntilFirstUpdate: false })\n _onConfigChange() {\n this._applyConfig();\n }\n\n private _applyConfig() {\n const c = this.config;\n if (!c) return;\n\n if (c.variant !== undefined) this.variant = c.variant;\n if (c.heading !== undefined) this.heading = c.heading;\n if (c.description !== undefined) this.description = c.description;\n if (c.itemsLabel !== undefined) this.itemsLabel = c.itemsLabel;\n if (c.open !== undefined) this.open = c.open;\n if (c.disabled !== undefined) this.disabled = c.disabled;\n\n if (c.items !== undefined) this.items = c.items;\n if (c.selected !== undefined) this.selected = c.selected;\n if (c.renderItemConfig !== undefined) this.renderItemConfig = c.renderItemConfig;\n if (c.allowHtmlLabel !== undefined) this.allowHtmlLabel = c.allowHtmlLabel;\n\n if (c.layout) {\n const l = c.layout;\n if (l.orientation !== undefined) this.orientation = l.orientation;\n if (l.gridRows !== undefined) this.gridRows = l.gridRows;\n if (l.gridColumns !== undefined) this.gridColumns = l.gridColumns;\n if (l.matrixColumns !== undefined) this.matrixColumns = l.matrixColumns;\n if (l.minColumnWidth !== undefined) this.minColumnWidth = l.minColumnWidth;\n if (l.laneHeight !== undefined) this.laneHeight = l.laneHeight;\n if (l.maxHeight !== undefined) this.maxHeight = l.maxHeight;\n if (l.expandIconPlacement !== undefined) this.expandIconPlacement = l.expandIconPlacement;\n }\n\n if (c.search) {\n if (c.search.placeholder !== undefined) this.searchPlaceholder = c.search.placeholder;\n if (c.search.disableLocal !== undefined) this.disableLocalSearch = c.search.disableLocal;\n }\n\n if (c.virtualization) {\n if (c.virtualization.enabled !== undefined) this.virtualize = c.virtualization.enabled;\n if (c.virtualization.threshold !== undefined) this.virtualizeThreshold = c.virtualization.threshold;\n if (c.virtualization.overscan !== undefined) this.overscan = c.virtualization.overscan;\n }\n\n if (c.pagination) {\n if (c.pagination.totalCount !== undefined) this.totalCount = c.pagination.totalCount;\n if (c.pagination.pageSize !== undefined) this.pageSize = c.pagination.pageSize;\n if (c.pagination.fetchPage !== undefined) this.fetchPage = c.pagination.fetchPage;\n if (c.pagination.placeholderLabel !== undefined) this.placeholderLabel = c.pagination.placeholderLabel;\n }\n\n if (c.labels) {\n if (c.labels.restore !== undefined) this.restoreLabel = c.labels.restore;\n if (c.labels.clear !== undefined) this.clearLabel = c.labels.clear;\n }\n }\n\n private _syncSelectedFromProperty() {\n this._selectedSet = new Set(this.selected || []);\n }\n\n private _getItemValue(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getValue) return String(rc.getValue(item));\n if (typeof item === 'string') return item;\n return String((item as NileDetailSelectionItem).value ?? '');\n }\n\n private _getItemLabel(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getDisplayText) return rc.getDisplayText(item);\n if (typeof item === 'string') return item;\n return (item as NileDetailSelectionItem).label ?? this._getItemValue(item);\n }\n\n private _getItemSearchText(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getSearchText) return rc.getSearchText(item);\n return this._getItemLabel(item);\n }\n\n private _getItemDescription(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getDescription) return rc.getDescription(item) ?? '';\n if (typeof item === 'string') return '';\n return (item as NileDetailSelectionItem).description ?? '';\n }\n\n private _getItemPrefix(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getPrefix) return rc.getPrefix(item) ?? '';\n if (typeof item === 'string') return '';\n return (item as NileDetailSelectionItem).prefix ?? '';\n }\n\n private _getItemSuffix(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getSuffix) return rc.getSuffix(item) ?? '';\n if (typeof item === 'string') return '';\n return (item as NileDetailSelectionItem).suffix ?? '';\n }\n\n private _getItemDisabled(item: SelectionItem): boolean {\n const rc = this.renderItemConfig;\n if (rc?.getDisabled) return !!rc.getDisabled(item);\n if (typeof item === 'string') return false;\n return !!(item as NileDetailSelectionItem).disabled;\n }\n\n private _getItemClassName(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getClassName) return rc.getClassName(item) ?? '';\n if (typeof item === 'string') return '';\n return (item as NileDetailSelectionItem).className ?? '';\n }\n\n private get _filteredItems(): SelectionItem[] {\n if (this.disableLocalSearch) return this.items;\n const q = this._searchTerm.trim().toLowerCase();\n if (!q) return this.items;\n return this.items.filter(item =>\n this._getItemSearchText(item).toLowerCase().includes(q)\n );\n }\n\n private _selectableValues(): string[] {\n const source: SelectionItem[] = this._isInfiniteMode\n ? (Array.from(this._pageCache.values()).flat() as SelectionItem[])\n : this.items;\n return source\n .filter(i => !this._getItemDisabled(i))\n .map(i => this._getItemValue(i));\n }\n\n private get _allChecked(): boolean {\n const selectable = this._selectableValues();\n if (selectable.length === 0) return false;\n return selectable.every(v => this._selectedSet.has(v));\n }\n\n private get _indeterminate(): boolean {\n const selectable = this._selectableValues();\n const sel = selectable.filter(v => this._selectedSet.has(v)).length;\n return sel > 0 && sel < selectable.length;\n }\n\n private get _countLabel(): string {\n const total = this._isInfiniteMode ? (this.totalCount ?? 0) : this.items.length;\n return `${this._selectedSet.size} of ${total} ${this.itemsLabel} selected`;\n }\n\n private _emitSelectionChange() {\n this.selected = [...this._selectedSet];\n this.dispatchEvent(\n new CustomEvent('nile-change', {\n detail: { selected: [...this._selectedSet] },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private _onItemChange(value: string, disabled: boolean, event: Event) {\n if (disabled) {\n event.preventDefault();\n return;\n }\n const target = event.target as HTMLInputElement;\n const next = new Set(this._selectedSet);\n if (target.checked) next.add(value);\n else next.delete(value);\n this._selectedSet = next;\n this._emitSelectionChange();\n }\n\n private _onSelectAllChange(event: Event) {\n const target = event.target as HTMLInputElement;\n const selectable = this._selectableValues();\n const next = new Set(this._selectedSet);\n if (target.checked) selectable.forEach(v => next.add(v));\n else selectable.forEach(v => next.delete(v));\n this._selectedSet = next;\n this._emitSelectionChange();\n }\n\n private _emitSearch(value: string) {\n this.dispatchEvent(\n new CustomEvent('nile-search', {\n detail: { value },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private _onSearchInput(event: Event) {\n const target = event.target as HTMLInputElement;\n const value = target.value ?? '';\n this._searchTerm = value;\n if (this.disableLocalSearch) this._emitSearch(value);\n }\n\n private _onSearchClear() {\n this._searchTerm = '';\n if (this.disableLocalSearch) this._emitSearch('');\n }\n\n private _onRestore(event: Event) {\n event.preventDefault();\n const source = this._restoreDefaults ?? this._selectableValues();\n this._selectedSet = new Set(source);\n this._emitSelectionChange();\n }\n\n private _onClear(event: Event) {\n event.preventDefault();\n this._selectedSet = new Set();\n this._emitSelectionChange();\n }\n\n private _stopHeaderToggle(event: Event) {\n event.stopPropagation();\n }\n\n private _handleSummaryClick(event: Event) {\n event.preventDefault();\n handleSummaryClick(this);\n }\n\n private _handleSummaryKeyDown(event: KeyboardEvent) {\n handleSummaryKeyDown(event, this);\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n if (this.open) {\n this._detailOpen = true;\n await animateShow(this);\n } else {\n await animateHide(this);\n this._detailOpen = false;\n }\n }\n\n async show() {\n return showDetail(this);\n }\n\n async hide() {\n return hideDetail(this);\n }\n\n private get _summaryLabel(): string {\n return [this.heading, this.description].filter(Boolean).join(', ');\n }\n\n private _renderSelectionLabel(): TemplateResult {\n return html`\n <div part=\"selection-label\" class=\"detail__selection-label\">\n <nile-checkbox\n part=\"select-all\"\n class=\"detail__select-all\"\n ?checked=${this._allChecked}\n ?indeterminate=${this._indeterminate}\n aria-label=${`Select all ${this.heading || this.itemsLabel}`}\n @click=${this._stopHeaderToggle}\n @nile-change=${this._onSelectAllChange}\n ></nile-checkbox>\n <div class=\"detail__selection-title\">\n <span part=\"label-text\" class=\"detail__heading-text\">${this.heading}</span>\n <span part=\"selection-count\" class=\"detail__selection-count\">${this._countLabel}</span>\n </div>\n </div>\n `;\n }\n\n private _renderSelectionBody(): TemplateResult {\n const virtualized = this._isVirtualized;\n const isVertical = this.orientation === 'vertical';\n const isBoth = this.orientation === 'both';\n const laneHeightPx = this.laneHeight;\n const columnWidth = this._columnWidthPx;\n\n let gridStyle = '';\n if (virtualized) {\n if (isBoth) {\n gridStyle = `max-height: ${this.maxHeight}; height: ${this.maxHeight};`;\n } else if (isVertical) {\n gridStyle = `max-height: ${this.maxHeight}; height: ${this.maxHeight};`;\n } else {\n const lanes = Math.max(1, this.gridRows);\n gridStyle = `height: ${lanes * laneHeightPx}px;`;\n }\n } else if (isVertical) {\n const cols = Math.max(1, this.gridColumns);\n gridStyle = `grid-template-columns: repeat(${cols}, minmax(0, 1fr)); grid-auto-flow: row; max-height: ${this.maxHeight}; overflow-y: auto; overflow-x: hidden;`;\n } else {\n const lanes = Math.max(1, this.gridRows);\n gridStyle = `grid-template-rows: repeat(${lanes}, auto); grid-auto-columns: minmax(${this.minColumnWidth}, 1fr);`;\n }\n\n return html`\n <div part=\"selection-toolbar\" class=\"detail__selection-toolbar\">\n <nile-input\n part=\"search\"\n class=\"detail__selection-search\"\n placeholder=${this.searchPlaceholder}\n clearable\n .value=${this._searchTerm}\n @nile-input=${this._onSearchInput}\n @nile-clear=${this._onSearchClear}\n >\n <nile-icon slot=\"prefix\" name=\"search\" library=\"system\"></nile-icon>\n </nile-input>\n <div part=\"selection-actions\" class=\"detail__selection-actions\">\n <nile-link href=\"#\" variant=\"subtle\" @click=${this._onRestore}>${this.restoreLabel}</nile-link>\n <nile-link href=\"#\" variant=\"subtle\" @click=${this._onClear}>${this.clearLabel}</nile-link>\n </div>\n </div>\n <div\n part=\"selection-grid\"\n class=${classMap({\n 'detail__selection-grid': true,\n 'detail__selection-grid--virtual': virtualized,\n 'detail__selection-grid--vertical': isVertical,\n 'detail__selection-grid--both': isBoth,\n })}\n style=${gridStyle}\n >\n ${virtualized\n ? (isBoth\n ? this._renderBothVirtualGrid(laneHeightPx, columnWidth)\n : this._renderVirtualGrid(laneHeightPx, columnWidth, isVertical))\n : this._renderStaticGrid()}\n </div>\n `;\n }\n\n private _renderItemContent(item: SelectionItem): TemplateResult {\n const label = this._getItemLabel(item);\n const description = this._getItemDescription(item);\n const prefix = this._getItemPrefix(item);\n const suffix = this._getItemSuffix(item);\n const allowHtml = this.allowHtmlLabel;\n return html`\n ${prefix\n ? html`<span class=\"detail__selection-prefix\" part=\"item-prefix\">${allowHtml ? unsafeHTML(prefix) : prefix}</span>`\n : ''}\n <span class=\"detail__selection-text\" part=\"item-text\">\n <span class=\"detail__selection-item-label\" part=\"item-label\">${allowHtml ? unsafeHTML(label) : label}</span>\n ${description\n ? html`<span class=\"detail__selection-desc\" part=\"item-description\">${allowHtml ? unsafeHTML(description) : description}</span>`\n : ''}\n </span>\n ${suffix\n ? html`<span class=\"detail__selection-suffix\" part=\"item-suffix\">${allowHtml ? unsafeHTML(suffix) : suffix}</span>`\n : ''}\n `;\n }\n\n private _renderItemTooltip(item: SelectionItem, opts: { positionStyle?: string; extraClasses?: string } = {}): TemplateResult {\n const value = this._getItemValue(item);\n const label = this._getItemLabel(item);\n const description = this._getItemDescription(item);\n const isDisabled = this._getItemDisabled(item);\n const className = this._getItemClassName(item);\n const tooltipContent = description ? `${label} — ${description}` : label;\n\n const tooltipClass = `detail__selection-tooltip${opts.extraClasses ? ' ' + opts.extraClasses : ''}`;\n const checkboxClass = classMap({\n 'detail__selection-checkbox': true,\n 'detail__selection-checkbox--disabled': isDisabled,\n [className]: !!className,\n });\n\n return html`\n <nile-lite-tooltip\n class=${tooltipClass}\n content=${tooltipContent}\n size=\"small\"\n disabled\n style=${opts.positionStyle ?? nothing as any}\n >\n <nile-checkbox\n class=${checkboxClass}\n ?checked=${this._selectedSet.has(value)}\n ?disabled=${isDisabled}\n @nile-change=${(e: Event) => this._onItemChange(value, isDisabled, e)}\n >${this._renderItemContent(item)}</nile-checkbox>\n </nile-lite-tooltip>\n `;\n }\n\n private _renderStaticGrid(): TemplateResult {\n return html`${this._filteredItems.map(item => this._renderItemTooltip(item))}`;\n }\n\n private _renderBothVirtualGrid(_laneHeightPx: number, _columnWidthPx: number): TemplateResult {\n const rowV = this._rowVirtCtrl?.getVirtualizer();\n const colV = this._colVirtCtrl?.getVirtualizer();\n const rowTotal = rowV?.getTotalSize() ?? 0;\n const colTotal = colV?.getTotalSize() ?? 0;\n const rowItems = rowV?.getVirtualItems() ?? [];\n const colItems = colV?.getVirtualItems() ?? [];\n const cols = Math.max(1, this.matrixColumns);\n const total = this._filteredItems.length;\n\n return html`\n <div\n class=\"detail__selection-track\"\n style=\"width: ${colTotal}px; height: ${rowTotal}px; position: relative;\"\n >\n ${rowItems.flatMap(rvi =>\n colItems.map(cvi => {\n const idx = rvi.index * cols + cvi.index;\n if (idx >= total) return null;\n const item = this._filteredItems[idx];\n if (item === undefined) return null;\n const positionStyle = `position: absolute; top: ${rvi.start}px; left: ${cvi.start}px; width: ${cvi.size}px; height: ${rvi.size}px;`;\n return this._renderItemTooltip(item, {\n positionStyle,\n extraClasses: 'detail__selection-tooltip--virtual',\n });\n })\n )}\n </div>\n `;\n }\n\n private _renderVirtualGrid(\n laneHeightPx: number,\n _columnWidthPx: number,\n isVertical: boolean\n ): TemplateResult {\n const v = this._virtCtrl?.getVirtualizer();\n const totalSize = v?.getTotalSize() ?? 0;\n const virtualItems = v?.getVirtualItems() ?? [];\n const lanes = Math.max(1, isVertical ? this.gridColumns : this.gridRows);\n\n if (this._isInfiniteMode && virtualItems.length > 0) {\n const first = virtualItems[0].index;\n const last = virtualItems[virtualItems.length - 1].index;\n this._scheduleFetchForRange(first, last);\n }\n\n const trackStyle = isVertical\n ? `width: 100%; height: ${totalSize}px; position: relative;`\n : `width: ${totalSize}px; height: 100%; position: relative;`;\n\n return html`\n <div class=\"detail__selection-track\" style=${trackStyle}>\n ${virtualItems.map(vi => {\n const laneIdx = vi.lane ?? 0;\n const positionStyle = isVertical\n ? `position: absolute; top: ${vi.start}px; left: calc(${laneIdx} * (100% / ${lanes})); width: calc(100% / ${lanes}); height: ${vi.size}px;`\n : `position: absolute; top: ${laneIdx * laneHeightPx}px; left: ${vi.start}px; width: ${vi.size}px; height: ${laneHeightPx}px;`;\n const item = this._getItemAt(vi.index);\n if (item === undefined) {\n return this._renderPlaceholder(positionStyle);\n }\n return this._renderItemTooltip(item, {\n positionStyle,\n extraClasses: 'detail__selection-tooltip--virtual',\n });\n })}\n </div>\n `;\n }\n\n private _renderPlaceholder(positionStyle: string): TemplateResult {\n return html`\n <div class=\"detail__selection-placeholder\" style=${positionStyle} part=\"item-placeholder\">\n <div class=\"detail__selection-placeholder-bar\"></div>\n <span class=\"detail__selection-placeholder-label\">${this.placeholderLabel}</span>\n </div>\n `;\n }\n\n render(): TemplateResult {\n const isSelection = this.variant === 'selection';\n return html`\n <details\n part=\"base\"\n ?open=${this._detailOpen}\n class=${classMap({\n 'detail': true,\n 'detail--open': this.open,\n 'detail--disabled': this.disabled,\n 'detail--selection': isSelection,\n })}\n >\n <summary\n part=\"header\"\n id=\"header\"\n class=${classMap({\n 'detail__header': true,\n 'detail__header--icon-left': this.expandIconPlacement === 'left',\n })}\n aria-label=${this._summaryLabel || nothing}\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-disabled=${this.disabled ? 'true' : 'false'}\n tabindex=${this.disabled ? '-1' : '0'}\n @click=${this._handleSummaryClick}\n @keydown=${this._handleSummaryKeyDown}\n >\n <slot name=\"label\" part=\"label\" class=\"detail__label\">\n ${isSelection\n ? this._renderSelectionLabel()\n : html`\n <span part=\"label-text\" class=\"detail__heading-text\">${this.heading}</span>\n ${this.description\n ? html`<span part=\"description\" class=\"detail__description\">${this.description}</span>`\n : ''}\n `}\n </slot>\n\n <slot name=\"header-actions\" part=\"header-actions\" class=\"detail__header-actions\"></slot>\n\n <slot name=\"prefix\" part=\"prefix\" class=\"detail__prefix\"></slot>\n\n <span part=\"summary-icon\" class=\"detail__summary-icon\" aria-hidden=\"true\">\n <slot name=\"expand-icon\">\n <nile-icon\n name=\"var(--nile-icon-arrow-right, var(--ng-icon-chevron-right))\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\"\n library=\"system\"\n ></nile-icon>\n </slot>\n </span>\n\n <slot name=\"suffix\" part=\"suffix\" class=\"detail__suffix\"></slot>\n\n </summary>\n\n <div part=\"content\" class=\"detail__body\">\n ${isSelection\n ? html`<div part=\"selection-content\" class=\"detail__selection-content\">${this._renderSelectionBody()}</div>`\n : ''}\n <slot id=\"content\" class=\"detail__content\"></slot>\n </div>\n </details>\n `;\n }\n}\n\nexport default NileDetail;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-detail': NileDetail;\n }\n}\n"],"names":["IS_BROWSER","window","NileDetail","_","this","open","heading","description","expandIconPlacement","disabled","variant","items","selected","allowHtmlLabel","disableLocalSearch","pageSize","placeholderLabel","searchPlaceholder","itemsLabel","restoreLabel","clearLabel","gridRows","gridColumns","minColumnWidth","laneHeight","orientation","maxHeight","matrixColumns","virtualize","virtualizeThreshold","overscan","_detailOpen","_searchTerm","_selectedSet","Set","_restoreDefaults","_gridResizeObserver","_virtCtrl","_rowVirtCtrl","_colVirtCtrl","_pageCache","Map","_pendingPages","_this","_inherits","_p","_createClass","key","get","fetchPage","totalCount","value","_effectiveTotalCount","_this$totalCount","_isInfiniteMode","_filteredItems","length","_getItemAt","index","Math","max","pageIndex","floor","page","_scheduleFetchForRange","start","end","_this$totalCount2","total","firstPage","lastPage","min","p","has","_loadPage","_loadPage2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_context2","next","abrupt","offset","limit","add","prev","rows","set","Array","isArray","dispatchEvent","CustomEvent","detail","bubbles","composed","t0","error","requestUpdate","finish","stop","resetPages","_isVirtualized","parsed","parseInt","Number","isFinite","firstUpdated","body","hidden","style","height","_syncSelectedFromProperty","_setupGridResizeObserver","disconnectedCallback","super","disconnect","updated","_changed","_syncVirtualizer","_scheduleTooltipOverflowCheck","_this$shadowRoot","_this2","grid","shadowRoot","querySelector","_syncBothVirtualizers","count","isVertical","lanes","itemSize","_columnWidthPx","VirtualizerController","getScrollElement","estimateSize","horizontal","v","getVirtualizer","options","orientationChanged","setOptions","measure","_this3","totalItems","cols","ceil","columnWidth","rowHeight","getScrollEl","rv","cv","ResizeObserver","observe","_this5","requestAnimationFrame","_updateTooltipOverflowStates","_updateTooltipOverflowStates2","_callee2","_this$shadowRoot3","i","_iterator","_step","_i4$shadowRoot","_s3","_i4","_n2","wrap","_callee2$","_context3","tooltips","querySelectorAll","tip","cb","updateComplete","labelEl","scrollWidth","clientWidth","removeAttribute","setAttribute","t1","e","f","_onSelectedPropertyChange","_onConfigChange","_applyConfig","c","config","undefined","renderItemConfig","layout","l","search","placeholder","disableLocal","virtualization","enabled","threshold","pagination","labels","restore","clear","_getItemValue","item","rc","getValue","String","_i$value","_getItemLabel","getDisplayText","label","_getItemSearchText","getSearchText","_getItemDescription","_s$getDescription","_i$description","getDescription","_getItemPrefix","getPrefix","_s$getPrefix","prefix","_i$prefix","_getItemSuffix","_s$getSuffix","_i$suffix","getSuffix","suffix","_getItemDisabled","getDisabled","_getItemClassName","_s$getClassName","_i$className","getClassName","className","_this6","q","trim","toLowerCase","filter","includes","_selectableValues","_this7","from","values","flat","map","selectable","every","_this9","sel","_this$totalCount4","concat","size","_emitSelectionChange","_toConsumableArray","_onItemChange","event","preventDefault","target","checked","delete","_onSelectAllChange","forEach","_emitSearch","_onSearchInput","_onSearchClear","_onRestore","source","_onClear","_stopHeaderToggle","stopPropagation","_handleSummaryClick","handleSummaryClick","_handleSummaryKeyDown","handleSummaryKeyDown","_handleOpenChange","_callee3","_callee3$","_context4","animateShow","animateHide","handleOpenChange","_callee4","_callee4$","_context5","showDetail","show","_callee5","_callee5$","_context6","hideDetail","hide","_summaryLabel","Boolean","join","_renderSelectionLabel","html","_templateObject","_taggedTemplateLiteral","_allChecked","_indeterminate","_countLabel","_renderSelectionBody","virtualized","isBoth","laneHeightPx","gridStyle","_templateObject2","classMap","_renderBothVirtualGrid","_renderVirtualGrid","_renderStaticGrid","_renderItemContent","allowHtml","_templateObject3","_templateObject4","unsafeHTML","_templateObject5","_templateObject6","_renderItemTooltip","opts","arguments","isDisabled","tooltipContent","tooltipClass","extraClasses","checkboxClass","_templateObject7","positionStyle","nothing","_this11","_templateObject8","_laneHeightPx","rowV","colV","rowTotal","getTotalSize","colTotal","rowItems","getVirtualItems","_o$getVirtualItems","colItems","_templateObject9","flatMap","rvi","cvi","idx","totalSize","_c$getTotalSize2","virtualItems","_c$getVirtualItems2","first","last","_templateObject10","vi","_s$lane","laneIdx","lane","_renderPlaceholder","_templateObject11","render","isSelection","_templateObject12","detail__header","_templateObject13","_templateObject14","_templateObject15","NileElement","styles","__decorate","query","prototype","property","attribute","type","reflect","state","watch","waitUntilFirstUpdate","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"nile-detail.cjs.js","sources":["../../../src/nile-detail/nile-detail.ts"],"sourcesContent":["import { html, TemplateResult, nothing } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { styles } from './nile-detail.css';\nimport NileElement from '../internal/nile-element';\nimport { watch } from '../internal/watch';\nimport {\n animateShow,\n animateHide,\n showDetail,\n hideDetail,\n handleSummaryClick,\n handleSummaryKeyDown,\n} from './nile-detail.utils';\nimport '../nile-checkbox/index';\nimport '../nile-input/index';\nimport '../nile-link/index';\nimport '../nile-icon/index';\nimport '../nile-lite-tooltip/index';\nimport { VirtualizerController } from '@tanstack/lit-virtual';\nimport type { CSSResultGroup } from 'lit';\n\nexport type NileDetailVariant = 'default' | 'selection';\n\nexport interface NileDetailSelectionItem {\n value: string;\n label?: string;\n description?: string;\n prefix?: string;\n suffix?: string;\n disabled?: boolean;\n className?: string;\n}\n\nexport interface NileDetailRenderItemConfig {\n getDisplayText: (item: any) => string;\n getValue?: (item: any) => string;\n getSearchText?: (item: any) => string;\n getDescription?: (item: any) => string;\n getPrefix?: (item: any) => string;\n getSuffix?: (item: any) => string;\n getDisabled?: (item: any) => boolean;\n getClassName?: (item: any) => string;\n}\n\ntype SelectionItem = string | NileDetailSelectionItem | Record<string, any>;\n\nconst IS_BROWSER = typeof window !== 'undefined';\n\nexport interface NileDetailSelectionConfig {\n // Identity\n variant?: NileDetailVariant;\n heading?: string;\n description?: string;\n itemsLabel?: string;\n\n // Items / selection\n items?: SelectionItem[];\n selected?: string[];\n renderItemConfig?: NileDetailRenderItemConfig;\n allowHtmlLabel?: boolean;\n\n // Layout\n layout?: {\n orientation?: 'horizontal' | 'vertical' | 'both';\n gridRows?: number;\n gridColumns?: number;\n matrixColumns?: number;\n minColumnWidth?: string;\n laneHeight?: number;\n maxHeight?: string;\n expandIconPlacement?: 'left' | 'right';\n };\n\n // Search\n search?: {\n placeholder?: string;\n disableLocal?: boolean;\n };\n\n // Virtualization\n virtualization?: {\n enabled?: boolean;\n threshold?: number;\n overscan?: number;\n };\n\n // Pagination / infinite scroll\n pagination?: {\n totalCount?: number;\n pageSize?: number;\n fetchPage?: (offset: number, limit: number) => Promise<SelectionItem[]>;\n placeholderLabel?: string;\n };\n\n // Action labels\n labels?: {\n restore?: string;\n clear?: string;\n selectedOnly?: string;\n showAll?: string;\n };\n\n showSelectedToggle?: boolean;\n\n // Inherited / passthrough\n open?: boolean;\n disabled?: boolean;\n}\n\n@customElement('nile-detail')\nexport class NileDetail extends NileElement {\n\n static styles: CSSResultGroup = styles;\n\n @query('details') detail: HTMLDetailsElement;\n @query('summary') header: HTMLElement;\n @query('.detail__body') body: HTMLElement;\n\n @property({ attribute: true, type: Boolean, reflect: true }) open = false;\n\n @property({ attribute: true, type: String, reflect: true }) heading = '';\n\n @property({ attribute: true, type: String, reflect: true }) description = '';\n\n @property({ attribute: true, reflect: true }) expandIconPlacement: 'left' | 'right' = 'right';\n\n @property({ attribute: true, type: Boolean, reflect: true }) disabled = false;\n\n @property({ attribute: true, type: String, reflect: true }) variant: NileDetailVariant = 'default';\n\n @property({ attribute: false, type: Array }) items: SelectionItem[] = [];\n\n @property({ attribute: false, type: Array }) selected: string[] = [];\n\n @property({ attribute: false }) renderItemConfig?: NileDetailRenderItemConfig;\n\n @property({ attribute: 'allow-html-label', type: Boolean }) allowHtmlLabel = false;\n\n @property({ attribute: 'disable-local-search', type: Boolean }) disableLocalSearch = false;\n\n @property({ attribute: 'total-count', type: Number }) totalCount?: number;\n\n @property({ attribute: 'page-size', type: Number }) pageSize = 200;\n\n @property({ attribute: false }) fetchPage?: (offset: number, limit: number) => Promise<SelectionItem[]>;\n\n @property({ attribute: 'placeholder-label', type: String }) placeholderLabel = 'Loading…';\n\n @property({ attribute: false }) config?: NileDetailSelectionConfig;\n\n @property({ attribute: 'search-placeholder', type: String }) searchPlaceholder = 'Search...';\n\n @property({ attribute: 'items-label', type: String }) itemsLabel = 'attributes';\n\n @property({ attribute: 'restore-label', type: String }) restoreLabel = 'Restore';\n\n @property({ attribute: 'clear-label', type: String }) clearLabel = 'Clear';\n\n @property({ attribute: 'grid-rows', type: Number }) gridRows = 6;\n\n @property({ attribute: 'grid-columns', type: Number }) gridColumns = 3;\n\n @property({ attribute: 'min-column-width', type: String }) minColumnWidth = '220px';\n\n @property({ attribute: 'lane-height', type: Number }) laneHeight = 32;\n\n @property({ attribute: true, type: String, reflect: true }) orientation: 'horizontal' | 'vertical' | 'both' = 'horizontal';\n\n @property({ attribute: 'max-height', type: String }) maxHeight = '320px';\n\n @property({ attribute: 'matrix-columns', type: Number }) matrixColumns = 20;\n\n @property({ attribute: true, type: Boolean }) virtualize = false;\n\n @property({ attribute: 'virtualize-threshold', type: Number }) virtualizeThreshold = 60;\n\n @property({ attribute: 'overscan', type: Number }) overscan = 4;\n\n @state() private _detailOpen = false;\n\n @state() private _hasSlottedContent = false;\n\n @state() private _searchTerm = '';\n\n @state() private _selectedSet: Set<string> = new Set();\n\n @state() private _showSelectedOnly = false;\n\n @property({ attribute: 'show-selected-toggle', type: Boolean, reflect: true }) showSelectedToggle = false;\n\n @property({ attribute: 'selected-only-label', type: String }) selectedOnlyLabel = 'Selected';\n\n @property({ attribute: 'show-all-label', type: String }) showAllLabel = 'Show all';\n\n private _restoreDefaults: string[] | null = null;\n\n private _gridResizeObserver: ResizeObserver | null = null;\n\n private _virtCtrl: VirtualizerController<HTMLElement, HTMLElement> | null = null;\n\n private _rowVirtCtrl: VirtualizerController<HTMLElement, HTMLElement> | null = null;\n\n private _colVirtCtrl: VirtualizerController<HTMLElement, HTMLElement> | null = null;\n\n private _pageCache: any = new Map();\n\n private _pendingPages: any = new Set();\n\n private get _isInfiniteMode(): boolean {\n return (\n this.variant === 'selection' &&\n typeof this.fetchPage === 'function' &&\n typeof this.totalCount === 'number' &&\n this.orientation !== 'both'\n );\n }\n\n private _effectiveTotalCount(): number {\n if (this._isInfiniteMode) return this.totalCount ?? 0;\n return this._filteredItems.length;\n }\n\n private _getItemAt(index: number): SelectionItem | undefined {\n if (!this._isInfiniteMode) return this._filteredItems[index];\n const pageSize = Math.max(1, this.pageSize);\n const pageIndex = Math.floor(index / pageSize);\n const page = this._pageCache.get(pageIndex);\n if (!page) return undefined;\n return page[index - pageIndex * pageSize];\n }\n\n private _scheduleFetchForRange(start: number, end: number) {\n if (!this._isInfiniteMode || !this.fetchPage) return;\n const pageSize = Math.max(1, this.pageSize);\n const total = this.totalCount ?? 0;\n if (total <= 0) return;\n\n const firstPage = Math.floor(start / pageSize);\n const lastPage = Math.floor(Math.min(end, total - 1) / pageSize);\n for (let p = firstPage; p <= lastPage; p++) {\n if (this._pageCache.has(p) || this._pendingPages.has(p)) continue;\n this._loadPage(p);\n }\n }\n\n private async _loadPage(pageIndex: number) {\n if (!this.fetchPage) return;\n const pageSize = Math.max(1, this.pageSize);\n const offset = pageIndex * pageSize;\n const total = this.totalCount ?? 0;\n const limit = Math.min(pageSize, Math.max(0, total - offset));\n if (limit <= 0) return;\n\n this._pendingPages.add(pageIndex);\n try {\n const rows = await this.fetchPage(offset, limit);\n this._pageCache.set(pageIndex, Array.isArray(rows) ? rows : []);\n this.dispatchEvent(\n new CustomEvent('nile-page-load', {\n detail: { pageIndex, offset, limit, rows: this._pageCache.get(pageIndex) },\n bubbles: true,\n composed: true,\n })\n );\n } catch (err) {\n this.dispatchEvent(\n new CustomEvent('nile-page-error', {\n detail: { pageIndex, offset, limit, error: err },\n bubbles: true,\n composed: true,\n })\n );\n } finally {\n this._pendingPages.delete(pageIndex);\n this.requestUpdate();\n }\n }\n\n /** Public: clear the page cache (use after a query change to refetch). */\n resetPages() {\n this._pageCache = new Map();\n this._pendingPages = new Set();\n this.requestUpdate();\n }\n\n private get _isVirtualized(): boolean {\n if (!IS_BROWSER) return false;\n if (this._isInfiniteMode) return true;\n return this.variant === 'selection'\n && (this.virtualize || this.items.length > this.virtualizeThreshold);\n }\n\n private get _columnWidthPx(): number {\n const parsed = parseInt(this.minColumnWidth, 10);\n return Number.isFinite(parsed) && parsed > 0 ? parsed : 220;\n }\n\n firstUpdated() {\n this._detailOpen = this.open;\n this.body.hidden = !this.open;\n this.body.style.height = this.open ? 'auto' : '0';\n this._syncSelectedFromProperty();\n if (this._restoreDefaults === null) {\n this._restoreDefaults = [...this._selectedSet];\n }\n this._setupGridResizeObserver();\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this._gridResizeObserver?.disconnect();\n this._gridResizeObserver = null;\n }\n\n updated(_changed: Map<string, unknown>) {\n if (this.variant === 'selection') {\n this._setupGridResizeObserver();\n this._syncVirtualizer();\n this._scheduleTooltipOverflowCheck();\n }\n }\n\n private _syncVirtualizer() {\n if (!IS_BROWSER) return;\n if (!this._isVirtualized) {\n this._virtCtrl = null;\n this._rowVirtCtrl = null;\n this._colVirtCtrl = null;\n return;\n }\n const grid = this.shadowRoot?.querySelector('.detail__selection-grid') as HTMLElement | null;\n if (!grid) return;\n\n if (this.orientation === 'both') {\n this._virtCtrl = null;\n this._syncBothVirtualizers();\n return;\n }\n\n // Reset 2-axis controllers if we switched away from 'both'.\n this._rowVirtCtrl = null;\n this._colVirtCtrl = null;\n\n const count = this._effectiveTotalCount();\n const isVertical = this.orientation === 'vertical';\n const lanes = Math.max(1, isVertical ? this.gridColumns : this.gridRows);\n const itemSize = isVertical ? this.laneHeight : this._columnWidthPx;\n\n if (!this._virtCtrl) {\n this._virtCtrl = new VirtualizerController<HTMLElement, HTMLElement>(this, {\n count,\n getScrollElement: () =>\n this.shadowRoot?.querySelector('.detail__selection-grid') as HTMLElement | null,\n estimateSize: () => itemSize,\n horizontal: !isVertical,\n lanes,\n overscan: this.overscan,\n });\n return;\n }\n\n const v = this._virtCtrl.getVirtualizer();\n const prev = v.options;\n const orientationChanged = !!prev.horizontal !== !isVertical;\n if (\n prev.count !== count ||\n prev.lanes !== lanes ||\n prev.overscan !== this.overscan ||\n orientationChanged\n ) {\n v.setOptions({\n ...prev,\n count,\n lanes,\n overscan: this.overscan,\n horizontal: !isVertical,\n estimateSize: () => itemSize,\n });\n v.measure();\n }\n }\n\n private _syncBothVirtualizers() {\n const totalItems = this._filteredItems.length;\n const cols = Math.max(1, this.matrixColumns);\n const rows = Math.max(1, Math.ceil(totalItems / cols));\n const columnWidth = this._columnWidthPx;\n const rowHeight = this.laneHeight;\n const getScrollEl = () =>\n this.shadowRoot?.querySelector('.detail__selection-grid') as HTMLElement | null;\n\n if (!this._rowVirtCtrl) {\n this._rowVirtCtrl = new VirtualizerController<HTMLElement, HTMLElement>(this, {\n count: rows,\n getScrollElement: getScrollEl,\n estimateSize: () => rowHeight,\n horizontal: false,\n overscan: this.overscan,\n });\n } else {\n const rv = this._rowVirtCtrl.getVirtualizer();\n const prev = rv.options;\n if (prev.count !== rows || prev.overscan !== this.overscan) {\n rv.setOptions({\n ...prev,\n count: rows,\n overscan: this.overscan,\n estimateSize: () => rowHeight,\n });\n rv.measure();\n }\n }\n\n if (!this._colVirtCtrl) {\n this._colVirtCtrl = new VirtualizerController<HTMLElement, HTMLElement>(this, {\n count: cols,\n getScrollElement: getScrollEl,\n estimateSize: () => columnWidth,\n horizontal: true,\n overscan: this.overscan,\n });\n } else {\n const cv = this._colVirtCtrl.getVirtualizer();\n const prev = cv.options;\n if (prev.count !== cols || prev.overscan !== this.overscan) {\n cv.setOptions({\n ...prev,\n count: cols,\n overscan: this.overscan,\n estimateSize: () => columnWidth,\n });\n cv.measure();\n }\n }\n }\n\n private _setupGridResizeObserver() {\n if (this.variant !== 'selection') return;\n if (typeof ResizeObserver === 'undefined') return;\n const grid = this.shadowRoot?.querySelector('.detail__selection-grid') as HTMLElement | null;\n if (!grid) return;\n if (this._gridResizeObserver) return;\n this._gridResizeObserver = new ResizeObserver(() => this._scheduleTooltipOverflowCheck());\n this._gridResizeObserver.observe(grid);\n }\n\n private _scheduleTooltipOverflowCheck() {\n if (typeof requestAnimationFrame === 'undefined') return;\n requestAnimationFrame(() => this._updateTooltipOverflowStates());\n }\n\n private async _updateTooltipOverflowStates() {\n const tooltips = this.shadowRoot?.querySelectorAll(\n '.detail__selection-tooltip'\n ) as NodeListOf<HTMLElement> | undefined;\n if (!tooltips) return;\n for (const tip of tooltips) {\n const cb = tip.querySelector('nile-checkbox') as HTMLElement & { updateComplete?: Promise<unknown> } | null;\n if (!cb) continue;\n if (cb.updateComplete) await cb.updateComplete;\n const labelEl = cb.shadowRoot?.querySelector('[part=\"label\"]') as HTMLElement | null;\n const overflowing = !!labelEl && labelEl.scrollWidth > labelEl.clientWidth + 1;\n if (overflowing) tip.removeAttribute('disabled');\n else tip.setAttribute('disabled', '');\n }\n }\n\n @watch('selected', { waitUntilFirstUpdate: false })\n _onSelectedPropertyChange() {\n this._syncSelectedFromProperty();\n }\n\n @watch('config', { waitUntilFirstUpdate: false })\n _onConfigChange() {\n this._applyConfig();\n }\n\n private _applyConfig() {\n const c = this.config;\n if (!c) return;\n\n if (c.variant !== undefined) this.variant = c.variant;\n if (c.heading !== undefined) this.heading = c.heading;\n if (c.description !== undefined) this.description = c.description;\n if (c.itemsLabel !== undefined) this.itemsLabel = c.itemsLabel;\n if (c.open !== undefined) this.open = c.open;\n if (c.disabled !== undefined) this.disabled = c.disabled;\n\n if (c.items !== undefined) this.items = c.items;\n if (c.selected !== undefined) this.selected = c.selected;\n if (c.renderItemConfig !== undefined) this.renderItemConfig = c.renderItemConfig;\n if (c.allowHtmlLabel !== undefined) this.allowHtmlLabel = c.allowHtmlLabel;\n\n if (c.layout) {\n const l = c.layout;\n if (l.orientation !== undefined) this.orientation = l.orientation;\n if (l.gridRows !== undefined) this.gridRows = l.gridRows;\n if (l.gridColumns !== undefined) this.gridColumns = l.gridColumns;\n if (l.matrixColumns !== undefined) this.matrixColumns = l.matrixColumns;\n if (l.minColumnWidth !== undefined) this.minColumnWidth = l.minColumnWidth;\n if (l.laneHeight !== undefined) this.laneHeight = l.laneHeight;\n if (l.maxHeight !== undefined) this.maxHeight = l.maxHeight;\n if (l.expandIconPlacement !== undefined) this.expandIconPlacement = l.expandIconPlacement;\n }\n\n if (c.search) {\n if (c.search.placeholder !== undefined) this.searchPlaceholder = c.search.placeholder;\n if (c.search.disableLocal !== undefined) this.disableLocalSearch = c.search.disableLocal;\n }\n\n if (c.virtualization) {\n if (c.virtualization.enabled !== undefined) this.virtualize = c.virtualization.enabled;\n if (c.virtualization.threshold !== undefined) this.virtualizeThreshold = c.virtualization.threshold;\n if (c.virtualization.overscan !== undefined) this.overscan = c.virtualization.overscan;\n }\n\n if (c.pagination) {\n if (c.pagination.totalCount !== undefined) this.totalCount = c.pagination.totalCount;\n if (c.pagination.pageSize !== undefined) this.pageSize = c.pagination.pageSize;\n if (c.pagination.fetchPage !== undefined) this.fetchPage = c.pagination.fetchPage;\n if (c.pagination.placeholderLabel !== undefined) this.placeholderLabel = c.pagination.placeholderLabel;\n }\n\n if (c.labels) {\n if (c.labels.restore !== undefined) this.restoreLabel = c.labels.restore;\n if (c.labels.clear !== undefined) this.clearLabel = c.labels.clear;\n if (c.labels.selectedOnly !== undefined) this.selectedOnlyLabel = c.labels.selectedOnly;\n if (c.labels.showAll !== undefined) this.showAllLabel = c.labels.showAll;\n }\n\n if (c.showSelectedToggle !== undefined) this.showSelectedToggle = c.showSelectedToggle;\n }\n\n private _syncSelectedFromProperty() {\n this._selectedSet = new Set(this.selected || []);\n }\n\n private _getItemValue(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getValue) return String(rc.getValue(item));\n if (typeof item === 'string') return item;\n return String((item as NileDetailSelectionItem).value ?? '');\n }\n\n private _getItemLabel(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getDisplayText) return rc.getDisplayText(item);\n if (typeof item === 'string') return item;\n return (item as NileDetailSelectionItem).label ?? this._getItemValue(item);\n }\n\n private _getItemSearchText(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getSearchText) return rc.getSearchText(item);\n return this._getItemLabel(item);\n }\n\n private _getItemDescription(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getDescription) return rc.getDescription(item) ?? '';\n if (typeof item === 'string') return '';\n return (item as NileDetailSelectionItem).description ?? '';\n }\n\n private _getItemPrefix(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getPrefix) return rc.getPrefix(item) ?? '';\n if (typeof item === 'string') return '';\n return (item as NileDetailSelectionItem).prefix ?? '';\n }\n\n private _getItemSuffix(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getSuffix) return rc.getSuffix(item) ?? '';\n if (typeof item === 'string') return '';\n return (item as NileDetailSelectionItem).suffix ?? '';\n }\n\n private _getItemDisabled(item: SelectionItem): boolean {\n const rc = this.renderItemConfig;\n if (rc?.getDisabled) return !!rc.getDisabled(item);\n if (typeof item === 'string') return false;\n return !!(item as NileDetailSelectionItem).disabled;\n }\n\n private _getItemClassName(item: SelectionItem): string {\n const rc = this.renderItemConfig;\n if (rc?.getClassName) return rc.getClassName(item) ?? '';\n if (typeof item === 'string') return '';\n return (item as NileDetailSelectionItem).className ?? '';\n }\n\n private get _filteredItems(): SelectionItem[] {\n let source: SelectionItem[] = this.items;\n\n if (this._showSelectedOnly) {\n source = source.filter(item => this._selectedSet.has(this._getItemValue(item)));\n }\n\n if (this.disableLocalSearch) return source;\n const q = this._searchTerm.trim().toLowerCase();\n if (!q) return source;\n return source.filter(item =>\n this._getItemSearchText(item).toLowerCase().includes(q)\n );\n }\n\n private _onToggleSelectedOnly(event: Event) {\n event.preventDefault();\n const next = !this._showSelectedOnly;\n if (next && this._selectedSet.size === 0) return;\n this._showSelectedOnly = next;\n }\n\n private _selectableValues(): string[] {\n const source: SelectionItem[] = this._isInfiniteMode\n ? (Array.from(this._pageCache.values()).flat() as SelectionItem[])\n : this.items;\n return source\n .filter(i => !this._getItemDisabled(i))\n .map(i => this._getItemValue(i));\n }\n\n private get _allChecked(): boolean {\n const selectable = this._selectableValues();\n if (selectable.length === 0) return false;\n return selectable.every(v => this._selectedSet.has(v));\n }\n\n private get _indeterminate(): boolean {\n const selectable = this._selectableValues();\n const sel = selectable.filter(v => this._selectedSet.has(v)).length;\n return sel > 0 && sel < selectable.length;\n }\n\n private get _countLabel(): string {\n const total = this._isInfiniteMode ? (this.totalCount ?? 0) : this.items.length;\n return `${this._selectedSet.size} of ${total} ${this.itemsLabel} selected`;\n }\n\n private _emitSelectionChange() {\n this.selected = [...this._selectedSet];\n this.dispatchEvent(\n new CustomEvent('nile-change', {\n detail: { selected: [...this._selectedSet] },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private _onItemChange(value: string, disabled: boolean, event: Event) {\n if (disabled) {\n event.preventDefault();\n return;\n }\n const target = event.target as HTMLInputElement;\n const next = new Set(this._selectedSet);\n if (target.checked) next.add(value);\n else next.delete(value);\n this._selectedSet = next;\n this._emitSelectionChange();\n }\n\n private _onSelectAllChange(event: Event) {\n const target = event.target as HTMLInputElement;\n const selectable = this._selectableValues();\n const next = new Set(this._selectedSet);\n if (target.checked) selectable.forEach(v => next.add(v));\n else selectable.forEach(v => next.delete(v));\n this._selectedSet = next;\n this._emitSelectionChange();\n }\n\n private _emitSearch(value: string) {\n this.dispatchEvent(\n new CustomEvent('nile-search', {\n detail: { value },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private _onSearchInput(event: Event) {\n const target = event.target as HTMLInputElement;\n const value = target.value ?? '';\n this._searchTerm = value;\n if (this.disableLocalSearch) this._emitSearch(value);\n }\n\n private _onSearchClear() {\n this._searchTerm = '';\n if (this.disableLocalSearch) this._emitSearch('');\n }\n\n private _onRestore(event: Event) {\n event.preventDefault();\n const source = this._restoreDefaults ?? this._selectableValues();\n this._selectedSet = new Set(source);\n this._emitSelectionChange();\n }\n\n private _onClear(event: Event) {\n event.preventDefault();\n this._selectedSet = new Set();\n this._showSelectedOnly = false;\n this._emitSelectionChange();\n }\n\n private _handleDefaultSlotChange(event: Event) {\n const slot = event.target as HTMLSlotElement;\n const nodes = slot.assignedNodes({ flatten: true });\n this._hasSlottedContent = nodes.some(node => {\n if (node.nodeType === Node.ELEMENT_NODE) return true;\n if (node.nodeType === Node.TEXT_NODE) return !!(node.textContent && node.textContent.trim());\n return false;\n });\n }\n\n private _stopHeaderToggle(event: Event) {\n event.stopPropagation();\n }\n\n private _handleSummaryClick(event: Event) {\n event.preventDefault();\n handleSummaryClick(this);\n }\n\n private _handleSummaryKeyDown(event: KeyboardEvent) {\n handleSummaryKeyDown(event, this);\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n if (this.open) {\n this._detailOpen = true;\n await animateShow(this);\n } else {\n await animateHide(this);\n this._detailOpen = false;\n }\n }\n\n async show() {\n return showDetail(this);\n }\n\n async hide() {\n return hideDetail(this);\n }\n\n private get _summaryLabel(): string {\n return [this.heading, this.description].filter(Boolean).join(', ');\n }\n\n private _renderSelectionLabel(): TemplateResult {\n return html`\n <div part=\"selection-label\" class=\"detail__selection-label\">\n <nile-checkbox\n part=\"select-all\"\n class=\"detail__select-all\"\n ?checked=${this._allChecked}\n ?indeterminate=${this._indeterminate}\n aria-label=${`Select all ${this.heading || this.itemsLabel}`}\n @click=${this._stopHeaderToggle}\n @nile-change=${this._onSelectAllChange}\n ></nile-checkbox>\n <div class=\"detail__selection-title\">\n <span part=\"label-text\" class=\"detail__heading-text\">${this.heading}</span>\n <span part=\"selection-count\" class=\"detail__selection-count\">${this._countLabel}</span>\n </div>\n </div>\n `;\n }\n\n private _renderSelectionBody(): TemplateResult {\n const virtualized = this._isVirtualized;\n const isVertical = this.orientation === 'vertical';\n const isBoth = this.orientation === 'both';\n const laneHeightPx = this.laneHeight;\n const columnWidth = this._columnWidthPx;\n\n let gridStyle = '';\n if (virtualized) {\n if (isBoth) {\n gridStyle = `max-height: ${this.maxHeight}; height: ${this.maxHeight};`;\n } else if (isVertical) {\n gridStyle = `max-height: ${this.maxHeight}; height: ${this.maxHeight};`;\n } else {\n const lanes = Math.max(1, this.gridRows);\n gridStyle = `height: ${lanes * laneHeightPx}px;`;\n }\n } else if (isVertical) {\n const cols = Math.max(1, this.gridColumns);\n gridStyle = `grid-template-columns: repeat(${cols}, minmax(0, 1fr)); grid-auto-flow: row; max-height: ${this.maxHeight}; overflow-y: auto; overflow-x: hidden;`;\n } else {\n const lanes = Math.max(1, this.gridRows);\n gridStyle = `grid-template-rows: repeat(${lanes}, auto); grid-auto-columns: minmax(${this.minColumnWidth}, 1fr);`;\n }\n\n return html`\n <div part=\"selection-toolbar\" class=\"detail__selection-toolbar\">\n <slot name=\"tooblar-actions-prefix\"></slot>\n <slot name=\"toolbar-search\" class=\"detail__selection-search-slot\">\n <nile-input\n part=\"search\"\n class=\"detail__selection-search\"\n placeholder=${this.searchPlaceholder}\n clearable\n .value=${this._searchTerm}\n @nile-input=${this._onSearchInput}\n @nile-clear=${this._onSearchClear}\n >\n <nile-icon slot=\"prefix\" name=\"search\" library=\"system\"></nile-icon>\n </nile-input>\n </slot>\n <slot name=\"toolbar-actions\" class=\"detail__selection-actions\">\n ${this.showSelectedToggle\n ? html`\n <nile-link\n href=\"#\"\n variant=\"subtle\"\n class=\"detail__selected-toggle\"\n @click=${this._onToggleSelectedOnly}\n >\n <nile-icon slot=\"prefix\" name=\"filter\" library=\"system\"></nile-icon>\n ${this._showSelectedOnly ? this.showAllLabel : this.selectedOnlyLabel}\n </nile-link>\n `\n : nothing}\n <nile-link href=\"#\" variant=\"subtle\" @click=${this._onRestore}>${this.restoreLabel}</nile-link>\n <nile-link href=\"#\" variant=\"subtle\" @click=${this._onClear}>${this.clearLabel}</nile-link>\n </slot>\n <slot name=\"tooblar-actions-suffix\"></slot>\n </div>\n <div\n part=\"selection-grid\"\n class=${classMap({\n 'detail__selection-grid': true,\n 'detail__selection-grid--virtual': virtualized,\n 'detail__selection-grid--vertical': isVertical,\n 'detail__selection-grid--both': isBoth,\n })}\n style=${gridStyle}\n >\n ${virtualized\n ? (isBoth\n ? this._renderBothVirtualGrid(laneHeightPx, columnWidth)\n : this._renderVirtualGrid(laneHeightPx, columnWidth, isVertical))\n : this._renderStaticGrid()}\n </div>\n `;\n }\n\n private _renderItemContent(item: SelectionItem): TemplateResult {\n const label = this._getItemLabel(item);\n const description = this._getItemDescription(item);\n const prefix = this._getItemPrefix(item);\n const suffix = this._getItemSuffix(item);\n const allowHtml = this.allowHtmlLabel;\n return html`\n ${prefix\n ? html`<span class=\"detail__selection-prefix\" part=\"item-prefix\">${allowHtml ? unsafeHTML(prefix) : prefix}</span>`\n : ''}\n <span class=\"detail__selection-text\" part=\"item-text\">\n <span class=\"detail__selection-item-label\" part=\"item-label\">${allowHtml ? unsafeHTML(label) : label}</span>\n ${description\n ? html`<span class=\"detail__selection-desc\" part=\"item-description\">${allowHtml ? unsafeHTML(description) : description}</span>`\n : ''}\n </span>\n ${suffix\n ? html`<span class=\"detail__selection-suffix\" part=\"item-suffix\">${allowHtml ? unsafeHTML(suffix) : suffix}</span>`\n : ''}\n `;\n }\n\n private _renderItemTooltip(item: SelectionItem, opts: { positionStyle?: string; extraClasses?: string } = {}): TemplateResult {\n const value = this._getItemValue(item);\n const label = this._getItemLabel(item);\n const description = this._getItemDescription(item);\n const isDisabled = this._getItemDisabled(item);\n const className = this._getItemClassName(item);\n const tooltipContent = description ? `${label} — ${description}` : label;\n\n const tooltipClass = `detail__selection-tooltip${opts.extraClasses ? ' ' + opts.extraClasses : ''}`;\n const checkboxClass = classMap({\n 'detail__selection-checkbox': true,\n 'detail__selection-checkbox--disabled': isDisabled,\n [className]: !!className,\n });\n\n return html`\n <nile-lite-tooltip\n class=${tooltipClass}\n content=${tooltipContent}\n size=\"small\"\n disabled\n style=${opts.positionStyle ?? nothing as any}\n >\n <nile-checkbox\n class=${checkboxClass}\n ?checked=${this._selectedSet.has(value)}\n ?disabled=${isDisabled}\n @nile-change=${(e: Event) => this._onItemChange(value, isDisabled, e)}\n >${this._renderItemContent(item)}</nile-checkbox>\n </nile-lite-tooltip>\n `;\n }\n\n private _renderStaticGrid(): TemplateResult {\n return html`${this._filteredItems.map(item => this._renderItemTooltip(item))}`;\n }\n\n private _renderBothVirtualGrid(_laneHeightPx: number, _columnWidthPx: number): TemplateResult {\n const rowV = this._rowVirtCtrl?.getVirtualizer();\n const colV = this._colVirtCtrl?.getVirtualizer();\n const rowTotal = rowV?.getTotalSize() ?? 0;\n const colTotal = colV?.getTotalSize() ?? 0;\n const rowItems = rowV?.getVirtualItems() ?? [];\n const colItems = colV?.getVirtualItems() ?? [];\n const cols = Math.max(1, this.matrixColumns);\n const total = this._filteredItems.length;\n\n return html`\n <div\n class=\"detail__selection-track\"\n style=\"width: ${colTotal}px; height: ${rowTotal}px; position: relative;\"\n >\n ${rowItems.flatMap(rvi =>\n colItems.map(cvi => {\n const idx = rvi.index * cols + cvi.index;\n if (idx >= total) return null;\n const item = this._filteredItems[idx];\n if (item === undefined) return null;\n const positionStyle = `position: absolute; top: ${rvi.start}px; left: ${cvi.start}px; width: ${cvi.size}px; height: ${rvi.size}px;`;\n return this._renderItemTooltip(item, {\n positionStyle,\n extraClasses: 'detail__selection-tooltip--virtual',\n });\n })\n )}\n </div>\n `;\n }\n\n private _renderVirtualGrid(\n laneHeightPx: number,\n _columnWidthPx: number,\n isVertical: boolean\n ): TemplateResult {\n const v = this._virtCtrl?.getVirtualizer();\n const totalSize = v?.getTotalSize() ?? 0;\n const virtualItems = v?.getVirtualItems() ?? [];\n const lanes = Math.max(1, isVertical ? this.gridColumns : this.gridRows);\n\n if (this._isInfiniteMode && virtualItems.length > 0) {\n const first = virtualItems[0].index;\n const last = virtualItems[virtualItems.length - 1].index;\n this._scheduleFetchForRange(first, last);\n }\n\n const trackStyle = isVertical\n ? `width: 100%; height: ${totalSize}px; position: relative;`\n : `width: ${totalSize}px; height: 100%; position: relative;`;\n\n return html`\n <div class=\"detail__selection-track\" style=${trackStyle}>\n ${virtualItems.map(vi => {\n const laneIdx = vi.lane ?? 0;\n const positionStyle = isVertical\n ? `position: absolute; top: ${vi.start}px; left: calc(${laneIdx} * (100% / ${lanes})); width: calc(100% / ${lanes}); height: ${vi.size}px;`\n : `position: absolute; top: ${laneIdx * laneHeightPx}px; left: ${vi.start}px; width: ${vi.size}px; height: ${laneHeightPx}px;`;\n const item = this._getItemAt(vi.index);\n if (item === undefined) {\n return this._renderPlaceholder(positionStyle);\n }\n return this._renderItemTooltip(item, {\n positionStyle,\n extraClasses: 'detail__selection-tooltip--virtual',\n });\n })}\n </div>\n `;\n }\n\n private _renderPlaceholder(positionStyle: string): TemplateResult {\n return html`\n <div class=\"detail__selection-placeholder\" style=${positionStyle} part=\"item-placeholder\">\n <div class=\"detail__selection-placeholder-bar\"></div>\n <span class=\"detail__selection-placeholder-label\">${this.placeholderLabel}</span>\n </div>\n `;\n }\n\n render(): TemplateResult {\n const isSelection = this.variant === 'selection';\n return html`\n <details\n part=\"base\"\n ?open=${this._detailOpen}\n class=${classMap({\n 'detail': true,\n 'detail--open': this.open,\n 'detail--disabled': this.disabled,\n 'detail--selection': isSelection,\n })}\n >\n <summary\n part=\"header\"\n id=\"header\"\n class=${classMap({\n 'detail__header': true,\n 'detail__header--icon-left': this.expandIconPlacement === 'left',\n })}\n aria-label=${this._summaryLabel || nothing}\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-disabled=${this.disabled ? 'true' : 'false'}\n tabindex=${this.disabled ? '-1' : '0'}\n @click=${this._handleSummaryClick}\n @keydown=${this._handleSummaryKeyDown}\n >\n <slot name=\"label\" part=\"label\" class=\"detail__label\">\n ${isSelection\n ? this._renderSelectionLabel()\n : html`\n <span part=\"label-text\" class=\"detail__heading-text\">${this.heading}</span>\n ${this.description\n ? html`<span part=\"description\" class=\"detail__description\">${this.description}</span>`\n : ''}\n `}\n </slot>\n\n <slot name=\"header-actions\" part=\"header-actions\" class=\"detail__header-actions\"></slot>\n\n <slot name=\"prefix\" part=\"prefix\" class=\"detail__prefix\"></slot>\n\n <span part=\"summary-icon\" class=\"detail__summary-icon\" aria-hidden=\"true\">\n <slot name=\"expand-icon\">\n <nile-icon\n name=\"var(--nile-icon-arrow-right, var(--ng-icon-chevron-right))\"\n method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\"\n library=\"system\"\n ></nile-icon>\n </slot>\n </span>\n\n <slot name=\"suffix\" part=\"suffix\" class=\"detail__suffix\"></slot>\n\n </summary>\n\n <div part=\"content\" class=\"detail__body\">\n ${isSelection\n ? html`<div part=\"selection-content\" class=\"detail__selection-content\">${this._renderSelectionBody()}</div>`\n : ''}\n <slot\n id=\"content\"\n class=${classMap({\n 'detail__content': true,\n 'detail__content--empty': !this._hasSlottedContent,\n })}\n @slotchange=${this._handleDefaultSlotChange}\n ></slot>\n </div>\n </details>\n `;\n }\n}\n\nexport default NileDetail;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-detail': NileDetail;\n }\n}\n"],"names":["IS_BROWSER","window","_export","NileDetail","_p","_","this","open","heading","description","expandIconPlacement","disabled","variant","items","selected","allowHtmlLabel","disableLocalSearch","pageSize","placeholderLabel","searchPlaceholder","itemsLabel","restoreLabel","clearLabel","gridRows","gridColumns","minColumnWidth","laneHeight","orientation","maxHeight","matrixColumns","virtualize","virtualizeThreshold","overscan","_detailOpen","_hasSlottedContent","_searchTerm","_selectedSet","Set","_showSelectedOnly","showSelectedToggle","selectedOnlyLabel","showAllLabel","_restoreDefaults","_gridResizeObserver","_virtCtrl","_rowVirtCtrl","_colVirtCtrl","_pageCache","Map","_pendingPages","_this","_inherits","_createClass","key","get","_isInfiniteMode","fetchPage","totalCount","value","_effectiveTotalCount","_filteredItems","length","_getItemAt","index","Math","max","pageIndex","floor","page","_scheduleFetchForRange","start","end","total","firstPage","lastPage","min","p","has","_loadPage","_loadPage2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_context2","next","abrupt","offset","_this$totalCount3","limit","add","prev","rows","set","Array","isArray","dispatchEvent","CustomEvent","detail","bubbles","composed","t0","error","err","delete","requestUpdate","finish","stop","resetPages","parsed","parseInt","Number","isFinite","firstUpdated","body","hidden","style","height","_syncSelectedFromProperty","_setupGridResizeObserver","disconnectedCallback","super","disconnect","updated","_changed","_syncVirtualizer","_scheduleTooltipOverflowCheck","_isVirtualized","grid","shadowRoot","querySelector","_syncBothVirtualizers","count","isVertical","lanes","itemSize","_columnWidthPx","VirtualizerController","getScrollElement","_this2$shadowRoot","estimateSize","horizontal","v","getVirtualizer","options","orientationChanged","setOptions","measure","totalItems","cols","ceil","columnWidth","rowHeight","getScrollEl","rv","cv","_this$shadowRoot2","_this4","ResizeObserver","observe","_this5","requestAnimationFrame","_updateTooltipOverflowStates","_updateTooltipOverflowStates2","_callee2","_this$shadowRoot3","i","_iterator","_step","_i4$shadowRoot","_s3","_i4","_n2","wrap","_callee2$","_context3","tooltips","querySelectorAll","tip","cb","updateComplete","labelEl","scrollWidth","clientWidth","removeAttribute","setAttribute","t1","e","f","_onSelectedPropertyChange","_onConfigChange","_applyConfig","c","config","undefined","renderItemConfig","layout","l","search","placeholder","disableLocal","virtualization","enabled","threshold","pagination","labels","restore","clear","selectedOnly","showAll","_getItemValue","item","rc","getValue","String","_i$value","_getItemLabel","getDisplayText","label","_getItemSearchText","getSearchText","_getItemDescription","getDescription","_i$description","_getItemPrefix","getPrefix","_i$prefix","prefix","_getItemSuffix","getSuffix","_s$getSuffix","suffix","_getItemDisabled","getDisabled","_getItemClassName","getClassName","_s$getClassName","_i$className","className","_this6","source","filter","q","trim","toLowerCase","includes","_onToggleSelectedOnly","event","preventDefault","size","_selectableValues","_this7","from","values","flat","map","_allChecked","selectable","every","_indeterminate","sel","_countLabel","concat","_emitSelectionChange","_onItemChange","target","checked","_onSelectAllChange","forEach","_emitSearch","_onSearchInput","_onSearchClear","_onRestore","_onClear","_handleDefaultSlotChange","nodes","assignedNodes","flatten","some","node","nodeType","Node","ELEMENT_NODE","TEXT_NODE","textContent","_stopHeaderToggle","stopPropagation","_handleSummaryClick","handleSummaryClick","_handleSummaryKeyDown","handleSummaryKeyDown","_handleOpenChange","_callee3","_callee3$","_context4","animateShow","animateHide","handleOpenChange","_callee4","_callee4$","_context5","showDetail","show","_callee5","_callee5$","_context6","hideDetail","hide","Boolean","join","_renderSelectionLabel","html","_templateObject","_taggedTemplateLiteral","_renderSelectionBody","virtualized","isBoth","laneHeightPx","gridStyle","_templateObject2","_templateObject3","nothing","classMap","_renderBothVirtualGrid","_renderVirtualGrid","_renderStaticGrid","_renderItemContent","allowHtml","_templateObject4","_templateObject5","unsafeHTML","_templateObject6","_templateObject7","_renderItemTooltip","opts","arguments","isDisabled","tooltipContent","tooltipClass","extraClasses","checkboxClass","_templateObject8","positionStyle","_this11","_templateObject9","_laneHeightPx","rowV","colV","rowTotal","getTotalSize","colTotal","rowItems","getVirtualItems","_o$getVirtualItems","colItems","_templateObject10","flatMap","rvi","cvi","idx","totalSize","_c$getTotalSize2","virtualItems","_c$getVirtualItems2","first","last","_templateObject11","vi","_s$lane","laneIdx","lane","_renderPlaceholder","_templateObject12","render","isSelection","_templateObject13","detail__header","_summaryLabel","_templateObject14","_templateObject15","_templateObject16","detail__content","NileElement","styles","__decorate","query","prototype","property","attribute","type","reflect","state","watch","waitUntilFirstUpdate","customElement"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- System.register(["lit"],function(_export,_context){"use strict";var e,_templateObject,i;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}return{setters:[function(_lit){e=_lit.css;}],execute:function execute(){_export("s",i=e(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n :host {\n box-sizing: border-box;\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n [hidden] {\n display: none;\n }\n\n :host {\n display: block;\n width: 100%;\n }\n\n .detail {\n border: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));\n border-radius: var(--nile-radius-md, var(--ng-radius-xl));\n background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n box-shadow: var(--nile-box-shadow-3, var(--ng-shadow-xs));\n overflow: hidden;\n width: 100%;\n line-height: var(--nile-line-height-inherit, var(--ng-line-height-text-sm));\n font-family: var(--nile-font-family-sans-serif, var(--ng-font-family-body));\n }\n\n .detail--disabled {\n opacity: var(--nile-opacity-50, var(--ng-opacity-50));\n }\n\n .detail__header {\n display: flex;\n gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n align-items: center;\n border-radius: inherit;\n padding: var(--nile-spacing-xl, var(--ng-spacing-xl));\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-tertiary));\n font-size: var(--nile-type-scale-4, var(--ng-spacing-xl));\n font-weight: var(--nile-font-weight-semibold, var(--ng-font-weight-semibold));\n color: var(--nile-colors-neutral-900, var(--ng-colors-text-primary));\n user-select: none;\n cursor: pointer;\n list-style: none;\n }\n\n .detail__header::-webkit-details-marker {\n display: none;\n }\n\n .detail__header::marker {\n content: '';\n }\n\n .detail__header--icon-left {\n flex-direction: row-reverse;\n }\n\n .detail__header:focus {\n outline: none;\n }\n\n .detail__header:focus-visible {\n outline: solid 3px var(--nile-colors-blue-500, var(--ng-colors-fg-brand-primary-600));\n outline-offset: calc(1px + 1px);\n }\n\n .detail--disabled .detail__header {\n cursor: not-allowed;\n }\n\n .detail--disabled .detail__header:focus-visible {\n outline: none;\n box-shadow: none;\n }\n\n .detail__label {\n width: 100%;\n display: flex;\n flex-direction: column;\n }\n\n .detail__header-actions {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-sm, var(--ng-spacing-sm));\n }\n\n .detail__prefix {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-sm, var(--ng-spacing-sm));\n }\n\n .detail__suffix {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-sm, var(--ng-spacing-sm));\n }\n\n .detail__heading-text {\n font-weight: var(--nile-font-weight-semibold, var(--ng-font-weight-semibold));\n font-family: var(--nile-font-family-medium, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-4, var(--ng-spacing-xl));\n }\n\n .detail__description {\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-secondary));\n margin-top: 2px;\n }\n\n .detail__summary-icon {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n transition: 250ms transform ease;\n color: var(--nile-colors-neutral-700, var(--ng-colors-text-secondary));\n transform: rotate(90deg);\n }\n\n .detail--open .detail__summary-icon {\n transform: rotate(-90deg);\n }\n\n .detail__body {\n overflow: hidden;\n }\n\n .detail__body[hidden] {\n display: none;\n }\n\n .detail__content {\n display: block;\n padding: var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n\n /* \u2500\u2500 Selection variant \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n .detail__selection-label {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n flex: 1;\n min-width: 0;\n }\n\n .detail__select-all {\n flex: 0 0 auto;\n }\n\n .detail__selection-title {\n display: flex;\n flex-direction: column;\n line-height: 1.3;\n min-width: 0;\n }\n\n .detail__selection-count {\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-secondary));\n margin-top: 2px;\n }\n\n .detail__selection-content {\n padding: var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n\n .detail__selection-toolbar {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n margin-bottom: var(--nile-spacing-lg, var(--ng-spacing-lg));\n }\n\n .detail__selection-search {\n flex: 1;\n min-width: 0;\n }\n\n .detail__selection-actions {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-xl, var(--ng-spacing-xl));\n flex: 0 0 auto;\n }\n\n .detail__selection-grid {\n display: grid;\n grid-auto-flow: column;\n gap: 8px 24px;\n overflow-x: auto;\n overflow-y: hidden;\n padding-bottom: 8px;\n scroll-snap-type: x proximity;\n }\n\n .detail__selection-grid--virtual {\n display: block;\n position: relative;\n width: 100%;\n contain: layout paint;\n }\n\n .detail__selection-grid--virtual.detail__selection-grid--vertical {\n overflow-x: hidden;\n overflow-y: auto;\n scroll-snap-type: y proximity;\n }\n\n .detail__selection-grid--virtual.detail__selection-grid--vertical::-webkit-scrollbar {\n width: 8px;\n height: 0;\n }\n\n .detail__selection-grid--virtual.detail__selection-grid--both {\n overflow: auto;\n scroll-snap-type: none;\n }\n\n .detail__selection-grid--virtual.detail__selection-grid--both::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n\n .detail__selection-grid--virtual .detail__selection-track {\n position: relative;\n }\n\n .detail__selection-tooltip--virtual {\n box-sizing: border-box;\n padding-right: 24px;\n }\n\n .detail__selection-grid > nile-checkbox,\n .detail__selection-grid > .detail__selection-tooltip {\n scroll-snap-align: start;\n min-width: 0;\n display: block;\n max-width: 100%;\n overflow: hidden;\n }\n\n .detail__selection-checkbox {\n display: block;\n width: 100%;\n min-width: 0;\n }\n\n .detail__selection-checkbox::part(base) {\n display: flex;\n width: 100%;\n min-width: 0;\n align-items: center;\n }\n\n .detail__selection-checkbox::part(label) {\n flex: 1 1 auto;\n min-width: 0;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .detail__selection-checkbox--disabled {\n opacity: 0.5;\n pointer-events: none;\n }\n\n .detail__selection-text {\n display: inline-flex;\n flex-direction: column;\n min-width: 0;\n flex: 1 1 auto;\n line-height: 1.25;\n }\n\n .detail__selection-item-label {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .detail__selection-desc {\n display: block;\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-secondary));\n margin-top: 2px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .detail__selection-prefix,\n .detail__selection-suffix {\n display: inline-flex;\n align-items: center;\n flex: 0 0 auto;\n margin: 0 6px;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-secondary));\n }\n\n .detail__selection-prefix { margin-left: 0; }\n .detail__selection-suffix { margin-right: 0; }\n\n .detail__selection-placeholder {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 4px 8px;\n box-sizing: border-box;\n opacity: 0.6;\n }\n\n .detail__selection-placeholder-bar {\n width: 16px;\n height: 16px;\n border-radius: 4px;\n background: linear-gradient(\n 90deg,\n rgba(0,0,0,0.06) 0%,\n rgba(0,0,0,0.12) 50%,\n rgba(0,0,0,0.06) 100%\n );\n background-size: 200% 100%;\n animation: nile-detail-shimmer 1.4s linear infinite;\n flex: 0 0 auto;\n }\n\n .detail__selection-placeholder-label {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-secondary));\n background: linear-gradient(\n 90deg,\n rgba(0,0,0,0.06) 0%,\n rgba(0,0,0,0.12) 50%,\n rgba(0,0,0,0.06) 100%\n );\n background-size: 200% 100%;\n background-clip: text;\n -webkit-background-clip: text;\n color: transparent;\n animation: nile-detail-shimmer 1.4s linear infinite;\n }\n\n @keyframes nile-detail-shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n }\n\n .detail__selection-grid::-webkit-scrollbar {\n height: 8px;\n }\n\n .detail__selection-grid::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.2);\n border-radius: 4px;\n }\n"]))));}};});
1
+ System.register(["lit"],function(_export,_context){"use strict";var e,_templateObject,i;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}return{setters:[function(_lit){e=_lit.css;}],execute:function execute(){_export("s",i=e(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n :host {\n box-sizing: border-box;\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n [hidden] {\n display: none;\n }\n\n :host {\n display: block;\n width: 100%;\n }\n\n .detail {\n border: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));\n border-radius: var(--nile-radius-md, var(--ng-radius-xl));\n background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n box-shadow: var(--nile-box-shadow-3, var(--ng-shadow-xs));\n overflow: hidden;\n width: 100%;\n line-height: var(--nile-line-height-inherit, var(--ng-line-height-text-sm));\n font-family: var(--nile-font-family-sans-serif, var(--ng-font-family-body));\n }\n\n .detail--disabled {\n opacity: var(--nile-opacity-50, var(--ng-opacity-50));\n }\n\n .detail__header {\n display: flex;\n gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n align-items: center;\n border-radius: inherit;\n padding: var(--nile-spacing-xl, var(--ng-spacing-xl));\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-tertiary));\n font-size: var(--nile-type-scale-4, var(--ng-spacing-xl));\n font-weight: var(--nile-font-weight-semibold, var(--ng-font-weight-semibold));\n color: var(--nile-colors-neutral-900, var(--ng-colors-text-primary));\n user-select: none;\n cursor: pointer;\n list-style: none;\n }\n\n .detail__header::-webkit-details-marker {\n display: none;\n }\n\n .detail__header::marker {\n content: '';\n }\n\n .detail__header--icon-left {\n flex-direction: row-reverse;\n }\n\n .detail__header:focus {\n outline: none;\n }\n\n .detail__header:focus-visible {\n outline: solid 3px var(--nile-colors-blue-500, var(--ng-colors-fg-brand-primary-600));\n outline-offset: calc(1px + 1px);\n }\n\n .detail--disabled .detail__header {\n cursor: not-allowed;\n }\n\n .detail--disabled .detail__header:focus-visible {\n outline: none;\n box-shadow: none;\n }\n\n .detail__label {\n width: 100%;\n display: flex;\n flex-direction: column;\n }\n\n .detail__header-actions {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-sm, var(--ng-spacing-sm));\n }\n\n .detail__prefix {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-sm, var(--ng-spacing-sm));\n }\n\n .detail__suffix {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-sm, var(--ng-spacing-sm));\n }\n\n .detail__heading-text {\n font-weight: var(--nile-font-weight-semibold, var(--ng-font-weight-semibold));\n font-family: var(--nile-font-family-medium, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-4, var(--ng-spacing-xl));\n }\n\n .detail__description {\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-secondary));\n margin-top: 2px;\n }\n\n .detail__summary-icon {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n transition: 250ms transform ease;\n color: var(--nile-colors-neutral-700, var(--ng-colors-text-secondary));\n transform: rotate(90deg);\n }\n\n .detail--open .detail__summary-icon {\n transform: rotate(-90deg);\n }\n\n .detail__body {\n overflow: hidden;\n }\n\n .detail__body[hidden] {\n display: none;\n }\n\n .detail__content {\n display: block;\n padding: var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n\n .detail__content--empty {\n display: none;\n padding: 0;\n }\n\n /* \u2500\u2500 Selection variant \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\n .detail__selection-label {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n flex: 1;\n min-width: 0;\n }\n\n .detail__select-all {\n flex: 0 0 auto;\n }\n\n .detail__selection-title {\n display: flex;\n flex-direction: column;\n line-height: 1.3;\n min-width: 0;\n }\n\n .detail__selection-count {\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-secondary));\n margin-top: 2px;\n }\n\n .detail__selection-content {\n padding: var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n\n .detail__selection-toolbar {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n margin-bottom: var(--nile-spacing-lg, var(--ng-spacing-lg));\n }\n\n .detail__selection-search {\n flex: 1;\n min-width: 0;\n }\n\n .detail__selection-search-slot {\n display: flex;\n flex: 1;\n min-width: 0;\n }\n\n .detail__selection-search-slot::slotted(*) {\n flex: 1;\n min-width: 0;\n }\n\n .detail__selected-toggle {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n }\n\n .detail__selection-actions {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-xl, var(--ng-spacing-xl));\n flex: 0 0 auto;\n }\n\n .detail__selection-grid {\n display: grid;\n grid-auto-flow: column;\n gap: 8px 24px;\n overflow-x: auto;\n overflow-y: hidden;\n padding: 4px 4px 8px;\n scroll-snap-type: x proximity;\n }\n\n .detail__selection-grid--virtual {\n display: block;\n position: relative;\n width: 100%;\n contain: layout paint;\n }\n\n .detail__selection-grid--virtual.detail__selection-grid--vertical {\n overflow-x: hidden;\n overflow-y: auto;\n scroll-snap-type: y proximity;\n }\n\n .detail__selection-grid--virtual.detail__selection-grid--vertical::-webkit-scrollbar {\n width: 8px;\n height: 0;\n }\n\n .detail__selection-grid--virtual.detail__selection-grid--both {\n overflow: auto;\n scroll-snap-type: none;\n }\n\n .detail__selection-grid--virtual.detail__selection-grid--both::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n\n .detail__selection-grid--virtual .detail__selection-track {\n position: relative;\n }\n\n .detail__selection-tooltip--virtual {\n box-sizing: border-box;\n padding-right: 24px;\n }\n\n .detail__selection-grid > nile-checkbox,\n .detail__selection-grid > .detail__selection-tooltip {\n scroll-snap-align: start;\n min-width: 0;\n display: block;\n max-width: 100%;\n overflow: visible;\n padding-left: 4px;\n }\n\n .detail__selection-checkbox {\n display: block;\n width: 100%;\n min-width: 0;\n }\n\n .detail__selection-checkbox::part(base) {\n display: flex;\n width: 100%;\n min-width: 0;\n align-items: center;\n }\n\n .detail__selection-checkbox::part(label) {\n flex: 1 1 auto;\n min-width: 0;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .detail__selection-checkbox--disabled {\n opacity: 0.5;\n pointer-events: none;\n }\n\n .detail__selection-text {\n display: inline-flex;\n flex-direction: column;\n min-width: 0;\n flex: 1 1 auto;\n line-height: 1.25;\n }\n\n .detail__selection-item-label {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .detail__selection-desc {\n display: block;\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-secondary));\n margin-top: 2px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .detail__selection-prefix,\n .detail__selection-suffix {\n display: inline-flex;\n align-items: center;\n flex: 0 0 auto;\n margin: 0 6px;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-secondary));\n }\n\n .detail__selection-prefix { margin-left: 0; }\n .detail__selection-suffix { margin-right: 0; }\n\n .detail__selection-placeholder {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 4px 8px;\n box-sizing: border-box;\n opacity: 0.6;\n }\n\n .detail__selection-placeholder-bar {\n width: 16px;\n height: 16px;\n border-radius: 4px;\n background: linear-gradient(\n 90deg,\n rgba(0,0,0,0.06) 0%,\n rgba(0,0,0,0.12) 50%,\n rgba(0,0,0,0.06) 100%\n );\n background-size: 200% 100%;\n animation: nile-detail-shimmer 1.4s linear infinite;\n flex: 0 0 auto;\n }\n\n .detail__selection-placeholder-label {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-secondary));\n background: linear-gradient(\n 90deg,\n rgba(0,0,0,0.06) 0%,\n rgba(0,0,0,0.12) 50%,\n rgba(0,0,0,0.06) 100%\n );\n background-size: 200% 100%;\n background-clip: text;\n -webkit-background-clip: text;\n color: transparent;\n animation: nile-detail-shimmer 1.4s linear infinite;\n }\n\n @keyframes nile-detail-shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n }\n\n .detail__selection-grid::-webkit-scrollbar {\n height: 8px;\n }\n\n .detail__selection-grid::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.2);\n border-radius: 4px;\n }\n"]))));}};});
2
2
  //# sourceMappingURL=nile-detail.css.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nile-detail.css.cjs.js","sources":["../../../src/nile-detail/nile-detail.css.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`\n :host {\n box-sizing: border-box;\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n [hidden] {\n display: none;\n }\n\n :host {\n display: block;\n width: 100%;\n }\n\n .detail {\n border: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));\n border-radius: var(--nile-radius-md, var(--ng-radius-xl));\n background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n box-shadow: var(--nile-box-shadow-3, var(--ng-shadow-xs));\n overflow: hidden;\n width: 100%;\n line-height: var(--nile-line-height-inherit, var(--ng-line-height-text-sm));\n font-family: var(--nile-font-family-sans-serif, var(--ng-font-family-body));\n }\n\n .detail--disabled {\n opacity: var(--nile-opacity-50, var(--ng-opacity-50));\n }\n\n .detail__header {\n display: flex;\n gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n align-items: center;\n border-radius: inherit;\n padding: var(--nile-spacing-xl, var(--ng-spacing-xl));\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-tertiary));\n font-size: var(--nile-type-scale-4, var(--ng-spacing-xl));\n font-weight: var(--nile-font-weight-semibold, var(--ng-font-weight-semibold));\n color: var(--nile-colors-neutral-900, var(--ng-colors-text-primary));\n user-select: none;\n cursor: pointer;\n list-style: none;\n }\n\n .detail__header::-webkit-details-marker {\n display: none;\n }\n\n .detail__header::marker {\n content: '';\n }\n\n .detail__header--icon-left {\n flex-direction: row-reverse;\n }\n\n .detail__header:focus {\n outline: none;\n }\n\n .detail__header:focus-visible {\n outline: solid 3px var(--nile-colors-blue-500, var(--ng-colors-fg-brand-primary-600));\n outline-offset: calc(1px + 1px);\n }\n\n .detail--disabled .detail__header {\n cursor: not-allowed;\n }\n\n .detail--disabled .detail__header:focus-visible {\n outline: none;\n box-shadow: none;\n }\n\n .detail__label {\n width: 100%;\n display: flex;\n flex-direction: column;\n }\n\n .detail__header-actions {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-sm, var(--ng-spacing-sm));\n }\n\n .detail__prefix {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-sm, var(--ng-spacing-sm));\n }\n\n .detail__suffix {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-sm, var(--ng-spacing-sm));\n }\n\n .detail__heading-text {\n font-weight: var(--nile-font-weight-semibold, var(--ng-font-weight-semibold));\n font-family: var(--nile-font-family-medium, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-4, var(--ng-spacing-xl));\n }\n\n .detail__description {\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-secondary));\n margin-top: 2px;\n }\n\n .detail__summary-icon {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n transition: 250ms transform ease;\n color: var(--nile-colors-neutral-700, var(--ng-colors-text-secondary));\n transform: rotate(90deg);\n }\n\n .detail--open .detail__summary-icon {\n transform: rotate(-90deg);\n }\n\n .detail__body {\n overflow: hidden;\n }\n\n .detail__body[hidden] {\n display: none;\n }\n\n .detail__content {\n display: block;\n padding: var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n\n /* ── Selection variant ──────────────────────────────────────────────────── */\n\n .detail__selection-label {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n flex: 1;\n min-width: 0;\n }\n\n .detail__select-all {\n flex: 0 0 auto;\n }\n\n .detail__selection-title {\n display: flex;\n flex-direction: column;\n line-height: 1.3;\n min-width: 0;\n }\n\n .detail__selection-count {\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-secondary));\n margin-top: 2px;\n }\n\n .detail__selection-content {\n padding: var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n\n .detail__selection-toolbar {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n margin-bottom: var(--nile-spacing-lg, var(--ng-spacing-lg));\n }\n\n .detail__selection-search {\n flex: 1;\n min-width: 0;\n }\n\n .detail__selection-actions {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-xl, var(--ng-spacing-xl));\n flex: 0 0 auto;\n }\n\n .detail__selection-grid {\n display: grid;\n grid-auto-flow: column;\n gap: 8px 24px;\n overflow-x: auto;\n overflow-y: hidden;\n padding-bottom: 8px;\n scroll-snap-type: x proximity;\n }\n\n .detail__selection-grid--virtual {\n display: block;\n position: relative;\n width: 100%;\n contain: layout paint;\n }\n\n .detail__selection-grid--virtual.detail__selection-grid--vertical {\n overflow-x: hidden;\n overflow-y: auto;\n scroll-snap-type: y proximity;\n }\n\n .detail__selection-grid--virtual.detail__selection-grid--vertical::-webkit-scrollbar {\n width: 8px;\n height: 0;\n }\n\n .detail__selection-grid--virtual.detail__selection-grid--both {\n overflow: auto;\n scroll-snap-type: none;\n }\n\n .detail__selection-grid--virtual.detail__selection-grid--both::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n\n .detail__selection-grid--virtual .detail__selection-track {\n position: relative;\n }\n\n .detail__selection-tooltip--virtual {\n box-sizing: border-box;\n padding-right: 24px;\n }\n\n .detail__selection-grid > nile-checkbox,\n .detail__selection-grid > .detail__selection-tooltip {\n scroll-snap-align: start;\n min-width: 0;\n display: block;\n max-width: 100%;\n overflow: hidden;\n }\n\n .detail__selection-checkbox {\n display: block;\n width: 100%;\n min-width: 0;\n }\n\n .detail__selection-checkbox::part(base) {\n display: flex;\n width: 100%;\n min-width: 0;\n align-items: center;\n }\n\n .detail__selection-checkbox::part(label) {\n flex: 1 1 auto;\n min-width: 0;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .detail__selection-checkbox--disabled {\n opacity: 0.5;\n pointer-events: none;\n }\n\n .detail__selection-text {\n display: inline-flex;\n flex-direction: column;\n min-width: 0;\n flex: 1 1 auto;\n line-height: 1.25;\n }\n\n .detail__selection-item-label {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .detail__selection-desc {\n display: block;\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-secondary));\n margin-top: 2px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .detail__selection-prefix,\n .detail__selection-suffix {\n display: inline-flex;\n align-items: center;\n flex: 0 0 auto;\n margin: 0 6px;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-secondary));\n }\n\n .detail__selection-prefix { margin-left: 0; }\n .detail__selection-suffix { margin-right: 0; }\n\n .detail__selection-placeholder {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 4px 8px;\n box-sizing: border-box;\n opacity: 0.6;\n }\n\n .detail__selection-placeholder-bar {\n width: 16px;\n height: 16px;\n border-radius: 4px;\n background: linear-gradient(\n 90deg,\n rgba(0,0,0,0.06) 0%,\n rgba(0,0,0,0.12) 50%,\n rgba(0,0,0,0.06) 100%\n );\n background-size: 200% 100%;\n animation: nile-detail-shimmer 1.4s linear infinite;\n flex: 0 0 auto;\n }\n\n .detail__selection-placeholder-label {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-secondary));\n background: linear-gradient(\n 90deg,\n rgba(0,0,0,0.06) 0%,\n rgba(0,0,0,0.12) 50%,\n rgba(0,0,0,0.06) 100%\n );\n background-size: 200% 100%;\n background-clip: text;\n -webkit-background-clip: text;\n color: transparent;\n animation: nile-detail-shimmer 1.4s linear infinite;\n }\n\n @keyframes nile-detail-shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n }\n\n .detail__selection-grid::-webkit-scrollbar {\n height: 8px;\n }\n\n .detail__selection-grid::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.2);\n border-radius: 4px;\n }\n`;\n\nexport default [styles];\n"],"names":["styles","css","_templateObject","_taggedTemplateLiteral"],"mappings":"oTAEaA,CAAAA,CAASC,CAAG,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA"}
1
+ {"version":3,"file":"nile-detail.css.cjs.js","sources":["../../../src/nile-detail/nile-detail.css.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`\n :host {\n box-sizing: border-box;\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n [hidden] {\n display: none;\n }\n\n :host {\n display: block;\n width: 100%;\n }\n\n .detail {\n border: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));\n border-radius: var(--nile-radius-md, var(--ng-radius-xl));\n background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n box-shadow: var(--nile-box-shadow-3, var(--ng-shadow-xs));\n overflow: hidden;\n width: 100%;\n line-height: var(--nile-line-height-inherit, var(--ng-line-height-text-sm));\n font-family: var(--nile-font-family-sans-serif, var(--ng-font-family-body));\n }\n\n .detail--disabled {\n opacity: var(--nile-opacity-50, var(--ng-opacity-50));\n }\n\n .detail__header {\n display: flex;\n gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n align-items: center;\n border-radius: inherit;\n padding: var(--nile-spacing-xl, var(--ng-spacing-xl));\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-tertiary));\n font-size: var(--nile-type-scale-4, var(--ng-spacing-xl));\n font-weight: var(--nile-font-weight-semibold, var(--ng-font-weight-semibold));\n color: var(--nile-colors-neutral-900, var(--ng-colors-text-primary));\n user-select: none;\n cursor: pointer;\n list-style: none;\n }\n\n .detail__header::-webkit-details-marker {\n display: none;\n }\n\n .detail__header::marker {\n content: '';\n }\n\n .detail__header--icon-left {\n flex-direction: row-reverse;\n }\n\n .detail__header:focus {\n outline: none;\n }\n\n .detail__header:focus-visible {\n outline: solid 3px var(--nile-colors-blue-500, var(--ng-colors-fg-brand-primary-600));\n outline-offset: calc(1px + 1px);\n }\n\n .detail--disabled .detail__header {\n cursor: not-allowed;\n }\n\n .detail--disabled .detail__header:focus-visible {\n outline: none;\n box-shadow: none;\n }\n\n .detail__label {\n width: 100%;\n display: flex;\n flex-direction: column;\n }\n\n .detail__header-actions {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-sm, var(--ng-spacing-sm));\n }\n\n .detail__prefix {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-sm, var(--ng-spacing-sm));\n }\n\n .detail__suffix {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-sm, var(--ng-spacing-sm));\n }\n\n .detail__heading-text {\n font-weight: var(--nile-font-weight-semibold, var(--ng-font-weight-semibold));\n font-family: var(--nile-font-family-medium, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-4, var(--ng-spacing-xl));\n }\n\n .detail__description {\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-secondary));\n margin-top: 2px;\n }\n\n .detail__summary-icon {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n transition: 250ms transform ease;\n color: var(--nile-colors-neutral-700, var(--ng-colors-text-secondary));\n transform: rotate(90deg);\n }\n\n .detail--open .detail__summary-icon {\n transform: rotate(-90deg);\n }\n\n .detail__body {\n overflow: hidden;\n }\n\n .detail__body[hidden] {\n display: none;\n }\n\n .detail__content {\n display: block;\n padding: var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n\n .detail__content--empty {\n display: none;\n padding: 0;\n }\n\n /* ── Selection variant ──────────────────────────────────────────────────── */\n\n .detail__selection-label {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n flex: 1;\n min-width: 0;\n }\n\n .detail__select-all {\n flex: 0 0 auto;\n }\n\n .detail__selection-title {\n display: flex;\n flex-direction: column;\n line-height: 1.3;\n min-width: 0;\n }\n\n .detail__selection-count {\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-secondary));\n margin-top: 2px;\n }\n\n .detail__selection-content {\n padding: var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n\n .detail__selection-toolbar {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n margin-bottom: var(--nile-spacing-lg, var(--ng-spacing-lg));\n }\n\n .detail__selection-search {\n flex: 1;\n min-width: 0;\n }\n\n .detail__selection-search-slot {\n display: flex;\n flex: 1;\n min-width: 0;\n }\n\n .detail__selection-search-slot::slotted(*) {\n flex: 1;\n min-width: 0;\n }\n\n .detail__selected-toggle {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n }\n\n .detail__selection-actions {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-xl, var(--ng-spacing-xl));\n flex: 0 0 auto;\n }\n\n .detail__selection-grid {\n display: grid;\n grid-auto-flow: column;\n gap: 8px 24px;\n overflow-x: auto;\n overflow-y: hidden;\n padding: 4px 4px 8px;\n scroll-snap-type: x proximity;\n }\n\n .detail__selection-grid--virtual {\n display: block;\n position: relative;\n width: 100%;\n contain: layout paint;\n }\n\n .detail__selection-grid--virtual.detail__selection-grid--vertical {\n overflow-x: hidden;\n overflow-y: auto;\n scroll-snap-type: y proximity;\n }\n\n .detail__selection-grid--virtual.detail__selection-grid--vertical::-webkit-scrollbar {\n width: 8px;\n height: 0;\n }\n\n .detail__selection-grid--virtual.detail__selection-grid--both {\n overflow: auto;\n scroll-snap-type: none;\n }\n\n .detail__selection-grid--virtual.detail__selection-grid--both::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n\n .detail__selection-grid--virtual .detail__selection-track {\n position: relative;\n }\n\n .detail__selection-tooltip--virtual {\n box-sizing: border-box;\n padding-right: 24px;\n }\n\n .detail__selection-grid > nile-checkbox,\n .detail__selection-grid > .detail__selection-tooltip {\n scroll-snap-align: start;\n min-width: 0;\n display: block;\n max-width: 100%;\n overflow: visible;\n padding-left: 4px;\n }\n\n .detail__selection-checkbox {\n display: block;\n width: 100%;\n min-width: 0;\n }\n\n .detail__selection-checkbox::part(base) {\n display: flex;\n width: 100%;\n min-width: 0;\n align-items: center;\n }\n\n .detail__selection-checkbox::part(label) {\n flex: 1 1 auto;\n min-width: 0;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .detail__selection-checkbox--disabled {\n opacity: 0.5;\n pointer-events: none;\n }\n\n .detail__selection-text {\n display: inline-flex;\n flex-direction: column;\n min-width: 0;\n flex: 1 1 auto;\n line-height: 1.25;\n }\n\n .detail__selection-item-label {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .detail__selection-desc {\n display: block;\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-secondary));\n margin-top: 2px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .detail__selection-prefix,\n .detail__selection-suffix {\n display: inline-flex;\n align-items: center;\n flex: 0 0 auto;\n margin: 0 6px;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-secondary));\n }\n\n .detail__selection-prefix { margin-left: 0; }\n .detail__selection-suffix { margin-right: 0; }\n\n .detail__selection-placeholder {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 4px 8px;\n box-sizing: border-box;\n opacity: 0.6;\n }\n\n .detail__selection-placeholder-bar {\n width: 16px;\n height: 16px;\n border-radius: 4px;\n background: linear-gradient(\n 90deg,\n rgba(0,0,0,0.06) 0%,\n rgba(0,0,0,0.12) 50%,\n rgba(0,0,0,0.06) 100%\n );\n background-size: 200% 100%;\n animation: nile-detail-shimmer 1.4s linear infinite;\n flex: 0 0 auto;\n }\n\n .detail__selection-placeholder-label {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-secondary));\n background: linear-gradient(\n 90deg,\n rgba(0,0,0,0.06) 0%,\n rgba(0,0,0,0.12) 50%,\n rgba(0,0,0,0.06) 100%\n );\n background-size: 200% 100%;\n background-clip: text;\n -webkit-background-clip: text;\n color: transparent;\n animation: nile-detail-shimmer 1.4s linear infinite;\n }\n\n @keyframes nile-detail-shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n }\n\n .detail__selection-grid::-webkit-scrollbar {\n height: 8px;\n }\n\n .detail__selection-grid::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.2);\n border-radius: 4px;\n }\n`;\n\nexport default [styles];\n"],"names":["styles","css","_templateObject","_taggedTemplateLiteral"],"mappings":"oTAEaA,CAAAA,CAASC,CAAG,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA"}
@@ -147,6 +147,11 @@ import{css as e}from"lit";const i=e`
147
147
  padding: var(--nile-spacing-xl, var(--ng-spacing-xl));
148
148
  }
149
149
 
150
+ .detail__content--empty {
151
+ display: none;
152
+ padding: 0;
153
+ }
154
+
150
155
  /* ── Selection variant ──────────────────────────────────────────────────── */
151
156
 
152
157
  .detail__selection-label {
@@ -191,6 +196,23 @@ import{css as e}from"lit";const i=e`
191
196
  min-width: 0;
192
197
  }
193
198
 
199
+ .detail__selection-search-slot {
200
+ display: flex;
201
+ flex: 1;
202
+ min-width: 0;
203
+ }
204
+
205
+ .detail__selection-search-slot::slotted(*) {
206
+ flex: 1;
207
+ min-width: 0;
208
+ }
209
+
210
+ .detail__selected-toggle {
211
+ display: inline-flex;
212
+ align-items: center;
213
+ gap: 6px;
214
+ }
215
+
194
216
  .detail__selection-actions {
195
217
  display: flex;
196
218
  align-items: center;
@@ -204,7 +226,7 @@ import{css as e}from"lit";const i=e`
204
226
  gap: 8px 24px;
205
227
  overflow-x: auto;
206
228
  overflow-y: hidden;
207
- padding-bottom: 8px;
229
+ padding: 4px 4px 8px;
208
230
  scroll-snap-type: x proximity;
209
231
  }
210
232
 
@@ -251,7 +273,8 @@ import{css as e}from"lit";const i=e`
251
273
  min-width: 0;
252
274
  display: block;
253
275
  max-width: 100%;
254
- overflow: hidden;
276
+ overflow: visible;
277
+ padding-left: 4px;
255
278
  }
256
279
 
257
280
  .detail__selection-checkbox {