@aquera/nile-elements 2.0.5 → 2.0.6

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 (199) hide show
  1. package/README.md +4 -0
  2. package/demo/nxtgen-classes.css +15 -12
  3. package/demo/nxtgen-dark.css +24 -24
  4. package/demo/nxtgen-properties.css +27 -24
  5. package/demo/nxtgen-utilities.css +39 -36
  6. package/demo/nxtgen.css +15 -12
  7. package/demo/utilities.css +3 -0
  8. package/demo/variables.css +3 -0
  9. package/dist/index.cjs.js +1 -1
  10. package/dist/index.esm.js +1 -1
  11. package/dist/index.js +1353 -340
  12. package/dist/internal/glyph.cjs.js +1 -1
  13. package/dist/internal/glyph.cjs.js.map +1 -1
  14. package/dist/internal/glyph.esm.js +6 -5
  15. package/dist/nile-app-shell/index.cjs.js +2 -0
  16. package/dist/nile-app-shell/index.cjs.js.map +1 -0
  17. package/dist/nile-app-shell/index.esm.js +1 -0
  18. package/dist/nile-app-shell/nile-app-shell.cjs.js +2 -0
  19. package/dist/nile-app-shell/nile-app-shell.cjs.js.map +1 -0
  20. package/dist/nile-app-shell/nile-app-shell.css.cjs.js +2 -0
  21. package/dist/nile-app-shell/nile-app-shell.css.cjs.js.map +1 -0
  22. package/dist/nile-app-shell/nile-app-shell.css.esm.js +554 -0
  23. package/dist/nile-app-shell/nile-app-shell.esm.js +155 -0
  24. package/dist/nile-app-shell/shell-controller.cjs.js +2 -0
  25. package/dist/nile-app-shell/shell-controller.cjs.js.map +1 -0
  26. package/dist/nile-app-shell/shell-controller.esm.js +1 -0
  27. package/dist/nile-app-shell-main/index.cjs.js +2 -0
  28. package/dist/nile-app-shell-main/index.cjs.js.map +1 -0
  29. package/dist/nile-app-shell-main/index.esm.js +1 -0
  30. package/dist/nile-app-shell-main/nile-app-shell-main.cjs.js +2 -0
  31. package/dist/nile-app-shell-main/nile-app-shell-main.cjs.js.map +1 -0
  32. package/dist/nile-app-shell-main/nile-app-shell-main.css.cjs.js +2 -0
  33. package/dist/nile-app-shell-main/nile-app-shell-main.css.cjs.js.map +1 -0
  34. package/dist/nile-app-shell-main/nile-app-shell-main.css.esm.js +18 -0
  35. package/dist/nile-app-shell-main/nile-app-shell-main.esm.js +1 -0
  36. package/dist/nile-app-shell-nav-toggle/index.cjs.js +2 -0
  37. package/dist/nile-app-shell-nav-toggle/index.cjs.js.map +1 -0
  38. package/dist/nile-app-shell-nav-toggle/index.esm.js +1 -0
  39. package/dist/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.cjs.js +2 -0
  40. package/dist/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.cjs.js.map +1 -0
  41. package/dist/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.css.cjs.js +2 -0
  42. package/dist/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.css.cjs.js.map +1 -0
  43. package/dist/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.css.esm.js +29 -0
  44. package/dist/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.esm.js +16 -0
  45. package/dist/nile-app-shell-panel/index.cjs.js +2 -0
  46. package/dist/nile-app-shell-panel/index.cjs.js.map +1 -0
  47. package/dist/nile-app-shell-panel/index.esm.js +1 -0
  48. package/dist/nile-app-shell-panel/nile-app-shell-panel.cjs.js +2 -0
  49. package/dist/nile-app-shell-panel/nile-app-shell-panel.cjs.js.map +1 -0
  50. package/dist/nile-app-shell-panel/nile-app-shell-panel.css.cjs.js +2 -0
  51. package/dist/nile-app-shell-panel/nile-app-shell-panel.css.cjs.js.map +1 -0
  52. package/dist/nile-app-shell-panel/nile-app-shell-panel.css.esm.js +103 -0
  53. package/dist/nile-app-shell-panel/nile-app-shell-panel.esm.js +33 -0
  54. package/dist/nile-app-shell-side-nav/index.cjs.js +2 -0
  55. package/dist/nile-app-shell-side-nav/index.cjs.js.map +1 -0
  56. package/dist/nile-app-shell-side-nav/index.esm.js +1 -0
  57. package/dist/nile-app-shell-side-nav/nile-app-shell-side-nav.cjs.js +2 -0
  58. package/dist/nile-app-shell-side-nav/nile-app-shell-side-nav.cjs.js.map +1 -0
  59. package/dist/nile-app-shell-side-nav/nile-app-shell-side-nav.css.cjs.js +2 -0
  60. package/dist/nile-app-shell-side-nav/nile-app-shell-side-nav.css.cjs.js.map +1 -0
  61. package/dist/nile-app-shell-side-nav/nile-app-shell-side-nav.css.esm.js +55 -0
  62. package/dist/nile-app-shell-side-nav/nile-app-shell-side-nav.esm.js +5 -0
  63. package/dist/nile-floating-panel/nile-floating-panel.cjs.js +1 -1
  64. package/dist/nile-floating-panel/nile-floating-panel.cjs.js.map +1 -1
  65. package/dist/nile-floating-panel/nile-floating-panel.css.cjs.js +1 -1
  66. package/dist/nile-floating-panel/nile-floating-panel.css.cjs.js.map +1 -1
  67. package/dist/nile-floating-panel/nile-floating-panel.css.esm.js +46 -8
  68. package/dist/nile-floating-panel/nile-floating-panel.esm.js +1 -1
  69. package/dist/nile-popover/nile-popover.cjs.js +1 -1
  70. package/dist/nile-popover/nile-popover.cjs.js.map +1 -1
  71. package/dist/nile-popover/nile-popover.css.cjs.js +1 -1
  72. package/dist/nile-popover/nile-popover.css.cjs.js.map +1 -1
  73. package/dist/nile-popover/nile-popover.css.esm.js +32 -17
  74. package/dist/nile-popover/nile-popover.esm.js +1 -1
  75. package/dist/nile-wysiwyg-editor/index.cjs.js +1 -1
  76. package/dist/nile-wysiwyg-editor/index.esm.js +1 -1
  77. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.cjs.js +1 -1
  78. package/dist/nile-wysiwyg-editor/nile-wysiwyg-editor.esm.js +1 -1
  79. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.cjs.js +1 -1
  80. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/index.esm.js +1 -1
  81. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.cjs.js +1 -1
  82. package/dist/nile-wysiwyg-editor/nile-wysiwyg-toolbar/nile-wysiwyg-toolbar.esm.js +1 -1
  83. package/dist/nile-wysiwyg-editor/ui/bubble-menu.cjs.js +1 -1
  84. package/dist/nile-wysiwyg-editor/ui/bubble-menu.cjs.js.map +1 -1
  85. package/dist/nile-wysiwyg-editor/ui/bubble-menu.esm.js +1 -1
  86. package/dist/nile-wysiwyg-editor/ui/embed-menu.cjs.js +1 -1
  87. package/dist/nile-wysiwyg-editor/ui/embed-menu.cjs.js.map +1 -1
  88. package/dist/nile-wysiwyg-editor/ui/embed-menu.esm.js +2 -2
  89. package/dist/nile-wysiwyg-editor/ui/image-menu.cjs.js +1 -1
  90. package/dist/nile-wysiwyg-editor/ui/image-menu.cjs.js.map +1 -1
  91. package/dist/nile-wysiwyg-editor/ui/image-menu.esm.js +4 -4
  92. package/dist/nile-wysiwyg-editor/ui/table-menu.cjs.js +1 -1
  93. package/dist/nile-wysiwyg-editor/ui/table-menu.cjs.js.map +1 -1
  94. package/dist/nile-wysiwyg-editor/ui/table-menu.esm.js +1 -1
  95. package/dist/src/index.d.ts +7 -2
  96. package/dist/src/index.js +6 -1
  97. package/dist/src/index.js.map +1 -1
  98. package/dist/src/internal/glyph.d.ts +6 -1
  99. package/dist/src/internal/glyph.js +8 -1
  100. package/dist/src/internal/glyph.js.map +1 -1
  101. package/dist/src/nile-app-shell/index.d.ts +7 -0
  102. package/dist/src/nile-app-shell/index.js +8 -0
  103. package/dist/src/nile-app-shell/index.js.map +1 -0
  104. package/dist/src/nile-app-shell/nile-app-shell-regions.test.d.ts +4 -0
  105. package/dist/src/nile-app-shell/nile-app-shell-regions.test.js +177 -0
  106. package/dist/src/nile-app-shell/nile-app-shell-regions.test.js.map +1 -0
  107. package/dist/src/nile-app-shell/nile-app-shell.css.d.ts +18 -0
  108. package/dist/src/nile-app-shell/nile-app-shell.css.js +572 -0
  109. package/dist/src/nile-app-shell/nile-app-shell.css.js.map +1 -0
  110. package/dist/src/nile-app-shell/nile-app-shell.d.ts +292 -0
  111. package/dist/src/nile-app-shell/nile-app-shell.js +796 -0
  112. package/dist/src/nile-app-shell/nile-app-shell.js.map +1 -0
  113. package/dist/src/nile-app-shell/nile-app-shell.test.d.ts +3 -0
  114. package/dist/src/nile-app-shell/nile-app-shell.test.js +454 -0
  115. package/dist/src/nile-app-shell/nile-app-shell.test.js.map +1 -0
  116. package/dist/src/nile-app-shell/shell-controller.d.ts +34 -0
  117. package/dist/src/nile-app-shell/shell-controller.js +80 -0
  118. package/dist/src/nile-app-shell/shell-controller.js.map +1 -0
  119. package/dist/src/nile-app-shell-main/index.d.ts +7 -0
  120. package/dist/src/nile-app-shell-main/index.js +8 -0
  121. package/dist/src/nile-app-shell-main/index.js.map +1 -0
  122. package/dist/src/nile-app-shell-main/nile-app-shell-main.css.d.ts +9 -0
  123. package/dist/src/nile-app-shell-main/nile-app-shell-main.css.js +27 -0
  124. package/dist/src/nile-app-shell-main/nile-app-shell-main.css.js.map +1 -0
  125. package/dist/src/nile-app-shell-main/nile-app-shell-main.d.ts +38 -0
  126. package/dist/src/nile-app-shell-main/nile-app-shell-main.js +51 -0
  127. package/dist/src/nile-app-shell-main/nile-app-shell-main.js.map +1 -0
  128. package/dist/src/nile-app-shell-nav-toggle/index.d.ts +7 -0
  129. package/dist/src/nile-app-shell-nav-toggle/index.js +8 -0
  130. package/dist/src/nile-app-shell-nav-toggle/index.js.map +1 -0
  131. package/dist/src/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.css.d.ts +13 -0
  132. package/dist/src/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.css.js +42 -0
  133. package/dist/src/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.css.js.map +1 -0
  134. package/dist/src/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.d.ts +56 -0
  135. package/dist/src/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.js +126 -0
  136. package/dist/src/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.js.map +1 -0
  137. package/dist/src/nile-app-shell-panel/index.d.ts +7 -0
  138. package/dist/src/nile-app-shell-panel/index.js +8 -0
  139. package/dist/src/nile-app-shell-panel/index.js.map +1 -0
  140. package/dist/src/nile-app-shell-panel/nile-app-shell-panel.css.d.ts +9 -0
  141. package/dist/src/nile-app-shell-panel/nile-app-shell-panel.css.js +112 -0
  142. package/dist/src/nile-app-shell-panel/nile-app-shell-panel.css.js.map +1 -0
  143. package/dist/src/nile-app-shell-panel/nile-app-shell-panel.d.ts +73 -0
  144. package/dist/src/nile-app-shell-panel/nile-app-shell-panel.js +158 -0
  145. package/dist/src/nile-app-shell-panel/nile-app-shell-panel.js.map +1 -0
  146. package/dist/src/nile-app-shell-side-nav/index.d.ts +7 -0
  147. package/dist/src/nile-app-shell-side-nav/index.js +8 -0
  148. package/dist/src/nile-app-shell-side-nav/index.js.map +1 -0
  149. package/dist/src/nile-app-shell-side-nav/nile-app-shell-side-nav.css.d.ts +13 -0
  150. package/dist/src/nile-app-shell-side-nav/nile-app-shell-side-nav.css.js +68 -0
  151. package/dist/src/nile-app-shell-side-nav/nile-app-shell-side-nav.css.js.map +1 -0
  152. package/dist/src/nile-app-shell-side-nav/nile-app-shell-side-nav.d.ts +54 -0
  153. package/dist/src/nile-app-shell-side-nav/nile-app-shell-side-nav.js +83 -0
  154. package/dist/src/nile-app-shell-side-nav/nile-app-shell-side-nav.js.map +1 -0
  155. package/dist/src/nile-floating-panel/nile-floating-panel.css.js +46 -8
  156. package/dist/src/nile-floating-panel/nile-floating-panel.css.js.map +1 -1
  157. package/dist/src/nile-floating-panel/nile-floating-panel.js +13 -1
  158. package/dist/src/nile-floating-panel/nile-floating-panel.js.map +1 -1
  159. package/dist/src/nile-popover/nile-popover.css.js +30 -15
  160. package/dist/src/nile-popover/nile-popover.css.js.map +1 -1
  161. package/dist/src/nile-popover/nile-popover.js +1 -1
  162. package/dist/src/nile-popover/nile-popover.js.map +1 -1
  163. package/dist/src/nile-popover/nile-popover.test.js +1 -1
  164. package/dist/src/nile-popover/nile-popover.test.js.map +1 -1
  165. package/dist/src/version.d.ts +11 -1
  166. package/dist/src/version.js +51 -8
  167. package/dist/src/version.js.map +1 -1
  168. package/dist/tsconfig.tsbuildinfo +1 -1
  169. package/dist/version.cjs.js +1 -1
  170. package/dist/version.cjs.js.map +1 -1
  171. package/dist/version.esm.js +1 -1
  172. package/package.json +7 -2
  173. package/src/index.ts +16 -4
  174. package/src/internal/glyph.ts +12 -1
  175. package/src/nile-app-shell/index.ts +8 -0
  176. package/src/nile-app-shell/nile-app-shell-regions.test.ts +215 -0
  177. package/src/nile-app-shell/nile-app-shell.css.ts +574 -0
  178. package/src/nile-app-shell/nile-app-shell.test.ts +536 -0
  179. package/src/nile-app-shell/nile-app-shell.ts +838 -0
  180. package/src/nile-app-shell/shell-controller.ts +100 -0
  181. package/src/nile-app-shell-main/index.ts +8 -0
  182. package/src/nile-app-shell-main/nile-app-shell-main.css.ts +29 -0
  183. package/src/nile-app-shell-main/nile-app-shell-main.ts +52 -0
  184. package/src/nile-app-shell-nav-toggle/index.ts +8 -0
  185. package/src/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.css.ts +44 -0
  186. package/src/nile-app-shell-nav-toggle/nile-app-shell-nav-toggle.ts +138 -0
  187. package/src/nile-app-shell-panel/index.ts +8 -0
  188. package/src/nile-app-shell-panel/nile-app-shell-panel.css.ts +114 -0
  189. package/src/nile-app-shell-panel/nile-app-shell-panel.ts +161 -0
  190. package/src/nile-app-shell-side-nav/index.ts +8 -0
  191. package/src/nile-app-shell-side-nav/nile-app-shell-side-nav.css.ts +70 -0
  192. package/src/nile-app-shell-side-nav/nile-app-shell-side-nav.ts +86 -0
  193. package/src/nile-floating-panel/nile-floating-panel.css.ts +46 -8
  194. package/src/nile-floating-panel/nile-floating-panel.ts +19 -1
  195. package/src/nile-popover/nile-popover.css.ts +30 -15
  196. package/src/nile-popover/nile-popover.test.ts +1 -1
  197. package/src/nile-popover/nile-popover.ts +1 -1
  198. package/src/version.ts +55 -7
  199. package/vscode-html-custom-data.json +216 -5
