@slotted/angular 0.1.0-beta.6 → 0.1.0-beta.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.
- package/docs/menu.json +12 -0
- package/docs/menu.md +2 -0
- package/docs/side-navigation.json +1 -0
- package/docs/side-navigation.md +1 -1
- package/docs/table.examples.md +2 -2
- package/docs/table.json +2 -2
- package/fesm2022/slotted-angular-action-bar.mjs +1 -1
- package/fesm2022/slotted-angular-action-bar.mjs.map +1 -1
- package/fesm2022/slotted-angular-app-shell.mjs +2 -2
- package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
- package/fesm2022/slotted-angular-button.mjs +12 -12
- package/fesm2022/slotted-angular-button.mjs.map +1 -1
- package/fesm2022/slotted-angular-chart.mjs +2 -2
- package/fesm2022/slotted-angular-chart.mjs.map +1 -1
- package/fesm2022/slotted-angular-color-picker.mjs +1 -1
- package/fesm2022/slotted-angular-color-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-column-manager.mjs +1 -1
- package/fesm2022/slotted-angular-column-manager.mjs.map +1 -1
- package/fesm2022/slotted-angular-dashboard-grid.mjs +1 -1
- package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-data-grid.mjs +2 -2
- package/fesm2022/slotted-angular-data-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-data-list.mjs +1 -1
- package/fesm2022/slotted-angular-data-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-event-calendar.mjs +1 -1
- package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -1
- package/fesm2022/slotted-angular-filter-bar.mjs +1 -1
- package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -1
- package/fesm2022/slotted-angular-kbd.mjs +4 -4
- package/fesm2022/slotted-angular-kbd.mjs.map +1 -1
- package/fesm2022/slotted-angular-menu.mjs +12 -4
- package/fesm2022/slotted-angular-menu.mjs.map +1 -1
- package/fesm2022/slotted-angular-saved-views.mjs +1 -1
- package/fesm2022/slotted-angular-saved-views.mjs.map +1 -1
- package/fesm2022/slotted-angular-side-navigation.mjs +2 -2
- package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -1
- package/fesm2022/slotted-angular-split-button.mjs +4 -4
- package/fesm2022/slotted-angular-split-button.mjs.map +1 -1
- package/fesm2022/slotted-angular-table.mjs +3 -1
- package/fesm2022/slotted-angular-table.mjs.map +1 -1
- package/fesm2022/slotted-angular-toolbar.mjs +1 -1
- package/fesm2022/slotted-angular-toolbar.mjs.map +1 -1
- package/package.json +3 -3
- package/types/slotted-angular-menu.d.ts +11 -2
- package/types/slotted-angular-menu.d.ts.map +1 -1
- package/types/slotted-angular-table.d.ts +3 -1
- package/types/slotted-angular-table.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slotted-angular-saved-views.mjs","sources":["../../saved-views/src/saved-views-defaults.ts","../../saved-views/src/saved-views.ts","../../saved-views/src/persisted-saved-views.ts","../../saved-views/src/slotted-angular-saved-views.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport type { GridView, SavedViewsState } from '@slotted/core/grid';\nimport type { ChangeRequest } from '@slotted/core/state';\n\n/** What the reader did. One state object answers seven different presses. */\nexport type SavedViewsAction =\n 'apply' | 'save' | 'create' | 'rename' | 'delete' | 'default' | 'revert';\n\n/** Why the views moved. `submit` is a form; `remove` a confirmed delete. */\nexport type SavedViewsReason = 'pointer' | 'keyboard' | 'submit' | 'remove' | 'programmatic';\n\n/** Why the layer opened or closed: the popover's own reasons. */\nexport type SavedViewsOpenReason = Extract<\n ChangeRequest<boolean>['reason'],\n 'pointer' | 'keyboard' | 'escape' | 'outsidePress' | 'dismiss' | 'programmatic'\n>;\n\n/**\n * The request every change carries: the state asked for, the one it\n * replaces, the reason, what the reader did, the originating event, and a\n * refusal that stops the change before anything commits.\n */\nexport interface SavedViewsRequest {\n readonly value: SavedViewsState;\n readonly previous: SavedViewsState;\n readonly reason: SavedViewsReason;\n readonly action: SavedViewsAction;\n readonly source?: Event | undefined;\n readonly cancelled: boolean;\n /** Refuses the request. Nothing commits and no view is applied. */\n cancel(): void;\n}\n\n/** What `viewApply` emits: the view to write into the grid, and the request that caused it. */\nexport interface SavedViewApply {\n readonly view: GridView;\n readonly request: SavedViewsRequest;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SlSavedViewsIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-saved-views-${this.count}`;\n }\n}\n\nlet counter = 0;\n\n/** `crypto.randomUUID()` where the platform has it, and a counter otherwise. */\nexport function newSavedViewId(): string {\n const crypto = (globalThis as { crypto?: { randomUUID?: () => string } }).crypto;\n if (typeof crypto?.randomUUID === 'function') return crypto.randomUUID();\n counter += 1;\n return `view-${Date.now().toString(36)}-${counter}`;\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n ElementRef,\n HostAttributeToken,\n inject,\n Injector,\n input,\n model,\n output,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { SlButton } from '@slotted/angular/button';\nimport { SlField, SlFieldError, SlFieldLabel } from '@slotted/angular/field';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { SlMenu, SlMenuItem, SlMenuTrigger } from '@slotted/angular/menu';\nimport type { MenuSelectEvent } from '@slotted/angular/menu';\nimport {\n SlPopover,\n SlPopoverContent,\n SlPopoverLayer,\n SlPopoverTrigger,\n} from '@slotted/angular/popover';\nimport { SlTextField, SlTextFieldInput } from '@slotted/angular/text-field';\nimport {\n BUILT_IN_VIEW_ID,\n emptySavedViews,\n isViewNameTaken,\n parseGridView,\n sameSavedView,\n savedViewText,\n serializeSavedViews,\n withActiveView,\n withDefaultView,\n withViewCreated,\n withViewDeleted,\n withViewRenamed,\n withViewSaved,\n type GridColumn,\n type GridView,\n type SavedView,\n type SavedViewsState,\n} from '@slotted/core/grid';\nimport {\n type PartialMessages,\n savedViewsMessages,\n type SavedViewsMessages,\n} from '@slotted/core/i18n';\nimport { getLiveAnnouncer } from '@slotted/core/live-announcer';\nimport type { ChangeRequest } from '@slotted/core/state';\n\nimport {\n newSavedViewId,\n SlSavedViewsIdFactory,\n type SavedViewApply,\n type SavedViewsAction,\n type SavedViewsOpenReason,\n type SavedViewsReason,\n type SavedViewsRequest,\n} from './saved-views-defaults';\n\n/** What replaces a row, or opens above the footer. */\ntype Editing =\n { kind: 'create' } | { kind: 'rename'; id: string } | { kind: 'delete'; id: string } | null;\n\n/** Where focus goes after the render a change causes. */\ntype FocusTarget =\n | { id: string; part: 'apply' | 'actions' | 'input' | 'cancel' }\n | { id: null; part: 'input' | 'save-as' | 'trigger' };\n\n/** One row of the list: the built-in view has no id and no saved view. */\ninterface Row {\n readonly id: string | null;\n readonly key: string;\n readonly name: string;\n readonly view: SavedView | null;\n readonly current: boolean;\n readonly isDefault: boolean;\n}\n\n/**\n * `slMenuTriggerFor` binds `[attr.data-part]` and resolves it to `null` on a\n * trigger that is neither a bar's item nor a submenu's; a host binding of\n * `null` removes the part the template wrote. The part is written back after\n * the first change detection, where the constant binding is not applied again.\n */\n@Directive({ selector: '[slSavedViewsPart]', standalone: true })\nexport class SlSavedViewsPart {\n readonly slSavedViewsPart = input.required<string>();\n\n constructor() {\n const element: HTMLElement = inject(ElementRef).nativeElement;\n afterNextRender(() => element.setAttribute('data-part', this.slSavedViewsPart()));\n }\n}\n\n/**\n * The named views of a grid, and the one in use: a trigger naming it, a mark\n * and a revert while the grid differs from it, and a popover listing every\n * view with its actions. The family applies nothing to a grid — it asks with\n * `stateChangeRequest` and hands the consumer the view to write through\n * `viewApply`.\n */\n@Component({\n selector: 'sl-saved-views',\n standalone: true,\n exportAs: 'slSavedViews',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrl: '../../../styles/src/saved-views/saved-views.css',\n imports: [\n NgTemplateOutlet,\n SlButton,\n SlField,\n SlFieldError,\n SlFieldLabel,\n SlGlyph,\n SlIcon,\n SlMenu,\n SlMenuItem,\n SlMenuTrigger,\n SlPopover,\n SlPopoverContent,\n SlPopoverLayer,\n SlPopoverTrigger,\n SlSavedViewsPart,\n SlTextField,\n SlTextFieldInput,\n ],\n host: {\n 'data-ui': 'saved-views',\n 'data-part': 'root',\n '[attr.role]': 'role',\n '[attr.aria-label]': 'resolvedLabel()',\n '[attr.data-modified]': 'modified() ? \"\" : null',\n '[attr.data-open]': 'isOpen() ? \"\" : null',\n },\n template: `\n <ng-container\n slPopover\n initialFocus=\"[aria-current='true']\"\n [open]=\"isOpen()\"\n (openChangeRequest)=\"onLayerRequest($event)\"\n >\n <button\n #trigger\n slPopoverTrigger\n type=\"button\"\n data-part=\"trigger\"\n [attr.title]=\"activeName()\"\n >\n <span data-label>{{ activeName() }}</span>\n @if (modified()) {\n <span data-part=\"modified\">{{ t('modified') }}</span>\n }\n <span slIcon size=\"md\"><svg slGlyph name=\"chevron-down\"></svg></span>\n </button>\n\n <ng-template slPopoverLayer>\n <div slPopoverContent [attr.aria-label]=\"resolvedLabel()\">\n <!-- The family's identifier is on its own element rather than on\n the popover's: slPopoverContent names its own part. -->\n <div data-ui=\"saved-views\" data-part=\"panel\" [id]=\"panelId\">\n <ul data-part=\"list\" role=\"list\">\n @for (row of rows(); track row.key) {\n <li\n data-part=\"item\"\n [attr.data-view]=\"row.key\"\n [attr.data-current]=\"row.current ? '' : null\"\n [attr.data-default]=\"row.isDefault ? '' : null\"\n [attr.data-built-in]=\"row.view === null ? '' : null\"\n [attr.data-editing]=\"editingKind(row) !== null ? '' : null\"\n >\n @switch (editingKind(row)) {\n @case ('rename') {\n <ng-container\n [ngTemplateOutlet]=\"nameForm\"\n [ngTemplateOutletContext]=\"{ kind: 'rename', name: row.name }\"\n />\n }\n @case ('delete') {\n <div\n data-part=\"confirm\"\n role=\"group\"\n [attr.aria-labelledby]=\"panelId + '-confirm-' + row.key\"\n >\n <p [id]=\"panelId + '-confirm-' + row.key\">\n {{ t('confirmDelete', { name: row.name }) }}\n </p>\n <div data-buttons>\n <button\n slButton\n data-cancel\n size=\"sm\"\n tone=\"secondary\"\n variant=\"ghost\"\n (click)=\"cancelEditing()\"\n >\n {{ t('cancel') }}\n </button>\n <button\n slButton\n size=\"sm\"\n tone=\"danger\"\n (click)=\"confirmDelete(row.key, $event)\"\n >\n {{ t('delete') }}\n </button>\n </div>\n </div>\n }\n @default {\n <button\n data-part=\"apply\"\n type=\"button\"\n [attr.aria-current]=\"row.current ? 'true' : null\"\n (click)=\"apply(row.id, pressReason($event), $event)\"\n >\n @if (row.current) {\n <span slIcon size=\"sm\"><svg slGlyph name=\"check\"></svg></span>\n }\n <span data-label>{{ row.name }}</span>\n @if (row.isDefault) {\n <span data-part=\"default-mark\"\n ><span slIcon size=\"sm\"><svg slGlyph name=\"pin\"></svg></span\n ><span>{{ t('isDefault') }}</span></span\n >\n }\n </button>\n <button\n type=\"button\"\n data-part=\"actions\"\n slSavedViewsPart=\"actions\"\n [slMenuTriggerFor]=\"menu\"\n [attr.aria-label]=\"t('actions', { name: row.name })\"\n >\n <span slIcon size=\"md\"><svg slGlyph name=\"ellipsis\"></svg></span>\n </button>\n <sl-menu #menu>\n @if (row.view; as view) {\n <button slMenuItem (select)=\"startRename(view)\">\n {{ t('rename') }}\n </button>\n }\n <button\n slMenuItem\n [disabled]=\"row.isDefault\"\n (select)=\"setDefault(row.id, $event)\"\n >\n {{ t('setDefault') }}\n </button>\n @if (row.view; as view) {\n <button slMenuItem tone=\"danger\" (select)=\"startDelete(view)\">\n {{ t('delete') }}\n </button>\n }\n </sl-menu>\n }\n }\n </li>\n }\n </ul>\n @if (editing()?.kind === 'create') {\n <ng-container\n [ngTemplateOutlet]=\"nameForm\"\n [ngTemplateOutletContext]=\"{ kind: 'create', name: '' }\"\n />\n }\n <div data-part=\"footer\">\n <button\n slButton\n data-save-as\n size=\"sm\"\n tone=\"secondary\"\n variant=\"ghost\"\n (click)=\"startCreate()\"\n >\n {{ t('saveAs') }}\n </button>\n <button slButton size=\"sm\" [disabled]=\"!canSave()\" (click)=\"save($event)\">\n {{ t('save') }}\n </button>\n </div>\n </div>\n </div>\n </ng-template>\n </ng-container>\n\n @if (modified()) {\n <button data-part=\"revert\" type=\"button\" (click)=\"revert($event)\">\n <!-- An arrow that turns back turns the other way in a right-to-left document. -->\n <span slIcon size=\"sm\" directional><svg slGlyph name=\"rotate-ccw\"></svg></span>\n {{ t('revert') }}\n </button>\n }\n\n <ng-template #nameForm let-kind=\"kind\" let-name=\"name\">\n <form\n data-part=\"form\"\n novalidate\n [attr.aria-label]=\"kind === 'create' ? t('saveAs') : t('renameView', { name: name })\"\n (submit)=\"submit($event)\"\n >\n <div slField size=\"sm\" [invalid]=\"error() !== null\">\n <label slFieldLabel>{{ t('name') }}</label>\n <div slTextField size=\"sm\">\n <input\n slTextFieldInput\n autocomplete=\"off\"\n [value]=\"draft()\"\n (valueChange)=\"onDraft($event.value)\"\n />\n </div>\n @if (error(); as reason) {\n <span slFieldError>{{ reason === 'empty' ? t('empty') : t('duplicate') }}</span>\n }\n </div>\n <div data-buttons>\n <button\n slButton\n data-cancel\n size=\"sm\"\n tone=\"secondary\"\n variant=\"ghost\"\n (click)=\"cancelEditing()\"\n >\n {{ t('cancel') }}\n </button>\n <button slButton type=\"submit\" size=\"sm\">\n {{ kind === 'create' ? t('create') : t('rename') }}\n </button>\n </div>\n </form>\n </ng-template>\n `,\n})\nexport class SlSavedViews {\n /** The view the grid shows now. */\n readonly current = input.required<GridView>();\n /** The built-in view: the application's defaults. */\n readonly builtIn = input.required<GridView>();\n /** The model, so a view is serialized and compared against the columns it names. */\n readonly columns = input<readonly GridColumn<never>[] | undefined>(undefined);\n /** The views. Two-way, so a template may bind it directly; cancel the request to hold it. */\n readonly state = model<SavedViewsState | undefined>(undefined);\n /** The views an unbound instance starts from. */\n readonly defaultState = input<SavedViewsState | undefined>(undefined);\n /** Whether the layer is open. Two-way. */\n readonly open = model<boolean | undefined>(undefined);\n readonly defaultOpen = input(false, { transform: booleanAttribute });\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * group's and the panel's name (`label`), the controls, the forms and the\n * announcements. A host `aria-label` names both instead.\n */\n readonly messages = input<PartialMessages<SavedViewsMessages> | undefined>(undefined);\n\n /** Every change to the views, carrying the action and the reason; cancellable. */\n readonly stateChangeRequest = output<SavedViewsRequest>();\n /** One output for one transition of the layer. */\n readonly openChangeRequest = output<ChangeRequest<boolean>>();\n /** After apply and revert: the view to write into the grid. */\n readonly viewApply = output<SavedViewApply>();\n\n private readonly injector = inject(Injector);\n private readonly host: HTMLElement = inject(ElementRef).nativeElement;\n protected readonly role = inject(new HostAttributeToken('role'), { optional: true }) ?? 'group';\n protected readonly writtenLabel = inject(new HostAttributeToken('aria-label'), {\n optional: true,\n });\n readonly panelId = `${inject(SlSavedViewsIdFactory).next()}-panel`;\n\n private readonly triggerRef = viewChild.required<ElementRef<HTMLButtonElement>>('trigger');\n\n protected readonly editing = signal<Editing>(null);\n protected readonly draft = signal('');\n protected readonly error = signal<'empty' | 'duplicate' | null>(null);\n\n /** The family's words in the language in force, with this control's `messages` laid over them. */\n readonly t = injectMessages(savedViewsMessages, this.messages);\n readonly resolvedLabel = computed(() => this.writtenLabel ?? this.t('label'));\n readonly resolvedState = computed<SavedViewsState>(\n () => this.state() ?? this.defaultState() ?? emptySavedViews(),\n );\n readonly isOpen = computed(() => this.open() ?? this.defaultOpen());\n readonly active = computed(() => {\n const state = this.resolvedState();\n return state.views.find((view) => view.id === state.activeId) ?? null;\n });\n readonly activeView = computed<GridView>(() => {\n const active = this.active();\n return active ? parseGridView(active.view, this.columns()) : this.builtIn();\n });\n readonly modified = computed(\n () => !sameSavedView(this.current(), this.activeView(), this.columns()),\n );\n readonly activeName = computed(() => this.active()?.name ?? this.t('builtIn'));\n readonly canSave = computed(() => this.active() !== null && this.modified());\n readonly rows = computed<readonly Row[]>(() => {\n const state = this.resolvedState();\n return [\n {\n id: null,\n key: BUILT_IN_VIEW_ID,\n name: this.t('builtIn'),\n view: null,\n current: state.activeId === null,\n isDefault: state.defaultId === null,\n },\n ...state.views.map((view) => ({\n id: view.id,\n key: view.id,\n name: view.name,\n view,\n current: state.activeId === view.id,\n isDefault: state.defaultId === view.id,\n })),\n ];\n });\n\n /** A click the keyboard produced has no pointer detail. */\n protected pressReason(event: MouseEvent): 'pointer' | 'keyboard' {\n return event.detail === 0 ? 'keyboard' : 'pointer';\n }\n\n protected editingKind(row: Row): 'rename' | 'delete' | null {\n const editing = this.editing();\n if (editing === null || editing.kind === 'create' || editing.id !== row.id) return null;\n return editing.kind;\n }\n\n /** Opens the layer, carrying `programmatic`. */\n show() {\n this.setOpen(true, 'programmatic');\n }\n\n /** Closes the layer, carrying `programmatic`. */\n hide() {\n this.setOpen(false, 'programmatic');\n }\n\n /** Moves focus to the trigger. */\n focus() {\n this.triggerRef().nativeElement.focus();\n }\n\n /** Applies a view by id — `null` is the built-in view — carrying the reason. */\n apply(id: string | null, reason: SavedViewsReason = 'programmatic', source?: Event) {\n const state = this.resolvedState();\n const target = id === null ? null : (state.views.find((view) => view.id === id) ?? null);\n if (id !== null && target === null) return;\n const request = this.request(withActiveView(state, id), 'apply', reason, source);\n if (request === null) return;\n const view = target ? parseGridView(target.view, this.columns()) : this.builtIn();\n this.viewApply.emit({ view, request });\n this.announce(this.t('applied', { name: target?.name ?? this.t('builtIn') }));\n this.setOpen(\n false,\n reason === 'keyboard' || reason === 'pointer' ? reason : 'programmatic',\n source,\n );\n }\n\n protected revert(event: MouseEvent) {\n const request = this.request(this.resolvedState(), 'revert', this.pressReason(event), event);\n if (request === null) return;\n this.viewApply.emit({ view: this.activeView(), request });\n this.announce(this.t('applied', { name: this.activeName() }));\n this.focusAfterRender({ id: null, part: 'trigger' });\n }\n\n protected save(event: MouseEvent) {\n const active = this.active();\n if (active === null || !this.modified()) return;\n const reason = this.pressReason(event);\n const next = withViewSaved(\n this.resolvedState(),\n active.id,\n savedViewText(this.current(), this.columns()),\n );\n if (this.request(next, 'save', reason, event) === null) return;\n this.announce(this.t('saved', { name: active.name }));\n this.setOpen(false, reason, event);\n }\n\n protected setDefault(id: string | null, event: MenuSelectEvent) {\n const state = this.resolvedState();\n const request = this.request(withDefaultView(state, id), 'default', event.reason, event.source);\n if (request === null) return;\n const name = state.views.find((view) => view.id === id)?.name ?? this.t('builtIn');\n this.announce(this.t('defaultChanged', { name }));\n }\n\n protected startCreate() {\n this.editing.set({ kind: 'create' });\n this.draft.set('');\n this.error.set(null);\n this.focusAfterRender({ id: null, part: 'input' });\n }\n\n protected startRename(view: SavedView) {\n this.editing.set({ kind: 'rename', id: view.id });\n this.draft.set(view.name);\n this.error.set(null);\n this.focusAfterRender({ id: view.id, part: 'input' });\n }\n\n protected startDelete(view: SavedView) {\n this.editing.set({ kind: 'delete', id: view.id });\n this.error.set(null);\n this.focusAfterRender({ id: view.id, part: 'cancel' });\n }\n\n /** Cancelling returns focus to the control that opened the form. */\n protected cancelEditing() {\n const was = this.editing();\n this.closeForms();\n if (was === null) return;\n this.focusAfterRender(\n was.kind === 'create' ? { id: null, part: 'save-as' } : { id: was.id, part: 'actions' },\n );\n }\n\n protected onDraft(value: string | undefined) {\n this.draft.set(value ?? '');\n this.error.set(null);\n }\n\n protected submit(event: Event) {\n event.preventDefault();\n const editing = this.editing();\n if (editing === null || editing.kind === 'delete') return;\n const state = this.resolvedState();\n const name = this.draft().trim();\n const except = editing.kind === 'rename' ? editing.id : null;\n const builtIn = this.t('builtIn').trim().toLocaleLowerCase();\n if (name === '') this.error.set('empty');\n else if (isViewNameTaken(state, name, except) || name.toLocaleLowerCase() === builtIn) {\n this.error.set('duplicate');\n }\n if (this.error() !== null) {\n this.focusAfterRender({ id: except, part: 'input' } as FocusTarget);\n return;\n }\n if (editing.kind === 'create') {\n const id = newSavedViewId();\n const next = withViewCreated(state, name, savedViewText(this.current(), this.columns()), id);\n if (this.request(next, 'create', 'submit', event) === null) return;\n this.announce(this.t('saved', { name }));\n this.closeForms();\n this.focusAfterRender({ id, part: 'apply' });\n return;\n }\n if (\n this.request(withViewRenamed(state, editing.id, name), 'rename', 'submit', event) === null\n ) {\n return;\n }\n this.announce(this.t('renamed', { name }));\n this.closeForms();\n this.focusAfterRender({ id: editing.id, part: 'apply' });\n }\n\n protected confirmDelete(id: string, event: MouseEvent) {\n const state = this.resolvedState();\n const index = state.views.findIndex((view) => view.id === id);\n const view = state.views[index];\n if (view === undefined) return;\n if (this.request(withViewDeleted(state, id), 'delete', 'remove', event) === null) return;\n this.announce(this.t('deleted', { name: view.name }));\n this.closeForms();\n this.focusAfterRender({ id: state.views[index - 1]?.id ?? BUILT_IN_VIEW_ID, part: 'apply' });\n }\n\n /**\n * The dismissable layer asks in the capture phase. The popover's own move is\n * always refused here and replayed as this family's request, so the layer\n * follows one open state; a form open inside is cancelled first and the\n * close is refused.\n */\n protected onLayerRequest(request: ChangeRequest<boolean>) {\n request.cancel();\n if (!request.value && request.reason === 'escape' && this.editing() !== null) {\n this.cancelEditing();\n return;\n }\n this.setOpen(\n request.value,\n request.reason as SavedViewsOpenReason,\n request.source as Event | undefined,\n );\n }\n\n private setOpen(next: boolean, reason: SavedViewsOpenReason, source?: Event) {\n if (next === this.isOpen()) return;\n let cancelled = false;\n const request: ChangeRequest<boolean> = {\n value: next,\n previous: !next,\n reason,\n source,\n get cancelled() {\n return cancelled;\n },\n cancel() {\n cancelled = true;\n },\n };\n this.openChangeRequest.emit(request);\n if (cancelled) return;\n this.open.set(next);\n if (!next) this.closeForms();\n }\n\n /** Asks for a new state. Not emitted when nothing would change; refused when cancelled. */\n private request(\n next: SavedViewsState,\n action: SavedViewsAction,\n reason: SavedViewsReason,\n source?: Event,\n ): SavedViewsRequest | null {\n const previous = this.resolvedState();\n let cancelled = false;\n const request: SavedViewsRequest = {\n value: next,\n previous,\n reason,\n action,\n source,\n get cancelled() {\n return cancelled;\n },\n cancel() {\n cancelled = true;\n },\n };\n if (serializeSavedViews(next) === serializeSavedViews(previous)) return request;\n this.stateChangeRequest.emit(request);\n if (cancelled) return null;\n this.state.set(next);\n return request;\n }\n\n private closeForms() {\n this.editing.set(null);\n this.draft.set('');\n this.error.set(null);\n }\n\n private announce(text: string) {\n getLiveAnnouncer(this.host.ownerDocument).announce(text);\n }\n\n private focusAfterRender(target: FocusTarget) {\n afterNextRender(\n () => {\n if (target.part === 'trigger') {\n this.focus();\n return;\n }\n const panel = this.host.ownerDocument.getElementById(this.panelId);\n if (panel === null) return;\n const scope =\n target.id === null\n ? panel\n : ([...panel.querySelectorAll<HTMLElement>('[data-part=\"item\"]')].find(\n (item) => item.dataset['view'] === target.id,\n ) ?? null);\n const selector = {\n apply: '[data-part=\"apply\"]',\n actions: '[data-part=\"actions\"]',\n input: target.id === null ? ':scope > [data-part=\"form\"] input' : 'input',\n cancel: '[data-cancel]',\n 'save-as': '[data-save-as]',\n }[target.part];\n scope?.querySelector<HTMLElement>(selector)?.focus();\n },\n { injector: this.injector },\n );\n }\n}\n","import { effect, signal, untracked, type Injector, type WritableSignal } from '@angular/core';\nimport {\n parseGridView,\n parseSavedViews,\n serializeSavedViews,\n withActiveView,\n type GridColumn,\n type GridView,\n type GridViewStorage,\n type SavedViewsState,\n} from '@slotted/core/grid';\n\nexport interface PersistedSavedViewsOptions {\n /** The entry the views are kept under. */\n readonly key: string;\n /** Default `window.localStorage`; `null` keeps the views in memory only. */\n readonly storage?: GridViewStorage | null | undefined;\n /** The model, so the default view a visit opens on is parsed against it. */\n readonly columns?: readonly GridColumn<never>[] | undefined;\n /** Required outside an injection context. */\n readonly injector?: Injector | undefined;\n}\n\nexport interface PersistedSavedViews {\n /** Bind with `[(state)]`. */\n readonly state: WritableSignal<SavedViewsState>;\n /**\n * The default view this visit opened on, when the store held no view in use\n * and a default: the state already names it as active, and the grid still\n * has to be given it once. `null` otherwise.\n */\n readonly openedDefault: GridView | null;\n}\n\nfunction defaultStorage(): GridViewStorage | null {\n try {\n return typeof window === 'undefined' ? null : window.localStorage;\n } catch {\n return null;\n }\n}\n\n/**\n * A reader's saved views, kept across visits: read once from the store with\n * `parseSavedViews` — which is total, so a malformed entry is no views — and\n * written with `serializeSavedViews` after every change. A store that holds\n * no view in use and a default opens the visit on the default. The store is\n * reached inside `try` both ways, as `persistedGridView` reaches it.\n */\nexport function persistedSavedViews({\n key,\n storage,\n columns,\n injector,\n}: PersistedSavedViewsOptions): PersistedSavedViews {\n const store = storage === undefined ? defaultStorage() : storage;\n let text: string | null;\n try {\n text = store?.getItem(key) ?? null;\n } catch {\n text = null;\n }\n let initial = parseSavedViews(text);\n let openedDefault: GridView | null = null;\n if (initial.activeId === null && initial.defaultId !== null) {\n const opened = initial.views.find((view) => view.id === initial.defaultId);\n initial = withActiveView(initial, initial.defaultId);\n openedDefault = opened ? parseGridView(opened.view, columns) : null;\n }\n const state = signal<SavedViewsState>(initial);\n\n /* The first run is the read; every run after is a change to write. */\n let settled = false;\n effect(\n () => {\n const current = state();\n if (!settled) {\n settled = true;\n return;\n }\n untracked(() => {\n if (!store) return;\n try {\n store.setItem(key, serializeSavedViews(current));\n } catch {\n /* The store refused; the views stay in memory. */\n }\n });\n },\n injector ? { injector } : undefined,\n );\n\n return { state, openedDefault };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slotted-angular-saved-views.mjs","sources":["../../saved-views/src/saved-views-defaults.ts","../../saved-views/src/saved-views.ts","../../saved-views/src/persisted-saved-views.ts","../../saved-views/src/slotted-angular-saved-views.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport type { GridView, SavedViewsState } from '@slotted/core/grid';\nimport type { ChangeRequest } from '@slotted/core/state';\n\n/** What the reader did. One state object answers seven different presses. */\nexport type SavedViewsAction =\n 'apply' | 'save' | 'create' | 'rename' | 'delete' | 'default' | 'revert';\n\n/** Why the views moved. `submit` is a form; `remove` a confirmed delete. */\nexport type SavedViewsReason = 'pointer' | 'keyboard' | 'submit' | 'remove' | 'programmatic';\n\n/** Why the layer opened or closed: the popover's own reasons. */\nexport type SavedViewsOpenReason = Extract<\n ChangeRequest<boolean>['reason'],\n 'pointer' | 'keyboard' | 'escape' | 'outsidePress' | 'dismiss' | 'programmatic'\n>;\n\n/**\n * The request every change carries: the state asked for, the one it\n * replaces, the reason, what the reader did, the originating event, and a\n * refusal that stops the change before anything commits.\n */\nexport interface SavedViewsRequest {\n readonly value: SavedViewsState;\n readonly previous: SavedViewsState;\n readonly reason: SavedViewsReason;\n readonly action: SavedViewsAction;\n readonly source?: Event | undefined;\n readonly cancelled: boolean;\n /** Refuses the request. Nothing commits and no view is applied. */\n cancel(): void;\n}\n\n/** What `viewApply` emits: the view to write into the grid, and the request that caused it. */\nexport interface SavedViewApply {\n readonly view: GridView;\n readonly request: SavedViewsRequest;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SlSavedViewsIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-saved-views-${this.count}`;\n }\n}\n\nlet counter = 0;\n\n/** `crypto.randomUUID()` where the platform has it, and a counter otherwise. */\nexport function newSavedViewId(): string {\n const crypto = (globalThis as { crypto?: { randomUUID?: () => string } }).crypto;\n if (typeof crypto?.randomUUID === 'function') return crypto.randomUUID();\n counter += 1;\n return `view-${Date.now().toString(36)}-${counter}`;\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n ElementRef,\n HostAttributeToken,\n inject,\n Injector,\n input,\n model,\n output,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { SlButton } from '@slotted/angular/button';\nimport { SlField, SlFieldError, SlFieldLabel } from '@slotted/angular/field';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { SlMenu, SlMenuItem, SlMenuTrigger } from '@slotted/angular/menu';\nimport type { MenuSelectEvent } from '@slotted/angular/menu';\nimport {\n SlPopover,\n SlPopoverContent,\n SlPopoverLayer,\n SlPopoverTrigger,\n} from '@slotted/angular/popover';\nimport { SlTextField, SlTextFieldInput } from '@slotted/angular/text-field';\nimport {\n BUILT_IN_VIEW_ID,\n emptySavedViews,\n isViewNameTaken,\n parseGridView,\n sameSavedView,\n savedViewText,\n serializeSavedViews,\n withActiveView,\n withDefaultView,\n withViewCreated,\n withViewDeleted,\n withViewRenamed,\n withViewSaved,\n type GridColumn,\n type GridView,\n type SavedView,\n type SavedViewsState,\n} from '@slotted/core/grid';\nimport {\n type PartialMessages,\n savedViewsMessages,\n type SavedViewsMessages,\n} from '@slotted/core/i18n';\nimport { getLiveAnnouncer } from '@slotted/core/live-announcer';\nimport type { ChangeRequest } from '@slotted/core/state';\n\nimport {\n newSavedViewId,\n SlSavedViewsIdFactory,\n type SavedViewApply,\n type SavedViewsAction,\n type SavedViewsOpenReason,\n type SavedViewsReason,\n type SavedViewsRequest,\n} from './saved-views-defaults';\n\n/** What replaces a row, or opens above the footer. */\ntype Editing =\n { kind: 'create' } | { kind: 'rename'; id: string } | { kind: 'delete'; id: string } | null;\n\n/** Where focus goes after the render a change causes. */\ntype FocusTarget =\n | { id: string; part: 'apply' | 'actions' | 'input' | 'cancel' }\n | { id: null; part: 'input' | 'save-as' | 'trigger' };\n\n/** One row of the list: the built-in view has no id and no saved view. */\ninterface Row {\n readonly id: string | null;\n readonly key: string;\n readonly name: string;\n readonly view: SavedView | null;\n readonly current: boolean;\n readonly isDefault: boolean;\n}\n\n/**\n * `slMenuTriggerFor` binds `[attr.data-part]` and resolves it to `null` on a\n * trigger that is neither a bar's item nor a submenu's; a host binding of\n * `null` removes the part the template wrote. The part is written back after\n * the first change detection, where the constant binding is not applied again.\n */\n@Directive({ selector: '[slSavedViewsPart]', standalone: true })\nexport class SlSavedViewsPart {\n readonly slSavedViewsPart = input.required<string>();\n\n constructor() {\n const element: HTMLElement = inject(ElementRef).nativeElement;\n afterNextRender(() => element.setAttribute('data-part', this.slSavedViewsPart()));\n }\n}\n\n/**\n * The named views of a grid, and the one in use: a trigger naming it, a mark\n * and a revert while the grid differs from it, and a popover listing every\n * view with its actions. The family applies nothing to a grid — it asks with\n * `stateChangeRequest` and hands the consumer the view to write through\n * `viewApply`.\n */\n@Component({\n selector: 'sl-saved-views',\n standalone: true,\n exportAs: 'slSavedViews',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrl: '../../../styles/src/saved-views/saved-views.css',\n imports: [\n NgTemplateOutlet,\n SlButton,\n SlField,\n SlFieldError,\n SlFieldLabel,\n SlGlyph,\n SlIcon,\n SlMenu,\n SlMenuItem,\n SlMenuTrigger,\n SlPopover,\n SlPopoverContent,\n SlPopoverLayer,\n SlPopoverTrigger,\n SlSavedViewsPart,\n SlTextField,\n SlTextFieldInput,\n ],\n host: {\n 'data-ui': 'saved-views',\n 'data-part': 'root',\n '[attr.role]': 'role',\n '[attr.aria-label]': 'resolvedLabel()',\n '[attr.data-modified]': 'modified() ? \"\" : null',\n '[attr.data-open]': 'isOpen() ? \"\" : null',\n },\n template: `\n <ng-container\n slPopover\n initialFocus=\"[aria-current='true']\"\n [open]=\"isOpen()\"\n (openChangeRequest)=\"onLayerRequest($event)\"\n >\n <button\n #trigger\n slPopoverTrigger\n type=\"button\"\n data-part=\"trigger\"\n [attr.title]=\"activeName()\"\n >\n <span data-label>{{ activeName() }}</span>\n @if (modified()) {\n <span data-part=\"modified\">{{ t('modified') }}</span>\n }\n <span slIcon size=\"md\"><svg slGlyph name=\"chevron-down\"></svg></span>\n </button>\n\n <ng-template slPopoverLayer>\n <div slPopoverContent [attr.aria-label]=\"resolvedLabel()\">\n <!-- The family's identifier is on its own element rather than on\n the popover's: slPopoverContent names its own part. -->\n <div data-ui=\"saved-views\" data-part=\"panel\" [id]=\"panelId\">\n <ul data-part=\"list\" role=\"list\">\n @for (row of rows(); track row.key) {\n <li\n data-part=\"item\"\n [attr.data-view]=\"row.key\"\n [attr.data-current]=\"row.current ? '' : null\"\n [attr.data-default]=\"row.isDefault ? '' : null\"\n [attr.data-built-in]=\"row.view === null ? '' : null\"\n [attr.data-editing]=\"editingKind(row) !== null ? '' : null\"\n >\n @switch (editingKind(row)) {\n @case ('rename') {\n <ng-container\n [ngTemplateOutlet]=\"nameForm\"\n [ngTemplateOutletContext]=\"{ kind: 'rename', name: row.name }\"\n />\n }\n @case ('delete') {\n <div\n data-part=\"confirm\"\n role=\"group\"\n [attr.aria-labelledby]=\"panelId + '-confirm-' + row.key\"\n >\n <p [id]=\"panelId + '-confirm-' + row.key\">\n {{ t('confirmDelete', { name: row.name }) }}\n </p>\n <div data-buttons>\n <button\n slButton\n data-cancel\n size=\"sm\"\n tone=\"secondary\"\n variant=\"ghost\"\n (click)=\"cancelEditing()\"\n >\n {{ t('cancel') }}\n </button>\n <button\n slButton\n size=\"sm\"\n tone=\"danger\"\n (click)=\"confirmDelete(row.key, $event)\"\n >\n {{ t('delete') }}\n </button>\n </div>\n </div>\n }\n @default {\n <button\n data-part=\"apply\"\n type=\"button\"\n [attr.aria-current]=\"row.current ? 'true' : null\"\n (click)=\"apply(row.id, pressReason($event), $event)\"\n >\n @if (row.current) {\n <span slIcon size=\"sm\"><svg slGlyph name=\"check\"></svg></span>\n }\n <span data-label>{{ row.name }}</span>\n @if (row.isDefault) {\n <span data-part=\"default-mark\"\n ><span slIcon size=\"sm\"><svg slGlyph name=\"pin\"></svg></span\n ><span>{{ t('isDefault') }}</span></span\n >\n }\n </button>\n <button\n type=\"button\"\n data-part=\"actions\"\n slSavedViewsPart=\"actions\"\n [slMenuTriggerFor]=\"menu\"\n [attr.aria-label]=\"t('actions', { name: row.name })\"\n >\n <span slIcon size=\"md\"><svg slGlyph name=\"ellipsis\"></svg></span>\n </button>\n <sl-menu #menu>\n @if (row.view; as view) {\n <button slMenuItem (select)=\"startRename(view)\">\n {{ t('rename') }}\n </button>\n }\n <button\n slMenuItem\n [disabled]=\"row.isDefault\"\n (select)=\"setDefault(row.id, $event)\"\n >\n {{ t('setDefault') }}\n </button>\n @if (row.view; as view) {\n <button slMenuItem tone=\"danger\" (select)=\"startDelete(view)\">\n {{ t('delete') }}\n </button>\n }\n </sl-menu>\n }\n }\n </li>\n }\n </ul>\n @if (editing()?.kind === 'create') {\n <ng-container\n [ngTemplateOutlet]=\"nameForm\"\n [ngTemplateOutletContext]=\"{ kind: 'create', name: '' }\"\n />\n }\n <div data-part=\"footer\">\n <button\n slButton\n data-save-as\n size=\"sm\"\n tone=\"secondary\"\n variant=\"ghost\"\n (click)=\"startCreate()\"\n >\n {{ t('saveAs') }}\n </button>\n <button slButton size=\"sm\" [disabled]=\"!canSave()\" (click)=\"save($event)\">\n {{ t('save') }}\n </button>\n </div>\n </div>\n </div>\n </ng-template>\n </ng-container>\n\n @if (modified()) {\n <button data-part=\"revert\" type=\"button\" (click)=\"revert($event)\">\n <!-- An arrow that turns back turns the other way in a right-to-left document. -->\n <span slIcon size=\"sm\" directional><svg slGlyph name=\"rotate-ccw\"></svg></span>\n {{ t('revert') }}\n </button>\n }\n\n <ng-template #nameForm let-kind=\"kind\" let-name=\"name\">\n <form\n data-part=\"form\"\n novalidate\n [attr.aria-label]=\"kind === 'create' ? t('saveAs') : t('renameView', { name: name })\"\n (submit)=\"submit($event)\"\n >\n <div slField size=\"sm\" [invalid]=\"error() !== null\">\n <label slFieldLabel>{{ t('name') }}</label>\n <div slTextField size=\"sm\">\n <input\n slTextFieldInput\n autocomplete=\"off\"\n [value]=\"draft()\"\n (valueChange)=\"onDraft($event.value)\"\n />\n </div>\n @if (error(); as reason) {\n <span slFieldError>{{ reason === 'empty' ? t('empty') : t('duplicate') }}</span>\n }\n </div>\n <div data-buttons>\n <button\n slButton\n data-cancel\n size=\"sm\"\n tone=\"secondary\"\n variant=\"ghost\"\n (click)=\"cancelEditing()\"\n >\n {{ t('cancel') }}\n </button>\n <button slButton type=\"submit\" size=\"sm\">\n {{ kind === 'create' ? t('create') : t('rename') }}\n </button>\n </div>\n </form>\n </ng-template>\n `,\n})\nexport class SlSavedViews {\n /** The view the grid shows now. */\n readonly current = input.required<GridView>();\n /** The built-in view: the application's defaults. */\n readonly builtIn = input.required<GridView>();\n /** The model, so a view is serialized and compared against the columns it names. */\n readonly columns = input<readonly GridColumn<never>[] | undefined>(undefined);\n /** The views. Two-way, so a template may bind it directly; cancel the request to hold it. */\n readonly state = model<SavedViewsState | undefined>(undefined);\n /** The views an unbound instance starts from. */\n readonly defaultState = input<SavedViewsState | undefined>(undefined);\n /** Whether the layer is open. Two-way. */\n readonly open = model<boolean | undefined>(undefined);\n readonly defaultOpen = input(false, { transform: booleanAttribute });\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * group's and the panel's name (`label`), the controls, the forms and the\n * announcements. A host `aria-label` names both instead.\n */\n readonly messages = input<PartialMessages<SavedViewsMessages> | undefined>(undefined);\n\n /** Every change to the views, carrying the action and the reason; cancellable. */\n readonly stateChangeRequest = output<SavedViewsRequest>();\n /** One output for one transition of the layer. */\n readonly openChangeRequest = output<ChangeRequest<boolean>>();\n /** After apply and revert: the view to write into the grid. */\n readonly viewApply = output<SavedViewApply>();\n\n private readonly injector = inject(Injector);\n private readonly host: HTMLElement = inject(ElementRef).nativeElement;\n protected readonly role = inject(new HostAttributeToken('role'), { optional: true }) ?? 'group';\n protected readonly writtenLabel = inject(new HostAttributeToken('aria-label'), {\n optional: true,\n });\n readonly panelId = `${inject(SlSavedViewsIdFactory).next()}-panel`;\n\n private readonly triggerRef = viewChild.required<ElementRef<HTMLButtonElement>>('trigger');\n\n protected readonly editing = signal<Editing>(null);\n protected readonly draft = signal('');\n protected readonly error = signal<'empty' | 'duplicate' | null>(null);\n\n /** The family's words in the language in force, with this control's `messages` laid over them. */\n readonly t = injectMessages(savedViewsMessages, this.messages);\n readonly resolvedLabel = computed(() => this.writtenLabel ?? this.t('label'));\n readonly resolvedState = computed<SavedViewsState>(\n () => this.state() ?? this.defaultState() ?? emptySavedViews(),\n );\n readonly isOpen = computed(() => this.open() ?? this.defaultOpen());\n readonly active = computed(() => {\n const state = this.resolvedState();\n return state.views.find((view) => view.id === state.activeId) ?? null;\n });\n readonly activeView = computed<GridView>(() => {\n const active = this.active();\n return active ? parseGridView(active.view, this.columns()) : this.builtIn();\n });\n readonly modified = computed(\n () => !sameSavedView(this.current(), this.activeView(), this.columns()),\n );\n readonly activeName = computed(() => this.active()?.name ?? this.t('builtIn'));\n readonly canSave = computed(() => this.active() !== null && this.modified());\n readonly rows = computed<readonly Row[]>(() => {\n const state = this.resolvedState();\n return [\n {\n id: null,\n key: BUILT_IN_VIEW_ID,\n name: this.t('builtIn'),\n view: null,\n current: state.activeId === null,\n isDefault: state.defaultId === null,\n },\n ...state.views.map((view) => ({\n id: view.id,\n key: view.id,\n name: view.name,\n view,\n current: state.activeId === view.id,\n isDefault: state.defaultId === view.id,\n })),\n ];\n });\n\n /** A click the keyboard produced has no pointer detail. */\n protected pressReason(event: MouseEvent): 'pointer' | 'keyboard' {\n return event.detail === 0 ? 'keyboard' : 'pointer';\n }\n\n protected editingKind(row: Row): 'rename' | 'delete' | null {\n const editing = this.editing();\n if (editing === null || editing.kind === 'create' || editing.id !== row.id) return null;\n return editing.kind;\n }\n\n /** Opens the layer, carrying `programmatic`. */\n show() {\n this.setOpen(true, 'programmatic');\n }\n\n /** Closes the layer, carrying `programmatic`. */\n hide() {\n this.setOpen(false, 'programmatic');\n }\n\n /** Moves focus to the trigger. */\n focus() {\n this.triggerRef().nativeElement.focus();\n }\n\n /** Applies a view by id — `null` is the built-in view — carrying the reason. */\n apply(id: string | null, reason: SavedViewsReason = 'programmatic', source?: Event) {\n const state = this.resolvedState();\n const target = id === null ? null : (state.views.find((view) => view.id === id) ?? null);\n if (id !== null && target === null) return;\n const request = this.request(withActiveView(state, id), 'apply', reason, source);\n if (request === null) return;\n const view = target ? parseGridView(target.view, this.columns()) : this.builtIn();\n this.viewApply.emit({ view, request });\n this.announce(this.t('applied', { name: target?.name ?? this.t('builtIn') }));\n this.setOpen(\n false,\n reason === 'keyboard' || reason === 'pointer' ? reason : 'programmatic',\n source,\n );\n }\n\n protected revert(event: MouseEvent) {\n const request = this.request(this.resolvedState(), 'revert', this.pressReason(event), event);\n if (request === null) return;\n this.viewApply.emit({ view: this.activeView(), request });\n this.announce(this.t('applied', { name: this.activeName() }));\n this.focusAfterRender({ id: null, part: 'trigger' });\n }\n\n protected save(event: MouseEvent) {\n const active = this.active();\n if (active === null || !this.modified()) return;\n const reason = this.pressReason(event);\n const next = withViewSaved(\n this.resolvedState(),\n active.id,\n savedViewText(this.current(), this.columns()),\n );\n if (this.request(next, 'save', reason, event) === null) return;\n this.announce(this.t('saved', { name: active.name }));\n this.setOpen(false, reason, event);\n }\n\n protected setDefault(id: string | null, event: MenuSelectEvent) {\n const state = this.resolvedState();\n const request = this.request(withDefaultView(state, id), 'default', event.reason, event.source);\n if (request === null) return;\n const name = state.views.find((view) => view.id === id)?.name ?? this.t('builtIn');\n this.announce(this.t('defaultChanged', { name }));\n }\n\n protected startCreate() {\n this.editing.set({ kind: 'create' });\n this.draft.set('');\n this.error.set(null);\n this.focusAfterRender({ id: null, part: 'input' });\n }\n\n protected startRename(view: SavedView) {\n this.editing.set({ kind: 'rename', id: view.id });\n this.draft.set(view.name);\n this.error.set(null);\n this.focusAfterRender({ id: view.id, part: 'input' });\n }\n\n protected startDelete(view: SavedView) {\n this.editing.set({ kind: 'delete', id: view.id });\n this.error.set(null);\n this.focusAfterRender({ id: view.id, part: 'cancel' });\n }\n\n /** Cancelling returns focus to the control that opened the form. */\n protected cancelEditing() {\n const was = this.editing();\n this.closeForms();\n if (was === null) return;\n this.focusAfterRender(\n was.kind === 'create' ? { id: null, part: 'save-as' } : { id: was.id, part: 'actions' },\n );\n }\n\n protected onDraft(value: string | undefined) {\n this.draft.set(value ?? '');\n this.error.set(null);\n }\n\n protected submit(event: Event) {\n event.preventDefault();\n const editing = this.editing();\n if (editing === null || editing.kind === 'delete') return;\n const state = this.resolvedState();\n const name = this.draft().trim();\n const except = editing.kind === 'rename' ? editing.id : null;\n const builtIn = this.t('builtIn').trim().toLocaleLowerCase();\n if (name === '') this.error.set('empty');\n else if (isViewNameTaken(state, name, except) || name.toLocaleLowerCase() === builtIn) {\n this.error.set('duplicate');\n }\n if (this.error() !== null) {\n this.focusAfterRender({ id: except, part: 'input' } as FocusTarget);\n return;\n }\n if (editing.kind === 'create') {\n const id = newSavedViewId();\n const next = withViewCreated(state, name, savedViewText(this.current(), this.columns()), id);\n if (this.request(next, 'create', 'submit', event) === null) return;\n this.announce(this.t('saved', { name }));\n this.closeForms();\n this.focusAfterRender({ id, part: 'apply' });\n return;\n }\n if (\n this.request(withViewRenamed(state, editing.id, name), 'rename', 'submit', event) === null\n ) {\n return;\n }\n this.announce(this.t('renamed', { name }));\n this.closeForms();\n this.focusAfterRender({ id: editing.id, part: 'apply' });\n }\n\n protected confirmDelete(id: string, event: MouseEvent) {\n const state = this.resolvedState();\n const index = state.views.findIndex((view) => view.id === id);\n const view = state.views[index];\n if (view === undefined) return;\n if (this.request(withViewDeleted(state, id), 'delete', 'remove', event) === null) return;\n this.announce(this.t('deleted', { name: view.name }));\n this.closeForms();\n this.focusAfterRender({ id: state.views[index - 1]?.id ?? BUILT_IN_VIEW_ID, part: 'apply' });\n }\n\n /**\n * The dismissable layer asks in the capture phase. The popover's own move is\n * always refused here and replayed as this family's request, so the layer\n * follows one open state; a form open inside is cancelled first and the\n * close is refused.\n */\n protected onLayerRequest(request: ChangeRequest<boolean>) {\n request.cancel();\n if (!request.value && request.reason === 'escape' && this.editing() !== null) {\n this.cancelEditing();\n return;\n }\n this.setOpen(\n request.value,\n request.reason as SavedViewsOpenReason,\n request.source as Event | undefined,\n );\n }\n\n private setOpen(next: boolean, reason: SavedViewsOpenReason, source?: Event) {\n if (next === this.isOpen()) return;\n let cancelled = false;\n const request: ChangeRequest<boolean> = {\n value: next,\n previous: !next,\n reason,\n source,\n get cancelled() {\n return cancelled;\n },\n cancel() {\n cancelled = true;\n },\n };\n this.openChangeRequest.emit(request);\n if (cancelled) return;\n this.open.set(next);\n if (!next) this.closeForms();\n }\n\n /** Asks for a new state. Not emitted when nothing would change; refused when cancelled. */\n private request(\n next: SavedViewsState,\n action: SavedViewsAction,\n reason: SavedViewsReason,\n source?: Event,\n ): SavedViewsRequest | null {\n const previous = this.resolvedState();\n let cancelled = false;\n const request: SavedViewsRequest = {\n value: next,\n previous,\n reason,\n action,\n source,\n get cancelled() {\n return cancelled;\n },\n cancel() {\n cancelled = true;\n },\n };\n if (serializeSavedViews(next) === serializeSavedViews(previous)) return request;\n this.stateChangeRequest.emit(request);\n if (cancelled) return null;\n this.state.set(next);\n return request;\n }\n\n private closeForms() {\n this.editing.set(null);\n this.draft.set('');\n this.error.set(null);\n }\n\n private announce(text: string) {\n getLiveAnnouncer(this.host.ownerDocument).announce(text);\n }\n\n private focusAfterRender(target: FocusTarget) {\n afterNextRender(\n () => {\n if (target.part === 'trigger') {\n this.focus();\n return;\n }\n const panel = this.host.ownerDocument.getElementById(this.panelId);\n if (panel === null) return;\n const scope =\n target.id === null\n ? panel\n : ([...panel.querySelectorAll<HTMLElement>('[data-part=\"item\"]')].find(\n (item) => item.dataset['view'] === target.id,\n ) ?? null);\n const selector = {\n apply: '[data-part=\"apply\"]',\n actions: '[data-part=\"actions\"]',\n input: target.id === null ? ':scope > [data-part=\"form\"] input' : 'input',\n cancel: '[data-cancel]',\n 'save-as': '[data-save-as]',\n }[target.part];\n scope?.querySelector<HTMLElement>(selector)?.focus();\n },\n { injector: this.injector },\n );\n }\n}\n","import { effect, signal, untracked, type Injector, type WritableSignal } from '@angular/core';\nimport {\n parseGridView,\n parseSavedViews,\n serializeSavedViews,\n withActiveView,\n type GridColumn,\n type GridView,\n type GridViewStorage,\n type SavedViewsState,\n} from '@slotted/core/grid';\n\nexport interface PersistedSavedViewsOptions {\n /** The entry the views are kept under. */\n readonly key: string;\n /** Default `window.localStorage`; `null` keeps the views in memory only. */\n readonly storage?: GridViewStorage | null | undefined;\n /** The model, so the default view a visit opens on is parsed against it. */\n readonly columns?: readonly GridColumn<never>[] | undefined;\n /** Required outside an injection context. */\n readonly injector?: Injector | undefined;\n}\n\nexport interface PersistedSavedViews {\n /** Bind with `[(state)]`. */\n readonly state: WritableSignal<SavedViewsState>;\n /**\n * The default view this visit opened on, when the store held no view in use\n * and a default: the state already names it as active, and the grid still\n * has to be given it once. `null` otherwise.\n */\n readonly openedDefault: GridView | null;\n}\n\nfunction defaultStorage(): GridViewStorage | null {\n try {\n return typeof window === 'undefined' ? null : window.localStorage;\n } catch {\n return null;\n }\n}\n\n/**\n * A reader's saved views, kept across visits: read once from the store with\n * `parseSavedViews` — which is total, so a malformed entry is no views — and\n * written with `serializeSavedViews` after every change. A store that holds\n * no view in use and a default opens the visit on the default. The store is\n * reached inside `try` both ways, as `persistedGridView` reaches it.\n */\nexport function persistedSavedViews({\n key,\n storage,\n columns,\n injector,\n}: PersistedSavedViewsOptions): PersistedSavedViews {\n const store = storage === undefined ? defaultStorage() : storage;\n let text: string | null;\n try {\n text = store?.getItem(key) ?? null;\n } catch {\n text = null;\n }\n let initial = parseSavedViews(text);\n let openedDefault: GridView | null = null;\n if (initial.activeId === null && initial.defaultId !== null) {\n const opened = initial.views.find((view) => view.id === initial.defaultId);\n initial = withActiveView(initial, initial.defaultId);\n openedDefault = opened ? parseGridView(opened.view, columns) : null;\n }\n const state = signal<SavedViewsState>(initial);\n\n /* The first run is the read; every run after is a change to write. */\n let settled = false;\n effect(\n () => {\n const current = state();\n if (!settled) {\n settled = true;\n return;\n }\n untracked(() => {\n if (!store) return;\n try {\n store.setItem(key, serializeSavedViews(current));\n } catch {\n /* The store refused; the views stay in memory. */\n }\n });\n },\n injector ? { injector } : undefined,\n );\n\n return { state, openedDefault };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -326,7 +326,7 @@ class SlSideNavigation {
|
|
|
326
326
|
all[next]?.focus();
|
|
327
327
|
}
|
|
328
328
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlSideNavigation, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
329
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlSideNavigation, isStandalone: true, selector: "[slSideNavigation]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, flyout: { classPropertyName: "flyout", publicName: "flyout", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, truncate: { classPropertyName: "truncate", publicName: "truncate", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, autoExpand: { classPropertyName: "autoExpand", publicName: "autoExpand", isSignal: true, isRequired: false, transformFunction: null }, guides: { classPropertyName: "guides", publicName: "guides", isSignal: true, isRequired: false, transformFunction: null }, landmark: { classPropertyName: "landmark", publicName: "landmark", isSignal: true, isRequired: false, transformFunction: null }, compactAt: { classPropertyName: "compactAt", publicName: "compactAt", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", expanded: "expandedChange", flyout: "flyoutChange", valueChangeRequest: "valueChangeRequest", expandedChangeRequest: "expandedChangeRequest", flyoutChangeRequest: "flyoutChangeRequest" }, host: { attributes: { "data-ui": "side-navigation", "data-part": "root" }, listeners: { "keydown": "onKeyDown($event)" }, properties: { "attr.aria-label": "ariaLabel()", "attr.data-mode": "resolvedMode()", "attr.data-size": "resolvedSize()", "attr.data-truncate": "resolvedTruncate()", "attr.data-guides": "resolvedGuides() ? '' : null", "attr.data-compact": "compact() ? '' : null" } }, exportAs: ["slSideNavigation"], ngImport: i0, template: '<ng-content />', isInline: true, styles: ["@layer slotted.components{[data-ui=side-navigation]{--_row-height: var(--slotted-app-shell-row-height, var(--slotted-control-height-md, 34px));--_mark: var(--slotted-app-shell-row-mark, var(--_row-height));--_inset: var(--slotted-app-shell-row-inset, var(--slotted-space-4, .5rem));--_standoff: min(var(--slotted-space-2, .25rem), var(--_inset));--_gap: var(--slotted-app-shell-row-gap, var(--slotted-control-gap-md, 8px));--_font-size: var(--slotted-app-shell-row-font-size, var(--slotted-font-size-sm, .8125rem));--_line-height: var(--slotted-app-shell-row-line-height, var(--slotted-line-height-sm, 1.45));--_icon-size: var(--slotted-control-icon-size-md, 16px);--_description-font-size: var(--slotted-font-size-xs, .75rem);--_section-font-size: var(--slotted-font-size-xs, .75rem);--_indent: var(--slotted-side-navigation-indent, calc(var(--_mark) + var(--_gap)));--_indent-step: var(--slotted-side-navigation-indent-step, var(--slotted-space-7, 1.25rem));--_radius: var(--slotted-side-navigation-radius, var(--slotted-radius-md, 6px));--_row-gap: var(--slotted-side-navigation-row-gap, var(--slotted-space-1, .125rem));--_section-gap: var(--slotted-side-navigation-section-gap, var(--slotted-space-5, .75rem));--_guide-width: var(--slotted-border-width-thin, 1px);--_dot-size: var(--slotted-side-navigation-dot-size, var(--slotted-space-3, .375rem));--_color: var(--slotted-side-navigation-color, var(--slotted-text-muted, GrayText));--_hover-color: var(--slotted-side-navigation-hover-color, var(--slotted-text, CanvasText));--_hover-background: var( --slotted-side-navigation-hover-background, var(--slotted-tone-secondary-subtle-hover) );--_active-background: var( --slotted-side-navigation-active-background, var(--slotted-tone-secondary-subtle-active) );--_current-color: var(--slotted-side-navigation-current-color, var(--slotted-tone-accent-text));--_current-background: var( --slotted-side-navigation-current-background, var(--slotted-tone-accent-surface) );--_current-edge: var( --slotted-side-navigation-current-edge, var(--slotted-current-edge, transparent) );--_dot-color: var(--slotted-side-navigation-dot-color, var(--slotted-tone-accent-solid));--_section-color: var( --slotted-side-navigation-section-color, var(--slotted-text-muted, GrayText) );--_description-color: var( --slotted-side-navigation-description-color, var(--slotted-text-muted, GrayText) );--_current-description-color: var( --slotted-side-navigation-current-description-color, var(--slotted-text, CanvasText) );--_description-gap: var( --slotted-side-navigation-description-gap, var(--slotted-space-1, .125rem) );--_guide-color: var( --slotted-side-navigation-guide-color, var(--slotted-border-subtle, ButtonBorder) );--_disabled-color: var(--slotted-disabled-foreground, GrayText);--_duration: var(--slotted-control-transition-duration, var(--slotted-duration-short));--_easing: var(--slotted-control-transition-easing, var(--slotted-easing-standard));box-sizing:border-box;color:var(--_color);font-family:var(--slotted-control-font-family, inherit);font-size:var(--_font-size);line-height:var(--_line-height);min-inline-size:0}[data-ui=side-navigation][data-size=sm]{--_row-height: var(--slotted-control-height-sm, 30px);--_mark: var(--_row-height);--_gap: var(--slotted-control-gap-sm, 6px);--_font-size: var(--slotted-font-size-xs, .75rem);--_line-height: var(--slotted-line-height-xs, 1.4);--_icon-size: var(--slotted-control-icon-size-sm, 14px)}[data-ui=side-navigation][data-size=lg]{--_row-height: var(--slotted-control-height-lg, 38px);--_mark: var(--_row-height);--_gap: var(--slotted-control-gap-lg, 8px);--_font-size: var(--slotted-font-size-md, .875rem);--_line-height: var(--slotted-line-height-md, 1.5);--_icon-size: var(--slotted-control-icon-size-lg, 18px);--_description-font-size: var(--slotted-font-size-sm, .8125rem)}[data-ui=side-navigation][data-part=root]{container-name:slotted-side-navigation;container-type:inline-size;display:flex;flex-direction:column;gap:var(--_section-gap);inline-size:100%}[data-ui=side-navigation] [data-part=section]{display:flex;flex-direction:column;min-inline-size:0}[data-ui=side-navigation] [data-part=section-label]{color:var(--_section-color);font-size:var(--_section-font-size);font-weight:var(--slotted-font-weight-semibold, 600);line-height:var(--slotted-line-height-xs, 1.4);margin-block-end:var( --slotted-side-navigation-section-label-gap, var(--slotted-space-2, .25rem) );min-inline-size:0;padding-block:var(--slotted-space-2, .25rem);overflow-wrap:anywhere;padding-inline:calc(var(--_inset) + (var(--_mark) - var(--_icon-size)) / 2)}[data-ui=side-navigation] [data-part=list],[data-ui=side-navigation] [data-part=group]{display:flex;flex-direction:column;gap:var(--_row-gap);list-style:none;margin:0;min-inline-size:0;padding:0}[data-ui=side-navigation] [data-part=item]{align-content:start;display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-rows:auto 0fr;min-inline-size:0;position:relative;transition:grid-template-rows var(--slotted-duration-medium) var(--_easing)}[data-ui=side-navigation] [data-part=item][data-expanded]{grid-template-rows:auto 1fr}[data-ui=side-navigation] [data-part=item]>[data-part=group]{grid-column:1 / -1;grid-row:2;min-block-size:0;overflow:hidden;opacity:0;padding-block-start:0;transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit),padding-block-start var(--slotted-duration-medium) var(--_easing),visibility var(--slotted-duration-medium) step-end;visibility:hidden}[data-ui=side-navigation] [data-part=item][data-expanded]>[data-part=group]{opacity:1;padding-block-start:var(--_row-gap);transition:opacity var(--slotted-duration-short) var(--slotted-easing-enter) var(--slotted-duration-short),padding-block-start var(--slotted-duration-medium) var(--_easing),visibility var(--slotted-duration-medium) step-start;visibility:visible}[data-ui=side-navigation] [data-part=item]>[data-part=group]{padding-inline-start:var(--_indent-step);position:relative}[data-ui=side-navigation] [data-part=item]:has(>:is([data-part=link],[data-part=trigger])>[data-part=icon])>[data-part=group]{padding-inline-start:var(--_indent)}[data-ui=side-navigation][data-guides] [data-part=item]>[data-part=group]:before{background-color:var(--_guide-color);content:\"\";inline-size:var(--_guide-width);inset-block:var(--_row-gap) 0;inset-inline-start:var(--_inset);position:absolute}[data-ui=side-navigation][data-guides] [data-part=item]:has(>:is([data-part=link],[data-part=trigger])>[data-part=icon])>[data-part=group]:before{inset-inline-start:calc(var(--_inset) + var(--_mark) / 2 - var(--_guide-width) / 2)}[data-ui=side-navigation] :is([data-part=link],[data-part=trigger]){align-content:center;align-items:center;appearance:none;background-color:transparent;border:0;border-radius:var(--_radius);box-sizing:border-box;color:inherit;cursor:pointer;display:grid;font:inherit;grid-column:1;grid-row:1;grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-rows:auto auto;margin-block:0;margin-inline:var(--_standoff);min-block-size:var(--_row-height);min-inline-size:0;padding-block:0;padding-inline:calc(var(--_inset) - var(--_standoff));position:relative;text-align:start;text-decoration:none;transition:background-color var(--_duration) var(--_easing),color var(--_duration) var(--_easing)}[data-ui=side-navigation] [data-part=item]:not([data-disabled])>:is([data-part=link],[data-part=trigger]):active{transition-duration:var(--slotted-duration-instant)}[data-ui=side-navigation] [data-part=item]>[data-part=trigger]{grid-column:1 / -1}[data-ui=side-navigation] [data-part=item]:has(>[data-part=link])>[data-part=trigger]{grid-column:2;grid-template-columns:auto;inline-size:var(--_mark);padding-inline:0;place-items:center}[data-ui=side-navigation] [data-part=actions]{align-items:center;align-self:center;column-gap:var(--slotted-space-2, .25rem);display:flex;grid-column:3;grid-row:1;margin-inline-start:var(--slotted-space-2, .25rem);padding-inline-end:var(--slotted-space-2, .25rem)}[data-ui=side-navigation] :is([data-part=link],[data-part=trigger]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(-1 * var(--slotted-focus-ring-offset, 2px))}[data-ui=side-navigation] [data-part=icon]{--slotted-icon-size: var(--_icon-size);block-size:var(--_mark);color:inherit;display:grid;font-size:var(--_icon-size);grid-column:1;grid-row:1;inline-size:var(--_mark);margin-inline-end:var(--_gap);place-items:center;position:relative}[data-ui=side-navigation] [data-part=icon]>svg{block-size:var(--_icon-size);inline-size:var(--_icon-size)}[data-ui=side-navigation] [data-part=label]{grid-column:2;grid-row:1;min-inline-size:0;overflow-wrap:anywhere;unicode-bidi:isolate}[data-ui=side-navigation]:not([data-truncate=none]) [data-part=label]{overflow:hidden;overflow-wrap:normal;text-overflow:ellipsis;white-space:nowrap}[data-ui=side-navigation][data-truncate=middle] [data-part=label]{text-overflow:clip}[data-ui=side-navigation] [data-part=description]{color:var(--_description-color);font-size:var(--_description-font-size);font-weight:var(--slotted-font-weight-regular, 400);grid-column:2;grid-row:2;line-height:var(--slotted-line-height-xs, 1.4);margin-block-start:var(--_description-gap);min-inline-size:0;overflow-wrap:anywhere;unicode-bidi:isolate}[data-ui=side-navigation]:not([data-truncate=none]) [data-part=description]{overflow:hidden;overflow-wrap:normal;text-overflow:ellipsis;white-space:nowrap}[data-ui=side-navigation] :is([data-part=link],[data-part=trigger]):has(>[data-part=description]){padding-block:var(--slotted-space-2, .25rem)}[data-ui=side-navigation] :is([data-part=link],[data-part=trigger]):has(>[data-part=description])>:is([data-part=icon],[data-part=end],[data-part=count],[data-part=indicator]){grid-row:1 / -1}[data-ui=side-navigation] :is([data-part=link],[data-part=trigger]):has(>[data-part=description])>[data-part=label]{align-self:end;line-height:var(--slotted-line-height-xs, 1.4)}[data-ui=side-navigation] :is([data-part=link],[data-part=trigger]):has(>[data-part=description])>[data-part=description]{align-self:start}[data-ui=side-navigation] [data-part=end]{align-items:center;display:flex;grid-column:3;grid-row:1;margin-inline-start:var(--_gap)}[data-ui=side-navigation] [data-part=count]{color:var(--_description-color);font-size:var(--_description-font-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-font-weight-medium, 500);grid-column:3;grid-row:1;line-height:1;margin-inline-start:var(--_gap);min-inline-size:2ch;text-align:end}[data-ui=side-navigation] [data-part=link][data-current]>[data-part=description]{color:var(--_current-description-color)}[data-ui=side-navigation] [data-part=link][data-current]>[data-part=count],[data-ui=side-navigation] [data-part=item][data-current]>[data-part=trigger]>[data-part=count]{color:inherit}[data-ui=side-navigation] [data-part=indicator]{--slotted-icon-size: var(--_icon-size);display:flex;grid-column:4;grid-row:1;margin-inline-start:var(--_gap)}[data-ui=side-navigation] [data-part=indicator]>[data-ui=icon]{transition:rotate var(--slotted-duration-medium) var(--_easing)}[data-ui=side-navigation] [data-part=item]:has(>[data-part=link])>[data-part=trigger]>[data-part=indicator]{grid-column:1;margin-inline-start:0}[data-ui=side-navigation] [data-part=item][data-expanded]>[data-part=trigger]>[data-part=indicator]>[data-ui=icon]{rotate:90deg}[data-ui=side-navigation] [data-part=item][data-expanded]>[data-part=trigger]>[data-part=indicator]>[data-ui=icon]:dir(rtl){rotate:-90deg}@supports (text-box: trim-both cap alphabetic){[data-ui=side-navigation] [data-part=label]{padding-block:calc((var(--_line-height) * 1em - .75em) / 2);text-box:trim-both cap alphabetic}[data-ui=side-navigation] [data-part=description],[data-ui=side-navigation] [data-part=section-label]{padding-block:calc((var(--slotted-line-height-xs, 1.4) * 1em - .75em) / 2);text-box:trim-both cap alphabetic}[data-ui=side-navigation] [data-part=count]{line-height:var(--slotted-line-height-xs, 1.4);padding-block:calc((var(--slotted-line-height-xs, 1.4) * 1em - .75em) / 2);text-box:trim-both cap alphabetic}}[data-ui=side-navigation] [data-part=item]:not([data-disabled])>[data-part=link]:not([data-current]):hover,[data-ui=side-navigation] [data-part=item]:not([data-disabled]):not([data-current])>[data-part=trigger]:enabled:hover{background-color:var(--_hover-background);color:var(--_hover-color)}[data-ui=side-navigation] [data-part=item][data-open]:not([data-current])>[data-part=trigger],[data-ui=side-navigation] [data-part=item]:not([data-disabled])>[data-part=link]:not([data-current]):active,[data-ui=side-navigation] [data-part=item]:not([data-disabled]):not([data-current])>[data-part=trigger]:enabled:active{background-color:var(--_active-background)}[data-ui=side-navigation] [data-part=link][data-current],[data-ui=side-navigation] [data-part=item][data-current]>[data-part=trigger]{background-color:var(--_current-background);box-shadow:inset 0 0 0 var(--_guide-width) var(--_current-edge);color:var(--_current-color);font-weight:var(--slotted-font-weight-medium, 500)}[data-ui=side-navigation] [data-part=item][data-disabled]>:is([data-part=link],[data-part=trigger]),[data-ui=side-navigation] [data-part=trigger]:disabled{color:var(--_disabled-color);cursor:not-allowed}[data-ui=side-navigation] [data-part=item][data-disabled]>[data-part=link]>[data-part=description]{color:var(--_disabled-color)}[data-ui=side-navigation] [data-part=divider]{border:0;border-block-start:var(--_guide-width) solid var(--_guide-color);margin-block:var(--slotted-space-2, .25rem);margin-inline:var(--_inset)}[data-ui=side-navigation] [data-part=skeleton]{align-items:center;display:grid;gap:var(--_gap);grid-template-columns:var(--_mark) minmax(0,1fr);min-block-size:var(--_row-height);padding-inline:var(--_inset)}[data-ui=side-navigation] [data-part=skeleton]>[data-part=icon]{margin-inline:0}[data-ui=side-navigation] [data-part=skeleton]>[data-part=icon]>[data-ui=skeleton]{--slotted-skeleton-block-size: var(--_icon-size);--slotted-skeleton-inline-size: var(--_icon-size)}[data-ui=side-navigation] [data-part=skeleton]>[data-part=label]{display:block;min-inline-size:0;overflow:visible}@container slotted-side-navigation (inline-size < 96px){[data-ui=side-navigation][data-mode=auto] [data-part=label],[data-ui=side-navigation][data-mode=auto] [data-part=description],[data-ui=side-navigation][data-mode=auto] [data-part=end],[data-ui=side-navigation][data-mode=auto] [data-part=count]{block-size:1px;clip-path:inset(50%);inline-size:1px;margin:0;overflow:hidden;position:absolute;white-space:nowrap}[data-ui=side-navigation][data-mode=auto] [data-part=indicator],[data-ui=side-navigation][data-mode=auto] [data-part=actions],[data-ui=side-navigation][data-mode=auto] [data-part=item]:has(>[data-part=link])>[data-part=trigger]{display:none}[data-ui=side-navigation][data-mode=auto] :is([data-part=link],[data-part=trigger]){grid-template-columns:auto;inline-size:var(--_mark);justify-content:center;justify-self:center;padding:0}[data-ui=side-navigation][data-mode=auto] [data-part=icon]{margin:0}[data-ui=side-navigation][data-mode=auto] [data-part=item]{grid-template-rows:auto 0fr}[data-ui=side-navigation][data-mode=auto] [data-part=item]>[data-part=group]{visibility:hidden}[data-ui=side-navigation][data-mode=auto] [data-part=section-label]{block-size:0;border-block-start:var(--_guide-width) solid var(--_guide-color);color:transparent;margin-block:var(--slotted-space-2, .25rem);margin-inline:var(--_inset);overflow:hidden;padding:0}[data-ui=side-navigation][data-mode=auto] [data-part=skeleton]{grid-template-columns:var(--_mark);justify-content:center;padding-inline:0}[data-ui=side-navigation][data-mode=auto] [data-part=skeleton]>:not([data-part=icon]){display:none}[data-ui=side-navigation][data-mode=auto] :is([data-part=link],[data-part=trigger]):has(>:is([data-part=end],[data-part=count]))>[data-part=icon]:after{background-color:var(--_dot-color);block-size:var(--_dot-size);border-radius:var(--slotted-radius-full, 9999px);content:\"\";inline-size:var(--_dot-size);inset-block-start:var(--slotted-space-2, .25rem);inset-inline-end:var(--slotted-space-2, .25rem);position:absolute}}[data-ui=side-navigation][data-mode=compact] [data-part=label],[data-ui=side-navigation][data-mode=compact] [data-part=description],[data-ui=side-navigation][data-mode=compact] [data-part=end],[data-ui=side-navigation][data-mode=compact] [data-part=count]{block-size:1px;clip-path:inset(50%);inline-size:1px;margin:0;overflow:hidden;position:absolute;white-space:nowrap}[data-ui=side-navigation][data-mode=compact] [data-part=indicator],[data-ui=side-navigation][data-mode=compact] [data-part=actions],[data-ui=side-navigation][data-mode=compact] [data-part=item]:has(>[data-part=link])>[data-part=trigger]{display:none}[data-ui=side-navigation][data-mode=compact] :is([data-part=link],[data-part=trigger]){grid-template-columns:auto;inline-size:var(--_mark);justify-content:center;justify-self:center;padding:0}[data-ui=side-navigation][data-mode=compact] [data-part=icon]{margin:0}[data-ui=side-navigation][data-mode=compact] [data-part=item]{grid-template-rows:auto 0fr}[data-ui=side-navigation][data-mode=compact] [data-part=item]>[data-part=group]{visibility:hidden}[data-ui=side-navigation][data-mode=compact] [data-part=section-label]{block-size:0;border-block-start:var(--_guide-width) solid var(--_guide-color);color:transparent;margin-block:var(--slotted-space-2, .25rem);margin-inline:var(--_inset);overflow:hidden;padding:0}[data-ui=side-navigation][data-mode=compact] [data-part=skeleton]{grid-template-columns:var(--_mark);justify-content:center;padding-inline:0}[data-ui=side-navigation][data-mode=compact] [data-part=skeleton]>:not([data-part=icon]){display:none}[data-ui=side-navigation][data-mode=compact] :is([data-part=link],[data-part=trigger]):has(>:is([data-part=end],[data-part=count]))>[data-part=icon]:after{background-color:var(--_dot-color);block-size:var(--_dot-size);border-radius:var(--slotted-radius-full, 9999px);content:\"\";inline-size:var(--_dot-size);inset-block-start:var(--slotted-space-2, .25rem);inset-inline-end:var(--slotted-space-2, .25rem);position:absolute}[data-ui=side-navigation][data-part=flyout]{--_surface: var( --slotted-side-navigation-flyout-surface, var(--slotted-surface-raised, Canvas) );--_border-color: var( --slotted-side-navigation-flyout-border-color, var(--slotted-border-subtle, ButtonBorder) );--_shadow: var(--slotted-side-navigation-flyout-shadow, var(--slotted-shadow-md));--_flyout-radius: var(--slotted-side-navigation-flyout-radius, var(--slotted-radius-lg, 8px));--_measure: var(--slotted-side-navigation-flyout-measure, 16rem);box-sizing:border-box;inline-size:max-content;inset-block-start:0;isolation:isolate;max-inline-size:min(var(--_measure),var(--slotted-positioner-available-width, 100vw));min-inline-size:var(--slotted-side-navigation-flyout-min-measure, 12rem);padding-block:0;padding-inline:var(--slotted-space-2, .25rem);pointer-events:none;position:absolute;z-index:calc(var(--slotted-z-index-popover, 1100) + var(--slotted-layer-depth, 0));opacity:0;--_enter-distance: var(--slotted-space-2, .25rem);translate:0 calc(-1 * var(--_enter-distance));transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit),translate var(--slotted-duration-short) var(--slotted-easing-exit)}[data-ui=side-navigation][data-part=flyout][data-side=top]{translate:0 var(--_enter-distance)}[data-ui=side-navigation][data-part=flyout][data-side=right]{translate:calc(-1 * var(--_enter-distance)) 0}[data-ui=side-navigation][data-part=flyout][data-side=left]{translate:var(--_enter-distance) 0}[data-ui=side-navigation][data-part=flyout][data-open]{opacity:1;translate:0 0;transition:none}[data-ui=side-navigation][data-part=flyout][data-open][data-positioned]{animation:slotted-side-navigation-enter-down var(--slotted-duration-medium) var(--slotted-easing-enter)}[data-ui=side-navigation][data-part=flyout][data-open][data-positioned][data-side=top]{animation-name:slotted-side-navigation-enter-up}[data-ui=side-navigation][data-part=flyout][data-open][data-positioned][data-side=right]{animation-name:slotted-side-navigation-enter-from-start}[data-ui=side-navigation][data-part=flyout][data-open][data-positioned][data-side=left]{animation-name:slotted-side-navigation-enter-from-end}@keyframes slotted-side-navigation-enter-down{0%{opacity:0;translate:0 calc(-1 * var(--_enter-distance))}}@keyframes slotted-side-navigation-enter-up{0%{opacity:0;translate:0 var(--_enter-distance)}}@keyframes slotted-side-navigation-enter-from-start{0%{opacity:0;translate:calc(-1 * var(--_enter-distance)) 0}}@keyframes slotted-side-navigation-enter-from-end{0%{opacity:0;translate:var(--_enter-distance) 0}}@keyframes slotted-side-navigation-fade{0%{opacity:0}}@media(prefers-reduced-motion:reduce){[data-ui=side-navigation][data-part=flyout],[data-ui=side-navigation][data-part=flyout][data-side=top],[data-ui=side-navigation][data-part=flyout][data-side=left],[data-ui=side-navigation][data-part=flyout][data-side=right]{translate:0 0;transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit)}[data-ui=side-navigation][data-part=flyout][data-open][data-positioned],[data-ui=side-navigation][data-part=flyout][data-open][data-positioned][data-side=top],[data-ui=side-navigation][data-part=flyout][data-open][data-positioned][data-side=left],[data-ui=side-navigation][data-part=flyout][data-open][data-positioned][data-side=right]{animation-name:slotted-side-navigation-fade}}[data-ui=side-navigation][data-part=flyout][data-detached]{visibility:hidden}[data-ui=side-navigation][data-part=flyout]>[data-part=group]{background-color:var(--_surface);border:var(--_guide-width) solid var(--_border-color);border-radius:var(--_flyout-radius);box-shadow:var(--_shadow);color:var(--_color);padding:var(--slotted-space-2, .25rem);pointer-events:auto}[data-ui=side-navigation][data-part=flyout]>[data-part=group]>[data-part=item]>[data-part=group]{padding-inline-start:var(--_indent)}@media(forced-colors:active){[data-ui=side-navigation] [data-part=link][data-current],[data-ui=side-navigation] [data-part=item][data-current]>[data-part=trigger]{background-color:Highlight;color:HighlightText;forced-color-adjust:none}[data-ui=side-navigation] [data-part=item][data-disabled]>:is([data-part=link],[data-part=trigger]),[data-ui=side-navigation] [data-part=trigger]:disabled{color:GrayText}[data-ui=side-navigation][data-part=flyout]>[data-part=group]{border-color:CanvasText}}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
329
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlSideNavigation, isStandalone: true, selector: "[slSideNavigation]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, flyout: { classPropertyName: "flyout", publicName: "flyout", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, truncate: { classPropertyName: "truncate", publicName: "truncate", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, autoExpand: { classPropertyName: "autoExpand", publicName: "autoExpand", isSignal: true, isRequired: false, transformFunction: null }, guides: { classPropertyName: "guides", publicName: "guides", isSignal: true, isRequired: false, transformFunction: null }, landmark: { classPropertyName: "landmark", publicName: "landmark", isSignal: true, isRequired: false, transformFunction: null }, compactAt: { classPropertyName: "compactAt", publicName: "compactAt", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", expanded: "expandedChange", flyout: "flyoutChange", valueChangeRequest: "valueChangeRequest", expandedChangeRequest: "expandedChangeRequest", flyoutChangeRequest: "flyoutChangeRequest" }, host: { attributes: { "data-ui": "side-navigation", "data-part": "root" }, listeners: { "keydown": "onKeyDown($event)" }, properties: { "attr.aria-label": "ariaLabel()", "attr.data-mode": "resolvedMode()", "attr.data-size": "resolvedSize()", "attr.data-truncate": "resolvedTruncate()", "attr.data-guides": "resolvedGuides() ? '' : null", "attr.data-compact": "compact() ? '' : null" } }, exportAs: ["slSideNavigation"], ngImport: i0, template: '<ng-content />', isInline: true, styles: ["@layer slotted.components{[data-ui=side-navigation]{--_row-height: var(--slotted-app-shell-row-height, var(--slotted-control-height-md, 34px));--_mark: var(--slotted-app-shell-row-mark, var(--_row-height));--_inset: var(--slotted-app-shell-row-inset, var(--slotted-space-4, .5rem));--_standoff: min(var(--slotted-space-2, .25rem), var(--_inset));--_ring-inset: var(--slotted-app-shell-row-ring-inset, 0px);--_gap: var(--slotted-app-shell-row-gap, var(--slotted-control-gap-md, 8px));--_font-size: var(--slotted-app-shell-row-font-size, var(--slotted-font-size-sm, .8125rem));--_line-height: var(--slotted-app-shell-row-line-height, var(--slotted-line-height-sm, 1.45));--_icon-size: var(--slotted-control-icon-size-md, 16px);--_description-font-size: var(--slotted-font-size-xs, .75rem);--_section-font-size: var(--slotted-font-size-xs, .75rem);--_indent: var(--slotted-side-navigation-indent, calc(var(--_mark) + var(--_gap)));--_indent-step: var(--slotted-side-navigation-indent-step, var(--slotted-space-7, 1.25rem));--_radius: var(--slotted-side-navigation-radius, var(--slotted-radius-md, 6px));--_row-gap: var(--slotted-side-navigation-row-gap, var(--slotted-space-1, .125rem));--_section-gap: var(--slotted-side-navigation-section-gap, var(--slotted-space-5, .75rem));--_guide-width: var(--slotted-border-width-thin, 1px);--_dot-size: var(--slotted-side-navigation-dot-size, var(--slotted-space-3, .375rem));--_color: var(--slotted-side-navigation-color, var(--slotted-text-muted, GrayText));--_hover-color: var(--slotted-side-navigation-hover-color, var(--slotted-text, CanvasText));--_hover-background: var( --slotted-side-navigation-hover-background, var(--slotted-tone-secondary-subtle-hover) );--_active-background: var( --slotted-side-navigation-active-background, var(--slotted-tone-secondary-subtle-active) );--_current-color: var(--slotted-side-navigation-current-color, var(--slotted-tone-accent-text));--_current-background: var( --slotted-side-navigation-current-background, var(--slotted-tone-accent-surface) );--_current-edge: var( --slotted-side-navigation-current-edge, var(--slotted-current-edge, transparent) );--_dot-color: var(--slotted-side-navigation-dot-color, var(--slotted-tone-accent-solid));--_section-color: var( --slotted-side-navigation-section-color, var(--slotted-text-muted, GrayText) );--_description-color: var( --slotted-side-navigation-description-color, var(--slotted-text-muted, GrayText) );--_current-description-color: var( --slotted-side-navigation-current-description-color, var(--slotted-text, CanvasText) );--_description-gap: var( --slotted-side-navigation-description-gap, var(--slotted-space-1, .125rem) );--_guide-color: var( --slotted-side-navigation-guide-color, var(--slotted-border-subtle, ButtonBorder) );--_disabled-color: var(--slotted-disabled-foreground, GrayText);--_duration: var(--slotted-control-transition-duration, var(--slotted-duration-short));--_easing: var(--slotted-control-transition-easing, var(--slotted-easing-standard));box-sizing:border-box;color:var(--_color);font-family:var(--slotted-control-font-family, inherit);font-size:var(--_font-size);line-height:var(--_line-height);min-inline-size:0}[data-ui=side-navigation][data-size=sm]{--_row-height: var(--slotted-control-height-sm, 30px);--_mark: var(--_row-height);--_gap: var(--slotted-control-gap-sm, 6px);--_font-size: var(--slotted-font-size-xs, .75rem);--_line-height: var(--slotted-line-height-xs, 1.4);--_icon-size: var(--slotted-control-icon-size-sm, 14px)}[data-ui=side-navigation][data-size=lg]{--_row-height: var(--slotted-control-height-lg, 38px);--_mark: var(--_row-height);--_gap: var(--slotted-control-gap-lg, 8px);--_font-size: var(--slotted-font-size-md, .875rem);--_line-height: var(--slotted-line-height-md, 1.5);--_icon-size: var(--slotted-control-icon-size-lg, 18px);--_description-font-size: var(--slotted-font-size-sm, .8125rem)}[data-ui=side-navigation][data-part=root]{container-name:slotted-side-navigation;container-type:inline-size;display:flex;flex-direction:column;gap:var(--_section-gap);inline-size:100%}[data-ui=side-navigation] [data-part=section]{display:flex;flex-direction:column;min-inline-size:0}[data-ui=side-navigation] [data-part=section-label]{color:var(--_section-color);font-size:var(--_section-font-size);font-weight:var(--slotted-font-weight-semibold, 600);line-height:var(--slotted-line-height-xs, 1.4);margin-block-end:var( --slotted-side-navigation-section-label-gap, var(--slotted-space-2, .25rem) );min-inline-size:0;padding-block:var(--slotted-space-2, .25rem);overflow-wrap:anywhere;padding-inline:calc(var(--_inset) + (var(--_mark) - var(--_icon-size)) / 2)}[data-ui=side-navigation] [data-part=list],[data-ui=side-navigation] [data-part=group]{display:flex;flex-direction:column;gap:var(--_row-gap);list-style:none;margin:0;min-inline-size:0;padding:0}[data-ui=side-navigation] [data-part=item]{align-content:start;display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-rows:auto 0fr;min-inline-size:0;position:relative;transition:grid-template-rows var(--slotted-duration-medium) var(--_easing)}[data-ui=side-navigation] [data-part=item][data-expanded]{grid-template-rows:auto 1fr}[data-ui=side-navigation] [data-part=item]>[data-part=group]{grid-column:1 / -1;grid-row:2;min-block-size:0;overflow:hidden;opacity:0;padding-block-start:0;transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit),padding-block-start var(--slotted-duration-medium) var(--_easing),visibility var(--slotted-duration-medium) step-end;visibility:hidden}[data-ui=side-navigation] [data-part=item][data-expanded]>[data-part=group]{opacity:1;padding-block-start:var(--_row-gap);transition:opacity var(--slotted-duration-short) var(--slotted-easing-enter) var(--slotted-duration-short),padding-block-start var(--slotted-duration-medium) var(--_easing),visibility var(--slotted-duration-medium) step-start;visibility:visible}[data-ui=side-navigation] [data-part=item]>[data-part=group]{padding-inline-start:var(--_indent-step);position:relative}[data-ui=side-navigation] [data-part=item]:has(>:is([data-part=link],[data-part=trigger])>[data-part=icon])>[data-part=group]{padding-inline-start:var(--_indent)}[data-ui=side-navigation][data-guides] [data-part=item]>[data-part=group]:before{background-color:var(--_guide-color);content:\"\";inline-size:var(--_guide-width);inset-block:var(--_row-gap) 0;inset-inline-start:var(--_inset);position:absolute}[data-ui=side-navigation][data-guides] [data-part=item]:has(>:is([data-part=link],[data-part=trigger])>[data-part=icon])>[data-part=group]:before{inset-inline-start:calc(var(--_inset) + var(--_mark) / 2 - var(--_guide-width) / 2)}[data-ui=side-navigation] :is([data-part=link],[data-part=trigger]){align-content:center;align-items:center;appearance:none;background-color:transparent;border:0;border-radius:var(--_radius);box-sizing:border-box;color:inherit;cursor:pointer;display:grid;font:inherit;grid-column:1;grid-row:1;grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-rows:auto auto;margin-block:0;margin-inline:calc(var(--_standoff) - var(--_ring-inset));min-block-size:var(--_row-height);min-inline-size:0;padding-block:0;padding-inline:calc(var(--_inset) - var(--_standoff) + var(--_ring-inset));position:relative;text-align:start;text-decoration:none;transition:background-color var(--_duration) var(--_easing),color var(--_duration) var(--_easing)}[data-ui=side-navigation] [data-part=item]:not([data-disabled])>:is([data-part=link],[data-part=trigger]):active{transition-duration:var(--slotted-duration-instant)}[data-ui=side-navigation] [data-part=item]>[data-part=trigger]{grid-column:1 / -1}[data-ui=side-navigation] [data-part=item]:has(>[data-part=link])>[data-part=trigger]{grid-column:2;grid-template-columns:auto;inline-size:var(--_mark);padding-inline:0;place-items:center}[data-ui=side-navigation] [data-part=actions]{align-items:center;align-self:center;column-gap:var(--slotted-space-2, .25rem);display:flex;grid-column:3;grid-row:1;margin-inline-start:var(--slotted-space-2, .25rem);padding-inline-end:var(--slotted-space-2, .25rem)}[data-ui=side-navigation] :is([data-part=link],[data-part=trigger]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(-1 * var(--slotted-focus-ring-offset, 2px))}[data-ui=side-navigation] [data-part=icon]{--slotted-icon-size: var(--_icon-size);block-size:var(--_mark);color:inherit;display:grid;font-size:var(--_icon-size);grid-column:1;grid-row:1;inline-size:var(--_mark);margin-inline-end:var(--_gap);place-items:center;position:relative}[data-ui=side-navigation] [data-part=icon]>svg{block-size:var(--_icon-size);inline-size:var(--_icon-size)}[data-ui=side-navigation] [data-part=label]{grid-column:2;grid-row:1;min-inline-size:0;overflow-wrap:anywhere;unicode-bidi:isolate}[data-ui=side-navigation]:not([data-truncate=none]) [data-part=label]{overflow:hidden;overflow-wrap:normal;text-overflow:ellipsis;white-space:nowrap}[data-ui=side-navigation][data-truncate=middle] [data-part=label]{text-overflow:clip}[data-ui=side-navigation] [data-part=description]{color:var(--_description-color);font-size:var(--_description-font-size);font-weight:var(--slotted-font-weight-regular, 400);grid-column:2;grid-row:2;line-height:var(--slotted-line-height-xs, 1.4);margin-block-start:var(--_description-gap);min-inline-size:0;overflow-wrap:anywhere;unicode-bidi:isolate}[data-ui=side-navigation]:not([data-truncate=none]) [data-part=description]{overflow:hidden;overflow-wrap:normal;text-overflow:ellipsis;white-space:nowrap}[data-ui=side-navigation] :is([data-part=link],[data-part=trigger]):has(>[data-part=description]){padding-block:var(--slotted-space-2, .25rem)}[data-ui=side-navigation] :is([data-part=link],[data-part=trigger]):has(>[data-part=description])>:is([data-part=icon],[data-part=end],[data-part=count],[data-part=indicator]){grid-row:1 / -1}[data-ui=side-navigation] :is([data-part=link],[data-part=trigger]):has(>[data-part=description])>[data-part=label]{align-self:end;line-height:var(--slotted-line-height-xs, 1.4)}[data-ui=side-navigation] :is([data-part=link],[data-part=trigger]):has(>[data-part=description])>[data-part=description]{align-self:start}[data-ui=side-navigation] [data-part=end]{align-items:center;display:flex;grid-column:3;grid-row:1;margin-inline-start:var(--_gap)}[data-ui=side-navigation] [data-part=count]{color:var(--_description-color);font-size:var(--_description-font-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-font-weight-medium, 500);grid-column:3;grid-row:1;line-height:1;margin-inline-start:var(--_gap);min-inline-size:2ch;text-align:end}[data-ui=side-navigation] [data-part=link][data-current]>[data-part=description]{color:var(--_current-description-color)}[data-ui=side-navigation] [data-part=link][data-current]>[data-part=count],[data-ui=side-navigation] [data-part=item][data-current]>[data-part=trigger]>[data-part=count]{color:inherit}[data-ui=side-navigation] [data-part=indicator]{--slotted-icon-size: var(--_icon-size);display:flex;grid-column:4;grid-row:1;margin-inline-start:var(--_gap)}[data-ui=side-navigation] [data-part=indicator]>[data-ui=icon]{transition:rotate var(--slotted-duration-medium) var(--_easing)}[data-ui=side-navigation] [data-part=item]:has(>[data-part=link])>[data-part=trigger]>[data-part=indicator]{grid-column:1;margin-inline-start:0}[data-ui=side-navigation] [data-part=item][data-expanded]>[data-part=trigger]>[data-part=indicator]>[data-ui=icon]{rotate:90deg}[data-ui=side-navigation] [data-part=item][data-expanded]>[data-part=trigger]>[data-part=indicator]>[data-ui=icon]:dir(rtl){rotate:-90deg}@supports (text-box: trim-both cap alphabetic){[data-ui=side-navigation] [data-part=label]{padding-block:calc((var(--_line-height) * 1em - .75em) / 2);text-box:trim-both cap alphabetic}[data-ui=side-navigation] [data-part=description],[data-ui=side-navigation] [data-part=section-label]{padding-block:calc((var(--slotted-line-height-xs, 1.4) * 1em - .75em) / 2);text-box:trim-both cap alphabetic}[data-ui=side-navigation] [data-part=count]{line-height:var(--slotted-line-height-xs, 1.4);padding-block:calc((var(--slotted-line-height-xs, 1.4) * 1em - .75em) / 2);text-box:trim-both cap alphabetic}}[data-ui=side-navigation] [data-part=item]:not([data-disabled])>[data-part=link]:not([data-current]):hover,[data-ui=side-navigation] [data-part=item]:not([data-disabled]):not([data-current])>[data-part=trigger]:enabled:hover{background-color:var(--_hover-background);color:var(--_hover-color)}[data-ui=side-navigation] [data-part=item][data-open]:not([data-current])>[data-part=trigger],[data-ui=side-navigation] [data-part=item]:not([data-disabled])>[data-part=link]:not([data-current]):active,[data-ui=side-navigation] [data-part=item]:not([data-disabled]):not([data-current])>[data-part=trigger]:enabled:active{background-color:var(--_active-background)}[data-ui=side-navigation] [data-part=link][data-current],[data-ui=side-navigation] [data-part=item][data-current]>[data-part=trigger]{background-color:var(--_current-background);box-shadow:inset 0 0 0 var(--_guide-width) var(--_current-edge);color:var(--_current-color);font-weight:var(--slotted-font-weight-medium, 500)}[data-ui=side-navigation] [data-part=item][data-disabled]>:is([data-part=link],[data-part=trigger]),[data-ui=side-navigation] [data-part=trigger]:disabled{color:var(--_disabled-color);cursor:not-allowed}[data-ui=side-navigation] [data-part=item][data-disabled]>[data-part=link]>[data-part=description]{color:var(--_disabled-color)}[data-ui=side-navigation] [data-part=divider]{border:0;border-block-start:var(--_guide-width) solid var(--_guide-color);margin-block:var(--slotted-space-2, .25rem);margin-inline:var(--_inset)}[data-ui=side-navigation] [data-part=skeleton]{align-items:center;display:grid;gap:var(--_gap);grid-template-columns:var(--_mark) minmax(0,1fr);min-block-size:var(--_row-height);padding-inline:var(--_inset)}[data-ui=side-navigation] [data-part=skeleton]>[data-part=icon]{margin-inline:0}[data-ui=side-navigation] [data-part=skeleton]>[data-part=icon]>[data-ui=skeleton]{--slotted-skeleton-block-size: var(--_icon-size);--slotted-skeleton-inline-size: var(--_icon-size)}[data-ui=side-navigation] [data-part=skeleton]>[data-part=label]{display:block;min-inline-size:0;overflow:visible}@container slotted-side-navigation (inline-size < 96px){[data-ui=side-navigation][data-mode=auto] [data-part=label],[data-ui=side-navigation][data-mode=auto] [data-part=description],[data-ui=side-navigation][data-mode=auto] [data-part=end],[data-ui=side-navigation][data-mode=auto] [data-part=count]{block-size:1px;clip-path:inset(50%);inline-size:1px;margin:0;overflow:hidden;position:absolute;white-space:nowrap}[data-ui=side-navigation][data-mode=auto] [data-part=indicator],[data-ui=side-navigation][data-mode=auto] [data-part=actions],[data-ui=side-navigation][data-mode=auto] [data-part=item]:has(>[data-part=link])>[data-part=trigger]{display:none}[data-ui=side-navigation][data-mode=auto] :is([data-part=link],[data-part=trigger]){grid-template-columns:auto;inline-size:var(--_mark);justify-content:center;justify-self:center;padding:0}[data-ui=side-navigation][data-mode=auto] [data-part=icon]{margin:0}[data-ui=side-navigation][data-mode=auto] [data-part=item]{grid-template-rows:auto 0fr}[data-ui=side-navigation][data-mode=auto] [data-part=item]>[data-part=group]{visibility:hidden}[data-ui=side-navigation][data-mode=auto] [data-part=section-label]{block-size:0;border-block-start:var(--_guide-width) solid var(--_guide-color);color:transparent;margin-block:var(--slotted-space-2, .25rem);margin-inline:var(--_inset);overflow:hidden;padding:0}[data-ui=side-navigation][data-mode=auto] [data-part=skeleton]{grid-template-columns:var(--_mark);justify-content:center;padding-inline:0}[data-ui=side-navigation][data-mode=auto] [data-part=skeleton]>:not([data-part=icon]){display:none}[data-ui=side-navigation][data-mode=auto] :is([data-part=link],[data-part=trigger]):has(>:is([data-part=end],[data-part=count]))>[data-part=icon]:after{background-color:var(--_dot-color);block-size:var(--_dot-size);border-radius:var(--slotted-radius-full, 9999px);content:\"\";inline-size:var(--_dot-size);inset-block-start:var(--slotted-space-2, .25rem);inset-inline-end:var(--slotted-space-2, .25rem);position:absolute}}[data-ui=side-navigation][data-mode=compact] [data-part=label],[data-ui=side-navigation][data-mode=compact] [data-part=description],[data-ui=side-navigation][data-mode=compact] [data-part=end],[data-ui=side-navigation][data-mode=compact] [data-part=count]{block-size:1px;clip-path:inset(50%);inline-size:1px;margin:0;overflow:hidden;position:absolute;white-space:nowrap}[data-ui=side-navigation][data-mode=compact] [data-part=indicator],[data-ui=side-navigation][data-mode=compact] [data-part=actions],[data-ui=side-navigation][data-mode=compact] [data-part=item]:has(>[data-part=link])>[data-part=trigger]{display:none}[data-ui=side-navigation][data-mode=compact] :is([data-part=link],[data-part=trigger]){grid-template-columns:auto;inline-size:var(--_mark);justify-content:center;justify-self:center;padding:0}[data-ui=side-navigation][data-mode=compact] [data-part=icon]{margin:0}[data-ui=side-navigation][data-mode=compact] [data-part=item]{grid-template-rows:auto 0fr}[data-ui=side-navigation][data-mode=compact] [data-part=item]>[data-part=group]{visibility:hidden}[data-ui=side-navigation][data-mode=compact] [data-part=section-label]{block-size:0;border-block-start:var(--_guide-width) solid var(--_guide-color);color:transparent;margin-block:var(--slotted-space-2, .25rem);margin-inline:var(--_inset);overflow:hidden;padding:0}[data-ui=side-navigation][data-mode=compact] [data-part=skeleton]{grid-template-columns:var(--_mark);justify-content:center;padding-inline:0}[data-ui=side-navigation][data-mode=compact] [data-part=skeleton]>:not([data-part=icon]){display:none}[data-ui=side-navigation][data-mode=compact] :is([data-part=link],[data-part=trigger]):has(>:is([data-part=end],[data-part=count]))>[data-part=icon]:after{background-color:var(--_dot-color);block-size:var(--_dot-size);border-radius:var(--slotted-radius-full, 9999px);content:\"\";inline-size:var(--_dot-size);inset-block-start:var(--slotted-space-2, .25rem);inset-inline-end:var(--slotted-space-2, .25rem);position:absolute}[data-ui=side-navigation][data-part=flyout]{--_surface: var( --slotted-side-navigation-flyout-surface, var(--slotted-surface-raised, Canvas) );--_border-color: var( --slotted-side-navigation-flyout-border-color, var(--slotted-border-subtle, ButtonBorder) );--_shadow: var(--slotted-side-navigation-flyout-shadow, var(--slotted-shadow-md));--_flyout-radius: var(--slotted-side-navigation-flyout-radius, var(--slotted-radius-lg, 8px));--_measure: var(--slotted-side-navigation-flyout-measure, 16rem);box-sizing:border-box;inline-size:max-content;inset-block-start:0;isolation:isolate;max-inline-size:min(var(--_measure),var(--slotted-positioner-available-width, 100vw));min-inline-size:var(--slotted-side-navigation-flyout-min-measure, 12rem);padding-block:0;padding-inline:var(--slotted-space-2, .25rem);pointer-events:none;position:absolute;z-index:calc(var(--slotted-z-index-popover, 1100) + var(--slotted-layer-depth, 0));opacity:0;--_enter-distance: var(--slotted-space-2, .25rem);translate:0 calc(-1 * var(--_enter-distance));transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit),translate var(--slotted-duration-short) var(--slotted-easing-exit)}[data-ui=side-navigation][data-part=flyout][data-side=top]{translate:0 var(--_enter-distance)}[data-ui=side-navigation][data-part=flyout][data-side=right]{translate:calc(-1 * var(--_enter-distance)) 0}[data-ui=side-navigation][data-part=flyout][data-side=left]{translate:var(--_enter-distance) 0}[data-ui=side-navigation][data-part=flyout][data-open]{opacity:1;translate:0 0;transition:none}[data-ui=side-navigation][data-part=flyout][data-open][data-positioned]{animation:slotted-side-navigation-enter-down var(--slotted-duration-medium) var(--slotted-easing-enter)}[data-ui=side-navigation][data-part=flyout][data-open][data-positioned][data-side=top]{animation-name:slotted-side-navigation-enter-up}[data-ui=side-navigation][data-part=flyout][data-open][data-positioned][data-side=right]{animation-name:slotted-side-navigation-enter-from-start}[data-ui=side-navigation][data-part=flyout][data-open][data-positioned][data-side=left]{animation-name:slotted-side-navigation-enter-from-end}@keyframes slotted-side-navigation-enter-down{0%{opacity:0;translate:0 calc(-1 * var(--_enter-distance))}}@keyframes slotted-side-navigation-enter-up{0%{opacity:0;translate:0 var(--_enter-distance)}}@keyframes slotted-side-navigation-enter-from-start{0%{opacity:0;translate:calc(-1 * var(--_enter-distance)) 0}}@keyframes slotted-side-navigation-enter-from-end{0%{opacity:0;translate:var(--_enter-distance) 0}}@keyframes slotted-side-navigation-fade{0%{opacity:0}}@media(prefers-reduced-motion:reduce){[data-ui=side-navigation][data-part=flyout],[data-ui=side-navigation][data-part=flyout][data-side=top],[data-ui=side-navigation][data-part=flyout][data-side=left],[data-ui=side-navigation][data-part=flyout][data-side=right]{translate:0 0;transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit)}[data-ui=side-navigation][data-part=flyout][data-open][data-positioned],[data-ui=side-navigation][data-part=flyout][data-open][data-positioned][data-side=top],[data-ui=side-navigation][data-part=flyout][data-open][data-positioned][data-side=left],[data-ui=side-navigation][data-part=flyout][data-open][data-positioned][data-side=right]{animation-name:slotted-side-navigation-fade}}[data-ui=side-navigation][data-part=flyout][data-detached]{visibility:hidden}[data-ui=side-navigation][data-part=flyout]>[data-part=group]{background-color:var(--_surface);border:var(--_guide-width) solid var(--_border-color);border-radius:var(--_flyout-radius);box-shadow:var(--_shadow);color:var(--_color);padding:var(--slotted-space-2, .25rem);pointer-events:auto}[data-ui=side-navigation][data-part=flyout]>[data-part=group]>[data-part=item]>[data-part=group]{padding-inline-start:var(--_indent)}@media(forced-colors:active){[data-ui=side-navigation] [data-part=link][data-current],[data-ui=side-navigation] [data-part=item][data-current]>[data-part=trigger]{background-color:Highlight;color:HighlightText;forced-color-adjust:none}[data-ui=side-navigation] [data-part=item][data-disabled]>:is([data-part=link],[data-part=trigger]),[data-ui=side-navigation] [data-part=trigger]:disabled{color:GrayText}[data-ui=side-navigation][data-part=flyout]>[data-part=group]{border-color:CanvasText}}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
330
330
|
}
|
|
331
331
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlSideNavigation, decorators: [{
|
|
332
332
|
type: Component,
|
|
@@ -340,7 +340,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
340
340
|
'[attr.data-guides]': "resolvedGuides() ? '' : null",
|
|
341
341
|
'[attr.data-compact]': "compact() ? '' : null",
|
|
342
342
|
'(keydown)': 'onKeyDown($event)',
|
|
343
|
-
}, styles: ["@layer slotted.components{[data-ui=side-navigation]{--_row-height: var(--slotted-app-shell-row-height, var(--slotted-control-height-md, 34px));--_mark: var(--slotted-app-shell-row-mark, var(--_row-height));--_inset: var(--slotted-app-shell-row-inset, var(--slotted-space-4, .5rem));--_standoff: min(var(--slotted-space-2, .25rem), var(--_inset));--_gap: var(--slotted-app-shell-row-gap, var(--slotted-control-gap-md, 8px));--_font-size: var(--slotted-app-shell-row-font-size, var(--slotted-font-size-sm, .8125rem));--_line-height: var(--slotted-app-shell-row-line-height, var(--slotted-line-height-sm, 1.45));--_icon-size: var(--slotted-control-icon-size-md, 16px);--_description-font-size: var(--slotted-font-size-xs, .75rem);--_section-font-size: var(--slotted-font-size-xs, .75rem);--_indent: var(--slotted-side-navigation-indent, calc(var(--_mark) + var(--_gap)));--_indent-step: var(--slotted-side-navigation-indent-step, var(--slotted-space-7, 1.25rem));--_radius: var(--slotted-side-navigation-radius, var(--slotted-radius-md, 6px));--_row-gap: var(--slotted-side-navigation-row-gap, var(--slotted-space-1, .125rem));--_section-gap: var(--slotted-side-navigation-section-gap, var(--slotted-space-5, .75rem));--_guide-width: var(--slotted-border-width-thin, 1px);--_dot-size: var(--slotted-side-navigation-dot-size, var(--slotted-space-3, .375rem));--_color: var(--slotted-side-navigation-color, var(--slotted-text-muted, GrayText));--_hover-color: var(--slotted-side-navigation-hover-color, var(--slotted-text, CanvasText));--_hover-background: var( --slotted-side-navigation-hover-background, var(--slotted-tone-secondary-subtle-hover) );--_active-background: var( --slotted-side-navigation-active-background, var(--slotted-tone-secondary-subtle-active) );--_current-color: var(--slotted-side-navigation-current-color, var(--slotted-tone-accent-text));--_current-background: var( --slotted-side-navigation-current-background, var(--slotted-tone-accent-surface) );--_current-edge: var( --slotted-side-navigation-current-edge, var(--slotted-current-edge, transparent) );--_dot-color: var(--slotted-side-navigation-dot-color, var(--slotted-tone-accent-solid));--_section-color: var( --slotted-side-navigation-section-color, var(--slotted-text-muted, GrayText) );--_description-color: var( --slotted-side-navigation-description-color, var(--slotted-text-muted, GrayText) );--_current-description-color: var( --slotted-side-navigation-current-description-color, var(--slotted-text, CanvasText) );--_description-gap: var( --slotted-side-navigation-description-gap, var(--slotted-space-1, .125rem) );--_guide-color: var( --slotted-side-navigation-guide-color, var(--slotted-border-subtle, ButtonBorder) );--_disabled-color: var(--slotted-disabled-foreground, GrayText);--_duration: var(--slotted-control-transition-duration, var(--slotted-duration-short));--_easing: var(--slotted-control-transition-easing, var(--slotted-easing-standard));box-sizing:border-box;color:var(--_color);font-family:var(--slotted-control-font-family, inherit);font-size:var(--_font-size);line-height:var(--_line-height);min-inline-size:0}[data-ui=side-navigation][data-size=sm]{--_row-height: var(--slotted-control-height-sm, 30px);--_mark: var(--_row-height);--_gap: var(--slotted-control-gap-sm, 6px);--_font-size: var(--slotted-font-size-xs, .75rem);--_line-height: var(--slotted-line-height-xs, 1.4);--_icon-size: var(--slotted-control-icon-size-sm, 14px)}[data-ui=side-navigation][data-size=lg]{--_row-height: var(--slotted-control-height-lg, 38px);--_mark: var(--_row-height);--_gap: var(--slotted-control-gap-lg, 8px);--_font-size: var(--slotted-font-size-md, .875rem);--_line-height: var(--slotted-line-height-md, 1.5);--_icon-size: var(--slotted-control-icon-size-lg, 18px);--_description-font-size: var(--slotted-font-size-sm, .8125rem)}[data-ui=side-navigation][data-part=root]{container-name:slotted-side-navigation;container-type:inline-size;display:flex;flex-direction:column;gap:var(--_section-gap);inline-size:100%}[data-ui=side-navigation] [data-part=section]{display:flex;flex-direction:column;min-inline-size:0}[data-ui=side-navigation] [data-part=section-label]{color:var(--_section-color);font-size:var(--_section-font-size);font-weight:var(--slotted-font-weight-semibold, 600);line-height:var(--slotted-line-height-xs, 1.4);margin-block-end:var( --slotted-side-navigation-section-label-gap, var(--slotted-space-2, .25rem) );min-inline-size:0;padding-block:var(--slotted-space-2, .25rem);overflow-wrap:anywhere;padding-inline:calc(var(--_inset) + (var(--_mark) - var(--_icon-size)) / 2)}[data-ui=side-navigation] [data-part=list],[data-ui=side-navigation] [data-part=group]{display:flex;flex-direction:column;gap:var(--_row-gap);list-style:none;margin:0;min-inline-size:0;padding:0}[data-ui=side-navigation] [data-part=item]{align-content:start;display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-rows:auto 0fr;min-inline-size:0;position:relative;transition:grid-template-rows var(--slotted-duration-medium) var(--_easing)}[data-ui=side-navigation] [data-part=item][data-expanded]{grid-template-rows:auto 1fr}[data-ui=side-navigation] [data-part=item]>[data-part=group]{grid-column:1 / -1;grid-row:2;min-block-size:0;overflow:hidden;opacity:0;padding-block-start:0;transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit),padding-block-start var(--slotted-duration-medium) var(--_easing),visibility var(--slotted-duration-medium) step-end;visibility:hidden}[data-ui=side-navigation] [data-part=item][data-expanded]>[data-part=group]{opacity:1;padding-block-start:var(--_row-gap);transition:opacity var(--slotted-duration-short) var(--slotted-easing-enter) var(--slotted-duration-short),padding-block-start var(--slotted-duration-medium) var(--_easing),visibility var(--slotted-duration-medium) step-start;visibility:visible}[data-ui=side-navigation] [data-part=item]>[data-part=group]{padding-inline-start:var(--_indent-step);position:relative}[data-ui=side-navigation] [data-part=item]:has(>:is([data-part=link],[data-part=trigger])>[data-part=icon])>[data-part=group]{padding-inline-start:var(--_indent)}[data-ui=side-navigation][data-guides] [data-part=item]>[data-part=group]:before{background-color:var(--_guide-color);content:\"\";inline-size:var(--_guide-width);inset-block:var(--_row-gap) 0;inset-inline-start:var(--_inset);position:absolute}[data-ui=side-navigation][data-guides] [data-part=item]:has(>:is([data-part=link],[data-part=trigger])>[data-part=icon])>[data-part=group]:before{inset-inline-start:calc(var(--_inset) + var(--_mark) / 2 - var(--_guide-width) / 2)}[data-ui=side-navigation] :is([data-part=link],[data-part=trigger]){align-content:center;align-items:center;appearance:none;background-color:transparent;border:0;border-radius:var(--_radius);box-sizing:border-box;color:inherit;cursor:pointer;display:grid;font:inherit;grid-column:1;grid-row:1;grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-rows:auto auto;margin-block:0;margin-inline:var(--_standoff);min-block-size:var(--_row-height);min-inline-size:0;padding-block:0;padding-inline:calc(var(--_inset) - var(--_standoff));position:relative;text-align:start;text-decoration:none;transition:background-color var(--_duration) var(--_easing),color var(--_duration) var(--_easing)}[data-ui=side-navigation] [data-part=item]:not([data-disabled])>:is([data-part=link],[data-part=trigger]):active{transition-duration:var(--slotted-duration-instant)}[data-ui=side-navigation] [data-part=item]>[data-part=trigger]{grid-column:1 / -1}[data-ui=side-navigation] [data-part=item]:has(>[data-part=link])>[data-part=trigger]{grid-column:2;grid-template-columns:auto;inline-size:var(--_mark);padding-inline:0;place-items:center}[data-ui=side-navigation] [data-part=actions]{align-items:center;align-self:center;column-gap:var(--slotted-space-2, .25rem);display:flex;grid-column:3;grid-row:1;margin-inline-start:var(--slotted-space-2, .25rem);padding-inline-end:var(--slotted-space-2, .25rem)}[data-ui=side-navigation] :is([data-part=link],[data-part=trigger]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(-1 * var(--slotted-focus-ring-offset, 2px))}[data-ui=side-navigation] [data-part=icon]{--slotted-icon-size: var(--_icon-size);block-size:var(--_mark);color:inherit;display:grid;font-size:var(--_icon-size);grid-column:1;grid-row:1;inline-size:var(--_mark);margin-inline-end:var(--_gap);place-items:center;position:relative}[data-ui=side-navigation] [data-part=icon]>svg{block-size:var(--_icon-size);inline-size:var(--_icon-size)}[data-ui=side-navigation] [data-part=label]{grid-column:2;grid-row:1;min-inline-size:0;overflow-wrap:anywhere;unicode-bidi:isolate}[data-ui=side-navigation]:not([data-truncate=none]) [data-part=label]{overflow:hidden;overflow-wrap:normal;text-overflow:ellipsis;white-space:nowrap}[data-ui=side-navigation][data-truncate=middle] [data-part=label]{text-overflow:clip}[data-ui=side-navigation] [data-part=description]{color:var(--_description-color);font-size:var(--_description-font-size);font-weight:var(--slotted-font-weight-regular, 400);grid-column:2;grid-row:2;line-height:var(--slotted-line-height-xs, 1.4);margin-block-start:var(--_description-gap);min-inline-size:0;overflow-wrap:anywhere;unicode-bidi:isolate}[data-ui=side-navigation]:not([data-truncate=none]) [data-part=description]{overflow:hidden;overflow-wrap:normal;text-overflow:ellipsis;white-space:nowrap}[data-ui=side-navigation] :is([data-part=link],[data-part=trigger]):has(>[data-part=description]){padding-block:var(--slotted-space-2, .25rem)}[data-ui=side-navigation] :is([data-part=link],[data-part=trigger]):has(>[data-part=description])>:is([data-part=icon],[data-part=end],[data-part=count],[data-part=indicator]){grid-row:1 / -1}[data-ui=side-navigation] :is([data-part=link],[data-part=trigger]):has(>[data-part=description])>[data-part=label]{align-self:end;line-height:var(--slotted-line-height-xs, 1.4)}[data-ui=side-navigation] :is([data-part=link],[data-part=trigger]):has(>[data-part=description])>[data-part=description]{align-self:start}[data-ui=side-navigation] [data-part=end]{align-items:center;display:flex;grid-column:3;grid-row:1;margin-inline-start:var(--_gap)}[data-ui=side-navigation] [data-part=count]{color:var(--_description-color);font-size:var(--_description-font-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-font-weight-medium, 500);grid-column:3;grid-row:1;line-height:1;margin-inline-start:var(--_gap);min-inline-size:2ch;text-align:end}[data-ui=side-navigation] [data-part=link][data-current]>[data-part=description]{color:var(--_current-description-color)}[data-ui=side-navigation] [data-part=link][data-current]>[data-part=count],[data-ui=side-navigation] [data-part=item][data-current]>[data-part=trigger]>[data-part=count]{color:inherit}[data-ui=side-navigation] [data-part=indicator]{--slotted-icon-size: var(--_icon-size);display:flex;grid-column:4;grid-row:1;margin-inline-start:var(--_gap)}[data-ui=side-navigation] [data-part=indicator]>[data-ui=icon]{transition:rotate var(--slotted-duration-medium) var(--_easing)}[data-ui=side-navigation] [data-part=item]:has(>[data-part=link])>[data-part=trigger]>[data-part=indicator]{grid-column:1;margin-inline-start:0}[data-ui=side-navigation] [data-part=item][data-expanded]>[data-part=trigger]>[data-part=indicator]>[data-ui=icon]{rotate:90deg}[data-ui=side-navigation] [data-part=item][data-expanded]>[data-part=trigger]>[data-part=indicator]>[data-ui=icon]:dir(rtl){rotate:-90deg}@supports (text-box: trim-both cap alphabetic){[data-ui=side-navigation] [data-part=label]{padding-block:calc((var(--_line-height) * 1em - .75em) / 2);text-box:trim-both cap alphabetic}[data-ui=side-navigation] [data-part=description],[data-ui=side-navigation] [data-part=section-label]{padding-block:calc((var(--slotted-line-height-xs, 1.4) * 1em - .75em) / 2);text-box:trim-both cap alphabetic}[data-ui=side-navigation] [data-part=count]{line-height:var(--slotted-line-height-xs, 1.4);padding-block:calc((var(--slotted-line-height-xs, 1.4) * 1em - .75em) / 2);text-box:trim-both cap alphabetic}}[data-ui=side-navigation] [data-part=item]:not([data-disabled])>[data-part=link]:not([data-current]):hover,[data-ui=side-navigation] [data-part=item]:not([data-disabled]):not([data-current])>[data-part=trigger]:enabled:hover{background-color:var(--_hover-background);color:var(--_hover-color)}[data-ui=side-navigation] [data-part=item][data-open]:not([data-current])>[data-part=trigger],[data-ui=side-navigation] [data-part=item]:not([data-disabled])>[data-part=link]:not([data-current]):active,[data-ui=side-navigation] [data-part=item]:not([data-disabled]):not([data-current])>[data-part=trigger]:enabled:active{background-color:var(--_active-background)}[data-ui=side-navigation] [data-part=link][data-current],[data-ui=side-navigation] [data-part=item][data-current]>[data-part=trigger]{background-color:var(--_current-background);box-shadow:inset 0 0 0 var(--_guide-width) var(--_current-edge);color:var(--_current-color);font-weight:var(--slotted-font-weight-medium, 500)}[data-ui=side-navigation] [data-part=item][data-disabled]>:is([data-part=link],[data-part=trigger]),[data-ui=side-navigation] [data-part=trigger]:disabled{color:var(--_disabled-color);cursor:not-allowed}[data-ui=side-navigation] [data-part=item][data-disabled]>[data-part=link]>[data-part=description]{color:var(--_disabled-color)}[data-ui=side-navigation] [data-part=divider]{border:0;border-block-start:var(--_guide-width) solid var(--_guide-color);margin-block:var(--slotted-space-2, .25rem);margin-inline:var(--_inset)}[data-ui=side-navigation] [data-part=skeleton]{align-items:center;display:grid;gap:var(--_gap);grid-template-columns:var(--_mark) minmax(0,1fr);min-block-size:var(--_row-height);padding-inline:var(--_inset)}[data-ui=side-navigation] [data-part=skeleton]>[data-part=icon]{margin-inline:0}[data-ui=side-navigation] [data-part=skeleton]>[data-part=icon]>[data-ui=skeleton]{--slotted-skeleton-block-size: var(--_icon-size);--slotted-skeleton-inline-size: var(--_icon-size)}[data-ui=side-navigation] [data-part=skeleton]>[data-part=label]{display:block;min-inline-size:0;overflow:visible}@container slotted-side-navigation (inline-size < 96px){[data-ui=side-navigation][data-mode=auto] [data-part=label],[data-ui=side-navigation][data-mode=auto] [data-part=description],[data-ui=side-navigation][data-mode=auto] [data-part=end],[data-ui=side-navigation][data-mode=auto] [data-part=count]{block-size:1px;clip-path:inset(50%);inline-size:1px;margin:0;overflow:hidden;position:absolute;white-space:nowrap}[data-ui=side-navigation][data-mode=auto] [data-part=indicator],[data-ui=side-navigation][data-mode=auto] [data-part=actions],[data-ui=side-navigation][data-mode=auto] [data-part=item]:has(>[data-part=link])>[data-part=trigger]{display:none}[data-ui=side-navigation][data-mode=auto] :is([data-part=link],[data-part=trigger]){grid-template-columns:auto;inline-size:var(--_mark);justify-content:center;justify-self:center;padding:0}[data-ui=side-navigation][data-mode=auto] [data-part=icon]{margin:0}[data-ui=side-navigation][data-mode=auto] [data-part=item]{grid-template-rows:auto 0fr}[data-ui=side-navigation][data-mode=auto] [data-part=item]>[data-part=group]{visibility:hidden}[data-ui=side-navigation][data-mode=auto] [data-part=section-label]{block-size:0;border-block-start:var(--_guide-width) solid var(--_guide-color);color:transparent;margin-block:var(--slotted-space-2, .25rem);margin-inline:var(--_inset);overflow:hidden;padding:0}[data-ui=side-navigation][data-mode=auto] [data-part=skeleton]{grid-template-columns:var(--_mark);justify-content:center;padding-inline:0}[data-ui=side-navigation][data-mode=auto] [data-part=skeleton]>:not([data-part=icon]){display:none}[data-ui=side-navigation][data-mode=auto] :is([data-part=link],[data-part=trigger]):has(>:is([data-part=end],[data-part=count]))>[data-part=icon]:after{background-color:var(--_dot-color);block-size:var(--_dot-size);border-radius:var(--slotted-radius-full, 9999px);content:\"\";inline-size:var(--_dot-size);inset-block-start:var(--slotted-space-2, .25rem);inset-inline-end:var(--slotted-space-2, .25rem);position:absolute}}[data-ui=side-navigation][data-mode=compact] [data-part=label],[data-ui=side-navigation][data-mode=compact] [data-part=description],[data-ui=side-navigation][data-mode=compact] [data-part=end],[data-ui=side-navigation][data-mode=compact] [data-part=count]{block-size:1px;clip-path:inset(50%);inline-size:1px;margin:0;overflow:hidden;position:absolute;white-space:nowrap}[data-ui=side-navigation][data-mode=compact] [data-part=indicator],[data-ui=side-navigation][data-mode=compact] [data-part=actions],[data-ui=side-navigation][data-mode=compact] [data-part=item]:has(>[data-part=link])>[data-part=trigger]{display:none}[data-ui=side-navigation][data-mode=compact] :is([data-part=link],[data-part=trigger]){grid-template-columns:auto;inline-size:var(--_mark);justify-content:center;justify-self:center;padding:0}[data-ui=side-navigation][data-mode=compact] [data-part=icon]{margin:0}[data-ui=side-navigation][data-mode=compact] [data-part=item]{grid-template-rows:auto 0fr}[data-ui=side-navigation][data-mode=compact] [data-part=item]>[data-part=group]{visibility:hidden}[data-ui=side-navigation][data-mode=compact] [data-part=section-label]{block-size:0;border-block-start:var(--_guide-width) solid var(--_guide-color);color:transparent;margin-block:var(--slotted-space-2, .25rem);margin-inline:var(--_inset);overflow:hidden;padding:0}[data-ui=side-navigation][data-mode=compact] [data-part=skeleton]{grid-template-columns:var(--_mark);justify-content:center;padding-inline:0}[data-ui=side-navigation][data-mode=compact] [data-part=skeleton]>:not([data-part=icon]){display:none}[data-ui=side-navigation][data-mode=compact] :is([data-part=link],[data-part=trigger]):has(>:is([data-part=end],[data-part=count]))>[data-part=icon]:after{background-color:var(--_dot-color);block-size:var(--_dot-size);border-radius:var(--slotted-radius-full, 9999px);content:\"\";inline-size:var(--_dot-size);inset-block-start:var(--slotted-space-2, .25rem);inset-inline-end:var(--slotted-space-2, .25rem);position:absolute}[data-ui=side-navigation][data-part=flyout]{--_surface: var( --slotted-side-navigation-flyout-surface, var(--slotted-surface-raised, Canvas) );--_border-color: var( --slotted-side-navigation-flyout-border-color, var(--slotted-border-subtle, ButtonBorder) );--_shadow: var(--slotted-side-navigation-flyout-shadow, var(--slotted-shadow-md));--_flyout-radius: var(--slotted-side-navigation-flyout-radius, var(--slotted-radius-lg, 8px));--_measure: var(--slotted-side-navigation-flyout-measure, 16rem);box-sizing:border-box;inline-size:max-content;inset-block-start:0;isolation:isolate;max-inline-size:min(var(--_measure),var(--slotted-positioner-available-width, 100vw));min-inline-size:var(--slotted-side-navigation-flyout-min-measure, 12rem);padding-block:0;padding-inline:var(--slotted-space-2, .25rem);pointer-events:none;position:absolute;z-index:calc(var(--slotted-z-index-popover, 1100) + var(--slotted-layer-depth, 0));opacity:0;--_enter-distance: var(--slotted-space-2, .25rem);translate:0 calc(-1 * var(--_enter-distance));transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit),translate var(--slotted-duration-short) var(--slotted-easing-exit)}[data-ui=side-navigation][data-part=flyout][data-side=top]{translate:0 var(--_enter-distance)}[data-ui=side-navigation][data-part=flyout][data-side=right]{translate:calc(-1 * var(--_enter-distance)) 0}[data-ui=side-navigation][data-part=flyout][data-side=left]{translate:var(--_enter-distance) 0}[data-ui=side-navigation][data-part=flyout][data-open]{opacity:1;translate:0 0;transition:none}[data-ui=side-navigation][data-part=flyout][data-open][data-positioned]{animation:slotted-side-navigation-enter-down var(--slotted-duration-medium) var(--slotted-easing-enter)}[data-ui=side-navigation][data-part=flyout][data-open][data-positioned][data-side=top]{animation-name:slotted-side-navigation-enter-up}[data-ui=side-navigation][data-part=flyout][data-open][data-positioned][data-side=right]{animation-name:slotted-side-navigation-enter-from-start}[data-ui=side-navigation][data-part=flyout][data-open][data-positioned][data-side=left]{animation-name:slotted-side-navigation-enter-from-end}@keyframes slotted-side-navigation-enter-down{0%{opacity:0;translate:0 calc(-1 * var(--_enter-distance))}}@keyframes slotted-side-navigation-enter-up{0%{opacity:0;translate:0 var(--_enter-distance)}}@keyframes slotted-side-navigation-enter-from-start{0%{opacity:0;translate:calc(-1 * var(--_enter-distance)) 0}}@keyframes slotted-side-navigation-enter-from-end{0%{opacity:0;translate:var(--_enter-distance) 0}}@keyframes slotted-side-navigation-fade{0%{opacity:0}}@media(prefers-reduced-motion:reduce){[data-ui=side-navigation][data-part=flyout],[data-ui=side-navigation][data-part=flyout][data-side=top],[data-ui=side-navigation][data-part=flyout][data-side=left],[data-ui=side-navigation][data-part=flyout][data-side=right]{translate:0 0;transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit)}[data-ui=side-navigation][data-part=flyout][data-open][data-positioned],[data-ui=side-navigation][data-part=flyout][data-open][data-positioned][data-side=top],[data-ui=side-navigation][data-part=flyout][data-open][data-positioned][data-side=left],[data-ui=side-navigation][data-part=flyout][data-open][data-positioned][data-side=right]{animation-name:slotted-side-navigation-fade}}[data-ui=side-navigation][data-part=flyout][data-detached]{visibility:hidden}[data-ui=side-navigation][data-part=flyout]>[data-part=group]{background-color:var(--_surface);border:var(--_guide-width) solid var(--_border-color);border-radius:var(--_flyout-radius);box-shadow:var(--_shadow);color:var(--_color);padding:var(--slotted-space-2, .25rem);pointer-events:auto}[data-ui=side-navigation][data-part=flyout]>[data-part=group]>[data-part=item]>[data-part=group]{padding-inline-start:var(--_indent)}@media(forced-colors:active){[data-ui=side-navigation] [data-part=link][data-current],[data-ui=side-navigation] [data-part=item][data-current]>[data-part=trigger]{background-color:Highlight;color:HighlightText;forced-color-adjust:none}[data-ui=side-navigation] [data-part=item][data-disabled]>:is([data-part=link],[data-part=trigger]),[data-ui=side-navigation] [data-part=trigger]:disabled{color:GrayText}[data-ui=side-navigation][data-part=flyout]>[data-part=group]{border-color:CanvasText}}}\n"] }]
|
|
343
|
+
}, styles: ["@layer slotted.components{[data-ui=side-navigation]{--_row-height: var(--slotted-app-shell-row-height, var(--slotted-control-height-md, 34px));--_mark: var(--slotted-app-shell-row-mark, var(--_row-height));--_inset: var(--slotted-app-shell-row-inset, var(--slotted-space-4, .5rem));--_standoff: min(var(--slotted-space-2, .25rem), var(--_inset));--_ring-inset: var(--slotted-app-shell-row-ring-inset, 0px);--_gap: var(--slotted-app-shell-row-gap, var(--slotted-control-gap-md, 8px));--_font-size: var(--slotted-app-shell-row-font-size, var(--slotted-font-size-sm, .8125rem));--_line-height: var(--slotted-app-shell-row-line-height, var(--slotted-line-height-sm, 1.45));--_icon-size: var(--slotted-control-icon-size-md, 16px);--_description-font-size: var(--slotted-font-size-xs, .75rem);--_section-font-size: var(--slotted-font-size-xs, .75rem);--_indent: var(--slotted-side-navigation-indent, calc(var(--_mark) + var(--_gap)));--_indent-step: var(--slotted-side-navigation-indent-step, var(--slotted-space-7, 1.25rem));--_radius: var(--slotted-side-navigation-radius, var(--slotted-radius-md, 6px));--_row-gap: var(--slotted-side-navigation-row-gap, var(--slotted-space-1, .125rem));--_section-gap: var(--slotted-side-navigation-section-gap, var(--slotted-space-5, .75rem));--_guide-width: var(--slotted-border-width-thin, 1px);--_dot-size: var(--slotted-side-navigation-dot-size, var(--slotted-space-3, .375rem));--_color: var(--slotted-side-navigation-color, var(--slotted-text-muted, GrayText));--_hover-color: var(--slotted-side-navigation-hover-color, var(--slotted-text, CanvasText));--_hover-background: var( --slotted-side-navigation-hover-background, var(--slotted-tone-secondary-subtle-hover) );--_active-background: var( --slotted-side-navigation-active-background, var(--slotted-tone-secondary-subtle-active) );--_current-color: var(--slotted-side-navigation-current-color, var(--slotted-tone-accent-text));--_current-background: var( --slotted-side-navigation-current-background, var(--slotted-tone-accent-surface) );--_current-edge: var( --slotted-side-navigation-current-edge, var(--slotted-current-edge, transparent) );--_dot-color: var(--slotted-side-navigation-dot-color, var(--slotted-tone-accent-solid));--_section-color: var( --slotted-side-navigation-section-color, var(--slotted-text-muted, GrayText) );--_description-color: var( --slotted-side-navigation-description-color, var(--slotted-text-muted, GrayText) );--_current-description-color: var( --slotted-side-navigation-current-description-color, var(--slotted-text, CanvasText) );--_description-gap: var( --slotted-side-navigation-description-gap, var(--slotted-space-1, .125rem) );--_guide-color: var( --slotted-side-navigation-guide-color, var(--slotted-border-subtle, ButtonBorder) );--_disabled-color: var(--slotted-disabled-foreground, GrayText);--_duration: var(--slotted-control-transition-duration, var(--slotted-duration-short));--_easing: var(--slotted-control-transition-easing, var(--slotted-easing-standard));box-sizing:border-box;color:var(--_color);font-family:var(--slotted-control-font-family, inherit);font-size:var(--_font-size);line-height:var(--_line-height);min-inline-size:0}[data-ui=side-navigation][data-size=sm]{--_row-height: var(--slotted-control-height-sm, 30px);--_mark: var(--_row-height);--_gap: var(--slotted-control-gap-sm, 6px);--_font-size: var(--slotted-font-size-xs, .75rem);--_line-height: var(--slotted-line-height-xs, 1.4);--_icon-size: var(--slotted-control-icon-size-sm, 14px)}[data-ui=side-navigation][data-size=lg]{--_row-height: var(--slotted-control-height-lg, 38px);--_mark: var(--_row-height);--_gap: var(--slotted-control-gap-lg, 8px);--_font-size: var(--slotted-font-size-md, .875rem);--_line-height: var(--slotted-line-height-md, 1.5);--_icon-size: var(--slotted-control-icon-size-lg, 18px);--_description-font-size: var(--slotted-font-size-sm, .8125rem)}[data-ui=side-navigation][data-part=root]{container-name:slotted-side-navigation;container-type:inline-size;display:flex;flex-direction:column;gap:var(--_section-gap);inline-size:100%}[data-ui=side-navigation] [data-part=section]{display:flex;flex-direction:column;min-inline-size:0}[data-ui=side-navigation] [data-part=section-label]{color:var(--_section-color);font-size:var(--_section-font-size);font-weight:var(--slotted-font-weight-semibold, 600);line-height:var(--slotted-line-height-xs, 1.4);margin-block-end:var( --slotted-side-navigation-section-label-gap, var(--slotted-space-2, .25rem) );min-inline-size:0;padding-block:var(--slotted-space-2, .25rem);overflow-wrap:anywhere;padding-inline:calc(var(--_inset) + (var(--_mark) - var(--_icon-size)) / 2)}[data-ui=side-navigation] [data-part=list],[data-ui=side-navigation] [data-part=group]{display:flex;flex-direction:column;gap:var(--_row-gap);list-style:none;margin:0;min-inline-size:0;padding:0}[data-ui=side-navigation] [data-part=item]{align-content:start;display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-rows:auto 0fr;min-inline-size:0;position:relative;transition:grid-template-rows var(--slotted-duration-medium) var(--_easing)}[data-ui=side-navigation] [data-part=item][data-expanded]{grid-template-rows:auto 1fr}[data-ui=side-navigation] [data-part=item]>[data-part=group]{grid-column:1 / -1;grid-row:2;min-block-size:0;overflow:hidden;opacity:0;padding-block-start:0;transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit),padding-block-start var(--slotted-duration-medium) var(--_easing),visibility var(--slotted-duration-medium) step-end;visibility:hidden}[data-ui=side-navigation] [data-part=item][data-expanded]>[data-part=group]{opacity:1;padding-block-start:var(--_row-gap);transition:opacity var(--slotted-duration-short) var(--slotted-easing-enter) var(--slotted-duration-short),padding-block-start var(--slotted-duration-medium) var(--_easing),visibility var(--slotted-duration-medium) step-start;visibility:visible}[data-ui=side-navigation] [data-part=item]>[data-part=group]{padding-inline-start:var(--_indent-step);position:relative}[data-ui=side-navigation] [data-part=item]:has(>:is([data-part=link],[data-part=trigger])>[data-part=icon])>[data-part=group]{padding-inline-start:var(--_indent)}[data-ui=side-navigation][data-guides] [data-part=item]>[data-part=group]:before{background-color:var(--_guide-color);content:\"\";inline-size:var(--_guide-width);inset-block:var(--_row-gap) 0;inset-inline-start:var(--_inset);position:absolute}[data-ui=side-navigation][data-guides] [data-part=item]:has(>:is([data-part=link],[data-part=trigger])>[data-part=icon])>[data-part=group]:before{inset-inline-start:calc(var(--_inset) + var(--_mark) / 2 - var(--_guide-width) / 2)}[data-ui=side-navigation] :is([data-part=link],[data-part=trigger]){align-content:center;align-items:center;appearance:none;background-color:transparent;border:0;border-radius:var(--_radius);box-sizing:border-box;color:inherit;cursor:pointer;display:grid;font:inherit;grid-column:1;grid-row:1;grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-rows:auto auto;margin-block:0;margin-inline:calc(var(--_standoff) - var(--_ring-inset));min-block-size:var(--_row-height);min-inline-size:0;padding-block:0;padding-inline:calc(var(--_inset) - var(--_standoff) + var(--_ring-inset));position:relative;text-align:start;text-decoration:none;transition:background-color var(--_duration) var(--_easing),color var(--_duration) var(--_easing)}[data-ui=side-navigation] [data-part=item]:not([data-disabled])>:is([data-part=link],[data-part=trigger]):active{transition-duration:var(--slotted-duration-instant)}[data-ui=side-navigation] [data-part=item]>[data-part=trigger]{grid-column:1 / -1}[data-ui=side-navigation] [data-part=item]:has(>[data-part=link])>[data-part=trigger]{grid-column:2;grid-template-columns:auto;inline-size:var(--_mark);padding-inline:0;place-items:center}[data-ui=side-navigation] [data-part=actions]{align-items:center;align-self:center;column-gap:var(--slotted-space-2, .25rem);display:flex;grid-column:3;grid-row:1;margin-inline-start:var(--slotted-space-2, .25rem);padding-inline-end:var(--slotted-space-2, .25rem)}[data-ui=side-navigation] :is([data-part=link],[data-part=trigger]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(-1 * var(--slotted-focus-ring-offset, 2px))}[data-ui=side-navigation] [data-part=icon]{--slotted-icon-size: var(--_icon-size);block-size:var(--_mark);color:inherit;display:grid;font-size:var(--_icon-size);grid-column:1;grid-row:1;inline-size:var(--_mark);margin-inline-end:var(--_gap);place-items:center;position:relative}[data-ui=side-navigation] [data-part=icon]>svg{block-size:var(--_icon-size);inline-size:var(--_icon-size)}[data-ui=side-navigation] [data-part=label]{grid-column:2;grid-row:1;min-inline-size:0;overflow-wrap:anywhere;unicode-bidi:isolate}[data-ui=side-navigation]:not([data-truncate=none]) [data-part=label]{overflow:hidden;overflow-wrap:normal;text-overflow:ellipsis;white-space:nowrap}[data-ui=side-navigation][data-truncate=middle] [data-part=label]{text-overflow:clip}[data-ui=side-navigation] [data-part=description]{color:var(--_description-color);font-size:var(--_description-font-size);font-weight:var(--slotted-font-weight-regular, 400);grid-column:2;grid-row:2;line-height:var(--slotted-line-height-xs, 1.4);margin-block-start:var(--_description-gap);min-inline-size:0;overflow-wrap:anywhere;unicode-bidi:isolate}[data-ui=side-navigation]:not([data-truncate=none]) [data-part=description]{overflow:hidden;overflow-wrap:normal;text-overflow:ellipsis;white-space:nowrap}[data-ui=side-navigation] :is([data-part=link],[data-part=trigger]):has(>[data-part=description]){padding-block:var(--slotted-space-2, .25rem)}[data-ui=side-navigation] :is([data-part=link],[data-part=trigger]):has(>[data-part=description])>:is([data-part=icon],[data-part=end],[data-part=count],[data-part=indicator]){grid-row:1 / -1}[data-ui=side-navigation] :is([data-part=link],[data-part=trigger]):has(>[data-part=description])>[data-part=label]{align-self:end;line-height:var(--slotted-line-height-xs, 1.4)}[data-ui=side-navigation] :is([data-part=link],[data-part=trigger]):has(>[data-part=description])>[data-part=description]{align-self:start}[data-ui=side-navigation] [data-part=end]{align-items:center;display:flex;grid-column:3;grid-row:1;margin-inline-start:var(--_gap)}[data-ui=side-navigation] [data-part=count]{color:var(--_description-color);font-size:var(--_description-font-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-font-weight-medium, 500);grid-column:3;grid-row:1;line-height:1;margin-inline-start:var(--_gap);min-inline-size:2ch;text-align:end}[data-ui=side-navigation] [data-part=link][data-current]>[data-part=description]{color:var(--_current-description-color)}[data-ui=side-navigation] [data-part=link][data-current]>[data-part=count],[data-ui=side-navigation] [data-part=item][data-current]>[data-part=trigger]>[data-part=count]{color:inherit}[data-ui=side-navigation] [data-part=indicator]{--slotted-icon-size: var(--_icon-size);display:flex;grid-column:4;grid-row:1;margin-inline-start:var(--_gap)}[data-ui=side-navigation] [data-part=indicator]>[data-ui=icon]{transition:rotate var(--slotted-duration-medium) var(--_easing)}[data-ui=side-navigation] [data-part=item]:has(>[data-part=link])>[data-part=trigger]>[data-part=indicator]{grid-column:1;margin-inline-start:0}[data-ui=side-navigation] [data-part=item][data-expanded]>[data-part=trigger]>[data-part=indicator]>[data-ui=icon]{rotate:90deg}[data-ui=side-navigation] [data-part=item][data-expanded]>[data-part=trigger]>[data-part=indicator]>[data-ui=icon]:dir(rtl){rotate:-90deg}@supports (text-box: trim-both cap alphabetic){[data-ui=side-navigation] [data-part=label]{padding-block:calc((var(--_line-height) * 1em - .75em) / 2);text-box:trim-both cap alphabetic}[data-ui=side-navigation] [data-part=description],[data-ui=side-navigation] [data-part=section-label]{padding-block:calc((var(--slotted-line-height-xs, 1.4) * 1em - .75em) / 2);text-box:trim-both cap alphabetic}[data-ui=side-navigation] [data-part=count]{line-height:var(--slotted-line-height-xs, 1.4);padding-block:calc((var(--slotted-line-height-xs, 1.4) * 1em - .75em) / 2);text-box:trim-both cap alphabetic}}[data-ui=side-navigation] [data-part=item]:not([data-disabled])>[data-part=link]:not([data-current]):hover,[data-ui=side-navigation] [data-part=item]:not([data-disabled]):not([data-current])>[data-part=trigger]:enabled:hover{background-color:var(--_hover-background);color:var(--_hover-color)}[data-ui=side-navigation] [data-part=item][data-open]:not([data-current])>[data-part=trigger],[data-ui=side-navigation] [data-part=item]:not([data-disabled])>[data-part=link]:not([data-current]):active,[data-ui=side-navigation] [data-part=item]:not([data-disabled]):not([data-current])>[data-part=trigger]:enabled:active{background-color:var(--_active-background)}[data-ui=side-navigation] [data-part=link][data-current],[data-ui=side-navigation] [data-part=item][data-current]>[data-part=trigger]{background-color:var(--_current-background);box-shadow:inset 0 0 0 var(--_guide-width) var(--_current-edge);color:var(--_current-color);font-weight:var(--slotted-font-weight-medium, 500)}[data-ui=side-navigation] [data-part=item][data-disabled]>:is([data-part=link],[data-part=trigger]),[data-ui=side-navigation] [data-part=trigger]:disabled{color:var(--_disabled-color);cursor:not-allowed}[data-ui=side-navigation] [data-part=item][data-disabled]>[data-part=link]>[data-part=description]{color:var(--_disabled-color)}[data-ui=side-navigation] [data-part=divider]{border:0;border-block-start:var(--_guide-width) solid var(--_guide-color);margin-block:var(--slotted-space-2, .25rem);margin-inline:var(--_inset)}[data-ui=side-navigation] [data-part=skeleton]{align-items:center;display:grid;gap:var(--_gap);grid-template-columns:var(--_mark) minmax(0,1fr);min-block-size:var(--_row-height);padding-inline:var(--_inset)}[data-ui=side-navigation] [data-part=skeleton]>[data-part=icon]{margin-inline:0}[data-ui=side-navigation] [data-part=skeleton]>[data-part=icon]>[data-ui=skeleton]{--slotted-skeleton-block-size: var(--_icon-size);--slotted-skeleton-inline-size: var(--_icon-size)}[data-ui=side-navigation] [data-part=skeleton]>[data-part=label]{display:block;min-inline-size:0;overflow:visible}@container slotted-side-navigation (inline-size < 96px){[data-ui=side-navigation][data-mode=auto] [data-part=label],[data-ui=side-navigation][data-mode=auto] [data-part=description],[data-ui=side-navigation][data-mode=auto] [data-part=end],[data-ui=side-navigation][data-mode=auto] [data-part=count]{block-size:1px;clip-path:inset(50%);inline-size:1px;margin:0;overflow:hidden;position:absolute;white-space:nowrap}[data-ui=side-navigation][data-mode=auto] [data-part=indicator],[data-ui=side-navigation][data-mode=auto] [data-part=actions],[data-ui=side-navigation][data-mode=auto] [data-part=item]:has(>[data-part=link])>[data-part=trigger]{display:none}[data-ui=side-navigation][data-mode=auto] :is([data-part=link],[data-part=trigger]){grid-template-columns:auto;inline-size:var(--_mark);justify-content:center;justify-self:center;padding:0}[data-ui=side-navigation][data-mode=auto] [data-part=icon]{margin:0}[data-ui=side-navigation][data-mode=auto] [data-part=item]{grid-template-rows:auto 0fr}[data-ui=side-navigation][data-mode=auto] [data-part=item]>[data-part=group]{visibility:hidden}[data-ui=side-navigation][data-mode=auto] [data-part=section-label]{block-size:0;border-block-start:var(--_guide-width) solid var(--_guide-color);color:transparent;margin-block:var(--slotted-space-2, .25rem);margin-inline:var(--_inset);overflow:hidden;padding:0}[data-ui=side-navigation][data-mode=auto] [data-part=skeleton]{grid-template-columns:var(--_mark);justify-content:center;padding-inline:0}[data-ui=side-navigation][data-mode=auto] [data-part=skeleton]>:not([data-part=icon]){display:none}[data-ui=side-navigation][data-mode=auto] :is([data-part=link],[data-part=trigger]):has(>:is([data-part=end],[data-part=count]))>[data-part=icon]:after{background-color:var(--_dot-color);block-size:var(--_dot-size);border-radius:var(--slotted-radius-full, 9999px);content:\"\";inline-size:var(--_dot-size);inset-block-start:var(--slotted-space-2, .25rem);inset-inline-end:var(--slotted-space-2, .25rem);position:absolute}}[data-ui=side-navigation][data-mode=compact] [data-part=label],[data-ui=side-navigation][data-mode=compact] [data-part=description],[data-ui=side-navigation][data-mode=compact] [data-part=end],[data-ui=side-navigation][data-mode=compact] [data-part=count]{block-size:1px;clip-path:inset(50%);inline-size:1px;margin:0;overflow:hidden;position:absolute;white-space:nowrap}[data-ui=side-navigation][data-mode=compact] [data-part=indicator],[data-ui=side-navigation][data-mode=compact] [data-part=actions],[data-ui=side-navigation][data-mode=compact] [data-part=item]:has(>[data-part=link])>[data-part=trigger]{display:none}[data-ui=side-navigation][data-mode=compact] :is([data-part=link],[data-part=trigger]){grid-template-columns:auto;inline-size:var(--_mark);justify-content:center;justify-self:center;padding:0}[data-ui=side-navigation][data-mode=compact] [data-part=icon]{margin:0}[data-ui=side-navigation][data-mode=compact] [data-part=item]{grid-template-rows:auto 0fr}[data-ui=side-navigation][data-mode=compact] [data-part=item]>[data-part=group]{visibility:hidden}[data-ui=side-navigation][data-mode=compact] [data-part=section-label]{block-size:0;border-block-start:var(--_guide-width) solid var(--_guide-color);color:transparent;margin-block:var(--slotted-space-2, .25rem);margin-inline:var(--_inset);overflow:hidden;padding:0}[data-ui=side-navigation][data-mode=compact] [data-part=skeleton]{grid-template-columns:var(--_mark);justify-content:center;padding-inline:0}[data-ui=side-navigation][data-mode=compact] [data-part=skeleton]>:not([data-part=icon]){display:none}[data-ui=side-navigation][data-mode=compact] :is([data-part=link],[data-part=trigger]):has(>:is([data-part=end],[data-part=count]))>[data-part=icon]:after{background-color:var(--_dot-color);block-size:var(--_dot-size);border-radius:var(--slotted-radius-full, 9999px);content:\"\";inline-size:var(--_dot-size);inset-block-start:var(--slotted-space-2, .25rem);inset-inline-end:var(--slotted-space-2, .25rem);position:absolute}[data-ui=side-navigation][data-part=flyout]{--_surface: var( --slotted-side-navigation-flyout-surface, var(--slotted-surface-raised, Canvas) );--_border-color: var( --slotted-side-navigation-flyout-border-color, var(--slotted-border-subtle, ButtonBorder) );--_shadow: var(--slotted-side-navigation-flyout-shadow, var(--slotted-shadow-md));--_flyout-radius: var(--slotted-side-navigation-flyout-radius, var(--slotted-radius-lg, 8px));--_measure: var(--slotted-side-navigation-flyout-measure, 16rem);box-sizing:border-box;inline-size:max-content;inset-block-start:0;isolation:isolate;max-inline-size:min(var(--_measure),var(--slotted-positioner-available-width, 100vw));min-inline-size:var(--slotted-side-navigation-flyout-min-measure, 12rem);padding-block:0;padding-inline:var(--slotted-space-2, .25rem);pointer-events:none;position:absolute;z-index:calc(var(--slotted-z-index-popover, 1100) + var(--slotted-layer-depth, 0));opacity:0;--_enter-distance: var(--slotted-space-2, .25rem);translate:0 calc(-1 * var(--_enter-distance));transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit),translate var(--slotted-duration-short) var(--slotted-easing-exit)}[data-ui=side-navigation][data-part=flyout][data-side=top]{translate:0 var(--_enter-distance)}[data-ui=side-navigation][data-part=flyout][data-side=right]{translate:calc(-1 * var(--_enter-distance)) 0}[data-ui=side-navigation][data-part=flyout][data-side=left]{translate:var(--_enter-distance) 0}[data-ui=side-navigation][data-part=flyout][data-open]{opacity:1;translate:0 0;transition:none}[data-ui=side-navigation][data-part=flyout][data-open][data-positioned]{animation:slotted-side-navigation-enter-down var(--slotted-duration-medium) var(--slotted-easing-enter)}[data-ui=side-navigation][data-part=flyout][data-open][data-positioned][data-side=top]{animation-name:slotted-side-navigation-enter-up}[data-ui=side-navigation][data-part=flyout][data-open][data-positioned][data-side=right]{animation-name:slotted-side-navigation-enter-from-start}[data-ui=side-navigation][data-part=flyout][data-open][data-positioned][data-side=left]{animation-name:slotted-side-navigation-enter-from-end}@keyframes slotted-side-navigation-enter-down{0%{opacity:0;translate:0 calc(-1 * var(--_enter-distance))}}@keyframes slotted-side-navigation-enter-up{0%{opacity:0;translate:0 var(--_enter-distance)}}@keyframes slotted-side-navigation-enter-from-start{0%{opacity:0;translate:calc(-1 * var(--_enter-distance)) 0}}@keyframes slotted-side-navigation-enter-from-end{0%{opacity:0;translate:var(--_enter-distance) 0}}@keyframes slotted-side-navigation-fade{0%{opacity:0}}@media(prefers-reduced-motion:reduce){[data-ui=side-navigation][data-part=flyout],[data-ui=side-navigation][data-part=flyout][data-side=top],[data-ui=side-navigation][data-part=flyout][data-side=left],[data-ui=side-navigation][data-part=flyout][data-side=right]{translate:0 0;transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit)}[data-ui=side-navigation][data-part=flyout][data-open][data-positioned],[data-ui=side-navigation][data-part=flyout][data-open][data-positioned][data-side=top],[data-ui=side-navigation][data-part=flyout][data-open][data-positioned][data-side=left],[data-ui=side-navigation][data-part=flyout][data-open][data-positioned][data-side=right]{animation-name:slotted-side-navigation-fade}}[data-ui=side-navigation][data-part=flyout][data-detached]{visibility:hidden}[data-ui=side-navigation][data-part=flyout]>[data-part=group]{background-color:var(--_surface);border:var(--_guide-width) solid var(--_border-color);border-radius:var(--_flyout-radius);box-shadow:var(--_shadow);color:var(--_color);padding:var(--slotted-space-2, .25rem);pointer-events:auto}[data-ui=side-navigation][data-part=flyout]>[data-part=group]>[data-part=item]>[data-part=group]{padding-inline-start:var(--_indent)}@media(forced-colors:active){[data-ui=side-navigation] [data-part=link][data-current],[data-ui=side-navigation] [data-part=item][data-current]>[data-part=trigger]{background-color:Highlight;color:HighlightText;forced-color-adjust:none}[data-ui=side-navigation] [data-part=item][data-disabled]>:is([data-part=link],[data-part=trigger]),[data-ui=side-navigation] [data-part=trigger]:disabled{color:GrayText}[data-ui=side-navigation][data-part=flyout]>[data-part=group]{border-color:CanvasText}}}\n"] }]
|
|
344
344
|
}], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], expanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "expanded", required: false }] }, { type: i0.Output, args: ["expandedChange"] }], flyout: [{ type: i0.Input, args: [{ isSignal: true, alias: "flyout", required: false }] }, { type: i0.Output, args: ["flyoutChange"] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], truncate: [{ type: i0.Input, args: [{ isSignal: true, alias: "truncate", required: false }] }], multiple: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiple", required: false }] }], autoExpand: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoExpand", required: false }] }], guides: [{ type: i0.Input, args: [{ isSignal: true, alias: "guides", required: false }] }], landmark: [{ type: i0.Input, args: [{ isSignal: true, alias: "landmark", required: false }] }], compactAt: [{ type: i0.Input, args: [{ isSignal: true, alias: "compactAt", required: false }] }], messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }], valueChangeRequest: [{ type: i0.Output, args: ["valueChangeRequest"] }], expandedChangeRequest: [{ type: i0.Output, args: ["expandedChangeRequest"] }], flyoutChangeRequest: [{ type: i0.Output, args: ["flyoutChangeRequest"] }] } });
|
|
345
345
|
|
|
346
346
|
/** A click synthesised by the keyboard reports no detail; a real one reports the count. */
|