@aquera/nile-elements 0.1.35-beta-1.0 → 0.1.35

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 (134) hide show
  1. package/README.md +10 -21
  2. package/demo/index.css +4 -7
  3. package/demo/index.html +36 -20
  4. package/dist/{fixture-d5b55278.cjs.js → fixture-161dee0b.cjs.js} +3 -3
  5. package/dist/fixture-161dee0b.cjs.js.map +1 -0
  6. package/dist/{fixture-df8b52d7.esm.js → fixture-372df3b0.esm.js} +1 -1
  7. package/dist/index.cjs.js +1 -1
  8. package/dist/index.esm.js +1 -1
  9. package/dist/internal/animate.cjs.js +1 -1
  10. package/dist/internal/animate.cjs.js.map +1 -1
  11. package/dist/internal/animate.esm.js +1 -1
  12. package/dist/nile-accordion/nile-accordian.test.cjs.js +1 -1
  13. package/dist/nile-accordion/nile-accordian.test.esm.js +1 -1
  14. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +1 -1
  15. package/dist/nile-auto-complete/nile-auto-complete.test.esm.js +1 -1
  16. package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
  17. package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
  18. package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
  19. package/dist/nile-badge/nile-badge.test.esm.js +1 -1
  20. package/dist/nile-button/nile-button.test.cjs.js +1 -1
  21. package/dist/nile-button/nile-button.test.esm.js +1 -1
  22. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +1 -1
  23. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.esm.js +1 -1
  24. package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
  25. package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
  26. package/dist/nile-card/nile-card.test.cjs.js +1 -1
  27. package/dist/nile-card/nile-card.test.esm.js +1 -1
  28. package/dist/nile-checkbox/nile-checkbox.test.cjs.js +1 -1
  29. package/dist/nile-checkbox/nile-checkbox.test.esm.js +1 -1
  30. package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
  31. package/dist/nile-chip/nile-chip.test.esm.js +1 -1
  32. package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
  33. package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
  34. package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
  35. package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
  36. package/dist/nile-dropdown/nile-dropdown.test.cjs.js +1 -1
  37. package/dist/nile-dropdown/nile-dropdown.test.esm.js +1 -1
  38. package/dist/nile-empty-state/nile-empty-state.test.cjs.js +1 -1
  39. package/dist/nile-empty-state/nile-empty-state.test.esm.js +1 -1
  40. package/dist/nile-error-message/nile-error-message.cjs.js +1 -1
  41. package/dist/nile-error-message/nile-error-message.cjs.js.map +1 -1
  42. package/dist/nile-error-message/nile-error-message.css.cjs.js +1 -1
  43. package/dist/nile-error-message/nile-error-message.css.cjs.js.map +1 -1
  44. package/dist/nile-error-message/nile-error-message.css.esm.js +4 -6
  45. package/dist/nile-error-message/nile-error-message.esm.js +4 -4
  46. package/dist/nile-error-message/nile-error-message.test.cjs.js +1 -1
  47. package/dist/nile-error-message/nile-error-message.test.esm.js +1 -1
  48. package/dist/nile-error-notification/nile-error-notification.css.cjs.js +1 -1
  49. package/dist/nile-error-notification/nile-error-notification.css.cjs.js.map +1 -1
  50. package/dist/nile-error-notification/nile-error-notification.css.esm.js +1 -1
  51. package/dist/nile-form-group/nile-form-group.test.cjs.js +1 -1
  52. package/dist/nile-form-group/nile-form-group.test.esm.js +1 -1
  53. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +1 -1
  54. package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +1 -1
  55. package/dist/nile-hero/nile-hero.test.cjs.js +1 -1
  56. package/dist/nile-hero/nile-hero.test.esm.js +1 -1
  57. package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
  58. package/dist/nile-icon/nile-icon.test.esm.js +1 -1
  59. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  60. package/dist/nile-input/nile-input.test.esm.js +1 -1
  61. package/dist/nile-link/nile-link.test.cjs.js +1 -1
  62. package/dist/nile-link/nile-link.test.esm.js +1 -1
  63. package/dist/nile-loader/nile-loader.test.cjs.js +1 -1
  64. package/dist/nile-loader/nile-loader.test.esm.js +1 -1
  65. package/dist/nile-popover/nile-popover.test.cjs.js +1 -1
  66. package/dist/nile-popover/nile-popover.test.esm.js +1 -1
  67. package/dist/nile-popup/nile-popup.test.cjs.js +1 -1
  68. package/dist/nile-popup/nile-popup.test.esm.js +1 -1
  69. package/dist/nile-progress-bar/nile-progress-bar.css.cjs.js +1 -1
  70. package/dist/nile-progress-bar/nile-progress-bar.css.cjs.js.map +1 -1
  71. package/dist/nile-progress-bar/nile-progress-bar.css.esm.js +0 -1
  72. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +1 -1
  73. package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +1 -1
  74. package/dist/nile-radio/nile-radio.test.cjs.js +1 -1
  75. package/dist/nile-radio/nile-radio.test.esm.js +1 -1
  76. package/dist/nile-radio-group/nile-radio-group.test.cjs.js +1 -1
  77. package/dist/nile-radio-group/nile-radio-group.test.esm.js +1 -1
  78. package/dist/nile-select/nile-select.test.cjs.js +1 -1
  79. package/dist/nile-select/nile-select.test.esm.js +1 -1
  80. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +1 -1
  81. package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +1 -1
  82. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
  83. package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
  84. package/dist/nile-table/nile-table.cjs.js.map +1 -1
  85. package/dist/nile-textarea/nile-textarea.test.cjs.js +1 -1
  86. package/dist/nile-textarea/nile-textarea.test.esm.js +1 -1
  87. package/dist/nile-tooltip/index.cjs.js +1 -1
  88. package/dist/nile-tooltip/index.esm.js +1 -1
  89. package/dist/nile-tooltip/nile-tooltip.cjs.js +1 -1
  90. package/dist/nile-tooltip/nile-tooltip.cjs.js.map +1 -1
  91. package/dist/nile-tooltip/nile-tooltip.css.cjs.js +1 -1
  92. package/dist/nile-tooltip/nile-tooltip.css.cjs.js.map +1 -1
  93. package/dist/nile-tooltip/nile-tooltip.css.esm.js +45 -78
  94. package/dist/nile-tooltip/nile-tooltip.esm.js +28 -23
  95. package/dist/src/nile-error-message/nile-error-message.css.js +4 -6
  96. package/dist/src/nile-error-message/nile-error-message.css.js.map +1 -1
  97. package/dist/src/nile-error-message/nile-error-message.d.ts +0 -4
  98. package/dist/src/nile-error-message/nile-error-message.js +0 -20
  99. package/dist/src/nile-error-message/nile-error-message.js.map +1 -1
  100. package/dist/src/nile-error-notification/nile-error-notification.css.js +1 -1
  101. package/dist/src/nile-error-notification/nile-error-notification.css.js.map +1 -1
  102. package/dist/src/nile-progress-bar/nile-progress-bar.css.js +0 -1
  103. package/dist/src/nile-progress-bar/nile-progress-bar.css.js.map +1 -1
  104. package/dist/src/nile-table/nile-table.js.map +1 -1
  105. package/dist/src/nile-tooltip/nile-tooltip.css.js +43 -76
  106. package/dist/src/nile-tooltip/nile-tooltip.css.js.map +1 -1
  107. package/dist/src/nile-tooltip/nile-tooltip.d.ts +46 -24
  108. package/dist/src/nile-tooltip/nile-tooltip.js +232 -235
  109. package/dist/src/nile-tooltip/nile-tooltip.js.map +1 -1
  110. package/dist/tsconfig.tsbuildinfo +1 -1
  111. package/package.json +1 -1
  112. package/src/nile-error-message/nile-error-message.css.ts +4 -6
  113. package/src/nile-error-message/nile-error-message.ts +0 -18
  114. package/src/nile-error-notification/nile-error-notification.css.ts +1 -1
  115. package/src/nile-progress-bar/nile-progress-bar.css.ts +0 -1
  116. package/src/nile-table/nile-table.ts +2 -2
  117. package/src/nile-tooltip/nile-tooltip.css.ts +44 -77
  118. package/src/nile-tooltip/nile-tooltip.ts +230 -268
  119. package/vscode-html-custom-data.json +92 -92
  120. package/dist/fixture-d5b55278.cjs.js.map +0 -1
  121. package/dist/nile-tooltip/nile-tooltip-utils.cjs.js +0 -2
  122. package/dist/nile-tooltip/nile-tooltip-utils.cjs.js.map +0 -1
  123. package/dist/nile-tooltip/nile-tooltip-utils.esm.js +0 -1
  124. package/dist/nile-tooltip/nile-tooltip.test.cjs.js +0 -2
  125. package/dist/nile-tooltip/nile-tooltip.test.cjs.js.map +0 -1
  126. package/dist/nile-tooltip/nile-tooltip.test.esm.js +0 -47
  127. package/dist/src/nile-tooltip/nile-tooltip-utils.d.ts +0 -18
  128. package/dist/src/nile-tooltip/nile-tooltip-utils.js +0 -216
  129. package/dist/src/nile-tooltip/nile-tooltip-utils.js.map +0 -1
  130. package/dist/src/nile-tooltip/nile-tooltip.test.d.ts +0 -1
  131. package/dist/src/nile-tooltip/nile-tooltip.test.js +0 -148
  132. package/dist/src/nile-tooltip/nile-tooltip.test.js.map +0 -1
  133. package/src/nile-tooltip/nile-tooltip-utils.ts +0 -271
  134. package/src/nile-tooltip/nile-tooltip.test.ts +0 -168