@@ -1 +1 @@
1
- {"version":3,"file":"nile-floating-panel.cjs.js","sources":["../../../src/nile-floating-panel/nile-floating-panel.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2025\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 { CSSResultArray, PropertyValues } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-floating-panel.css';\nimport NileElement from '../internal/nile-element';\nimport tippy, {\n Instance,\n Props,\n roundArrow,\n followCursor as followCursorPlugin,\n} from 'tippy.js';\nimport {\n parseFollowCursor,\n parseDuration,\n} from '../nile-lite-tooltip/utils';\nimport { VisibilityManager } from '../utilities/visibility-manager.js';\n\n/**\n * Nile floating-panel component.\n *\n * A popover that supports rich content (title, body, actions).\n *\n * **Wrapper mode** (default): first child element is the trigger.\n * **For mode**: set `for=\"elementId\"` to attach to an external element.\n *\n * @tag nile-floating-panel\n *\n * @fires nile-init - Component initialized.\n * @fires nile-destroy - Component destroyed.\n * @fires nile-show - Panel opened.\n * @fires nile-hide - Panel closed.\n * @fires nile-after-show - Panel fully visible after animation.\n * @fires nile-after-hide - Panel fully hidden after animation.\n * @fires nile-toggle - Open/close transition (detail.open).\n * @fires nile-visibility-change - Hidden by scroll/tab change.\n */\n@customElement('nile-floating-panel')\nexport class NileFloatingPanel extends NileElement {\n private static _groups = new Map<string, Set<NileFloatingPanel>>();\n\n private static _reducedMotionQuery: MediaQueryList | null = null;\n\n private static get prefersReducedMotion(): boolean {\n if (!NileFloatingPanel._reducedMotionQuery) {\n NileFloatingPanel._reducedMotionQuery =\n window.matchMedia('(prefers-reduced-motion: reduce)');\n }\n return NileFloatingPanel._reducedMotionQuery.matches;\n }\n\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n protected createRenderRoot() {\n return this;\n }\n\n // ─── Tippy.js props ───\n\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'\n | 'auto'\n | 'auto-start'\n | 'auto-end' = 'bottom';\n\n @property({ type: String }) trigger: string = 'click';\n\n @property({ type: Number }) distance = 12;\n\n @property({ type: Number }) skidding = 0;\n\n @property({ type: String, reflect: true })\n arrow: 'round' | 'default' | 'none' = 'round';\n\n @property({ type: String, reflect: true }) animation: string = 'fade';\n\n @property({ type: String, reflect: true }) duration:\n | string\n | number\n | [number, number] = 200;\n\n @property({ type: String, reflect: true }) delay:\n | number\n | [number, number] = 0;\n\n @property({ type: Boolean, reflect: true }) interactive = true;\n\n @property({ type: Number, reflect: true }) interactiveBorder = 2;\n\n @property({ type: String, reflect: true }) maxWidth: string | number = 'none';\n\n @property({ type: Number, reflect: true }) zIndex = 9999;\n\n @property({ type: String, reflect: true })\n followCursor:\n | boolean\n | 'initial'\n | 'horizontal'\n | 'vertical'\n | 'true'\n | 'false' = false;\n\n @property({ type: Boolean, reflect: true }) hideOnClick:\n | boolean\n | 'toggle' = true;\n\n @property({ type: Boolean, reflect: true }) inertia = false;\n\n @property({ type: Boolean, reflect: true }) allowHTML = false;\n\n @property({ type: Boolean, reflect: true }) flip = true;\n\n // ─── Popover-like props ───\n\n @property({ type: String, attribute: 'for' }) for: string | null = null;\n\n @property({ type: Boolean, reflect: true }) open = false;\n\n @property({ type: Boolean, reflect: true }) preventOverlayClose = false;\n\n @property({ type: String, reflect: true }) title = '';\n\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n @property({ type: String, reflect: true }) width?: string;\n\n @property({ type: String, reflect: true }) height?: string;\n\n /** When set, only one panel in the same group can be open at a time. */\n @property({ type: String, reflect: true }) group: string | null = null;\n\n /** Close the panel when Escape is pressed. */\n @property({ type: Boolean, reflect: true }) closeOnEscape = true;\n\n /** Custom CSS class(es) added to the Tippy popper element, allowing per-instance styling from the host. */\n @property({ type: String, reflect: true, attribute: true}) panelClass: string = '';\n\n // ─── Visibility manager props ───\n\n @property({ type: Boolean, reflect: true }) enableVisibilityEffect = false;\n\n @property({ type: Boolean, reflect: true }) enableTabClose = false;\n\n // ─── Internal state ───\n\n private tippyInstance: Instance | null = null;\n private visibilityManager?: VisibilityManager;\n private panelContainer: HTMLElement | null = null;\n private anchorEl: HTMLElement | null = null;\n private _suppressOpenWatch = false;\n private _panelId = `nile-fp-${Math.random().toString(36).slice(2, 9)}`;\n private _boundEscHandler = this._handleEscapeKey.bind(this);\n private _pendingShowListener: (() => void) | null = null;\n private _pendingHideListener: (() => void) | null = null;\n\n // ─── Lifecycle ───\n\n protected firstUpdated(): void {\n this._buildDOM();\n this._attachTippy();\n this._joinGroup();\n\n this.visibilityManager = new VisibilityManager({\n host: this,\n target: this.anchorEl || null,\n enableVisibilityEffect: this.enableVisibilityEffect,\n enableTabClose: this.enableTabClose,\n isOpen: () => this.open,\n onAnchorOutOfView: () => {\n this._setOpen(false);\n this.tippyInstance?.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'anchor-out-of-view',\n });\n },\n onDocumentHidden: () => {\n this._setOpen(false);\n this.tippyInstance?.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'document-hidden',\n });\n },\n emit: (event, detail) => this.emit(`nile-${event}`, detail),\n });\n\n this.emit('nile-init');\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this._cleanupPendingShowListener();\n this._cleanupPendingHideListener();\n this.visibilityManager?.cleanup();\n this._leaveGroup();\n this._removeEscListener();\n this._destroyTippy();\n this.emit('nile-destroy');\n }\n\n updated(changed: PropertyValues): void {\n super.updated(changed);\n\n if (!this.panelContainer) return;\n\n if (changed.has('open') && !this._suppressOpenWatch) {\n if (this.open) {\n this.visibilityManager?.setup();\n queueMicrotask(() => this.tippyInstance?.show());\n } else {\n this.visibilityManager?.cleanup();\n this.tippyInstance?.hide();\n }\n }\n\n if (changed.has('group')) {\n this._leaveGroup(changed.get('group') as string | null);\n this._joinGroup();\n }\n\n const rebuildProps: string[] = [\n 'placement', 'trigger', 'distance', 'skidding', 'arrow',\n 'animation', 'duration', 'delay', 'interactive', 'interactiveBorder',\n 'maxWidth', 'zIndex', 'followCursor', 'hideOnClick', 'inertia',\n 'allowHTML', 'flip', 'preventOverlayClose', 'disabled', 'width', 'height',\n 'panelClass'\n ];\n\n if (rebuildProps.some(p => changed.has(p))) {\n this._attachTippy();\n }\n }\n\n // ─── Public API ───\n\n /** Programmatically shows the panel. Returns a promise that resolves after the show animation. */\n public show(): Promise<void> {\n this.open = true;\n return new Promise<void>(resolve => {\n this._cleanupPendingShowListener();\n const handler = () => {\n this._pendingShowListener = null;\n resolve();\n };\n this._pendingShowListener = handler;\n this.addEventListener('nile-after-show', handler, { once: true });\n });\n }\n\n /** Programmatically hides the panel. Returns a promise that resolves after the hide animation. */\n public hide(): Promise<void> {\n this.open = false;\n return new Promise<void>(resolve => {\n this._cleanupPendingHideListener();\n const handler = () => {\n this._pendingHideListener = null;\n resolve();\n };\n this._pendingHideListener = handler;\n this.addEventListener('nile-after-hide', handler, { once: true });\n });\n }\n\n private _cleanupPendingShowListener(): void {\n if (this._pendingShowListener) {\n this.removeEventListener('nile-after-show', this._pendingShowListener);\n this._pendingShowListener = null;\n }\n }\n\n private _cleanupPendingHideListener(): void {\n if (this._pendingHideListener) {\n this.removeEventListener('nile-after-hide', this._pendingHideListener);\n this._pendingHideListener = null;\n }\n }\n\n public toggle(): void {\n this.open = !this.open;\n }\n\n public refresh(): void {\n this._attachTippy();\n }\n\n /** Recomputes the panel position against its anchor (e.g. after the anchor moved). */\n public reposition(): void {\n this.tippyInstance?.popperInstance?.update();\n }\n\n /** Returns the current resolved placement from Tippy/Popper. */\n public getCurrentPlacement(): string {\n const popper = this.tippyInstance?.popper;\n const box = popper?.querySelector('.tippy-box') as HTMLElement | null;\n return box?.dataset.placement ?? this.placement;\n }\n\n /** Returns true if the resolved placement matches the requested placement. */\n public isPositioningOptimal(): boolean {\n return this.getCurrentPlacement() === this.placement;\n }\n\n // ─── Group management ───\n\n private _joinGroup(): void {\n if (!this.group) return;\n let set = NileFloatingPanel._groups.get(this.group);\n if (!set) {\n set = new Set();\n NileFloatingPanel._groups.set(this.group, set);\n }\n set.add(this);\n }\n\n private _leaveGroup(oldGroup?: string | null): void {\n const key = oldGroup ?? this.group;\n if (!key) return;\n const set = NileFloatingPanel._groups.get(key);\n if (set) {\n set.delete(this);\n if (set.size === 0) NileFloatingPanel._groups.delete(key);\n }\n }\n\n private _hideGroupSiblings(): void {\n if (!this.group) return;\n const set = NileFloatingPanel._groups.get(this.group);\n if (!set) return;\n set.forEach(panel => {\n if (panel !== this && panel.open) {\n panel._setOpen(false);\n panel.tippyInstance?.hide();\n }\n });\n }\n\n // ─── Escape key ───\n\n private _addEscListener(): void {\n if (this.closeOnEscape) {\n document.addEventListener('keydown', this._boundEscHandler);\n }\n }\n\n private _removeEscListener(): void {\n document.removeEventListener('keydown', this._boundEscHandler);\n }\n\n private _handleEscapeKey(e: KeyboardEvent): void {\n if (e.key === 'Escape' && this.open) {\n this._setOpen(false);\n this.tippyInstance?.hide();\n }\n }\n\n // ─── ARIA ───\n\n private _applyAria(): void {\n if (!this.anchorEl || !this.panelContainer) return;\n this.panelContainer.setAttribute('role', 'dialog');\n this.panelContainer.id = this._panelId;\n this.anchorEl.setAttribute('aria-haspopup', 'dialog');\n this._syncAriaExpanded();\n }\n\n private _syncAriaExpanded(): void {\n this.anchorEl?.setAttribute('aria-expanded', String(this.open));\n if (this.open) {\n this.anchorEl?.setAttribute('aria-describedby', this._panelId);\n } else {\n this.anchorEl?.removeAttribute('aria-describedby');\n }\n }\n\n // ─── DOM construction ───\n\n private _buildDOM(): void {\n const children = Array.from(this.childNodes);\n\n this.anchorEl = null;\n const titleNodes: Node[] = [];\n const actionNodes: Node[] = [];\n const bodyNodes: Node[] = [];\n let firstElementSeen = false;\n\n for (const child of children) {\n if (child instanceof HTMLElement) {\n const slot = child.getAttribute('slot');\n if (slot === 'title') {\n child.removeAttribute('slot');\n titleNodes.push(child);\n continue;\n }\n if (slot === 'action') {\n child.removeAttribute('slot');\n actionNodes.push(child);\n continue;\n }\n if (!firstElementSeen && !this.for) {\n this.anchorEl = child;\n firstElementSeen = true;\n continue;\n }\n }\n bodyNodes.push(child);\n }\n\n if (this.for) {\n const anchor = document.getElementById(this.for);\n if (anchor) {\n this.anchorEl = anchor;\n }\n }\n\n while (this.firstChild) {\n this.removeChild(this.firstChild);\n }\n\n if (this.anchorEl && !this.for) {\n this.appendChild(this.anchorEl);\n }\n\n this.panelContainer = document.createElement('div');\n this.panelContainer.className = 'nile-floating-panel__content';\n this.panelContainer.style.display = 'none';\n\n const body = document.createElement('div');\n body.className = 'nile-floating-panel__body';\n\n if (titleNodes.length > 0 || this.title) {\n const titleDiv = document.createElement('div');\n titleDiv.className = 'nile-floating-panel__title';\n if (this.title) {\n titleDiv.textContent = this.title;\n } else {\n titleNodes.forEach(n => titleDiv.appendChild(n));\n }\n body.appendChild(titleDiv);\n }\n\n if (bodyNodes.length > 0) {\n const mainDiv = document.createElement('div');\n mainDiv.className = 'nile-floating-panel__main';\n bodyNodes.forEach(n => mainDiv.appendChild(n));\n body.appendChild(mainDiv);\n }\n\n if (actionNodes.length > 0) {\n const actionDiv = document.createElement('div');\n actionDiv.className = 'nile-floating-panel__action';\n actionNodes.forEach(n => actionDiv.appendChild(n));\n body.appendChild(actionDiv);\n }\n\n this.panelContainer.appendChild(body);\n this.appendChild(this.panelContainer);\n\n this._applyAria();\n }\n\n // ─── Tippy management ───\n\n private _resolveArrow() {\n switch (this.arrow) {\n case 'round': return roundArrow;\n case 'none': return false as const;\n default: return true as const;\n }\n }\n\n private _setOpen(value: boolean): void {\n this._suppressOpenWatch = true;\n this.open = value;\n this._syncAriaExpanded();\n this._suppressOpenWatch = false;\n }\n\n private _getEffectiveDuration(): number | [number, number] {\n if (NileFloatingPanel.prefersReducedMotion) return 0;\n return parseDuration(this.duration);\n }\n\n private _getEffectiveAnimation(): string | false {\n if (NileFloatingPanel.prefersReducedMotion) return false;\n return this.animation;\n }\n\n private _attachTippy(): void {\n this._destroyTippy();\n\n if (this.disabled || !this.anchorEl || !this.panelContainer) return;\n\n const resolvedFollowCursor = parseFollowCursor(this.followCursor);\n const effectiveHideOnClick = this.preventOverlayClose ? false : this.hideOnClick;\n\n const options: Partial<Props> = {\n content: this.panelContainer,\n placement: this.placement,\n trigger: this.trigger,\n offset: [this.skidding, this.distance],\n theme: 'floating-panel',\n animation: this._getEffectiveAnimation(),\n interactive: this.interactive,\n arrow: this._resolveArrow(),\n duration: this._getEffectiveDuration(),\n allowHTML: this.allowHTML,\n delay: this.delay as any,\n maxWidth: this.maxWidth,\n zIndex: this.zIndex,\n hideOnClick: effectiveHideOnClick,\n inertia: NileFloatingPanel.prefersReducedMotion ? false : this.inertia,\n interactiveBorder: this.interactiveBorder,\n appendTo: document.body,\n followCursor: resolvedFollowCursor,\n plugins: resolvedFollowCursor ? [followCursorPlugin] : [],\n popperOptions: {\n modifiers: [{ name: 'flip', enabled: this.flip }],\n },\n onMount: (instance) => {\n if (this.panelContainer) this.panelContainer.style.display = '';\n if (this.panelClass) {\n this.panelClass.split(/\\s+/).filter(Boolean).forEach(cls => {\n instance.popper.classList.add(cls);\n });\n }\n },\n onShow: (instance) => {\n if (this.panelContainer) this.panelContainer.style.display = '';\n const tc = instance.popper.querySelector('.tippy-content') as HTMLElement | null;\n if (tc) {\n if (this.width) tc.style.width = this.width;\n if (this.height) { tc.style.height = this.height; tc.style.overflow = 'auto'; }\n }\n this._hideGroupSiblings();\n this._setOpen(true);\n this._addEscListener();\n this.dispatchEvent(new CustomEvent('nile-show', { detail: { instance, target: instance.reference } }));\n this.dispatchEvent(new CustomEvent('nile-toggle', { detail: { open: true, instance, target: instance.reference } }));\n return undefined;\n },\n onShown: (instance) => {\n this.dispatchEvent(new CustomEvent('nile-after-show', { detail: { instance, target: instance.reference } }));\n },\n onHide: (instance) => {\n this._setOpen(false);\n this._removeEscListener();\n this.dispatchEvent(new CustomEvent('nile-hide', { detail: { instance, target: instance.reference } }));\n this.dispatchEvent(new CustomEvent('nile-toggle', { detail: { open: false, instance, target: instance.reference } }));\n return undefined;\n },\n onHidden: (instance) => {\n if (this.panelContainer) this.panelContainer.style.display = 'none';\n this.dispatchEvent(new CustomEvent('nile-after-hide', { detail: { instance, target: instance.reference } }));\n },\n };\n\n this.tippyInstance = tippy(this.anchorEl, options);\n\n if (this.open) {\n queueMicrotask(() => this.tippyInstance?.show());\n }\n }\n\n private _destroyTippy(): void {\n if (this.tippyInstance) {\n this.tippyInstance.destroy();\n this.tippyInstance = null;\n }\n if (this.panelContainer) {\n this.panelContainer.style.display = 'none';\n if (this.panelContainer.parentElement !== this) {\n this.appendChild(this.panelContainer);\n }\n }\n }\n}\n\nexport default NileFloatingPanel;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-floating-panel': NileFloatingPanel;\n }\n}\n"],"names":["NileFloatingPanel","NileFloatingPanel_1","d","this","placement","trigger","distance","skidding","arrow","animation","duration","delay","interactive","interactiveBorder","maxWidth","zIndex","followCursor","hideOnClick","inertia","allowHTML","flip","for","open","preventOverlayClose","title","disabled","group","closeOnEscape","panelClass","enableVisibilityEffect","enableTabClose","tippyInstance","panelContainer","anchorEl","_suppressOpenWatch","_panelId","concat","Math","random","toString","slice","_boundEscHandler","_handleEscapeKey","bind","_pendingShowListener","_pendingHideListener","_this","_inherits","_n","_createClass","key","value","createRenderRoot","firstUpdated","_buildDOM","_attachTippy","_joinGroup","visibilityManager","VisibilityManager","host","target","isOpen","onAnchorOutOfView","_setOpen","hide","emit","visible","reason","onDocumentHidden","event","detail","disconnectedCallback","super","_cleanupPendingShowListener","_cleanupPendingHideListener","cleanup","_leaveGroup","_removeEscListener","_destroyTippy","updated","changed","has","setup","queueMicrotask","_this3$tippyInstance","show","get","some","p","Promise","resolve","handler","addEventListener","once","_this5","i","removeEventListener","toggle","refresh","reposition","popperInstance","update","getCurrentPlacement","_this$tippyInstance3","_i$dataset$placement","popper","box","querySelector","dataset","isPositioningOptimal","set","_groups","Set","add","oldGroup","delete","size","_hideGroupSiblings","forEach","panel","_addEscListener","document","e","_this$tippyInstance4","_applyAria","setAttribute","id","_syncAriaExpanded","String","removeAttribute","children","Array","from","childNodes","titleNodes","actionNodes","bodyNodes","firstElementSeen","_i","_t","child","HTMLElement","slot","getAttribute","push","anchor","getElementById","firstChild","removeChild","appendChild","createElement","className","style","display","body","length","titleDiv","textContent","n","mainDiv","actionDiv","_resolveArrow","roundArrow","_getEffectiveDuration","prefersReducedMotion","parseDuration","_getEffectiveAnimation","resolvedFollowCursor","parseFollowCursor","effectiveHideOnClick","options","content","offset","theme","appendTo","plugins","followCursorPlugin","popperOptions","modifiers","name","enabled","onMount","instance","split","filter","Boolean","cls","classList","onShow","tc","width","height","overflow","dispatchEvent","CustomEvent","reference","onShown","onHide","onHidden","tippy","_this7$tippyInstance","destroy","parentElement","_reducedMotionQuery","window","matchMedia","matches","styles","NileElement","Map","__decorate","property","type","prototype","Number","reflect","attribute","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"nile-floating-panel.cjs.js","sources":["../../../src/nile-floating-panel/nile-floating-panel.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2025\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 { CSSResultArray, PropertyValues } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-floating-panel.css';\nimport NileElement from '../internal/nile-element';\nimport tippy, {\n Instance,\n Props,\n roundArrow,\n followCursor as followCursorPlugin,\n} from 'tippy.js';\nimport {\n parseFollowCursor,\n parseDuration,\n} from '../nile-lite-tooltip/utils';\nimport { VisibilityManager } from '../utilities/visibility-manager.js';\n\nconst TIPPY_ROUND_ARROW =\n /^<svg width=\"(\\d+)\" height=\"(\\d+)\"[^>]*><path d=\"(.+?)H0z\"/.exec(roundArrow);\n\nconst NILE_ROUND_ARROW = ((): string => {\n if (!TIPPY_ROUND_ARROW) return roundArrow;\n\n const [, rawWidth, rawHeight, curve] = TIPPY_ROUND_ARROW;\n const width = Number(rawWidth);\n const height = Number(rawHeight) + 1; // + the skirt that covers the border\n\n return (\n `<svg width=\"${width}\" height=\"${height}\" viewBox=\"0 0 ${width} ${height}\" aria-hidden=\"true\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\">` +\n `<path d=\"${curve}V${height}H0Z\"></path>` +\n `<path class=\"nile-floating-panel__arrow-outline\" d=\"${curve}\"></path>` +\n `</svg>`\n );\n})();\n\n/**\n * Nile floating-panel component.\n *\n * A popover that supports rich content (title, body, actions).\n *\n * **Wrapper mode** (default): first child element is the trigger.\n * **For mode**: set `for=\"elementId\"` to attach to an external element.\n *\n * @tag nile-floating-panel\n *\n * @fires nile-init - Component initialized.\n * @fires nile-destroy - Component destroyed.\n * @fires nile-show - Panel opened.\n * @fires nile-hide - Panel closed.\n * @fires nile-after-show - Panel fully visible after animation.\n * @fires nile-after-hide - Panel fully hidden after animation.\n * @fires nile-toggle - Open/close transition (detail.open).\n * @fires nile-visibility-change - Hidden by scroll/tab change.\n */\n@customElement('nile-floating-panel')\nexport class NileFloatingPanel extends NileElement {\n private static _groups = new Map<string, Set<NileFloatingPanel>>();\n\n private static _reducedMotionQuery: MediaQueryList | null = null;\n\n private static get prefersReducedMotion(): boolean {\n if (!NileFloatingPanel._reducedMotionQuery) {\n NileFloatingPanel._reducedMotionQuery =\n window.matchMedia('(prefers-reduced-motion: reduce)');\n }\n return NileFloatingPanel._reducedMotionQuery.matches;\n }\n\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n protected createRenderRoot() {\n return this;\n }\n\n // ─── Tippy.js props ───\n\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'\n | 'auto'\n | 'auto-start'\n | 'auto-end' = 'bottom';\n\n @property({ type: String }) trigger: string = 'click';\n\n @property({ type: Number }) distance = 12;\n\n @property({ type: Number }) skidding = 0;\n\n @property({ type: String, reflect: true })\n arrow: 'round' | 'default' | 'none' = 'round';\n\n @property({ type: String, reflect: true }) animation: string = 'fade';\n\n @property({ type: String, reflect: true }) duration:\n | string\n | number\n | [number, number] = 200;\n\n @property({ type: String, reflect: true }) delay:\n | number\n | [number, number] = 0;\n\n @property({ type: Boolean, reflect: true }) interactive = true;\n\n @property({ type: Number, reflect: true }) interactiveBorder = 2;\n\n @property({ type: String, reflect: true }) maxWidth: string | number = 'none';\n\n @property({ type: Number, reflect: true }) zIndex = 9999;\n\n @property({ type: String, reflect: true })\n followCursor:\n | boolean\n | 'initial'\n | 'horizontal'\n | 'vertical'\n | 'true'\n | 'false' = false;\n\n @property({ type: Boolean, reflect: true }) hideOnClick:\n | boolean\n | 'toggle' = true;\n\n @property({ type: Boolean, reflect: true }) inertia = false;\n\n @property({ type: Boolean, reflect: true }) allowHTML = false;\n\n @property({ type: Boolean, reflect: true }) flip = true;\n\n // ─── Popover-like props ───\n\n @property({ type: String, attribute: 'for' }) for: string | null = null;\n\n @property({ type: Boolean, reflect: true }) open = false;\n\n @property({ type: Boolean, reflect: true }) preventOverlayClose = false;\n\n @property({ type: String, reflect: true }) title = '';\n\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n @property({ type: String, reflect: true }) width?: string;\n\n @property({ type: String, reflect: true }) height?: string;\n\n /** When set, only one panel in the same group can be open at a time. */\n @property({ type: String, reflect: true }) group: string | null = null;\n\n /** Close the panel when Escape is pressed. */\n @property({ type: Boolean, reflect: true }) closeOnEscape = true;\n\n /** Custom CSS class(es) added to the Tippy popper element, allowing per-instance styling from the host. */\n @property({ type: String, reflect: true, attribute: true}) panelClass: string = '';\n\n // ─── Visibility manager props ───\n\n @property({ type: Boolean, reflect: true }) enableVisibilityEffect = false;\n\n @property({ type: Boolean, reflect: true }) enableTabClose = false;\n\n // ─── Internal state ───\n\n private tippyInstance: Instance | null = null;\n private visibilityManager?: VisibilityManager;\n private panelContainer: HTMLElement | null = null;\n private anchorEl: HTMLElement | null = null;\n private _suppressOpenWatch = false;\n private _panelId = `nile-fp-${Math.random().toString(36).slice(2, 9)}`;\n private _boundEscHandler = this._handleEscapeKey.bind(this);\n private _pendingShowListener: (() => void) | null = null;\n private _pendingHideListener: (() => void) | null = null;\n\n // ─── Lifecycle ───\n\n protected firstUpdated(): void {\n this._buildDOM();\n this._attachTippy();\n this._joinGroup();\n\n this.visibilityManager = new VisibilityManager({\n host: this,\n target: this.anchorEl || null,\n enableVisibilityEffect: this.enableVisibilityEffect,\n enableTabClose: this.enableTabClose,\n isOpen: () => this.open,\n onAnchorOutOfView: () => {\n this._setOpen(false);\n this.tippyInstance?.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'anchor-out-of-view',\n });\n },\n onDocumentHidden: () => {\n this._setOpen(false);\n this.tippyInstance?.hide();\n this.emit('nile-visibility-change', {\n visible: false,\n reason: 'document-hidden',\n });\n },\n emit: (event, detail) => this.emit(`nile-${event}`, detail),\n });\n\n this.emit('nile-init');\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this._cleanupPendingShowListener();\n this._cleanupPendingHideListener();\n this.visibilityManager?.cleanup();\n this._leaveGroup();\n this._removeEscListener();\n this._destroyTippy();\n this.emit('nile-destroy');\n }\n\n updated(changed: PropertyValues): void {\n super.updated(changed);\n\n if (!this.panelContainer) return;\n\n if (changed.has('open') && !this._suppressOpenWatch) {\n if (this.open) {\n this.visibilityManager?.setup();\n queueMicrotask(() => this.tippyInstance?.show());\n } else {\n this.visibilityManager?.cleanup();\n this.tippyInstance?.hide();\n }\n }\n\n if (changed.has('group')) {\n this._leaveGroup(changed.get('group') as string | null);\n this._joinGroup();\n }\n\n const rebuildProps: string[] = [\n 'placement', 'trigger', 'distance', 'skidding', 'arrow',\n 'animation', 'duration', 'delay', 'interactive', 'interactiveBorder',\n 'maxWidth', 'zIndex', 'followCursor', 'hideOnClick', 'inertia',\n 'allowHTML', 'flip', 'preventOverlayClose', 'disabled', 'width', 'height',\n 'panelClass'\n ];\n\n if (rebuildProps.some(p => changed.has(p))) {\n this._attachTippy();\n }\n }\n\n // ─── Public API ───\n\n /** Programmatically shows the panel. Returns a promise that resolves after the show animation. */\n public show(): Promise<void> {\n this.open = true;\n return new Promise<void>(resolve => {\n this._cleanupPendingShowListener();\n const handler = () => {\n this._pendingShowListener = null;\n resolve();\n };\n this._pendingShowListener = handler;\n this.addEventListener('nile-after-show', handler, { once: true });\n });\n }\n\n /** Programmatically hides the panel. Returns a promise that resolves after the hide animation. */\n public hide(): Promise<void> {\n this.open = false;\n return new Promise<void>(resolve => {\n this._cleanupPendingHideListener();\n const handler = () => {\n this._pendingHideListener = null;\n resolve();\n };\n this._pendingHideListener = handler;\n this.addEventListener('nile-after-hide', handler, { once: true });\n });\n }\n\n private _cleanupPendingShowListener(): void {\n if (this._pendingShowListener) {\n this.removeEventListener('nile-after-show', this._pendingShowListener);\n this._pendingShowListener = null;\n }\n }\n\n private _cleanupPendingHideListener(): void {\n if (this._pendingHideListener) {\n this.removeEventListener('nile-after-hide', this._pendingHideListener);\n this._pendingHideListener = null;\n }\n }\n\n public toggle(): void {\n this.open = !this.open;\n }\n\n public refresh(): void {\n this._attachTippy();\n }\n\n /** Recomputes the panel position against its anchor (e.g. after the anchor moved). */\n public reposition(): void {\n this.tippyInstance?.popperInstance?.update();\n }\n\n /** Returns the current resolved placement from Tippy/Popper. */\n public getCurrentPlacement(): string {\n const popper = this.tippyInstance?.popper;\n const box = popper?.querySelector('.tippy-box') as HTMLElement | null;\n return box?.dataset.placement ?? this.placement;\n }\n\n /** Returns true if the resolved placement matches the requested placement. */\n public isPositioningOptimal(): boolean {\n return this.getCurrentPlacement() === this.placement;\n }\n\n // ─── Group management ───\n\n private _joinGroup(): void {\n if (!this.group) return;\n let set = NileFloatingPanel._groups.get(this.group);\n if (!set) {\n set = new Set();\n NileFloatingPanel._groups.set(this.group, set);\n }\n set.add(this);\n }\n\n private _leaveGroup(oldGroup?: string | null): void {\n const key = oldGroup ?? this.group;\n if (!key) return;\n const set = NileFloatingPanel._groups.get(key);\n if (set) {\n set.delete(this);\n if (set.size === 0) NileFloatingPanel._groups.delete(key);\n }\n }\n\n private _hideGroupSiblings(): void {\n if (!this.group) return;\n const set = NileFloatingPanel._groups.get(this.group);\n if (!set) return;\n set.forEach(panel => {\n if (panel !== this && panel.open) {\n panel._setOpen(false);\n panel.tippyInstance?.hide();\n }\n });\n }\n\n // ─── Escape key ───\n\n private _addEscListener(): void {\n if (this.closeOnEscape) {\n document.addEventListener('keydown', this._boundEscHandler);\n }\n }\n\n private _removeEscListener(): void {\n document.removeEventListener('keydown', this._boundEscHandler);\n }\n\n private _handleEscapeKey(e: KeyboardEvent): void {\n if (e.key === 'Escape' && this.open) {\n this._setOpen(false);\n this.tippyInstance?.hide();\n }\n }\n\n // ─── ARIA ───\n\n private _applyAria(): void {\n if (!this.anchorEl || !this.panelContainer) return;\n this.panelContainer.setAttribute('role', 'dialog');\n this.panelContainer.id = this._panelId;\n this.anchorEl.setAttribute('aria-haspopup', 'dialog');\n this._syncAriaExpanded();\n }\n\n private _syncAriaExpanded(): void {\n this.anchorEl?.setAttribute('aria-expanded', String(this.open));\n if (this.open) {\n this.anchorEl?.setAttribute('aria-describedby', this._panelId);\n } else {\n this.anchorEl?.removeAttribute('aria-describedby');\n }\n }\n\n // ─── DOM construction ───\n\n private _buildDOM(): void {\n const children = Array.from(this.childNodes);\n\n this.anchorEl = null;\n const titleNodes: Node[] = [];\n const actionNodes: Node[] = [];\n const bodyNodes: Node[] = [];\n let firstElementSeen = false;\n\n for (const child of children) {\n if (child instanceof HTMLElement) {\n const slot = child.getAttribute('slot');\n if (slot === 'title') {\n child.removeAttribute('slot');\n titleNodes.push(child);\n continue;\n }\n if (slot === 'action') {\n child.removeAttribute('slot');\n actionNodes.push(child);\n continue;\n }\n if (!firstElementSeen && !this.for) {\n this.anchorEl = child;\n firstElementSeen = true;\n continue;\n }\n }\n bodyNodes.push(child);\n }\n\n if (this.for) {\n const anchor = document.getElementById(this.for);\n if (anchor) {\n this.anchorEl = anchor;\n }\n }\n\n while (this.firstChild) {\n this.removeChild(this.firstChild);\n }\n\n if (this.anchorEl && !this.for) {\n this.appendChild(this.anchorEl);\n }\n\n this.panelContainer = document.createElement('div');\n this.panelContainer.className = 'nile-floating-panel__content';\n this.panelContainer.style.display = 'none';\n\n const body = document.createElement('div');\n body.className = 'nile-floating-panel__body';\n\n if (titleNodes.length > 0 || this.title) {\n const titleDiv = document.createElement('div');\n titleDiv.className = 'nile-floating-panel__title';\n if (this.title) {\n titleDiv.textContent = this.title;\n } else {\n titleNodes.forEach(n => titleDiv.appendChild(n));\n }\n body.appendChild(titleDiv);\n }\n\n if (bodyNodes.length > 0) {\n const mainDiv = document.createElement('div');\n mainDiv.className = 'nile-floating-panel__main';\n bodyNodes.forEach(n => mainDiv.appendChild(n));\n body.appendChild(mainDiv);\n }\n\n if (actionNodes.length > 0) {\n const actionDiv = document.createElement('div');\n actionDiv.className = 'nile-floating-panel__action';\n actionNodes.forEach(n => actionDiv.appendChild(n));\n body.appendChild(actionDiv);\n }\n\n this.panelContainer.appendChild(body);\n this.appendChild(this.panelContainer);\n\n this._applyAria();\n }\n\n // ─── Tippy management ───\n\n private _resolveArrow() {\n switch (this.arrow) {\n case 'round': return NILE_ROUND_ARROW;\n case 'none': return false as const;\n default: return true as const;\n }\n }\n\n private _setOpen(value: boolean): void {\n this._suppressOpenWatch = true;\n this.open = value;\n this._syncAriaExpanded();\n this._suppressOpenWatch = false;\n }\n\n private _getEffectiveDuration(): number | [number, number] {\n if (NileFloatingPanel.prefersReducedMotion) return 0;\n return parseDuration(this.duration);\n }\n\n private _getEffectiveAnimation(): string | false {\n if (NileFloatingPanel.prefersReducedMotion) return false;\n return this.animation;\n }\n\n private _attachTippy(): void {\n this._destroyTippy();\n\n if (this.disabled || !this.anchorEl || !this.panelContainer) return;\n\n const resolvedFollowCursor = parseFollowCursor(this.followCursor);\n const effectiveHideOnClick = this.preventOverlayClose ? false : this.hideOnClick;\n\n const options: Partial<Props> = {\n content: this.panelContainer,\n placement: this.placement,\n trigger: this.trigger,\n offset: [this.skidding, this.distance],\n theme: 'floating-panel',\n animation: this._getEffectiveAnimation(),\n interactive: this.interactive,\n arrow: this._resolveArrow(),\n duration: this._getEffectiveDuration(),\n allowHTML: this.allowHTML,\n delay: this.delay as any,\n maxWidth: this.maxWidth,\n zIndex: this.zIndex,\n hideOnClick: effectiveHideOnClick,\n inertia: NileFloatingPanel.prefersReducedMotion ? false : this.inertia,\n interactiveBorder: this.interactiveBorder,\n appendTo: document.body,\n followCursor: resolvedFollowCursor,\n plugins: resolvedFollowCursor ? [followCursorPlugin] : [],\n popperOptions: {\n modifiers: [{ name: 'flip', enabled: this.flip }],\n },\n onMount: (instance) => {\n if (this.panelContainer) this.panelContainer.style.display = '';\n if (this.panelClass) {\n this.panelClass.split(/\\s+/).filter(Boolean).forEach(cls => {\n instance.popper.classList.add(cls);\n });\n }\n },\n onShow: (instance) => {\n if (this.panelContainer) this.panelContainer.style.display = '';\n const tc = instance.popper.querySelector('.tippy-content') as HTMLElement | null;\n if (tc) {\n if (this.width) tc.style.width = this.width;\n if (this.height) { tc.style.height = this.height; tc.style.overflow = 'auto'; }\n }\n this._hideGroupSiblings();\n this._setOpen(true);\n this._addEscListener();\n this.dispatchEvent(new CustomEvent('nile-show', { detail: { instance, target: instance.reference } }));\n this.dispatchEvent(new CustomEvent('nile-toggle', { detail: { open: true, instance, target: instance.reference } }));\n return undefined;\n },\n onShown: (instance) => {\n this.dispatchEvent(new CustomEvent('nile-after-show', { detail: { instance, target: instance.reference } }));\n },\n onHide: (instance) => {\n this._setOpen(false);\n this._removeEscListener();\n this.dispatchEvent(new CustomEvent('nile-hide', { detail: { instance, target: instance.reference } }));\n this.dispatchEvent(new CustomEvent('nile-toggle', { detail: { open: false, instance, target: instance.reference } }));\n return undefined;\n },\n onHidden: (instance) => {\n if (this.panelContainer) this.panelContainer.style.display = 'none';\n this.dispatchEvent(new CustomEvent('nile-after-hide', { detail: { instance, target: instance.reference } }));\n },\n };\n\n this.tippyInstance = tippy(this.anchorEl, options);\n\n if (this.open) {\n queueMicrotask(() => this.tippyInstance?.show());\n }\n }\n\n private _destroyTippy(): void {\n if (this.tippyInstance) {\n this.tippyInstance.destroy();\n this.tippyInstance = null;\n }\n if (this.panelContainer) {\n this.panelContainer.style.display = 'none';\n if (this.panelContainer.parentElement !== this) {\n this.appendChild(this.panelContainer);\n }\n }\n }\n}\n\nexport default NileFloatingPanel;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-floating-panel': NileFloatingPanel;\n }\n}\n"],"names":["TIPPY_ROUND_ARROW","exec","roundArrow","NILE_ROUND_ARROW","_p","_slicedToArray","rawWidth","rawHeight","curve","width","Number","height","concat","_export","NileFloatingPanel","NileFloatingPanel_1","_n","c","constructor","this","placement","trigger","distance","skidding","arrow","animation","duration","delay","interactive","interactiveBorder","maxWidth","zIndex","followCursor","hideOnClick","inertia","allowHTML","flip","for","open","preventOverlayClose","title","disabled","group","closeOnEscape","panelClass","enableVisibilityEffect","enableTabClose","tippyInstance","panelContainer","anchorEl","_suppressOpenWatch","_panelId","Math","random","toString","slice","_boundEscHandler","_handleEscapeKey","bind","_pendingShowListener","_pendingHideListener","_this","_inherits","_createClass","key","value","createRenderRoot","firstUpdated","_buildDOM","_attachTippy","_joinGroup","visibilityManager","VisibilityManager","host","target","isOpen","onAnchorOutOfView","_setOpen","hide","emit","visible","reason","onDocumentHidden","_this2$tippyInstance2","event","detail","disconnectedCallback","super","_cleanupPendingShowListener","_cleanupPendingHideListener","cleanup","_leaveGroup","_removeEscListener","_destroyTippy","updated","changed","_this$visibilityManag2","_this3","_this$visibilityManag3","_this$tippyInstance","has","setup","queueMicrotask","_this3$tippyInstance","show","get","some","p","Promise","resolve","handler","addEventListener","once","i","removeEventListener","toggle","refresh","reposition","popperInstance","update","getCurrentPlacement","_this$tippyInstance3","_i$dataset$placement","popper","box","querySelector","dataset","isPositioningOptimal","set","_groups","Set","add","oldGroup","size","_hideGroupSiblings","forEach","panel","_t$tippyInstance","_addEscListener","document","e","_applyAria","setAttribute","id","_syncAriaExpanded","String","removeAttribute","children","Array","from","childNodes","titleNodes","actionNodes","bodyNodes","firstElementSeen","_i","_t","length","child","HTMLElement","slot","getAttribute","push","anchor","getElementById","firstChild","removeChild","appendChild","createElement","className","style","display","body","titleDiv","textContent","n","mainDiv","actionDiv","_resolveArrow","_getEffectiveDuration","prefersReducedMotion","parseDuration","_getEffectiveAnimation","_this7","resolvedFollowCursor","parseFollowCursor","effectiveHideOnClick","options","content","offset","theme","appendTo","plugins","followCursorPlugin","popperOptions","modifiers","name","enabled","onMount","instance","split","filter","Boolean","cls","classList","onShow","tc","overflow","dispatchEvent","CustomEvent","reference","onShown","onHide","onHidden","tippy","_this7$tippyInstance","destroy","parentElement","_reducedMotionQuery","window","matchMedia","matches","styles","NileElement","Map","__decorate","property","type","prototype","reflect","attribute","customElement"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- System.register(["lit"],function(_export,_context){"use strict";var t,_templateObject,a;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",a=t(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n nile-floating-panel {\n display: inline-block;\n }\n\n .tippy-box[data-theme~='floating-panel'] {\n background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n border: solid 1px var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));\n border-radius: var(--nile-radius-sm, var(--ng-radius-md));\n box-shadow: var(--nile-box-shadow-2, var(--ng-shadow-lg));\n padding: 0;\n font-size: var(--nile-type-scale-4, var(--ng-font-size-text-sm));\n line-height: 1.4;\n white-space: normal;\n outline: 0;\n transition-property: transform, visibility, opacity;\n }\n\n .tippy-box[data-theme~='floating-panel'][data-animation='fade'][data-state='hidden'] {\n opacity: 0;\n }\n\n .tippy-box[data-theme~='floating-panel'][data-inertia][data-state='visible'] {\n transition-timing-function: cubic-bezier(0.54, 1.5, 0.38, 1.11);\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-content {\n position: relative;\n z-index: 1;\n padding: 0;\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-svg-arrow {\n fill: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-arrow {\n color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n }\n\n .nile-floating-panel__body {\n display: flex;\n flex-direction: column;\n height: auto;\n min-width: var(--nile-width-352px, var(--ng-width-80));\n gap: var(--nile-spacing-xl, var(--ng-spacing-xl));\n padding: var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n\n .nile-floating-panel__title {\n display: block;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-4, var(--ng-font-size-text-sm));\n font-style: normal;\n font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-semibold));\n line-height: var(--nile-line-height-xsmall, var(--ng-line-height-text-sm));\n letter-spacing: var(--nile-spacing-one-by-five-x, var(--ng-spacing-none));\n }\n\n .nile-floating-panel__title:empty {\n display: none;\n }\n\n .nile-floating-panel__action {\n align-self: end;\n display: inline;\n }\n\n .nile-floating-panel__action:empty {\n display: none;\n }\n\n .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-svg-arrow { bottom: 0; }\n .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-svg-arrow:after,\n .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-svg-arrow > svg {\n top: 16px;\n transform: rotate(180deg);\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-svg-arrow { top: 0; }\n .tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-svg-arrow > svg { bottom: 16px; }\n .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-svg-arrow { right: 0; }\n .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-svg-arrow:after,\n .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-svg-arrow > svg {\n transform: rotate(90deg);\n top: calc(50% - 3px);\n left: 11px;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-svg-arrow { left: 0; }\n .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-svg-arrow:after,\n .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-svg-arrow > svg {\n transform: rotate(-90deg);\n top: calc(50% - 3px);\n right: 11px;\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-svg-arrow {\n width: 16px;\n height: 16px;\n text-align: initial;\n position: absolute;\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-svg-arrow > svg {\n position: absolute;\n }\n\n .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-arrow {\n bottom: 0;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-arrow:before {\n bottom: -7px;\n border-width: 8px 8px 0;\n border-top-color: initial;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-arrow {\n top: 0;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-arrow:before {\n top: -7px;\n border-width: 0 8px 8px;\n border-bottom-color: initial;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-arrow {\n right: 0;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-arrow:before {\n right: -7px;\n border-width: 8px 0 8px 8px;\n border-left-color: initial;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-arrow {\n left: 0;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-arrow:before {\n left: -7px;\n border-width: 8px 8px 8px 0;\n border-right-color: initial;\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-arrow {\n width: 16px;\n height: 16px;\n color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n }\n .tippy-box[data-theme~='floating-panel'] > .tippy-arrow:before {\n content: '';\n position: absolute;\n border-color: transparent;\n border-style: solid;\n }\n"]))));!function(_document$head){if("undefined"==typeof document)return;var t="nile-floating-panel-styles";if(document.getElementById(t))return;var e=document.createElement("style");e.id=t,e.textContent=a.cssText,(_document$head=document.head)===null||_document$head===void 0?void 0:_document$head.appendChild(e);}();}};});
1
+ System.register(["lit"],function(_export,_context){"use strict";var t,_templateObject,a;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",a=t(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n nile-floating-panel {\n display: inline-block;\n }\n\n .tippy-box[data-theme~='floating-panel'] {\n background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n border: solid 1px var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));\n border-radius: var(--nile-radius-sm, var(--ng-radius-md));\n box-shadow: var(--nile-box-shadow-2, var(--ng-shadow-lg));\n padding: 0;\n font-size: var(--nile-type-scale-4, var(--ng-font-size-text-sm));\n line-height: 1.4;\n white-space: normal;\n outline: 0;\n transition-property: transform, visibility, opacity;\n }\n\n .tippy-box[data-theme~='floating-panel'][data-animation='fade'][data-state='hidden'] {\n opacity: 0;\n }\n\n .tippy-box[data-theme~='floating-panel'][data-inertia][data-state='visible'] {\n transition-timing-function: cubic-bezier(0.54, 1.5, 0.38, 1.11);\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-content {\n position: relative;\n z-index: 1;\n padding: 0;\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-svg-arrow {\n fill: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-arrow {\n color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n }\n\n .nile-floating-panel__body {\n display: flex;\n flex-direction: column;\n height: auto;\n min-width: var(--nile-width-352px, var(--ng-width-80));\n gap: var(--nile-spacing-xl, var(--ng-spacing-xl));\n padding: var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n\n .nile-floating-panel__title {\n display: block;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-4, var(--ng-font-size-text-sm));\n font-style: normal;\n font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-semibold));\n line-height: var(--nile-line-height-xsmall, var(--ng-line-height-text-sm));\n letter-spacing: var(--nile-spacing-one-by-five-x, var(--ng-spacing-none));\n }\n\n .nile-floating-panel__title:empty {\n display: none;\n }\n\n .nile-floating-panel__action {\n align-self: end;\n display: inline;\n }\n\n .nile-floating-panel__action:empty {\n display: none;\n }\n\n /* Offset arrow by 0.5px so its outline aligns with the panel border and its fill fully covers it. */\n .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-svg-arrow { bottom: 0; }\n .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-svg-arrow > svg {\n top: 15.5px;\n transform: rotate(180deg);\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-svg-arrow { top: 0; }\n .tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-svg-arrow > svg { bottom: 15.5px; }\n .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-svg-arrow { right: 0; }\n .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-svg-arrow > svg {\n transform: rotate(90deg);\n top: calc(50% - 3.5px);\n left: 11px;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-svg-arrow { left: 0; }\n .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-svg-arrow > svg {\n transform: rotate(-90deg);\n top: calc(50% - 3.5px);\n right: 11px;\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-svg-arrow {\n width: 16px;\n height: 16px;\n text-align: initial;\n position: absolute;\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-svg-arrow > svg {\n position: absolute;\n overflow: visible;\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-svg-arrow > svg > .nile-floating-panel__arrow-outline {\n fill: none;\n stroke: var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));\n stroke-width: 1;\n vector-effect: non-scaling-stroke;\n }\n\n .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-arrow {\n bottom: 0;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-arrow:before {\n bottom: -7px;\n border-width: 8px 8px 0;\n border-top-color: initial;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-arrow:after {\n bottom: -8px;\n left: -1px;\n border-width: 9px 9px 0;\n border-top-color: var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));\n clip-path: inset(2px 0 0 0);\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-arrow {\n top: 0;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-arrow:before {\n top: -7px;\n border-width: 0 8px 8px;\n border-bottom-color: initial;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-arrow:after {\n top: -8px;\n left: -1px;\n border-width: 0 9px 9px;\n border-bottom-color: var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));\n clip-path: inset(0 0 2px 0);\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-arrow {\n right: 0;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-arrow:before {\n right: -7px;\n border-width: 8px 0 8px 8px;\n border-left-color: initial;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-arrow:after {\n right: -8px;\n top: -1px;\n border-width: 9px 0 9px 9px;\n border-left-color: var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));\n clip-path: inset(0 0 0 2px);\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-arrow {\n left: 0;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-arrow:before {\n left: -7px;\n border-width: 8px 8px 8px 0;\n border-right-color: initial;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-arrow:after {\n left: -8px;\n top: -1px;\n border-width: 9px 9px 9px 0;\n border-right-color: var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));\n clip-path: inset(0 2px 0 0);\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-arrow {\n width: 16px;\n height: 16px;\n color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n }\n /* :after is a 1px-larger triangle in the border colour, stacked behind :before, so the border continues around the arrow. */\n .tippy-box[data-theme~='floating-panel'] > .tippy-arrow:before,\n .tippy-box[data-theme~='floating-panel'] > .tippy-arrow:after {\n content: '';\n position: absolute;\n border-color: transparent;\n border-style: solid;\n }\n .tippy-box[data-theme~='floating-panel'] > .tippy-arrow:before { z-index: 1; }\n .tippy-box[data-theme~='floating-panel'] > .tippy-arrow:after { z-index: 0; }\n"]))));!function(_document$head){if("undefined"==typeof document)return;var t="nile-floating-panel-styles";if(document.getElementById(t))return;var e=document.createElement("style");e.id=t,e.textContent=a.cssText,(_document$head=document.head)===null||_document$head===void 0?void 0:_document$head.appendChild(e);}();}};});
2
2
  //# sourceMappingURL=nile-floating-panel.css.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nile-floating-panel.css.cjs.js","sources":["../../../src/nile-floating-panel/nile-floating-panel.css.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2025\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\nexport const styles = css`\n nile-floating-panel {\n display: inline-block;\n }\n\n .tippy-box[data-theme~='floating-panel'] {\n background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n border: solid 1px var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));\n border-radius: var(--nile-radius-sm, var(--ng-radius-md));\n box-shadow: var(--nile-box-shadow-2, var(--ng-shadow-lg));\n padding: 0;\n font-size: var(--nile-type-scale-4, var(--ng-font-size-text-sm));\n line-height: 1.4;\n white-space: normal;\n outline: 0;\n transition-property: transform, visibility, opacity;\n }\n\n .tippy-box[data-theme~='floating-panel'][data-animation='fade'][data-state='hidden'] {\n opacity: 0;\n }\n\n .tippy-box[data-theme~='floating-panel'][data-inertia][data-state='visible'] {\n transition-timing-function: cubic-bezier(0.54, 1.5, 0.38, 1.11);\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-content {\n position: relative;\n z-index: 1;\n padding: 0;\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-svg-arrow {\n fill: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-arrow {\n color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n }\n\n .nile-floating-panel__body {\n display: flex;\n flex-direction: column;\n height: auto;\n min-width: var(--nile-width-352px, var(--ng-width-80));\n gap: var(--nile-spacing-xl, var(--ng-spacing-xl));\n padding: var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n\n .nile-floating-panel__title {\n display: block;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-4, var(--ng-font-size-text-sm));\n font-style: normal;\n font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-semibold));\n line-height: var(--nile-line-height-xsmall, var(--ng-line-height-text-sm));\n letter-spacing: var(--nile-spacing-one-by-five-x, var(--ng-spacing-none));\n }\n\n .nile-floating-panel__title:empty {\n display: none;\n }\n\n .nile-floating-panel__action {\n align-self: end;\n display: inline;\n }\n\n .nile-floating-panel__action:empty {\n display: none;\n }\n\n .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-svg-arrow { bottom: 0; }\n .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-svg-arrow:after,\n .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-svg-arrow > svg {\n top: 16px;\n transform: rotate(180deg);\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-svg-arrow { top: 0; }\n .tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-svg-arrow > svg { bottom: 16px; }\n .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-svg-arrow { right: 0; }\n .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-svg-arrow:after,\n .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-svg-arrow > svg {\n transform: rotate(90deg);\n top: calc(50% - 3px);\n left: 11px;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-svg-arrow { left: 0; }\n .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-svg-arrow:after,\n .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-svg-arrow > svg {\n transform: rotate(-90deg);\n top: calc(50% - 3px);\n right: 11px;\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-svg-arrow {\n width: 16px;\n height: 16px;\n text-align: initial;\n position: absolute;\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-svg-arrow > svg {\n position: absolute;\n }\n\n .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-arrow {\n bottom: 0;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-arrow:before {\n bottom: -7px;\n border-width: 8px 8px 0;\n border-top-color: initial;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-arrow {\n top: 0;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-arrow:before {\n top: -7px;\n border-width: 0 8px 8px;\n border-bottom-color: initial;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-arrow {\n right: 0;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-arrow:before {\n right: -7px;\n border-width: 8px 0 8px 8px;\n border-left-color: initial;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-arrow {\n left: 0;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-arrow:before {\n left: -7px;\n border-width: 8px 8px 8px 0;\n border-right-color: initial;\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-arrow {\n width: 16px;\n height: 16px;\n color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n }\n .tippy-box[data-theme~='floating-panel'] > .tippy-arrow:before {\n content: '';\n position: absolute;\n border-color: transparent;\n border-style: solid;\n }\n`;\n\nexport function injectGlobalFloatingPanelStyles(): void {\n if (typeof document === 'undefined') return;\n\n const STYLE_ID = 'nile-floating-panel-styles';\n if (document.getElementById(STYLE_ID)) return;\n\n const style = document.createElement('style');\n style.id = STYLE_ID;\n style.textContent = styles.cssText;\n document.head?.appendChild(style);\n}\n\ninjectGlobalFloatingPanelStyles();\n\nexport default [styles];\n"],"names":["styles","css","_templateObject","_taggedTemplateLiteral","document","STYLE_ID","getElementById","style","createElement","id","textContent","cssText","head","appendChild","injectGlobalFloatingPanelStyles"],"mappings":"oTASaA,CAAAA,CAASC,CAAG,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA,k6KA2JvB,GAAwB,WAAA,EAAA,MAAbC,CAAAA,QAA0B,CAAA,OAErC,GAAMC,CAAAA,CAAAA,CAAW,4BACjB,CAAA,GAAID,QAASE,CAAAA,cAAAA,CAAeD,CAAW,CAAA,CAAA,OAEvC,GAAME,CAAAA,CAAAA,CAAQH,QAASI,CAAAA,aAAAA,CAAc,OACrCD,CAAAA,CAAAA,CAAAA,CAAME,EAAKJ,CAAAA,CAAAA,CACXE,CAAMG,CAAAA,WAAAA,CAAcV,CAAOW,CAAAA,OAAAA,EAAAA,cAAAA,CAC3BP,QAASQ,CAAAA,IAAAA,UAAAA,cAAAA,iBAATR,cAAAA,CAAeS,WAAYN,CAAAA,CAAAA,CAC7B,EAEAO"}
