@ds-mo/ui 12.0.0 → 12.1.0
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/dist/.build-stamp +1 -1
- package/dist/agent-patterns.json +1 -1
- package/dist/agent.json +14 -7
- package/dist/angular/ds-bar-title.d.ts +1 -1
- package/dist/angular/ds-bar-title.js +3 -3
- package/dist/components/ds-agent-activity.js +1 -1
- package/dist/components/ds-agent-response.js +1 -1
- package/dist/components/ds-agent-source-list.js +1 -1
- package/dist/components/ds-agent-tool-call.js +1 -1
- package/dist/components/ds-attachment-list.js +1 -1
- package/dist/components/ds-avatar.js +1 -1
- package/dist/components/ds-bar-nav.js +1 -1
- package/dist/components/ds-bar-title.js +1 -1
- package/dist/components/ds-bar-title.js.map +1 -1
- package/dist/components/ds-button-filled.js +1 -1
- package/dist/components/ds-button-unfilled.js +1 -1
- package/dist/components/ds-card-data-viz-donut.js +1 -1
- package/dist/components/ds-card-setting.js +1 -1
- package/dist/components/ds-chart-bar.js +1 -1
- package/dist/components/ds-chart-donut.js +1 -1
- package/dist/components/ds-chart-line.js +1 -1
- package/dist/components/ds-chip.js +1 -1
- package/dist/components/ds-code-block.js +1 -1
- package/dist/components/ds-conversation-list-item.js +1 -1
- package/dist/components/ds-conversation-list-item.js.map +1 -1
- package/dist/components/ds-conversation-list-section.js +1 -1
- package/dist/components/ds-conversation-list.js +1 -1
- package/dist/components/ds-empty-state.js +1 -1
- package/dist/components/ds-field.js +1 -1
- package/dist/components/ds-icon.js +1 -1
- package/dist/components/ds-input.js +1 -1
- package/dist/components/ds-markdown.js +1 -1
- package/dist/components/ds-menu.js +1 -1
- package/dist/components/ds-message-composer.js +1 -1
- package/dist/components/ds-message-composer.js.map +1 -1
- package/dist/components/ds-message-scroller.js +1 -1
- package/dist/components/ds-message.js +1 -1
- package/dist/components/ds-modal.js +1 -1
- package/dist/components/ds-panel-nav.js +1 -1
- package/dist/components/ds-panel-tool-header.js +1 -1
- package/dist/components/ds-panel-tool-search.js +1 -1
- package/dist/components/ds-panel-tools.js +1 -1
- package/dist/components/ds-select-multi.js +1 -1
- package/dist/components/ds-select-multi.js.map +1 -1
- package/dist/components/ds-select.js +1 -1
- package/dist/components/ds-select.js.map +1 -1
- package/dist/components/ds-shell-app.js +1 -1
- package/dist/components/ds-shell-app.js.map +1 -1
- package/dist/components/ds-shell-gradient-picker.js +1 -1
- package/dist/components/ds-shell-gradient-swatch.js +1 -1
- package/dist/components/ds-shell-page.js +1 -1
- package/dist/components/ds-shell-page.js.map +1 -1
- package/dist/components/ds-swatch-picker.js +1 -1
- package/dist/components/ds-tab-group.js +1 -1
- package/dist/components/ds-tag.js +1 -1
- package/dist/components/ds-toast.js +1 -1
- package/dist/components/ds-tooltip-data-viz.js +1 -1
- package/dist/components/ds-typing-indicator.js +1 -1
- package/dist/components/{p-6vj4kh70.js → p-B9jvSGid.js} +2 -2
- package/dist/components/{p-DuNZGFkV.js → p-BAfG3M8z.js} +2 -2
- package/dist/components/p-BAfG3M8z.js.map +1 -0
- package/dist/components/{p-BhKhX1er.js → p-BfEjWe8U.js} +2 -2
- package/dist/components/{p-Cy04lXlc.js → p-BzsITTZa.js} +2 -2
- package/dist/components/p-C3Zfn7hz.js +2 -0
- package/dist/components/{p-xFbUt9Tc.js.map → p-C3Zfn7hz.js.map} +1 -1
- package/dist/components/{p-B3YvoGjS.js → p-CR7yMitN.js} +2 -2
- package/dist/components/{p-BYHKdFzV.js → p-CTV_QWC5.js} +2 -2
- package/dist/components/p-Dfxnxx7L.js +2 -0
- package/dist/components/{p-Cf2J9MEo.js.map → p-Dfxnxx7L.js.map} +1 -1
- package/dist/components/{p-BUmDHPr3.js → p-DpyTrZa2.js} +2 -2
- package/dist/components/{p-CwTVEAl2.js → p-Dqwcw1-m.js} +2 -2
- package/dist/components/{p-Cf-i-6aE.js → p-DszI94sZ.js} +2 -2
- package/dist/components/{p-BZZwQfmN.js → p-Dy3Skua8.js} +2 -2
- package/dist/components/{p-BH3es4p7.js → p-LFGbdi7Y.js} +2 -2
- package/dist/components/{p-DVk0wxxX.js → p-tDXHTAJh.js} +2 -2
- package/dist/components/{p-DUHcJWTQ.js → p-webARv8d.js} +2 -2
- package/dist/docs/components.json +52 -6
- package/dist/mcp-data/registry/agent-activity.json +1 -1
- package/dist/mcp-data/registry/agent-response.json +1 -1
- package/dist/mcp-data/registry/agent-source-list.json +1 -1
- package/dist/mcp-data/registry/agent-tool-call.json +1 -1
- package/dist/mcp-data/registry/attachment-list.json +1 -1
- package/dist/mcp-data/registry/avatar.json +1 -1
- package/dist/mcp-data/registry/badge.json +1 -1
- package/dist/mcp-data/registry/bar-nav.json +1 -1
- package/dist/mcp-data/registry/bar-title.json +30 -10
- package/dist/mcp-data/registry/button-filled.json +1 -1
- package/dist/mcp-data/registry/button-unfilled.json +1 -1
- package/dist/mcp-data/registry/card-data-viz-donut.json +1 -1
- package/dist/mcp-data/registry/card-setting.json +1 -1
- package/dist/mcp-data/registry/card-shell-data-viz.json +1 -1
- package/dist/mcp-data/registry/chart-bar.json +1 -1
- package/dist/mcp-data/registry/chart-donut.json +1 -1
- package/dist/mcp-data/registry/chart-legend.json +1 -1
- package/dist/mcp-data/registry/chart-line.json +1 -1
- package/dist/mcp-data/registry/checkbox.json +1 -1
- package/dist/mcp-data/registry/chip.json +1 -1
- package/dist/mcp-data/registry/code-block.json +1 -1
- package/dist/mcp-data/registry/conversation-list-item.json +1 -1
- package/dist/mcp-data/registry/conversation-list-section.json +1 -1
- package/dist/mcp-data/registry/conversation-list.json +1 -1
- package/dist/mcp-data/registry/divider.json +1 -1
- package/dist/mcp-data/registry/empty-state.json +1 -1
- package/dist/mcp-data/registry/field.json +1 -1
- package/dist/mcp-data/registry/icon.json +2 -2
- package/dist/mcp-data/registry/input.json +1 -1
- package/dist/mcp-data/registry/loader.json +1 -1
- package/dist/mcp-data/registry/markdown.json +1 -1
- package/dist/mcp-data/registry/menu.json +1 -1
- package/dist/mcp-data/registry/message-bubble.json +1 -1
- package/dist/mcp-data/registry/message-composer.json +1 -1
- package/dist/mcp-data/registry/message-scroller.json +1 -1
- package/dist/mcp-data/registry/message.json +1 -1
- package/dist/mcp-data/registry/modal.json +1 -1
- package/dist/mcp-data/registry/panel-nav.json +1 -1
- package/dist/mcp-data/registry/panel-sub-nav.json +1 -1
- package/dist/mcp-data/registry/panel-tool-header.json +1 -1
- package/dist/mcp-data/registry/panel-tool-search.json +1 -1
- package/dist/mcp-data/registry/panel-tools.json +1 -1
- package/dist/mcp-data/registry/radio.json +1 -1
- package/dist/mcp-data/registry/registry.json +14 -7
- package/dist/mcp-data/registry/select-multi.json +1 -1
- package/dist/mcp-data/registry/select.json +1 -1
- package/dist/mcp-data/registry/shell-app.json +1 -1
- package/dist/mcp-data/registry/shell-gradient-picker.json +1 -1
- package/dist/mcp-data/registry/shell-gradient-swatch.json +1 -1
- package/dist/mcp-data/registry/shell-page.json +3 -2
- package/dist/mcp-data/registry/skeleton.json +1 -1
- package/dist/mcp-data/registry/slider.json +1 -1
- package/dist/mcp-data/registry/swatch-picker.json +1 -1
- package/dist/mcp-data/registry/switch.json +1 -1
- package/dist/mcp-data/registry/tab-group.json +1 -1
- package/dist/mcp-data/registry/tag.json +1 -1
- package/dist/mcp-data/registry/text.json +1 -1
- package/dist/mcp-data/registry/toast.json +1 -1
- package/dist/mcp-data/registry/tooltip-data-viz.json +1 -1
- package/dist/mcp-data/registry/tooltip.json +1 -1
- package/dist/mcp-data/registry/typing-indicator.json +1 -1
- package/dist/types/components/BarTitle/BarTitle.d.ts +6 -1
- package/dist/types/components/BarTitle/bar-title-types.d.ts +1 -0
- package/dist/types/components/ShellPage/ShellPage.d.ts +5 -0
- package/dist/types/components.d.ts +13 -2
- package/package.json +3 -3
- package/dist/components/p-Cf2J9MEo.js +0 -2
- package/dist/components/p-DuNZGFkV.js.map +0 -1
- package/dist/components/p-xFbUt9Tc.js +0 -2
- /package/dist/components/{p-6vj4kh70.js.map → p-B9jvSGid.js.map} +0 -0
- /package/dist/components/{p-BhKhX1er.js.map → p-BfEjWe8U.js.map} +0 -0
- /package/dist/components/{p-Cy04lXlc.js.map → p-BzsITTZa.js.map} +0 -0
- /package/dist/components/{p-B3YvoGjS.js.map → p-CR7yMitN.js.map} +0 -0
- /package/dist/components/{p-BYHKdFzV.js.map → p-CTV_QWC5.js.map} +0 -0
- /package/dist/components/{p-BUmDHPr3.js.map → p-DpyTrZa2.js.map} +0 -0
- /package/dist/components/{p-CwTVEAl2.js.map → p-Dqwcw1-m.js.map} +0 -0
- /package/dist/components/{p-Cf-i-6aE.js.map → p-DszI94sZ.js.map} +0 -0
- /package/dist/components/{p-BZZwQfmN.js.map → p-Dy3Skua8.js.map} +0 -0
- /package/dist/components/{p-BH3es4p7.js.map → p-LFGbdi7Y.js.map} +0 -0
- /package/dist/components/{p-DVk0wxxX.js.map → p-tDXHTAJh.js.map} +0 -0
- /package/dist/components/{p-DUHcJWTQ.js.map → p-webARv8d.js.map} +0 -0
|
@@ -59,6 +59,7 @@
|
|
|
59
59
|
"responsiveBehavior": [
|
|
60
60
|
"ShellPage observes its own rendered width instead of viewport media queries or ShellApp desktop/tablet modes.",
|
|
61
61
|
"Roomy pages expand at the top and compact after scroll; medium-capacity pages start compact; narrow pages use the constrained header variant.",
|
|
62
|
+
"A newly navigated header resolves current page capacity before it is revealed, so persistent tool or navigation chrome cannot flash the expanded presentation first.",
|
|
62
63
|
"Token-based capacity bands use hysteresis so opening tools or resizing navigation cannot oscillate near a boundary.",
|
|
63
64
|
"Scroll compaction preserves the expanded page flow offset so content never jumps beneath the sticky header.",
|
|
64
65
|
"ShellPage relies on ShellApp's content scroller and never introduces nested scrolling."
|
|
@@ -163,7 +164,7 @@
|
|
|
163
164
|
"peerDependencies": {
|
|
164
165
|
"required": [
|
|
165
166
|
"@ds-mo/tokens ^3.1.1",
|
|
166
|
-
"@ds-mo/icons ^6.
|
|
167
|
+
"@ds-mo/icons ^6.4.0"
|
|
167
168
|
],
|
|
168
169
|
"frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
|
|
169
170
|
}
|
|
@@ -182,7 +183,7 @@
|
|
|
182
183
|
},
|
|
183
184
|
{
|
|
184
185
|
"path": "src/wc/components/ShellPage/ShellPage.tsx",
|
|
185
|
-
"content": "import { Component, Element, h, Host, Prop, State } from '@stencil/core';\nimport { createRafCoalescer } from '../../shell/chrome-transition';\nimport { resolveCssLengthPx } from '../../utils/resolve-css-length-px';\nimport type { BarTitleVariant } from '../BarTitle/bar-title-types';\nimport { resolveShellPageCapacity, resolveShellPageHeaderVariant } from './shell-page-responsive';\nimport type {\n ShellPageCapacity,\n ShellPageContentInset,\n ShellPageHeaderPresentation,\n} from './shell-page-types';\n\ntype BarTitleElement = HTMLElement & { variant: BarTitleVariant };\n\n@Component({\n tag: 'ds-shell-page',\n styleUrl: 'ShellPage.css',\n scoped: true,\n})\nexport class ShellPage {\n @Element() el!: HTMLElement;\n\n /** Automatic container/scroll behavior, or an explicit header variant override. */\n @Prop() headerPresentation: ShellPageHeaderPresentation = 'auto';\n\n /** Standard page gutters, or no inset for full-bleed page content. */\n @Prop() contentInset: ShellPageContentInset = 'default';\n\n @State() private capacity: ShellPageCapacity | null = null;\n @State() private pageTopVisible = true;\n\n private sentinelEl: HTMLElement | null = null;\n private spacerEl: HTMLElement | null = null;\n private headerEl: BarTitleElement | null = null;\n private expandedHeaderHeight = 0;\n private resizeObserver: ResizeObserver | null = null;\n private headerResizeObserver: ResizeObserver | null = null;\n private scrollRoot: HTMLElement | Window | null = null;\n private readonly layoutCoalescer = createRafCoalescer(() => this.syncCapacity());\n\n componentDidLoad() {\n this.observeHeader(this.findHeader());\n this.connectObservers();\n this.connectScrollRoot();\n this.layoutCoalescer.schedule();\n }\n\n componentDidRender() {\n this.syncHeaderVariant();\n }\n\n disconnectedCallback() {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n this.headerResizeObserver?.disconnect();\n this.headerResizeObserver = null;\n this.scrollRoot?.removeEventListener('scroll', this.handleScroll);\n this.scrollRoot = null;\n this.layoutCoalescer.cancel();\n }\n\n private get effectiveVariant(): BarTitleVariant {\n return resolveShellPageHeaderVariant(\n this.headerPresentation,\n this.capacity ?? 'roomy',\n this.pageTopVisible\n );\n }\n\n private get isScrollCompacted(): boolean {\n return this.headerPresentation === 'auto' && this.capacity === 'roomy' && !this.pageTopVisible;\n }\n\n private connectObservers() {\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(() => this.layoutCoalescer.schedule());\n this.resizeObserver.observe(this.el);\n }\n }\n\n private composedParent(element: Element): Element | null {\n return (element as HTMLElement).assignedSlot?.parentElement ?? element.parentElement;\n }\n\n private findScrollRoot(): HTMLElement | Window {\n let ancestor = this.composedParent(this.el);\n while (ancestor && ancestor !== document.documentElement) {\n const overflow = getComputedStyle(ancestor).overflowY;\n if (overflow === 'auto' || overflow === 'scroll') return ancestor as HTMLElement;\n ancestor = this.composedParent(ancestor);\n }\n return window;\n }\n\n private connectScrollRoot() {\n this.scrollRoot?.removeEventListener('scroll', this.handleScroll);\n this.scrollRoot = this.findScrollRoot();\n this.scrollRoot.addEventListener('scroll', this.handleScroll, { passive: true });\n this.handleScroll();\n }\n\n private handleScroll = () => {\n if (!this.sentinelEl || !this.scrollRoot) return;\n const rootTop =\n this.scrollRoot === window ? 0 : (this.scrollRoot as HTMLElement).getBoundingClientRect().top;\n this.pageTopVisible = this.sentinelEl.getBoundingClientRect().top >= rootTop;\n };\n\n private findHeader(): BarTitleElement | null {\n return this.el.querySelector<BarTitleElement>('ds-bar-title');\n }\n\n private syncCapacity() {\n const inlineSize = this.el.getBoundingClientRect().width;\n if (inlineSize <= 0) return;\n\n const compactAt = resolveCssLengthPx('--dimension-panel-width-2xl', 0);\n const constrainedAt = resolveCssLengthPx('--dimension-panel-width-lg', 0);\n const hysteresis = resolveCssLengthPx('--dimension-space-100', 0);\n if (compactAt <= 0 || constrainedAt <= 0) return;\n\n const next = resolveShellPageCapacity({\n inlineSize,\n compactAt,\n constrainedAt,\n hysteresis,\n previous: this.capacity,\n });\n if (next !== this.capacity) this.capacity = next;\n else this.syncHeaderVariant();\n }\n\n private get compactHeaderHeight(): number {\n return resolveCssLengthPx('--dimension-size-600', 0);\n }\n\n private setSpacerHeight(height: number) {\n if (!this.spacerEl) return;\n this.spacerEl.style.setProperty('--ds-shell-page-flow-spacer', `${Math.max(0, height)}px`);\n }\n\n private syncHeaderVariant() {\n const header = this.headerEl;\n if (!header) return;\n\n const next = this.effectiveVariant;\n if (header.variant === 'expanded') {\n this.expandedHeaderHeight = header.getBoundingClientRect().height;\n }\n\n this.setSpacerHeight(\n this.isScrollCompacted ? this.expandedHeaderHeight - this.compactHeaderHeight : 0\n );\n\n if (header.variant !== next) header.variant = next;\n }\n\n private observeHeader(header: BarTitleElement | null) {\n this.headerResizeObserver?.disconnect();\n this.headerResizeObserver = null;\n this.headerEl = header;\n this.expandedHeaderHeight = 0;\n this.setSpacerHeight(0);\n\n if (!header) return;\n if (typeof ResizeObserver !== 'undefined') {\n this.headerResizeObserver = new ResizeObserver(() => {\n if (header.variant === 'expanded') {\n this.expandedHeaderHeight = header.getBoundingClientRect().height;\n }\n });\n this.headerResizeObserver.observe(header);\n }\n this.syncHeaderVariant();\n }\n\n private handleHeaderSlotChange = (event: Event) => {\n const slot = event.target as HTMLSlotElement;\n const header = slot\n .assignedElements({ flatten: true })\n .find(element => element.tagName.toLowerCase() === 'ds-bar-title');\n this.observeHeader((header as BarTitleElement | undefined) ?? null);\n };\n\n render() {\n return (\n <Host\n role=\"main\"\n class={{\n 'shell-page-host--inset-default': this.contentInset === 'default',\n 'shell-page-host--inset-none': this.contentInset === 'none',\n [`shell-page-host--header-${this.effectiveVariant}`]: true,\n }}\n >\n <div\n ref={el => {\n this.sentinelEl = el ?? null;\n }}\n class=\"shell-page__scroll-sentinel\"\n aria-hidden=\"true\"\n />\n <div class=\"shell-page__sticky-header\">\n <slot name=\"header\" onSlotchange={this.handleHeaderSlotChange} />\n </div>\n <div\n ref={el => {\n this.spacerEl = el ?? null;\n }}\n class=\"shell-page__flow-spacer\"\n aria-hidden=\"true\"\n />\n <div class=\"shell-page__content\">\n <slot />\n </div>\n </Host>\n );\n }\n}\n",
|
|
186
|
+
"content": "import { Component, Element, h, Host, Prop, State } from '@stencil/core';\nimport { createRafCoalescer } from '../../shell/chrome-transition';\nimport { resolveCssLengthPx } from '../../utils/resolve-css-length-px';\nimport type { BarTitleVariant } from '../BarTitle/bar-title-types';\nimport { resolveShellPageCapacity, resolveShellPageHeaderVariant } from './shell-page-responsive';\nimport type {\n ShellPageCapacity,\n ShellPageContentInset,\n ShellPageHeaderPresentation,\n} from './shell-page-types';\n\ntype BarTitleElement = HTMLElement & { variant: BarTitleVariant };\n\n@Component({\n tag: 'ds-shell-page',\n styleUrl: 'ShellPage.css',\n scoped: true,\n})\nexport class ShellPage {\n private static readonly MAX_HEADER_REVEAL_FRAMES = 12;\n\n @Element() el!: HTMLElement;\n\n /** Automatic container/scroll behavior, or an explicit header variant override. */\n @Prop() headerPresentation: ShellPageHeaderPresentation = 'auto';\n\n /** Standard page gutters, or no inset for full-bleed page content. */\n @Prop() contentInset: ShellPageContentInset = 'default';\n\n @State() private capacity: ShellPageCapacity | null = null;\n @State() private pageTopVisible = true;\n\n private sentinelEl: HTMLElement | null = null;\n private spacerEl: HTMLElement | null = null;\n private headerEl: BarTitleElement | null = null;\n private expandedHeaderHeight = 0;\n private resizeObserver: ResizeObserver | null = null;\n private headerResizeObserver: ResizeObserver | null = null;\n private headerRevealFrame: number | null = null;\n private scrollRoot: HTMLElement | Window | null = null;\n private readonly layoutCoalescer = createRafCoalescer(() => this.syncCapacity());\n\n componentDidLoad() {\n // Resolve the already-laid-out page width before adopting a slotted header.\n // Waiting for the first ResizeObserver/RAF lets BarTitle paint its default\n // expanded variant for one frame when persistent shell chrome narrows a\n // newly navigated page.\n this.syncCapacity();\n this.observeHeader(this.findHeader());\n this.connectObservers();\n this.connectScrollRoot();\n this.layoutCoalescer.schedule();\n }\n\n componentDidRender() {\n this.syncHeaderVariant();\n }\n\n disconnectedCallback() {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n this.headerResizeObserver?.disconnect();\n this.headerResizeObserver = null;\n this.cancelHeaderReveal();\n this.scrollRoot?.removeEventListener('scroll', this.handleScroll);\n this.scrollRoot = null;\n this.layoutCoalescer.cancel();\n }\n\n private get effectiveVariant(): BarTitleVariant {\n return resolveShellPageHeaderVariant(\n this.headerPresentation,\n this.capacity ?? 'roomy',\n this.pageTopVisible\n );\n }\n\n private get isScrollCompacted(): boolean {\n return this.headerPresentation === 'auto' && this.capacity === 'roomy' && !this.pageTopVisible;\n }\n\n private connectObservers() {\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(() => this.layoutCoalescer.schedule());\n this.resizeObserver.observe(this.el);\n }\n }\n\n private composedParent(element: Element): Element | null {\n return (element as HTMLElement).assignedSlot?.parentElement ?? element.parentElement;\n }\n\n private findScrollRoot(): HTMLElement | Window {\n let ancestor = this.composedParent(this.el);\n while (ancestor && ancestor !== document.documentElement) {\n const overflow = getComputedStyle(ancestor).overflowY;\n if (overflow === 'auto' || overflow === 'scroll') return ancestor as HTMLElement;\n ancestor = this.composedParent(ancestor);\n }\n return window;\n }\n\n private connectScrollRoot() {\n this.scrollRoot?.removeEventListener('scroll', this.handleScroll);\n this.scrollRoot = this.findScrollRoot();\n this.scrollRoot.addEventListener('scroll', this.handleScroll, { passive: true });\n this.handleScroll();\n }\n\n private handleScroll = () => {\n if (!this.sentinelEl || !this.scrollRoot) return;\n const rootTop =\n this.scrollRoot === window ? 0 : (this.scrollRoot as HTMLElement).getBoundingClientRect().top;\n this.pageTopVisible = this.sentinelEl.getBoundingClientRect().top >= rootTop;\n };\n\n private findHeader(): BarTitleElement | null {\n return this.el.querySelector<BarTitleElement>('ds-bar-title');\n }\n\n private syncCapacity() {\n const inlineSize = this.el.getBoundingClientRect().width;\n if (inlineSize <= 0) return;\n\n const compactAt = resolveCssLengthPx('--dimension-panel-width-2xl', 0);\n const constrainedAt = resolveCssLengthPx('--dimension-panel-width-lg', 0);\n const hysteresis = resolveCssLengthPx('--dimension-space-100', 0);\n if (compactAt <= 0 || constrainedAt <= 0) return;\n\n const next = resolveShellPageCapacity({\n inlineSize,\n compactAt,\n constrainedAt,\n hysteresis,\n previous: this.capacity,\n });\n if (next !== this.capacity) this.capacity = next;\n else this.syncHeaderVariant();\n }\n\n private get compactHeaderHeight(): number {\n return resolveCssLengthPx('--dimension-size-600', 0);\n }\n\n private setSpacerHeight(height: number) {\n if (!this.spacerEl) return;\n this.spacerEl.style.setProperty('--ds-shell-page-flow-spacer', `${Math.max(0, height)}px`);\n }\n\n private variantClass(variant: BarTitleVariant): string {\n return `bar-title-host--${variant}`;\n }\n\n private cancelHeaderReveal() {\n if (this.headerRevealFrame !== null) cancelAnimationFrame(this.headerRevealFrame);\n this.headerRevealFrame = null;\n this.headerEl?.removeAttribute('data-shell-page-syncing');\n }\n\n private revealHeaderWhenSynced(header: BarTitleElement, variant: BarTitleVariant) {\n // Stencil re-renders within a frame or two of a prop change, but this cap\n // guarantees the header can never stay hidden indefinitely if that\n // assumption ever breaks.\n let framesRemaining = ShellPage.MAX_HEADER_REVEAL_FRAMES;\n const reveal = () => {\n if (this.headerEl !== header) {\n header.removeAttribute('data-shell-page-syncing');\n return;\n }\n framesRemaining -= 1;\n if (framesRemaining <= 0 || header.classList.contains(this.variantClass(variant))) {\n header.removeAttribute('data-shell-page-syncing');\n this.headerRevealFrame = null;\n return;\n }\n this.headerRevealFrame = requestAnimationFrame(reveal);\n };\n this.headerRevealFrame = requestAnimationFrame(reveal);\n }\n\n private syncHeaderVariant(concealUntilSynced = false) {\n const header = this.headerEl;\n if (!header) return;\n\n const next = this.effectiveVariant;\n if (header.variant === 'expanded') {\n this.expandedHeaderHeight = header.getBoundingClientRect().height;\n }\n\n this.setSpacerHeight(\n this.isScrollCompacted ? this.expandedHeaderHeight - this.compactHeaderHeight : 0\n );\n\n const renderedVariantIsStale = !header.classList.contains(this.variantClass(next));\n if (concealUntilSynced && renderedVariantIsStale) {\n header.setAttribute('data-shell-page-syncing', '');\n }\n if (header.variant !== next) header.variant = next;\n if (concealUntilSynced && renderedVariantIsStale) {\n this.revealHeaderWhenSynced(header, next);\n }\n }\n\n private observeHeader(header: BarTitleElement | null) {\n this.cancelHeaderReveal();\n this.headerResizeObserver?.disconnect();\n this.headerResizeObserver = null;\n this.headerEl = header;\n this.expandedHeaderHeight = 0;\n this.setSpacerHeight(0);\n\n if (!header) return;\n if (typeof ResizeObserver !== 'undefined') {\n this.headerResizeObserver = new ResizeObserver(() => {\n if (header.variant === 'expanded') {\n this.expandedHeaderHeight = header.getBoundingClientRect().height;\n }\n });\n this.headerResizeObserver.observe(header);\n }\n this.syncHeaderVariant(true);\n }\n\n private handleHeaderSlotChange = (event: Event) => {\n const slot = event.target as HTMLSlotElement;\n const header = slot\n .assignedElements({ flatten: true })\n .find(element => element.tagName.toLowerCase() === 'ds-bar-title');\n this.observeHeader((header as BarTitleElement | undefined) ?? null);\n };\n\n render() {\n return (\n <Host\n role=\"main\"\n class={{\n 'shell-page-host--inset-default': this.contentInset === 'default',\n 'shell-page-host--inset-none': this.contentInset === 'none',\n [`shell-page-host--header-${this.effectiveVariant}`]: true,\n }}\n >\n <div\n ref={el => {\n this.sentinelEl = el ?? null;\n }}\n class=\"shell-page__scroll-sentinel\"\n aria-hidden=\"true\"\n />\n <div class=\"shell-page__sticky-header\">\n <slot name=\"header\" onSlotchange={this.handleHeaderSlotChange} />\n </div>\n <div\n ref={el => {\n this.spacerEl = el ?? null;\n }}\n class=\"shell-page__flow-spacer\"\n aria-hidden=\"true\"\n />\n <div class=\"shell-page__content\">\n <slot />\n </div>\n </Host>\n );\n }\n}\n",
|
|
186
187
|
"type": "registry:ui"
|
|
187
188
|
},
|
|
188
189
|
{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
-
import { type BarTitleActionItem, type BarTitlePrimaryAction, type BarTitleSectionItem, type BarTitleVariant } from './bar-title-types';
|
|
2
|
+
import { type BarTitleActionItem, type BarTitleMode, type BarTitlePrimaryAction, type BarTitleSectionItem, type BarTitleVariant } from './bar-title-types';
|
|
3
3
|
export declare class BarTitle {
|
|
4
4
|
/** The page's single visible h1. */
|
|
5
5
|
heading: string;
|
|
@@ -25,6 +25,8 @@ export declare class BarTitle {
|
|
|
25
25
|
actionsAriaLabel: string;
|
|
26
26
|
/** Explicit visual/capacity variant. ShellPage owns automatic selection. */
|
|
27
27
|
variant: BarTitleVariant;
|
|
28
|
+
/** Semantic page-header treatment. Editor mode uses bold-brand create/edit chrome. */
|
|
29
|
+
mode: BarTitleMode;
|
|
28
30
|
/** Emitted when the leading Back action is activated. */
|
|
29
31
|
dsBack: EventEmitter<MouseEvent>;
|
|
30
32
|
/** Emitted with the newly selected page-section id. */
|
|
@@ -45,6 +47,9 @@ export declare class BarTitle {
|
|
|
45
47
|
handleSectionsChange(): void;
|
|
46
48
|
handleActionsChange(): void;
|
|
47
49
|
private get compact();
|
|
50
|
+
private get editor();
|
|
51
|
+
/** Tooltip copy is fixed and generic; backAriaLabel/actionsAriaLabel stay page-specific. */
|
|
52
|
+
private get backTooltipLabel();
|
|
48
53
|
private get primaryCollapsed();
|
|
49
54
|
private get selectableSections();
|
|
50
55
|
private get hasSectionSelector();
|
|
@@ -24,6 +24,7 @@ export interface BarTitlePrimaryAction extends BarTitleAction {
|
|
|
24
24
|
}
|
|
25
25
|
export type BarTitleActionItem = BarTitleAction | BarTitleDivider;
|
|
26
26
|
export type BarTitleVariant = 'expanded' | 'compact' | 'constrained';
|
|
27
|
+
export type BarTitleMode = 'default' | 'editor';
|
|
27
28
|
export type BarTitlePrimaryActionCollapse = 'auto' | 'never';
|
|
28
29
|
export declare function isBarTitleDivider(item: BarTitleSectionItem | BarTitleActionItem): item is BarTitleDivider;
|
|
29
30
|
//# sourceMappingURL=bar-title-types.d.ts.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ShellPageContentInset, ShellPageHeaderPresentation } from './shell-page-types';
|
|
2
2
|
export declare class ShellPage {
|
|
3
|
+
private static readonly MAX_HEADER_REVEAL_FRAMES;
|
|
3
4
|
el: HTMLElement;
|
|
4
5
|
/** Automatic container/scroll behavior, or an explicit header variant override. */
|
|
5
6
|
headerPresentation: ShellPageHeaderPresentation;
|
|
@@ -13,6 +14,7 @@ export declare class ShellPage {
|
|
|
13
14
|
private expandedHeaderHeight;
|
|
14
15
|
private resizeObserver;
|
|
15
16
|
private headerResizeObserver;
|
|
17
|
+
private headerRevealFrame;
|
|
16
18
|
private scrollRoot;
|
|
17
19
|
private readonly layoutCoalescer;
|
|
18
20
|
componentDidLoad(): void;
|
|
@@ -29,6 +31,9 @@ export declare class ShellPage {
|
|
|
29
31
|
private syncCapacity;
|
|
30
32
|
private get compactHeaderHeight();
|
|
31
33
|
private setSpacerHeight;
|
|
34
|
+
private variantClass;
|
|
35
|
+
private cancelHeaderReveal;
|
|
36
|
+
private revealHeaderWhenSynced;
|
|
32
37
|
private syncHeaderVariant;
|
|
33
38
|
private observeHeader;
|
|
34
39
|
private handleHeaderSlotChange;
|
|
@@ -10,7 +10,7 @@ import { IconColor, IconSize as IconSize1 } from "./components/Icon/Icon";
|
|
|
10
10
|
import { BadgeSurface, BadgeVariant } from "./components/Badge/Badge";
|
|
11
11
|
import { NavChromeStyle } from "./shell/nav-chrome";
|
|
12
12
|
import { BarNavTab } from "./components/BarNav/bar-nav-types";
|
|
13
|
-
import { BarTitleActionItem, BarTitlePrimaryAction, BarTitleSectionItem, BarTitleVariant } from "./components/BarTitle/bar-title-types";
|
|
13
|
+
import { BarTitleActionItem, BarTitleMode, BarTitlePrimaryAction, BarTitleSectionItem, BarTitleVariant } from "./components/BarTitle/bar-title-types";
|
|
14
14
|
import { ButtonFilledBackground, ButtonFilledContrast, ButtonFilledIntent, ButtonFilledSize, ButtonFilledVariant, ButtonFilledWidth } from "./components/ButtonFilled/ButtonFilled";
|
|
15
15
|
import { ButtonUnfilledBackground, ButtonUnfilledPopup, ButtonUnfilledSize, ButtonUnfilledVariant, ButtonUnfilledWidth } from "./components/ButtonUnfilled/ButtonUnfilled";
|
|
16
16
|
import { CardDataVizDonutWidth } from "./components/CardDataVizDonut/CardDataVizDonut";
|
|
@@ -58,7 +58,7 @@ export { IconColor, IconSize as IconSize1 } from "./components/Icon/Icon";
|
|
|
58
58
|
export { BadgeSurface, BadgeVariant } from "./components/Badge/Badge";
|
|
59
59
|
export { NavChromeStyle } from "./shell/nav-chrome";
|
|
60
60
|
export { BarNavTab } from "./components/BarNav/bar-nav-types";
|
|
61
|
-
export { BarTitleActionItem, BarTitlePrimaryAction, BarTitleSectionItem, BarTitleVariant } from "./components/BarTitle/bar-title-types";
|
|
61
|
+
export { BarTitleActionItem, BarTitleMode, BarTitlePrimaryAction, BarTitleSectionItem, BarTitleVariant } from "./components/BarTitle/bar-title-types";
|
|
62
62
|
export { ButtonFilledBackground, ButtonFilledContrast, ButtonFilledIntent, ButtonFilledSize, ButtonFilledVariant, ButtonFilledWidth } from "./components/ButtonFilled/ButtonFilled";
|
|
63
63
|
export { ButtonUnfilledBackground, ButtonUnfilledPopup, ButtonUnfilledSize, ButtonUnfilledVariant, ButtonUnfilledWidth } from "./components/ButtonUnfilled/ButtonUnfilled";
|
|
64
64
|
export { CardDataVizDonutWidth } from "./components/CardDataVizDonut/CardDataVizDonut";
|
|
@@ -313,6 +313,11 @@ export namespace Components {
|
|
|
313
313
|
* The page's single visible h1.
|
|
314
314
|
*/
|
|
315
315
|
"heading": string;
|
|
316
|
+
/**
|
|
317
|
+
* Semantic page-header treatment. Editor mode uses bold-brand create/edit chrome.
|
|
318
|
+
* @default 'default'
|
|
319
|
+
*/
|
|
320
|
+
"mode": BarTitleMode;
|
|
316
321
|
/**
|
|
317
322
|
* The one highest-emphasis page action.
|
|
318
323
|
* @default null
|
|
@@ -3596,6 +3601,11 @@ declare namespace LocalJSX {
|
|
|
3596
3601
|
* The page's single visible h1.
|
|
3597
3602
|
*/
|
|
3598
3603
|
"heading": string;
|
|
3604
|
+
/**
|
|
3605
|
+
* Semantic page-header treatment. Editor mode uses bold-brand create/edit chrome.
|
|
3606
|
+
* @default 'default'
|
|
3607
|
+
*/
|
|
3608
|
+
"mode"?: BarTitleMode;
|
|
3599
3609
|
/**
|
|
3600
3610
|
* Emitted with the activated primary or overflow action id.
|
|
3601
3611
|
*/
|
|
@@ -5889,6 +5899,7 @@ declare namespace LocalJSX {
|
|
|
5889
5899
|
"sectionsAriaLabel": string;
|
|
5890
5900
|
"actionsAriaLabel": string;
|
|
5891
5901
|
"variant": BarTitleVariant;
|
|
5902
|
+
"mode": BarTitleMode;
|
|
5892
5903
|
}
|
|
5893
5904
|
interface DsButtonFilledAttributes {
|
|
5894
5905
|
"variant": ButtonFilledVariant;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ds-mo/ui",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.1.0",
|
|
4
4
|
"description": "CompoMo — composable web components styled with TokoMo design tokens",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"web-components",
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
"peerDependencies": {
|
|
105
105
|
"@angular/core": ">=19 <23",
|
|
106
106
|
"@angular/forms": ">=19 <23",
|
|
107
|
-
"@ds-mo/icons": "^6.
|
|
107
|
+
"@ds-mo/icons": "^6.4.0",
|
|
108
108
|
"@ds-mo/tokens": "^3.1.1",
|
|
109
109
|
"react": "^18 || ^19",
|
|
110
110
|
"react-dom": "^18 || ^19"
|
|
@@ -129,7 +129,7 @@
|
|
|
129
129
|
"@angular/core": "^22.0.7",
|
|
130
130
|
"@angular/forms": "^22.0.7",
|
|
131
131
|
"@axe-core/playwright": "^4.12.1",
|
|
132
|
-
"@ds-mo/icons": "^6.
|
|
132
|
+
"@ds-mo/icons": "^6.4.0",
|
|
133
133
|
"@ds-mo/tokens": "^3.1.1",
|
|
134
134
|
"@eslint/js": "^10.0.1",
|
|
135
135
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{p as t,H as e,h as s,a,t as c}from"./index.js";import{d as i}from"./p-DuNZGFkV.js";import{d}from"./p-Bs6SS34m.js";const n=()=>`.sc-ds-empty-state-h{display:block;width:100%;height:100%}.sc-ds-empty-state-h,.empty-state.sc-ds-empty-state,.empty-state__text.sc-ds-empty-state{box-sizing:border-box}.empty-state.sc-ds-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--dimension-space-100);height:100%;width:100%;text-align:center}.empty-state__icon.sc-ds-empty-state{flex:0 0 auto}.empty-state__text.sc-ds-empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--dimension-space-050);width:100%}`;const o=t(class t extends e{constructor(t){super();if(t!==false){this.__registerHost()}this.body=""}render(){const t=Boolean(this.heading?.trim());const e=t&&Boolean(this.icon);return s(a,{key:"868cec0d6bf49b71c19eeb90410c475f1f6b59eb"},s("div",{key:"b322ac4bcc2d3deee2612585b30a104b1c39f620",class:"empty-state"},e&&s("ds-icon",{key:"c5eb4fe4904be97d7a080918328583d11b6f67b1",class:"empty-state__icon",name:this.icon,size:"xl",color:"primary"}),s("div",{key:"935d562f277912a31b75d203f7dcc3bf37cccf85",class:"empty-state__text"},t&&s("ds-text",{key:"e404c1af46fcc77296a4ef669e6a61d5734046aa",class:"empty-state__title",as:"div",variant:"text-title-small",color:"primary",align:"center"},this.heading),this.body&&s("ds-text",{key:"5dd3b8393ee9ca5f89838c83785371a3b450b1b0",class:"empty-state__body",as:"p",variant:"text-body-medium",color:"secondary",align:"center"},this.body))))}static get style(){return n()}},[2,"ds-empty-state",{icon:[1],heading:[1],body:[1]}]);function m(){if(typeof customElements==="undefined"){return}const t=["ds-empty-state","ds-icon","ds-text"];t.forEach((t=>{switch(t){case"ds-empty-state":if(!customElements.get(c(t))){customElements.define(c(t),o)}break;case"ds-icon":if(!customElements.get(c(t))){i()}break;case"ds-text":if(!customElements.get(c(t))){d()}break}}))}m();export{o as E,m as d};
|
|
2
|
-
//# sourceMappingURL=p-Cf2J9MEo.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["flagIconLoaders","FlagAustria","import","then","m","FlagBelgium","FlagBulgaria","FlagCanada","FlagCroatia","FlagCyprus","FlagCzechRepublic","FlagDenmark","FlagEU","FlagEstonia","FlagFinland","FlagFrance","FlagGermany","FlagGreece","FlagHungary","FlagIreland","FlagItaly","FlagLatvia","FlagLithuania","FlagLuxembourg","FlagMalta","FlagMexico","FlagNetherlands","FlagPoland","FlagPortugal","FlagRomania","FlagSlovakia","FlagSlovenia","FlagSpain","FlagSweden","FlagUnitedKingdom","FlagUnitedStates","systemIconLoaders","AI","AIChip","AINew","AISparkle","AUX","AUXFilled","AndroidFilled","ArrowDown","ArrowLeft","ArrowPath","ArrowRight","ArrowUp","ArrowsDiagonal","ArrowsDiff","ArrowsDiffDisabled","ArrowsVertical","AtSign","Avatar","BackslashBrackets","BatteryCharging","BatteryEmpty","BatteryFull","BatteryHalf","BatteryLow","Beaker","Bell","BellCircle","BellExclamation","BellFilled","BellRinging","BellWifi","BlackWhite","BlankUI","Bluetooth","Bolt","BoltFilled","Bookmark","Box","Braces","Bug","BuildingFacility","BuildingHome","BuildingOffice","BuildingPublic","BuildingShop","Bulb","Calculator","Calendar","CalendarClock","CameraA","CameraB","Card","CardPerson","Cart","Chart","Check","CheckCircle","CheckCircleFilled","CheckDouble","ChevronDown","ChevronLeft","ChevronLeftDouble","ChevronRight","ChevronRightDouble","ChevronUp","ChevronUpDown","Circle","CircleArrow","CircleArrowsDiff","CircleArrowsDiffDisabled","CircleConcentricFilled","CircleConcentricThree","CircleConcentricTwo","CircleExclamation","CircleExclamationFilled","CircleFastForward","CircleFilled","CircleGrid","CirclePlay","CircleQuestion","CircleSlash","Clipboard","ClipboardCheck","Clock","ClockDefer","ClockFilled","ClockSixteenHour","Cloud","CloudEllipses","CloudLightning","CloudRain","CloudRainSun","CloudSun","CloudWind","Cluster","Coin","CoinStack","CoinStackGeneral","Compass","Copy","Crop","Cross","CrossCircle","CrossCircleFilled","Cube","Cup","CursorPointer","CursorPointerMinus","CursorPointerPlus","Dashboard","DeviceAIDashcamPlus","DeviceAssetTracker","DeviceDVR","DeviceDashcam","DeviceDashcamLiveStream","DeviceDoorSensor","DeviceMobile","DeviceMobileTwo","DeviceOmnicam","DeviceSensor","DeviceTablet","DeviceVehicleGateway","Devices","Document","DocumentArrow","DocumentChart","DocumentDollar","DocumentGear","DocumentInverted","DocumentPencil","DocumentPlus","DocumentQuestion","DocumentReceipt","DocumentStacked","Dot","DotFilled","DotPath","Download","Drag","Ellipses","Email","Engine","Enter","EntityAsset","EntityAssetFilled","EntityDriver","EntityDriverFilled","EntityTravelGroup","EntityTravelGroupFilled","EntityVehicle","EntityVehicleCharging","EntityVehicleChargingFilled","EntityVehicleFilled","EntityVehicleImmobilized","EntityVehicleImmobilizedFilled","ErrorTriangle","ErrorTriangleFilled","ErrorTriangleSimpleFilled","Export","ExternalLink","Eye","EyeDisabled","EyeLock","FastForward","FastForwardSkip","Filters","FitToScreen","Flag","FlagFilled","FloppyDisk","Folder","FolderFilled","FuelPump","FullScreen","FullScreenExit","Gauge","GaugeTemperature","Gear","GearCheck","Geofence","GeofenceCircle","GeofenceDiamond","GeofenceSquare","GlobeNetwork","GlobeWorldMap","Graph","GraphArrow","GraphBars","GraphDecreasing","GraphIncreasing","GroupBy","Hamburger","HandHeart","HandOpen","Headset","History","HourGlass","Image","Import","ImportClock","Inbox","IosFilled","Jerrycan","KeyA","KeyB","KeyCmd","KeyShift","LED","Layers","Leaf","LeftCollapse","LeftCollapseB","LeftExpand","LeftExpandB","LeftTurnSignal","LetterB","LetterC","LetterI","License","LicensePlate","Lifebuoy","Link","List","Loads","LocationPin","LocationPinArrows","LocationPinDisabled","LocationPinDollar","LockClosed","LockClosedFilled","LockOpen","Logout","Logs","LogsMagnifyingGlass","MagnifyingGlass","MagnifyingGlassGraph","MagnifyingGlassZoomIn","MagnifyingGlassZoomOut","MapNavigation","MapPage","MapPin","MarkRead","Match","MessageBubble","MessageBubbleStack","Messaging","Mic","MicMute","Minimize","Monitor","Notification","NumberTen","OctagonSubtract","Odometer","OverviewAI","PanelCollapse","PanelExpand","Paperclip","PaperplaneSend","Paragraph","ParagraphCheck","ParagraphPencil","Pause","PauseFilled","Pencil","PencilSquiggle","Person","PersonAt","PersonConnect","PersonFrame","PersonGear","PersonGroup","PersonGroupArrows","PersonManager","PersonShield","PersonStar","Phone","PhoneDisconnect","PicmanFilled","Pin","PipBottomLeft","PipBottomRight","PipTopLeft","PipTopRight","Play","PlayFilled","Plug","Plus","PlusCircle","Preferences","Printer","PunchCard","Puzzle","PuzzleJoined","Redo","Refresh","Restore","RewardRibbon","Rewind","RewindSkip","RewindSkipFilled","RightCollapse","RightCollapseB","RightExpand","RightExpandB","RightTurnSignal","Rotate","Satellite","Scan","Scissor","Scope","Seatbelt","SeatbeltBuckle","Shapes","ShareCircles","ShareCirclesFilled","SharePaperplane","Shield","ShieldCheck","ShieldCheckmarkFilled","ShieldCircle","ShieldCircleFilled","ShieldCross","ShieldCrossFilled","ShieldFilled","ShieldLock","ShieldLockFilled","ShoppingBag","Snowflake","SpeakerPhone","SpeedometerArrow","SpeedometerLeft","SpeedometerRight","SpikeCirclePercentage","SpikeCirclePercentageFilled","Square","SquareArrowTopRight","SquareCheck","SquareCheckFilled","SquareDollar","SquareDollarFilled","SquareDottedMinus","SquareFilled","SquareGrid","SquarePencil","SquarePlus","SquareSubtract","SquareSubtractFilled","Star","StarFilled","Stopwatch","Street","Subtract","SubtractCircle","SubtractCircleFilled","Table","Tag","Target","TargetDollar","Text","ThemeDark","ThemeLight","ThumbsDown","ThumbsDownFilled","ThumbsUp","ThumbsUpFilled","TirePressure","Toggle","TrafficLight","Trash","Trophy","TurnSignal","TurnSignalFilled","Undo","Upgrade","Upload","VehicleTrailer","VehicleTruck","VehicleTruckMagnifyingGlass","Video","ViewMenu","Volume","VolumeFilled","VolumeMute","VolumeMuteFilled","WandSparkle","Waveform","Webhooks","Whistle","WifiHorizontal","WifiTower","WifiVertical","WifiVerticalFilled","WifiVerticalFilledDisabled","WorkflowA","WorkflowB","Wrench","ZoomBackOut","CACHE_KEY","Symbol","for","iconCacheKey","name","flag","iconCache","g","globalThis","Map","FORBIDDEN_ELEMENTS","Set","isValidIconSvgElement","el","has","localName","toLowerCase","attr","getAttributeNames","lower","startsWith","value","getAttribute","i","children","length","isValidIconSvgRoot","root","parseIconSvg","svg","DOMParser","doc","parseFromString","querySelector","documentElement","iconCss","Icon","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","size","color","loadToken","renderedSvg","resolveSvg","key","token","cached","get","undefined","loaders","loader","Object","prototype","hasOwnProperty","call","set","catch","componentWillLoad","updateSvg","container","replaceChildren","removeAttribute","setAttribute","style","display","flexShrink","width","height","onIconChange","componentDidRender","render","isCustomColor","cls","icon","h","Host","alignItems","justifyContent","class","role","label"],"sources":["src/wc/components/Icon/flag-icon-catalog.ts","src/wc/components/Icon/system-icon-catalog.ts","src/wc/components/Icon/icon-cache.ts","src/wc/components/Icon/icon-svg.ts","src/wc/components/Icon/Icon.css?tag=ds-icon&encapsulation=scoped","src/wc/components/Icon/Icon.tsx"],"sourcesContent":["/** Auto-generated by scripts/generate-icon-catalog.mjs — do not edit. */\n\nexport const flagIconLoaders: Record<string, () => Promise<string>> = {\n FlagAustria: () => import('@ds-mo/icons/svg/flags/FlagAustria').then(m => m.FlagAustria),\n FlagBelgium: () => import('@ds-mo/icons/svg/flags/FlagBelgium').then(m => m.FlagBelgium),\n FlagBulgaria: () => import('@ds-mo/icons/svg/flags/FlagBulgaria').then(m => m.FlagBulgaria),\n FlagCanada: () => import('@ds-mo/icons/svg/flags/FlagCanada').then(m => m.FlagCanada),\n FlagCroatia: () => import('@ds-mo/icons/svg/flags/FlagCroatia').then(m => m.FlagCroatia),\n FlagCyprus: () => import('@ds-mo/icons/svg/flags/FlagCyprus').then(m => m.FlagCyprus),\n FlagCzechRepublic: () => import('@ds-mo/icons/svg/flags/FlagCzechRepublic').then(m => m.FlagCzechRepublic),\n FlagDenmark: () => import('@ds-mo/icons/svg/flags/FlagDenmark').then(m => m.FlagDenmark),\n FlagEU: () => import('@ds-mo/icons/svg/flags/FlagEU').then(m => m.FlagEU),\n FlagEstonia: () => import('@ds-mo/icons/svg/flags/FlagEstonia').then(m => m.FlagEstonia),\n FlagFinland: () => import('@ds-mo/icons/svg/flags/FlagFinland').then(m => m.FlagFinland),\n FlagFrance: () => import('@ds-mo/icons/svg/flags/FlagFrance').then(m => m.FlagFrance),\n FlagGermany: () => import('@ds-mo/icons/svg/flags/FlagGermany').then(m => m.FlagGermany),\n FlagGreece: () => import('@ds-mo/icons/svg/flags/FlagGreece').then(m => m.FlagGreece),\n FlagHungary: () => import('@ds-mo/icons/svg/flags/FlagHungary').then(m => m.FlagHungary),\n FlagIreland: () => import('@ds-mo/icons/svg/flags/FlagIreland').then(m => m.FlagIreland),\n FlagItaly: () => import('@ds-mo/icons/svg/flags/FlagItaly').then(m => m.FlagItaly),\n FlagLatvia: () => import('@ds-mo/icons/svg/flags/FlagLatvia').then(m => m.FlagLatvia),\n FlagLithuania: () => import('@ds-mo/icons/svg/flags/FlagLithuania').then(m => m.FlagLithuania),\n FlagLuxembourg: () => import('@ds-mo/icons/svg/flags/FlagLuxembourg').then(m => m.FlagLuxembourg),\n FlagMalta: () => import('@ds-mo/icons/svg/flags/FlagMalta').then(m => m.FlagMalta),\n FlagMexico: () => import('@ds-mo/icons/svg/flags/FlagMexico').then(m => m.FlagMexico),\n FlagNetherlands: () => import('@ds-mo/icons/svg/flags/FlagNetherlands').then(m => m.FlagNetherlands),\n FlagPoland: () => import('@ds-mo/icons/svg/flags/FlagPoland').then(m => m.FlagPoland),\n FlagPortugal: () => import('@ds-mo/icons/svg/flags/FlagPortugal').then(m => m.FlagPortugal),\n FlagRomania: () => import('@ds-mo/icons/svg/flags/FlagRomania').then(m => m.FlagRomania),\n FlagSlovakia: () => import('@ds-mo/icons/svg/flags/FlagSlovakia').then(m => m.FlagSlovakia),\n FlagSlovenia: () => import('@ds-mo/icons/svg/flags/FlagSlovenia').then(m => m.FlagSlovenia),\n FlagSpain: () => import('@ds-mo/icons/svg/flags/FlagSpain').then(m => m.FlagSpain),\n FlagSweden: () => import('@ds-mo/icons/svg/flags/FlagSweden').then(m => m.FlagSweden),\n FlagUnitedKingdom: () => import('@ds-mo/icons/svg/flags/FlagUnitedKingdom').then(m => m.FlagUnitedKingdom),\n FlagUnitedStates: () => import('@ds-mo/icons/svg/flags/FlagUnitedStates').then(m => m.FlagUnitedStates),\n};\n","/** Auto-generated by scripts/generate-icon-catalog.mjs — do not edit. */\n\nexport const systemIconLoaders: Record<string, () => Promise<string>> = {\n AI: () => import('@ds-mo/icons/svg/AI').then(m => m.AI),\n AIChip: () => import('@ds-mo/icons/svg/AIChip').then(m => m.AIChip),\n AINew: () => import('@ds-mo/icons/svg/AINew').then(m => m.AINew),\n AISparkle: () => import('@ds-mo/icons/svg/AISparkle').then(m => m.AISparkle),\n AUX: () => import('@ds-mo/icons/svg/AUX').then(m => m.AUX),\n AUXFilled: () => import('@ds-mo/icons/svg/AUXFilled').then(m => m.AUXFilled),\n AndroidFilled: () => import('@ds-mo/icons/svg/AndroidFilled').then(m => m.AndroidFilled),\n ArrowDown: () => import('@ds-mo/icons/svg/ArrowDown').then(m => m.ArrowDown),\n ArrowLeft: () => import('@ds-mo/icons/svg/ArrowLeft').then(m => m.ArrowLeft),\n ArrowPath: () => import('@ds-mo/icons/svg/ArrowPath').then(m => m.ArrowPath),\n ArrowRight: () => import('@ds-mo/icons/svg/ArrowRight').then(m => m.ArrowRight),\n ArrowUp: () => import('@ds-mo/icons/svg/ArrowUp').then(m => m.ArrowUp),\n ArrowsDiagonal: () => import('@ds-mo/icons/svg/ArrowsDiagonal').then(m => m.ArrowsDiagonal),\n ArrowsDiff: () => import('@ds-mo/icons/svg/ArrowsDiff').then(m => m.ArrowsDiff),\n ArrowsDiffDisabled: () => import('@ds-mo/icons/svg/ArrowsDiffDisabled').then(m => m.ArrowsDiffDisabled),\n ArrowsVertical: () => import('@ds-mo/icons/svg/ArrowsVertical').then(m => m.ArrowsVertical),\n AtSign: () => import('@ds-mo/icons/svg/AtSign').then(m => m.AtSign),\n Avatar: () => import('@ds-mo/icons/svg/Avatar').then(m => m.Avatar),\n BackslashBrackets: () => import('@ds-mo/icons/svg/BackslashBrackets').then(m => m.BackslashBrackets),\n BatteryCharging: () => import('@ds-mo/icons/svg/BatteryCharging').then(m => m.BatteryCharging),\n BatteryEmpty: () => import('@ds-mo/icons/svg/BatteryEmpty').then(m => m.BatteryEmpty),\n BatteryFull: () => import('@ds-mo/icons/svg/BatteryFull').then(m => m.BatteryFull),\n BatteryHalf: () => import('@ds-mo/icons/svg/BatteryHalf').then(m => m.BatteryHalf),\n BatteryLow: () => import('@ds-mo/icons/svg/BatteryLow').then(m => m.BatteryLow),\n Beaker: () => import('@ds-mo/icons/svg/Beaker').then(m => m.Beaker),\n Bell: () => import('@ds-mo/icons/svg/Bell').then(m => m.Bell),\n BellCircle: () => import('@ds-mo/icons/svg/BellCircle').then(m => m.BellCircle),\n BellExclamation: () => import('@ds-mo/icons/svg/BellExclamation').then(m => m.BellExclamation),\n BellFilled: () => import('@ds-mo/icons/svg/BellFilled').then(m => m.BellFilled),\n BellRinging: () => import('@ds-mo/icons/svg/BellRinging').then(m => m.BellRinging),\n BellWifi: () => import('@ds-mo/icons/svg/BellWifi').then(m => m.BellWifi),\n BlackWhite: () => import('@ds-mo/icons/svg/BlackWhite').then(m => m.BlackWhite),\n BlankUI: () => import('@ds-mo/icons/svg/BlankUI').then(m => m.BlankUI),\n Bluetooth: () => import('@ds-mo/icons/svg/Bluetooth').then(m => m.Bluetooth),\n Bolt: () => import('@ds-mo/icons/svg/Bolt').then(m => m.Bolt),\n BoltFilled: () => import('@ds-mo/icons/svg/BoltFilled').then(m => m.BoltFilled),\n Bookmark: () => import('@ds-mo/icons/svg/Bookmark').then(m => m.Bookmark),\n Box: () => import('@ds-mo/icons/svg/Box').then(m => m.Box),\n Braces: () => import('@ds-mo/icons/svg/Braces').then(m => m.Braces),\n Bug: () => import('@ds-mo/icons/svg/Bug').then(m => m.Bug),\n BuildingFacility: () => import('@ds-mo/icons/svg/BuildingFacility').then(m => m.BuildingFacility),\n BuildingHome: () => import('@ds-mo/icons/svg/BuildingHome').then(m => m.BuildingHome),\n BuildingOffice: () => import('@ds-mo/icons/svg/BuildingOffice').then(m => m.BuildingOffice),\n BuildingPublic: () => import('@ds-mo/icons/svg/BuildingPublic').then(m => m.BuildingPublic),\n BuildingShop: () => import('@ds-mo/icons/svg/BuildingShop').then(m => m.BuildingShop),\n Bulb: () => import('@ds-mo/icons/svg/Bulb').then(m => m.Bulb),\n Calculator: () => import('@ds-mo/icons/svg/Calculator').then(m => m.Calculator),\n Calendar: () => import('@ds-mo/icons/svg/Calendar').then(m => m.Calendar),\n CalendarClock: () => import('@ds-mo/icons/svg/CalendarClock').then(m => m.CalendarClock),\n CameraA: () => import('@ds-mo/icons/svg/CameraA').then(m => m.CameraA),\n CameraB: () => import('@ds-mo/icons/svg/CameraB').then(m => m.CameraB),\n Card: () => import('@ds-mo/icons/svg/Card').then(m => m.Card),\n CardPerson: () => import('@ds-mo/icons/svg/CardPerson').then(m => m.CardPerson),\n Cart: () => import('@ds-mo/icons/svg/Cart').then(m => m.Cart),\n Chart: () => import('@ds-mo/icons/svg/Chart').then(m => m.Chart),\n Check: () => import('@ds-mo/icons/svg/Check').then(m => m.Check),\n CheckCircle: () => import('@ds-mo/icons/svg/CheckCircle').then(m => m.CheckCircle),\n CheckCircleFilled: () => import('@ds-mo/icons/svg/CheckCircleFilled').then(m => m.CheckCircleFilled),\n CheckDouble: () => import('@ds-mo/icons/svg/CheckDouble').then(m => m.CheckDouble),\n ChevronDown: () => import('@ds-mo/icons/svg/ChevronDown').then(m => m.ChevronDown),\n ChevronLeft: () => import('@ds-mo/icons/svg/ChevronLeft').then(m => m.ChevronLeft),\n ChevronLeftDouble: () => import('@ds-mo/icons/svg/ChevronLeftDouble').then(m => m.ChevronLeftDouble),\n ChevronRight: () => import('@ds-mo/icons/svg/ChevronRight').then(m => m.ChevronRight),\n ChevronRightDouble: () => import('@ds-mo/icons/svg/ChevronRightDouble').then(m => m.ChevronRightDouble),\n ChevronUp: () => import('@ds-mo/icons/svg/ChevronUp').then(m => m.ChevronUp),\n ChevronUpDown: () => import('@ds-mo/icons/svg/ChevronUpDown').then(m => m.ChevronUpDown),\n Circle: () => import('@ds-mo/icons/svg/Circle').then(m => m.Circle),\n CircleArrow: () => import('@ds-mo/icons/svg/CircleArrow').then(m => m.CircleArrow),\n CircleArrowsDiff: () => import('@ds-mo/icons/svg/CircleArrowsDiff').then(m => m.CircleArrowsDiff),\n CircleArrowsDiffDisabled: () => import('@ds-mo/icons/svg/CircleArrowsDiffDisabled').then(m => m.CircleArrowsDiffDisabled),\n CircleConcentricFilled: () => import('@ds-mo/icons/svg/CircleConcentricFilled').then(m => m.CircleConcentricFilled),\n CircleConcentricThree: () => import('@ds-mo/icons/svg/CircleConcentricThree').then(m => m.CircleConcentricThree),\n CircleConcentricTwo: () => import('@ds-mo/icons/svg/CircleConcentricTwo').then(m => m.CircleConcentricTwo),\n CircleExclamation: () => import('@ds-mo/icons/svg/CircleExclamation').then(m => m.CircleExclamation),\n CircleExclamationFilled: () => import('@ds-mo/icons/svg/CircleExclamationFilled').then(m => m.CircleExclamationFilled),\n CircleFastForward: () => import('@ds-mo/icons/svg/CircleFastForward').then(m => m.CircleFastForward),\n CircleFilled: () => import('@ds-mo/icons/svg/CircleFilled').then(m => m.CircleFilled),\n CircleGrid: () => import('@ds-mo/icons/svg/CircleGrid').then(m => m.CircleGrid),\n CirclePlay: () => import('@ds-mo/icons/svg/CirclePlay').then(m => m.CirclePlay),\n CircleQuestion: () => import('@ds-mo/icons/svg/CircleQuestion').then(m => m.CircleQuestion),\n CircleSlash: () => import('@ds-mo/icons/svg/CircleSlash').then(m => m.CircleSlash),\n Clipboard: () => import('@ds-mo/icons/svg/Clipboard').then(m => m.Clipboard),\n ClipboardCheck: () => import('@ds-mo/icons/svg/ClipboardCheck').then(m => m.ClipboardCheck),\n Clock: () => import('@ds-mo/icons/svg/Clock').then(m => m.Clock),\n ClockDefer: () => import('@ds-mo/icons/svg/ClockDefer').then(m => m.ClockDefer),\n ClockFilled: () => import('@ds-mo/icons/svg/ClockFilled').then(m => m.ClockFilled),\n ClockSixteenHour: () => import('@ds-mo/icons/svg/ClockSixteenHour').then(m => m.ClockSixteenHour),\n Cloud: () => import('@ds-mo/icons/svg/Cloud').then(m => m.Cloud),\n CloudEllipses: () => import('@ds-mo/icons/svg/CloudEllipses').then(m => m.CloudEllipses),\n CloudLightning: () => import('@ds-mo/icons/svg/CloudLightning').then(m => m.CloudLightning),\n CloudRain: () => import('@ds-mo/icons/svg/CloudRain').then(m => m.CloudRain),\n CloudRainSun: () => import('@ds-mo/icons/svg/CloudRainSun').then(m => m.CloudRainSun),\n CloudSun: () => import('@ds-mo/icons/svg/CloudSun').then(m => m.CloudSun),\n CloudWind: () => import('@ds-mo/icons/svg/CloudWind').then(m => m.CloudWind),\n Cluster: () => import('@ds-mo/icons/svg/Cluster').then(m => m.Cluster),\n Coin: () => import('@ds-mo/icons/svg/Coin').then(m => m.Coin),\n CoinStack: () => import('@ds-mo/icons/svg/CoinStack').then(m => m.CoinStack),\n CoinStackGeneral: () => import('@ds-mo/icons/svg/CoinStackGeneral').then(m => m.CoinStackGeneral),\n Compass: () => import('@ds-mo/icons/svg/Compass').then(m => m.Compass),\n Copy: () => import('@ds-mo/icons/svg/Copy').then(m => m.Copy),\n Crop: () => import('@ds-mo/icons/svg/Crop').then(m => m.Crop),\n Cross: () => import('@ds-mo/icons/svg/Cross').then(m => m.Cross),\n CrossCircle: () => import('@ds-mo/icons/svg/CrossCircle').then(m => m.CrossCircle),\n CrossCircleFilled: () => import('@ds-mo/icons/svg/CrossCircleFilled').then(m => m.CrossCircleFilled),\n Cube: () => import('@ds-mo/icons/svg/Cube').then(m => m.Cube),\n Cup: () => import('@ds-mo/icons/svg/Cup').then(m => m.Cup),\n CursorPointer: () => import('@ds-mo/icons/svg/CursorPointer').then(m => m.CursorPointer),\n CursorPointerMinus: () => import('@ds-mo/icons/svg/CursorPointerMinus').then(m => m.CursorPointerMinus),\n CursorPointerPlus: () => import('@ds-mo/icons/svg/CursorPointerPlus').then(m => m.CursorPointerPlus),\n Dashboard: () => import('@ds-mo/icons/svg/Dashboard').then(m => m.Dashboard),\n DeviceAIDashcamPlus: () => import('@ds-mo/icons/svg/DeviceAIDashcamPlus').then(m => m.DeviceAIDashcamPlus),\n DeviceAssetTracker: () => import('@ds-mo/icons/svg/DeviceAssetTracker').then(m => m.DeviceAssetTracker),\n DeviceDVR: () => import('@ds-mo/icons/svg/DeviceDVR').then(m => m.DeviceDVR),\n DeviceDashcam: () => import('@ds-mo/icons/svg/DeviceDashcam').then(m => m.DeviceDashcam),\n DeviceDashcamLiveStream: () => import('@ds-mo/icons/svg/DeviceDashcamLiveStream').then(m => m.DeviceDashcamLiveStream),\n DeviceDoorSensor: () => import('@ds-mo/icons/svg/DeviceDoorSensor').then(m => m.DeviceDoorSensor),\n DeviceMobile: () => import('@ds-mo/icons/svg/DeviceMobile').then(m => m.DeviceMobile),\n DeviceMobileTwo: () => import('@ds-mo/icons/svg/DeviceMobileTwo').then(m => m.DeviceMobileTwo),\n DeviceOmnicam: () => import('@ds-mo/icons/svg/DeviceOmnicam').then(m => m.DeviceOmnicam),\n DeviceSensor: () => import('@ds-mo/icons/svg/DeviceSensor').then(m => m.DeviceSensor),\n DeviceTablet: () => import('@ds-mo/icons/svg/DeviceTablet').then(m => m.DeviceTablet),\n DeviceVehicleGateway: () => import('@ds-mo/icons/svg/DeviceVehicleGateway').then(m => m.DeviceVehicleGateway),\n Devices: () => import('@ds-mo/icons/svg/Devices').then(m => m.Devices),\n Document: () => import('@ds-mo/icons/svg/Document').then(m => m.Document),\n DocumentArrow: () => import('@ds-mo/icons/svg/DocumentArrow').then(m => m.DocumentArrow),\n DocumentChart: () => import('@ds-mo/icons/svg/DocumentChart').then(m => m.DocumentChart),\n DocumentDollar: () => import('@ds-mo/icons/svg/DocumentDollar').then(m => m.DocumentDollar),\n DocumentGear: () => import('@ds-mo/icons/svg/DocumentGear').then(m => m.DocumentGear),\n DocumentInverted: () => import('@ds-mo/icons/svg/DocumentInverted').then(m => m.DocumentInverted),\n DocumentPencil: () => import('@ds-mo/icons/svg/DocumentPencil').then(m => m.DocumentPencil),\n DocumentPlus: () => import('@ds-mo/icons/svg/DocumentPlus').then(m => m.DocumentPlus),\n DocumentQuestion: () => import('@ds-mo/icons/svg/DocumentQuestion').then(m => m.DocumentQuestion),\n DocumentReceipt: () => import('@ds-mo/icons/svg/DocumentReceipt').then(m => m.DocumentReceipt),\n DocumentStacked: () => import('@ds-mo/icons/svg/DocumentStacked').then(m => m.DocumentStacked),\n Dot: () => import('@ds-mo/icons/svg/Dot').then(m => m.Dot),\n DotFilled: () => import('@ds-mo/icons/svg/DotFilled').then(m => m.DotFilled),\n DotPath: () => import('@ds-mo/icons/svg/DotPath').then(m => m.DotPath),\n Download: () => import('@ds-mo/icons/svg/Download').then(m => m.Download),\n Drag: () => import('@ds-mo/icons/svg/Drag').then(m => m.Drag),\n Ellipses: () => import('@ds-mo/icons/svg/Ellipses').then(m => m.Ellipses),\n Email: () => import('@ds-mo/icons/svg/Email').then(m => m.Email),\n Engine: () => import('@ds-mo/icons/svg/Engine').then(m => m.Engine),\n Enter: () => import('@ds-mo/icons/svg/Enter').then(m => m.Enter),\n EntityAsset: () => import('@ds-mo/icons/svg/EntityAsset').then(m => m.EntityAsset),\n EntityAssetFilled: () => import('@ds-mo/icons/svg/EntityAssetFilled').then(m => m.EntityAssetFilled),\n EntityDriver: () => import('@ds-mo/icons/svg/EntityDriver').then(m => m.EntityDriver),\n EntityDriverFilled: () => import('@ds-mo/icons/svg/EntityDriverFilled').then(m => m.EntityDriverFilled),\n EntityTravelGroup: () => import('@ds-mo/icons/svg/EntityTravelGroup').then(m => m.EntityTravelGroup),\n EntityTravelGroupFilled: () => import('@ds-mo/icons/svg/EntityTravelGroupFilled').then(m => m.EntityTravelGroupFilled),\n EntityVehicle: () => import('@ds-mo/icons/svg/EntityVehicle').then(m => m.EntityVehicle),\n EntityVehicleCharging: () => import('@ds-mo/icons/svg/EntityVehicleCharging').then(m => m.EntityVehicleCharging),\n EntityVehicleChargingFilled: () => import('@ds-mo/icons/svg/EntityVehicleChargingFilled').then(m => m.EntityVehicleChargingFilled),\n EntityVehicleFilled: () => import('@ds-mo/icons/svg/EntityVehicleFilled').then(m => m.EntityVehicleFilled),\n EntityVehicleImmobilized: () => import('@ds-mo/icons/svg/EntityVehicleImmobilized').then(m => m.EntityVehicleImmobilized),\n EntityVehicleImmobilizedFilled: () => import('@ds-mo/icons/svg/EntityVehicleImmobilizedFilled').then(m => m.EntityVehicleImmobilizedFilled),\n ErrorTriangle: () => import('@ds-mo/icons/svg/ErrorTriangle').then(m => m.ErrorTriangle),\n ErrorTriangleFilled: () => import('@ds-mo/icons/svg/ErrorTriangleFilled').then(m => m.ErrorTriangleFilled),\n ErrorTriangleSimpleFilled: () => import('@ds-mo/icons/svg/ErrorTriangleSimpleFilled').then(m => m.ErrorTriangleSimpleFilled),\n Export: () => import('@ds-mo/icons/svg/Export').then(m => m.Export),\n ExternalLink: () => import('@ds-mo/icons/svg/ExternalLink').then(m => m.ExternalLink),\n Eye: () => import('@ds-mo/icons/svg/Eye').then(m => m.Eye),\n EyeDisabled: () => import('@ds-mo/icons/svg/EyeDisabled').then(m => m.EyeDisabled),\n EyeLock: () => import('@ds-mo/icons/svg/EyeLock').then(m => m.EyeLock),\n FastForward: () => import('@ds-mo/icons/svg/FastForward').then(m => m.FastForward),\n FastForwardSkip: () => import('@ds-mo/icons/svg/FastForwardSkip').then(m => m.FastForwardSkip),\n Filters: () => import('@ds-mo/icons/svg/Filters').then(m => m.Filters),\n FitToScreen: () => import('@ds-mo/icons/svg/FitToScreen').then(m => m.FitToScreen),\n Flag: () => import('@ds-mo/icons/svg/Flag').then(m => m.Flag),\n FlagFilled: () => import('@ds-mo/icons/svg/FlagFilled').then(m => m.FlagFilled),\n FloppyDisk: () => import('@ds-mo/icons/svg/FloppyDisk').then(m => m.FloppyDisk),\n Folder: () => import('@ds-mo/icons/svg/Folder').then(m => m.Folder),\n FolderFilled: () => import('@ds-mo/icons/svg/FolderFilled').then(m => m.FolderFilled),\n FuelPump: () => import('@ds-mo/icons/svg/FuelPump').then(m => m.FuelPump),\n FullScreen: () => import('@ds-mo/icons/svg/FullScreen').then(m => m.FullScreen),\n FullScreenExit: () => import('@ds-mo/icons/svg/FullScreenExit').then(m => m.FullScreenExit),\n Gauge: () => import('@ds-mo/icons/svg/Gauge').then(m => m.Gauge),\n GaugeTemperature: () => import('@ds-mo/icons/svg/GaugeTemperature').then(m => m.GaugeTemperature),\n Gear: () => import('@ds-mo/icons/svg/Gear').then(m => m.Gear),\n GearCheck: () => import('@ds-mo/icons/svg/GearCheck').then(m => m.GearCheck),\n Geofence: () => import('@ds-mo/icons/svg/Geofence').then(m => m.Geofence),\n GeofenceCircle: () => import('@ds-mo/icons/svg/GeofenceCircle').then(m => m.GeofenceCircle),\n GeofenceDiamond: () => import('@ds-mo/icons/svg/GeofenceDiamond').then(m => m.GeofenceDiamond),\n GeofenceSquare: () => import('@ds-mo/icons/svg/GeofenceSquare').then(m => m.GeofenceSquare),\n GlobeNetwork: () => import('@ds-mo/icons/svg/GlobeNetwork').then(m => m.GlobeNetwork),\n GlobeWorldMap: () => import('@ds-mo/icons/svg/GlobeWorldMap').then(m => m.GlobeWorldMap),\n Graph: () => import('@ds-mo/icons/svg/Graph').then(m => m.Graph),\n GraphArrow: () => import('@ds-mo/icons/svg/GraphArrow').then(m => m.GraphArrow),\n GraphBars: () => import('@ds-mo/icons/svg/GraphBars').then(m => m.GraphBars),\n GraphDecreasing: () => import('@ds-mo/icons/svg/GraphDecreasing').then(m => m.GraphDecreasing),\n GraphIncreasing: () => import('@ds-mo/icons/svg/GraphIncreasing').then(m => m.GraphIncreasing),\n GroupBy: () => import('@ds-mo/icons/svg/GroupBy').then(m => m.GroupBy),\n Hamburger: () => import('@ds-mo/icons/svg/Hamburger').then(m => m.Hamburger),\n HandHeart: () => import('@ds-mo/icons/svg/HandHeart').then(m => m.HandHeart),\n HandOpen: () => import('@ds-mo/icons/svg/HandOpen').then(m => m.HandOpen),\n Headset: () => import('@ds-mo/icons/svg/Headset').then(m => m.Headset),\n History: () => import('@ds-mo/icons/svg/History').then(m => m.History),\n HourGlass: () => import('@ds-mo/icons/svg/HourGlass').then(m => m.HourGlass),\n Image: () => import('@ds-mo/icons/svg/Image').then(m => m.Image),\n Import: () => import('@ds-mo/icons/svg/Import').then(m => m.Import),\n ImportClock: () => import('@ds-mo/icons/svg/ImportClock').then(m => m.ImportClock),\n Inbox: () => import('@ds-mo/icons/svg/Inbox').then(m => m.Inbox),\n IosFilled: () => import('@ds-mo/icons/svg/IosFilled').then(m => m.IosFilled),\n Jerrycan: () => import('@ds-mo/icons/svg/Jerrycan').then(m => m.Jerrycan),\n KeyA: () => import('@ds-mo/icons/svg/KeyA').then(m => m.KeyA),\n KeyB: () => import('@ds-mo/icons/svg/KeyB').then(m => m.KeyB),\n KeyCmd: () => import('@ds-mo/icons/svg/KeyCmd').then(m => m.KeyCmd),\n KeyShift: () => import('@ds-mo/icons/svg/KeyShift').then(m => m.KeyShift),\n LED: () => import('@ds-mo/icons/svg/LED').then(m => m.LED),\n Layers: () => import('@ds-mo/icons/svg/Layers').then(m => m.Layers),\n Leaf: () => import('@ds-mo/icons/svg/Leaf').then(m => m.Leaf),\n LeftCollapse: () => import('@ds-mo/icons/svg/LeftCollapse').then(m => m.LeftCollapse),\n LeftCollapseB: () => import('@ds-mo/icons/svg/LeftCollapseB').then(m => m.LeftCollapseB),\n LeftExpand: () => import('@ds-mo/icons/svg/LeftExpand').then(m => m.LeftExpand),\n LeftExpandB: () => import('@ds-mo/icons/svg/LeftExpandB').then(m => m.LeftExpandB),\n LeftTurnSignal: () => import('@ds-mo/icons/svg/LeftTurnSignal').then(m => m.LeftTurnSignal),\n LetterB: () => import('@ds-mo/icons/svg/LetterB').then(m => m.LetterB),\n LetterC: () => import('@ds-mo/icons/svg/LetterC').then(m => m.LetterC),\n LetterI: () => import('@ds-mo/icons/svg/LetterI').then(m => m.LetterI),\n License: () => import('@ds-mo/icons/svg/License').then(m => m.License),\n LicensePlate: () => import('@ds-mo/icons/svg/LicensePlate').then(m => m.LicensePlate),\n Lifebuoy: () => import('@ds-mo/icons/svg/Lifebuoy').then(m => m.Lifebuoy),\n Link: () => import('@ds-mo/icons/svg/Link').then(m => m.Link),\n List: () => import('@ds-mo/icons/svg/List').then(m => m.List),\n Loads: () => import('@ds-mo/icons/svg/Loads').then(m => m.Loads),\n LocationPin: () => import('@ds-mo/icons/svg/LocationPin').then(m => m.LocationPin),\n LocationPinArrows: () => import('@ds-mo/icons/svg/LocationPinArrows').then(m => m.LocationPinArrows),\n LocationPinDisabled: () => import('@ds-mo/icons/svg/LocationPinDisabled').then(m => m.LocationPinDisabled),\n LocationPinDollar: () => import('@ds-mo/icons/svg/LocationPinDollar').then(m => m.LocationPinDollar),\n LockClosed: () => import('@ds-mo/icons/svg/LockClosed').then(m => m.LockClosed),\n LockClosedFilled: () => import('@ds-mo/icons/svg/LockClosedFilled').then(m => m.LockClosedFilled),\n LockOpen: () => import('@ds-mo/icons/svg/LockOpen').then(m => m.LockOpen),\n Logout: () => import('@ds-mo/icons/svg/Logout').then(m => m.Logout),\n Logs: () => import('@ds-mo/icons/svg/Logs').then(m => m.Logs),\n LogsMagnifyingGlass: () => import('@ds-mo/icons/svg/LogsMagnifyingGlass').then(m => m.LogsMagnifyingGlass),\n MagnifyingGlass: () => import('@ds-mo/icons/svg/MagnifyingGlass').then(m => m.MagnifyingGlass),\n MagnifyingGlassGraph: () => import('@ds-mo/icons/svg/MagnifyingGlassGraph').then(m => m.MagnifyingGlassGraph),\n MagnifyingGlassZoomIn: () => import('@ds-mo/icons/svg/MagnifyingGlassZoomIn').then(m => m.MagnifyingGlassZoomIn),\n MagnifyingGlassZoomOut: () => import('@ds-mo/icons/svg/MagnifyingGlassZoomOut').then(m => m.MagnifyingGlassZoomOut),\n MapNavigation: () => import('@ds-mo/icons/svg/MapNavigation').then(m => m.MapNavigation),\n MapPage: () => import('@ds-mo/icons/svg/MapPage').then(m => m.MapPage),\n MapPin: () => import('@ds-mo/icons/svg/MapPin').then(m => m.MapPin),\n MarkRead: () => import('@ds-mo/icons/svg/MarkRead').then(m => m.MarkRead),\n Match: () => import('@ds-mo/icons/svg/Match').then(m => m.Match),\n MessageBubble: () => import('@ds-mo/icons/svg/MessageBubble').then(m => m.MessageBubble),\n MessageBubbleStack: () => import('@ds-mo/icons/svg/MessageBubbleStack').then(m => m.MessageBubbleStack),\n Messaging: () => import('@ds-mo/icons/svg/Messaging').then(m => m.Messaging),\n Mic: () => import('@ds-mo/icons/svg/Mic').then(m => m.Mic),\n MicMute: () => import('@ds-mo/icons/svg/MicMute').then(m => m.MicMute),\n Minimize: () => import('@ds-mo/icons/svg/Minimize').then(m => m.Minimize),\n Monitor: () => import('@ds-mo/icons/svg/Monitor').then(m => m.Monitor),\n Notification: () => import('@ds-mo/icons/svg/Notification').then(m => m.Notification),\n NumberTen: () => import('@ds-mo/icons/svg/NumberTen').then(m => m.NumberTen),\n OctagonSubtract: () => import('@ds-mo/icons/svg/OctagonSubtract').then(m => m.OctagonSubtract),\n Odometer: () => import('@ds-mo/icons/svg/Odometer').then(m => m.Odometer),\n OverviewAI: () => import('@ds-mo/icons/svg/OverviewAI').then(m => m.OverviewAI),\n PanelCollapse: () => import('@ds-mo/icons/svg/PanelCollapse').then(m => m.PanelCollapse),\n PanelExpand: () => import('@ds-mo/icons/svg/PanelExpand').then(m => m.PanelExpand),\n Paperclip: () => import('@ds-mo/icons/svg/Paperclip').then(m => m.Paperclip),\n PaperplaneSend: () => import('@ds-mo/icons/svg/PaperplaneSend').then(m => m.PaperplaneSend),\n Paragraph: () => import('@ds-mo/icons/svg/Paragraph').then(m => m.Paragraph),\n ParagraphCheck: () => import('@ds-mo/icons/svg/ParagraphCheck').then(m => m.ParagraphCheck),\n ParagraphPencil: () => import('@ds-mo/icons/svg/ParagraphPencil').then(m => m.ParagraphPencil),\n Pause: () => import('@ds-mo/icons/svg/Pause').then(m => m.Pause),\n PauseFilled: () => import('@ds-mo/icons/svg/PauseFilled').then(m => m.PauseFilled),\n Pencil: () => import('@ds-mo/icons/svg/Pencil').then(m => m.Pencil),\n PencilSquiggle: () => import('@ds-mo/icons/svg/PencilSquiggle').then(m => m.PencilSquiggle),\n Person: () => import('@ds-mo/icons/svg/Person').then(m => m.Person),\n PersonAt: () => import('@ds-mo/icons/svg/PersonAt').then(m => m.PersonAt),\n PersonConnect: () => import('@ds-mo/icons/svg/PersonConnect').then(m => m.PersonConnect),\n PersonFrame: () => import('@ds-mo/icons/svg/PersonFrame').then(m => m.PersonFrame),\n PersonGear: () => import('@ds-mo/icons/svg/PersonGear').then(m => m.PersonGear),\n PersonGroup: () => import('@ds-mo/icons/svg/PersonGroup').then(m => m.PersonGroup),\n PersonGroupArrows: () => import('@ds-mo/icons/svg/PersonGroupArrows').then(m => m.PersonGroupArrows),\n PersonManager: () => import('@ds-mo/icons/svg/PersonManager').then(m => m.PersonManager),\n PersonShield: () => import('@ds-mo/icons/svg/PersonShield').then(m => m.PersonShield),\n PersonStar: () => import('@ds-mo/icons/svg/PersonStar').then(m => m.PersonStar),\n Phone: () => import('@ds-mo/icons/svg/Phone').then(m => m.Phone),\n PhoneDisconnect: () => import('@ds-mo/icons/svg/PhoneDisconnect').then(m => m.PhoneDisconnect),\n PicmanFilled: () => import('@ds-mo/icons/svg/PicmanFilled').then(m => m.PicmanFilled),\n Pin: () => import('@ds-mo/icons/svg/Pin').then(m => m.Pin),\n PipBottomLeft: () => import('@ds-mo/icons/svg/PipBottomLeft').then(m => m.PipBottomLeft),\n PipBottomRight: () => import('@ds-mo/icons/svg/PipBottomRight').then(m => m.PipBottomRight),\n PipTopLeft: () => import('@ds-mo/icons/svg/PipTopLeft').then(m => m.PipTopLeft),\n PipTopRight: () => import('@ds-mo/icons/svg/PipTopRight').then(m => m.PipTopRight),\n Play: () => import('@ds-mo/icons/svg/Play').then(m => m.Play),\n PlayFilled: () => import('@ds-mo/icons/svg/PlayFilled').then(m => m.PlayFilled),\n Plug: () => import('@ds-mo/icons/svg/Plug').then(m => m.Plug),\n Plus: () => import('@ds-mo/icons/svg/Plus').then(m => m.Plus),\n PlusCircle: () => import('@ds-mo/icons/svg/PlusCircle').then(m => m.PlusCircle),\n Preferences: () => import('@ds-mo/icons/svg/Preferences').then(m => m.Preferences),\n Printer: () => import('@ds-mo/icons/svg/Printer').then(m => m.Printer),\n PunchCard: () => import('@ds-mo/icons/svg/PunchCard').then(m => m.PunchCard),\n Puzzle: () => import('@ds-mo/icons/svg/Puzzle').then(m => m.Puzzle),\n PuzzleJoined: () => import('@ds-mo/icons/svg/PuzzleJoined').then(m => m.PuzzleJoined),\n Redo: () => import('@ds-mo/icons/svg/Redo').then(m => m.Redo),\n Refresh: () => import('@ds-mo/icons/svg/Refresh').then(m => m.Refresh),\n Restore: () => import('@ds-mo/icons/svg/Restore').then(m => m.Restore),\n RewardRibbon: () => import('@ds-mo/icons/svg/RewardRibbon').then(m => m.RewardRibbon),\n Rewind: () => import('@ds-mo/icons/svg/Rewind').then(m => m.Rewind),\n RewindSkip: () => import('@ds-mo/icons/svg/RewindSkip').then(m => m.RewindSkip),\n RewindSkipFilled: () => import('@ds-mo/icons/svg/RewindSkipFilled').then(m => m.RewindSkipFilled),\n RightCollapse: () => import('@ds-mo/icons/svg/RightCollapse').then(m => m.RightCollapse),\n RightCollapseB: () => import('@ds-mo/icons/svg/RightCollapseB').then(m => m.RightCollapseB),\n RightExpand: () => import('@ds-mo/icons/svg/RightExpand').then(m => m.RightExpand),\n RightExpandB: () => import('@ds-mo/icons/svg/RightExpandB').then(m => m.RightExpandB),\n RightTurnSignal: () => import('@ds-mo/icons/svg/RightTurnSignal').then(m => m.RightTurnSignal),\n Rotate: () => import('@ds-mo/icons/svg/Rotate').then(m => m.Rotate),\n Satellite: () => import('@ds-mo/icons/svg/Satellite').then(m => m.Satellite),\n Scan: () => import('@ds-mo/icons/svg/Scan').then(m => m.Scan),\n Scissor: () => import('@ds-mo/icons/svg/Scissor').then(m => m.Scissor),\n Scope: () => import('@ds-mo/icons/svg/Scope').then(m => m.Scope),\n Seatbelt: () => import('@ds-mo/icons/svg/Seatbelt').then(m => m.Seatbelt),\n SeatbeltBuckle: () => import('@ds-mo/icons/svg/SeatbeltBuckle').then(m => m.SeatbeltBuckle),\n Shapes: () => import('@ds-mo/icons/svg/Shapes').then(m => m.Shapes),\n ShareCircles: () => import('@ds-mo/icons/svg/ShareCircles').then(m => m.ShareCircles),\n ShareCirclesFilled: () => import('@ds-mo/icons/svg/ShareCirclesFilled').then(m => m.ShareCirclesFilled),\n SharePaperplane: () => import('@ds-mo/icons/svg/SharePaperplane').then(m => m.SharePaperplane),\n Shield: () => import('@ds-mo/icons/svg/Shield').then(m => m.Shield),\n ShieldCheck: () => import('@ds-mo/icons/svg/ShieldCheck').then(m => m.ShieldCheck),\n ShieldCheckmarkFilled: () => import('@ds-mo/icons/svg/ShieldCheckmarkFilled').then(m => m.ShieldCheckmarkFilled),\n ShieldCircle: () => import('@ds-mo/icons/svg/ShieldCircle').then(m => m.ShieldCircle),\n ShieldCircleFilled: () => import('@ds-mo/icons/svg/ShieldCircleFilled').then(m => m.ShieldCircleFilled),\n ShieldCross: () => import('@ds-mo/icons/svg/ShieldCross').then(m => m.ShieldCross),\n ShieldCrossFilled: () => import('@ds-mo/icons/svg/ShieldCrossFilled').then(m => m.ShieldCrossFilled),\n ShieldFilled: () => import('@ds-mo/icons/svg/ShieldFilled').then(m => m.ShieldFilled),\n ShieldLock: () => import('@ds-mo/icons/svg/ShieldLock').then(m => m.ShieldLock),\n ShieldLockFilled: () => import('@ds-mo/icons/svg/ShieldLockFilled').then(m => m.ShieldLockFilled),\n ShoppingBag: () => import('@ds-mo/icons/svg/ShoppingBag').then(m => m.ShoppingBag),\n Snowflake: () => import('@ds-mo/icons/svg/Snowflake').then(m => m.Snowflake),\n SpeakerPhone: () => import('@ds-mo/icons/svg/SpeakerPhone').then(m => m.SpeakerPhone),\n SpeedometerArrow: () => import('@ds-mo/icons/svg/SpeedometerArrow').then(m => m.SpeedometerArrow),\n SpeedometerLeft: () => import('@ds-mo/icons/svg/SpeedometerLeft').then(m => m.SpeedometerLeft),\n SpeedometerRight: () => import('@ds-mo/icons/svg/SpeedometerRight').then(m => m.SpeedometerRight),\n SpikeCirclePercentage: () => import('@ds-mo/icons/svg/SpikeCirclePercentage').then(m => m.SpikeCirclePercentage),\n SpikeCirclePercentageFilled: () => import('@ds-mo/icons/svg/SpikeCirclePercentageFilled').then(m => m.SpikeCirclePercentageFilled),\n Square: () => import('@ds-mo/icons/svg/Square').then(m => m.Square),\n SquareArrowTopRight: () => import('@ds-mo/icons/svg/SquareArrowTopRight').then(m => m.SquareArrowTopRight),\n SquareCheck: () => import('@ds-mo/icons/svg/SquareCheck').then(m => m.SquareCheck),\n SquareCheckFilled: () => import('@ds-mo/icons/svg/SquareCheckFilled').then(m => m.SquareCheckFilled),\n SquareDollar: () => import('@ds-mo/icons/svg/SquareDollar').then(m => m.SquareDollar),\n SquareDollarFilled: () => import('@ds-mo/icons/svg/SquareDollarFilled').then(m => m.SquareDollarFilled),\n SquareDottedMinus: () => import('@ds-mo/icons/svg/SquareDottedMinus').then(m => m.SquareDottedMinus),\n SquareFilled: () => import('@ds-mo/icons/svg/SquareFilled').then(m => m.SquareFilled),\n SquareGrid: () => import('@ds-mo/icons/svg/SquareGrid').then(m => m.SquareGrid),\n SquarePencil: () => import('@ds-mo/icons/svg/SquarePencil').then(m => m.SquarePencil),\n SquarePlus: () => import('@ds-mo/icons/svg/SquarePlus').then(m => m.SquarePlus),\n SquareSubtract: () => import('@ds-mo/icons/svg/SquareSubtract').then(m => m.SquareSubtract),\n SquareSubtractFilled: () => import('@ds-mo/icons/svg/SquareSubtractFilled').then(m => m.SquareSubtractFilled),\n Star: () => import('@ds-mo/icons/svg/Star').then(m => m.Star),\n StarFilled: () => import('@ds-mo/icons/svg/StarFilled').then(m => m.StarFilled),\n Stopwatch: () => import('@ds-mo/icons/svg/Stopwatch').then(m => m.Stopwatch),\n Street: () => import('@ds-mo/icons/svg/Street').then(m => m.Street),\n Subtract: () => import('@ds-mo/icons/svg/Subtract').then(m => m.Subtract),\n SubtractCircle: () => import('@ds-mo/icons/svg/SubtractCircle').then(m => m.SubtractCircle),\n SubtractCircleFilled: () => import('@ds-mo/icons/svg/SubtractCircleFilled').then(m => m.SubtractCircleFilled),\n Table: () => import('@ds-mo/icons/svg/Table').then(m => m.Table),\n Tag: () => import('@ds-mo/icons/svg/Tag').then(m => m.Tag),\n Target: () => import('@ds-mo/icons/svg/Target').then(m => m.Target),\n TargetDollar: () => import('@ds-mo/icons/svg/TargetDollar').then(m => m.TargetDollar),\n Text: () => import('@ds-mo/icons/svg/Text').then(m => m.Text),\n ThemeDark: () => import('@ds-mo/icons/svg/ThemeDark').then(m => m.ThemeDark),\n ThemeLight: () => import('@ds-mo/icons/svg/ThemeLight').then(m => m.ThemeLight),\n ThumbsDown: () => import('@ds-mo/icons/svg/ThumbsDown').then(m => m.ThumbsDown),\n ThumbsDownFilled: () => import('@ds-mo/icons/svg/ThumbsDownFilled').then(m => m.ThumbsDownFilled),\n ThumbsUp: () => import('@ds-mo/icons/svg/ThumbsUp').then(m => m.ThumbsUp),\n ThumbsUpFilled: () => import('@ds-mo/icons/svg/ThumbsUpFilled').then(m => m.ThumbsUpFilled),\n TirePressure: () => import('@ds-mo/icons/svg/TirePressure').then(m => m.TirePressure),\n Toggle: () => import('@ds-mo/icons/svg/Toggle').then(m => m.Toggle),\n TrafficLight: () => import('@ds-mo/icons/svg/TrafficLight').then(m => m.TrafficLight),\n Trash: () => import('@ds-mo/icons/svg/Trash').then(m => m.Trash),\n Trophy: () => import('@ds-mo/icons/svg/Trophy').then(m => m.Trophy),\n TurnSignal: () => import('@ds-mo/icons/svg/TurnSignal').then(m => m.TurnSignal),\n TurnSignalFilled: () => import('@ds-mo/icons/svg/TurnSignalFilled').then(m => m.TurnSignalFilled),\n Undo: () => import('@ds-mo/icons/svg/Undo').then(m => m.Undo),\n Upgrade: () => import('@ds-mo/icons/svg/Upgrade').then(m => m.Upgrade),\n Upload: () => import('@ds-mo/icons/svg/Upload').then(m => m.Upload),\n VehicleTrailer: () => import('@ds-mo/icons/svg/VehicleTrailer').then(m => m.VehicleTrailer),\n VehicleTruck: () => import('@ds-mo/icons/svg/VehicleTruck').then(m => m.VehicleTruck),\n VehicleTruckMagnifyingGlass: () => import('@ds-mo/icons/svg/VehicleTruckMagnifyingGlass').then(m => m.VehicleTruckMagnifyingGlass),\n Video: () => import('@ds-mo/icons/svg/Video').then(m => m.Video),\n ViewMenu: () => import('@ds-mo/icons/svg/ViewMenu').then(m => m.ViewMenu),\n Volume: () => import('@ds-mo/icons/svg/Volume').then(m => m.Volume),\n VolumeFilled: () => import('@ds-mo/icons/svg/VolumeFilled').then(m => m.VolumeFilled),\n VolumeMute: () => import('@ds-mo/icons/svg/VolumeMute').then(m => m.VolumeMute),\n VolumeMuteFilled: () => import('@ds-mo/icons/svg/VolumeMuteFilled').then(m => m.VolumeMuteFilled),\n WandSparkle: () => import('@ds-mo/icons/svg/WandSparkle').then(m => m.WandSparkle),\n Waveform: () => import('@ds-mo/icons/svg/Waveform').then(m => m.Waveform),\n Webhooks: () => import('@ds-mo/icons/svg/Webhooks').then(m => m.Webhooks),\n Whistle: () => import('@ds-mo/icons/svg/Whistle').then(m => m.Whistle),\n WifiHorizontal: () => import('@ds-mo/icons/svg/WifiHorizontal').then(m => m.WifiHorizontal),\n WifiTower: () => import('@ds-mo/icons/svg/WifiTower').then(m => m.WifiTower),\n WifiVertical: () => import('@ds-mo/icons/svg/WifiVertical').then(m => m.WifiVertical),\n WifiVerticalFilled: () => import('@ds-mo/icons/svg/WifiVerticalFilled').then(m => m.WifiVerticalFilled),\n WifiVerticalFilledDisabled: () => import('@ds-mo/icons/svg/WifiVerticalFilledDisabled').then(m => m.WifiVerticalFilledDisabled),\n WorkflowA: () => import('@ds-mo/icons/svg/WorkflowA').then(m => m.WorkflowA),\n WorkflowB: () => import('@ds-mo/icons/svg/WorkflowB').then(m => m.WorkflowB),\n Wrench: () => import('@ds-mo/icons/svg/Wrench').then(m => m.Wrench),\n ZoomBackOut: () => import('@ds-mo/icons/svg/ZoomBackOut').then(m => m.ZoomBackOut),\n};\n","/**\n * Shared SVG glyph cache for ds-icon.\n *\n * Keyed on a global symbol so every module instance (the compiled Stencil chunk\n * inside dist/components and any direct source import, e.g. via `@ds-mo/ui/utils`)\n * reads and writes the same cache. Without this, `registerIcons` called from an\n * app would fill a different Map than the one ds-icon resolves from.\n */\nconst CACHE_KEY = Symbol.for('ds-mo.icon-svg-cache');\n\ntype IconCacheMap = Map<string, string>;\n\ntype GlobalWithIconCache = { [CACHE_KEY]?: IconCacheMap };\n\nexport function iconCacheKey(name: string, flag: boolean): string {\n return flag ? `flag:${name}` : `system:${name}`;\n}\n\nexport function iconCache(): IconCacheMap {\n const g = globalThis as GlobalWithIconCache;\n return (g[CACHE_KEY] ??= new Map());\n}\n\n/**\n * Pre-register glyphs so ds-icon renders them synchronously — no lazy-chunk\n * fetch, no first-paint pop-in. Import the SVG strings from `@ds-mo/icons`\n * in the app (statically, so they ship in the app's own bundle):\n *\n * ```ts\n * import { Bell } from '@ds-mo/icons/svg/Bell';\n * import { FlagUnitedStates } from '@ds-mo/icons/svg/flags/FlagUnitedStates';\n * import { registerIcons } from '@ds-mo/ui/utils';\n *\n * registerIcons({ Bell });\n * registerIcons({ FlagUnitedStates });\n * ```\n *\n * Icons that are not registered still work — they lazy-load on first render\n * and stay cached afterwards.\n */\nexport function registerIcons(icons: Record<string, string>, options?: { flag?: boolean }): void {\n const cache = iconCache();\n for (const [name, svg] of Object.entries(icons)) {\n const flag = options?.flag ?? name.startsWith('Flag');\n cache.set(iconCacheKey(name, flag), svg);\n }\n}\n","/**\n * Glyph markup validation + Trusted-Types-safe parsing for ds-icon.\n *\n * Glyphs normally come from the trusted @ds-mo/icons build pipeline, but\n * `registerIcons` accepts arbitrary app-provided strings and injection is a\n * sink — so every glyph is validated at the render boundary. Injection uses\n * parsed DOM nodes (never innerHTML), which keeps ds-icon working under a\n * strict CSP with `require-trusted-types-for 'script'`.\n */\n\n/** Structural view of an element so the walk is unit-testable without a DOM. */\nexport interface IconSvgElementLike {\n localName: string;\n getAttributeNames(): string[];\n getAttribute(name: string): string | null;\n children: ArrayLike<IconSvgElementLike>;\n}\n\n/** Elements that can execute or embed foreign content — never valid in a glyph. */\nconst FORBIDDEN_ELEMENTS = new Set([\n 'script',\n 'foreignobject',\n 'iframe',\n 'object',\n 'embed',\n 'animation', // SVG 1.2 external-content element (distinct from animate/animateTransform)\n]);\n\nfunction isValidIconSvgElement(el: IconSvgElementLike): boolean {\n if (FORBIDDEN_ELEMENTS.has(el.localName.toLowerCase())) return false;\n\n for (const attr of el.getAttributeNames()) {\n const lower = attr.toLowerCase();\n // Event handler attributes (onclick, onload, …) — any casing.\n if (lower.startsWith('on')) return false;\n // References must stay internal (#gradient-id); rejects javascript:, data:,\n // and external URLs on <use>, <a>, <image>, …\n if (lower === 'href' || lower === 'xlink:href') {\n const value = el.getAttribute(attr) ?? '';\n if (!value.startsWith('#')) return false;\n }\n }\n\n for (let i = 0; i < el.children.length; i++) {\n if (!isValidIconSvgElement(el.children[i])) return false;\n }\n\n return true;\n}\n\n/** True when `root` is an `<svg>` whose whole tree passes validation. */\nexport function isValidIconSvgRoot(root: IconSvgElementLike | null): boolean {\n return root != null && root.localName === 'svg' && isValidIconSvgElement(root);\n}\n\n/**\n * Parse + validate glyph markup. Returns a detached `<svg>` element ready to\n * append (appending adopts it into the document), or `null` when the markup\n * is not well-formed XML, not rooted at `<svg>`, or fails validation —\n * ds-icon renders an empty fixed-size box in that case.\n */\nexport function parseIconSvg(svg: string): SVGElement | null {\n if (typeof DOMParser === 'undefined') return null;\n\n const doc = new DOMParser().parseFromString(svg, 'image/svg+xml');\n // Malformed XML yields a parsererror document (root or nested, per browser).\n if (doc.querySelector('parsererror')) return null;\n\n const root = doc.documentElement as unknown as IconSvgElementLike;\n if (!isValidIconSvgRoot(root)) return null;\n\n return doc.documentElement as unknown as SVGElement;\n}\n","/* ── Base icon ───────────────────────────────────────────────────────────── */\n\n.icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n line-height: 0;\n color: inherit;\n /* Explicit size so the SVG (width/height: 100% via JS) has a defined container */\n width: var(--_icon-sz, var(--dimension-iconography-md));\n height: var(--_icon-sz, var(--dimension-iconography-md));\n}\n\n.icon__svg {\n display: contents;\n line-height: 0;\n}\n\n/* SVG width/height are set via inline style in updateSvg() because Stencil's\n scoped CSS cannot reach innerHTML-injected elements (they lack the sc-* class). */\n\n/* ── Sizes ───────────────────────────────────────────────────────────────── */\n\n.icon--size-xs { --_icon-sz: var(--dimension-iconography-xs); }\n.icon--size-sm { --_icon-sz: var(--dimension-iconography-sm); }\n.icon--size-md { --_icon-sz: var(--dimension-iconography-md); }\n.icon--size-lg { --_icon-sz: var(--dimension-iconography-lg); }\n.icon--size-xl { --_icon-sz: var(--dimension-iconography-xl); }\n.icon--size-2xl { --_icon-sz: var(--dimension-iconography-2xl); }\n.icon--size-3xl { --_icon-sz: var(--dimension-iconography-3xl); }\n\n/* ── Colors — hierarchy ──────────────────────────────────────────────────── */\n\n.icon--color-primary { color: var(--color-foreground-primary); }\n.icon--color-secondary { color: var(--color-foreground-secondary); }\n.icon--color-tertiary { color: var(--color-foreground-tertiary); }\n.icon--color-quaternary { color: var(--color-foreground-quaternary); }\n.icon--color-inherit { color: inherit; }\n\n/* ── Colors — intent (bold contrast default) ─────────────────────────────── */\n\n.icon--color-brand { color: var(--color-foreground-bold-brand); }\n.icon--color-negative { color: var(--color-foreground-bold-negative); }\n.icon--color-positive { color: var(--color-foreground-bold-positive); }\n.icon--color-warning { color: var(--color-foreground-bold-warning); }\n.icon--color-caution { color: var(--color-foreground-bold-caution); }\n.icon--color-ai { color: var(--color-foreground-bold-ai); }\n.icon--color-guide { color: var(--color-foreground-bold-guide); }\n.icon--color-neutral { color: var(--color-foreground-bold-neutral); }\n\n/* ── Colors — intent faint ───────────────────────────────────────────────── */\n\n.icon--color-faint-brand { color: var(--color-foreground-faint-brand); }\n.icon--color-faint-negative { color: var(--color-foreground-faint-negative); }\n.icon--color-faint-positive { color: var(--color-foreground-faint-positive); }\n.icon--color-faint-warning { color: var(--color-foreground-faint-warning); }\n.icon--color-faint-caution { color: var(--color-foreground-faint-caution); }\n.icon--color-faint-ai { color: var(--color-foreground-faint-ai); }\n.icon--color-faint-neutral { color: var(--color-foreground-faint-neutral); }\n\n/* ── Colors — intent medium ─────────────────────────────────────────────── */\n\n.icon--color-medium-brand { color: var(--color-foreground-medium-brand); }\n.icon--color-medium-negative { color: var(--color-foreground-medium-negative); }\n.icon--color-medium-positive { color: var(--color-foreground-medium-positive); }\n.icon--color-medium-warning { color: var(--color-foreground-medium-warning); }\n.icon--color-medium-caution { color: var(--color-foreground-medium-caution); }\n.icon--color-medium-ai { color: var(--color-foreground-medium-ai); }\n.icon--color-medium-neutral { color: var(--color-foreground-medium-neutral); }\n\n/* ── Colors — intent bold (explicit) ────────────────────────────────────── */\n\n.icon--color-bold-brand { color: var(--color-foreground-bold-brand); }\n.icon--color-bold-negative { color: var(--color-foreground-bold-negative); }\n.icon--color-bold-positive { color: var(--color-foreground-bold-positive); }\n.icon--color-bold-warning { color: var(--color-foreground-bold-warning); }\n.icon--color-bold-caution { color: var(--color-foreground-bold-caution); }\n.icon--color-bold-ai { color: var(--color-foreground-bold-ai); }\n.icon--color-bold-neutral { color: var(--color-foreground-bold-neutral); }\n\n/* ── Colors — intent strong ──────────────────────────────────────────────── */\n\n.icon--color-strong-brand { color: var(--color-foreground-strong-brand); }\n.icon--color-strong-negative { color: var(--color-foreground-strong-negative); }\n.icon--color-strong-positive { color: var(--color-foreground-strong-positive); }\n.icon--color-strong-warning { color: var(--color-foreground-strong-warning); }\n.icon--color-strong-caution { color: var(--color-foreground-strong-caution); }\n.icon--color-strong-ai { color: var(--color-foreground-strong-ai); }\n.icon--color-strong-neutral { color: var(--color-foreground-strong-neutral); }\n\n/* ── Colors — contextual ────────────────────────────────────────────────── */\n\n.icon--color-on-strong { color: var(--color-foreground-on-strong-background-primary); }\n.icon--color-on-bold { color: var(--color-foreground-on-bold-background-primary); }\n","import { Component, Prop, Element, State, Watch, h, Host } from '@stencil/core';\nimport { flagIconLoaders } from './flag-icon-catalog';\nimport { systemIconLoaders } from './system-icon-catalog';\nimport { iconCache, iconCacheKey } from './icon-cache';\nimport { parseIconSvg } from './icon-svg';\n\nexport type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl';\n\nexport type IconColorToken =\n // Hierarchy\n | 'primary' | 'secondary' | 'tertiary' | 'quaternary'\n // Intent — bold contrast (default)\n | 'brand' | 'negative' | 'positive' | 'warning' | 'caution' | 'ai' | 'guide' | 'neutral'\n // Intent — faint\n | 'faint-brand' | 'faint-negative' | 'faint-positive' | 'faint-warning'\n | 'faint-caution' | 'faint-ai' | 'faint-neutral'\n // Intent — medium\n | 'medium-brand' | 'medium-negative' | 'medium-positive' | 'medium-warning'\n | 'medium-caution' | 'medium-ai' | 'medium-neutral'\n // Intent — bold (explicit)\n | 'bold-brand' | 'bold-negative' | 'bold-positive' | 'bold-warning'\n | 'bold-caution' | 'bold-ai' | 'bold-neutral'\n // Intent — strong\n | 'strong-brand' | 'strong-negative' | 'strong-positive' | 'strong-warning'\n | 'strong-caution' | 'strong-ai' | 'strong-neutral'\n // Contextual\n | 'on-strong' | 'on-bold'\n // Pass-through\n | 'inherit';\n\nexport type IconColor = IconColorToken | `var(--${string})`;\n\n@Component({\n tag: 'ds-icon',\n styleUrl: 'Icon.css',\n scoped: true,\n})\nexport class Icon {\n @Element() el!: HTMLElement;\n\n /** Exact canonical IcoMo export name, including the `Flag` prefix for flags. */\n @Prop() name: string = '';\n /** Iconography size token. Maps to `--dimension-iconography-{size}`. Default `md` = 20 px. */\n @Prop() size: IconSize = 'md';\n /**\n * Semantic foreground color token, or a raw CSS var reference. `tertiary`\n * and the still-fainter `quaternary` are restricted to icons inside genuinely\n * inactive/disabled UI or to purely decorative icons; informative icons must\n * retain sufficient contrast.\n */\n @Prop() color: IconColor = 'inherit';\n /** Accessible label. Sets `role=\"img\"` and `aria-label`. Omit for decorative icons. */\n @Prop() label: string | undefined;\n\n /** Resolved SVG markup — set synchronously on cache hit, async after a lazy load. */\n @State() private svg: string = '';\n\n /** Guards against out-of-order async resolutions when `name`/`flag` change quickly. */\n private loadToken = 0;\n\n /**\n * Cache hit → render synchronously (pre-registered via `registerIcons` or\n * previously loaded). Miss → fire the per-icon lazy loader; the glyph pops in\n * when the (tiny, per-icon) chunk resolves and stays cached for every other\n * ds-icon instance.\n */\n private resolveSvg() {\n const flag = this.name.startsWith('Flag');\n const key = iconCacheKey(this.name, flag);\n const token = ++this.loadToken;\n\n const cached = iconCache().get(key);\n if (cached !== undefined) {\n this.svg = cached;\n return;\n }\n\n // Own-key lookup only: names resolve by exact canonical IcoMo export key —\n // never meta.json aliases (not in the maps) and never inherited prototype\n // keys ('constructor', 'toString', …) that a bare index access would hit.\n const loaders = flag ? flagIconLoaders : systemIconLoaders;\n const loader = Object.prototype.hasOwnProperty.call(loaders, this.name)\n ? loaders[this.name]\n : undefined;\n if (!loader) {\n this.svg = '';\n return;\n }\n\n loader()\n .then(svg => {\n iconCache().set(key, svg);\n if (token === this.loadToken) this.svg = svg;\n })\n .catch(() => {\n if (token === this.loadToken) this.svg = '';\n });\n }\n\n componentWillLoad() {\n // Fire-and-forget: do not return the promise — a cache miss must not block\n // the parent render tree on a network fetch.\n this.resolveSvg();\n }\n\n /** Last markup injected into the DOM — skips redundant re-parse on unrelated re-renders. */\n private renderedSvg: string | null = null;\n\n private updateSvg() {\n const container = this.el.querySelector<HTMLElement>('.icon__svg');\n if (!container) return;\n if (this.svg === this.renderedSvg) return;\n this.renderedSvg = this.svg;\n\n // Validate + inject as parsed DOM nodes — never innerHTML. Keeps ds-icon\n // Trusted-Types compatible and rejects executable/foreign content in\n // glyph strings (registerIcons accepts app-provided markup).\n const svg = this.svg ? parseIconSvg(this.svg) : null;\n if (!svg) {\n container.replaceChildren();\n return;\n }\n\n // Stencil's scoped CSS cannot reach injected elements (no sc-* class).\n // Apply width/height as inline styles so sizing works regardless of scope class.\n svg.removeAttribute('width');\n svg.removeAttribute('height');\n // Prevent SVG from being natively focusable (Firefox/IE default) while\n // sitting inside an aria-hidden parent — fixes aria-hidden-focus violation.\n svg.setAttribute('focusable', 'false');\n svg.setAttribute('aria-hidden', 'true');\n svg.style.display = 'block';\n svg.style.flexShrink = '0';\n svg.style.width = '100%';\n svg.style.height = '100%';\n container.replaceChildren(svg);\n }\n\n @Watch('name')\n onIconChange() {\n this.resolveSvg();\n }\n\n componentDidRender() {\n this.updateSvg();\n }\n\n render() {\n const isCustomColor = typeof this.color === 'string' && this.color.startsWith('var(--');\n\n const cls: Record<string, boolean> = {\n icon: true,\n [`icon--size-${this.size}`]: true,\n [`icon--color-${this.color}`]: !!this.color && !isCustomColor && this.color !== 'inherit',\n 'icon--color-inherit': this.color === 'inherit',\n };\n\n const style = isCustomColor ? { color: this.color as string } : undefined;\n\n return (\n <Host style={{ display: 'inline-flex', alignItems: 'center', justifyContent: 'center' }}>\n <span\n class={cls}\n style={style}\n role={this.label ? 'img' : 'presentation'}\n aria-label={this.label}\n aria-hidden={!this.label ? 'true' : undefined}\n >\n <span class=\"icon__svg\" />\n </span>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|