@@ -1 +1 @@
1
- {"version":3,"file":"nile-tooltip.cjs.js","sources":["../../../src/nile-tooltip/nile-tooltip.ts"],"sourcesContent":["\n/**\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 */\nimport { LitElement, html, css, CSSResultArray } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styles } from './nile-tooltip.css';\nimport NileElement from '../internal/nile-element';\nimport { isInViewport, getValidTooltipPosition, getCaretPosition } from './nile-tooltip-utils';\n\n/**\n * Nile tooltip component.\n *\n * @tag nile-tooltip\n *\n */\n@customElement('nile-tooltip')\nexport class NileTooltip extends NileElement {\n @property({ type: String }) content = '';\n @property({ type: String })\n placement:\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'left'\n | 'left-start'\n | 'left-end' = 'top';\n @property({ type: Boolean, reflect: true }) disabled = false;\n @property({ type: Boolean, reflect: true }) open = false;\n /**\n * Controls how the tooltip is activated. Possible options include `click`, `hover`, `focus`, and `manual`. Multiple\n * options can be passed by separating them with a space. When manual is used, the tooltip must be activated\n * programmatically.\n */\n @property() trigger = 'hover focus';\n @property({ type: Number }) distance = 8;\n private readonly SHIFT_OFFSET = 16;\n /** The distance in pixels from which to offset the tooltip along its target. */\n @property({ type: Number }) skidding = 0;\n @property({ type: Boolean, reflect: true }) hoist = false;\n\n @query('.tooltip') tooltip!: HTMLElement;\n @query('.trigger-container') triggerContainer!: HTMLElement;\n @query('.tooltip-caret') caret!: HTMLElement;\n @query('slot[name=\"content\"]') tooltipSlot!: HTMLSlotElement;\n\n private hasTooltipSlot = false;\n private hoverTimeout: number = 0;\n private caretSize = 6;\n private originalPlacement: string = this.placement;\n\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.originalPlacement = this.placement;\n window.addEventListener('resize', this.updateTooltipPosition);\n window.addEventListener('scroll', this.updateTooltipPosition, true);\n }\n\n updated(changedProps: Map<string, unknown>) {\n super.updated?.(changedProps);\n\n const validPlacements = [\n 'top', 'top-start', 'top-end',\n 'right', 'right-start', 'right-end',\n 'bottom', 'bottom-start', 'bottom-end',\n 'left', 'left-start', 'left-end'\n ];\n\n if (!validPlacements.includes(this.placement)) {\n console.warn(`[nile-tooltip] Invalid placement \"${this.placement}\", defaulting to \"bottom\".`);\n this.placement = 'top';\n }\n\n if (!validPlacements.includes(this.originalPlacement)) {\n this.originalPlacement = 'top';\n }\n \n if (changedProps.has('open') && this.open) {\n this.updateComplete.then(() => {\n requestAnimationFrame(() => {\n this.updateTooltipPosition();\n });\n });\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener('resize', this.updateTooltipPosition);\n window.removeEventListener('scroll', this.updateTooltipPosition, true);\n }\n\n private handleTooltipSlotChange() {\n const nodes = this.tooltipSlot.assignedNodes({ flatten: true });\n this.hasTooltipSlot = nodes.length > 0;\n this.requestUpdate();\n }\n\n private updateTooltipPosition = () => {\n if (!isInViewport(this.triggerContainer)) {\n this.open = false;\n return;\n }\n\n const triggerRect = this.triggerContainer.getBoundingClientRect();\n const tooltipRect = this.tooltip.getBoundingClientRect();\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n \n let { top, left, placement } = getValidTooltipPosition(\n triggerRect,\n tooltipRect,\n this.originalPlacement,\n this.distance,\n this.skidding,\n this.caretSize,\n viewportWidth,\n viewportHeight\n );\n\n // FallBack Positions\n\n // Bottom\n if (this.originalPlacement.startsWith('bottom')) {\n const availableSpaceBelow = viewportHeight - triggerRect.bottom;\n if (availableSpaceBelow < tooltipRect.height + this.distance) {\n let newPlacement: typeof this.originalPlacement = 'top';\n if (this.originalPlacement === 'bottom-start') {\n newPlacement = 'top';\n } else if (this.originalPlacement === 'bottom-end') {\n newPlacement = 'top';\n }\n \n const newPosition = getValidTooltipPosition(\n triggerRect,\n tooltipRect,\n newPlacement,\n this.distance,\n this.skidding,\n this.caretSize,\n viewportWidth,\n viewportHeight\n );\n top = newPosition.top;\n left = newPosition.left;\n placement = newPosition.placement;\n }\n }\n // Top\n if (this.originalPlacement.startsWith('top')) {\n const availableSpaceAbove = triggerRect.top;\n const availableSpaceBelow = viewportHeight - triggerRect.bottom;\n if (availableSpaceAbove < tooltipRect.height + this.distance && availableSpaceBelow >= tooltipRect.height + this.distance) {\n let newPlacement: typeof this.originalPlacement = 'bottom';\n if (this.originalPlacement === 'top-start') {\n newPlacement = 'bottom-start';\n } else if (this.originalPlacement === 'top-end') {\n newPlacement = 'bottom-end';\n }\n \n const newPosition = getValidTooltipPosition(\n triggerRect,\n tooltipRect,\n newPlacement,\n this.distance,\n this.skidding,\n this.caretSize,\n viewportWidth,\n viewportHeight\n );\n top = newPosition.top;\n left = newPosition.left;\n placement = newPosition.placement;\n }\n }\n\n // Left\n if (this.originalPlacement.startsWith('left')) {\n const availableSpaceLeft = triggerRect.left;\n const availableSpaceRight = viewportWidth - triggerRect.right;\n if (availableSpaceLeft < tooltipRect.width + this.distance && availableSpaceRight >= tooltipRect.width + this.distance) {\n let newPlacement: typeof this.originalPlacement = 'right';\n if (this.originalPlacement === 'left-start') {\n newPlacement = 'right-start';\n } else if (this.originalPlacement === 'left-end') {\n newPlacement = 'right-end';\n }\n \n const newPosition = getValidTooltipPosition(\n triggerRect,\n tooltipRect,\n newPlacement,\n this.distance,\n this.skidding,\n this.caretSize,\n viewportWidth,\n viewportHeight\n );\n top = newPosition.top;\n left = newPosition.left;\n placement = newPosition.placement;\n }\n }\n\n // Right\n if (this.originalPlacement.startsWith('right')) {\n const availableSpaceRight = viewportWidth - triggerRect.right;\n const availableSpaceLeft = triggerRect.left;\n if (availableSpaceRight < tooltipRect.width + this.distance && availableSpaceLeft >= tooltipRect.width + this.distance) {\n let newPlacement: typeof this.originalPlacement = 'left';\n if (this.originalPlacement === 'right-start') {\n newPlacement = 'left-start';\n } else if (this.originalPlacement === 'right-end') {\n newPlacement = 'left-end';\n }\n \n const newPosition = getValidTooltipPosition(\n triggerRect,\n tooltipRect,\n newPlacement,\n this.distance,\n this.skidding,\n this.caretSize,\n viewportWidth,\n viewportHeight\n );\n top = newPosition.top;\n left = newPosition.left;\n placement = newPosition.placement;\n }\n }\n\n this.setAttribute('placement', placement);\n this.tooltip.style.top = `${top}px`;\n this.tooltip.style.left = `${left}px`;\n\n const { caretLeft, caretTop } = getCaretPosition({\n placement,\n tooltipRect,\n triggerRect,\n caretSize: this.caretSize,\n left,\n top\n });\n\n this.caret.style.left = `${caretLeft}px`;\n this.caret.style.top = `${caretTop}px`;\n };\n\n private showTooltip = () => {\n const trimmedContent = this.content.trim();\n if (!trimmedContent && !this.hasTooltipSlot) {\n return;\n }\n if (!this.disabled && isInViewport(this.triggerContainer)) {\n this.emit('nile-show');\n this.open = true;\n this.updateComplete.then(() => {\n requestAnimationFrame(() => {\n this.updateTooltipPosition();\n this.emit('nile-after-show');\n });\n });\n } else {\n this.open = false;\n }\n };\n\n private hideTooltip = () => {\n this.emit('nile-hide');\n this.open = false;\n setTimeout(() => {\n this.emit('nile-after-hide');\n }, 200);\n };\n\n private handleMouseOver = () => {\n if (this.trigger.includes('hover')) {\n clearTimeout(this.hoverTimeout);\n this.hoverTimeout = window.setTimeout(() => this.showTooltip(), 300);\n }\n };\n\n private handleMouseOut = () => {\n if (this.trigger.includes('hover')) {\n clearTimeout(this.hoverTimeout);\n this.hoverTimeout = window.setTimeout(() => this.hideTooltip(), 150);\n }\n };\n\n private handleClick = () => {\n if (this.trigger.includes('click')) {\n if (!this.open && isInViewport(this.triggerContainer)) {\n this.showTooltip();\n } else {\n this.hideTooltip();\n }\n }\n };\n\n private handleFocus = () => {\n if (this.trigger.includes('focus')) {\n this.showTooltip();\n }\n };\n \n\n private handleBlur = () => {\n if (this.trigger.includes('focus')) {\n this.hideTooltip();\n }\n };\n\n render() {\n return html`\n <div\n class=\"tooltip\"\n id=\"tooltip\"\n >\n <div class=\"tooltip-content\" part=\"content\">\n <slot name=\"content\" @slotchange=${this.handleTooltipSlotChange}></slot>\n ${!this.hasTooltipSlot ? html`${this.content}` : null}\n </div>\n <div class=\"tooltip-caret\" style=\"--caret-size: ${this.caretSize}px;\"></div>\n </div>\n\n <div\n class=\"trigger-container\"\n tabindex=\"0\"\n @mouseover=${this.handleMouseOver}\n @mouseout=${this.handleMouseOut}\n @click=${this.handleClick}\n @focusin=${this.handleFocus}\n @focusout=${this.handleBlur}\n aria-describedby=\"tooltip\"\n >\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-tooltip': NileTooltip;\n }\n}\n"],"names":["NileTooltip","_n","c","this","content","placement","disabled","open","trigger","distance","SHIFT_OFFSET","skidding","hoist","hasTooltipSlot","hoverTimeout","caretSize","originalPlacement","updateTooltipPosition","isInViewport","triggerContainer","triggerRect","getBoundingClientRect","tooltipRect","tooltip","viewportWidth","window","innerWidth","viewportHeight","innerHeight","_l","getValidTooltipPosition","top","left","startsWith","bottom","height","newPlacement","newPosition","availableSpaceAbove","availableSpaceBelow","availableSpaceLeft","availableSpaceRight","right","width","setAttribute","style","concat","_a8","getCaretPosition","caretLeft","caretTop","caret","showTooltip","trim","emit","updateComplete","then","requestAnimationFrame","hideTooltip","setTimeout","handleMouseOver","includes","clearTimeout","handleMouseOut","handleClick","handleFocus","handleBlur","_this","_inherits","_createClass","key","value","connectedCallback","super","addEventListener","updated","changedProps","validPlacements","console","warn","has","disconnectedCallback","removeEventListener","handleTooltipSlotChange","nodes","tooltipSlot","assignedNodes","flatten","length","requestUpdate","render","html","_templateObject","_taggedTemplateLiteral","_templateObject2","__decorate","get","styles","NileElement","property","type","String","prototype","Boolean","reflect","Number","query","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"nile-tooltip.cjs.js","sources":["../../../src/nile-tooltip/nile-tooltip.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, CSSResultArray, TemplateResult } from 'lit';\nimport { styles } from './nile-tooltip.css';\nimport '../nile-popup/nile-popup';\nimport { animateTo, parseDuration, stopAnimations } from '../internal/animate';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport {\n getAnimation,\n setDefaultAnimation,\n} from '../utilities/animation-registry';\nimport { html } from 'lit';\n// import { LocalizeController } from '../utilities/localize';\nimport { waitForEvent } from '../internal/event';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup } from 'lit';\nimport type NilePopup from '../nile-popup/nile-popup';\n/**\n * Nile icon component.\n *\n * @tag nile-tooltip\n *\n */\n@customElement('nile-tooltip')\nexport class NileTooltip extends NileElement {\n /**\n * The styles for Tooltip\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n private hoverTimeout: number;\n // private readonly localize = new LocalizeController(this);\n\n @query('slot:not([name])') defaultSlot: HTMLSlotElement;\n @query('.tooltip__body') body: HTMLElement;\n @query('nile-popup') popup: NilePopup;\n\n /** The tooltip's content. If you need to display HTML, use the `content` slot instead. */\n @property({ type: String, reflect: true }) content = '';\n\n /** Size Property to decide the tool tip size */\n @property({ reflect: true }) size: 'small' | 'large' = 'small';\n\n /**\n * The preferred placement of the tooltip. Note that the actual placement may vary as needed to keep the tooltip\n * inside of the viewport.\n */\n @property() placement:\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'left'\n | 'left-start'\n | 'left-end' = 'top';\n\n /** Disables the tooltip so it won't show when triggered. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** The distance in pixels from which to offset the tooltip away from its target. */\n @property({ type: Number }) distance = 8;\n\n /** Indicates whether or not the tooltip is open. You can use this in lieu of the show/hide methods. */\n @property({ type: Boolean, reflect: true }) open = false;\n\n /** The distance in pixels from which to offset the tooltip along its target. */\n @property({ type: Number }) skidding = 0;\n\n /**\n * Controls how the tooltip is activated. Possible options include `click`, `hover`, `focus`, and `manual`. Multiple\n * options can be passed by separating them with a space. When manual is used, the tooltip must be activated\n * programmatically.\n */\n @property() trigger = 'hover focus';\n\n /**\n * Enable this option to prevent the tooltip from being clipped when the component is placed inside a container with\n * `overflow: auto|hidden|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all,\n * scenarios.\n */\n @property({ type: Boolean }) hoist = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.handleBlur = this.handleBlur.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleMouseOver = this.handleMouseOver.bind(this);\n this.handleMouseOut = this.handleMouseOut.bind(this);\n\n this.updateComplete.then(() => {\n this.addEventListener('blur', this.handleBlur, true);\n this.addEventListener('focus', this.handleFocus, true);\n this.addEventListener('click', this.handleClick);\n this.addEventListener('keydown', this.handleKeyDown);\n this.addEventListener('mouseover', this.handleMouseOver);\n this.addEventListener('mouseout', this.handleMouseOut);\n });\n }\n\n firstUpdated() {\n this.body.hidden = !this.open;\n\n // If the tooltip is visible on init, update its position\n if (this.open) {\n this.popup.active = true;\n this.popup.reposition();\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('blur', this.handleBlur, true);\n this.removeEventListener('focus', this.handleFocus, true);\n this.removeEventListener('click', this.handleClick);\n this.removeEventListener('keydown', this.handleKeyDown);\n this.removeEventListener('mouseover', this.handleMouseOver);\n this.removeEventListener('mouseout', this.handleMouseOut);\n }\n\n private handleBlur() {\n if (this.hasTrigger('focus')) {\n this.hide();\n }\n }\n\n private handleClick() {\n if (this.hasTrigger('click')) {\n if (this.open) {\n this.hide();\n } else {\n this.show();\n }\n }\n }\n\n private handleFocus() {\n if (this.hasTrigger('focus')) {\n this.show();\n }\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n // Pressing escape when the target element has focus should dismiss the tooltip\n if (this.open && event.key === 'Escape') {\n event.stopPropagation();\n this.hide();\n }\n }\n\n private handleMouseOver() {\n if (this.hasTrigger('hover')) {\n const delay = parseDuration(\n getComputedStyle(this).getPropertyValue('--show-delay')\n );\n clearTimeout(this.hoverTimeout);\n this.hoverTimeout = window.setTimeout(() => this.show(), delay);\n }\n }\n\n private handleMouseOut() {\n if (this.hasTrigger('hover')) {\n const delay = parseDuration(\n getComputedStyle(this).getPropertyValue('--hide-delay')\n );\n clearTimeout(this.hoverTimeout);\n this.hoverTimeout = window.setTimeout(() => this.hide(), delay);\n }\n }\n\n private hasTrigger(triggerType: string) {\n const triggers = this.trigger.split(' ');\n return triggers.includes(triggerType);\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n if (this.open) {\n if (this.disabled) {\n return;\n }\n\n // Show\n this.emit('nile-show');\n\n await stopAnimations(this.body);\n this.body.hidden = false;\n this.popup.active = true;\n const { keyframes, options } = getAnimation(this, 'tooltip.show', {\n dir: '',\n });\n await animateTo(this.popup.popup, keyframes, options);\n\n this.emit('nile-after-show');\n } else {\n // Hide\n this.emit('nile-hide');\n\n await stopAnimations(this.body);\n const { keyframes, options } = getAnimation(this, 'tooltip.hide', {\n dir: '',\n });\n await animateTo(this.popup.popup, keyframes, options);\n this.popup.active = false;\n this.body.hidden = true;\n\n this.emit('nile-after-hide');\n }\n }\n\n @watch(['content', 'distance', 'hoist', 'placement', 'skidding'])\n async handleOptionsChange() {\n if (this.hasUpdated) {\n await this.updateComplete;\n this.popup.reposition();\n }\n }\n\n @watch('disabled')\n handleDisabledChange() {\n if (this.disabled && this.open) {\n this.hide();\n }\n }\n\n /** Shows the tooltip. */\n async show() {\n if (this.open || !this.content?.trim().length) {\n return undefined;\n }\n\n this.open = true;\n return waitForEvent(this, 'nile-after-show');\n }\n\n /** Hides the tooltip */\n async hide() {\n if (!this.open) {\n return undefined;\n }\n\n this.open = false;\n return waitForEvent(this, 'nile-after-hide');\n }\n\n render() {\n return html`\n <nile-popup\n part=\"base\"\n exportparts=\"\n popup:base__popup,\n arrow:base__arrow\n \"\n class=${classMap({\n tooltip: true,\n 'tooltip--open': this.open,\n })}\n placement=${this.placement}\n distance=${this.distance}\n skidding=${this.skidding}\n strategy=${this.hoist ? 'fixed' : 'absolute'}\n flip\n shift\n arrow\n >\n <slot slot=\"anchor\" aria-describedby=\"tooltip\"></slot>\n\n <slot\n name=\"content\"\n part=\"body\"\n id=\"tooltip\"\n class=${classMap({\n tooltip__body: true,\n 'tooltip__body--large': this.size === 'large',\n })}\n role=\"tooltip\"\n aria-live=${this.open ? 'polite' : 'off'}\n >\n ${this.content}\n </slot>\n </nile-popup>\n `;\n }\n}\n\nsetDefaultAnimation('tooltip.show', {\n keyframes: [\n { opacity: 0, scale: 0.8 },\n { opacity: 1, scale: 1 },\n ],\n options: { duration: 150, easing: 'ease' },\n});\n\nsetDefaultAnimation('tooltip.hide', {\n keyframes: [\n { opacity: 1, scale: 1 },\n { opacity: 0, scale: 0.8 },\n ],\n options: { duration: 150, easing: 'ease' },\n});\n\nexport default NileTooltip;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-tooltip': NileTooltip;\n }\n}\n"],"names":["NileTooltip","f","constructor","this","content","size","placement","disabled","distance","open","skidding","trigger","hoist","_this","_inherits","_m","_createClass","key","value","connectedCallback","super","handleBlur","bind","handleClick","handleFocus","handleKeyDown","handleMouseOver","handleMouseOut","updateComplete","then","addEventListener","firstUpdated","body","hidden","popup","active","reposition","disconnectedCallback","removeEventListener","hasTrigger","hide","show","event","stopPropagation","delay","parseDuration","getComputedStyle","getPropertyValue","clearTimeout","hoverTimeout","window","setTimeout","_this4","triggerType","split","includes","_handleOpenChange","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_p","_t3","_i","_p2","_t4","_i2","wrap","_callee$","_context2","prev","next","emit","stopAnimations","getAnimation","dir","animateTo","keyframes","options","stop","handleOpenChange","_callee2","_callee2$","_context3","t0","hasUpdated","handleOptionsChange","handleDisabledChange","_show","_callee3","_this$content","_callee3$","_context4","trim","length","abrupt","waitForEvent","_callee4","_callee4$","_context5","render","html","_templateObject","_taggedTemplateLiteral","classMap","tooltip","tooltip__body","__decorate","get","styles","NileElement","query","prototype","property","type","String","reflect","Boolean","Number","watch","waitUntilFirstUpdate","customElement","setDefaultAnimation","opacity","scale","duration","easing"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- System.register(["lit"],function(_export,_context){"use strict";var t,_templateObject,o;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}return{setters:[function(_lit){t=_lit.css;}],execute:function execute(){_export("s",o=t(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n\n\n:host {\n position: relative;\n display: inline-block;\n }\n .tooltip {\n position: fixed;\n z-index: 1000;\n background-color: var(--nile-tooltip-color-background, #333);\n color: var(--nile-colors-white-base, #fff);\n padding: 6px 10px;\n border-radius: 4px;\n font-size: var(--nile-tooltip-font-size-sm, 14px);\n line-height: var(--nile-tooltip-line-height-sm, 1.5);\n opacity: 0;\n transition: opacity 0.2s, transform 0.2s;\n pointer-events: none;\n white-space: normal;\n visibility: hidden;\n overflow: visible;\n \n }\n :host([open]) .tooltip {\n opacity: 1;\n visibility: visible;\n pointer-events: auto;\n }\n .tooltip-content {\n overflow: auto;\n max-width: 250px;\n max-height: 116px;\n }\n .tooltip-caret {\n position: absolute;\n width: calc(2 * var(--caret-size, 6px));\n height: calc(2 * var(--caret-size, 6px));\n background-color: inherit;\n transform: rotate(45deg);\n z-index: -1;\n }\n .trigger-container {\n display: inline-block;\n }\n \n \n:host([open]) .tooltip {\n visibility: visible;\n pointer-events: auto;\n animation: fadeIn 150ms forwards;\n}\n\n \n.tooltip.hide {\n animation: fadeOut 100ms forwards;\n}\n\n \n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(5px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n \n@keyframes fadeOut {\n from {\n opacity: 1;\n transform: translateY(0);\n }\n to {\n opacity: 0;\n transform: translateY(5px);\n }\n}\n\n\n\n\n\n\n \n"]))));}};});
1
+ System.register(["lit"],function(_export,_context){"use strict";var o,_templateObject,t;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}return{setters:[function(_lit){o=_lit.css;}],execute:function execute(){_export("s",t=o(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n :host {\n --max-width: 20rem;\n --hide-delay: 0ms;\n --show-delay: 150ms;\n\n display: contents;\n }\n\n .tooltip {\n --arrow-size: 6px;\n --arrow-color: var(--nile-tooltip-color-background);\n }\n\n .tooltip::part(popup) {\n pointer-events: none;\n z-index: 1000;\n }\n\n .tooltip[placement^='top']::part(popup) {\n transform-origin: bottom;\n }\n\n .tooltip[placement^='bottom']::part(popup) {\n transform-origin: top;\n }\n\n .tooltip[placement^='left']::part(popup) {\n transform-origin: right;\n }\n\n .tooltip[placement^='right']::part(popup) {\n transform-origin: left;\n }\n\n .tooltip__body {\n display: block;\n width: max-content;\n max-width: var(--max-width);\n border-radius: 4px;\n background-color: var(--nile-tooltip-color-background);\n font-size: var(--nile-tooltip-font-size-sm);\n font-weight: var(--nile-tooltip-font-weight-sm);\n line-height: var(--nile-tooltip-line-height-sm);\n padding: var(--nile-tooltip-padding-y) var(--nile-tooltip-padding-x);\n color: var(--nile-colors-white-base);\n pointer-events: none;\n word-break: break-word;\n }\n\n .tooltip__body--large {\n font-size: var(--nile-tooltip-font-size-lg);\n line-height: var(--nile-tooltip-line-height-lg);\n font-weight: var(--nile-tooltip-font-weight-lg);\n }\n"]))));}};});
2
2
  //# sourceMappingURL=nile-tooltip.css.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nile-tooltip.css.cjs.js","sources":["../../../src/nile-tooltip/nile-tooltip.css.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 { css } from 'lit';\n\n/**\n * Tooltip CSS\n */\nexport const styles = css`\n\n\n:host {\n position: relative;\n display: inline-block;\n }\n .tooltip {\n position: fixed;\n z-index: 1000;\n background-color: var(--nile-tooltip-color-background, #333);\n color: var(--nile-colors-white-base, #fff);\n padding: 6px 10px;\n border-radius: 4px;\n font-size: var(--nile-tooltip-font-size-sm, 14px);\n line-height: var(--nile-tooltip-line-height-sm, 1.5);\n opacity: 0;\n transition: opacity 0.2s, transform 0.2s;\n pointer-events: none;\n white-space: normal;\n visibility: hidden;\n overflow: visible;\n \n }\n :host([open]) .tooltip {\n opacity: 1;\n visibility: visible;\n pointer-events: auto;\n }\n .tooltip-content {\n overflow: auto;\n max-width: 250px;\n max-height: 116px;\n }\n .tooltip-caret {\n position: absolute;\n width: calc(2 * var(--caret-size, 6px));\n height: calc(2 * var(--caret-size, 6px));\n background-color: inherit;\n transform: rotate(45deg);\n z-index: -1;\n }\n .trigger-container {\n display: inline-block;\n }\n \n \n:host([open]) .tooltip {\n visibility: visible;\n pointer-events: auto;\n animation: fadeIn 150ms forwards;\n}\n\n \n.tooltip.hide {\n animation: fadeOut 100ms forwards;\n}\n\n \n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(5px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n \n@keyframes fadeOut {\n from {\n opacity: 1;\n transform: translateY(0);\n }\n to {\n opacity: 0;\n transform: translateY(5px);\n }\n}\n\n\n\n\n\n\n \n`;\n\nexport default [styles];"],"names":["styles","css","_templateObject","_taggedTemplateLiteral"],"mappings":"oTAYaA,CAAAA,CAASC,CAAG,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA"}
1
+ {"version":3,"file":"nile-tooltip.css.cjs.js","sources":["../../../src/nile-tooltip/nile-tooltip.css.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 { css } from 'lit';\n\n/**\n * Tooltip CSS\n */\nexport const styles = css`\n :host {\n --max-width: 20rem;\n --hide-delay: 0ms;\n --show-delay: 150ms;\n\n display: contents;\n }\n\n .tooltip {\n --arrow-size: 6px;\n --arrow-color: var(--nile-tooltip-color-background);\n }\n\n .tooltip::part(popup) {\n pointer-events: none;\n z-index: 1000;\n }\n\n .tooltip[placement^='top']::part(popup) {\n transform-origin: bottom;\n }\n\n .tooltip[placement^='bottom']::part(popup) {\n transform-origin: top;\n }\n\n .tooltip[placement^='left']::part(popup) {\n transform-origin: right;\n }\n\n .tooltip[placement^='right']::part(popup) {\n transform-origin: left;\n }\n\n .tooltip__body {\n display: block;\n width: max-content;\n max-width: var(--max-width);\n border-radius: 4px;\n background-color: var(--nile-tooltip-color-background);\n font-size: var(--nile-tooltip-font-size-sm);\n font-weight: var(--nile-tooltip-font-weight-sm);\n line-height: var(--nile-tooltip-line-height-sm);\n padding: var(--nile-tooltip-padding-y) var(--nile-tooltip-padding-x);\n color: var(--nile-colors-white-base);\n pointer-events: none;\n word-break: break-word;\n }\n\n .tooltip__body--large {\n font-size: var(--nile-tooltip-font-size-lg);\n line-height: var(--nile-tooltip-line-height-lg);\n font-weight: var(--nile-tooltip-font-weight-lg);\n }\n`;\n\nexport default [styles];\n"],"names":["styles","css","_templateObject","_taggedTemplateLiteral"],"mappings":"oTAYaA,CAAAA,CAASC,CAAG,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA"}
@@ -1,89 +1,56 @@
1
- import{css as t}from"lit";const o=t`
1
+ import{css as o}from"lit";const t=o`
2
+ :host {
3
+ --max-width: 20rem;
4
+ --hide-delay: 0ms;
5
+ --show-delay: 150ms;
2
6
 
3
-
4
- :host {
5
- position: relative;
6
- display: inline-block;
7
- }
8
- .tooltip {
9
- position: fixed;
10
- z-index: 1000;
11
- background-color: var(--nile-tooltip-color-background, #333);
12
- color: var(--nile-colors-white-base, #fff);
13
- padding: 6px 10px;
14
- border-radius: 4px;
15
- font-size: var(--nile-tooltip-font-size-sm, 14px);
16
- line-height: var(--nile-tooltip-line-height-sm, 1.5);
17
- opacity: 0;
18
- transition: opacity 0.2s, transform 0.2s;
19
- pointer-events: none;
20
- white-space: normal;
21
- visibility: hidden;
22
- overflow: visible;
23
-
24
- }
25
- :host([open]) .tooltip {
26
- opacity: 1;
27
- visibility: visible;
28
- pointer-events: auto;
29
- }
30
- .tooltip-content {
31
- overflow: auto;
32
- max-width: 250px;
33
- max-height: 116px;
34
- }
35
- .tooltip-caret {
36
- position: absolute;
37
- width: calc(2 * var(--caret-size, 6px));
38
- height: calc(2 * var(--caret-size, 6px));
39
- background-color: inherit;
40
- transform: rotate(45deg);
41
- z-index: -1;
42
- }
43
- .trigger-container {
44
- display: inline-block;
45
- }
46
-
47
-
48
- :host([open]) .tooltip {
49
- visibility: visible;
50
- pointer-events: auto;
51
- animation: fadeIn 150ms forwards;
52
- }
53
-
54
-
55
- .tooltip.hide {
56
- animation: fadeOut 100ms forwards;
57
- }
58
-
59
-
60
- @keyframes fadeIn {
61
- from {
62
- opacity: 0;
63
- transform: translateY(5px);
7
+ display: contents;
64
8
  }
65
- to {
66
- opacity: 1;
67
- transform: translateY(0);
68
- }
69
- }
70
9
 
71
-
72
- @keyframes fadeOut {
73
- from {
74
- opacity: 1;
75
- transform: translateY(0);
10
+ .tooltip {
11
+ --arrow-size: 6px;
12
+ --arrow-color: var(--nile-tooltip-color-background);
76
13
  }
77
- to {
78
- opacity: 0;
79
- transform: translateY(5px);
14
+
15
+ .tooltip::part(popup) {
16
+ pointer-events: none;
17
+ z-index: 1000;
80
18
  }
81
- }
82
19
 
20
+ .tooltip[placement^='top']::part(popup) {
21
+ transform-origin: bottom;
22
+ }
83
23
 
24
+ .tooltip[placement^='bottom']::part(popup) {
25
+ transform-origin: top;
26
+ }
84
27
 
28
+ .tooltip[placement^='left']::part(popup) {
29
+ transform-origin: right;
30
+ }
85
31
 
32
+ .tooltip[placement^='right']::part(popup) {
33
+ transform-origin: left;
34
+ }
86
35
 
36
+ .tooltip__body {
37
+ display: block;
38
+ width: max-content;
39
+ max-width: var(--max-width);
40
+ border-radius: 4px;
41
+ background-color: var(--nile-tooltip-color-background);
42
+ font-size: var(--nile-tooltip-font-size-sm);
43
+ font-weight: var(--nile-tooltip-font-weight-sm);
44
+ line-height: var(--nile-tooltip-line-height-sm);
45
+ padding: var(--nile-tooltip-padding-y) var(--nile-tooltip-padding-x);
46
+ color: var(--nile-colors-white-base);
47
+ pointer-events: none;
48
+ word-break: break-word;
49
+ }
87
50
 
88
-
89
- `;export{o as s};
51
+ .tooltip__body--large {
52
+ font-size: var(--nile-tooltip-font-size-lg);
53
+ line-height: var(--nile-tooltip-line-height-lg);
54
+ font-weight: var(--nile-tooltip-font-weight-lg);
55
+ }
56
+ `;export{t as s};
@@ -1,25 +1,30 @@
1
- import{__decorate as t}from"tslib";import{html as i}from"lit";import{property as s,query as o,customElement as e}from"lit/decorators.js";import{s as h}from"./nile-tooltip.css.esm.js";import{N as n}from"../internal/nile-element.esm.js";import{i as r,g as l,a}from"./nile-tooltip-utils.esm.js";let c=class extends n{constructor(){super(...arguments),this.content="",this.placement="top",this.disabled=!1,this.open=!1,this.trigger="hover focus",this.distance=8,this.SHIFT_OFFSET=16,this.skidding=0,this.hoist=!1,this.hasTooltipSlot=!1,this.hoverTimeout=0,this.caretSize=6,this.originalPlacement=this.placement,this.updateTooltipPosition=()=>{if(!r(this.triggerContainer))return void(this.open=!1);const t=this.triggerContainer.getBoundingClientRect(),i=this.tooltip.getBoundingClientRect(),s=window.innerWidth,o=window.innerHeight;let{top:e,left:h,placement:n}=l(t,i,this.originalPlacement,this.distance,this.skidding,this.caretSize,s,o);if(this.originalPlacement.startsWith("bottom")){if(o-t.bottom<i.height+this.distance){let r="top";("bottom-start"===this.originalPlacement||"bottom-end"===this.originalPlacement)&&(r="top");const a=l(t,i,r,this.distance,this.skidding,this.caretSize,s,o);e=a.top,h=a.left,n=a.placement}}if(this.originalPlacement.startsWith("top")){const r=t.top,a=o-t.bottom;if(r<i.height+this.distance&&a>=i.height+this.distance){let r="bottom";"top-start"===this.originalPlacement?r="bottom-start":"top-end"===this.originalPlacement&&(r="bottom-end");const a=l(t,i,r,this.distance,this.skidding,this.caretSize,s,o);e=a.top,h=a.left,n=a.placement}}if(this.originalPlacement.startsWith("left")){const r=t.left,a=s-t.right;if(r<i.width+this.distance&&a>=i.width+this.distance){let r="right";"left-start"===this.originalPlacement?r="right-start":"left-end"===this.originalPlacement&&(r="right-end");const a=l(t,i,r,this.distance,this.skidding,this.caretSize,s,o);e=a.top,h=a.left,n=a.placement}}if(this.originalPlacement.startsWith("right")){const r=s-t.right,a=t.left;if(r<i.width+this.distance&&a>=i.width+this.distance){let r="left";"right-start"===this.originalPlacement?r="left-start":"right-end"===this.originalPlacement&&(r="left-end");const a=l(t,i,r,this.distance,this.skidding,this.caretSize,s,o);e=a.top,h=a.left,n=a.placement}}this.setAttribute("placement",n),this.tooltip.style.top=`${e}px`,this.tooltip.style.left=`${h}px`;const{caretLeft:c,caretTop:d}=a({placement:n,tooltipRect:i,triggerRect:t,caretSize:this.caretSize,left:h,top:e});this.caret.style.left=`${c}px`,this.caret.style.top=`${d}px`},this.showTooltip=()=>{(this.content.trim()||this.hasTooltipSlot)&&(!this.disabled&&r(this.triggerContainer)?(this.emit("nile-show"),this.open=!0,this.updateComplete.then((()=>{requestAnimationFrame((()=>{this.updateTooltipPosition(),this.emit("nile-after-show")}))}))):this.open=!1)},this.hideTooltip=()=>{this.emit("nile-hide"),this.open=!1,setTimeout((()=>{this.emit("nile-after-hide")}),200)},this.handleMouseOver=()=>{this.trigger.includes("hover")&&(clearTimeout(this.hoverTimeout),this.hoverTimeout=window.setTimeout((()=>this.showTooltip()),300))},this.handleMouseOut=()=>{this.trigger.includes("hover")&&(clearTimeout(this.hoverTimeout),this.hoverTimeout=window.setTimeout((()=>this.hideTooltip()),150))},this.handleClick=()=>{this.trigger.includes("click")&&(!this.open&&r(this.triggerContainer)?this.showTooltip():this.hideTooltip())},this.handleFocus=()=>{this.trigger.includes("focus")&&this.showTooltip()},this.handleBlur=()=>{this.trigger.includes("focus")&&this.hideTooltip()}}static get styles(){return[h]}connectedCallback(){super.connectedCallback(),this.originalPlacement=this.placement,window.addEventListener("resize",this.updateTooltipPosition),window.addEventListener("scroll",this.updateTooltipPosition,!0)}updated(t){super.updated?.(t);const i=["top","top-start","top-end","right","right-start","right-end","bottom","bottom-start","bottom-end","left","left-start","left-end"];i.includes(this.placement)||(console.warn(`[nile-tooltip] Invalid placement "${this.placement}", defaulting to "bottom".`),this.placement="top"),i.includes(this.originalPlacement)||(this.originalPlacement="top"),t.has("open")&&this.open&&this.updateComplete.then((()=>{requestAnimationFrame((()=>{this.updateTooltipPosition()}))}))}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("resize",this.updateTooltipPosition),window.removeEventListener("scroll",this.updateTooltipPosition,!0)}handleTooltipSlotChange(){const t=this.tooltipSlot.assignedNodes({flatten:!0});this.hasTooltipSlot=t.length>0,this.requestUpdate()}render(){return i`
2
- <div
3
- class="tooltip"
4
- id="tooltip"
1
+ import{__decorate as t}from"tslib";import{s as i}from"./nile-tooltip.css.esm.js";import"../nile-popup/nile-popup.esm.js";import{p as s,s as e,a as o}from"../internal/animate.esm.js";import{classMap as h}from"lit/directives/class-map.js";import{query as a,property as l,customElement as n}from"lit/decorators.js";import{s as r,g as p}from"../utilities/animation-registry.esm.js";import{html as d}from"lit";import{w as c}from"../internal/event.esm.js";import{w as m}from"../internal/watch.esm.js";import{N as u}from"../internal/nile-element.esm.js";import"../nile-popup/nile-popup.css.esm.js";let f=class extends u{constructor(){super(...arguments),this.content="",this.size="small",this.placement="top",this.disabled=!1,this.distance=8,this.open=!1,this.skidding=0,this.trigger="hover focus",this.hoist=!1}static get styles(){return[i]}connectedCallback(){super.connectedCallback(),this.handleBlur=this.handleBlur.bind(this),this.handleClick=this.handleClick.bind(this),this.handleFocus=this.handleFocus.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleMouseOver=this.handleMouseOver.bind(this),this.handleMouseOut=this.handleMouseOut.bind(this),this.updateComplete.then((()=>{this.addEventListener("blur",this.handleBlur,!0),this.addEventListener("focus",this.handleFocus,!0),this.addEventListener("click",this.handleClick),this.addEventListener("keydown",this.handleKeyDown),this.addEventListener("mouseover",this.handleMouseOver),this.addEventListener("mouseout",this.handleMouseOut)}))}firstUpdated(){this.body.hidden=!this.open,this.open&&(this.popup.active=!0,this.popup.reposition())}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("blur",this.handleBlur,!0),this.removeEventListener("focus",this.handleFocus,!0),this.removeEventListener("click",this.handleClick),this.removeEventListener("keydown",this.handleKeyDown),this.removeEventListener("mouseover",this.handleMouseOver),this.removeEventListener("mouseout",this.handleMouseOut)}handleBlur(){this.hasTrigger("focus")&&this.hide()}handleClick(){this.hasTrigger("click")&&(this.open?this.hide():this.show())}handleFocus(){this.hasTrigger("focus")&&this.show()}handleKeyDown(t){this.open&&"Escape"===t.key&&(t.stopPropagation(),this.hide())}handleMouseOver(){if(this.hasTrigger("hover")){const t=s(getComputedStyle(this).getPropertyValue("--show-delay"));clearTimeout(this.hoverTimeout),this.hoverTimeout=window.setTimeout((()=>this.show()),t)}}handleMouseOut(){if(this.hasTrigger("hover")){const t=s(getComputedStyle(this).getPropertyValue("--hide-delay"));clearTimeout(this.hoverTimeout),this.hoverTimeout=window.setTimeout((()=>this.hide()),t)}}hasTrigger(t){return this.trigger.split(" ").includes(t)}async handleOpenChange(){if(this.open){if(this.disabled)return;this.emit("nile-show"),await e(this.body),this.body.hidden=!1,this.popup.active=!0;const{keyframes:t,options:i}=p(this,"tooltip.show",{dir:""});await o(this.popup.popup,t,i),this.emit("nile-after-show")}else{this.emit("nile-hide"),await e(this.body);const{keyframes:t,options:i}=p(this,"tooltip.hide",{dir:""});await o(this.popup.popup,t,i),this.popup.active=!1,this.body.hidden=!0,this.emit("nile-after-hide")}}async handleOptionsChange(){this.hasUpdated&&(await this.updateComplete,this.popup.reposition())}handleDisabledChange(){this.disabled&&this.open&&this.hide()}async show(){if(!this.open&&this.content?.trim().length)return this.open=!0,c(this,"nile-after-show")}async hide(){if(this.open)return this.open=!1,c(this,"nile-after-hide")}render(){return d`
2
+ <nile-popup
3
+ part="base"
4
+ exportparts="
5
+ popup:base__popup,
6
+ arrow:base__arrow
7
+ "
8
+ class=${h({tooltip:!0,"tooltip--open":this.open})}
9
+ placement=${this.placement}
10
+ distance=${this.distance}
11
+ skidding=${this.skidding}
12
+ strategy=${this.hoist?"fixed":"absolute"}
13
+ flip
14
+ shift
15
+ arrow
5
16
  >
6
- <div class="tooltip-content" part="content">
7
- <slot name="content" @slotchange=${this.handleTooltipSlotChange}></slot>
8
- ${this.hasTooltipSlot?null:i`${this.content}`}
9
- </div>
10
- <div class="tooltip-caret" style="--caret-size: ${this.caretSize}px;"></div>
11
- </div>
17
+ <slot slot="anchor" aria-describedby="tooltip"></slot>
12
18
 
13
- <div
14
- class="trigger-container"
15
- tabindex="0"
16
- @mouseover=${this.handleMouseOver}
17
- @mouseout=${this.handleMouseOut}
18
- @click=${this.handleClick}
19
- @focusin=${this.handleFocus}
20
- @focusout=${this.handleBlur}
21
- aria-describedby="tooltip"
22
- >
23
- <slot></slot>
24
- </div>
25
- `}};t([s({type:String})],c.prototype,"content",void 0),t([s({type:String})],c.prototype,"placement",void 0),t([s({type:Boolean,reflect:!0})],c.prototype,"disabled",void 0),t([s({type:Boolean,reflect:!0})],c.prototype,"open",void 0),t([s()],c.prototype,"trigger",void 0),t([s({type:Number})],c.prototype,"distance",void 0),t([s({type:Number})],c.prototype,"skidding",void 0),t([s({type:Boolean,reflect:!0})],c.prototype,"hoist",void 0),t([o(".tooltip")],c.prototype,"tooltip",void 0),t([o(".trigger-container")],c.prototype,"triggerContainer",void 0),t([o(".tooltip-caret")],c.prototype,"caret",void 0),t([o('slot[name="content"]')],c.prototype,"tooltipSlot",void 0),c=t([e("nile-tooltip")],c);export{c as N};
19
+ <slot
20
+ name="content"
21
+ part="body"
22
+ id="tooltip"
23
+ class=${h({tooltip__body:!0,"tooltip__body--large":"large"===this.size})}
24
+ role="tooltip"
25
+ aria-live=${this.open?"polite":"off"}
26
+ >
27
+ ${this.content}
28
+ </slot>
29
+ </nile-popup>
30
+ `}};t([a("slot:not([name])")],f.prototype,"defaultSlot",void 0),t([a(".tooltip__body")],f.prototype,"body",void 0),t([a("nile-popup")],f.prototype,"popup",void 0),t([l({type:String,reflect:!0})],f.prototype,"content",void 0),t([l({reflect:!0})],f.prototype,"size",void 0),t([l()],f.prototype,"placement",void 0),t([l({type:Boolean,reflect:!0})],f.prototype,"disabled",void 0),t([l({type:Number})],f.prototype,"distance",void 0),t([l({type:Boolean,reflect:!0})],f.prototype,"open",void 0),t([l({type:Number})],f.prototype,"skidding",void 0),t([l()],f.prototype,"trigger",void 0),t([l({type:Boolean})],f.prototype,"hoist",void 0),t([m("open",{waitUntilFirstUpdate:!0})],f.prototype,"handleOpenChange",null),t([m(["content","distance","hoist","placement","skidding"])],f.prototype,"handleOptionsChange",null),t([m("disabled")],f.prototype,"handleDisabledChange",null),f=t([n("nile-tooltip")],f),r("tooltip.show",{keyframes:[{opacity:0,scale:.8},{opacity:1,scale:1}],options:{duration:150,easing:"ease"}}),r("tooltip.hide",{keyframes:[{opacity:1,scale:1},{opacity:0,scale:.8}],options:{duration:150,easing:"ease"}});export{f as N};
@@ -14,11 +14,11 @@ export const styles = css `
14
14
 
15
15
  .nile-error-message {
16
16
  width: 100%;
17
+ word-break: break-all;
17
18
  font-size: var(--nile-font-size-small);
18
19
  letter-spacing: 0.2px;
19
20
  font-weight: var(--nile-font-weight-regular);
20
21
  line-height: var(--nile-font-size-small);
21
- max-width: var(--nile-error-max-width, 535px);
22
22
  }
23
23
 
24
24
  .nile-error-message__error {
@@ -30,8 +30,6 @@ export const styles = css `
30
30
  color: var(--nile-colors-dark-500);
31
31
  margin-top:6px;
32
32
  line-height: 16px;
33
- max-height: var(--nile-error-max-height, 48px);
34
- overflow-x: auto;
35
33
  }
36
34
 
37
35
  .nile-error-message__icon {
@@ -54,7 +52,7 @@ export const styles = css `
54
52
  border: 1px solid var(--nile-colors-red-500);
55
53
  border-left: 6px solid var(--nile-colors-red-500);
56
54
  border-radius: 4px;
57
- margin-top: 8px;
55
+ margin-top: 12px;
58
56
  padding: 12px;
59
57
  background: var(--nile-colors-neutral-100);
60
58
  }
@@ -81,10 +79,10 @@ export const styles = css `
81
79
  }
82
80
 
83
81
  .nile-error-message__response-expanded.expanded {
84
- max-height: var(--nile-error-max-dialog-height, 48px);
82
+ max-height: 100px;
85
83
  transition: max-height 0.3s ease-in-out;
86
84
  visibility: visible;
87
- padding: 8px;
85
+ padding: 12px;
88
86
  }
89
87
  `;
90
88
  export default [styles];
@@ -1 +1 @@
1
- {"version":3,"file":"nile-error-message.css.js","sourceRoot":"","sources":["../../../src/nile-error-message/nile-error-message.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8ExB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","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 { css } from 'lit';\n\n/**\n * ErrorMessage CSS\n */\nexport const styles = css`\n :host {\n }\n\n .nile-error-message {\n width: 100%;\n font-size: var(--nile-font-size-small);\n letter-spacing: 0.2px;\n font-weight: var(--nile-font-weight-regular);\n line-height: var(--nile-font-size-small);\n max-width: var(--nile-error-max-width, 535px);\n }\n\n .nile-error-message__error {\n color: var(--nile-colors-red-700);\n word-break: break-word;\n }\n\n .nile-error-message__response {\n color: var(--nile-colors-dark-500);\n margin-top:6px;\n line-height: 16px;\n max-height: var(--nile-error-max-height, 48px);\n overflow-x: auto;\n }\n\n .nile-error-message__icon {\n vertical-align: middle;\n margin-right:2px;\n }\n\n .nile-error-message__more-button {\n color: var(--nile-colors-primary-600);\n cursor: pointer;\n white-space: nowrap;\n display: inline-flex;\n gap: 4px;\n align-items: center\n }\n\n .nile-error-message__response-expanded {\n line-height: 18px;\n height: auto;\n border: 1px solid var(--nile-colors-red-500);\n border-left: 6px solid var(--nile-colors-red-500);\n border-radius: 4px;\n margin-top: 8px;\n padding: 12px;\n background: var(--nile-colors-neutral-100);\n }\n\n .nile-error-message__response-expanded {\n max-height: 100px;\n overflow-y: auto;\n border: 1px solid var(--nile-colors-red-500);\n border-left: 6px solid var(--nile-colors-red-500);\n border-radius: 4px;\n margin-top: 12px;\n padding: 12px;\n background: var(--nile-colors-neutral-100);\n transition: max-height 0.3s ease-in-out;\n flex-shrink: 0;\n }\n\n .nile-error-message__response-expanded.collapsed {\n max-height: 0;\n overflow: hidden;\n transition: max-height 0.3s ease-in-out;\n visibility: hidden;\n padding: 0 12px;\n }\n\n .nile-error-message__response-expanded.expanded {\n max-height: var(--nile-error-max-dialog-height, 48px);\n transition: max-height 0.3s ease-in-out;\n visibility: visible;\n padding: 8px;\n }\n`;\n\nexport default [styles];\n"]}
1
+ {"version":3,"file":"nile-error-message.css.js","sourceRoot":"","sources":["../../../src/nile-error-message/nile-error-message.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4ExB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","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 { css } from 'lit';\n\n/**\n * ErrorMessage CSS\n */\nexport const styles = css`\n :host {\n }\n\n .nile-error-message {\n width: 100%;\n word-break: break-all;\n font-size: var(--nile-font-size-small);\n letter-spacing: 0.2px;\n font-weight: var(--nile-font-weight-regular);\n line-height: var(--nile-font-size-small);\n }\n\n .nile-error-message__error {\n color: var(--nile-colors-red-700);\n word-break: break-word;\n }\n\n .nile-error-message__response {\n color: var(--nile-colors-dark-500);\n margin-top:6px;\n line-height: 16px;\n }\n\n .nile-error-message__icon {\n vertical-align: middle;\n margin-right:2px;\n }\n\n .nile-error-message__more-button {\n color: var(--nile-colors-primary-600);\n cursor: pointer;\n white-space: nowrap;\n display: inline-flex;\n gap: 4px;\n align-items: center\n }\n\n .nile-error-message__response-expanded {\n line-height: 18px;\n height: auto;\n border: 1px solid var(--nile-colors-red-500);\n border-left: 6px solid var(--nile-colors-red-500);\n border-radius: 4px;\n margin-top: 12px;\n padding: 12px;\n background: var(--nile-colors-neutral-100);\n }\n\n .nile-error-message__response-expanded {\n max-height: 100px;\n overflow-y: auto;\n border: 1px solid var(--nile-colors-red-500);\n border-left: 6px solid var(--nile-colors-red-500);\n border-radius: 4px;\n margin-top: 12px;\n padding: 12px;\n background: var(--nile-colors-neutral-100);\n transition: max-height 0.3s ease-in-out;\n flex-shrink: 0;\n }\n\n .nile-error-message__response-expanded.collapsed {\n max-height: 0;\n overflow: hidden;\n transition: max-height 0.3s ease-in-out;\n visibility: hidden;\n padding: 0 12px;\n }\n\n .nile-error-message__response-expanded.expanded {\n max-height: 100px;\n transition: max-height 0.3s ease-in-out;\n visibility: visible;\n padding: 12px;\n }\n`;\n\nexport default [styles];\n"]}
@@ -9,16 +9,12 @@ export declare class NileErrorMessage extends LitElement {
9
9
  errorResponse: string;
10
10
  errorResponseLong: string;
11
11
  isExpanded: boolean;
12
- maxWidth: string;
13
- maxHeight: string;
14
- maxDialogHeight: string;
15
12
  private readonly MAX_LENGTH;
16
13
  /**
17
14
  * Get a truncated version of the errorResponse if it's too long.
18
15
  * @returns {string}
19
16
  */
20
17
  getTruncatedResponse(): string;
21
- updated(changedProperties: Map<string, any>): void;
22
18
  /**
23
19
  * Toggle the expanded state of the error response.
24
20
  */
@@ -28,17 +28,6 @@ let NileErrorMessage = class NileErrorMessage extends LitElement {
28
28
  }
29
29
  return this.errorResponse;
30
30
  }
31
- updated(changedProperties) {
32
- if (changedProperties.has('maxWidth')) {
33
- this.style.setProperty('--nile-error-max-width', this.maxWidth);
34
- }
35
- if (changedProperties.has('maxHeight')) {
36
- this.style.setProperty('--nile-error-max-height', this.maxHeight);
37
- }
38
- if (changedProperties.has('maxDialogHeight')) {
39
- this.style.setProperty('--nile-error-max-dialog-height', this.maxDialogHeight);
40
- }
41
- }
42
31
  /**
43
32
  * Toggle the expanded state of the error response.
44
33
  */
@@ -99,15 +88,6 @@ __decorate([
99
88
  __decorate([
100
89
  property({ type: Boolean })
101
90
  ], NileErrorMessage.prototype, "isExpanded", void 0);
102
- __decorate([
103
- property({ type: String })
104
- ], NileErrorMessage.prototype, "maxWidth", void 0);
105
- __decorate([
106
- property({ type: String })
107
- ], NileErrorMessage.prototype, "maxHeight", void 0);
108
- __decorate([
109
- property({ type: String })
110
- ], NileErrorMessage.prototype, "maxDialogHeight", void 0);
111
91
  NileErrorMessage = __decorate([
112
92
  customElement('nile-error-message')
113
93
  ], NileErrorMessage);
@@ -1 +1 @@
1
- {"version":3,"file":"nile-error-message.js","sourceRoot":"","sources":["../../../src/nile-error-message/nile-error-message.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n LitElement,\n html,\n CSSResultArray,\n TemplateResult,\n} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-error-message.css';\n\n/**\n * A custom error message component that displays error information to the user.\n * @customElement nile-error-message\n */\n@customElement('nile-error-message')\nexport class NileErrorMessage extends LitElement {\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n // Represents the error message to be displayed to the user.\n @property({ type: String })\n errorMessage: string = '';\n\n // Represents additional details about the error, like stack trace or other info.\n @property({ type: String })\n errorResponse: string;\n\n // Extended error information\n @property({ type: String })\n errorResponseLong: string;\n\n @property({ type: Boolean })\n isExpanded: boolean = false;\n\n @property({ type: String }) maxWidth: string;\n\n @property({ type: String }) maxHeight: string;\n\n @property({ type: String }) maxDialogHeight: string;\n\n // The maximum length before truncation.\n private readonly MAX_LENGTH: number = 100;\n\n /**\n * Get a truncated version of the errorResponse if it's too long.\n * @returns {string}\n */\n getTruncatedResponse(): string {\n if (this.errorResponse.length > this.MAX_LENGTH) {\n return `${this.errorResponse.substring(0, this.MAX_LENGTH)}...`;\n }\n return this.errorResponse;\n }\n\n updated(changedProperties: Map<string, any>) {\n if (changedProperties.has('maxWidth')) {\n this.style.setProperty('--nile-error-max-width', this.maxWidth);\n }\n if (changedProperties.has('maxHeight')) {\n this.style.setProperty('--nile-error-max-height', this.maxHeight);\n }\n if (changedProperties.has('maxDialogHeight')) {\n this.style.setProperty('--nile-error-max-dialog-height', this.maxDialogHeight);\n }\n }\n\n /**\n * Toggle the expanded state of the error response.\n */\n toggleExpanded() {\n this.isExpanded = !this.isExpanded;\n }\n\n public render(): TemplateResult {\n const iconName = this.isExpanded ? 'arrowup' : 'arrowdown';\n\n return html`\n <div class=\"nile-error-message\" part=\"base\">\n <nile-icon\n name=\"info2\"\n size=\"14\"\n class=\"nile-error-message__icon\"\n part=\"icon\"\n color=\"var(--nile-colors-red-700)\"\n ></nile-icon>\n <span class=\"nile-error-message__error\">${this.errorMessage}</span>\n\n\n ${this.errorResponse\n ? html`\n <div class=\"nile-error-message__response\">\n ${this.errorResponse}\n ${this.errorResponseLong\n ? html`\n <span\n class=\"nile-error-message__more-button\"\n @click=${this.toggleExpanded}\n >${this.isExpanded ? 'View Less' : 'View More'}\n <nile-icon color=\"var(--nile-colors-primary-600)\" part=\"icon\" size=\"14\" name=\"${iconName}\"></nile-icon>\n </span\n > `:``}\n </div>\n `\n : ``}\n\n <div\n class=\"nile-error-message__response-expanded ${this.isExpanded\n ? 'expanded'\n : 'collapsed'}\"\n >\n ${this.errorResponseLong}\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-error-message': NileErrorMessage;\n }\n}\n"]}
1
+ {"version":3,"file":"nile-error-message.js","sourceRoot":"","sources":["../../../src/nile-error-message/nile-error-message.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,UAAU,EACV,IAAI,GAGL,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD;;;GAGG;AAEI,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,UAAU;IAAzC;;QAKL,4DAA4D;QAE5D,iBAAY,GAAW,EAAE,CAAC;QAW1B,eAAU,GAAY,KAAK,CAAC;QAE5B,wCAAwC;QACvB,eAAU,GAAW,GAAG,CAAC;IA8D5C,CAAC;IAlFQ,MAAM,KAAK,MAAM;QACtB,OAAO,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAoBD;;;OAGG;IACH,oBAAoB;QAClB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAChD,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAClE,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;IACrC,CAAC;IAEM,MAAM;QACX,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;QAE3D,OAAO,IAAI,CAAA;;;;;;;;;kDASmC,IAAI,CAAC,YAAY;;;UAGzD,IAAI,CAAC,aAAa;YACpB,CAAC,CAAC,IAAI,CAAA;;cAEA,IAAI,CAAC,aAAa;cAClB,IAAI,CAAC,iBAAiB;gBACpB,CAAC,CAAC,IAAI,CAAA;;;uBAGC,IAAI,CAAC,cAAc;iBACzB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW;8FACkC,QAAQ;;eAEvF,CAAA,CAAC,CAAA,EAAE;;aAEL;YACL,CAAC,CAAC,EAAE;;;yDAG6C,IAAI,CAAC,UAAU;YAC5D,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,WAAW;;YAEb,IAAI,CAAC,iBAAiB;;;KAG7B,CAAC;IACJ,CAAC;CACF,CAAA;AA5EC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sDACD;AAI1B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uDACL;AAItB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2DACD;AAG1B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;oDACA;AAlBjB,gBAAgB;IAD5B,aAAa,CAAC,oBAAoB,CAAC;GACvB,gBAAgB,CAmF5B","sourcesContent":["import {\n LitElement,\n html,\n CSSResultArray,\n TemplateResult,\n} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-error-message.css';\n\n/**\n * A custom error message component that displays error information to the user.\n * @customElement nile-error-message\n */\n@customElement('nile-error-message')\nexport class NileErrorMessage extends LitElement {\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n // Represents the error message to be displayed to the user.\n @property({ type: String })\n errorMessage: string = '';\n\n // Represents additional details about the error, like stack trace or other info.\n @property({ type: String })\n errorResponse: string;\n\n // Extended error information\n @property({ type: String })\n errorResponseLong: string;\n\n @property({ type: Boolean })\n isExpanded: boolean = false;\n\n // The maximum length before truncation.\n private readonly MAX_LENGTH: number = 100;\n\n /**\n * Get a truncated version of the errorResponse if it's too long.\n * @returns {string}\n */\n getTruncatedResponse(): string {\n if (this.errorResponse.length > this.MAX_LENGTH) {\n return `${this.errorResponse.substring(0, this.MAX_LENGTH)}...`;\n }\n return this.errorResponse;\n }\n\n /**\n * Toggle the expanded state of the error response.\n */\n toggleExpanded() {\n this.isExpanded = !this.isExpanded;\n }\n\n public render(): TemplateResult {\n const iconName = this.isExpanded ? 'arrowup' : 'arrowdown';\n\n return html`\n <div class=\"nile-error-message\" part=\"base\">\n <nile-icon\n name=\"info2\"\n size=\"14\"\n class=\"nile-error-message__icon\"\n part=\"icon\"\n color=\"var(--nile-colors-red-700)\"\n ></nile-icon>\n <span class=\"nile-error-message__error\">${this.errorMessage}</span>\n\n\n ${this.errorResponse\n ? html`\n <div class=\"nile-error-message__response\">\n ${this.errorResponse}\n ${this.errorResponseLong\n ? html`\n <span\n class=\"nile-error-message__more-button\"\n @click=${this.toggleExpanded}\n >${this.isExpanded ? 'View Less' : 'View More'}\n <nile-icon color=\"var(--nile-colors-primary-600)\" part=\"icon\" size=\"14\" name=\"${iconName}\"></nile-icon>\n </span\n > `:``}\n </div>\n `\n : ``}\n\n <div\n class=\"nile-error-message__response-expanded ${this.isExpanded\n ? 'expanded'\n : 'collapsed'}\"\n >\n ${this.errorResponseLong}\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-error-message': NileErrorMessage;\n }\n}\n"]}
@@ -10,7 +10,7 @@ import { css } from 'lit';
10
10
  */
11
11
  export const styles = css `
12
12
  :host {
13
- --indication-color: var(--nile-colors-red-700);
13
+ --indication-color: var(--nile-colors-red-500);
14
14
  }
15
15
 
16
16
  .nile-error-notification {
@@ -1 +1 @@
1
- {"version":3,"file":"nile-error-notification.css.js","sourceRoot":"","sources":["../../../src/nile-error-notification/nile-error-notification.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;CAyBxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","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 { css } from 'lit';\n\n/**\n * ErrorNotification CSS\n */\nexport const styles = css`\n :host {\n --indication-color: var(--nile-colors-red-700);\n }\n\n .nile-error-notification {\n font-family: var(--nile-font-family-serif);\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: 12px;\n letter-spacing: 0.2px;\n border: 1px solid var(--indication-color);\n border-left: 6px solid var(--indication-color);\n border-radius: 4px;\n padding: 8px;\n background: var(--nile-colors-neutral-100);\n color: var(--indication-color);\n box-sizing: border-box;\n }\n\n .nile-error-notification__icon {\n vertical-align: middle;\n margin-right: 4px;\n }\n`;\n\nexport default [styles];\n"]}
1
+ {"version":3,"file":"nile-error-notification.css.js","sourceRoot":"","sources":["../../../src/nile-error-notification/nile-error-notification.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;CAyBxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","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 { css } from 'lit';\n\n/**\n * ErrorNotification CSS\n */\nexport const styles = css`\n :host {\n --indication-color: var(--nile-colors-red-500);\n }\n\n .nile-error-notification {\n font-family: var(--nile-font-family-serif);\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: 12px;\n letter-spacing: 0.2px;\n border: 1px solid var(--indication-color);\n border-left: 6px solid var(--indication-color);\n border-radius: 4px;\n padding: 8px;\n background: var(--nile-colors-neutral-100);\n color: var(--indication-color);\n box-sizing: border-box;\n }\n\n .nile-error-notification__icon {\n vertical-align: middle;\n margin-right: 4px;\n }\n`;\n\nexport default [styles];\n"]}
@@ -14,7 +14,6 @@ export default css `
14
14
  display: flex;
15
15
  height: 6px;
16
16
  justify-content: space-between;
17
- display: inline-block;
18
17
  }
19
18
 
20
19
  .nile-progress-bar__progress-bar li {
@@ -1 +1 @@
1
- {"version":3,"file":"nile-progress-bar.css.js","sourceRoot":"","sources":["../../../src/nile-progress-bar/nile-progress-bar.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsDjB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport default css`\n .nile-progress-bar__container {\n width: 100%;\n margin: 0 auto;\n }\n\n .nile-progress-bar__progress-bar {\n width: 100%;\n counter-reset: step;\n padding: 0;\n margin: 0 auto;\n list-style: none;\n display: flex;\n height: 6px;\n justify-content: space-between;\n display: inline-block;\n }\n\n .nile-progress-bar__progress-bar li {\n position: relative;\n width: 100%;\n height: 6px;\n background-color: var(--nile-progress-bar-track-color-stroke);\n transition: stroke-dashoffset 0.8s ease-in-out;\n border-radius: 4px; \n overflow: hidden;\n }\n\n \n\n .nile-progress-bar__progress-bar li.changeColor::after {\n background-color: var(--nile-progress-bar-progress-color-stroke);\n }\n\n .nile-progress-bar__progress-bar li span {\n position: absolute;\n top: 0;\n left: 0;\n background-color: var(--nile-progress-bar-progress-color-stroke);\n height: 100%;\n transition: all 1s linear;\n border-radius: 4px; \n }\n\n .nile-progress-bar__progress-bar.lg li span {\n border-radius: 4px;\n }\n\n .nile-progress-bar__reset {\n background-color: var(--nile-progress-bar-track-color-stroke);\n position: absolute;\n z-index: 1;\n border-radius: 4px; \n }\n`;\n"]}
1
+ {"version":3,"file":"nile-progress-bar.css.js","sourceRoot":"","sources":["../../../src/nile-progress-bar/nile-progress-bar.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDjB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport default css`\n .nile-progress-bar__container {\n width: 100%;\n margin: 0 auto;\n }\n\n .nile-progress-bar__progress-bar {\n width: 100%;\n counter-reset: step;\n padding: 0;\n margin: 0 auto;\n list-style: none;\n display: flex;\n height: 6px;\n justify-content: space-between;\n }\n\n .nile-progress-bar__progress-bar li {\n position: relative;\n width: 100%;\n height: 6px;\n background-color: var(--nile-progress-bar-track-color-stroke);\n transition: stroke-dashoffset 0.8s ease-in-out;\n border-radius: 4px; \n overflow: hidden;\n }\n\n \n\n .nile-progress-bar__progress-bar li.changeColor::after {\n background-color: var(--nile-progress-bar-progress-color-stroke);\n }\n\n .nile-progress-bar__progress-bar li span {\n position: absolute;\n top: 0;\n left: 0;\n background-color: var(--nile-progress-bar-progress-color-stroke);\n height: 100%;\n transition: all 1s linear;\n border-radius: 4px; \n }\n\n .nile-progress-bar__progress-bar.lg li span {\n border-radius: 4px;\n }\n\n .nile-progress-bar__reset {\n background-color: var(--nile-progress-bar-track-color-stroke);\n position: absolute;\n z-index: 1;\n border-radius: 4px; \n }\n`;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"nile-table.js","sourceRoot":"","sources":["../../../src/nile-table/nile-table.ts"],"names":[],"mappings":"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","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, CSSResultArray, TemplateResult, PropertyValues} from 'lit';\nimport { customElement, property, query, state} from 'lit/decorators.js';\nimport {styles} from './nile-table.css';\nimport NileElement from '../internal/nile-element';\nimport { NileTableBody } from '../nile-table-body';\nimport { NileTableCellItem } from '../nile-table-cell-item';\nimport { NileTableHeaderItem } from '../nile-table-header-item';\n\n\n/**\n * Nile table component.\n *\n * @tag nile-table\n *\n */\n@customElement('nile-table')\nexport class NileTable extends NileElement {\n @query('slot') defaultSlot: HTMLSlotElement;\n\tprivate rows:Array<NileTableBody>=[];\n\tprivate primaryRowWidths:Array<number>=[]\n\tprivate resizeObserver:ResizeObserver ;\n\tprivate debounceTimeout:any\n\n\n\t/**\n\t * The styles for nile-table\n\t * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n\t */\n\tpublic static get styles(): CSSResultArray {\n\t\treturn [styles];\n\t}\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tthis.addEventListener('nile-body-load',this.handleRows)\n\t}\n\n\tprotected firstUpdated(_changedProperties: PropertyValues): void {\n\t\tthis.updateComplete.then(()=>{\n\t\t\tthis.handleResizeObserver();\n\t\t})\n\t}\n\n\n\t/* #endregion */\n\n\t/* #region Methods */\n\n\t/**\n\t * Render method\n\t * @slot This is a slot test\n\t */\n\tpublic render(): TemplateResult {\n\t\treturn html`\n\t\t\t<slot @slotchange=\"${this.repaintTable}\"></slot>\n\t\t\t`;\n\t}\n\n\trepaintTable(){\n\t\tthis.realignStructure();\n\t\tthis.handleBodyCssUpdate();\n\t}\n\n\thandleRows(e:CustomEvent){\n\t\tthis.rows=[...this.rows,e.detail.comp]\n\t}\n\n\thandleBodyCssUpdate(){\n if (this.rows.length<2) return;\n const tableBodies = this.rows;\n\t\tconst firstEl=tableBodies[0].shadowRoot?.querySelector<HTMLDivElement>('div.base');\n\t\tif(firstEl) {\n\t\t\tfirstEl.style.borderTopRightRadius=\"var(--nile-radius-radius-xl)\";\n\t\t\tfirstEl.style.borderTopLeftRadius = 'var(--nile-radius-radius-xl)';\n\t\t\tfirstEl.style.borderBottomRightRadius=\"0px\";\n\t\t\tfirstEl.style.borderBottomLeftRadius = '0px';\n\t\t\tfirstEl.style.borderBottom = 'none';\n\t\t}\n\t\ttableBodies.forEach((tb,i)=>{\n\t\t\tif(i>0 && i<tableBodies.length-1){\n\t\t\t\tconst el=tb.shadowRoot?.querySelector<HTMLDivElement>('div.base');\n\t\t\t\tif(el) {\n\t\t\t\t\tel.style.borderTopRightRadius=\"0px\";\n\t\t\t\t\tel.style.borderTopLeftRadius = \"0px\";\n\t\t\t\t\tel.style.borderBottomRightRadius=\"0px\";\n\t\t\t\t\tel.style.borderBottomLeftRadius = \"0px\";\n\t\t\t\t\tel.style.borderBottom = 'none';\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\tconst lastEl=tableBodies[tableBodies.length - 1].shadowRoot?.querySelector<HTMLDivElement>('div.base')\n\t\tif(lastEl){\n\t\t\tlastEl.style.borderTopRightRadius=\"0px\";\n\t\t\tlastEl.style.borderTopLeftRadius = '0px';\n\t\t\tlastEl.style.borderBottomRightRadius=\"var(--nile-radius-radius-xl)\";\n\t\t\tlastEl.style.borderBottomLeftRadius = 'var(--nile-radius-radius-xl)';\n\t\t}\n\t}\n\n\tgetPrimaryColumnWidths(){\n\t\tconst primaryTb=this.rows.find(tb=>tb.type=='primary')!;\n\t\tconst widthArray=this.getTableCellFetchQuery(primaryTb).map((e:LitElement)=>e.clientWidth) as Array<number>\n\t\treturn widthArray;\n\t}\n\t\n\trealignStructure(){\n if (this.rows.length<2) return;\n\t\tconst primaryRowWidths=this.getPrimaryColumnWidths();\n\t\tconst secondaryRows=this.rows.filter(tb=>tb.type!='primary');\n\t\tsecondaryRows.forEach((row)=>{\n\t\t\tlet elements=this.getTableCellFetchQuery(row)\n\t\t\telements?.forEach((el:NileTableCellItem|NileTableHeaderItem,ind)=>{\n\t\t\t\tel.style.setProperty('--cell-width',primaryRowWidths.at(ind)+'px')\n\t\t\t})\n\t\t})\n\t}\n\n\tgetTableCellFetchQuery(row:NileTableBody):Array<Element>{\n\t\treturn row?.shadowRoot?.\n\t\t\tquerySelector<HTMLSlotElement>('slot:not([name])')?.\n\t\t\tassignedElements()[0]\n\t\t\t.shadowRoot?.querySelector<HTMLSlotElement>('slot')?.\n\t\t\tassignedElements()!\n\t}\n\n\thandleResizeObserver(){\n\t\tconst onResize = (entries:ResizeObserverEntry[]): void=> {\n\t\t\tfor (let entry of entries) {\n\t\t\t\tif(this.debounceTimeout){\n\t\t\t\t\tclearTimeout(this.debounceTimeout);\n\t\t\t\t}\n\t\t\t\tthis.debounceTimeout=setTimeout(() => {\n\t\t\t\t\tthis.realignStructure();\n\t\t\t\t\tthis.debounceTimeout=null;\n\t\t\t\t}, 50);\n\t\t\t}\n\t\t};\n\t\tthis.resizeObserver=new ResizeObserver(onResize)\n\t\tthis.resizeObserver.observe(this);\n\t}\n\n\tdisconnectedCallback(): void {\n\t\tthis.resizeObserver.disconnect()\n\t\tsuper.disconnectedCallback()\n\t}\n\t/* #endregion */\n}\n\nexport default NileTable;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-table': NileTable;\n }\n}"]}
1
+ {"version":3,"file":"nile-table.js","sourceRoot":"","sources":["../../../src/nile-table/nile-table.ts"],"names":[],"mappings":"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","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, CSSResultArray, TemplateResult, PropertyValues} from 'lit';\nimport { customElement, property, query, state} from 'lit/decorators.js';\nimport {styles} from './nile-table.css';\nimport NileElement from '../internal/nile-element';\nimport { NileTableBody } from '../nile-table-body';\nimport { NileTableCellItem } from '../nile-table-cell-item';\nimport { NileTableHeaderItem } from '../nile-table-header-item';\n\n\n/**\n * Nile table component.\n *\n * @tag nile-table\n *\n */\n@customElement('nile-table')\nexport class NileTable extends NileElement {\n @query('slot') defaultSlot: HTMLSlotElement;\n\tprivate rows:Array<NileTableBody>=[];\n\tprivate primaryRowWidths:Array<number>=[]\n\tprivate resizeObserver:ResizeObserver ;\n\tprivate debounceTimeout:any\n\n\n\t/**\n\t * The styles for nile-table\n\t * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n\t */\n\tpublic static get styles(): CSSResultArray {\n\t\treturn [styles];\n\t}\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tthis.addEventListener('nile-body-load',this.handleRows)\n\t}\n\n\tprotected firstUpdated(_changedProperties: PropertyValues): void {\n\t\tthis.updateComplete.then(()=>{\n\t\t\tthis.handleResizeObserver();\n\t\t})\n\t}\n\n\n\t/* #endregion */\n\n\t/* #region Methods */\n\n\t/**\n\t * Render method\n\t * @slot This is a slot test\n\t */\n\tpublic render(): TemplateResult {\n\t\treturn html`\n\t\t\t<slot @slotchange=\"${this.repaintTable}\"></slot>\n\t\t\t`;\n\t}\n\n\trepaintTable(){\n\t\tthis.realignStructure();\n\t\tthis.handleBodyCssUpdate();\n\t}\n\n\thandleRows(e:CustomEvent){\n\t\tthis.rows=[...this.rows,e.detail.comp]\n\t}\n\n\thandleBodyCssUpdate(){\n if (this.rows.length<2) return;\n const tableBodies = this.rows;\n\t\tconst firstEl=tableBodies[0].shadowRoot?.querySelector<HTMLDivElement>('div.base')\n\t\tif(firstEl) {\n\t\t\tfirstEl.style.borderTopRightRadius=\"var(--nile-radius-radius-xl)\";\n\t\t\tfirstEl.style.borderTopLeftRadius = 'var(--nile-radius-radius-xl)';\n\t\t\tfirstEl.style.borderBottomRightRadius=\"0px\";\n\t\t\tfirstEl.style.borderBottomLeftRadius = '0px';\n\t\t\tfirstEl.style.borderBottom = 'none';\n\t\t}\n\t\ttableBodies.forEach((tb,i)=>{\n\t\t\tif(i>0 && i<tableBodies.length-1){\n\t\t\t\tconst el=tb.shadowRoot?.querySelector<HTMLDivElement>('div.base')\n\t\t\t\tif(el) {\n\t\t\t\t\tel.style.borderTopRightRadius=\"0px\";\n\t\t\t\t\tel.style.borderTopLeftRadius = \"0px\";\n\t\t\t\t\tel.style.borderBottomRightRadius=\"0px\";\n\t\t\t\t\tel.style.borderBottomLeftRadius = \"0px\";\n\t\t\t\t\tel.style.borderBottom = 'none';\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\tconst lastEl=tableBodies[tableBodies.length - 1].shadowRoot?.querySelector<HTMLDivElement>('div.base')\n\t\tif(lastEl){\n\t\t\tlastEl.style.borderTopRightRadius=\"0px\";\n\t\t\tlastEl.style.borderTopLeftRadius = '0px';\n\t\t\tlastEl.style.borderBottomRightRadius=\"var(--nile-radius-radius-xl)\";\n\t\t\tlastEl.style.borderBottomLeftRadius = 'var(--nile-radius-radius-xl)';\n\t\t}\n\t}\n\n\tgetPrimaryColumnWidths(){\n\t\tconst primaryTb=this.rows.find(tb=>tb.type=='primary')!;\n\t\tconst widthArray=this.getTableCellFetchQuery(primaryTb).map((e:LitElement)=>e.clientWidth) as Array<number>\n\t\treturn widthArray;\n\t}\n\t\n\trealignStructure(){\n if (this.rows.length<2) return;\n\t\tconst primaryRowWidths=this.getPrimaryColumnWidths();\n\t\tconst secondaryRows=this.rows.filter(tb=>tb.type!='primary');\n\t\tsecondaryRows.forEach((row)=>{\n\t\t\tlet elements=this.getTableCellFetchQuery(row)\n\t\t\telements?.forEach((el:NileTableCellItem|NileTableHeaderItem,ind)=>{\n\t\t\t\tel.style.setProperty('--cell-width',primaryRowWidths.at(ind)+'px')\n\t\t\t})\n\t\t})\n\t}\n\n\tgetTableCellFetchQuery(row:NileTableBody):Array<Element>{\n\t\treturn row?.shadowRoot?.\n\t\t\tquerySelector<HTMLSlotElement>('slot:not([name])')?.\n\t\t\tassignedElements()[0]\n\t\t\t.shadowRoot?.querySelector<HTMLSlotElement>('slot')?.\n\t\t\tassignedElements()!\n\t}\n\n\thandleResizeObserver(){\n\t\tconst onResize = (entries:ResizeObserverEntry[]): void=> {\n\t\t\tfor (let entry of entries) {\n\t\t\t\tif(this.debounceTimeout){\n\t\t\t\t\tclearTimeout(this.debounceTimeout);\n\t\t\t\t}\n\t\t\t\tthis.debounceTimeout=setTimeout(() => {\n\t\t\t\t\tthis.realignStructure();\n\t\t\t\t\tthis.debounceTimeout=null;\n\t\t\t\t}, 50);\n\t\t\t}\n\t\t};\n\t\tthis.resizeObserver=new ResizeObserver(onResize)\n\t\tthis.resizeObserver.observe(this);\n\t}\n\n\tdisconnectedCallback(): void {\n\t\tthis.resizeObserver.disconnect()\n\t\tsuper.disconnectedCallback()\n\t}\n\t/* #endregion */\n}\n\nexport default NileTable;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-table': NileTable;\n }\n}"]}