1
+ {"version":3,"file":"nile-floating-panel.css.cjs.js","sources":["../../../src/nile-floating-panel/nile-floating-panel.css.ts"],"sourcesContent":["/**\n * Copyright Aquera Inc 2025\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\nexport const styles = css`\n nile-floating-panel {\n display: inline-block;\n }\n\n .tippy-box[data-theme~='floating-panel'] {\n background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n border: solid 1px var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));\n border-radius: var(--nile-radius-sm, var(--ng-radius-md));\n box-shadow: var(--nile-box-shadow-2, var(--ng-shadow-lg));\n padding: 0;\n font-size: var(--nile-type-scale-4, var(--ng-font-size-text-sm));\n line-height: 1.4;\n white-space: normal;\n outline: 0;\n transition-property: transform, visibility, opacity;\n }\n\n .tippy-box[data-theme~='floating-panel'][data-animation='fade'][data-state='hidden'] {\n opacity: 0;\n }\n\n .tippy-box[data-theme~='floating-panel'][data-inertia][data-state='visible'] {\n transition-timing-function: cubic-bezier(0.54, 1.5, 0.38, 1.11);\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-content {\n position: relative;\n z-index: 1;\n padding: 0;\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-svg-arrow {\n fill: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-arrow {\n color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n }\n\n .nile-floating-panel__body {\n display: flex;\n flex-direction: column;\n height: auto;\n min-width: var(--nile-width-352px, var(--ng-width-80));\n gap: var(--nile-spacing-xl, var(--ng-spacing-xl));\n padding: var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n\n .nile-floating-panel__title {\n display: block;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-4, var(--ng-font-size-text-sm));\n font-style: normal;\n font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-semibold));\n line-height: var(--nile-line-height-xsmall, var(--ng-line-height-text-sm));\n letter-spacing: var(--nile-spacing-one-by-five-x, var(--ng-spacing-none));\n }\n\n .nile-floating-panel__title:empty {\n display: none;\n }\n\n .nile-floating-panel__action {\n align-self: end;\n display: inline;\n }\n\n .nile-floating-panel__action:empty {\n display: none;\n }\n\n /* Offset arrow by 0.5px so its outline aligns with the panel border and its fill fully covers it. */\n .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-svg-arrow { bottom: 0; }\n .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-svg-arrow > svg {\n top: 15.5px;\n transform: rotate(180deg);\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-svg-arrow { top: 0; }\n .tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-svg-arrow > svg { bottom: 15.5px; }\n .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-svg-arrow { right: 0; }\n .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-svg-arrow > svg {\n transform: rotate(90deg);\n top: calc(50% - 3.5px);\n left: 11px;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-svg-arrow { left: 0; }\n .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-svg-arrow > svg {\n transform: rotate(-90deg);\n top: calc(50% - 3.5px);\n right: 11px;\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-svg-arrow {\n width: 16px;\n height: 16px;\n text-align: initial;\n position: absolute;\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-svg-arrow > svg {\n position: absolute;\n overflow: visible;\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-svg-arrow > svg > .nile-floating-panel__arrow-outline {\n fill: none;\n stroke: var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));\n stroke-width: 1;\n vector-effect: non-scaling-stroke;\n }\n\n .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-arrow {\n bottom: 0;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-arrow:before {\n bottom: -7px;\n border-width: 8px 8px 0;\n border-top-color: initial;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-arrow:after {\n bottom: -8px;\n left: -1px;\n border-width: 9px 9px 0;\n border-top-color: var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));\n clip-path: inset(2px 0 0 0);\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-arrow {\n top: 0;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-arrow:before {\n top: -7px;\n border-width: 0 8px 8px;\n border-bottom-color: initial;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-arrow:after {\n top: -8px;\n left: -1px;\n border-width: 0 9px 9px;\n border-bottom-color: var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));\n clip-path: inset(0 0 2px 0);\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-arrow {\n right: 0;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-arrow:before {\n right: -7px;\n border-width: 8px 0 8px 8px;\n border-left-color: initial;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-arrow:after {\n right: -8px;\n top: -1px;\n border-width: 9px 0 9px 9px;\n border-left-color: var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));\n clip-path: inset(0 0 0 2px);\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-arrow {\n left: 0;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-arrow:before {\n left: -7px;\n border-width: 8px 8px 8px 0;\n border-right-color: initial;\n }\n .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-arrow:after {\n left: -8px;\n top: -1px;\n border-width: 9px 9px 9px 0;\n border-right-color: var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));\n clip-path: inset(0 2px 0 0);\n }\n\n .tippy-box[data-theme~='floating-panel'] > .tippy-arrow {\n width: 16px;\n height: 16px;\n color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n }\n /* :after is a 1px-larger triangle in the border colour, stacked behind :before, so the border continues around the arrow. */\n .tippy-box[data-theme~='floating-panel'] > .tippy-arrow:before,\n .tippy-box[data-theme~='floating-panel'] > .tippy-arrow:after {\n content: '';\n position: absolute;\n border-color: transparent;\n border-style: solid;\n }\n .tippy-box[data-theme~='floating-panel'] > .tippy-arrow:before { z-index: 1; }\n .tippy-box[data-theme~='floating-panel'] > .tippy-arrow:after { z-index: 0; }\n`;\n\nexport function injectGlobalFloatingPanelStyles(): void {\n if (typeof document === 'undefined') return;\n\n const STYLE_ID = 'nile-floating-panel-styles';\n if (document.getElementById(STYLE_ID)) return;\n\n const style = document.createElement('style');\n style.id = STYLE_ID;\n style.textContent = styles.cssText;\n document.head?.appendChild(style);\n}\n\ninjectGlobalFloatingPanelStyles();\n\nexport default [styles];\n"],"names":["styles","css","_templateObject","_taggedTemplateLiteral","document","STYLE_ID","getElementById","style","createElement","id","textContent","cssText","head","appendChild","injectGlobalFloatingPanelStyles"],"mappings":"oTASaA,CAAAA,CAASC,CAAG,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA,+gOAiMvB,GAAwB,WAAA,EAAA,MAAbC,CAAAA,QAA0B,CAAA,OAErC,GAAMC,CAAAA,CAAAA,CAAW,4BACjB,CAAA,GAAID,QAASE,CAAAA,cAAAA,CAAeD,CAAW,CAAA,CAAA,OAEvC,GAAME,CAAAA,CAAAA,CAAQH,QAASI,CAAAA,aAAAA,CAAc,OACrCD,CAAAA,CAAAA,CAAAA,CAAME,EAAKJ,CAAAA,CAAAA,CACXE,CAAMG,CAAAA,WAAAA,CAAcV,CAAOW,CAAAA,OAAAA,EAAAA,cAAAA,CAC3BP,QAASQ,CAAAA,IAAAA,UAAAA,cAAAA,iBAATR,cAAAA,CAAeS,WAAYN,CAAAA,CAAAA,CAC7B,EAEAO"}
@@ -72,26 +72,24 @@ import{css as t}from"lit";const a=t`
72
72
  display: none;
73
73
  }
74
74
 
75
+ /* Offset arrow by 0.5px so its outline aligns with the panel border and its fill fully covers it. */
75
76
  .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-svg-arrow { bottom: 0; }
76
- .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-svg-arrow:after,
77
77
  .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-svg-arrow > svg {
78
- top: 16px;
78
+ top: 15.5px;
79
79
  transform: rotate(180deg);
80
80
  }
81
81
  .tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-svg-arrow { top: 0; }
82
- .tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-svg-arrow > svg { bottom: 16px; }
82
+ .tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-svg-arrow > svg { bottom: 15.5px; }
83
83
  .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-svg-arrow { right: 0; }
84
- .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-svg-arrow:after,
85
84
  .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-svg-arrow > svg {
86
85
  transform: rotate(90deg);
87
- top: calc(50% - 3px);
86
+ top: calc(50% - 3.5px);
88
87
  left: 11px;
89
88
  }
90
89
  .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-svg-arrow { left: 0; }
91
- .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-svg-arrow:after,
92
90
  .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-svg-arrow > svg {
93
91
  transform: rotate(-90deg);
94
- top: calc(50% - 3px);
92
+ top: calc(50% - 3.5px);
95
93
  right: 11px;
96
94
  }
97
95
 
@@ -104,6 +102,14 @@ import{css as t}from"lit";const a=t`
104
102
 
