@aquera/nile-elements 0.0.99 → 0.0.100

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/README.md +6 -0
  2. package/demo/filenames.txt +1 -1
  3. package/demo/index.css +1 -0
  4. package/demo/variables.css +3 -0
  5. package/dist/index.cjs.js +1 -1
  6. package/dist/index.esm.js +1 -1
  7. package/dist/nile-badge/index.cjs.js +1 -1
  8. package/dist/nile-badge/index.esm.js +1 -1
  9. package/dist/nile-badge/nile-badge.cjs.js +1 -1
  10. package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
  11. package/dist/nile-badge/nile-badge.esm.js +1 -1
  12. package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
  13. package/dist/nile-badge/nile-badge.test.cjs.js.map +1 -1
  14. package/dist/nile-badge/nile-badge.test.esm.js +1 -1
  15. package/dist/nile-button/index.cjs.js +1 -1
  16. package/dist/nile-button/index.esm.js +1 -1
  17. package/dist/nile-button/nile-button.cjs.js +1 -1
  18. package/dist/nile-button/nile-button.cjs.js.map +1 -1
  19. package/dist/nile-button/nile-button.esm.js +1 -1
  20. package/dist/nile-button/nile-button.test.cjs.js +1 -1
  21. package/dist/nile-button/nile-button.test.cjs.js.map +1 -1
  22. package/dist/nile-button/nile-button.test.esm.js +1 -1
  23. package/dist/nile-calendar/nile-calendar.cjs.js +1 -1
  24. package/dist/nile-calendar/nile-calendar.cjs.js.map +1 -1
  25. package/dist/nile-calendar/nile-calendar.esm.js +2 -2
  26. package/dist/nile-date-picker/nile-date-picker.cjs.js +1 -1
  27. package/dist/nile-date-picker/nile-date-picker.cjs.js.map +1 -1
  28. package/dist/nile-date-picker/nile-date-picker.esm.js +4 -3
  29. package/dist/nile-dialog/index.cjs.js +1 -1
  30. package/dist/nile-dialog/index.esm.js +1 -1
  31. package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
  32. package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
  33. package/dist/nile-dialog/nile-dialog.esm.js +3 -3
  34. package/dist/nile-drawer/index.cjs.js +1 -1
  35. package/dist/nile-drawer/index.esm.js +1 -1
  36. package/dist/nile-drawer/nile-drawer.cjs.js +1 -1
  37. package/dist/nile-drawer/nile-drawer.cjs.js.map +1 -1
  38. package/dist/nile-drawer/nile-drawer.esm.js +1 -1
  39. package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
  40. package/dist/nile-drawer/nile-drawer.test.cjs.js.map +1 -1
  41. package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
  42. package/dist/nile-icon/icons/svg/code-generator.cjs.js +2 -0
  43. package/dist/nile-icon/icons/svg/code-generator.cjs.js.map +1 -0
  44. package/dist/nile-icon/icons/svg/code-generator.esm.js +1 -0
  45. package/dist/nile-icon/icons/svg/guide-01.cjs.js +2 -0
  46. package/dist/nile-icon/icons/svg/guide-01.cjs.js.map +1 -0
  47. package/dist/nile-icon/icons/svg/guide-01.esm.js +1 -0
  48. package/dist/nile-icon/icons/svg/index.cjs.js +1 -1
  49. package/dist/nile-icon/icons/svg/index.esm.js +1 -1
  50. package/dist/nile-icon/icons/svg/npl.cjs.js +2 -0
  51. package/dist/nile-icon/icons/svg/npl.cjs.js.map +1 -0
  52. package/dist/nile-icon/icons/svg/npl.esm.js +1 -0
  53. package/dist/nile-icon/index.cjs.js +1 -1
  54. package/dist/nile-icon/index.cjs.js.map +1 -1
  55. package/dist/nile-icon/index.esm.js +1 -1
  56. package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
  57. package/dist/nile-icon/nile-icon.test.cjs.js.map +1 -1
  58. package/dist/nile-icon/nile-icon.test.esm.js +1 -1
  59. package/dist/nile-icon-button/index.cjs.js +1 -1
  60. package/dist/nile-icon-button/index.esm.js +1 -1
  61. package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
  62. package/dist/nile-icon-button/nile-icon-button.cjs.js.map +1 -1
  63. package/dist/nile-icon-button/nile-icon-button.esm.js +1 -1
  64. package/dist/nile-input/index.cjs.js +1 -1
  65. package/dist/nile-input/index.esm.js +1 -1
  66. package/dist/nile-input/nile-input.cjs.js +1 -1
  67. package/dist/nile-input/nile-input.cjs.js.map +1 -1
  68. package/dist/nile-input/nile-input.css.cjs.js +1 -1
  69. package/dist/nile-input/nile-input.css.cjs.js.map +1 -1
  70. package/dist/nile-input/nile-input.css.esm.js +1 -0
  71. package/dist/nile-input/nile-input.esm.js +1 -1
  72. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  73. package/dist/nile-input/nile-input.test.cjs.js.map +1 -1
  74. package/dist/nile-input/nile-input.test.esm.js +1 -1
  75. package/dist/nile-menu-item/index.cjs.js +1 -1
  76. package/dist/nile-menu-item/index.esm.js +1 -1
  77. package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
  78. package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
  79. package/dist/nile-menu-item/nile-menu-item.esm.js +1 -1
  80. package/dist/nile-option/index.cjs.js +1 -1
  81. package/dist/nile-option/index.esm.js +1 -1
  82. package/dist/nile-option/nile-option.cjs.js +1 -1
  83. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  84. package/dist/nile-option/nile-option.esm.js +1 -1
  85. package/dist/nile-select/index.cjs.js +1 -1
  86. package/dist/nile-select/index.esm.js +1 -1
  87. package/dist/nile-select/nile-select.cjs.js +1 -1
  88. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  89. package/dist/nile-select/nile-select.esm.js +1 -1
  90. package/dist/nile-tab/index.cjs.js +1 -1
  91. package/dist/nile-tab/index.esm.js +1 -1
  92. package/dist/nile-tab/nile-tab.cjs.js +1 -1
  93. package/dist/nile-tab/nile-tab.cjs.js.map +1 -1
  94. package/dist/nile-tab/nile-tab.esm.js +1 -1
  95. package/dist/nile-tab-group/index.cjs.js +1 -1
  96. package/dist/nile-tab-group/index.esm.js +1 -1
  97. package/dist/nile-tab-group/nile-tab-group.cjs.js +1 -1
  98. package/dist/nile-tab-group/nile-tab-group.cjs.js.map +1 -1
  99. package/dist/nile-tab-group/nile-tab-group.esm.js +2 -2
  100. package/dist/nile-tag/index.cjs.js +1 -1
  101. package/dist/nile-tag/index.esm.js +1 -1
  102. package/dist/nile-tag/nile-tag.cjs.js +1 -1
  103. package/dist/nile-tag/nile-tag.cjs.js.map +1 -1
  104. package/dist/nile-tag/nile-tag.esm.js +1 -1
  105. package/dist/nile-toast/index.cjs.js +1 -1
  106. package/dist/nile-toast/index.esm.js +1 -1
  107. package/dist/nile-toast/nile-toast.cjs.js +1 -1
  108. package/dist/nile-toast/nile-toast.cjs.js.map +1 -1
  109. package/dist/nile-toast/nile-toast.esm.js +1 -1
  110. package/dist/nile-tree/index.cjs.js +1 -1
  111. package/dist/nile-tree/index.esm.js +1 -1
  112. package/dist/nile-tree/nile-tree.cjs.js +1 -1
  113. package/dist/nile-tree/nile-tree.cjs.js.map +1 -1
  114. package/dist/nile-tree/nile-tree.esm.js +1 -1
  115. package/dist/nile-tree-item/index.cjs.js +1 -1
  116. package/dist/nile-tree-item/index.esm.js +1 -1
  117. package/dist/nile-tree-item/nile-tree-item.cjs.js +1 -1
  118. package/dist/nile-tree-item/nile-tree-item.cjs.js.map +1 -1
  119. package/dist/nile-tree-item/nile-tree-item.esm.js +1 -1
  120. package/dist/src/nile-calendar/nile-calendar.d.ts +1 -1
  121. package/dist/src/nile-calendar/nile-calendar.js +3 -2
  122. package/dist/src/nile-calendar/nile-calendar.js.map +1 -1
  123. package/dist/src/nile-date-picker/nile-date-picker.d.ts +2 -0
  124. package/dist/src/nile-date-picker/nile-date-picker.js +10 -1
  125. package/dist/src/nile-date-picker/nile-date-picker.js.map +1 -1
  126. package/dist/src/nile-icon/icons/svg/code-generator.d.ts +5 -0
  127. package/dist/src/nile-icon/icons/svg/code-generator.js +5 -0
  128. package/dist/src/nile-icon/icons/svg/code-generator.js.map +1 -0
  129. package/dist/src/nile-icon/icons/svg/guide-01.d.ts +5 -0
  130. package/dist/src/nile-icon/icons/svg/guide-01.js +5 -0
  131. package/dist/src/nile-icon/icons/svg/guide-01.js.map +1 -0
  132. package/dist/src/nile-icon/icons/svg/index.d.ts +3 -0
  133. package/dist/src/nile-icon/icons/svg/index.js +3 -0
  134. package/dist/src/nile-icon/icons/svg/index.js.map +1 -1
  135. package/dist/src/nile-icon/icons/svg/npl.d.ts +5 -0
  136. package/dist/src/nile-icon/icons/svg/npl.js +5 -0
  137. package/dist/src/nile-icon/icons/svg/npl.js.map +1 -0
  138. package/dist/src/nile-input/nile-input.css.js +1 -0
  139. package/dist/src/nile-input/nile-input.css.js.map +1 -1
  140. package/dist/src/nile-tab-group/nile-tab-group.d.ts +4 -1
  141. package/dist/src/nile-tab-group/nile-tab-group.js +21 -7
  142. package/dist/src/nile-tab-group/nile-tab-group.js.map +1 -1
  143. package/dist/tsconfig.tsbuildinfo +1 -1
  144. package/package.json +1 -1
  145. package/src/nile-calendar/nile-calendar.ts +3 -2
  146. package/src/nile-date-picker/nile-date-picker.ts +7 -3
  147. package/src/nile-icon/icons/svg/code-generator.ts +5 -0
  148. package/src/nile-icon/icons/svg/guide-01.ts +5 -0
  149. package/src/nile-icon/icons/svg/index.ts +3 -0
  150. package/src/nile-icon/icons/svg/npl.ts +5 -0
  151. package/src/nile-input/nile-input.css.ts +1 -0
  152. package/src/nile-tab-group/nile-tab-group.ts +21 -12