105
103
  .tippy-box[data-theme~='floating-panel'] > .tippy-svg-arrow > svg {
106
104
  position: absolute;
105
+ overflow: visible;
106
+ }
107
+
108
+ .tippy-box[data-theme~='floating-panel'] > .tippy-svg-arrow > svg > .nile-floating-panel__arrow-outline {
109
+ fill: none;
110
+ stroke: var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));
111
+ stroke-width: 1;
112
+ vector-effect: non-scaling-stroke;
107
113
  }
108
114
 
109
115
  .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-arrow {
@@ -114,6 +120,13 @@ import{css as t}from"lit";const a=t`
114
120
  border-width: 8px 8px 0;
115
121
  border-top-color: initial;
116
122
  }
123
+ .tippy-box[data-theme~='floating-panel'][data-placement^='top'] > .tippy-arrow:after {
124
+ bottom: -8px;
125
+ left: -1px;
126
+ border-width: 9px 9px 0;
127
+ border-top-color: var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));
128
+ clip-path: inset(2px 0 0 0);
129
+ }
117
130
  .tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-arrow {
118
131
  top: 0;
119
132
  }
@@ -122,6 +135,13 @@ import{css as t}from"lit";const a=t`
122
135
  border-width: 0 8px 8px;
123
136
  border-bottom-color: initial;
124
137
  }
138
+ .tippy-box[data-theme~='floating-panel'][data-placement^='bottom'] > .tippy-arrow:after {
139
+ top: -8px;
140
+ left: -1px;
141
+ border-width: 0 9px 9px;
142
+ border-bottom-color: var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));
143
+ clip-path: inset(0 0 2px 0);
144
+ }
125
145
  .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-arrow {
126
146
  right: 0;
127
147
  }
@@ -130,6 +150,13 @@ import{css as t}from"lit";const a=t`
130
150
  border-width: 8px 0 8px 8px;
131
151
  border-left-color: initial;
132
152
  }
153
+ .tippy-box[data-theme~='floating-panel'][data-placement^='left'] > .tippy-arrow:after {
154
+ right: -8px;
155
+ top: -1px;
156
+ border-width: 9px 0 9px 9px;
157
+ border-left-color: var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));
158
+ clip-path: inset(0 0 0 2px);
159
+ }
133
160
  .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-arrow {
134
161
  left: 0;
135
162
  }
@@ -138,16 +165,27 @@ import{css as t}from"lit";const a=t`
138
165
  border-width: 8px 8px 8px 0;
139
166
  border-right-color: initial;
140
167
  }
168
+ .tippy-box[data-theme~='floating-panel'][data-placement^='right'] > .tippy-arrow:after {
169
+ left: -8px;
170
+ top: -1px;
171
+ border-width: 9px 9px 9px 0;
172
+ border-right-color: var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));
173
+ clip-path: inset(0 2px 0 0);
174
+ }
141
175
 