@@ -1 +1 @@
1
- {"version":3,"file":"nile-tab-group.cjs.js","sources":["../../../src/nile-tab-group/nile-tab-group.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {LitElement, html, property, CSSResultArray, TemplateResult} from 'lit-element';\nimport { customElement } from 'lit/decorators.js';\nimport {styles} from './nile-tab-group.css';\n\nimport '../nile-icon-button/nile-icon-button';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query, state } from 'lit/decorators.js';\nimport { scrollIntoView } from '../internal/scroll';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup } from 'lit';\nimport type NileTab from '../nile-tab/nile-tab';\nimport type NileTabPanel from '../nile-tab-panel/nile-tab-panel';\n\n/**\n * Nile icon component.\n *\n * @tag nile-tab-group\n *\n * @slot - Used for grouping tab panels in the tab group. Must be `<nile-tab-panel>` elements.\n * @slot nav - Used for grouping tabs in the tab group. Must be `<nile-tab>` elements.\n *\n * @event {{ name: String }} nile-tab-show - Emitted when a tab is shown.\n * @event {{ name: String }} nile-tab-hide - Emitted when a tab is hidden.\n *\n * @csspart base - The component's base wrapper.\n * @csspart nav - The tab group's navigation container where tabs are slotted in.\n * @csspart tabs - The container that wraps the tabs.\n * @csspart active-tab-indicator - The line that highlights the currently selected tab.\n * @csspart body - The tab group's body where tab panels are slotted in.\n * @csspart scroll-button - The previous/next scroll buttons that show when tabs are scrollable, an `<nile-icon-button>`.\n * @csspart scroll-button--start - The starting scroll button.\n * @csspart scroll-button--end - The ending scroll button.\n * @csspart scroll-button__base - The scroll button's exported `base` part.\n *\n * @cssproperty --indicator-color - The color of the active tab indicator.\n * @cssproperty --track-color - The color of the indicator's track (the line that separates tabs from panels).\n * @cssproperty --track-width - The width of the indicator's track (the line that separates tabs from panels).\n *\n */\n@customElement('nile-tab-group')\nexport class NileTabGroup extends NileElement {\n\n static styles: CSSResultGroup = styles;\n\n private activeTab?: NileTab;\n private mutationObserver: MutationObserver;\n private resizeObserver: ResizeObserver;\n private tabs: NileTab[] = [];\n private panels: NileTabPanel[] = [];\n\n @query('.tab-group') tabGroup: HTMLElement;\n @query('.tab-group__body') body: HTMLSlotElement;\n @query('.tab-group__nav') nav: HTMLElement;\n @query('.tab-group__indicator') indicator: HTMLElement;\n\n @state() private hasScrollControls = false;\n\n /** The placement of the tabs. */\n @property() placement: 'top' | 'bottom' | 'start' | 'end' = 'top';\n\n\n /** Track for showing Indicators and Background. */\n @property({ type: Boolean, reflect: true,attribute:'no-track'}) noTrack = false;\n\n /**\n * When set to auto, navigating tabs with the arrow keys will instantly show the corresponding tab panel. When set to\n * manual, the tab will receive focus but will not show until the user presses spacebar or enter.\n */\n @property() activation: 'auto' | 'manual' = 'auto';\n\n /** Disables the scroll arrows that appear when tabs overflow. */\n @property({ attribute: 'no-scroll-controls', type: Boolean }) noScrollControls = false;\n\n /** Controls whether tabs are centered and have equal width */\n @property({ type: Boolean, reflect: true }) centered = false;\n\n connectedCallback() {\n const whenAllDefined = Promise.allSettled([\n customElements.whenDefined('nile-tab'),\n customElements.whenDefined('nile-tab-panel')\n ]);\n\n super.connectedCallback();\n\n this.resizeObserver = new ResizeObserver(() => {\n this.repositionIndicator();\n this.updateScrollControls();\n });\n\n this.mutationObserver = new MutationObserver(mutations => {\n // Update aria labels when the DOM changes\n if (mutations.some(m => !['aria-labelledby', 'aria-controls'].includes(m.attributeName!))) {\n setTimeout(() => this.setAriaLabels());\n }\n\n // Sync tabs when disabled states change\n if (mutations.some(m => m.attributeName === 'disabled')) {\n this.syncTabsAndPanels();\n }\n });\n\n // After the first update...\n this.updateComplete.then(() => {\n this.syncTabsAndPanels();\n this.mutationObserver.observe(this, { attributes: true, childList: true, subtree: true });\n this.resizeObserver.observe(this.nav);\n\n // Wait for tabs and tab panels to be registered\n whenAllDefined.then(() => {\n // Set initial tab state when the tabs become visible\n const intersectionObserver = new IntersectionObserver((entries, observer) => {\n if (entries[0].intersectionRatio > 0) {\n this.setAriaLabels();\n this.setActiveTab(this.getActiveTab() ?? this.tabs[0], { emitEvents: false });\n observer.unobserve(entries[0].target);\n }\n });\n intersectionObserver.observe(this.tabGroup);\n });\n });\n }\n\n disconnectedCallback() {\n this.mutationObserver.disconnect();\n this.resizeObserver.unobserve(this.nav);\n }\n\n private getAllTabs(options: { includeDisabled: boolean } = { includeDisabled: true }) {\n const slot = this.shadowRoot!.querySelector<HTMLSlotElement>('slot[name=\"nav\"]')!;\n\n return [...(slot.assignedElements() as NileTab[])].filter(el => {\n return options.includeDisabled\n ? el.tagName.toLowerCase() === 'nile-tab'\n : el.tagName.toLowerCase() === 'nile-tab' && !el.disabled;\n });\n }\n\n private getAllPanels() {\n return [...this.body.assignedElements()].filter(el => el.tagName.toLowerCase() === 'nile-tab-panel') as [NileTabPanel];\n }\n\n private getActiveTab() {\n return this.tabs.find(el => el.active);\n }\n\n private handleClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest('nile-tab');\n const tabGroup = tab?.closest('nile-tab-group');\n\n // Ensure the target tab is in this tab group\n if (tabGroup !== this) {\n return;\n }\n\n if (tab !== null) {\n this.setActiveTab(tab, { scrollBehavior: 'smooth' });\n }\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest('nile-tab');\n const tabGroup = tab?.closest('nile-tab-group');\n\n // Ensure the target tab is in this tab group\n if (tabGroup !== this) {\n return;\n }\n\n // Activate a tab\n if (['Enter', ' '].includes(event.key)) {\n if (tab !== null) {\n this.setActiveTab(tab, { scrollBehavior: 'smooth' });\n event.preventDefault();\n }\n }\n\n // Move focus left or right\n if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {\n const activeEl = this.tabs.find(t => t.matches(':focus'));\n const isRtl = false;\n\n if (activeEl?.tagName.toLowerCase() === 'nile-tab') {\n let index = this.tabs.indexOf(activeEl);\n\n if (event.key === 'Home') {\n index = 0;\n } else if (event.key === 'End') {\n index = this.tabs.length - 1;\n } else if (\n (['top', 'bottom'].includes(this.placement) && event.key === (isRtl ? 'ArrowRight' : 'ArrowLeft')) ||\n (['start', 'end'].includes(this.placement) && event.key === 'ArrowUp')\n ) {\n index--;\n } else if (\n (['top', 'bottom'].includes(this.placement) && event.key === (isRtl ? 'ArrowLeft' : 'ArrowRight')) ||\n (['start', 'end'].includes(this.placement) && event.key === 'ArrowDown')\n ) {\n index++;\n }\n\n if (index < 0) {\n index = this.tabs.length - 1;\n }\n\n if (index > this.tabs.length - 1) {\n index = 0;\n }\n\n this.tabs[index].focus({ preventScroll: true });\n\n if (this.activation === 'auto') {\n this.setActiveTab(this.tabs[index], { scrollBehavior: 'smooth' });\n }\n\n if (['top', 'bottom'].includes(this.placement)) {\n scrollIntoView(this.tabs[index], this.nav, 'horizontal');\n }\n\n event.preventDefault();\n }\n }\n }\n\n private handleScrollToStart() {\n this.nav.scroll({\n left:\n true\n ? this.nav.scrollLeft + this.nav.clientWidth\n : this.nav.scrollLeft - this.nav.clientWidth,\n behavior: 'smooth'\n });\n }\n\n private handleScrollToEnd() {\n this.nav.scroll({\n left:\n true\n ? this.nav.scrollLeft - this.nav.clientWidth\n : this.nav.scrollLeft + this.nav.clientWidth,\n behavior: 'smooth'\n });\n }\n\n private setActiveTab(tab: NileTab, options?: { emitEvents?: boolean; scrollBehavior?: 'auto' | 'smooth' }) {\n\n options = {\n emitEvents: true,\n scrollBehavior: 'auto',\n ...options\n };\n\n if (tab !== this.activeTab && !tab.disabled) {\n\n const previousTab = this.activeTab;\n this.activeTab = tab;\n\n\n // Sync active tab and panel\n this.tabs.map(el => (el.active = el === this.activeTab));\n this.panels.map(el => (el.active = el.name === this.activeTab?.panel));\n this.syncIndicator();\n\n if (['top', 'bottom'].includes(this.placement)) {\n scrollIntoView(this.activeTab, this.nav, 'horizontal', options.scrollBehavior);\n }\n\n // Emit events\n if (options.emitEvents) {\n if (previousTab) {\n this.emit('nile-tab-hide', { value: previousTab.panel });\n }\n\n this.emit('nile-tab-show', { value: this.activeTab.panel });\n }\n }\n }\n\n private setAriaLabels() {\n // Link each tab with its corresponding panel\n this.tabs.forEach(tab => {\n const panel = this.panels.find(el => el.name === tab.panel);\n if (panel) {\n tab.setAttribute('aria-controls', panel.getAttribute('id')!);\n panel.setAttribute('aria-labelledby', tab.getAttribute('id')!);\n }\n });\n }\n\n private repositionIndicator() {\n const currentTab = this.getActiveTab();\n\n if (!currentTab || !this.indicator) {\n return;\n }\n\n const width = currentTab.clientWidth;\n const height = currentTab.clientHeight;\n const isRtl = false;\n\n // We can't used offsetLeft/offsetTop here due to a shadow parent issue where neither can getBoundingClientRect\n // because it provides invalid values for animating elements: https://bugs.chromium.org/p/chromium/issues/detail?id=920069\n const allTabs = this.getAllTabs();\n const precedingTabs = allTabs.slice(0, allTabs.indexOf(currentTab));\n const offset = precedingTabs.reduce(\n (previous, current) => ({\n left: previous.left + current.clientWidth + 12,\n top: previous.top + current.clientHeight + 12\n }),\n { left: 0, top: 0 }\n );\n\n switch (this.placement) {\n case 'top':\n case 'bottom':\n this.indicator.style.width = `${width - 5}px`;\n this.indicator.style.height = 'auto';\n this.indicator.style.translate = `${offset.left + 2}px`;\n break;\n\n case 'start':\n case 'end':\n this.indicator.style.width = 'auto';\n this.indicator.style.height = `${height}px`;\n this.indicator.style.translate = `0 ${offset.top}px`;\n break;\n }\n }\n\n // This stores tabs and panels so we can refer to a cache instead of calling querySelectorAll() multiple times.\n private syncTabsAndPanels() {\n this.tabs = this.getAllTabs({ includeDisabled: false });\n this.panels = this.getAllPanels();\n this.syncIndicator();\n\n this.tabs.forEach((tab:any) => {\n tab.centered = this.centered;\n });\n\n // After updating, show or hide scroll controls as needed\n this.updateComplete.then(() => this.updateScrollControls());\n }\n\n @watch('noScrollControls', { waitUntilFirstUpdate: true })\n updateScrollControls() {\n if (this.noScrollControls) {\n this.hasScrollControls = false;\n } else {\n this.hasScrollControls =\n ['top', 'bottom'].includes(this.placement) && this.nav.scrollWidth > this.nav.clientWidth;\n this.hasScrollControls = false;\n }\n }\n\n @watch('placement', { waitUntilFirstUpdate: true })\n syncIndicator() {\n if(!this.indicator) return;\n const tab = this.getActiveTab();\n\n if (tab) {\n this.indicator.style.display = 'block';\n this.repositionIndicator();\n } else {\n this.indicator.style.display = 'none';\n }\n }\n\n /** Shows the specified tab panel. */\n show(panel: string) {\n const tab = this.tabs.find(el => el.panel === panel);\n\n if (tab) {\n this.setActiveTab(tab, { scrollBehavior: 'smooth' });\n }\n }\n\n render() {\n const isRtl = true;\n\n return html`\n <div\n part=\"base\"\n class=${classMap({\n 'tab-group': true,\n 'tab-group--top': this.placement === 'top',\n 'tab-group--bottom': this.placement === 'bottom',\n 'tab-group--start': this.placement === 'start',\n 'tab-group--end': this.placement === 'end',\n 'tab-group--rtl': true,\n 'tab-group--has-scroll-controls': this.hasScrollControls,\n 'hide__track':this.noTrack\n })}\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n >\n <div class=\"tab-group__nav-container\" part=\"nav\">\n ${this.hasScrollControls\n ? html`\n <nile-icon-button\n part=\"scroll-button scroll-button--start\"\n exportparts=\"base:scroll-button__base\"\n class=\"tab-group__scroll-button tab-group__scroll-button--start\"\n name='arrowright'\n library=\"system\"\n label=\"scrollToStart\"\n @click=${this.handleScrollToStart}\n ></nile-icon-button>\n `\n : ''}\n\n <div class=\"tab-group__nav\">\n <div part=\"tabs\" class=\"tab-group__tabs\" role=\"tablist\">\n <div\n part=\"active-tab-indicator\"\n class=${classMap({\n 'tab-group__indicator': !this.noTrack,\n })}\n ></div>\n <slot name=\"nav\" @slotchange=${this.syncTabsAndPanels}></slot>\n </div>\n </div>\n\n ${this.hasScrollControls\n ? html`\n <nile-icon-button\n part=\"scroll-button scroll-button--end\"\n exportparts=\"base:scroll-button__base\"\n class=\"tab-group__scroll-button tab-group__scroll-button--end\"\n name='arrowleft'\n library=\"system\"\n label=\"scrollToEnd\"\n @click=${this.handleScrollToEnd}\n ></nile-icon-button>\n `\n : ''}\n </div>\n\n <slot part=\"body\" class=\"tab-group__body\" @slotchange=${this.syncTabsAndPanels}></slot>\n </div>\n `;\n }\n}\n\nexport default NileTabGroup;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-tab-group': NileTabGroup;\n }\n}\n"],"names":["NileTabGroup","m","this","tabs","panels","hasScrollControls","placement","noTrack","activation","noScrollControls","centered","_this","_inherits","_l","_createClass","key","value","connectedCallback","whenAllDefined","Promise","allSettled","customElements","whenDefined","super","resizeObserver","ResizeObserver","repositionIndicator","updateScrollControls","mutationObserver","MutationObserver","mutations","some","includes","attributeName","setTimeout","setAriaLabels","syncTabsAndPanels","updateComplete","then","observe","attributes","childList","subtree","nav","IntersectionObserver","entries","observer","intersectionRatio","setActiveTab","getActiveTab","emitEvents","unobserve","target","tabGroup","disconnectedCallback","disconnect","getAllTabs","options","includeDisabled","_toConsumableArray","shadowRoot","querySelector","assignedElements","filter","el","tagName","toLowerCase","disabled","getAllPanels","body","find","active","handleClick","event","tab","closest","scrollBehavior","handleKeyDown","preventDefault","activeEl","t","matches","index","indexOf","length","focus","preventScroll","scrollIntoView","handleScrollToStart","scroll","left","scrollLeft","clientWidth","behavior","handleScrollToEnd","activeTab","previousTab","map","name","panel","syncIndicator","emit","forEach","setAttribute","getAttribute","currentTab","indicator","width","height","clientHeight","allTabs","offset","slice","reduce","previous","current","top","style","translate","concat","scrollWidth","display","show","render","html","_templateObject","_taggedTemplateLiteral","classMap","hide__track","_templateObject2","_templateObject3","NileElement","styles","__decorate","query","prototype","state","property","type","Boolean","reflect","attribute","watch","waitUntilFirstUpdate","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"nile-tab-group.cjs.js","sources":["../../../src/nile-tab-group/nile-tab-group.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {LitElement, html, property, CSSResultArray, TemplateResult} from 'lit-element';\nimport { customElement } from 'lit/decorators.js';\nimport {styles} from './nile-tab-group.css';\n\nimport '../nile-icon-button/nile-icon-button';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query, state } from 'lit/decorators.js';\nimport { scrollIntoView } from '../internal/scroll';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup, PropertyValueMap } from 'lit';\nimport type NileTab from '../nile-tab/nile-tab';\nimport type NileTabPanel from '../nile-tab-panel/nile-tab-panel';\n\n/**\n * Nile icon component.\n *\n * @tag nile-tab-group\n *\n * @slot - Used for grouping tab panels in the tab group. Must be `<nile-tab-panel>` elements.\n * @slot nav - Used for grouping tabs in the tab group. Must be `<nile-tab>` elements.\n *\n * @event {{ name: String }} nile-tab-show - Emitted when a tab is shown.\n * @event {{ name: String }} nile-tab-hide - Emitted when a tab is hidden.\n *\n * @csspart base - The component's base wrapper.\n * @csspart nav - The tab group's navigation container where tabs are slotted in.\n * @csspart tabs - The container that wraps the tabs.\n * @csspart active-tab-indicator - The line that highlights the currently selected tab.\n * @csspart body - The tab group's body where tab panels are slotted in.\n * @csspart scroll-button - The previous/next scroll buttons that show when tabs are scrollable, an `<nile-icon-button>`.\n * @csspart scroll-button--start - The starting scroll button.\n * @csspart scroll-button--end - The ending scroll button.\n * @csspart scroll-button__base - The scroll button's exported `base` part.\n *\n * @cssproperty --indicator-color - The color of the active tab indicator.\n * @cssproperty --track-color - The color of the indicator's track (the line that separates tabs from panels).\n * @cssproperty --track-width - The width of the indicator's track (the line that separates tabs from panels).\n *\n */\n@customElement('nile-tab-group')\nexport class NileTabGroup extends NileElement {\n\n static styles: CSSResultGroup = styles;\n\n private activeTab?: NileTab;\n private mutationObserver: MutationObserver;\n private resizeObserver: ResizeObserver;\n private tabs: NileTab[] = [];\n private panels: NileTabPanel[] = [];\n\n @query('.tab-group') tabGroup: HTMLElement;\n @query('.tab-group__body') body: HTMLSlotElement;\n @query('.tab-group__nav') nav: HTMLElement;\n @query('.tab-group__indicator') indicator: HTMLElement;\n\n @state() private hasScrollControls = false;\n\n /** The placement of the tabs. */\n @property() placement: 'top' | 'bottom' | 'start' | 'end' = 'top';\n\n /** The placement of the tabs. */\n @property({ reflect: true, attribute: 'value', type: String }) activeTabName: string = '';\n\n /** Track for showing Indicators and Background. */\n @property({ type: Boolean, reflect: true, attribute:'no-track'}) noTrack = false;\n\n /**\n * When set to auto, navigating tabs with the arrow keys will instantly show the corresponding tab panel. When set to\n * manual, the tab will receive focus but will not show until the user presses spacebar or enter.\n */\n @property() activation: 'auto' | 'manual' = 'auto';\n\n /** Disables the scroll arrows that appear when tabs overflow. */\n @property({ attribute: 'no-scroll-controls', type: Boolean }) noScrollControls = false;\n\n /** Controls whether tabs are centered and have equal width */\n @property({ type: Boolean, reflect: true }) centered = false;\n\n connectedCallback() {\n const whenAllDefined = Promise.allSettled([\n customElements.whenDefined('nile-tab'),\n customElements.whenDefined('nile-tab-panel')\n ]);\n\n super.connectedCallback();\n\n this.resizeObserver = new ResizeObserver(() => {\n this.repositionIndicator();\n this.updateScrollControls();\n });\n\n this.mutationObserver = new MutationObserver(mutations => {\n // Update aria labels when the DOM changes\n if (mutations.some(m => !['aria-labelledby', 'aria-controls'].includes(m.attributeName!))) {\n setTimeout(() => this.setAriaLabels());\n }\n\n // Sync tabs when disabled states change\n if (mutations.some(m => m.attributeName === 'disabled')) {\n this.syncTabsAndPanels();\n }\n });\n\n // After the first update...\n this.updateComplete.then(() => {\n this.setActiveTab(this.getActiveTab(), { emitEvents: false });\n this.syncIndicator();\n\n this.syncTabsAndPanels();\n this.mutationObserver.observe(this, { attributes: true, childList: true, subtree: true });\n this.resizeObserver.observe(this.nav);\n // Wait for tabs and tab panels to be registered\n whenAllDefined.then(() => {\n // Set initial tab state when the tabs become visible\n const intersectionObserver = new IntersectionObserver((entries, observer) => {\n if (entries[0].intersectionRatio > 0) {\n this.setAriaLabels();\n observer.unobserve(entries[0].target);\n }\n });\n intersectionObserver.observe(this.tabGroup);\n });\n });\n }\n\n disconnectedCallback() {\n this.mutationObserver.disconnect();\n this.resizeObserver.unobserve(this.nav);\n }\n\n protected updated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n if(_changedProperties.has('activeTabName')){\n const tab=this.getActiveTab()\n if(!tab) return;\n this.setActiveTab(tab, {scrollBehavior: 'smooth' });\n }\n }\n\n private getAllTabs(options: { includeDisabled: boolean } = { includeDisabled: true }) {\n const slot = this.shadowRoot!.querySelector<HTMLSlotElement>('slot[name=\"nav\"]')!;\n\n return [...(slot.assignedElements() as NileTab[])].filter(el => {\n return options.includeDisabled\n ? el.tagName.toLowerCase() === 'nile-tab'\n : el.tagName.toLowerCase() === 'nile-tab' && !el.disabled;\n });\n }\n\n private getAllPanels() {\n return [...this.body.assignedElements()].filter(el => el.tagName.toLowerCase() === 'nile-tab-panel') as [NileTabPanel];\n }\n\n private getActiveTab() {\n return this.tabs.find(el => el.panel==this.activeTabName) ?? this.tabs[0];\n }\n\n private handleClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest('nile-tab');\n const tabGroup = tab?.closest('nile-tab-group');\n\n // Ensure the target tab is in this tab group\n if (tabGroup !== this) {\n return;\n }\n\n if (tab !== null) {\n this.activeTabName=tab.panel\n }\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest('nile-tab');\n const tabGroup = tab?.closest('nile-tab-group');\n\n // Ensure the target tab is in this tab group\n if (tabGroup !== this) {\n return;\n }\n\n // Activate a tab\n if (['Enter', ' '].includes(event.key)) {\n if (tab !== null) {\n this.activeTabName=tab.panel\n event.preventDefault();\n }\n }\n\n // Move focus left or right\n if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {\n const activeEl = this.tabs.find(t => t.matches(':focus'));\n const isRtl = false;\n\n if (activeEl?.tagName.toLowerCase() === 'nile-tab') {\n let index = this.tabs.indexOf(activeEl);\n\n if (event.key === 'Home') {\n index = 0;\n } else if (event.key === 'End') {\n index = this.tabs.length - 1;\n } else if (\n (['top', 'bottom'].includes(this.placement) && event.key === (isRtl ? 'ArrowRight' : 'ArrowLeft')) ||\n (['start', 'end'].includes(this.placement) && event.key === 'ArrowUp')\n ) {\n index--;\n } else if (\n (['top', 'bottom'].includes(this.placement) && event.key === (isRtl ? 'ArrowLeft' : 'ArrowRight')) ||\n (['start', 'end'].includes(this.placement) && event.key === 'ArrowDown')\n ) {\n index++;\n }\n\n if (index < 0) {\n index = this.tabs.length - 1;\n }\n\n if (index > this.tabs.length - 1) {\n index = 0;\n }\n\n this.tabs[index].focus({ preventScroll: true });\n\n if (this.activation === 'auto') {\n this.activeTabName=this.tabs[index].panel\n }\n\n if (['top', 'bottom'].includes(this.placement)) {\n scrollIntoView(this.tabs[index], this.nav, 'horizontal');\n }\n\n event.preventDefault();\n }\n }\n }\n\n private handleScrollToStart() {\n this.nav.scroll({\n left:\n true\n ? this.nav.scrollLeft + this.nav.clientWidth\n : this.nav.scrollLeft - this.nav.clientWidth,\n behavior: 'smooth'\n });\n }\n\n private handleScrollToEnd() {\n this.nav.scroll({\n left:\n true\n ? this.nav.scrollLeft - this.nav.clientWidth\n : this.nav.scrollLeft + this.nav.clientWidth,\n behavior: 'smooth'\n });\n }\n\n private setActiveTab(tab: NileTab, options?: { emitEvents?: boolean; scrollBehavior?: 'auto' | 'smooth' }) {\n options = {\n emitEvents: true,\n scrollBehavior: 'auto',\n ...options\n };\n\n if (tab !== this.activeTab && !tab.disabled) {\n\n const previousTab = this.activeTab;\n this.activeTab = tab;\n\n // Sync active tab and panel\n this.tabs.map(el => (el.active = el === this.activeTab));\n this.panels.map(el => (el.active = el.name === this.activeTab?.panel));\n this.syncIndicator();\n\n if (['top', 'bottom'].includes(this.placement)) {\n scrollIntoView(this.activeTab, this.nav, 'horizontal', options.scrollBehavior);\n }\n\n // Emit events\n if (options.emitEvents) {\n if (previousTab) {\n this.emit('nile-tab-hide', { value: previousTab.panel });\n }\n\n this.emit('nile-tab-show', { value: this.activeTab.panel });\n }\n }\n }\n\n private setAriaLabels() {\n // Link each tab with its corresponding panel\n this.tabs.forEach(tab => {\n const panel = this.panels.find(el => el.name === tab.panel);\n if (panel) {\n tab.setAttribute('aria-controls', panel.getAttribute('id')!);\n panel.setAttribute('aria-labelledby', tab.getAttribute('id')!);\n }\n });\n }\n\n private repositionIndicator() {\n const currentTab = this.getActiveTab();\n\n if (!currentTab || !this.indicator) {\n return;\n }\n\n const width = currentTab.clientWidth;\n const height = currentTab.clientHeight;\n const isRtl = false;\n\n // We can't used offsetLeft/offsetTop here due to a shadow parent issue where neither can getBoundingClientRect\n // because it provides invalid values for animating elements: https://bugs.chromium.org/p/chromium/issues/detail?id=920069\n const allTabs = this.getAllTabs();\n const precedingTabs = allTabs.slice(0, allTabs.indexOf(currentTab));\n const offset = precedingTabs.reduce(\n (previous, current) => ({\n left: previous.left + current.clientWidth + 12,\n top: previous.top + current.clientHeight + 12\n }),\n { left: 0, top: 0 }\n );\n\n switch (this.placement) {\n case 'top':\n case 'bottom':\n this.indicator.style.width = `${width - 5}px`;\n this.indicator.style.height = 'auto';\n this.indicator.style.translate = `${offset.left + 2}px`;\n break;\n\n case 'start':\n case 'end':\n this.indicator.style.width = 'auto';\n this.indicator.style.height = `${height}px`;\n this.indicator.style.translate = `0 ${offset.top}px`;\n break;\n }\n }\n\n // This stores tabs and panels so we can refer to a cache instead of calling querySelectorAll() multiple times.\n private syncTabsAndPanels() {\n this.tabs = this.getAllTabs({ includeDisabled: false });\n this.panels = this.getAllPanels();\n // this.syncIndicator();\n\n this.tabs.forEach((tab:any) => {\n tab.centered = this.centered;\n });\n\n // After updating, show or hide scroll controls as needed\n this.updateComplete.then(() => this.updateScrollControls());\n }\n\n @watch('noScrollControls', { waitUntilFirstUpdate: true })\n updateScrollControls() {\n if (this.noScrollControls) {\n this.hasScrollControls = false;\n } else {\n this.hasScrollControls =\n ['top', 'bottom'].includes(this.placement) && this.nav.scrollWidth > this.nav.clientWidth;\n this.hasScrollControls = false;\n }\n }\n\n @watch('placement', { waitUntilFirstUpdate: true })\n syncIndicator() {\n if(!this.indicator) return;\n const tab = this.getActiveTab();\n\n if (tab) {\n this.indicator.style.display = 'block';\n this.repositionIndicator();\n } else {\n this.indicator.style.display = 'none';\n }\n }\n\n /** Shows the specified tab panel. */\n show(panel: string) {\n const tab = this.tabs.find(el => el.panel === panel);\n\n if (tab) {\n this.activeTabName=tab.panel;\n }\n }\n\n render() {\n const isRtl = true;\n\n return html`\n <div\n part=\"base\"\n class=${classMap({\n 'tab-group': true,\n 'tab-group--top': this.placement === 'top',\n 'tab-group--bottom': this.placement === 'bottom',\n 'tab-group--start': this.placement === 'start',\n 'tab-group--end': this.placement === 'end',\n 'tab-group--rtl': true,\n 'tab-group--has-scroll-controls': this.hasScrollControls,\n 'hide__track':this.noTrack\n })}\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n >\n <div class=\"tab-group__nav-container\" part=\"nav\">\n ${this.hasScrollControls\n ? html`\n <nile-icon-button\n part=\"scroll-button scroll-button--start\"\n exportparts=\"base:scroll-button__base\"\n class=\"tab-group__scroll-button tab-group__scroll-button--start\"\n name='arrowright'\n library=\"system\"\n label=\"scrollToStart\"\n @click=${this.handleScrollToStart}\n ></nile-icon-button>\n `\n : ''}\n\n <div class=\"tab-group__nav\">\n <div part=\"tabs\" class=\"tab-group__tabs\" role=\"tablist\">\n <div\n part=\"active-tab-indicator\"\n class=${classMap({\n 'tab-group__indicator': !this.noTrack,\n })}\n ></div>\n <slot name=\"nav\" @slotchange=${this.syncTabsAndPanels}></slot>\n </div>\n </div>\n\n ${this.hasScrollControls\n ? html`\n <nile-icon-button\n part=\"scroll-button scroll-button--end\"\n exportparts=\"base:scroll-button__base\"\n class=\"tab-group__scroll-button tab-group__scroll-button--end\"\n name='arrowleft'\n library=\"system\"\n label=\"scrollToEnd\"\n @click=${this.handleScrollToEnd}\n ></nile-icon-button>\n `\n : ''}\n </div>\n\n <slot part=\"body\" class=\"tab-group__body\" @slotchange=${this.syncTabsAndPanels}></slot>\n </div>\n `;\n }\n}\n\nexport default NileTabGroup;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-tab-group': NileTabGroup;\n }\n}\n"],"names":["NileTabGroup","_l","m","constructor","this","tabs","panels","hasScrollControls","placement","activeTabName","noTrack","activation","noScrollControls","centered","_this","_inherits","_createClass","key","value","connectedCallback","whenAllDefined","Promise","allSettled","customElements","whenDefined","super","resizeObserver","ResizeObserver","repositionIndicator","updateScrollControls","mutationObserver","MutationObserver","mutations","some","includes","attributeName","setTimeout","setAriaLabels","syncTabsAndPanels","updateComplete","then","setActiveTab","getActiveTab","emitEvents","syncIndicator","observe","attributes","childList","subtree","nav","IntersectionObserver","entries","observer","intersectionRatio","unobserve","target","tabGroup","disconnectedCallback","disconnect","updated","_changedProperties","has","tab","scrollBehavior","getAllTabs","options","arguments","length","undefined","includeDisabled","_toConsumableArray","shadowRoot","querySelector","assignedElements","filter","el","tagName","toLowerCase","disabled","getAllPanels","body","_this$tabs$find","_this3","find","panel","handleClick","event","closest","handleKeyDown","preventDefault","activeEl","t","matches","index","indexOf","focus","preventScroll","scrollIntoView","handleScrollToStart","scroll","left","scrollLeft","clientWidth","behavior","handleScrollToEnd","_this4","_objectSpread","activeTab","previousTab","map","active","name","emit","forEach","setAttribute","getAttribute","currentTab","indicator","width","height","clientHeight","allTabs","offset","slice","reduce","previous","current","top","style","translate","concat","scrollWidth","display","show","render","html","_templateObject","_taggedTemplateLiteral","classMap","hide__track","_templateObject2","_templateObject3","NileElement","styles","__decorate","query","prototype","state","property","reflect","attribute","type","String","Boolean","watch","waitUntilFirstUpdate","_export","customElement"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import{__decorate as i}from"tslib";import{x as s}from"../index-0a3007c5.esm.js";import{query as o,state as n,customElement as e}from"lit/decorators.js";import{s as c}from"./nile-tab-group.css.esm.js";import"../nile-icon-button/nile-icon-button.esm.js";import{classMap as t}from"lit/directives/class-map.js";import{s as m}from"../internal/scroll.esm.js";import{w as r}from"../internal/watch.esm.js";import{N as l}from"../internal/nile-element.esm.js";import{n as p}from"../property-09139d3c.esm.js";import"../nile-icon-button/nile-icon-button.css.esm.js";import"../nile-icon/index.esm.js";import"lit";import"lit/directives/unsafe-svg.js";import"../nile-icon/icons/svg/index.esm.js";import"../nile-icon/icons/svg/access-request.esm.js";import"../nile-icon/icons/svg/accessreview.esm.js";import"../nile-icon/icons/svg/action.esm.js";import"../nile-icon/icons/svg/actionworkflow.esm.js";import"../nile-icon/icons/svg/address.esm.js";import"../nile-icon/icons/svg/agent.esm.js";import"../nile-icon/icons/svg/agents.esm.js";import"../nile-icon/icons/svg/aggregation.esm.js";import"../nile-icon/icons/svg/alert-circle.esm.js";import"../nile-icon/icons/svg/alert.esm.js";import"../nile-icon/icons/svg/allapplication.esm.js";import"../nile-icon/icons/svg/allsearch.esm.js";import"../nile-icon/icons/svg/anomaly.esm.js";import"../nile-icon/icons/svg/api.esm.js";import"../nile-icon/icons/svg/application.esm.js";import"../nile-icon/icons/svg/applications-2.esm.js";import"../nile-icon/icons/svg/applications.esm.js";import"../nile-icon/icons/svg/apply-filter.esm.js";import"../nile-icon/icons/svg/approve.esm.js";import"../nile-icon/icons/svg/apps.esm.js";import"../nile-icon/icons/svg/aquera.esm.js";import"../nile-icon/icons/svg/aquerasupport.esm.js";import"../nile-icon/icons/svg/array-loop.esm.js";import"../nile-icon/icons/svg/array-of-boolean.esm.js";import"../nile-icon/icons/svg/array-of-integer.esm.js";import"../nile-icon/icons/svg/array-of-string.esm.js";import"../nile-icon/icons/svg/array.esm.js";import"../nile-icon/icons/svg/arrayofobject.esm.js";import"../nile-icon/icons/svg/arrow-narrow-left.esm.js";import"../nile-icon/icons/svg/arrow.esm.js";import"../nile-icon/icons/svg/arrowdown.esm.js";import"../nile-icon/icons/svg/arrowdropdown.esm.js";import"../nile-icon/icons/svg/arrowdropup.esm.js";import"../nile-icon/icons/svg/arrowleft.esm.js";import"../nile-icon/icons/svg/arrowright.esm.js";import"../nile-icon/icons/svg/arrowup.esm.js";import"../nile-icon/icons/svg/attribute-map-analysis-icon.esm.js";import"../nile-icon/icons/svg/attributemap.esm.js";import"../nile-icon/icons/svg/back.esm.js";import"../nile-icon/icons/svg/bar-and-line-chart.esm.js";import"../nile-icon/icons/svg/bar-chart-square-02.esm.js";import"../nile-icon/icons/svg/bar-chart-square-03.esm.js";import"../nile-icon/icons/svg/bargraph.esm.js";import"../nile-icon/icons/svg/basic.esm.js";import"../nile-icon/icons/svg/bell-icon.esm.js";import"../nile-icon/icons/svg/bell.esm.js";import"../nile-icon/icons/svg/block-02.esm.js";import"../nile-icon/icons/svg/block.esm.js";import"../nile-icon/icons/svg/bluedot.esm.js";import"../nile-icon/icons/svg/book-closed.esm.js";import"../nile-icon/icons/svg/boolean.esm.js";import"../nile-icon/icons/svg/border_all.esm.js";import"../nile-icon/icons/svg/box.esm.js";import"../nile-icon/icons/svg/bubble-chart.esm.js";import"../nile-icon/icons/svg/bulk-sync.esm.js";import"../nile-icon/icons/svg/button-loading-black.esm.js";import"../nile-icon/icons/svg/button-loading-blue-animated.esm.js";import"../nile-icon/icons/svg/button-loading-blue.esm.js";import"../nile-icon/icons/svg/button-loading-white.esm.js";import"../nile-icon/icons/svg/calendar-01.esm.js";import"../nile-icon/icons/svg/calendar.esm.js";import"../nile-icon/icons/svg/cancel.esm.js";import"../nile-icon/icons/svg/cases.esm.js";import"../nile-icon/icons/svg/caution.esm.js";import"../nile-icon/icons/svg/cell-loader.esm.js";import"../nile-icon/icons/svg/certification.esm.js";import"../nile-icon/icons/svg/check-circle.esm.js";import"../nile-icon/icons/svg/check-done-01.esm.js";import"../nile-icon/icons/svg/check-done-02.esm.js";import"../nile-icon/icons/svg/check.esm.js";import"../nile-icon/icons/svg/chevron-down.esm.js";import"../nile-icon/icons/svg/chevron-left-double.esm.js";import"../nile-icon/icons/svg/chevron-selector-vertical.esm.js";import"../nile-icon/icons/svg/chevron-up.esm.js";import"../nile-icon/icons/svg/clock-check.esm.js";import"../nile-icon/icons/svg/clock-rewind.esm.js";import"../nile-icon/icons/svg/clock.esm.js";import"../nile-icon/icons/svg/close.esm.js";import"../nile-icon/icons/svg/cloud-01.esm.js";import"../nile-icon/icons/svg/collapse-1.esm.js";import"../nile-icon/icons/svg/collapse.esm.js";import"../nile-icon/icons/svg/color.esm.js";import"../nile-icon/icons/svg/columns-03.esm.js";import"../nile-icon/icons/svg/combo1.esm.js";import"../nile-icon/icons/svg/compact.esm.js";import"../nile-icon/icons/svg/compare-tiles.esm.js";import"../nile-icon/icons/svg/compare.esm.js";import"../nile-icon/icons/svg/component-menu.esm.js";import"../nile-icon/icons/svg/component.esm.js";import"../nile-icon/icons/svg/componentblock.esm.js";import"../nile-icon/icons/svg/components-icon.esm.js";import"../nile-icon/icons/svg/componenttext.esm.js";import"../nile-icon/icons/svg/condition.esm.js";import"../nile-icon/icons/svg/conditions.esm.js";import"../nile-icon/icons/svg/connect.esm.js";import"../nile-icon/icons/svg/connectivitymap.esm.js";import"../nile-icon/icons/svg/connectorrightarrow.esm.js";import"../nile-icon/icons/svg/continuous.esm.js";import"../nile-icon/icons/svg/copy-06.esm.js";import"../nile-icon/icons/svg/copy.esm.js";import"../nile-icon/icons/svg/cor-analysis.esm.js";import"../nile-icon/icons/svg/correlation.esm.js";import"../nile-icon/icons/svg/create.esm.js";import"../nile-icon/icons/svg/createuser.esm.js";import"../nile-icon/icons/svg/custom.esm.js";import"../nile-icon/icons/svg/dashboard.esm.js";import"../nile-icon/icons/svg/data-insight.esm.js";import"../nile-icon/icons/svg/data-type-array.esm.js";import"../nile-icon/icons/svg/data-type-boolean.esm.js";import"../nile-icon/icons/svg/data-type-expression.esm.js";import"../nile-icon/icons/svg/data-type-json.esm.js";import"../nile-icon/icons/svg/data-type-null.esm.js";import"../nile-icon/icons/svg/data-type-number.esm.js";import"../nile-icon/icons/svg/data-type-persistent-variable.esm.js";import"../nile-icon/icons/svg/data-type-string.esm.js";import"../nile-icon/icons/svg/data-type-unknown.esm.js";import"../nile-icon/icons/svg/data-type-variable.esm.js";import"../nile-icon/icons/svg/database-1.esm.js";import"../nile-icon/icons/svg/database.esm.js";import"../nile-icon/icons/svg/databaseview.esm.js";import"../nile-icon/icons/svg/dataflow-03.esm.js";import"../nile-icon/icons/svg/dataflow-04.esm.js";import"../nile-icon/icons/svg/default-1.esm.js";import"../nile-icon/icons/svg/default-cursor.esm.js";import"../nile-icon/icons/svg/default.esm.js";import"../nile-icon/icons/svg/delegate.esm.js";import"../nile-icon/icons/svg/delete.esm.js";import"../nile-icon/icons/svg/deleteuser.esm.js";import"../nile-icon/icons/svg/deligateduser.esm.js";import"../nile-icon/icons/svg/directory.esm.js";import"../nile-icon/icons/svg/disabled.esm.js";import"../nile-icon/icons/svg/dock-to-right.esm.js";import"../nile-icon/icons/svg/document.esm.js";import"../nile-icon/icons/svg/done-02.esm.js";import"../nile-icon/icons/svg/done.esm.js";import"../nile-icon/icons/svg/dontmap.esm.js";import"../nile-icon/icons/svg/donut.esm.js";import"../nile-icon/icons/svg/dotpoints-02.esm.js";import"../nile-icon/icons/svg/dots-grid.esm.js";import"../nile-icon/icons/svg/dots-vertical.esm.js";import"../nile-icon/icons/svg/doublearrowleft.esm.js";import"../nile-icon/icons/svg/doublearrowright.esm.js";import"../nile-icon/icons/svg/dowhileloop.esm.js";import"../nile-icon/icons/svg/downarrow.esm.js";import"../nile-icon/icons/svg/downgrade.esm.js";import"../nile-icon/icons/svg/download-01.esm.js";import"../nile-icon/icons/svg/download-02.esm.js";import"../nile-icon/icons/svg/download.esm.js";import"../nile-icon/icons/svg/drag.esm.js";import"../nile-icon/icons/svg/draglist.esm.js";import"../nile-icon/icons/svg/droparrow.esm.js";import"../nile-icon/icons/svg/dropdown.esm.js";import"../nile-icon/icons/svg/edit-01.esm.js";import"../nile-icon/icons/svg/edit-1.esm.js";import"../nile-icon/icons/svg/edit-pencil.esm.js";import"../nile-icon/icons/svg/edit-write.esm.js";import"../nile-icon/icons/svg/else.esm.js";import"../nile-icon/icons/svg/email.esm.js";import"../nile-icon/icons/svg/enable.esm.js";import"../nile-icon/icons/svg/enabled.esm.js";import"../nile-icon/icons/svg/entities.esm.js";import"../nile-icon/icons/svg/entitlement.esm.js";import"../nile-icon/icons/svg/error.esm.js";import"../nile-icon/icons/svg/escalate.esm.js";import"../nile-icon/icons/svg/event.esm.js";import"../nile-icon/icons/svg/every.esm.js";import"../nile-icon/icons/svg/exactmatch.esm.js";import"../nile-icon/icons/svg/execute.esm.js";import"../nile-icon/icons/svg/expand-03.esm.js";import"../nile-icon/icons/svg/expand-06.esm.js";import"../nile-icon/icons/svg/expand-1.esm.js";import"../nile-icon/icons/svg/expand-2.esm.js";import"../nile-icon/icons/svg/expand.esm.js";import"../nile-icon/icons/svg/eye-off.esm.js";import"../nile-icon/icons/svg/eye.esm.js";import"../nile-icon/icons/svg/eyeclosed.esm.js";import"../nile-icon/icons/svg/featured-icon.esm.js";import"../nile-icon/icons/svg/file-06.esm.js";import"../nile-icon/icons/svg/file-check-02.esm.js";import"../nile-icon/icons/svg/file-shield-01.esm.js";import"../nile-icon/icons/svg/file-shield-02.esm.js";import"../nile-icon/icons/svg/file-type-icon.esm.js";import"../nile-icon/icons/svg/file.esm.js";import"../nile-icon/icons/svg/filter-1.esm.js";import"../nile-icon/icons/svg/filter.esm.js";import"../nile-icon/icons/svg/fingerprint-03.esm.js";import"../nile-icon/icons/svg/firewall.esm.js";import"../nile-icon/icons/svg/firewallagent.esm.js";import"../nile-icon/icons/svg/flow-01.esm.js";import"../nile-icon/icons/svg/flow-h.esm.js";import"../nile-icon/icons/svg/flow.esm.js";import"../nile-icon/icons/svg/flowmap-agent.esm.js";import"../nile-icon/icons/svg/flowmap-application.esm.js";import"../nile-icon/icons/svg/flowmap-aquera.esm.js";import"../nile-icon/icons/svg/flowmap-block.esm.js";import"../nile-icon/icons/svg/flowmap-cancel.esm.js";import"../nile-icon/icons/svg/flowmap-colorpalatte.esm.js";import"../nile-icon/icons/svg/flowmap-drag.esm.js";import"../nile-icon/icons/svg/flowmap-ellipsis.esm.js";import"../nile-icon/icons/svg/flowmap-firewall-agent.esm.js";import"../nile-icon/icons/svg/flowmap-firewall.esm.js";import"../nile-icon/icons/svg/flowmap-gateway.esm.js";import"../nile-icon/icons/svg/flowmap-hand.esm.js";import"../nile-icon/icons/svg/flowmap-orchestration.esm.js";import"../nile-icon/icons/svg/flowmap-redo.esm.js";import"../nile-icon/icons/svg/flowmap-section.esm.js";import"../nile-icon/icons/svg/flowmap-text.esm.js";import"../nile-icon/icons/svg/flowmap-undo.esm.js";import"../nile-icon/icons/svg/flowmap-workflow.esm.js";import"../nile-icon/icons/svg/flowmap.esm.js";import"../nile-icon/icons/svg/folder-01.esm.js";import"../nile-icon/icons/svg/folder.esm.js";import"../nile-icon/icons/svg/foreach.esm.js";import"../nile-icon/icons/svg/form.esm.js";import"../nile-icon/icons/svg/frequency.esm.js";import"../nile-icon/icons/svg/full-union.esm.js";import"../nile-icon/icons/svg/fullscreen.esm.js";import"../nile-icon/icons/svg/fullscreenexit.esm.js";import"../nile-icon/icons/svg/fullscreenshrink.esm.js";import"../nile-icon/icons/svg/funnel-02.esm.js";import"../nile-icon/icons/svg/funnel.esm.js";import"../nile-icon/icons/svg/gateway.esm.js";import"../nile-icon/icons/svg/gauge.esm.js";import"../nile-icon/icons/svg/general.esm.js";import"../nile-icon/icons/svg/generationphase.esm.js";import"../nile-icon/icons/svg/global-search.esm.js";import"../nile-icon/icons/svg/globe-03.esm.js";import"../nile-icon/icons/svg/globe.esm.js";import"../nile-icon/icons/svg/goto.esm.js";import"../nile-icon/icons/svg/graph.esm.js";import"../nile-icon/icons/svg/graphedit.esm.js";import"../nile-icon/icons/svg/greendot.esm.js";import"../nile-icon/icons/svg/greydot.esm.js";import"../nile-icon/icons/svg/greylightdot.esm.js";import"../nile-icon/icons/svg/grid-01.esm.js";import"../nile-icon/icons/svg/group-analysis-icon.esm.js";import"../nile-icon/icons/svg/group.esm.js";import"../nile-icon/icons/svg/groupby.esm.js";import"../nile-icon/icons/svg/groups.esm.js";import"../nile-icon/icons/svg/guide.esm.js";import"../nile-icon/icons/svg/handtool.esm.js";import"../nile-icon/icons/svg/header-actions.esm.js";import"../nile-icon/icons/svg/header-child-workflow.esm.js";import"../nile-icon/icons/svg/header-flows.esm.js";import"../nile-icon/icons/svg/header-functions.esm.js";import"../nile-icon/icons/svg/header-tasks.esm.js";import"../nile-icon/icons/svg/header-variable.esm.js";import"../nile-icon/icons/svg/headphones-01.esm.js";import"../nile-icon/icons/svg/help-1.esm.js";import"../nile-icon/icons/svg/help-circle.esm.js";import"../nile-icon/icons/svg/help.esm.js";import"../nile-icon/icons/svg/helpandsupport.esm.js";import"../nile-icon/icons/svg/helpers.esm.js";import"../nile-icon/icons/svg/helpsupport.esm.js";import"../nile-icon/icons/svg/history.esm.js";import"../nile-icon/icons/svg/identitygraph.esm.js";import"../nile-icon/icons/svg/identityledger.esm.js";import"../nile-icon/icons/svg/if.esm.js";import"../nile-icon/icons/svg/ifelse.esm.js";import"../nile-icon/icons/svg/image.esm.js";import"../nile-icon/icons/svg/immutable.esm.js";import"../nile-icon/icons/svg/info-circle.esm.js";import"../nile-icon/icons/svg/info-icon.esm.js";import"../nile-icon/icons/svg/info-icon1.esm.js";import"../nile-icon/icons/svg/info.esm.js";import"../nile-icon/icons/svg/info2.esm.js";import"../nile-icon/icons/svg/inner-union.esm.js";import"../nile-icon/icons/svg/inprogress.esm.js";import"../nile-icon/icons/svg/integer.esm.js";import"../nile-icon/icons/svg/intersection.esm.js";import"../nile-icon/icons/svg/itemplaceholder.esm.js";import"../nile-icon/icons/svg/js.esm.js";import"../nile-icon/icons/svg/key-performance-indicator.esm.js";import"../nile-icon/icons/svg/keyboard-01.esm.js";import"../nile-icon/icons/svg/kill.esm.js";import"../nile-icon/icons/svg/laptop-01.esm.js";import"../nile-icon/icons/svg/layers-three-01.esm.js";import"../nile-icon/icons/svg/layers-three-02.esm.js";import"../nile-icon/icons/svg/layout-alt-02.esm.js";import"../nile-icon/icons/svg/layout-alt-03.esm.js";import"../nile-icon/icons/svg/left-join.esm.js";import"../nile-icon/icons/svg/left-union.esm.js";import"../nile-icon/icons/svg/leftarrow.esm.js";import"../nile-icon/icons/svg/leftpointarrow.esm.js";import"../nile-icon/icons/svg/life-buoy-01.esm.js";import"../nile-icon/icons/svg/line.esm.js";import"../nile-icon/icons/svg/link.esm.js";import"../nile-icon/icons/svg/list-attribute.esm.js";import"../nile-icon/icons/svg/list.esm.js";import"../nile-icon/icons/svg/loader.esm.js";import"../nile-icon/icons/svg/loading.esm.js";import"../nile-icon/icons/svg/loading2.esm.js";import"../nile-icon/icons/svg/lock.esm.js";import"../nile-icon/icons/svg/log-info.esm.js";import"../nile-icon/icons/svg/log.esm.js";import"../nile-icon/icons/svg/logo-white.esm.js";import"../nile-icon/icons/svg/logout.esm.js";import"../nile-icon/icons/svg/logs.esm.js";import"../nile-icon/icons/svg/loop.esm.js";import"../nile-icon/icons/svg/manage.esm.js";import"../nile-icon/icons/svg/manageduser.esm.js";import"../nile-icon/icons/svg/map.esm.js";import"../nile-icon/icons/svg/mapcreate.esm.js";import"../nile-icon/icons/svg/mapdont.esm.js";import"../nile-icon/icons/svg/maponcreate.esm.js";import"../nile-icon/icons/svg/maponupdate.esm.js";import"../nile-icon/icons/svg/mapper.esm.js";import"../nile-icon/icons/svg/mapupdate.esm.js";import"../nile-icon/icons/svg/marker-pin-01.esm.js";import"../nile-icon/icons/svg/maximize.esm.js";import"../nile-icon/icons/svg/menu.esm.js";import"../nile-icon/icons/svg/message-notification-square.esm.js";import"../nile-icon/icons/svg/minus.esm.js";import"../nile-icon/icons/svg/monitor-01.esm.js";import"../nile-icon/icons/svg/mouse.esm.js";import"../nile-icon/icons/svg/moveleft.esm.js";import"../nile-icon/icons/svg/moveright.esm.js";import"../nile-icon/icons/svg/multiple-user.esm.js";import"../nile-icon/icons/svg/mute.esm.js";import"../nile-icon/icons/svg/next-down.esm.js";import"../nile-icon/icons/svg/next.esm.js";import"../nile-icon/icons/svg/nightingale-chart.esm.js";import"../nile-icon/icons/svg/no-anomaly.esm.js";import"../nile-icon/icons/svg/nomatch.esm.js";import"../nile-icon/icons/svg/not.esm.js";import"../nile-icon/icons/svg/note.esm.js";import"../nile-icon/icons/svg/notification.esm.js";import"../nile-icon/icons/svg/notificationadd.esm.js";import"../nile-icon/icons/svg/notificationadded.esm.js";import"../nile-icon/icons/svg/notscheduled.esm.js";import"../nile-icon/icons/svg/null.esm.js";import"../nile-icon/icons/svg/number.esm.js";import"../nile-icon/icons/svg/numberinput.esm.js";import"../nile-icon/icons/svg/numbers.esm.js";import"../nile-icon/icons/svg/object.esm.js";import"../nile-icon/icons/svg/operators.esm.js";import"../nile-icon/icons/svg/options.esm.js";import"../nile-icon/icons/svg/orchestration-solid.esm.js";import"../nile-icon/icons/svg/orchestration.esm.js";import"../nile-icon/icons/svg/organization.esm.js";import"../nile-icon/icons/svg/other.esm.js";import"../nile-icon/icons/svg/otherdetails.esm.js";import"../nile-icon/icons/svg/ou-analysis-icon.esm.js";import"../nile-icon/icons/svg/override.esm.js";import"../nile-icon/icons/svg/palette.esm.js";import"../nile-icon/icons/svg/palletemenu.esm.js";import"../nile-icon/icons/svg/partner.esm.js";import"../nile-icon/icons/svg/partners.esm.js";import"../nile-icon/icons/svg/pause.esm.js";import"../nile-icon/icons/svg/pen.esm.js";import"../nile-icon/icons/svg/pencil.esm.js";import"../nile-icon/icons/svg/peopletask.esm.js";import"../nile-icon/icons/svg/persistent-variable.esm.js";import"../nile-icon/icons/svg/persistentdata.esm.js";import"../nile-icon/icons/svg/personaldetails.esm.js";import"../nile-icon/icons/svg/phone.esm.js";import"../nile-icon/icons/svg/pie.esm.js";import"../nile-icon/icons/svg/pin.esm.js";import"../nile-icon/icons/svg/placeholder-wf.esm.js";import"../nile-icon/icons/svg/play-circle.esm.js";import"../nile-icon/icons/svg/play.esm.js";import"../nile-icon/icons/svg/plus-icon.esm.js";import"../nile-icon/icons/svg/plus.esm.js";import"../nile-icon/icons/svg/pluscircle.esm.js";import"../nile-icon/icons/svg/plussquare.esm.js";import"../nile-icon/icons/svg/policy.esm.js";import"../nile-icon/icons/svg/potentialmatch.esm.js";import"../nile-icon/icons/svg/poweron.esm.js";import"../nile-icon/icons/svg/predefined.esm.js";import"../nile-icon/icons/svg/prev-up.esm.js";import"../nile-icon/icons/svg/prev.esm.js";import"../nile-icon/icons/svg/preview.esm.js";import"../nile-icon/icons/svg/printer.esm.js";import"../nile-icon/icons/svg/priority-high.esm.js";import"../nile-icon/icons/svg/priority-highest.esm.js";import"../nile-icon/icons/svg/priority-low.esm.js";import"../nile-icon/icons/svg/priority-medium.esm.js";import"../nile-icon/icons/svg/privilage.esm.js";import"../nile-icon/icons/svg/privilege.esm.js";import"../nile-icon/icons/svg/privilegeobject.esm.js";import"../nile-icon/icons/svg/process.esm.js";import"../nile-icon/icons/svg/professionaldetails.esm.js";import"../nile-icon/icons/svg/question.esm.js";import"../nile-icon/icons/svg/radar.esm.js";import"../nile-icon/icons/svg/radio.esm.js";import"../nile-icon/icons/svg/radioactive.esm.js";import"../nile-icon/icons/svg/radiodone.esm.js";import"../nile-icon/icons/svg/read.esm.js";import"../nile-icon/icons/svg/readexpression.esm.js";import"../nile-icon/icons/svg/readonly.esm.js";import"../nile-icon/icons/svg/readonlyuser.esm.js";import"../nile-icon/icons/svg/readuser.esm.js";import"../nile-icon/icons/svg/reddot.esm.js";import"../nile-icon/icons/svg/redo-02.esm.js";import"../nile-icon/icons/svg/redo.esm.js";import"../nile-icon/icons/svg/refresh-cw-03.esm.js";import"../nile-icon/icons/svg/refresh.esm.js";import"../nile-icon/icons/svg/reminder.esm.js";import"../nile-icon/icons/svg/resize.esm.js";import"../nile-icon/icons/svg/resource.esm.js";import"../nile-icon/icons/svg/returnvalue.esm.js";import"../nile-icon/icons/svg/revocationcycle.esm.js";import"../nile-icon/icons/svg/revokation-cycle.esm.js";import"../nile-icon/icons/svg/right-join.esm.js";import"../nile-icon/icons/svg/right-union.esm.js";import"../nile-icon/icons/svg/rightarrow.esm.js";import"../nile-icon/icons/svg/role.esm.js";import"../nile-icon/icons/svg/rolemanager.esm.js";import"../nile-icon/icons/svg/run.esm.js";import"../nile-icon/icons/svg/sankey.esm.js";import"../nile-icon/icons/svg/save.esm.js";import"../nile-icon/icons/svg/scatter-plot.esm.js";import"../nile-icon/icons/svg/schedule.esm.js";import"../nile-icon/icons/svg/schema.esm.js";import"../nile-icon/icons/svg/script.esm.js";import"../nile-icon/icons/svg/search-lg.esm.js";import"../nile-icon/icons/svg/search-steps-icon.esm.js";import"../nile-icon/icons/svg/search.esm.js";import"../nile-icon/icons/svg/section-02.esm.js";import"../nile-icon/icons/svg/section.esm.js";import"../nile-icon/icons/svg/select-02.esm.js";import"../nile-icon/icons/svg/select.esm.js";import"../nile-icon/icons/svg/selectapplication.esm.js";import"../nile-icon/icons/svg/selectattributes.esm.js";import"../nile-icon/icons/svg/selectuser.esm.js";import"../nile-icon/icons/svg/semi-circle-donut-chart.esm.js";import"../nile-icon/icons/svg/send.esm.js";import"../nile-icon/icons/svg/sendemail.esm.js";import"../nile-icon/icons/svg/sendescalation.esm.js";import"../nile-icon/icons/svg/sendprompt.esm.js";import"../nile-icon/icons/svg/sendreminder.esm.js";import"../nile-icon/icons/svg/server-03.esm.js";import"../nile-icon/icons/svg/setting.esm.js";import"../nile-icon/icons/svg/settings-02.esm.js";import"../nile-icon/icons/svg/settings-1.esm.js";import"../nile-icon/icons/svg/settings.esm.js";import"../nile-icon/icons/svg/shape.esm.js";import"../nile-icon/icons/svg/share.esm.js";import"../nile-icon/icons/svg/shield-01.esm.js";import"../nile-icon/icons/svg/smalltick.esm.js";import"../nile-icon/icons/svg/smartcode.esm.js";import"../nile-icon/icons/svg/sort.esm.js";import"../nile-icon/icons/svg/sortascending.esm.js";import"../nile-icon/icons/svg/sortdescending.esm.js";import"../nile-icon/icons/svg/sortdown.esm.js";import"../nile-icon/icons/svg/sortup.esm.js";import"../nile-icon/icons/svg/stacked-bar-chart.esm.js";import"../nile-icon/icons/svg/stop-circle.esm.js";import"../nile-icon/icons/svg/stop.esm.js";import"../nile-icon/icons/svg/storybook.esm.js";import"../nile-icon/icons/svg/string.esm.js";import"../nile-icon/icons/svg/stringinput.esm.js";import"../nile-icon/icons/svg/stringletters.esm.js";import"../nile-icon/icons/svg/support.esm.js";import"../nile-icon/icons/svg/swap.esm.js";import"../nile-icon/icons/svg/switch.esm.js";import"../nile-icon/icons/svg/sync.esm.js";import"../nile-icon/icons/svg/table-1.esm.js";import"../nile-icon/icons/svg/table.esm.js";import"../nile-icon/icons/svg/tag.esm.js";import"../nile-icon/icons/svg/test.esm.js";import"../nile-icon/icons/svg/text-02.esm.js";import"../nile-icon/icons/svg/text.esm.js";import"../nile-icon/icons/svg/textarea-expander.esm.js";import"../nile-icon/icons/svg/themes.esm.js";import"../nile-icon/icons/svg/thumbsdown.esm.js";import"../nile-icon/icons/svg/thumbsup.esm.js";import"../nile-icon/icons/svg/thumsup.esm.js";import"../nile-icon/icons/svg/tick.esm.js";import"../nile-icon/icons/svg/timeupdate.esm.js";import"../nile-icon/icons/svg/timezone.esm.js";import"../nile-icon/icons/svg/trash-01.esm.js";import"../nile-icon/icons/svg/trash-03.esm.js";import"../nile-icon/icons/svg/trash-no-fill.esm.js";import"../nile-icon/icons/svg/trash.esm.js";import"../nile-icon/icons/svg/trend-up-02.esm.js";import"../nile-icon/icons/svg/trigger.esm.js";import"../nile-icon/icons/svg/undo-02.esm.js";import"../nile-icon/icons/svg/undo-1.esm.js";import"../nile-icon/icons/svg/undo.esm.js";import"../nile-icon/icons/svg/union.esm.js";import"../nile-icon/icons/svg/unmute.esm.js";import"../nile-icon/icons/svg/uparrow.esm.js";import"../nile-icon/icons/svg/update.esm.js";import"../nile-icon/icons/svg/updateuser.esm.js";import"../nile-icon/icons/svg/updown.esm.js";import"../nile-icon/icons/svg/upgrade.esm.js";import"../nile-icon/icons/svg/upload.esm.js";import"../nile-icon/icons/svg/user-01.esm.js";import"../nile-icon/icons/svg/user-03.esm.js";import"../nile-icon/icons/svg/user-analysis-icon.esm.js";import"../nile-icon/icons/svg/user-circle.esm.js";import"../nile-icon/icons/svg/user-group.esm.js";import"../nile-icon/icons/svg/user-inactive.esm.js";import"../nile-icon/icons/svg/user-selection.esm.js";import"../nile-icon/icons/svg/user-square.esm.js";import"../nile-icon/icons/svg/user.esm.js";import"../nile-icon/icons/svg/useractive.esm.js";import"../nile-icon/icons/svg/useradd.esm.js";import"../nile-icon/icons/svg/useraddgroup.esm.js";import"../nile-icon/icons/svg/userfind.esm.js";import"../nile-icon/icons/svg/userimport.esm.js";import"../nile-icon/icons/svg/userimportgroup.esm.js";import"../nile-icon/icons/svg/usermixed.esm.js";import"../nile-icon/icons/svg/userremove-1.esm.js";import"../nile-icon/icons/svg/userremove-2.esm.js";import"../nile-icon/icons/svg/userremove.esm.js";import"../nile-icon/icons/svg/userremovegroup.esm.js";import"../nile-icon/icons/svg/users-01.esm.js";import"../nile-icon/icons/svg/users-02.esm.js";import"../nile-icon/icons/svg/users-plus.esm.js";import"../nile-icon/icons/svg/users-up.esm.js";import"../nile-icon/icons/svg/users.esm.js";import"../nile-icon/icons/svg/userupdate.esm.js";import"../nile-icon/icons/svg/validationexpression.esm.js";import"../nile-icon/icons/svg/variable-global.esm.js";import"../nile-icon/icons/svg/variable-local-1.esm.js";import"../nile-icon/icons/svg/variable-local.esm.js";import"../nile-icon/icons/svg/variable-new-1.esm.js";import"../nile-icon/icons/svg/variable-new.esm.js";import"../nile-icon/icons/svg/variable.esm.js";import"../nile-icon/icons/svg/video.esm.js";import"../nile-icon/icons/svg/view.esm.js";import"../nile-icon/icons/svg/virtualserver.esm.js";import"../nile-icon/icons/svg/virtualservergroup.esm.js";import"../nile-icon/icons/svg/visibility.esm.js";import"../nile-icon/icons/svg/visibilityoff.esm.js";import"../nile-icon/icons/svg/wait.esm.js";import"../nile-icon/icons/svg/warning.esm.js";import"../nile-icon/icons/svg/while.esm.js";import"../nile-icon/icons/svg/whileloop.esm.js";import"../nile-icon/icons/svg/workflow-01.esm.js";import"../nile-icon/icons/svg/workflow-application.esm.js";import"../nile-icon/icons/svg/workflow-orchestration.esm.js";import"../nile-icon/icons/svg/workflow-section.esm.js";import"../nile-icon/icons/svg/workflow-solid.esm.js";import"../nile-icon/icons/svg/workflow-text.esm.js";import"../nile-icon/icons/svg/workflow.esm.js";import"../nile-icon/icons/svg/writeexpression.esm.js";import"../nile-icon/icons/svg/x-circle.esm.js";import"lit/static-html.js";import"lit/directives/if-defined.js";import"../internal/offset.esm.js";let g=class extends l{constructor(){super(...arguments),this.tabs=[],this.panels=[],this.hasScrollControls=!1,this.placement="top",this.noTrack=!1,this.activation="auto",this.noScrollControls=!1,this.centered=!1}connectedCallback(){const i=Promise.allSettled([customElements.whenDefined("nile-tab"),customElements.whenDefined("nile-tab-panel")]);super.connectedCallback(),this.resizeObserver=new ResizeObserver((()=>{this.repositionIndicator(),this.updateScrollControls()})),this.mutationObserver=new MutationObserver((i=>{i.some((i=>!["aria-labelledby","aria-controls"].includes(i.attributeName)))&&setTimeout((()=>this.setAriaLabels())),i.some((i=>"disabled"===i.attributeName))&&this.syncTabsAndPanels()})),this.updateComplete.then((()=>{this.syncTabsAndPanels(),this.mutationObserver.observe(this,{attributes:!0,childList:!0,subtree:!0}),this.resizeObserver.observe(this.nav),i.then((()=>{new IntersectionObserver(((i,s)=>{i[0].intersectionRatio>0&&(this.setAriaLabels(),this.setActiveTab(this.getActiveTab()??this.tabs[0],{emitEvents:!1}),s.unobserve(i[0].target))})).observe(this.tabGroup)}))}))}disconnectedCallback(){this.mutationObserver.disconnect(),this.resizeObserver.unobserve(this.nav)}getAllTabs(i={includeDisabled:!0}){return[...this.shadowRoot.querySelector('slot[name="nav"]').assignedElements()].filter((s=>i.includeDisabled?"nile-tab"===s.tagName.toLowerCase():"nile-tab"===s.tagName.toLowerCase()&&!s.disabled))}getAllPanels(){return[...this.body.assignedElements()].filter((i=>"nile-tab-panel"===i.tagName.toLowerCase()))}getActiveTab(){return this.tabs.find((i=>i.active))}handleClick(i){const s=i.target.closest("nile-tab"),o=s?.closest("nile-tab-group");o===this&&null!==s&&this.setActiveTab(s,{scrollBehavior:"smooth"})}handleKeyDown(i){const s=i.target.closest("nile-tab"),o=s?.closest("nile-tab-group");if(o===this&&(["Enter"," "].includes(i.key)&&null!==s&&(this.setActiveTab(s,{scrollBehavior:"smooth"}),i.preventDefault()),["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"].includes(i.key))){const s=this.tabs.find((i=>i.matches(":focus")));if("nile-tab"===s?.tagName.toLowerCase()){let o=this.tabs.indexOf(s);"Home"===i.key?o=0:"End"===i.key?o=this.tabs.length-1:["top","bottom"].includes(this.placement)&&"ArrowLeft"===i.key||["start","end"].includes(this.placement)&&"ArrowUp"===i.key?o--:(["top","bottom"].includes(this.placement)&&"ArrowRight"===i.key||["start","end"].includes(this.placement)&&"ArrowDown"===i.key)&&o++,o<0&&(o=this.tabs.length-1),o>this.tabs.length-1&&(o=0),this.tabs[o].focus({preventScroll:!0}),"auto"===this.activation&&this.setActiveTab(this.tabs[o],{scrollBehavior:"smooth"}),["top","bottom"].includes(this.placement)&&m(this.tabs[o],this.nav,"horizontal"),i.preventDefault()}}}handleScrollToStart(){this.nav.scroll({left:this.nav.scrollLeft+this.nav.clientWidth,behavior:"smooth"})}handleScrollToEnd(){this.nav.scroll({left:this.nav.scrollLeft-this.nav.clientWidth,behavior:"smooth"})}setActiveTab(i,s){if(s={emitEvents:!0,scrollBehavior:"auto",...s},i!==this.activeTab&&!i.disabled){const o=this.activeTab;this.activeTab=i,this.tabs.map((i=>i.active=i===this.activeTab)),this.panels.map((i=>i.active=i.name===this.activeTab?.panel)),this.syncIndicator(),["top","bottom"].includes(this.placement)&&m(this.activeTab,this.nav,"horizontal",s.scrollBehavior),s.emitEvents&&(o&&this.emit("nile-tab-hide",{value:o.panel}),this.emit("nile-tab-show",{value:this.activeTab.panel}))}}setAriaLabels(){this.tabs.forEach((i=>{const s=this.panels.find((s=>s.name===i.panel));s&&(i.setAttribute("aria-controls",s.getAttribute("id")),s.setAttribute("aria-labelledby",i.getAttribute("id")))}))}repositionIndicator(){const i=this.getActiveTab();if(!i||!this.indicator)return;const s=i.clientWidth,o=i.clientHeight,n=this.getAllTabs(),e=n.slice(0,n.indexOf(i)).reduce(((i,s)=>({left:i.left+s.clientWidth+12,top:i.top+s.clientHeight+12})),{left:0,top:0});switch(this.placement){case"top":case"bottom":this.indicator.style.width=s-5+"px",this.indicator.style.height="auto",this.indicator.style.translate=`${e.left+2}px`;break;case"start":case"end":this.indicator.style.width="auto",this.indicator.style.height=`${o}px`,this.indicator.style.translate=`0 ${e.top}px`}}syncTabsAndPanels(){this.tabs=this.getAllTabs({includeDisabled:!1}),this.panels=this.getAllPanels(),this.syncIndicator(),this.tabs.forEach((i=>{i.centered=this.centered})),this.updateComplete.then((()=>this.updateScrollControls()))}updateScrollControls(){this.noScrollControls||(this.hasScrollControls=["top","bottom"].includes(this.placement)&&this.nav.scrollWidth>this.nav.clientWidth),this.hasScrollControls=!1}syncIndicator(){if(!this.indicator)return;this.getActiveTab()?(this.indicator.style.display="block",this.repositionIndicator()):this.indicator.style.display="none"}show(i){const s=this.tabs.find((s=>s.panel===i));s&&this.setActiveTab(s,{scrollBehavior:"smooth"})}render(){return s`
1
+ import{__decorate as i}from"tslib";import{x as s}from"../index-0a3007c5.esm.js";import{query as o,state as n,customElement as e}from"lit/decorators.js";import{s as c}from"./nile-tab-group.css.esm.js";import"../nile-icon-button/nile-icon-button.esm.js";import{classMap as t}from"lit/directives/class-map.js";import{s as m}from"../internal/scroll.esm.js";import{w as r}from"../internal/watch.esm.js";import{N as l}from"../internal/nile-element.esm.js";import{n as p}from"../property-09139d3c.esm.js";import"../nile-icon-button/nile-icon-button.css.esm.js";import"../nile-icon/index.esm.js";import"lit";import"lit/directives/unsafe-svg.js";import"../nile-icon/icons/svg/index.esm.js";import"../nile-icon/icons/svg/access-request.esm.js";import"../nile-icon/icons/svg/accessreview.esm.js";import"../nile-icon/icons/svg/action.esm.js";import"../nile-icon/icons/svg/actionworkflow.esm.js";import"../nile-icon/icons/svg/address.esm.js";import"../nile-icon/icons/svg/agent.esm.js";import"../nile-icon/icons/svg/agents.esm.js";import"../nile-icon/icons/svg/aggregation.esm.js";import"../nile-icon/icons/svg/alert-circle.esm.js";import"../nile-icon/icons/svg/alert.esm.js";import"../nile-icon/icons/svg/allapplication.esm.js";import"../nile-icon/icons/svg/allsearch.esm.js";import"../nile-icon/icons/svg/anomaly.esm.js";import"../nile-icon/icons/svg/api.esm.js";import"../nile-icon/icons/svg/application.esm.js";import"../nile-icon/icons/svg/applications-2.esm.js";import"../nile-icon/icons/svg/applications.esm.js";import"../nile-icon/icons/svg/apply-filter.esm.js";import"../nile-icon/icons/svg/approve.esm.js";import"../nile-icon/icons/svg/apps.esm.js";import"../nile-icon/icons/svg/aquera.esm.js";import"../nile-icon/icons/svg/aquerasupport.esm.js";import"../nile-icon/icons/svg/array-loop.esm.js";import"../nile-icon/icons/svg/array-of-boolean.esm.js";import"../nile-icon/icons/svg/array-of-integer.esm.js";import"../nile-icon/icons/svg/array-of-string.esm.js";import"../nile-icon/icons/svg/array.esm.js";import"../nile-icon/icons/svg/arrayofobject.esm.js";import"../nile-icon/icons/svg/arrow-narrow-left.esm.js";import"../nile-icon/icons/svg/arrow.esm.js";import"../nile-icon/icons/svg/arrowdown.esm.js";import"../nile-icon/icons/svg/arrowdropdown.esm.js";import"../nile-icon/icons/svg/arrowdropup.esm.js";import"../nile-icon/icons/svg/arrowleft.esm.js";import"../nile-icon/icons/svg/arrowright.esm.js";import"../nile-icon/icons/svg/arrowup.esm.js";import"../nile-icon/icons/svg/attribute-map-analysis-icon.esm.js";import"../nile-icon/icons/svg/attributemap.esm.js";import"../nile-icon/icons/svg/back.esm.js";import"../nile-icon/icons/svg/bar-and-line-chart.esm.js";import"../nile-icon/icons/svg/bar-chart-square-02.esm.js";import"../nile-icon/icons/svg/bar-chart-square-03.esm.js";import"../nile-icon/icons/svg/bargraph.esm.js";import"../nile-icon/icons/svg/basic.esm.js";import"../nile-icon/icons/svg/bell-icon.esm.js";import"../nile-icon/icons/svg/bell.esm.js";import"../nile-icon/icons/svg/block-02.esm.js";import"../nile-icon/icons/svg/block.esm.js";import"../nile-icon/icons/svg/bluedot.esm.js";import"../nile-icon/icons/svg/book-closed.esm.js";import"../nile-icon/icons/svg/boolean.esm.js";import"../nile-icon/icons/svg/border_all.esm.js";import"../nile-icon/icons/svg/box.esm.js";import"../nile-icon/icons/svg/bubble-chart.esm.js";import"../nile-icon/icons/svg/bulk-sync.esm.js";import"../nile-icon/icons/svg/button-loading-black.esm.js";import"../nile-icon/icons/svg/button-loading-blue-animated.esm.js";import"../nile-icon/icons/svg/button-loading-blue.esm.js";import"../nile-icon/icons/svg/button-loading-white.esm.js";import"../nile-icon/icons/svg/calendar-01.esm.js";import"../nile-icon/icons/svg/calendar.esm.js";import"../nile-icon/icons/svg/cancel.esm.js";import"../nile-icon/icons/svg/cases.esm.js";import"../nile-icon/icons/svg/caution.esm.js";import"../nile-icon/icons/svg/cell-loader.esm.js";import"../nile-icon/icons/svg/certification.esm.js";import"../nile-icon/icons/svg/check-circle.esm.js";import"../nile-icon/icons/svg/check-done-01.esm.js";import"../nile-icon/icons/svg/check-done-02.esm.js";import"../nile-icon/icons/svg/check.esm.js";import"../nile-icon/icons/svg/chevron-down.esm.js";import"../nile-icon/icons/svg/chevron-left-double.esm.js";import"../nile-icon/icons/svg/chevron-selector-vertical.esm.js";import"../nile-icon/icons/svg/chevron-up.esm.js";import"../nile-icon/icons/svg/clock-check.esm.js";import"../nile-icon/icons/svg/clock-rewind.esm.js";import"../nile-icon/icons/svg/clock.esm.js";import"../nile-icon/icons/svg/close.esm.js";import"../nile-icon/icons/svg/cloud-01.esm.js";import"../nile-icon/icons/svg/code-generator.esm.js";import"../nile-icon/icons/svg/collapse-1.esm.js";import"../nile-icon/icons/svg/collapse.esm.js";import"../nile-icon/icons/svg/color.esm.js";import"../nile-icon/icons/svg/columns-03.esm.js";import"../nile-icon/icons/svg/combo1.esm.js";import"../nile-icon/icons/svg/compact.esm.js";import"../nile-icon/icons/svg/compare-tiles.esm.js";import"../nile-icon/icons/svg/compare.esm.js";import"../nile-icon/icons/svg/component-menu.esm.js";import"../nile-icon/icons/svg/component.esm.js";import"../nile-icon/icons/svg/componentblock.esm.js";import"../nile-icon/icons/svg/components-icon.esm.js";import"../nile-icon/icons/svg/componenttext.esm.js";import"../nile-icon/icons/svg/condition.esm.js";import"../nile-icon/icons/svg/conditions.esm.js";import"../nile-icon/icons/svg/connect.esm.js";import"../nile-icon/icons/svg/connectivitymap.esm.js";import"../nile-icon/icons/svg/connectorrightarrow.esm.js";import"../nile-icon/icons/svg/continuous.esm.js";import"../nile-icon/icons/svg/copy-06.esm.js";import"../nile-icon/icons/svg/copy.esm.js";import"../nile-icon/icons/svg/cor-analysis.esm.js";import"../nile-icon/icons/svg/correlation.esm.js";import"../nile-icon/icons/svg/create.esm.js";import"../nile-icon/icons/svg/createuser.esm.js";import"../nile-icon/icons/svg/custom.esm.js";import"../nile-icon/icons/svg/dashboard.esm.js";import"../nile-icon/icons/svg/data-insight.esm.js";import"../nile-icon/icons/svg/data-type-array.esm.js";import"../nile-icon/icons/svg/data-type-boolean.esm.js";import"../nile-icon/icons/svg/data-type-expression.esm.js";import"../nile-icon/icons/svg/data-type-json.esm.js";import"../nile-icon/icons/svg/data-type-null.esm.js";import"../nile-icon/icons/svg/data-type-number.esm.js";import"../nile-icon/icons/svg/data-type-persistent-variable.esm.js";import"../nile-icon/icons/svg/data-type-string.esm.js";import"../nile-icon/icons/svg/data-type-unknown.esm.js";import"../nile-icon/icons/svg/data-type-variable.esm.js";import"../nile-icon/icons/svg/database-1.esm.js";import"../nile-icon/icons/svg/database.esm.js";import"../nile-icon/icons/svg/databaseview.esm.js";import"../nile-icon/icons/svg/dataflow-03.esm.js";import"../nile-icon/icons/svg/dataflow-04.esm.js";import"../nile-icon/icons/svg/default-1.esm.js";import"../nile-icon/icons/svg/default-cursor.esm.js";import"../nile-icon/icons/svg/default.esm.js";import"../nile-icon/icons/svg/delegate.esm.js";import"../nile-icon/icons/svg/delete.esm.js";import"../nile-icon/icons/svg/deleteuser.esm.js";import"../nile-icon/icons/svg/deligateduser.esm.js";import"../nile-icon/icons/svg/directory.esm.js";import"../nile-icon/icons/svg/disabled.esm.js";import"../nile-icon/icons/svg/dock-to-right.esm.js";import"../nile-icon/icons/svg/document.esm.js";import"../nile-icon/icons/svg/done-02.esm.js";import"../nile-icon/icons/svg/done.esm.js";import"../nile-icon/icons/svg/dontmap.esm.js";import"../nile-icon/icons/svg/donut.esm.js";import"../nile-icon/icons/svg/dotpoints-02.esm.js";import"../nile-icon/icons/svg/dots-grid.esm.js";import"../nile-icon/icons/svg/dots-vertical.esm.js";import"../nile-icon/icons/svg/doublearrowleft.esm.js";import"../nile-icon/icons/svg/doublearrowright.esm.js";import"../nile-icon/icons/svg/dowhileloop.esm.js";import"../nile-icon/icons/svg/downarrow.esm.js";import"../nile-icon/icons/svg/downgrade.esm.js";import"../nile-icon/icons/svg/download-01.esm.js";import"../nile-icon/icons/svg/download-02.esm.js";import"../nile-icon/icons/svg/download.esm.js";import"../nile-icon/icons/svg/drag.esm.js";import"../nile-icon/icons/svg/draglist.esm.js";import"../nile-icon/icons/svg/droparrow.esm.js";import"../nile-icon/icons/svg/dropdown.esm.js";import"../nile-icon/icons/svg/edit-01.esm.js";import"../nile-icon/icons/svg/edit-1.esm.js";import"../nile-icon/icons/svg/edit-pencil.esm.js";import"../nile-icon/icons/svg/edit-write.esm.js";import"../nile-icon/icons/svg/else.esm.js";import"../nile-icon/icons/svg/email.esm.js";import"../nile-icon/icons/svg/enable.esm.js";import"../nile-icon/icons/svg/enabled.esm.js";import"../nile-icon/icons/svg/entities.esm.js";import"../nile-icon/icons/svg/entitlement.esm.js";import"../nile-icon/icons/svg/error.esm.js";import"../nile-icon/icons/svg/escalate.esm.js";import"../nile-icon/icons/svg/event.esm.js";import"../nile-icon/icons/svg/every.esm.js";import"../nile-icon/icons/svg/exactmatch.esm.js";import"../nile-icon/icons/svg/execute.esm.js";import"../nile-icon/icons/svg/expand-03.esm.js";import"../nile-icon/icons/svg/expand-06.esm.js";import"../nile-icon/icons/svg/expand-1.esm.js";import"../nile-icon/icons/svg/expand-2.esm.js";import"../nile-icon/icons/svg/expand.esm.js";import"../nile-icon/icons/svg/eye-off.esm.js";import"../nile-icon/icons/svg/eye.esm.js";import"../nile-icon/icons/svg/eyeclosed.esm.js";import"../nile-icon/icons/svg/featured-icon.esm.js";import"../nile-icon/icons/svg/file-06.esm.js";import"../nile-icon/icons/svg/file-check-02.esm.js";import"../nile-icon/icons/svg/file-shield-01.esm.js";import"../nile-icon/icons/svg/file-shield-02.esm.js";import"../nile-icon/icons/svg/file-type-icon.esm.js";import"../nile-icon/icons/svg/file.esm.js";import"../nile-icon/icons/svg/filter-1.esm.js";import"../nile-icon/icons/svg/filter.esm.js";import"../nile-icon/icons/svg/fingerprint-03.esm.js";import"../nile-icon/icons/svg/firewall.esm.js";import"../nile-icon/icons/svg/firewallagent.esm.js";import"../nile-icon/icons/svg/flow-01.esm.js";import"../nile-icon/icons/svg/flow-h.esm.js";import"../nile-icon/icons/svg/flow.esm.js";import"../nile-icon/icons/svg/flowmap-agent.esm.js";import"../nile-icon/icons/svg/flowmap-application.esm.js";import"../nile-icon/icons/svg/flowmap-aquera.esm.js";import"../nile-icon/icons/svg/flowmap-block.esm.js";import"../nile-icon/icons/svg/flowmap-cancel.esm.js";import"../nile-icon/icons/svg/flowmap-colorpalatte.esm.js";import"../nile-icon/icons/svg/flowmap-drag.esm.js";import"../nile-icon/icons/svg/flowmap-ellipsis.esm.js";import"../nile-icon/icons/svg/flowmap-firewall-agent.esm.js";import"../nile-icon/icons/svg/flowmap-firewall.esm.js";import"../nile-icon/icons/svg/flowmap-gateway.esm.js";import"../nile-icon/icons/svg/flowmap-hand.esm.js";import"../nile-icon/icons/svg/flowmap-orchestration.esm.js";import"../nile-icon/icons/svg/flowmap-redo.esm.js";import"../nile-icon/icons/svg/flowmap-section.esm.js";import"../nile-icon/icons/svg/flowmap-text.esm.js";import"../nile-icon/icons/svg/flowmap-undo.esm.js";import"../nile-icon/icons/svg/flowmap-workflow.esm.js";import"../nile-icon/icons/svg/flowmap.esm.js";import"../nile-icon/icons/svg/folder-01.esm.js";import"../nile-icon/icons/svg/folder.esm.js";import"../nile-icon/icons/svg/foreach.esm.js";import"../nile-icon/icons/svg/form.esm.js";import"../nile-icon/icons/svg/frequency.esm.js";import"../nile-icon/icons/svg/full-union.esm.js";import"../nile-icon/icons/svg/fullscreen.esm.js";import"../nile-icon/icons/svg/fullscreenexit.esm.js";import"../nile-icon/icons/svg/fullscreenshrink.esm.js";import"../nile-icon/icons/svg/funnel-02.esm.js";import"../nile-icon/icons/svg/funnel.esm.js";import"../nile-icon/icons/svg/gateway.esm.js";import"../nile-icon/icons/svg/gauge.esm.js";import"../nile-icon/icons/svg/general.esm.js";import"../nile-icon/icons/svg/generationphase.esm.js";import"../nile-icon/icons/svg/global-search.esm.js";import"../nile-icon/icons/svg/globe-03.esm.js";import"../nile-icon/icons/svg/globe.esm.js";import"../nile-icon/icons/svg/goto.esm.js";import"../nile-icon/icons/svg/graph.esm.js";import"../nile-icon/icons/svg/graphedit.esm.js";import"../nile-icon/icons/svg/greendot.esm.js";import"../nile-icon/icons/svg/greydot.esm.js";import"../nile-icon/icons/svg/greylightdot.esm.js";import"../nile-icon/icons/svg/grid-01.esm.js";import"../nile-icon/icons/svg/group-analysis-icon.esm.js";import"../nile-icon/icons/svg/group.esm.js";import"../nile-icon/icons/svg/groupby.esm.js";import"../nile-icon/icons/svg/groups.esm.js";import"../nile-icon/icons/svg/guide-01.esm.js";import"../nile-icon/icons/svg/guide.esm.js";import"../nile-icon/icons/svg/handtool.esm.js";import"../nile-icon/icons/svg/header-actions.esm.js";import"../nile-icon/icons/svg/header-child-workflow.esm.js";import"../nile-icon/icons/svg/header-flows.esm.js";import"../nile-icon/icons/svg/header-functions.esm.js";import"../nile-icon/icons/svg/header-tasks.esm.js";import"../nile-icon/icons/svg/header-variable.esm.js";import"../nile-icon/icons/svg/headphones-01.esm.js";import"../nile-icon/icons/svg/help-1.esm.js";import"../nile-icon/icons/svg/help-circle.esm.js";import"../nile-icon/icons/svg/help.esm.js";import"../nile-icon/icons/svg/helpandsupport.esm.js";import"../nile-icon/icons/svg/helpers.esm.js";import"../nile-icon/icons/svg/helpsupport.esm.js";import"../nile-icon/icons/svg/history.esm.js";import"../nile-icon/icons/svg/identitygraph.esm.js";import"../nile-icon/icons/svg/identityledger.esm.js";import"../nile-icon/icons/svg/if.esm.js";import"../nile-icon/icons/svg/ifelse.esm.js";import"../nile-icon/icons/svg/image.esm.js";import"../nile-icon/icons/svg/immutable.esm.js";import"../nile-icon/icons/svg/info-circle.esm.js";import"../nile-icon/icons/svg/info-icon.esm.js";import"../nile-icon/icons/svg/info-icon1.esm.js";import"../nile-icon/icons/svg/info.esm.js";import"../nile-icon/icons/svg/info2.esm.js";import"../nile-icon/icons/svg/inner-union.esm.js";import"../nile-icon/icons/svg/inprogress.esm.js";import"../nile-icon/icons/svg/integer.esm.js";import"../nile-icon/icons/svg/intersection.esm.js";import"../nile-icon/icons/svg/itemplaceholder.esm.js";import"../nile-icon/icons/svg/js.esm.js";import"../nile-icon/icons/svg/key-performance-indicator.esm.js";import"../nile-icon/icons/svg/keyboard-01.esm.js";import"../nile-icon/icons/svg/kill.esm.js";import"../nile-icon/icons/svg/laptop-01.esm.js";import"../nile-icon/icons/svg/layers-three-01.esm.js";import"../nile-icon/icons/svg/layers-three-02.esm.js";import"../nile-icon/icons/svg/layout-alt-02.esm.js";import"../nile-icon/icons/svg/layout-alt-03.esm.js";import"../nile-icon/icons/svg/left-join.esm.js";import"../nile-icon/icons/svg/left-union.esm.js";import"../nile-icon/icons/svg/leftarrow.esm.js";import"../nile-icon/icons/svg/leftpointarrow.esm.js";import"../nile-icon/icons/svg/life-buoy-01.esm.js";import"../nile-icon/icons/svg/line.esm.js";import"../nile-icon/icons/svg/link.esm.js";import"../nile-icon/icons/svg/list-attribute.esm.js";import"../nile-icon/icons/svg/list.esm.js";import"../nile-icon/icons/svg/loader.esm.js";import"../nile-icon/icons/svg/loading.esm.js";import"../nile-icon/icons/svg/loading2.esm.js";import"../nile-icon/icons/svg/lock.esm.js";import"../nile-icon/icons/svg/log-info.esm.js";import"../nile-icon/icons/svg/log.esm.js";import"../nile-icon/icons/svg/logo-white.esm.js";import"../nile-icon/icons/svg/logout.esm.js";import"../nile-icon/icons/svg/logs.esm.js";import"../nile-icon/icons/svg/loop.esm.js";import"../nile-icon/icons/svg/manage.esm.js";import"../nile-icon/icons/svg/manageduser.esm.js";import"../nile-icon/icons/svg/map.esm.js";import"../nile-icon/icons/svg/mapcreate.esm.js";import"../nile-icon/icons/svg/mapdont.esm.js";import"../nile-icon/icons/svg/maponcreate.esm.js";import"../nile-icon/icons/svg/maponupdate.esm.js";import"../nile-icon/icons/svg/mapper.esm.js";import"../nile-icon/icons/svg/mapupdate.esm.js";import"../nile-icon/icons/svg/marker-pin-01.esm.js";import"../nile-icon/icons/svg/maximize.esm.js";import"../nile-icon/icons/svg/menu.esm.js";import"../nile-icon/icons/svg/message-notification-square.esm.js";import"../nile-icon/icons/svg/minus.esm.js";import"../nile-icon/icons/svg/monitor-01.esm.js";import"../nile-icon/icons/svg/mouse.esm.js";import"../nile-icon/icons/svg/moveleft.esm.js";import"../nile-icon/icons/svg/moveright.esm.js";import"../nile-icon/icons/svg/multiple-user.esm.js";import"../nile-icon/icons/svg/mute.esm.js";import"../nile-icon/icons/svg/next-down.esm.js";import"../nile-icon/icons/svg/next.esm.js";import"../nile-icon/icons/svg/nightingale-chart.esm.js";import"../nile-icon/icons/svg/no-anomaly.esm.js";import"../nile-icon/icons/svg/nomatch.esm.js";import"../nile-icon/icons/svg/not.esm.js";import"../nile-icon/icons/svg/note.esm.js";import"../nile-icon/icons/svg/notification.esm.js";import"../nile-icon/icons/svg/notificationadd.esm.js";import"../nile-icon/icons/svg/notificationadded.esm.js";import"../nile-icon/icons/svg/notscheduled.esm.js";import"../nile-icon/icons/svg/npl.esm.js";import"../nile-icon/icons/svg/null.esm.js";import"../nile-icon/icons/svg/number.esm.js";import"../nile-icon/icons/svg/numberinput.esm.js";import"../nile-icon/icons/svg/numbers.esm.js";import"../nile-icon/icons/svg/object.esm.js";import"../nile-icon/icons/svg/operators.esm.js";import"../nile-icon/icons/svg/options.esm.js";import"../nile-icon/icons/svg/orchestration-solid.esm.js";import"../nile-icon/icons/svg/orchestration.esm.js";import"../nile-icon/icons/svg/organization.esm.js";import"../nile-icon/icons/svg/other.esm.js";import"../nile-icon/icons/svg/otherdetails.esm.js";import"../nile-icon/icons/svg/ou-analysis-icon.esm.js";import"../nile-icon/icons/svg/override.esm.js";import"../nile-icon/icons/svg/palette.esm.js";import"../nile-icon/icons/svg/palletemenu.esm.js";import"../nile-icon/icons/svg/partner.esm.js";import"../nile-icon/icons/svg/partners.esm.js";import"../nile-icon/icons/svg/pause.esm.js";import"../nile-icon/icons/svg/pen.esm.js";import"../nile-icon/icons/svg/pencil.esm.js";import"../nile-icon/icons/svg/peopletask.esm.js";import"../nile-icon/icons/svg/persistent-variable.esm.js";import"../nile-icon/icons/svg/persistentdata.esm.js";import"../nile-icon/icons/svg/personaldetails.esm.js";import"../nile-icon/icons/svg/phone.esm.js";import"../nile-icon/icons/svg/pie.esm.js";import"../nile-icon/icons/svg/pin.esm.js";import"../nile-icon/icons/svg/placeholder-wf.esm.js";import"../nile-icon/icons/svg/play-circle.esm.js";import"../nile-icon/icons/svg/play.esm.js";import"../nile-icon/icons/svg/plus-icon.esm.js";import"../nile-icon/icons/svg/plus.esm.js";import"../nile-icon/icons/svg/pluscircle.esm.js";import"../nile-icon/icons/svg/plussquare.esm.js";import"../nile-icon/icons/svg/policy.esm.js";import"../nile-icon/icons/svg/potentialmatch.esm.js";import"../nile-icon/icons/svg/poweron.esm.js";import"../nile-icon/icons/svg/predefined.esm.js";import"../nile-icon/icons/svg/prev-up.esm.js";import"../nile-icon/icons/svg/prev.esm.js";import"../nile-icon/icons/svg/preview.esm.js";import"../nile-icon/icons/svg/printer.esm.js";import"../nile-icon/icons/svg/priority-high.esm.js";import"../nile-icon/icons/svg/priority-highest.esm.js";import"../nile-icon/icons/svg/priority-low.esm.js";import"../nile-icon/icons/svg/priority-medium.esm.js";import"../nile-icon/icons/svg/privilage.esm.js";import"../nile-icon/icons/svg/privilege.esm.js";import"../nile-icon/icons/svg/privilegeobject.esm.js";import"../nile-icon/icons/svg/process.esm.js";import"../nile-icon/icons/svg/professionaldetails.esm.js";import"../nile-icon/icons/svg/question.esm.js";import"../nile-icon/icons/svg/radar.esm.js";import"../nile-icon/icons/svg/radio.esm.js";import"../nile-icon/icons/svg/radioactive.esm.js";import"../nile-icon/icons/svg/radiodone.esm.js";import"../nile-icon/icons/svg/read.esm.js";import"../nile-icon/icons/svg/readexpression.esm.js";import"../nile-icon/icons/svg/readonly.esm.js";import"../nile-icon/icons/svg/readonlyuser.esm.js";import"../nile-icon/icons/svg/readuser.esm.js";import"../nile-icon/icons/svg/reddot.esm.js";import"../nile-icon/icons/svg/redo-02.esm.js";import"../nile-icon/icons/svg/redo.esm.js";import"../nile-icon/icons/svg/refresh-cw-03.esm.js";import"../nile-icon/icons/svg/refresh.esm.js";import"../nile-icon/icons/svg/reminder.esm.js";import"../nile-icon/icons/svg/resize.esm.js";import"../nile-icon/icons/svg/resource.esm.js";import"../nile-icon/icons/svg/returnvalue.esm.js";import"../nile-icon/icons/svg/revocationcycle.esm.js";import"../nile-icon/icons/svg/revokation-cycle.esm.js";import"../nile-icon/icons/svg/right-join.esm.js";import"../nile-icon/icons/svg/right-union.esm.js";import"../nile-icon/icons/svg/rightarrow.esm.js";import"../nile-icon/icons/svg/role.esm.js";import"../nile-icon/icons/svg/rolemanager.esm.js";import"../nile-icon/icons/svg/run.esm.js";import"../nile-icon/icons/svg/sankey.esm.js";import"../nile-icon/icons/svg/save.esm.js";import"../nile-icon/icons/svg/scatter-plot.esm.js";import"../nile-icon/icons/svg/schedule.esm.js";import"../nile-icon/icons/svg/schema.esm.js";import"../nile-icon/icons/svg/script.esm.js";import"../nile-icon/icons/svg/search-lg.esm.js";import"../nile-icon/icons/svg/search-steps-icon.esm.js";import"../nile-icon/icons/svg/search.esm.js";import"../nile-icon/icons/svg/section-02.esm.js";import"../nile-icon/icons/svg/section.esm.js";import"../nile-icon/icons/svg/select-02.esm.js";import"../nile-icon/icons/svg/select.esm.js";import"../nile-icon/icons/svg/selectapplication.esm.js";import"../nile-icon/icons/svg/selectattributes.esm.js";import"../nile-icon/icons/svg/selectuser.esm.js";import"../nile-icon/icons/svg/semi-circle-donut-chart.esm.js";import"../nile-icon/icons/svg/send.esm.js";import"../nile-icon/icons/svg/sendemail.esm.js";import"../nile-icon/icons/svg/sendescalation.esm.js";import"../nile-icon/icons/svg/sendprompt.esm.js";import"../nile-icon/icons/svg/sendreminder.esm.js";import"../nile-icon/icons/svg/server-03.esm.js";import"../nile-icon/icons/svg/setting.esm.js";import"../nile-icon/icons/svg/settings-02.esm.js";import"../nile-icon/icons/svg/settings-1.esm.js";import"../nile-icon/icons/svg/settings.esm.js";import"../nile-icon/icons/svg/shape.esm.js";import"../nile-icon/icons/svg/share.esm.js";import"../nile-icon/icons/svg/shield-01.esm.js";import"../nile-icon/icons/svg/smalltick.esm.js";import"../nile-icon/icons/svg/smartcode.esm.js";import"../nile-icon/icons/svg/sort.esm.js";import"../nile-icon/icons/svg/sortascending.esm.js";import"../nile-icon/icons/svg/sortdescending.esm.js";import"../nile-icon/icons/svg/sortdown.esm.js";import"../nile-icon/icons/svg/sortup.esm.js";import"../nile-icon/icons/svg/stacked-bar-chart.esm.js";import"../nile-icon/icons/svg/stop-circle.esm.js";import"../nile-icon/icons/svg/stop.esm.js";import"../nile-icon/icons/svg/storybook.esm.js";import"../nile-icon/icons/svg/string.esm.js";import"../nile-icon/icons/svg/stringinput.esm.js";import"../nile-icon/icons/svg/stringletters.esm.js";import"../nile-icon/icons/svg/support.esm.js";import"../nile-icon/icons/svg/swap.esm.js";import"../nile-icon/icons/svg/switch.esm.js";import"../nile-icon/icons/svg/sync.esm.js";import"../nile-icon/icons/svg/table-1.esm.js";import"../nile-icon/icons/svg/table.esm.js";import"../nile-icon/icons/svg/tag.esm.js";import"../nile-icon/icons/svg/test.esm.js";import"../nile-icon/icons/svg/text-02.esm.js";import"../nile-icon/icons/svg/text.esm.js";import"../nile-icon/icons/svg/textarea-expander.esm.js";import"../nile-icon/icons/svg/themes.esm.js";import"../nile-icon/icons/svg/thumbsdown.esm.js";import"../nile-icon/icons/svg/thumbsup.esm.js";import"../nile-icon/icons/svg/thumsup.esm.js";import"../nile-icon/icons/svg/tick.esm.js";import"../nile-icon/icons/svg/timeupdate.esm.js";import"../nile-icon/icons/svg/timezone.esm.js";import"../nile-icon/icons/svg/trash-01.esm.js";import"../nile-icon/icons/svg/trash-03.esm.js";import"../nile-icon/icons/svg/trash-no-fill.esm.js";import"../nile-icon/icons/svg/trash.esm.js";import"../nile-icon/icons/svg/trend-up-02.esm.js";import"../nile-icon/icons/svg/trigger.esm.js";import"../nile-icon/icons/svg/undo-02.esm.js";import"../nile-icon/icons/svg/undo-1.esm.js";import"../nile-icon/icons/svg/undo.esm.js";import"../nile-icon/icons/svg/union.esm.js";import"../nile-icon/icons/svg/unmute.esm.js";import"../nile-icon/icons/svg/uparrow.esm.js";import"../nile-icon/icons/svg/update.esm.js";import"../nile-icon/icons/svg/updateuser.esm.js";import"../nile-icon/icons/svg/updown.esm.js";import"../nile-icon/icons/svg/upgrade.esm.js";import"../nile-icon/icons/svg/upload.esm.js";import"../nile-icon/icons/svg/user-01.esm.js";import"../nile-icon/icons/svg/user-03.esm.js";import"../nile-icon/icons/svg/user-analysis-icon.esm.js";import"../nile-icon/icons/svg/user-circle.esm.js";import"../nile-icon/icons/svg/user-group.esm.js";import"../nile-icon/icons/svg/user-inactive.esm.js";import"../nile-icon/icons/svg/user-selection.esm.js";import"../nile-icon/icons/svg/user-square.esm.js";import"../nile-icon/icons/svg/user.esm.js";import"../nile-icon/icons/svg/useractive.esm.js";import"../nile-icon/icons/svg/useradd.esm.js";import"../nile-icon/icons/svg/useraddgroup.esm.js";import"../nile-icon/icons/svg/userfind.esm.js";import"../nile-icon/icons/svg/userimport.esm.js";import"../nile-icon/icons/svg/userimportgroup.esm.js";import"../nile-icon/icons/svg/usermixed.esm.js";import"../nile-icon/icons/svg/userremove-1.esm.js";import"../nile-icon/icons/svg/userremove-2.esm.js";import"../nile-icon/icons/svg/userremove.esm.js";import"../nile-icon/icons/svg/userremovegroup.esm.js";import"../nile-icon/icons/svg/users-01.esm.js";import"../nile-icon/icons/svg/users-02.esm.js";import"../nile-icon/icons/svg/users-plus.esm.js";import"../nile-icon/icons/svg/users-up.esm.js";import"../nile-icon/icons/svg/users.esm.js";import"../nile-icon/icons/svg/userupdate.esm.js";import"../nile-icon/icons/svg/validationexpression.esm.js";import"../nile-icon/icons/svg/variable-global.esm.js";import"../nile-icon/icons/svg/variable-local-1.esm.js";import"../nile-icon/icons/svg/variable-local.esm.js";import"../nile-icon/icons/svg/variable-new-1.esm.js";import"../nile-icon/icons/svg/variable-new.esm.js";import"../nile-icon/icons/svg/variable.esm.js";import"../nile-icon/icons/svg/video.esm.js";import"../nile-icon/icons/svg/view.esm.js";import"../nile-icon/icons/svg/virtualserver.esm.js";import"../nile-icon/icons/svg/virtualservergroup.esm.js";import"../nile-icon/icons/svg/visibility.esm.js";import"../nile-icon/icons/svg/visibilityoff.esm.js";import"../nile-icon/icons/svg/wait.esm.js";import"../nile-icon/icons/svg/warning.esm.js";import"../nile-icon/icons/svg/while.esm.js";import"../nile-icon/icons/svg/whileloop.esm.js";import"../nile-icon/icons/svg/workflow-01.esm.js";import"../nile-icon/icons/svg/workflow-application.esm.js";import"../nile-icon/icons/svg/workflow-orchestration.esm.js";import"../nile-icon/icons/svg/workflow-section.esm.js";import"../nile-icon/icons/svg/workflow-solid.esm.js";import"../nile-icon/icons/svg/workflow-text.esm.js";import"../nile-icon/icons/svg/workflow.esm.js";import"../nile-icon/icons/svg/writeexpression.esm.js";import"../nile-icon/icons/svg/x-circle.esm.js";import"lit/static-html.js";import"lit/directives/if-defined.js";import"../internal/offset.esm.js";let g=class extends l{constructor(){super(...arguments),this.tabs=[],this.panels=[],this.hasScrollControls=!1,this.placement="top",this.activeTabName="",this.noTrack=!1,this.activation="auto",this.noScrollControls=!1,this.centered=!1}connectedCallback(){const i=Promise.allSettled([customElements.whenDefined("nile-tab"),customElements.whenDefined("nile-tab-panel")]);super.connectedCallback(),this.resizeObserver=new ResizeObserver((()=>{this.repositionIndicator(),this.updateScrollControls()})),this.mutationObserver=new MutationObserver((i=>{i.some((i=>!["aria-labelledby","aria-controls"].includes(i.attributeName)))&&setTimeout((()=>this.setAriaLabels())),i.some((i=>"disabled"===i.attributeName))&&this.syncTabsAndPanels()})),this.updateComplete.then((()=>{this.setActiveTab(this.getActiveTab(),{emitEvents:!1}),this.syncIndicator(),this.syncTabsAndPanels(),this.mutationObserver.observe(this,{attributes:!0,childList:!0,subtree:!0}),this.resizeObserver.observe(this.nav),i.then((()=>{new IntersectionObserver(((i,s)=>{i[0].intersectionRatio>0&&(this.setAriaLabels(),s.unobserve(i[0].target))})).observe(this.tabGroup)}))}))}disconnectedCallback(){this.mutationObserver.disconnect(),this.resizeObserver.unobserve(this.nav)}updated(i){if(i.has("activeTabName")){const i=this.getActiveTab();if(!i)return;this.setActiveTab(i,{scrollBehavior:"smooth"})}}getAllTabs(i={includeDisabled:!0}){return[...this.shadowRoot.querySelector('slot[name="nav"]').assignedElements()].filter((s=>i.includeDisabled?"nile-tab"===s.tagName.toLowerCase():"nile-tab"===s.tagName.toLowerCase()&&!s.disabled))}getAllPanels(){return[...this.body.assignedElements()].filter((i=>"nile-tab-panel"===i.tagName.toLowerCase()))}getActiveTab(){return this.tabs.find((i=>i.panel==this.activeTabName))??this.tabs[0]}handleClick(i){const s=i.target.closest("nile-tab"),o=s?.closest("nile-tab-group");o===this&&null!==s&&(this.activeTabName=s.panel)}handleKeyDown(i){const s=i.target.closest("nile-tab"),o=s?.closest("nile-tab-group");if(o===this&&(["Enter"," "].includes(i.key)&&null!==s&&(this.activeTabName=s.panel,i.preventDefault()),["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"].includes(i.key))){const s=this.tabs.find((i=>i.matches(":focus")));if("nile-tab"===s?.tagName.toLowerCase()){let o=this.tabs.indexOf(s);"Home"===i.key?o=0:"End"===i.key?o=this.tabs.length-1:["top","bottom"].includes(this.placement)&&"ArrowLeft"===i.key||["start","end"].includes(this.placement)&&"ArrowUp"===i.key?o--:(["top","bottom"].includes(this.placement)&&"ArrowRight"===i.key||["start","end"].includes(this.placement)&&"ArrowDown"===i.key)&&o++,o<0&&(o=this.tabs.length-1),o>this.tabs.length-1&&(o=0),this.tabs[o].focus({preventScroll:!0}),"auto"===this.activation&&(this.activeTabName=this.tabs[o].panel),["top","bottom"].includes(this.placement)&&m(this.tabs[o],this.nav,"horizontal"),i.preventDefault()}}}handleScrollToStart(){this.nav.scroll({left:this.nav.scrollLeft+this.nav.clientWidth,behavior:"smooth"})}handleScrollToEnd(){this.nav.scroll({left:this.nav.scrollLeft-this.nav.clientWidth,behavior:"smooth"})}setActiveTab(i,s){if(s={emitEvents:!0,scrollBehavior:"auto",...s},i!==this.activeTab&&!i.disabled){const o=this.activeTab;this.activeTab=i,this.tabs.map((i=>i.active=i===this.activeTab)),this.panels.map((i=>i.active=i.name===this.activeTab?.panel)),this.syncIndicator(),["top","bottom"].includes(this.placement)&&m(this.activeTab,this.nav,"horizontal",s.scrollBehavior),s.emitEvents&&(o&&this.emit("nile-tab-hide",{value:o.panel}),this.emit("nile-tab-show",{value:this.activeTab.panel}))}}setAriaLabels(){this.tabs.forEach((i=>{const s=this.panels.find((s=>s.name===i.panel));s&&(i.setAttribute("aria-controls",s.getAttribute("id")),s.setAttribute("aria-labelledby",i.getAttribute("id")))}))}repositionIndicator(){const i=this.getActiveTab();if(!i||!this.indicator)return;const s=i.clientWidth,o=i.clientHeight,n=this.getAllTabs(),e=n.slice(0,n.indexOf(i)).reduce(((i,s)=>({left:i.left+s.clientWidth+12,top:i.top+s.clientHeight+12})),{left:0,top:0});switch(this.placement){case"top":case"bottom":this.indicator.style.width=s-5+"px",this.indicator.style.height="auto",this.indicator.style.translate=`${e.left+2}px`;break;case"start":case"end":this.indicator.style.width="auto",this.indicator.style.height=`${o}px`,this.indicator.style.translate=`0 ${e.top}px`}}syncTabsAndPanels(){this.tabs=this.getAllTabs({includeDisabled:!1}),this.panels=this.getAllPanels(),this.tabs.forEach((i=>{i.centered=this.centered})),this.updateComplete.then((()=>this.updateScrollControls()))}updateScrollControls(){this.noScrollControls||(this.hasScrollControls=["top","bottom"].includes(this.placement)&&this.nav.scrollWidth>this.nav.clientWidth),this.hasScrollControls=!1}syncIndicator(){if(!this.indicator)return;this.getActiveTab()?(this.indicator.style.display="block",this.repositionIndicator()):this.indicator.style.display="none"}show(i){const s=this.tabs.find((s=>s.panel===i));s&&(this.activeTabName=s.panel)}render(){return s`
2
2
  <div
3
3
  part="base"
4
4
  class=${t({"tab-group":!0,"tab-group--top":"top"===this.placement,"tab-group--bottom":"bottom"===this.placement,"tab-group--start":"start"===this.placement,"tab-group--end":"end"===this.placement,"tab-group--rtl":!0,"tab-group--has-scroll-controls":this.hasScrollControls,hide__track:this.noTrack})}
@@ -43,4 +43,4 @@ import{__decorate as i}from"tslib";import{x as s}from"../index-0a3007c5.esm.js";
43
43
 
44
44
  <slot part="body" class="tab-group__body" @slotchange=${this.syncTabsAndPanels}></slot>
45
45
  </div>
46
- `}};g.styles=c,i([o(".tab-group")],g.prototype,"tabGroup",void 0),i([o(".tab-group__body")],g.prototype,"body",void 0),i([o(".tab-group__nav")],g.prototype,"nav",void 0),i([o(".tab-group__indicator")],g.prototype,"indicator",void 0),i([n()],g.prototype,"hasScrollControls",void 0),i([p()],g.prototype,"placement",void 0),i([p({type:Boolean,reflect:!0,attribute:"no-track"})],g.prototype,"noTrack",void 0),i([p()],g.prototype,"activation",void 0),i([p({attribute:"no-scroll-controls",type:Boolean})],g.prototype,"noScrollControls",void 0),i([p({type:Boolean,reflect:!0})],g.prototype,"centered",void 0),i([r("noScrollControls",{waitUntilFirstUpdate:!0})],g.prototype,"updateScrollControls",null),i([r("placement",{waitUntilFirstUpdate:!0})],g.prototype,"syncIndicator",null),g=i([e("nile-tab-group")],g);export{g as N};
46
+ `}};g.styles=c,i([o(".tab-group")],g.prototype,"tabGroup",void 0),i([o(".tab-group__body")],g.prototype,"body",void 0),i([o(".tab-group__nav")],g.prototype,"nav",void 0),i([o(".tab-group__indicator")],g.prototype,"indicator",void 0),i([n()],g.prototype,"hasScrollControls",void 0),i([p()],g.prototype,"placement",void 0),i([p({reflect:!0,attribute:"value",type:String})],g.prototype,"activeTabName",void 0),i([p({type:Boolean,reflect:!0,attribute:"no-track"})],g.prototype,"noTrack",void 0),i([p()],g.prototype,"activation",void 0),i([p({attribute:"no-scroll-controls",type:Boolean})],g.prototype,"noScrollControls",void 0),i([p({type:Boolean,reflect:!0})],g.prototype,"centered",void 0),i([r("noScrollControls",{waitUntilFirstUpdate:!0})],g.prototype,"updateScrollControls",null),i([r("placement",{waitUntilFirstUpdate:!0})],g.prototype,"syncIndicator",null),g=i([e("nile-tab-group")],g);export{g as N};