142
176
  .tippy-box[data-theme~='floating-panel'] > .tippy-arrow {
143
177
  width: 16px;
144
178
  height: 16px;
145
179
  color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));
146
180
  }
147
- .tippy-box[data-theme~='floating-panel'] > .tippy-arrow:before {
181
+ /* :after is a 1px-larger triangle in the border colour, stacked behind :before, so the border continues around the arrow. */
182
+ .tippy-box[data-theme~='floating-panel'] > .tippy-arrow:before,
183
+ .tippy-box[data-theme~='floating-panel'] > .tippy-arrow:after {
148
184
  content: '';
149
185
  position: absolute;
150
186
  border-color: transparent;
151
187
  border-style: solid;
152
188
  }
189
+ .tippy-box[data-theme~='floating-panel'] > .tippy-arrow:before { z-index: 1; }
190
+ .tippy-box[data-theme~='floating-panel'] > .tippy-arrow:after { z-index: 0; }
153
191
  `;!function(){if("undefined"==typeof document)return;const t="nile-floating-panel-styles";if(document.getElementById(t))return;const e=document.createElement("style");e.id=t,e.textContent=a.cssText,document.head?.appendChild(e)}();export{a as s};
@@ -1 +1 @@
1
- import{__decorate as t}from"tslib";import{property as i,customElement as e}from"lit/decorators.js";import{s}from"./nile-floating-panel.css.esm.js";import{N as n}from"../internal/nile-element.esm.js";import{R as h,f as o,t as r}from"../tippy.esm-57628c2b.esm.js";import{p as l,a}from"../nile-lite-tooltip/utils.esm.js";import{V as d}from"../utilities/visibility-manager.esm.js";import"lit";import"../internal/accessibility/a11y.state.enum.esm.js";import"../internal/accessibility/a11y.property.enum.esm.js";import"../internal/accessibility/role.enum.esm.js";var c;let p=c=class extends n{constructor(){super(...arguments),this.placement="bottom",this.trigger="click",this.distance=12,this.skidding=0,this.arrow="round",this.animation="fade",this.duration=200,this.delay=0,this.interactive=!0,this.interactiveBorder=2,this.maxWidth="none",this.zIndex=9999,this.followCursor=!1,this.hideOnClick=!0,this.inertia=!1,this.allowHTML=!1,this.flip=!0,this.for=null,this.open=!1,this.preventOverlayClose=!1,this.title="",this.disabled=!1,this.group=null,this.closeOnEscape=!0,this.panelClass="",this.enableVisibilityEffect=!1,this.enableTabClose=!1,this.tippyInstance=null,this.panelContainer=null,this.anchorEl=null,this._suppressOpenWatch=!1,this._panelId=`nile-fp-${Math.random().toString(36).slice(2,9)}`,this._boundEscHandler=this._handleEscapeKey.bind(this),this._pendingShowListener=null,this._pendingHideListener=null}static get prefersReducedMotion(){return c._reducedMotionQuery||(c._reducedMotionQuery=window.matchMedia("(prefers-reduced-motion: reduce)")),c._reducedMotionQuery.matches}static get styles(){return[s]}createRenderRoot(){return this}firstUpdated(){this._buildDOM(),this._attachTippy(),this._joinGroup(),this.visibilityManager=new d({host:this,target:this.anchorEl||null,enableVisibilityEffect:this.enableVisibilityEffect,enableTabClose:this.enableTabClose,isOpen:()=>this.open,onAnchorOutOfView:()=>{this._setOpen(!1),this.tippyInstance?.hide(),this.emit("nile-visibility-change",{visible:!1,reason:"anchor-out-of-view"})},onDocumentHidden:()=>{this._setOpen(!1),this.tippyInstance?.hide(),this.emit("nile-visibility-change",{visible:!1,reason:"document-hidden"})},emit:(t,i)=>this.emit(`nile-${t}`,i)}),this.emit("nile-init")}disconnectedCallback(){super.disconnectedCallback(),this._cleanupPendingShowListener(),this._cleanupPendingHideListener(),this.visibilityManager?.cleanup(),this._leaveGroup(),this._removeEscListener(),this._destroyTippy(),this.emit("nile-destroy")}updated(t){if(super.updated(t),!this.panelContainer)return;t.has("open")&&!this._suppressOpenWatch&&(this.open?(this.visibilityManager?.setup(),queueMicrotask((()=>this.tippyInstance?.show()))):(this.visibilityManager?.cleanup(),this.tippyInstance?.hide())),t.has("group")&&(this._leaveGroup(t.get("group")),this._joinGroup());["placement","trigger","distance","skidding","arrow","animation","duration","delay","interactive","interactiveBorder","maxWidth","zIndex","followCursor","hideOnClick","inertia","allowHTML","flip","preventOverlayClose","disabled","width","height","panelClass"].some((i=>t.has(i)))&&this._attachTippy()}show(){return this.open=!0,new Promise((t=>{this._cleanupPendingShowListener();const i=()=>{this._pendingShowListener=null,t()};this._pendingShowListener=i,this.addEventListener("nile-after-show",i,{once:!0})}))}hide(){return this.open=!1,new Promise((t=>{this._cleanupPendingHideListener();const i=()=>{this._pendingHideListener=null,t()};this._pendingHideListener=i,this.addEventListener("nile-after-hide",i,{once:!0})}))}_cleanupPendingShowListener(){this._pendingShowListener&&(this.removeEventListener("nile-after-show",this._pendingShowListener),this._pendingShowListener=null)}_cleanupPendingHideListener(){this._pendingHideListener&&(this.removeEventListener("nile-after-hide",this._pendingHideListener),this._pendingHideListener=null)}toggle(){this.open=!this.open}refresh(){this._attachTippy()}reposition(){this.tippyInstance?.popperInstance?.update()}getCurrentPlacement(){const t=this.tippyInstance?.popper,i=t?.querySelector(".tippy-box");return i?.dataset.placement??this.placement}isPositioningOptimal(){return this.getCurrentPlacement()===this.placement}_joinGroup(){if(!this.group)return;let t=c._groups.get(this.group);t||(t=new Set,c._groups.set(this.group,t)),t.add(this)}_leaveGroup(t){const i=t??this.group;if(!i)return;const e=c._groups.get(i);e&&(e.delete(this),0===e.size&&c._groups.delete(i))}_hideGroupSiblings(){if(!this.group)return;const t=c._groups.get(this.group);t&&t.forEach((t=>{t!==this&&t.open&&(t._setOpen(!1),t.tippyInstance?.hide())}))}_addEscListener(){this.closeOnEscape&&document.addEventListener("keydown",this._boundEscHandler)}_removeEscListener(){document.removeEventListener("keydown",this._boundEscHandler)}_handleEscapeKey(t){"Escape"===t.key&&this.open&&(this._setOpen(!1),this.tippyInstance?.hide())}_applyAria(){this.anchorEl&&this.panelContainer&&(this.panelContainer.setAttribute("role","dialog"),this.panelContainer.id=this._panelId,this.anchorEl.setAttribute("aria-haspopup","dialog"),this._syncAriaExpanded())}_syncAriaExpanded(){this.anchorEl?.setAttribute("aria-expanded",String(this.open)),this.open?this.anchorEl?.setAttribute("aria-describedby",this._panelId):this.anchorEl?.removeAttribute("aria-describedby")}_buildDOM(){const t=Array.from(this.childNodes);this.anchorEl=null;const i=[],e=[],s=[];let n=!1;for(const h of t){if(h instanceof HTMLElement){const t=h.getAttribute("slot");if("title"===t){h.removeAttribute("slot"),i.push(h);continue}if("action"===t){h.removeAttribute("slot"),e.push(h);continue}if(!n&&!this.for){this.anchorEl=h,n=!0;continue}}s.push(h)}if(this.for){const t=document.getElementById(this.for);t&&(this.anchorEl=t)}for(;this.firstChild;)this.removeChild(this.firstChild);this.anchorEl&&!this.for&&this.appendChild(this.anchorEl),this.panelContainer=document.createElement("div"),this.panelContainer.className="nile-floating-panel__content",this.panelContainer.style.display="none";const h=document.createElement("div");if(h.className="nile-floating-panel__body",i.length>0||this.title){const t=document.createElement("div");t.className="nile-floating-panel__title",this.title?t.textContent=this.title:i.forEach((i=>t.appendChild(i))),h.appendChild(t)}if(s.length>0){const t=document.createElement("div");t.className="nile-floating-panel__main",s.forEach((i=>t.appendChild(i))),h.appendChild(t)}if(e.length>0){const t=document.createElement("div");t.className="nile-floating-panel__action",e.forEach((i=>t.appendChild(i))),h.appendChild(t)}this.panelContainer.appendChild(h),this.appendChild(this.panelContainer),this._applyAria()}_resolveArrow(){switch(this.arrow){case"round":return h;case"none":return!1;default:return!0}}_setOpen(t){this._suppressOpenWatch=!0,this.open=t,this._syncAriaExpanded(),this._suppressOpenWatch=!1}_getEffectiveDuration(){return c.prefersReducedMotion?0:l(this.duration)}_getEffectiveAnimation(){return!c.prefersReducedMotion&&this.animation}_attachTippy(){if(this._destroyTippy(),this.disabled||!this.anchorEl||!this.panelContainer)return;const t=a(this.followCursor),i=!this.preventOverlayClose&&this.hideOnClick,e={content:this.panelContainer,placement:this.placement,trigger:this.trigger,offset:[this.skidding,this.distance],theme:"floating-panel",animation:this._getEffectiveAnimation(),interactive:this.interactive,arrow:this._resolveArrow(),duration:this._getEffectiveDuration(),allowHTML:this.allowHTML,delay:this.delay,maxWidth:this.maxWidth,zIndex:this.zIndex,hideOnClick:i,inertia:!c.prefersReducedMotion&&this.inertia,interactiveBorder:this.interactiveBorder,appendTo:document.body,followCursor:t,plugins:t?[o]:[],popperOptions:{modifiers:[{name:"flip",enabled:this.flip}]},onMount:t=>{this.panelContainer&&(this.panelContainer.style.display=""),this.panelClass&&this.panelClass.split(/\s+/).filter(Boolean).forEach((i=>{t.popper.classList.add(i)}))},onShow:t=>{this.panelContainer&&(this.panelContainer.style.display="");const i=t.popper.querySelector(".tippy-content");i&&(this.width&&(i.style.width=this.width),this.height&&(i.style.height=this.height,i.style.overflow="auto")),this._hideGroupSiblings(),this._setOpen(!0),this._addEscListener(),this.dispatchEvent(new CustomEvent("nile-show",{detail:{instance:t,target:t.reference}})),this.dispatchEvent(new CustomEvent("nile-toggle",{detail:{open:!0,instance:t,target:t.reference}}))},onShown:t=>{this.dispatchEvent(new CustomEvent("nile-after-show",{detail:{instance:t,target:t.reference}}))},onHide:t=>{this._setOpen(!1),this._removeEscListener(),this.dispatchEvent(new CustomEvent("nile-hide",{detail:{instance:t,target:t.reference}})),this.dispatchEvent(new CustomEvent("nile-toggle",{detail:{open:!1,instance:t,target:t.reference}}))},onHidden:t=>{this.panelContainer&&(this.panelContainer.style.display="none"),this.dispatchEvent(new CustomEvent("nile-after-hide",{detail:{instance:t,target:t.reference}}))}};this.tippyInstance=r(this.anchorEl,e),this.open&&queueMicrotask((()=>this.tippyInstance?.show()))}_destroyTippy(){this.tippyInstance&&(this.tippyInstance.destroy(),this.tippyInstance=null),this.panelContainer&&(this.panelContainer.style.display="none",this.panelContainer.parentElement!==this&&this.appendChild(this.panelContainer))}};p._groups=new Map,p._reducedMotionQuery=null,t([i({type:String})],p.prototype,"placement",void 0),t([i({type:String})],p.prototype,"trigger",void 0),t([i({type:Number})],p.prototype,"distance",void 0),t([i({type:Number})],p.prototype,"skidding",void 0),t([i({type:String,reflect:!0})],p.prototype,"arrow",void 0),t([i({type:String,reflect:!0})],p.prototype,"animation",void 0),t([i({type:String,reflect:!0})],p.prototype,"duration",void 0),t([i({type:String,reflect:!0})],p.prototype,"delay",void 0),t([i({type:Boolean,reflect:!0})],p.prototype,"interactive",void 0),t([i({type:Number,reflect:!0})],p.prototype,"interactiveBorder",void 0),t([i({type:String,reflect:!0})],p.prototype,"maxWidth",void 0),t([i({type:Number,reflect:!0})],p.prototype,"zIndex",void 0),t([i({type:String,reflect:!0})],p.prototype,"followCursor",void 0),t([i({type:Boolean,reflect:!0})],p.prototype,"hideOnClick",void 0),t([i({type:Boolean,reflect:!0})],p.prototype,"inertia",void 0),t([i({type:Boolean,reflect:!0})],p.prototype,"allowHTML",void 0),t([i({type:Boolean,reflect:!0})],p.prototype,"flip",void 0),t([i({type:String,attribute:"for"})],p.prototype,"for",void 0),t([i({type:Boolean,reflect:!0})],p.prototype,"open",void 0),t([i({type:Boolean,reflect:!0})],p.prototype,"preventOverlayClose",void 0),t([i({type:String,reflect:!0})],p.prototype,"title",void 0),t([i({type:Boolean,reflect:!0})],p.prototype,"disabled",void 0),t([i({type:String,reflect:!0})],p.prototype,"width",void 0),t([i({type:String,reflect:!0})],p.prototype,"height",void 0),t([i({type:String,reflect:!0})],p.prototype,"group",void 0),t([i({type:Boolean,reflect:!0})],p.prototype,"closeOnEscape",void 0),t([i({type:String,reflect:!0,attribute:!0})],p.prototype,"panelClass",void 0),t([i({type:Boolean,reflect:!0})],p.prototype,"enableVisibilityEffect",void 0),t([i({type:Boolean,reflect:!0})],p.prototype,"enableTabClose",void 0),p=c=t([e("nile-floating-panel")],p);export{p as N};
1
+ import{__decorate as t}from"tslib";import{property as i,customElement as e}from"lit/decorators.js";import{s}from"./nile-floating-panel.css.esm.js";import{N as n}from"../internal/nile-element.esm.js";import{f as h,t as o,R as r}from"../tippy.esm-57628c2b.esm.js";import{p as l,a}from"../nile-lite-tooltip/utils.esm.js";import{V as d}from"../utilities/visibility-manager.esm.js";import"lit";import"../internal/accessibility/a11y.state.enum.esm.js";import"../internal/accessibility/a11y.property.enum.esm.js";import"../internal/accessibility/role.enum.esm.js";var c;const p=/^<svg width="(\d+)" height="(\d+)"[^>]*><path d="(.+?)H0z"/.exec(r),u=(()=>{if(!p)return r;const[,t,i,e]=p,s=Number(t),n=Number(i)+1;return`<svg width="${s}" height="${n}" viewBox="0 0 ${s} ${n}" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg"><path d="${e}V${n}H0Z"></path><path class="nile-floating-panel__arrow-outline" d="${e}"></path></svg>`})();let f=c=class extends n{constructor(){super(...arguments),this.placement="bottom",this.trigger="click",this.distance=12,this.skidding=0,this.arrow="round",this.animation="fade",this.duration=200,this.delay=0,this.interactive=!0,this.interactiveBorder=2,this.maxWidth="none",this.zIndex=9999,this.followCursor=!1,this.hideOnClick=!0,this.inertia=!1,this.allowHTML=!1,this.flip=!0,this.for=null,this.open=!1,this.preventOverlayClose=!1,this.title="",this.disabled=!1,this.group=null,this.closeOnEscape=!0,this.panelClass="",this.enableVisibilityEffect=!1,this.enableTabClose=!1,this.tippyInstance=null,this.panelContainer=null,this.anchorEl=null,this._suppressOpenWatch=!1,this._panelId=`nile-fp-${Math.random().toString(36).slice(2,9)}`,this._boundEscHandler=this._handleEscapeKey.bind(this),this._pendingShowListener=null,this._pendingHideListener=null}static get prefersReducedMotion(){return c._reducedMotionQuery||(c._reducedMotionQuery=window.matchMedia("(prefers-reduced-motion: reduce)")),c._reducedMotionQuery.matches}static get styles(){return[s]}createRenderRoot(){return this}firstUpdated(){this._buildDOM(),this._attachTippy(),this._joinGroup(),this.visibilityManager=new d({host:this,target:this.anchorEl||null,enableVisibilityEffect:this.enableVisibilityEffect,enableTabClose:this.enableTabClose,isOpen:()=>this.open,onAnchorOutOfView:()=>{this._setOpen(!1),this.tippyInstance?.hide(),this.emit("nile-visibility-change",{visible:!1,reason:"anchor-out-of-view"})},onDocumentHidden:()=>{this._setOpen(!1),this.tippyInstance?.hide(),this.emit("nile-visibility-change",{visible:!1,reason:"document-hidden"})},emit:(t,i)=>this.emit(`nile-${t}`,i)}),this.emit("nile-init")}disconnectedCallback(){super.disconnectedCallback(),this._cleanupPendingShowListener(),this._cleanupPendingHideListener(),this.visibilityManager?.cleanup(),this._leaveGroup(),this._removeEscListener(),this._destroyTippy(),this.emit("nile-destroy")}updated(t){if(super.updated(t),!this.panelContainer)return;t.has("open")&&!this._suppressOpenWatch&&(this.open?(this.visibilityManager?.setup(),queueMicrotask((()=>this.tippyInstance?.show()))):(this.visibilityManager?.cleanup(),this.tippyInstance?.hide())),t.has("group")&&(this._leaveGroup(t.get("group")),this._joinGroup());["placement","trigger","distance","skidding","arrow","animation","duration","delay","interactive","interactiveBorder","maxWidth","zIndex","followCursor","hideOnClick","inertia","allowHTML","flip","preventOverlayClose","disabled","width","height","panelClass"].some((i=>t.has(i)))&&this._attachTippy()}show(){return this.open=!0,new Promise((t=>{this._cleanupPendingShowListener();const i=()=>{this._pendingShowListener=null,t()};this._pendingShowListener=i,this.addEventListener("nile-after-show",i,{once:!0})}))}hide(){return this.open=!1,new Promise((t=>{this._cleanupPendingHideListener();const i=()=>{this._pendingHideListener=null,t()};this._pendingHideListener=i,this.addEventListener("nile-after-hide",i,{once:!0})}))}_cleanupPendingShowListener(){this._pendingShowListener&&(this.removeEventListener("nile-after-show",this._pendingShowListener),this._pendingShowListener=null)}_cleanupPendingHideListener(){this._pendingHideListener&&(this.removeEventListener("nile-after-hide",this._pendingHideListener),this._pendingHideListener=null)}toggle(){this.open=!this.open}refresh(){this._attachTippy()}reposition(){this.tippyInstance?.popperInstance?.update()}getCurrentPlacement(){const t=this.tippyInstance?.popper,i=t?.querySelector(".tippy-box");return i?.dataset.placement??this.placement}isPositioningOptimal(){return this.getCurrentPlacement()===this.placement}_joinGroup(){if(!this.group)return;let t=c._groups.get(this.group);t||(t=new Set,c._groups.set(this.group,t)),t.add(this)}_leaveGroup(t){const i=t??this.group;if(!i)return;const e=c._groups.get(i);e&&(e.delete(this),0===e.size&&c._groups.delete(i))}_hideGroupSiblings(){if(!this.group)return;const t=c._groups.get(this.group);t&&t.forEach((t=>{t!==this&&t.open&&(t._setOpen(!1),t.tippyInstance?.hide())}))}_addEscListener(){this.closeOnEscape&&document.addEventListener("keydown",this._boundEscHandler)}_removeEscListener(){document.removeEventListener("keydown",this._boundEscHandler)}_handleEscapeKey(t){"Escape"===t.key&&this.open&&(this._setOpen(!1),this.tippyInstance?.hide())}_applyAria(){this.anchorEl&&this.panelContainer&&(this.panelContainer.setAttribute("role","dialog"),this.panelContainer.id=this._panelId,this.anchorEl.setAttribute("aria-haspopup","dialog"),this._syncAriaExpanded())}_syncAriaExpanded(){this.anchorEl?.setAttribute("aria-expanded",String(this.open)),this.open?this.anchorEl?.setAttribute("aria-describedby",this._panelId):this.anchorEl?.removeAttribute("aria-describedby")}_buildDOM(){const t=Array.from(this.childNodes);this.anchorEl=null;const i=[],e=[],s=[];let n=!1;for(const h of t){if(h instanceof HTMLElement){const t=h.getAttribute("slot");if("title"===t){h.removeAttribute("slot"),i.push(h);continue}if("action"===t){h.removeAttribute("slot"),e.push(h);continue}if(!n&&!this.for){this.anchorEl=h,n=!0;continue}}s.push(h)}if(this.for){const t=document.getElementById(this.for);t&&(this.anchorEl=t)}for(;this.firstChild;)this.removeChild(this.firstChild);this.anchorEl&&!this.for&&this.appendChild(this.anchorEl),this.panelContainer=document.createElement("div"),this.panelContainer.className="nile-floating-panel__content",this.panelContainer.style.display="none";const h=document.createElement("div");if(h.className="nile-floating-panel__body",i.length>0||this.title){const t=document.createElement("div");t.className="nile-floating-panel__title",this.title?t.textContent=this.title:i.forEach((i=>t.appendChild(i))),h.appendChild(t)}if(s.length>0){const t=document.createElement("div");t.className="nile-floating-panel__main",s.forEach((i=>t.appendChild(i))),h.appendChild(t)}if(e.length>0){const t=document.createElement("div");t.className="nile-floating-panel__action",e.forEach((i=>t.appendChild(i))),h.appendChild(t)}this.panelContainer.appendChild(h),this.appendChild(this.panelContainer),this._applyAria()}_resolveArrow(){switch(this.arrow){case"round":return u;case"none":return!1;default:return!0}}_setOpen(t){this._suppressOpenWatch=!0,this.open=t,this._syncAriaExpanded(),this._suppressOpenWatch=!1}_getEffectiveDuration(){return c.prefersReducedMotion?0:l(this.duration)}_getEffectiveAnimation(){return!c.prefersReducedMotion&&this.animation}_attachTippy(){if(this._destroyTippy(),this.disabled||!this.anchorEl||!this.panelContainer)return;const t=a(this.followCursor),i=!this.preventOverlayClose&&this.hideOnClick,e={content:this.panelContainer,placement:this.placement,trigger:this.trigger,offset:[this.skidding,this.distance],theme:"floating-panel",animation:this._getEffectiveAnimation(),interactive:this.interactive,arrow:this._resolveArrow(),duration:this._getEffectiveDuration(),allowHTML:this.allowHTML,delay:this.delay,maxWidth:this.maxWidth,zIndex:this.zIndex,hideOnClick:i,inertia:!c.prefersReducedMotion&&this.inertia,interactiveBorder:this.interactiveBorder,appendTo:document.body,followCursor:t,plugins:t?[h]:[],popperOptions:{modifiers:[{name:"flip",enabled:this.flip}]},onMount:t=>{this.panelContainer&&(this.panelContainer.style.display=""),this.panelClass&&this.panelClass.split(/\s+/).filter(Boolean).forEach((i=>{t.popper.classList.add(i)}))},onShow:t=>{this.panelContainer&&(this.panelContainer.style.display="");const i=t.popper.querySelector(".tippy-content");i&&(this.width&&(i.style.width=this.width),this.height&&(i.style.height=this.height,i.style.overflow="auto")),this._hideGroupSiblings(),this._setOpen(!0),this._addEscListener(),this.dispatchEvent(new CustomEvent("nile-show",{detail:{instance:t,target:t.reference}})),this.dispatchEvent(new CustomEvent("nile-toggle",{detail:{open:!0,instance:t,target:t.reference}}))},onShown:t=>{this.dispatchEvent(new CustomEvent("nile-after-show",{detail:{instance:t,target:t.reference}}))},onHide:t=>{this._setOpen(!1),this._removeEscListener(),this.dispatchEvent(new CustomEvent("nile-hide",{detail:{instance:t,target:t.reference}})),this.dispatchEvent(new CustomEvent("nile-toggle",{detail:{open:!1,instance:t,target:t.reference}}))},onHidden:t=>{this.panelContainer&&(this.panelContainer.style.display="none"),this.dispatchEvent(new CustomEvent("nile-after-hide",{detail:{instance:t,target:t.reference}}))}};this.tippyInstance=o(this.anchorEl,e),this.open&&queueMicrotask((()=>this.tippyInstance?.show()))}_destroyTippy(){this.tippyInstance&&(this.tippyInstance.destroy(),this.tippyInstance=null),this.panelContainer&&(this.panelContainer.style.display="none",this.panelContainer.parentElement!==this&&this.appendChild(this.panelContainer))}};f._groups=new Map,f._reducedMotionQuery=null,t([i({type:String})],f.prototype,"placement",void 0),t([i({type:String})],f.prototype,"trigger",void 0),t([i({type:Number})],f.prototype,"distance",void 0),t([i({type:Number})],f.prototype,"skidding",void 0),t([i({type:String,reflect:!0})],f.prototype,"arrow",void 0),t([i({type:String,reflect:!0})],f.prototype,"animation",void 0),t([i({type:String,reflect:!0})],f.prototype,"duration",void 0),t([i({type:String,reflect:!0})],f.prototype,"delay",void 0),t([i({type:Boolean,reflect:!0})],f.prototype,"interactive",void 0),t([i({type:Number,reflect:!0})],f.prototype,"interactiveBorder",void 0),t([i({type:String,reflect:!0})],f.prototype,"maxWidth",void 0),t([i({type:Number,reflect:!0})],f.prototype,"zIndex",void 0),t([i({type:String,reflect:!0})],f.prototype,"followCursor",void 0),t([i({type:Boolean,reflect:!0})],f.prototype,"hideOnClick",void 0),t([i({type:Boolean,reflect:!0})],f.prototype,"inertia",void 0),t([i({type:Boolean,reflect:!0})],f.prototype,"allowHTML",void 0),t([i({type:Boolean,reflect:!0})],f.prototype,"flip",void 0),t([i({type:String,attribute:"for"})],f.prototype,"for",void 0),t([i({type:Boolean,reflect:!0})],f.prototype,"open",void 0),t([i({type:Boolean,reflect:!0})],f.prototype,"preventOverlayClose",void 0),t([i({type:String,reflect:!0})],f.prototype,"title",void 0),t([i({type:Boolean,reflect:!0})],f.prototype,"disabled",void 0),t([i({type:String,reflect:!0})],f.prototype,"width",void 0),t([i({type:String,reflect:!0})],f.prototype,"height",void 0),t([i({type:String,reflect:!0})],f.prototype,"group",void 0),t([i({type:Boolean,reflect:!0})],f.prototype,"closeOnEscape",void 0),t([i({type:String,reflect:!0,attribute:!0})],f.prototype,"panelClass",void 0),t([i({type:Boolean,reflect:!0})],f.prototype,"enableVisibilityEffect",void 0),t([i({type:Boolean,reflect:!0})],f.prototype,"enableTabClose",void 0),f=c=t([e("nile-floating-panel")],f);export{f as N};
@@ -6,5 +6,5 @@ System.register(["tslib","../lit-html-9b3af046.cjs.js","lit/decorators.js","./ni
6
6
  * @license
7
7
  * Copyright 2017 Google LLC
8
8
  * SPDX-License-Identifier: BSD-3-Clause
9
- */T=/*#__PURE__*/function(_B){function T(){var _this4;_classCallCheck(this,T);_this4=_callSuper(this,T,arguments),_this4.renderOptions={host:_assertThisInitialized(_this4)},_this4._$Do=void 0;return _this4;}_inherits(T,_B);return _createClass(T,[{key:"createRenderRoot",value:function createRenderRoot(){var _this$renderOptions,_this$renderOptions$r;var t=_superPropGet(T,"createRenderRoot",this,3)([]);return(_this$renderOptions$r=(_this$renderOptions=this.renderOptions).renderBefore)!==null&&_this$renderOptions$r!==void 0?_this$renderOptions$r:_this$renderOptions.renderBefore=t.firstChild,t;}},{key:"update",value:function update(t){var s=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),_superPropGet(T,"update",this,3)([t]),this._$Do=i(s,this.renderRoot,this.renderOptions);}},{key:"connectedCallback",value:function connectedCallback(){var _this$_$Do;_superPropGet(T,"connectedCallback",this,3)([]),(_this$_$Do=this._$Do)===null||_this$_$Do===void 0?void 0:_this$_$Do.setConnected(!0);}},{key:"disconnectedCallback",value:function disconnectedCallback(){var _this$_$Do2;_superPropGet(T,"disconnectedCallback",this,3)([]),(_this$_$Do2=this._$Do)===null||_this$_$Do2===void 0?void 0:_this$_$Do2.setConnected(!1);}},{key:"render",value:function render(){return s;}}]);}(B);T._$litElement$=!0,T.finalized=!0,(_globalThis$litElemen=globalThis.litElementHydrateSupport)===null||_globalThis$litElemen===void 0?void 0:_globalThis$litElemen.call(globalThis,{LitElement:T});N=globalThis.litElementPolyfillSupport;N!==null&&N!==void 0&&N({LitElement:T}),((_globalThis$litElemen2=globalThis.litElementVersions)!==null&&_globalThis$litElemen2!==void 0?_globalThis$litElemen2:globalThis.litElementVersions=[]).push("4.1.1");_export("N",R=/*#__PURE__*/function(_l){function R(){var _this5;_classCallCheck(this,R);_this5=_callSuper(this,R,arguments),_this5.placement="top",_this5.distance=18,_this5.preventOverlayClose=!1,_this5.arrow=!0,_this5.title="",_this5.open=!1,_this5.isShow=!1,_this5.arrowPlacement="anchor",_this5.portalManager=null,_this5.enableVisibilityEffect=!1,_this5.enableTabClose=!1,_this5.hoist=!1,_this5.portal=!1,_this5.flip=!1,_this5.handleClick=function(){_this5.isShow=!_this5.isShow;document.querySelectorAll("nile-popover").forEach(function(t){t!==_assertThisInitialized(_this5)&&(t.isShow=!1);});},_this5.handleDocumentClick=function(){_this5.isShow&&!_this5.preventOverlayClose&&(_this5.isShow=!1);};return _this5;}_inherits(R,_l);return _createClass(R,[{key:"connectedCallback",value:function connectedCallback(){var _this6=this;_superPropGet(R,"connectedCallback",this,3)([]),this.emit("nile-init"),document.addEventListener("click",this.handleDocumentClick),requestAnimationFrame(function(){_this6.portal&&!_this6.portalManager&&(_this6.portalManager=new c(_this6));});}},{key:"disconnectedCallback",value:function disconnectedCallback(){var _this$visibilityManag;_superPropGet(R,"disconnectedCallback",this,3)([]),this.emit("nile-destroy"),(_this$visibilityManag=this.visibilityManager)!==null&&_this$visibilityManag!==void 0&&_this$visibilityManag.cleanup(),document.removeEventListener("click",this.handleDocumentClick),this.portalManager&&(this.portalManager.cleanupPortalAppend(),this.portalManager=null);}},{key:"firstUpdated",value:function(){var _firstUpdated=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(t){var _this7=this;var i,s;return _regeneratorRuntime().wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:_context2.next=2;return this.updateComplete;case 2:i=this.renderRoot.querySelector('slot[name="anchor"]'),s=i===null||i===void 0?void 0:i.assignedElements({flatten:!0})[0];this.visibilityManager=new p({host:this,target:s||null,enableVisibilityEffect:this.enableVisibilityEffect,enableTabClose:this.enableTabClose,isOpen:function isOpen(){return _this7.isShow;},onAnchorOutOfView:function onAnchorOutOfView(){_this7.isShow=!1,_this7.emit("nile-visibility-change",{visible:!1,reason:"anchor-out-of-view"});},onDocumentHidden:function onDocumentHidden(){_this7.isShow=!1,_this7.emit("nile-visibility-change",{visible:!1,reason:"document-hidden"});},emit:function emit(t,i){return _this7.emit("nile-".concat(t),i);}});case 4:case"end":return _context2.stop();}},_callee2,this);}));function firstUpdated(_x){return _firstUpdated.apply(this,arguments);}return firstUpdated;}()},{key:"updated",value:function updated(t){t.has("open")&&(this.isShow=this.open),t.has("portal")&&(this.portal&&!this.portalManager?this.portalManager=new c(this):!this.portal&&this.portalManager&&(this.portalManager.cleanupPortalAppend(),this.portalManager=null));}},{key:"handleShowHide",value:function handleShowHide(){var _this$visibilityManag2,_this$visibilityManag3;this.isShow?(this.emit("nile-show"),(_this$visibilityManag2=this.visibilityManager)!==null&&_this$visibilityManag2!==void 0&&_this$visibilityManag2.setup(),this.portal&&this.portalManager?this.portalManager.setupPortalAppend():this.portal&&!this.portalManager&&(this.portalManager=new c(this),this.portalManager.setupPortalAppend())):(this.emit("nile-hide"),(_this$visibilityManag3=this.visibilityManager)!==null&&_this$visibilityManag3!==void 0&&_this$visibilityManag3.cleanup(),this.portal&&this.portalManager&&this.portalManager.cleanupPortalAppend());}},{key:"render",value:function render(){var t=this.isShow&&!(this.portal&&this.portalManager);return e(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n <nile-popup\n active\n .arrow=\"","\"\n distance=\"","\"\n placement=\"","\"\n @click=","\n arrowPlacement=\"","\"\n .flip=\"","\"\n shift\n strategy=","\n >\n <slot\n slot=\"anchor\"\n name=\"anchor\"\n aria-describedby=\"tooltip\"\n @click=","\n ></slot>\n ","\n </nile-popup>\n "])),this.arrow&&this.isShow&&!this.portal,this.distance,this.placement,function(t){return t.stopPropagation();},this.arrowPlacement,this.flip,this.hoist?"fixed":"absolute",this.handleClick,t?e(_templateObject2||(_templateObject2=_taggedTemplateLiteral([" <div part=\"popover\" class=\"popover__box\">\n <slot name=\"title\" class=\"popover__title\">","</slot>\n <slot part=\"base\"></slot>\n <slot name=\"action\" class=\"popover__action\"> </slot>\n </div>"])),this.title):e(_templateObject3||(_templateObject3=_taggedTemplateLiteral([""]))));}},{key:"updatePortalContent",value:function updatePortalContent(){this.portalManager&&this.portalManager.updatePortalAppendPosition();}},{key:"forceReposition",value:function forceReposition(){this.portalManager&&this.portalManager.forceReposition();}},{key:"getCurrentPlacement",value:function getCurrentPlacement(){return this.portalManager?this.portalManager.getCurrentPlacement():this.placement;}},{key:"isPositioningOptimal",value:function isPositioningOptimal(){return!this.portalManager||this.portalManager.isPositioningOptimal();}}],[{key:"styles",get:function get(){return[r];}}]);}(l));t([o()],R.prototype,"placement",void 0),t([o({type:Number})],R.prototype,"distance",void 0),t([o({type:Boolean,reflect:!0})],R.prototype,"preventOverlayClose",void 0),t([o({type:Boolean,attribute:"arrow"})],R.prototype,"arrow",void 0),t([o({type:String})],R.prototype,"title",void 0),t([o({type:Boolean})],R.prototype,"open",void 0),t([h()],R.prototype,"isShow",void 0),t([o({attribute:"arrow-placement"})],R.prototype,"arrowPlacement",void 0),t([o({type:Boolean,reflect:!0})],R.prototype,"enableVisibilityEffect",void 0),t([o({type:Boolean,reflect:!0})],R.prototype,"enableTabClose",void 0),t([o({type:Boolean})],R.prototype,"hoist",void 0),t([o({type:Boolean})],R.prototype,"portal",void 0),t([o({type:Boolean})],R.prototype,"flip",void 0),t([a("isShow")],R.prototype,"handleShowHide",null),_export("N",R=t([n("nile-popover")],R));}};});
9
+ */T=/*#__PURE__*/function(_B){function T(){var _this4;_classCallCheck(this,T);_this4=_callSuper(this,T,arguments),_this4.renderOptions={host:_assertThisInitialized(_this4)},_this4._$Do=void 0;return _this4;}_inherits(T,_B);return _createClass(T,[{key:"createRenderRoot",value:function createRenderRoot(){var _this$renderOptions,_this$renderOptions$r;var t=_superPropGet(T,"createRenderRoot",this,3)([]);return(_this$renderOptions$r=(_this$renderOptions=this.renderOptions).renderBefore)!==null&&_this$renderOptions$r!==void 0?_this$renderOptions$r:_this$renderOptions.renderBefore=t.firstChild,t;}},{key:"update",value:function update(t){var s=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),_superPropGet(T,"update",this,3)([t]),this._$Do=i(s,this.renderRoot,this.renderOptions);}},{key:"connectedCallback",value:function connectedCallback(){var _this$_$Do;_superPropGet(T,"connectedCallback",this,3)([]),(_this$_$Do=this._$Do)===null||_this$_$Do===void 0?void 0:_this$_$Do.setConnected(!0);}},{key:"disconnectedCallback",value:function disconnectedCallback(){var _this$_$Do2;_superPropGet(T,"disconnectedCallback",this,3)([]),(_this$_$Do2=this._$Do)===null||_this$_$Do2===void 0?void 0:_this$_$Do2.setConnected(!1);}},{key:"render",value:function render(){return s;}}]);}(B);T._$litElement$=!0,T.finalized=!0,(_globalThis$litElemen=globalThis.litElementHydrateSupport)===null||_globalThis$litElemen===void 0?void 0:_globalThis$litElemen.call(globalThis,{LitElement:T});N=globalThis.litElementPolyfillSupport;N!==null&&N!==void 0&&N({LitElement:T}),((_globalThis$litElemen2=globalThis.litElementVersions)!==null&&_globalThis$litElemen2!==void 0?_globalThis$litElemen2:globalThis.litElementVersions=[]).push("4.1.1");_export("N",R=/*#__PURE__*/function(_l){function R(){var _this5;_classCallCheck(this,R);_this5=_callSuper(this,R,arguments),_this5.placement="top",_this5.distance=12,_this5.preventOverlayClose=!1,_this5.arrow=!0,_this5.title="",_this5.open=!1,_this5.isShow=!1,_this5.arrowPlacement="anchor",_this5.portalManager=null,_this5.enableVisibilityEffect=!1,_this5.enableTabClose=!1,_this5.hoist=!1,_this5.portal=!1,_this5.flip=!1,_this5.handleClick=function(){_this5.isShow=!_this5.isShow;document.querySelectorAll("nile-popover").forEach(function(t){t!==_assertThisInitialized(_this5)&&(t.isShow=!1);});},_this5.handleDocumentClick=function(){_this5.isShow&&!_this5.preventOverlayClose&&(_this5.isShow=!1);};return _this5;}_inherits(R,_l);return _createClass(R,[{key:"connectedCallback",value:function connectedCallback(){var _this6=this;_superPropGet(R,"connectedCallback",this,3)([]),this.emit("nile-init"),document.addEventListener("click",this.handleDocumentClick),requestAnimationFrame(function(){_this6.portal&&!_this6.portalManager&&(_this6.portalManager=new c(_this6));});}},{key:"disconnectedCallback",value:function disconnectedCallback(){var _this$visibilityManag;_superPropGet(R,"disconnectedCallback",this,3)([]),this.emit("nile-destroy"),(_this$visibilityManag=this.visibilityManager)!==null&&_this$visibilityManag!==void 0&&_this$visibilityManag.cleanup(),document.removeEventListener("click",this.handleDocumentClick),this.portalManager&&(this.portalManager.cleanupPortalAppend(),this.portalManager=null);}},{key:"firstUpdated",value:function(){var _firstUpdated=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(t){var _this7=this;var i,s;return _regeneratorRuntime().wrap(function _callee2$(_context2){while(1)switch(_context2.prev=_context2.next){case 0:_context2.next=2;return this.updateComplete;case 2:i=this.renderRoot.querySelector('slot[name="anchor"]'),s=i===null||i===void 0?void 0:i.assignedElements({flatten:!0})[0];this.visibilityManager=new p({host:this,target:s||null,enableVisibilityEffect:this.enableVisibilityEffect,enableTabClose:this.enableTabClose,isOpen:function isOpen(){return _this7.isShow;},onAnchorOutOfView:function onAnchorOutOfView(){_this7.isShow=!1,_this7.emit("nile-visibility-change",{visible:!1,reason:"anchor-out-of-view"});},onDocumentHidden:function onDocumentHidden(){_this7.isShow=!1,_this7.emit("nile-visibility-change",{visible:!1,reason:"document-hidden"});},emit:function emit(t,i){return _this7.emit("nile-".concat(t),i);}});case 4:case"end":return _context2.stop();}},_callee2,this);}));function firstUpdated(_x){return _firstUpdated.apply(this,arguments);}return firstUpdated;}()},{key:"updated",value:function updated(t){t.has("open")&&(this.isShow=this.open),t.has("portal")&&(this.portal&&!this.portalManager?this.portalManager=new c(this):!this.portal&&this.portalManager&&(this.portalManager.cleanupPortalAppend(),this.portalManager=null));}},{key:"handleShowHide",value:function handleShowHide(){var _this$visibilityManag2,_this$visibilityManag3;this.isShow?(this.emit("nile-show"),(_this$visibilityManag2=this.visibilityManager)!==null&&_this$visibilityManag2!==void 0&&_this$visibilityManag2.setup(),this.portal&&this.portalManager?this.portalManager.setupPortalAppend():this.portal&&!this.portalManager&&(this.portalManager=new c(this),this.portalManager.setupPortalAppend())):(this.emit("nile-hide"),(_this$visibilityManag3=this.visibilityManager)!==null&&_this$visibilityManag3!==void 0&&_this$visibilityManag3.cleanup(),this.portal&&this.portalManager&&this.portalManager.cleanupPortalAppend());}},{key:"render",value:function render(){var t=this.isShow&&!(this.portal&&this.portalManager);return e(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n <nile-popup\n active\n .arrow=\"","\"\n distance=\"","\"\n placement=\"","\"\n @click=","\n arrowPlacement=\"","\"\n .flip=\"","\"\n shift\n strategy=","\n >\n <slot\n slot=\"anchor\"\n name=\"anchor\"\n aria-describedby=\"tooltip\"\n @click=","\n ></slot>\n ","\n </nile-popup>\n "])),this.arrow&&this.isShow&&!this.portal,this.distance,this.placement,function(t){return t.stopPropagation();},this.arrowPlacement,this.flip,this.hoist?"fixed":"absolute",this.handleClick,t?e(_templateObject2||(_templateObject2=_taggedTemplateLiteral([" <div part=\"popover\" class=\"popover__box\">\n <slot name=\"title\" class=\"popover__title\">","</slot>\n <slot part=\"base\"></slot>\n <slot name=\"action\" class=\"popover__action\"> </slot>\n </div>"])),this.title):e(_templateObject3||(_templateObject3=_taggedTemplateLiteral([""]))));}},{key:"updatePortalContent",value:function updatePortalContent(){this.portalManager&&this.portalManager.updatePortalAppendPosition();}},{key:"forceReposition",value:function forceReposition(){this.portalManager&&this.portalManager.forceReposition();}},{key:"getCurrentPlacement",value:function getCurrentPlacement(){return this.portalManager?this.portalManager.getCurrentPlacement():this.placement;}},{key:"isPositioningOptimal",value:function isPositioningOptimal(){return!this.portalManager||this.portalManager.isPositioningOptimal();}}],[{key:"styles",get:function get(){return[r];}}]);}(l));t([o()],R.prototype,"placement",void 0),t([o({type:Number})],R.prototype,"distance",void 0),t([o({type:Boolean,reflect:!0})],R.prototype,"preventOverlayClose",void 0),t([o({type:Boolean,attribute:"arrow"})],R.prototype,"arrow",void 0),t([o({type:String})],R.prototype,"title",void 0),t([o({type:Boolean})],R.prototype,"open",void 0),t([h()],R.prototype,"isShow",void 0),t([o({attribute:"arrow-placement"})],R.prototype,"arrowPlacement",void 0),t([o({type:Boolean,reflect:!0})],R.prototype,"enableVisibilityEffect",void 0),t([o({type:Boolean,reflect:!0})],R.prototype,"enableTabClose",void 0),t([o({type:Boolean})],R.prototype,"hoist",void 0),t([o({type:Boolean})],R.prototype,"portal",void 0),t([o({type:Boolean})],R.prototype,"flip",void 0),t([a("isShow")],R.prototype,"handleShowHide",null),_export("N",R=t([n("nile-popover")],R));}};});
10
10
  //# sourceMappingURL=nile-popover.cjs.js.map