@aquera/nile-elements 1.3.1-beta-1 → 1.3.1-beta-1.1

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 (408) hide show
  1. package/demo/index.css +3 -0
  2. package/demo/index.html +126 -17
  3. package/demo/variables.css +0 -1
  4. package/dist/assets/nile-elements-4b5c262d.css +1 -0
  5. package/dist/{fixture-54600b35.cjs.js → fixture-1c49c014.cjs.js} +2 -2
  6. package/dist/{fixture-73855806.cjs.js.map → fixture-1c49c014.cjs.js.map} +1 -1
  7. package/dist/{fixture-9871e8a9.esm.js → fixture-985bba12.esm.js} +1 -1
  8. package/dist/{fixture-73855806.cjs.js → fixture-d1470b58.cjs.js} +2 -2
  9. package/dist/{fixture-54600b35.cjs.js.map → fixture-d1470b58.cjs.js.map} +1 -1
  10. package/dist/{fixture-5b79f853.cjs.js → fixture-dff65c89.cjs.js} +2 -2
  11. package/dist/{fixture-c1d78368.cjs.js.map → fixture-dff65c89.cjs.js.map} +1 -1
  12. package/dist/index.js +138 -108
  13. package/dist/nile-accordion/nile-accordian.test.cjs.js +1 -1
  14. package/dist/nile-accordion/nile-accordian.test.esm.js +1 -1
  15. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +1 -1
  16. package/dist/nile-auto-complete/nile-auto-complete.test.esm.js +1 -1
  17. package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
  18. package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
  19. package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
  20. package/dist/nile-badge/nile-badge.test.esm.js +1 -1
  21. package/dist/nile-button/nile-button.test.cjs.js +1 -1
  22. package/dist/nile-button/nile-button.test.esm.js +1 -1
  23. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +1 -1
  24. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.esm.js +1 -1
  25. package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
  26. package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
  27. package/dist/nile-card/nile-card.test.cjs.js +1 -1
  28. package/dist/nile-card/nile-card.test.esm.js +1 -1
  29. package/dist/nile-checkbox/nile-checkbox.test.cjs.js +1 -1
  30. package/dist/nile-checkbox/nile-checkbox.test.esm.js +1 -1
  31. package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
  32. package/dist/nile-chip/nile-chip.test.esm.js +1 -1
  33. package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
  34. package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
  35. package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
  36. package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
  37. package/dist/nile-dropdown/nile-dropdown.test.cjs.js +1 -1
  38. package/dist/nile-dropdown/nile-dropdown.test.esm.js +1 -1
  39. package/dist/nile-dropdown/portal-manager.cjs.js +1 -1
  40. package/dist/nile-dropdown/portal-manager.cjs.js.map +1 -1
  41. package/dist/nile-dropdown/portal-manager.esm.js +1 -1
  42. package/dist/nile-dropdown/portal-utils.cjs.js +1 -1
  43. package/dist/nile-dropdown/portal-utils.cjs.js.map +1 -1
  44. package/dist/nile-dropdown/portal-utils.esm.js +1 -1
  45. package/dist/nile-empty-state/nile-empty-state.test.cjs.js +1 -1
  46. package/dist/nile-empty-state/nile-empty-state.test.esm.js +1 -1
  47. package/dist/nile-error-message/nile-error-message.test.cjs.js +1 -1
  48. package/dist/nile-error-message/nile-error-message.test.esm.js +1 -1
  49. package/dist/nile-file-preview/nile-file-preview.test.cjs.js +1 -1
  50. package/dist/nile-file-preview/nile-file-preview.test.esm.js +1 -1
  51. package/dist/nile-file-upload/nile-file-upload.test.cjs.js +1 -1
  52. package/dist/nile-file-upload/nile-file-upload.test.esm.js +1 -1
  53. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +1 -1
  54. package/dist/nile-filter-chip/nile-filter-chip.test.esm.js +1 -1
  55. package/dist/nile-form-group/nile-form-group.test.cjs.js +1 -1
  56. package/dist/nile-form-group/nile-form-group.test.esm.js +1 -1
  57. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +1 -1
  58. package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +1 -1
  59. package/dist/nile-hero/nile-hero.test.cjs.js +1 -1
  60. package/dist/nile-hero/nile-hero.test.esm.js +1 -1
  61. package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
  62. package/dist/nile-icon/nile-icon.test.esm.js +1 -1
  63. package/dist/nile-inline-sidebar/nile-inline-sidebar.cjs.js +1 -1
  64. package/dist/nile-inline-sidebar/nile-inline-sidebar.cjs.js.map +1 -1
  65. package/dist/nile-inline-sidebar/nile-inline-sidebar.css.cjs.js +1 -1
  66. package/dist/nile-inline-sidebar/nile-inline-sidebar.css.cjs.js.map +1 -1
  67. package/dist/nile-inline-sidebar/nile-inline-sidebar.css.esm.js +10 -2
  68. package/dist/nile-inline-sidebar/nile-inline-sidebar.esm.js +10 -6
  69. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.cjs.js +1 -1
  70. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.cjs.js.map +1 -1
  71. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.css.cjs.js +1 -1
  72. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.css.cjs.js.map +1 -1
  73. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.css.esm.js +8 -2
  74. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.esm.js +2 -2
  75. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  76. package/dist/nile-input/nile-input.test.esm.js +1 -1
  77. package/dist/nile-light-tooltip/index.esm.js +1 -0
  78. package/dist/nile-light-tooltip/nile-light-tooltip.css.esm.js +6 -0
  79. package/dist/nile-light-tooltip/nile-light-tooltip.esm.js +1 -0
  80. package/dist/nile-link/nile-link.test.cjs.js +1 -1
  81. package/dist/nile-link/nile-link.test.esm.js +1 -1
  82. package/dist/nile-loader/nile-loader.test.cjs.js +1 -1
  83. package/dist/nile-loader/nile-loader.test.esm.js +1 -1
  84. package/dist/nile-popover/nile-popover.test.cjs.js +1 -1
  85. package/dist/nile-popover/nile-popover.test.esm.js +1 -1
  86. package/dist/nile-popup/nile-popup.test.cjs.js +1 -1
  87. package/dist/nile-popup/nile-popup.test.esm.js +1 -1
  88. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +1 -1
  89. package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +1 -1
  90. package/dist/nile-radio/nile-radio.test.cjs.js +1 -1
  91. package/dist/nile-radio/nile-radio.test.esm.js +1 -1
  92. package/dist/nile-radio-group/nile-radio-group.test.cjs.js +1 -1
  93. package/dist/nile-radio-group/nile-radio-group.test.esm.js +1 -1
  94. package/dist/nile-select/nile-select.test.cjs.js +1 -1
  95. package/dist/nile-select/nile-select.test.esm.js +1 -1
  96. package/dist/nile-side-bar/nile-side-bar.cjs.js +1 -1
  97. package/dist/nile-side-bar/nile-side-bar.cjs.js.map +1 -1
  98. package/dist/nile-side-bar/nile-side-bar.css.cjs.js +1 -1
  99. package/dist/nile-side-bar/nile-side-bar.css.cjs.js.map +1 -1
  100. package/dist/nile-side-bar/nile-side-bar.css.esm.js +24 -29
  101. package/dist/nile-side-bar/nile-side-bar.esm.js +7 -1
  102. package/dist/nile-side-bar-expand/nile-side-bar-expand.cjs.js +1 -1
  103. package/dist/nile-side-bar-expand/nile-side-bar-expand.cjs.js.map +1 -1
  104. package/dist/nile-side-bar-expand/nile-side-bar-expand.css.cjs.js +1 -1
  105. package/dist/nile-side-bar-expand/nile-side-bar-expand.css.cjs.js.map +1 -1
  106. package/dist/nile-side-bar-expand/nile-side-bar-expand.css.esm.js +3 -5
  107. package/dist/nile-side-bar-expand/nile-side-bar-expand.esm.js +8 -8
  108. package/dist/nile-side-bar-footer/nile-side-bar-footer.css.cjs.js +1 -1
  109. package/dist/nile-side-bar-footer/nile-side-bar-footer.css.cjs.js.map +1 -1
  110. package/dist/nile-side-bar-footer/nile-side-bar-footer.css.esm.js +5 -3
  111. package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.cjs.js +1 -1
  112. package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.cjs.js.map +1 -1
  113. package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.css.cjs.js +1 -1
  114. package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.css.cjs.js.map +1 -1
  115. package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.css.esm.js +17 -5
  116. package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.esm.js +3 -3
  117. package/dist/nile-side-bar-group/nile-side-bar-group.css.cjs.js +1 -1
  118. package/dist/nile-side-bar-group/nile-side-bar-group.css.cjs.js.map +1 -1
  119. package/dist/nile-side-bar-group/nile-side-bar-group.css.esm.js +4 -7
  120. package/dist/nile-side-bar-group-item/nile-side-bar-group-item.css.cjs.js +1 -1
  121. package/dist/nile-side-bar-group-item/nile-side-bar-group-item.css.cjs.js.map +1 -1
  122. package/dist/nile-side-bar-group-item/nile-side-bar-group-item.css.esm.js +58 -56
  123. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +1 -1
  124. package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +1 -1
  125. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
  126. package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
  127. package/dist/nile-textarea/nile-textarea.test.cjs.js +1 -1
  128. package/dist/nile-textarea/nile-textarea.test.esm.js +1 -1
  129. package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js +1 -1
  130. package/dist/nile-virtual-select/nile-virtual-select.test.esm.js +1 -1
  131. package/dist/src/nile-dropdown/portal-manager.js +0 -2
  132. package/dist/src/nile-dropdown/portal-manager.js.map +1 -1
  133. package/dist/src/nile-dropdown/portal-utils.d.ts +0 -1
  134. package/dist/src/nile-dropdown/portal-utils.js +0 -24
  135. package/dist/src/nile-dropdown/portal-utils.js.map +1 -1
  136. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.js +10 -2
  137. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.js.map +1 -1
  138. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.js +10 -3
  139. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.js.map +1 -1
  140. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.css.js +6 -0
  141. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.css.js.map +1 -1
  142. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.d.ts +1 -0
  143. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.js +4 -0
  144. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.js.map +1 -1
  145. package/dist/src/nile-light-tooltip/index.d.ts +1 -0
  146. package/dist/src/nile-light-tooltip/index.js +2 -0
  147. package/dist/src/nile-light-tooltip/index.js.map +1 -0
  148. package/dist/src/nile-light-tooltip/nile-light-tooltip.css.d.ts +12 -0
  149. package/dist/src/nile-light-tooltip/nile-light-tooltip.css.js +18 -0
  150. package/dist/src/nile-light-tooltip/nile-light-tooltip.css.js.map +1 -0
  151. package/dist/src/nile-light-tooltip/nile-light-tooltip.d.ts +40 -0
  152. package/dist/src/nile-light-tooltip/nile-light-tooltip.js +101 -0
  153. package/dist/src/nile-light-tooltip/nile-light-tooltip.js.map +1 -0
  154. package/dist/src/nile-menu/virtual-menu-search-manager.d.ts +11 -0
  155. package/dist/src/nile-menu/virtual-menu-search-manager.js +43 -0
  156. package/dist/src/nile-menu/virtual-menu-search-manager.js.map +1 -0
  157. package/dist/src/nile-side-bar/nile-side-bar.css.js +22 -27
  158. package/dist/src/nile-side-bar/nile-side-bar.css.js.map +1 -1
  159. package/dist/src/nile-side-bar/nile-side-bar.js +7 -1
  160. package/dist/src/nile-side-bar/nile-side-bar.js.map +1 -1
  161. package/dist/src/nile-side-bar-expand/nile-side-bar-expand.css.js +3 -5
  162. package/dist/src/nile-side-bar-expand/nile-side-bar-expand.css.js.map +1 -1
  163. package/dist/src/nile-side-bar-expand/nile-side-bar-expand.d.ts +2 -0
  164. package/dist/src/nile-side-bar-expand/nile-side-bar-expand.js +12 -4
  165. package/dist/src/nile-side-bar-expand/nile-side-bar-expand.js.map +1 -1
  166. package/dist/src/nile-side-bar-footer/nile-side-bar-footer.css.js +3 -1
  167. package/dist/src/nile-side-bar-footer/nile-side-bar-footer.css.js.map +1 -1
  168. package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.css.js +15 -3
  169. package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.css.js.map +1 -1
  170. package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.d.ts +1 -0
  171. package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.js +8 -1
  172. package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.js.map +1 -1
  173. package/dist/src/nile-side-bar-group/nile-side-bar-group.css.js +2 -5
  174. package/dist/src/nile-side-bar-group/nile-side-bar-group.css.js.map +1 -1
  175. package/dist/src/nile-side-bar-group-item/nile-side-bar-group-item.css.js +48 -46
  176. package/dist/src/nile-side-bar-group-item/nile-side-bar-group-item.css.js.map +1 -1
  177. package/dist/src/version.js +1 -1
  178. package/dist/src/version.js.map +1 -1
  179. package/dist/tsconfig.tsbuildinfo +1 -1
  180. package/package.json +2 -2
  181. package/src/nile-dropdown/portal-manager.ts +0 -2
  182. package/src/nile-dropdown/portal-utils.ts +0 -26
  183. package/src/nile-inline-sidebar/nile-inline-sidebar.css.ts +10 -2
  184. package/src/nile-inline-sidebar/nile-inline-sidebar.ts +16 -5
  185. package/src/nile-inline-sidebar-item/nile-inline-sidebar-item.css.ts +6 -0
  186. package/src/nile-inline-sidebar-item/nile-inline-sidebar-item.ts +1 -0
  187. package/src/nile-side-bar/nile-side-bar.css.ts +22 -27
  188. package/src/nile-side-bar/nile-side-bar.ts +8 -1
  189. package/src/nile-side-bar-expand/nile-side-bar-expand.css.ts +3 -5
  190. package/src/nile-side-bar-expand/nile-side-bar-expand.ts +6 -4
  191. package/src/nile-side-bar-footer/nile-side-bar-footer.css.ts +3 -1
  192. package/src/nile-side-bar-footer-item/nile-side-bar-footer-item.css.ts +15 -3
  193. package/src/nile-side-bar-footer-item/nile-side-bar-footer-item.ts +9 -1
  194. package/src/nile-side-bar-group/nile-side-bar-group.css.ts +2 -5
  195. package/src/nile-side-bar-group-item/nile-side-bar-group-item.css.ts +49 -47
  196. package/vscode-html-custom-data.json +20 -3
  197. package/dist/fixture-5b79f853.cjs.js.map +0 -1
  198. package/dist/fixture-90b199c4.esm.js +0 -569
  199. package/dist/fixture-c1d78368.cjs.js +0 -395
  200. package/dist/fixture-cf7bfcf5.esm.js +0 -569
  201. package/dist/fixture-dbd66009.cjs.js +0 -395
  202. package/dist/fixture-dbd66009.cjs.js.map +0 -1
  203. package/dist/nile-code-editor/backup_nile-code-editor copy.cjs.js +0 -2
  204. package/dist/nile-code-editor/backup_nile-code-editor copy.cjs.js.map +0 -1
  205. package/dist/nile-code-editor/backup_nile-code-editor copy.esm.js +0 -1
  206. package/dist/nile-sidebar/index.cjs.js +0 -2
  207. package/dist/nile-sidebar/index.cjs.js.map +0 -1
  208. package/dist/nile-sidebar/index.esm.js +0 -75
  209. package/dist/nile-sidebar-menu/index.cjs.js +0 -2
  210. package/dist/nile-sidebar-menu/index.cjs.js.map +0 -1
  211. package/dist/nile-sidebar-menu/index.esm.js +0 -1
  212. package/dist/nile-sidebar-menu/nile-sidebar-menu.cjs.js +0 -2
  213. package/dist/nile-sidebar-menu/nile-sidebar-menu.cjs.js.map +0 -1
  214. package/dist/nile-sidebar-menu/nile-sidebar-menu.css.cjs.js +0 -2
  215. package/dist/nile-sidebar-menu/nile-sidebar-menu.css.cjs.js.map +0 -1
  216. package/dist/nile-sidebar-menu/nile-sidebar-menu.css.esm.js +0 -38
  217. package/dist/nile-sidebar-menu/nile-sidebar-menu.esm.js +0 -10
  218. package/dist/nile-sidebar-menu-items/index.cjs.js +0 -2
  219. package/dist/nile-sidebar-menu-items/index.cjs.js.map +0 -1
  220. package/dist/nile-sidebar-menu-items/index.esm.js +0 -1
  221. package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.cjs.js +0 -2
  222. package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.cjs.js.map +0 -1
  223. package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.css.cjs.js +0 -2
  224. package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.css.cjs.js.map +0 -1
  225. package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.css.esm.js +0 -36
  226. package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.esm.js +0 -15
  227. package/dist/nile-sidebar-wrapper/index.cjs.js +0 -2
  228. package/dist/nile-sidebar-wrapper/index.cjs.js.map +0 -1
  229. package/dist/nile-sidebar-wrapper/index.esm.js +0 -1
  230. package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.cjs.js +0 -2
  231. package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.cjs.js.map +0 -1
  232. package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.css.cjs.js +0 -2
  233. package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.css.cjs.js.map +0 -1
  234. package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.css.esm.js +0 -105
  235. package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.esm.js +0 -16
  236. package/dist/nile-virtual-select/group-manager.cjs.js +0 -2
  237. package/dist/nile-virtual-select/group-manager.cjs.js.map +0 -1
  238. package/dist/nile-virtual-select/group-manager.esm.js +0 -1
  239. package/dist/nile-virtual-select/temp_nile-virtual-select copy.cjs.js +0 -2
  240. package/dist/nile-virtual-select/temp_nile-virtual-select copy.cjs.js.map +0 -1
  241. package/dist/nile-virtual-select/temp_nile-virtual-select copy.esm.js +0 -231
  242. package/dist/scopedElementsWrapper-4c29be11.esm.js +0 -7
  243. package/dist/scopedElementsWrapper-a112fc73.cjs.js +0 -6
  244. package/dist/scopedElementsWrapper-a112fc73.cjs.js.map +0 -1
  245. package/dist/src/internal/portal-manager.d.ts +0 -53
  246. package/dist/src/internal/portal-manager.js +0 -196
  247. package/dist/src/internal/portal-manager.js.map +0 -1
  248. package/dist/src/internal/portal.d.ts +0 -60
  249. package/dist/src/internal/portal.js +0 -199
  250. package/dist/src/internal/portal.js.map +0 -1
  251. package/dist/src/internal/resizable-helper.d.ts +0 -59
  252. package/dist/src/internal/resizable-helper.js +0 -115
  253. package/dist/src/internal/resizable-helper.js.map +0 -1
  254. package/dist/src/internal/resizable-styles.d.ts +0 -16
  255. package/dist/src/internal/resizable-styles.js +0 -144
  256. package/dist/src/internal/resizable-styles.js.map +0 -1
  257. package/dist/src/internal/virtualizer-error-handler.d.ts +0 -30
  258. package/dist/src/internal/virtualizer-error-handler.js +0 -82
  259. package/dist/src/internal/virtualizer-error-handler.js.map +0 -1
  260. package/dist/src/lib/index.d.ts +0 -7
  261. package/dist/src/lib/index.js +0 -8
  262. package/dist/src/lib/index.js.map +0 -1
  263. package/dist/src/lib/virtualize.d.ts +0 -32
  264. package/dist/src/lib/virtualize.js +0 -105
  265. package/dist/src/lib/virtualize.js.map +0 -1
  266. package/dist/src/lib/virtualize.test.d.ts +0 -7
  267. package/dist/src/lib/virtualize.test.js +0 -57
  268. package/dist/src/lib/virtualize.test.js.map +0 -1
  269. package/dist/src/nile-badge/__snapshots__/nile-badge.test.snap.js +0 -17
  270. package/dist/src/nile-calendar/__snapshots__/nile-calendar.test.snap.js +0 -310
  271. package/dist/src/nile-card/__snapshots__/nile-card.test.snap.js +0 -34
  272. package/dist/src/nile-checkbox/__snapshots__/nile-checkbox.test.snap.js +0 -31
  273. package/dist/src/nile-code-editor/Old_theme copy.d.ts +0 -191
  274. package/dist/src/nile-code-editor/Old_theme copy.js +0 -193
  275. package/dist/src/nile-code-editor/Old_theme copy.js.map +0 -1
  276. package/dist/src/nile-code-editor/backup_nile-code-editor copy.d.ts +0 -0
  277. package/dist/src/nile-code-editor/backup_nile-code-editor copy.js +0 -675
  278. package/dist/src/nile-code-editor/backup_nile-code-editor copy.js.map +0 -1
  279. package/dist/src/nile-code-editor/theme copy.d.ts +0 -191
  280. package/dist/src/nile-code-editor/theme copy.js +0 -193
  281. package/dist/src/nile-code-editor/theme copy.js.map +0 -1
  282. package/dist/src/nile-floating-panel/anchor-manager.d.ts +0 -26
  283. package/dist/src/nile-floating-panel/anchor-manager.js +0 -49
  284. package/dist/src/nile-floating-panel/anchor-manager.js.map +0 -1
  285. package/dist/src/nile-floating-panel/content-manager.d.ts +0 -23
  286. package/dist/src/nile-floating-panel/content-manager.js +0 -67
  287. package/dist/src/nile-floating-panel/content-manager.js.map +0 -1
  288. package/dist/src/nile-floating-panel/event-manager.d.ts +0 -38
  289. package/dist/src/nile-floating-panel/event-manager.js +0 -81
  290. package/dist/src/nile-floating-panel/event-manager.js.map +0 -1
  291. package/dist/src/nile-floating-panel/index.d.ts +0 -1
  292. package/dist/src/nile-floating-panel/index.js +0 -2
  293. package/dist/src/nile-floating-panel/index.js.map +0 -1
  294. package/dist/src/nile-floating-panel/nile-floating-panel.css.d.ts +0 -17
  295. package/dist/src/nile-floating-panel/nile-floating-panel.css.js +0 -51
  296. package/dist/src/nile-floating-panel/nile-floating-panel.css.js.map +0 -1
  297. package/dist/src/nile-floating-panel/nile-floating-panel.d.ts +0 -67
  298. package/dist/src/nile-floating-panel/nile-floating-panel.js +0 -203
  299. package/dist/src/nile-floating-panel/nile-floating-panel.js.map +0 -1
  300. package/dist/src/nile-floating-panel/position-manager.d.ts +0 -47
  301. package/dist/src/nile-floating-panel/position-manager.js +0 -94
  302. package/dist/src/nile-floating-panel/position-manager.js.map +0 -1
  303. package/dist/src/nile-floating-panel/style-manager.d.ts +0 -31
  304. package/dist/src/nile-floating-panel/style-manager.js +0 -74
  305. package/dist/src/nile-floating-panel/style-manager.js.map +0 -1
  306. package/dist/src/nile-floating-panel/types.d.ts +0 -29
  307. package/dist/src/nile-floating-panel/types.js +0 -8
  308. package/dist/src/nile-floating-panel/types.js.map +0 -1
  309. package/dist/src/nile-grid/data-processor.d.ts +0 -37
  310. package/dist/src/nile-grid/data-processor.js +0 -122
  311. package/dist/src/nile-grid/data-processor.js.map +0 -1
  312. package/dist/src/nile-grid/event-handlers.d.ts +0 -35
  313. package/dist/src/nile-grid/event-handlers.js +0 -158
  314. package/dist/src/nile-grid/event-handlers.js.map +0 -1
  315. package/dist/src/nile-grid/renderer.d.ts +0 -8
  316. package/dist/src/nile-grid/renderer.js +0 -78
  317. package/dist/src/nile-grid/renderer.js.map +0 -1
  318. package/dist/src/nile-grid/resize-handler.d.ts +0 -4
  319. package/dist/src/nile-grid/resize-handler.js +0 -36
  320. package/dist/src/nile-grid/resize-handler.js.map +0 -1
  321. package/dist/src/nile-grid/types.d.ts +0 -32
  322. package/dist/src/nile-grid/types.js +0 -2
  323. package/dist/src/nile-grid/types.js.map +0 -1
  324. package/dist/src/nile-grid/utils.d.ts +0 -4
  325. package/dist/src/nile-grid/utils.js +0 -32
  326. package/dist/src/nile-grid/utils.js.map +0 -1
  327. package/dist/src/nile-hero/__snapshots__/nile-hero.test.snap.js +0 -47
  328. package/dist/src/nile-icon/__snapshots__/nile-icon.test.snap.js +0 -16
  329. package/dist/src/nile-input/__snapshots__/nile-input.test.snap.js +0 -75
  330. package/dist/src/nile-menu/portal-manager.d.ts +0 -39
  331. package/dist/src/nile-menu/portal-manager.js +0 -340
  332. package/dist/src/nile-menu/portal-manager.js.map +0 -1
  333. package/dist/src/nile-menu/portal-utils.d.ts +0 -21
  334. package/dist/src/nile-menu/portal-utils.js +0 -128
  335. package/dist/src/nile-menu/portal-utils.js.map +0 -1
  336. package/dist/src/nile-popover/__snapshots__/nile-popover.test.snap.js +0 -22
  337. package/dist/src/nile-popover/popover-portal-handler.d.ts +0 -21
  338. package/dist/src/nile-popover/popover-portal-handler.js +0 -106
  339. package/dist/src/nile-popover/popover-portal-handler.js.map +0 -1
  340. package/dist/src/nile-portal-wrapper/index.d.ts +0 -1
  341. package/dist/src/nile-portal-wrapper/index.js +0 -2
  342. package/dist/src/nile-portal-wrapper/index.js.map +0 -1
  343. package/dist/src/nile-portal-wrapper/nile-portal-wrapper.d.ts +0 -47
  344. package/dist/src/nile-portal-wrapper/nile-portal-wrapper.js +0 -451
  345. package/dist/src/nile-portal-wrapper/nile-portal-wrapper.js.map +0 -1
  346. package/dist/src/nile-select/body-append-manager.d.ts +0 -90
  347. package/dist/src/nile-select/body-append-manager.js +0 -298
  348. package/dist/src/nile-select/body-append-manager.js.map +0 -1
  349. package/dist/src/nile-table-body/virtual-scroll-helper.d.ts +0 -9
  350. package/dist/src/nile-table-body/virtual-scroll-helper.js +0 -24
  351. package/dist/src/nile-table-body/virtual-scroll-helper.js.map +0 -1
  352. package/dist/src/nile-virtual-select/body-append-helper.d.ts +0 -16
  353. package/dist/src/nile-virtual-select/body-append-helper.js +0 -95
  354. package/dist/src/nile-virtual-select/body-append-helper.js.map +0 -1
  355. package/dist/src/nile-virtual-select/group-manager.d.ts +0 -32
  356. package/dist/src/nile-virtual-select/group-manager.js +0 -134
  357. package/dist/src/nile-virtual-select/group-manager.js.map +0 -1
  358. package/dist/src/nile-virtual-select/portal-utils.d.ts +0 -65
  359. package/dist/src/nile-virtual-select/portal-utils.js +0 -376
  360. package/dist/src/nile-virtual-select/portal-utils.js.map +0 -1
  361. package/dist/src/nile-virtual-select/temp_nile-virtual-select copy.d.ts +0 -273
  362. package/dist/src/nile-virtual-select/temp_nile-virtual-select copy.js +0 -1305
  363. package/dist/src/nile-virtual-select/temp_nile-virtual-select copy.js.map +0 -1
  364. package/dist/src/nile-virtual-select/virtualizer-error-handler.d.ts +0 -21
  365. package/dist/src/nile-virtual-select/virtualizer-error-handler.js +0 -56
  366. package/dist/src/nile-virtual-select/virtualizer-error-handler.js.map +0 -1
  367. package/dist/src/nile-virtual-select-disabled/index.d.ts +0 -1
  368. package/dist/src/nile-virtual-select-disabled/index.js +0 -2
  369. package/dist/src/nile-virtual-select-disabled/index.js.map +0 -1
  370. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.css.d.ts +0 -12
  371. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.css.js +0 -538
  372. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.css.js.map +0 -1
  373. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.d.ts +0 -299
  374. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.js +0 -1441
  375. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.js.map +0 -1
  376. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.test.d.ts +0 -7
  377. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.test.js +0 -631
  378. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.test.js.map +0 -1
  379. package/dist/src/nile-virtual-select-disabled/portal-manager.d.ts +0 -45
  380. package/dist/src/nile-virtual-select-disabled/portal-manager.js +0 -333
  381. package/dist/src/nile-virtual-select-disabled/portal-manager.js.map +0 -1
  382. package/dist/src/nile-virtual-select-disabled/renderer.d.ts +0 -16
  383. package/dist/src/nile-virtual-select-disabled/renderer.js +0 -79
  384. package/dist/src/nile-virtual-select-disabled/renderer.js.map +0 -1
  385. package/dist/src/nile-virtual-select-disabled/search-manager.d.ts +0 -12
  386. package/dist/src/nile-virtual-select-disabled/search-manager.js +0 -40
  387. package/dist/src/nile-virtual-select-disabled/search-manager.js.map +0 -1
  388. package/dist/src/nile-virtual-select-disabled/selection-manager.d.ts +0 -12
  389. package/dist/src/nile-virtual-select-disabled/selection-manager.js +0 -64
  390. package/dist/src/nile-virtual-select-disabled/selection-manager.js.map +0 -1
  391. package/dist/src/nile-virtual-select-disabled/types.d.ts +0 -50
  392. package/dist/src/nile-virtual-select-disabled/types.js +0 -8
  393. package/dist/src/nile-virtual-select-disabled/types.js.map +0 -1
  394. package/dist/src/nile-virtual-table-body/index.d.ts +0 -2
  395. package/dist/src/nile-virtual-table-body/index.js +0 -3
  396. package/dist/src/nile-virtual-table-body/index.js.map +0 -1
  397. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.d.ts +0 -1
  398. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.js +0 -44
  399. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.js.map +0 -1
  400. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.d.ts +0 -50
  401. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.js +0 -135
  402. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.js.map +0 -1
  403. package/dist/src/nile-virtual-table-body/renderer.d.ts +0 -16
  404. package/dist/src/nile-virtual-table-body/renderer.js +0 -49
  405. package/dist/src/nile-virtual-table-body/renderer.js.map +0 -1
  406. package/dist/src/utilities/stepper-utils.d.ts +0 -71
  407. package/dist/src/utilities/stepper-utils.js +0 -108
  408. package/dist/src/utilities/stepper-utils.js.map +0 -1
@@ -1,340 +0,0 @@
1
- import { autoUpdate, computePosition, flip, offset, shift, size, platform } from '@floating-ui/dom';
2
- import { PortalUtils } from './portal-utils';
3
- export class MenuPortalManager {
4
- constructor(component) {
5
- this.portalContainer = null;
6
- this.originalMenuParent = null;
7
- this.measuredMenuHeight = null;
8
- this.clonedMenu = null;
9
- this.cleanupAutoUpdate = null;
10
- this.currentPlacement = 'bottom';
11
- this.currentMiddlewareData = null;
12
- this.component = component;
13
- }
14
- createPortalAppendContainer() {
15
- const container = document.createElement('div');
16
- container.style.position = 'absolute';
17
- container.style.zIndex = '9999';
18
- container.style.pointerEvents = 'none';
19
- container.className = 'nile-menu-portal-append';
20
- return container;
21
- }
22
- positionPortalAppend() {
23
- if (!this.portalContainer)
24
- return;
25
- this.measureMenuHeight();
26
- this.computeFloatingUIPosition();
27
- }
28
- measureMenuHeight() {
29
- if (this.measuredMenuHeight || !this.portalContainer)
30
- return;
31
- this.portalContainer.style.position = 'absolute';
32
- this.portalContainer.style.visibility = 'hidden';
33
- this.portalContainer.style.top = '0px';
34
- this.portalContainer.style.left = '0px';
35
- this.portalContainer.offsetHeight;
36
- this.measuredMenuHeight = this.portalContainer.offsetHeight;
37
- this.portalContainer.style.visibility = '';
38
- }
39
- async computeFloatingUIPosition() {
40
- if (!this.portalContainer)
41
- return;
42
- const referenceElement = PortalUtils.findReferenceElement(this.component);
43
- if (!referenceElement) {
44
- console.warn('Reference element not found for menu portal positioning');
45
- return;
46
- }
47
- const floatingElement = this.portalContainer;
48
- try {
49
- const { x, y, placement, middlewareData } = await this.calculateFloatingUIPosition(referenceElement, floatingElement);
50
- this.applyFloatingUIPosition(floatingElement, referenceElement, x, y, placement, middlewareData);
51
- }
52
- catch (error) {
53
- console.warn('Floating UI positioning failed, falling back to simple positioning:', error);
54
- this.fallbackPositioning();
55
- }
56
- }
57
- async calculateFloatingUIPosition(referenceElement, floatingElement) {
58
- const boundary = PortalUtils.findBoundaryElements(referenceElement);
59
- const basePlacement = PortalUtils.getOptimalPlacement(referenceElement);
60
- const initialPlacement = basePlacement === 'top' ? 'top-start' : 'bottom-start';
61
- const middleware = this.createFloatingUIMiddleware(boundary);
62
- return await computePosition(referenceElement, floatingElement, {
63
- placement: initialPlacement,
64
- strategy: 'fixed',
65
- middleware,
66
- platform: this.createCustomPlatform()
67
- });
68
- }
69
- createFloatingUIMiddleware(boundary) {
70
- return [
71
- offset(4),
72
- size({
73
- apply: this.handleSizeMiddleware.bind(this),
74
- padding: 10,
75
- boundary: boundary
76
- }),
77
- flip({
78
- fallbackPlacements: ['bottom-start', 'top-start', 'bottom', 'top', 'bottom-end', 'top-end'],
79
- fallbackStrategy: 'bestFit',
80
- padding: 10,
81
- boundary: boundary
82
- }),
83
- shift({
84
- padding: 10,
85
- crossAxis: true,
86
- boundary: boundary
87
- })
88
- ];
89
- }
90
- handleSizeMiddleware({ availableWidth, availableHeight, elements, rects }) {
91
- const maxHeight = PortalUtils.calculateOptimalHeight(rects.reference, window.innerHeight, this.currentPlacement);
92
- elements.floating.style.maxHeight = `${maxHeight}px`;
93
- elements.floating.style.setProperty('--auto-size-available-width', `${availableWidth}px`);
94
- elements.floating.style.setProperty('--auto-size-available-height', `${maxHeight}px`);
95
- }
96
- createCustomPlatform() {
97
- return platform;
98
- }
99
- applyFloatingUIPosition(floatingElement, referenceElement, x, y, placement, middlewareData) {
100
- // Align left edge with reference element
101
- const referenceRect = referenceElement.getBoundingClientRect();
102
- Object.assign(floatingElement.style, {
103
- left: `${referenceRect.left}px`,
104
- top: `${y}px`,
105
- position: 'fixed',
106
- pointerEvents: 'auto',
107
- width: 'auto',
108
- minWidth: 'auto'
109
- });
110
- this.currentPlacement = placement;
111
- this.currentMiddlewareData = middlewareData;
112
- PortalUtils.applyCollisionData(floatingElement, middlewareData, placement);
113
- const placementClass = placement.split('-')[0];
114
- floatingElement.className = `nile-menu-portal-append menu__listbox--${placementClass}`;
115
- }
116
- fallbackPositioning() {
117
- if (!this.portalContainer)
118
- return;
119
- const referenceElement = PortalUtils.findReferenceElement(this.component);
120
- if (!referenceElement)
121
- return;
122
- const rect = referenceElement.getBoundingClientRect();
123
- const viewportHeight = window.innerHeight;
124
- const menuHeight = this.measuredMenuHeight || 200;
125
- const spaceBelow = viewportHeight - rect.bottom;
126
- const spaceAbove = rect.top;
127
- let topPosition;
128
- let placementClass;
129
- let maxHeight;
130
- if (spaceAbove > spaceBelow) {
131
- maxHeight = Math.max(spaceAbove - 20, 100);
132
- topPosition = Math.max(rect.top - maxHeight - 4, 10);
133
- placementClass = 'top';
134
- }
135
- else {
136
- maxHeight = Math.max(spaceBelow - 20, 100);
137
- topPosition = rect.bottom + 4;
138
- placementClass = 'bottom';
139
- }
140
- this.portalContainer.style.left = `${rect.left}px`;
141
- this.portalContainer.style.top = `${topPosition}px`;
142
- this.portalContainer.style.width = 'auto';
143
- this.portalContainer.style.minWidth = 'auto';
144
- this.portalContainer.style.maxHeight = `${maxHeight}px`;
145
- this.portalContainer.style.pointerEvents = 'auto';
146
- this.portalContainer.className = `nile-menu-portal-append menu__listbox--${placementClass}`;
147
- this.calculateAndSetAutoSizeProperties(rect, topPosition, placementClass);
148
- }
149
- calculateAndSetAutoSizeProperties(rect, topPosition, placementClass) {
150
- if (!this.portalContainer)
151
- return;
152
- const viewportHeight = window.innerHeight;
153
- const viewportWidth = window.innerWidth;
154
- let availableHeight;
155
- if (placementClass === 'top') {
156
- availableHeight = rect.top - 10;
157
- }
158
- else {
159
- availableHeight = viewportHeight - rect.bottom - 10;
160
- }
161
- const availableWidth = Math.min(rect.width, viewportWidth - rect.left - 10);
162
- this.portalContainer.style.setProperty('--auto-size-available-height', `${Math.max(availableHeight, 100)}px`);
163
- this.portalContainer.style.setProperty('--auto-size-available-width', `${Math.max(availableWidth, 200)}px`);
164
- }
165
- updatePortalAppendPosition() {
166
- if (this.component.portal && this.portalContainer) {
167
- this.positionPortalAppend();
168
- }
169
- }
170
- handleWindowResize() {
171
- if (this.component.portal && this.portalContainer) {
172
- this.positionPortalAppend();
173
- }
174
- }
175
- setupAutoUpdatePositioning() {
176
- if (!this.portalContainer || !this.component)
177
- return;
178
- this.cleanupAutoUpdatePositioning();
179
- const referenceElement = PortalUtils.findReferenceElement(this.component);
180
- if (!referenceElement)
181
- return;
182
- this.cleanupAutoUpdate = autoUpdate(referenceElement, this.portalContainer, () => {
183
- this.computeFloatingUIPosition();
184
- }, {
185
- ancestorScroll: true,
186
- ancestorResize: true,
187
- elementResize: true,
188
- layoutShift: true,
189
- animationFrame: true
190
- });
191
- }
192
- cleanupAutoUpdatePositioning() {
193
- if (this.cleanupAutoUpdate) {
194
- this.cleanupAutoUpdate();
195
- this.cleanupAutoUpdate = null;
196
- }
197
- }
198
- injectStylesToDocument() {
199
- if (!this.portalContainer)
200
- return;
201
- const styleId = PortalUtils.generateStyleId();
202
- if (document.getElementById(styleId))
203
- return;
204
- const componentStyles = this.component.constructor.styles;
205
- if (!componentStyles)
206
- return;
207
- const styleElement = document.createElement('style');
208
- styleElement.id = styleId;
209
- styleElement.textContent = PortalUtils.extractStylesAsCSS(componentStyles);
210
- document.head.appendChild(styleElement);
211
- this.portalContainer.__injectedStyleId = styleId;
212
- }
213
- adoptStylesToPortalAppend() {
214
- if (!this.portalContainer)
215
- return;
216
- this.injectStylesToDocument();
217
- }
218
- setupPortalAppend() {
219
- if (!this.component.portal)
220
- return;
221
- // If portal already exists, don't recreate it
222
- if (this.portalContainer && this.portalContainer.parentNode) {
223
- return;
224
- }
225
- this.component.updateComplete.then(() => {
226
- setTimeout(() => {
227
- // Check if menu is inside a parent container (e.g., nile-dropdown) and if it's open
228
- const parentContainer = this.findParentContainer();
229
- const isParentOpen = parentContainer ? parentContainer.open : true;
230
- // Portal the menu if parent is open or if no parent found (standalone menu)
231
- if (isParentOpen || !parentContainer) {
232
- this.originalMenuParent = this.component.parentElement;
233
- // Clone the menu element with all its children and attributes
234
- this.clonedMenu = this.component.cloneNode(true);
235
- // Copy all attributes from original to cloned menu
236
- Array.from(this.component.attributes).forEach((attr) => {
237
- this.clonedMenu.setAttribute(attr.name, attr.value);
238
- });
239
- this.portalContainer = this.createPortalAppendContainer();
240
- this.portalContainer.appendChild(this.clonedMenu);
241
- document.body.appendChild(this.portalContainer);
242
- this.adoptStylesToPortalAppend();
243
- this.clonedMenu.style.display = '';
244
- this.positionPortalAppend();
245
- this.setupPortalEventListeners();
246
- this.setupAutoUpdatePositioning();
247
- window.addEventListener('resize', this.handleWindowResize.bind(this));
248
- }
249
- }, 50);
250
- });
251
- }
252
- findParentContainer() {
253
- // First, check if we're in a slot and find the dropdown through the slot
254
- const root = this.component.getRootNode();
255
- if (root instanceof ShadowRoot) {
256
- // We're in a shadow root, find the dropdown host
257
- const host = root.host;
258
- if (host && host.tagName.toLowerCase() === 'nile-dropdown') {
259
- return host;
260
- }
261
- }
262
- // Also check parent element chain
263
- let current = this.component.parentElement;
264
- while (current && current !== document.body) {
265
- // Check for nile-dropdown or other containers that might have open/close behavior
266
- if (current.tagName.toLowerCase() === 'nile-dropdown') {
267
- return current;
268
- }
269
- // If we hit a shadow root, check the host
270
- if (current instanceof ShadowRoot) {
271
- const host = current.host;
272
- if (host && host.tagName.toLowerCase() === 'nile-dropdown') {
273
- return host;
274
- }
275
- }
276
- current = current.parentElement;
277
- }
278
- // Try to find dropdown through assigned slot
279
- if (this.component.assignedSlot) {
280
- const slotRoot = this.component.assignedSlot.getRootNode();
281
- if (slotRoot instanceof ShadowRoot) {
282
- const host = slotRoot.host;
283
- if (host && host.tagName.toLowerCase() === 'nile-dropdown') {
284
- return host;
285
- }
286
- }
287
- }
288
- return null;
289
- }
290
- setupPortalEventListeners() {
291
- if (!this.clonedMenu)
292
- return;
293
- // Forward events from cloned menu to original component
294
- this.clonedMenu.addEventListener('nile-select', (event) => {
295
- const customEvent = event;
296
- this.component.dispatchEvent(new CustomEvent('nile-select', { detail: customEvent.detail, bubbles: true }));
297
- });
298
- }
299
- cleanupPortalAppend() {
300
- this.cleanupAutoUpdatePositioning();
301
- if (this.portalContainer && this.portalContainer.parentNode) {
302
- const injectedStyleId = this.portalContainer.__injectedStyleId;
303
- if (injectedStyleId) {
304
- const styleElement = document.getElementById(injectedStyleId);
305
- if (styleElement) {
306
- styleElement.remove();
307
- }
308
- }
309
- this.portalContainer.parentNode.removeChild(this.portalContainer);
310
- }
311
- window.removeEventListener('resize', this.handleWindowResize.bind(this));
312
- this.portalContainer = null;
313
- this.originalMenuParent = null;
314
- this.clonedMenu = null;
315
- this.measuredMenuHeight = null;
316
- this.currentPlacement = 'bottom';
317
- this.currentMiddlewareData = null;
318
- }
319
- get portalContainerElement() {
320
- return this.portalContainer;
321
- }
322
- resetMeasuredHeight() {
323
- this.measuredMenuHeight = null;
324
- }
325
- forceReposition() {
326
- if (this.portalContainer) {
327
- this.computeFloatingUIPosition();
328
- }
329
- }
330
- getCurrentPlacement() {
331
- return this.currentPlacement;
332
- }
333
- getCurrentMiddlewareData() {
334
- return this.currentMiddlewareData;
335
- }
336
- isUsingFloatingUI() {
337
- return this.cleanupAutoUpdate !== null;
338
- }
339
- }
340
- //# sourceMappingURL=portal-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"portal-manager.js","sourceRoot":"","sources":["../../../src/nile-menu/portal-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,eAAe,EACf,IAAI,EACJ,MAAM,EACN,KAAK,EACL,IAAI,EACJ,QAAQ,EAIT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,OAAO,iBAAiB;IAU5B,YAAY,SAAc;QATlB,oBAAe,GAAuB,IAAI,CAAC;QAC3C,uBAAkB,GAAuB,IAAI,CAAC;QAC9C,uBAAkB,GAAkB,IAAI,CAAC;QAEzC,eAAU,GAAuB,IAAI,CAAC;QACtC,sBAAiB,GAAwB,IAAI,CAAC;QAC9C,qBAAgB,GAAc,QAAQ,CAAC;QACvC,0BAAqB,GAA0B,IAAI,CAAC;QAG1D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAEO,2BAA2B;QACjC,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAChD,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QACtC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAChC,SAAS,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;QACvC,SAAS,CAAC,SAAS,GAAG,yBAAyB,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAElC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACnC,CAAC;IAEO,iBAAiB;QACvB,IAAI,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAE7D,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QACjD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;QACjD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC;QACvC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;QAExC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;QAElC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;QAE5D,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,yBAAyB;QACrC,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAElC,MAAM,gBAAgB,GAAG,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1E,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;YACxE,OAAO;QACT,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAE7C,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAChF,gBAAgB,EAChB,eAAe,CAChB,CAAC;YAEF,IAAI,CAAC,uBAAuB,CAAC,eAAe,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QAEnG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,qEAAqE,EAAE,KAAK,CAAC,CAAC;YAC3F,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,2BAA2B,CACvC,gBAA6B,EAC7B,eAA4B;QAE5B,MAAM,QAAQ,GAAG,WAAW,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QACpE,MAAM,aAAa,GAAG,WAAW,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;QACxE,MAAM,gBAAgB,GAAG,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC;QAChF,MAAM,UAAU,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAE7D,OAAO,MAAM,eAAe,CAAC,gBAAgB,EAAE,eAAe,EAAE;YAC9D,SAAS,EAAE,gBAAgB;YAC3B,QAAQ,EAAE,OAAO;YACjB,UAAU;YACV,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE;SACtC,CAAC,CAAC;IACL,CAAC;IAEO,0BAA0B,CAAC,QAA+B;QAChE,OAAO;YACL,MAAM,CAAC,CAAC,CAAC;YACT,IAAI,CAAC;gBACH,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC3C,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,QAAQ;aACnB,CAAC;YACF,IAAI,CAAC;gBACH,kBAAkB,EAAE,CAAC,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,CAAC;gBAC3F,gBAAgB,EAAE,SAAS;gBAC3B,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,QAAQ;aACnB,CAAC;YACF,KAAK,CAAC;gBACJ,OAAO,EAAE,EAAE;gBACX,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE,QAAQ;aACnB,CAAC;SACH,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,EAAE,cAAc,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAK9E;QACC,MAAM,SAAS,GAAG,WAAW,CAAC,sBAAsB,CAClD,KAAK,CAAC,SAAS,EACf,MAAM,CAAC,WAAW,EAClB,IAAI,CAAC,gBAAgB,CACtB,CAAC;QAEF,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,SAAS,IAAI,CAAC;QAErD,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,6BAA6B,EAAE,GAAG,cAAc,IAAI,CAAC,CAAC;QAC1F,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,8BAA8B,EAAE,GAAG,SAAS,IAAI,CAAC,CAAC;IACxF,CAAC;IAEO,oBAAoB;QAC1B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,uBAAuB,CAC7B,eAA4B,EAC5B,gBAA6B,EAC7B,CAAS,EACT,CAAS,EACT,SAAoB,EACpB,cAA8B;QAE9B,yCAAyC;QACzC,MAAM,aAAa,GAAG,gBAAgB,CAAC,qBAAqB,EAAE,CAAC;QAE/D,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE;YACnC,IAAI,EAAE,GAAG,aAAa,CAAC,IAAI,IAAI;YAC/B,GAAG,EAAE,GAAG,CAAC,IAAI;YACb,QAAQ,EAAE,OAAO;YACjB,aAAa,EAAE,MAAM;YACrB,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAClC,IAAI,CAAC,qBAAqB,GAAG,cAAc,CAAC;QAE5C,WAAW,CAAC,kBAAkB,CAAC,eAAe,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;QAE3E,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,eAAe,CAAC,SAAS,GAAG,0CAA0C,cAAc,EAAE,CAAC;IACzF,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAElC,MAAM,gBAAgB,GAAG,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1E,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAE9B,MAAM,IAAI,GAAG,gBAAgB,CAAC,qBAAqB,EAAE,CAAC;QACtD,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,IAAI,GAAG,CAAC;QAElD,MAAM,UAAU,GAAG,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC;QAE5B,IAAI,WAAmB,CAAC;QACxB,IAAI,cAAsB,CAAC;QAC3B,IAAI,SAAiB,CAAC;QAEtB,IAAI,UAAU,GAAG,UAAU,EAAE,CAAC;YAC5B,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;YAC3C,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YACrD,cAAc,GAAG,KAAK,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;YAC3C,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9B,cAAc,GAAG,QAAQ,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC;QACnD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,WAAW,IAAI,CAAC;QACpD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;QAC1C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,SAAS,IAAI,CAAC;QACxD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;QAClD,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,0CAA0C,cAAc,EAAE,CAAC;QAE5F,IAAI,CAAC,iCAAiC,CAAC,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IAC5E,CAAC;IAEO,iCAAiC,CAAC,IAAa,EAAE,WAAmB,EAAE,cAAsB;QAClG,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAElC,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC;QAC1C,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC;QAExC,IAAI,eAAuB,CAAC;QAC5B,IAAI,cAAc,KAAK,KAAK,EAAE,CAAC;YAC7B,eAAe,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,eAAe,GAAG,cAAc,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACtD,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QAE5E,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,8BAA8B,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9G,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,6BAA6B,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9G,CAAC;IAED,0BAA0B;QACxB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAClD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAClD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAEO,0BAA0B;QAChC,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAErD,IAAI,CAAC,4BAA4B,EAAE,CAAC;QAEpC,MAAM,gBAAgB,GAAG,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1E,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAE9B,IAAI,CAAC,iBAAiB,GAAG,UAAU,CACjC,gBAAgB,EAChB,IAAI,CAAC,eAAe,EACpB,GAAG,EAAE;YACH,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC,EACD;YACE,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,IAAI;SACrB,CACF,CAAC;IACJ,CAAC;IAEO,4BAA4B;QAClC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAChC,CAAC;IACH,CAAC;IAEO,sBAAsB;QAC5B,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAElC,MAAM,OAAO,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC;QAE9C,IAAI,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC;YAAE,OAAO;QAE7C,MAAM,eAAe,GAAI,IAAI,CAAC,SAAS,CAAC,WAAmB,CAAC,MAAM,CAAC;QACnE,IAAI,CAAC,eAAe;YAAE,OAAO;QAE7B,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACrD,YAAY,CAAC,EAAE,GAAG,OAAO,CAAC;QAC1B,YAAY,CAAC,WAAW,GAAG,WAAW,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;QAE3E,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAEvC,IAAI,CAAC,eAAuB,CAAC,iBAAiB,GAAG,OAAO,CAAC;IAC5D,CAAC;IAEO,yBAAyB;QAC/B,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAClC,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM;YAAE,OAAO;QAEnC,8CAA8C;QAC9C,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE;YACtC,UAAU,CAAC,GAAG,EAAE;gBACd,oFAAoF;gBACpF,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACnD,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBAEnE,4EAA4E;gBAC5E,IAAI,YAAY,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,aAA4B,CAAC;oBAEtE,8DAA8D;oBAC9D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAgB,CAAC;oBAEhE,mDAAmD;oBACnD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,IAAU,EAAE,EAAE;wBAC3D,IAAI,CAAC,UAAW,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBACvD,CAAC,CAAC,CAAC;oBAEH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;oBAC1D,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAClD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAEhD,IAAI,CAAC,yBAAyB,EAAE,CAAC;oBAEjC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;oBACnC,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBAE5B,IAAI,CAAC,yBAAyB,EAAE,CAAC;oBAEjC,IAAI,CAAC,0BAA0B,EAAE,CAAC;oBAElC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxE,CAAC;YACH,CAAC,EAAE,EAAE,CAAC,CAAC;QACT,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,mBAAmB;QACzB,yEAAyE;QACzE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;YAC/B,iDAAiD;YACjD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,eAAe,EAAE,CAAC;gBAC3D,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,kCAAkC;QAClC,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;QAC3C,OAAO,OAAO,IAAI,OAAO,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC5C,kFAAkF;YAClF,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,eAAe,EAAE,CAAC;gBACtD,OAAO,OAAO,CAAC;YACjB,CAAC;YAED,0CAA0C;YAC1C,IAAI,OAAO,YAAY,UAAU,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBAC1B,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,eAAe,EAAE,CAAC;oBAC3D,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAED,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;QAClC,CAAC;QAED,6CAA6C;QAC7C,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAC3D,IAAI,QAAQ,YAAY,UAAU,EAAE,CAAC;gBACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;gBAC3B,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,eAAe,EAAE,CAAC;oBAC3D,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,yBAAyB;QAC/B,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAE7B,wDAAwD;QACxD,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,KAAY,EAAE,EAAE;YAC/D,MAAM,WAAW,GAAG,KAAoB,CAAC;YACzC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9G,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,4BAA4B,EAAE,CAAC;QAEpC,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;YAC5D,MAAM,eAAe,GAAI,IAAI,CAAC,eAAuB,CAAC,iBAAiB,CAAC;YACxE,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;gBAC9D,IAAI,YAAY,EAAE,CAAC;oBACjB,YAAY,CAAC,MAAM,EAAE,CAAC;gBACxB,CAAC;YACH,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QACjC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;IACpC,CAAC;IAED,IAAI,sBAAsB;QACxB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACjC,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,wBAAwB;QACtB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC;IACzC,CAAC;CACF","sourcesContent":["import { \n autoUpdate, \n computePosition, \n flip, \n offset, \n shift, \n size, \n platform,\n type Placement,\n type MiddlewareData,\n type ComputePositionConfig\n} from '@floating-ui/dom';\nimport { PortalUtils } from './portal-utils';\n\nexport class MenuPortalManager {\n private portalContainer: HTMLElement | null = null;\n private originalMenuParent: HTMLElement | null = null;\n private measuredMenuHeight: number | null = null;\n private component: any;\n private clonedMenu: HTMLElement | null = null;\n private cleanupAutoUpdate: (() => void) | null = null;\n private currentPlacement: Placement = 'bottom';\n private currentMiddlewareData: MiddlewareData | null = null;\n\n constructor(component: any) {\n this.component = component;\n }\n\n private createPortalAppendContainer(): HTMLElement {\n const container = document.createElement('div');\n container.style.position = 'absolute';\n container.style.zIndex = '9999';\n container.style.pointerEvents = 'none';\n container.className = 'nile-menu-portal-append';\n return container;\n }\n\n positionPortalAppend(): void {\n if (!this.portalContainer) return;\n\n this.measureMenuHeight();\n this.computeFloatingUIPosition();\n }\n\n private measureMenuHeight(): void {\n if (this.measuredMenuHeight || !this.portalContainer) return;\n\n this.portalContainer.style.position = 'absolute';\n this.portalContainer.style.visibility = 'hidden';\n this.portalContainer.style.top = '0px';\n this.portalContainer.style.left = '0px';\n \n this.portalContainer.offsetHeight;\n \n this.measuredMenuHeight = this.portalContainer.offsetHeight;\n \n this.portalContainer.style.visibility = '';\n }\n\n private async computeFloatingUIPosition(): Promise<void> {\n if (!this.portalContainer) return;\n\n const referenceElement = PortalUtils.findReferenceElement(this.component);\n if (!referenceElement) {\n console.warn('Reference element not found for menu portal positioning');\n return;\n }\n\n const floatingElement = this.portalContainer;\n\n try {\n const { x, y, placement, middlewareData } = await this.calculateFloatingUIPosition(\n referenceElement,\n floatingElement\n );\n\n this.applyFloatingUIPosition(floatingElement, referenceElement, x, y, placement, middlewareData);\n\n } catch (error) {\n console.warn('Floating UI positioning failed, falling back to simple positioning:', error);\n this.fallbackPositioning();\n }\n }\n\n private async calculateFloatingUIPosition(\n referenceElement: HTMLElement,\n floatingElement: HTMLElement\n ): Promise<{ x: number; y: number; placement: Placement; middlewareData: MiddlewareData }> {\n const boundary = PortalUtils.findBoundaryElements(referenceElement);\n const basePlacement = PortalUtils.getOptimalPlacement(referenceElement);\n const initialPlacement = basePlacement === 'top' ? 'top-start' : 'bottom-start';\n const middleware = this.createFloatingUIMiddleware(boundary);\n\n return await computePosition(referenceElement, floatingElement, {\n placement: initialPlacement,\n strategy: 'fixed',\n middleware,\n platform: this.createCustomPlatform()\n });\n }\n\n private createFloatingUIMiddleware(boundary: Element[] | undefined): ComputePositionConfig['middleware'] {\n return [\n offset(4),\n size({\n apply: this.handleSizeMiddleware.bind(this),\n padding: 10,\n boundary: boundary\n }),\n flip({\n fallbackPlacements: ['bottom-start', 'top-start', 'bottom', 'top', 'bottom-end', 'top-end'],\n fallbackStrategy: 'bestFit',\n padding: 10,\n boundary: boundary\n }),\n shift({\n padding: 10,\n crossAxis: true,\n boundary: boundary\n })\n ];\n }\n\n private handleSizeMiddleware({ availableWidth, availableHeight, elements, rects }: {\n availableWidth: number;\n availableHeight: number;\n elements: { floating: HTMLElement };\n rects: { reference: { x: number; y: number; width: number; height: number } };\n }): void {\n const maxHeight = PortalUtils.calculateOptimalHeight(\n rects.reference,\n window.innerHeight,\n this.currentPlacement\n );\n\n elements.floating.style.maxHeight = `${maxHeight}px`;\n \n elements.floating.style.setProperty('--auto-size-available-width', `${availableWidth}px`);\n elements.floating.style.setProperty('--auto-size-available-height', `${maxHeight}px`);\n }\n\n private createCustomPlatform() {\n return platform;\n }\n\n private applyFloatingUIPosition(\n floatingElement: HTMLElement,\n referenceElement: HTMLElement,\n x: number,\n y: number,\n placement: Placement,\n middlewareData: MiddlewareData\n ): void {\n // Align left edge with reference element\n const referenceRect = referenceElement.getBoundingClientRect();\n \n Object.assign(floatingElement.style, {\n left: `${referenceRect.left}px`,\n top: `${y}px`,\n position: 'fixed',\n pointerEvents: 'auto',\n width: 'auto',\n minWidth: 'auto'\n });\n\n this.currentPlacement = placement;\n this.currentMiddlewareData = middlewareData;\n \n PortalUtils.applyCollisionData(floatingElement, middlewareData, placement);\n \n const placementClass = placement.split('-')[0];\n floatingElement.className = `nile-menu-portal-append menu__listbox--${placementClass}`;\n }\n\n private fallbackPositioning(): void {\n if (!this.portalContainer) return;\n\n const referenceElement = PortalUtils.findReferenceElement(this.component);\n if (!referenceElement) return;\n\n const rect = referenceElement.getBoundingClientRect();\n const viewportHeight = window.innerHeight;\n const menuHeight = this.measuredMenuHeight || 200;\n \n const spaceBelow = viewportHeight - rect.bottom;\n const spaceAbove = rect.top;\n \n let topPosition: number;\n let placementClass: string;\n let maxHeight: number;\n \n if (spaceAbove > spaceBelow) {\n maxHeight = Math.max(spaceAbove - 20, 100);\n topPosition = Math.max(rect.top - maxHeight - 4, 10);\n placementClass = 'top';\n } else {\n maxHeight = Math.max(spaceBelow - 20, 100);\n topPosition = rect.bottom + 4;\n placementClass = 'bottom';\n }\n\n this.portalContainer.style.left = `${rect.left}px`;\n this.portalContainer.style.top = `${topPosition}px`;\n this.portalContainer.style.width = 'auto';\n this.portalContainer.style.minWidth = 'auto';\n this.portalContainer.style.maxHeight = `${maxHeight}px`;\n this.portalContainer.style.pointerEvents = 'auto';\n this.portalContainer.className = `nile-menu-portal-append menu__listbox--${placementClass}`;\n \n this.calculateAndSetAutoSizeProperties(rect, topPosition, placementClass);\n }\n\n private calculateAndSetAutoSizeProperties(rect: DOMRect, topPosition: number, placementClass: string): void {\n if (!this.portalContainer) return;\n\n const viewportHeight = window.innerHeight;\n const viewportWidth = window.innerWidth;\n \n let availableHeight: number;\n if (placementClass === 'top') {\n availableHeight = rect.top - 10;\n } else {\n availableHeight = viewportHeight - rect.bottom - 10;\n }\n \n const availableWidth = Math.min(rect.width, viewportWidth - rect.left - 10);\n \n this.portalContainer.style.setProperty('--auto-size-available-height', `${Math.max(availableHeight, 100)}px`);\n this.portalContainer.style.setProperty('--auto-size-available-width', `${Math.max(availableWidth, 200)}px`);\n }\n\n updatePortalAppendPosition(): void {\n if (this.component.portal && this.portalContainer) {\n this.positionPortalAppend();\n }\n }\n\n handleWindowResize(): void {\n if (this.component.portal && this.portalContainer) {\n this.positionPortalAppend();\n }\n }\n\n private setupAutoUpdatePositioning(): void {\n if (!this.portalContainer || !this.component) return;\n\n this.cleanupAutoUpdatePositioning();\n\n const referenceElement = PortalUtils.findReferenceElement(this.component);\n if (!referenceElement) return;\n\n this.cleanupAutoUpdate = autoUpdate(\n referenceElement,\n this.portalContainer,\n () => {\n this.computeFloatingUIPosition();\n },\n {\n ancestorScroll: true,\n ancestorResize: true,\n elementResize: true,\n layoutShift: true,\n animationFrame: true\n }\n );\n }\n\n private cleanupAutoUpdatePositioning(): void {\n if (this.cleanupAutoUpdate) {\n this.cleanupAutoUpdate();\n this.cleanupAutoUpdate = null;\n }\n }\n\n private injectStylesToDocument(): void {\n if (!this.portalContainer) return;\n\n const styleId = PortalUtils.generateStyleId();\n \n if (document.getElementById(styleId)) return;\n\n const componentStyles = (this.component.constructor as any).styles;\n if (!componentStyles) return;\n\n const styleElement = document.createElement('style');\n styleElement.id = styleId;\n styleElement.textContent = PortalUtils.extractStylesAsCSS(componentStyles);\n \n document.head.appendChild(styleElement);\n \n (this.portalContainer as any).__injectedStyleId = styleId;\n }\n\n private adoptStylesToPortalAppend(): void {\n if (!this.portalContainer) return;\n this.injectStylesToDocument();\n }\n\n setupPortalAppend(): void {\n if (!this.component.portal) return;\n \n // If portal already exists, don't recreate it\n if (this.portalContainer && this.portalContainer.parentNode) {\n return;\n }\n\n this.component.updateComplete.then(() => {\n setTimeout(() => {\n // Check if menu is inside a parent container (e.g., nile-dropdown) and if it's open\n const parentContainer = this.findParentContainer();\n const isParentOpen = parentContainer ? parentContainer.open : true;\n \n // Portal the menu if parent is open or if no parent found (standalone menu)\n if (isParentOpen || !parentContainer) {\n this.originalMenuParent = this.component.parentElement as HTMLElement;\n \n // Clone the menu element with all its children and attributes\n this.clonedMenu = this.component.cloneNode(true) as HTMLElement;\n \n // Copy all attributes from original to cloned menu\n Array.from(this.component.attributes).forEach((attr: Attr) => {\n this.clonedMenu!.setAttribute(attr.name, attr.value);\n });\n \n this.portalContainer = this.createPortalAppendContainer();\n this.portalContainer.appendChild(this.clonedMenu);\n document.body.appendChild(this.portalContainer);\n \n this.adoptStylesToPortalAppend();\n \n this.clonedMenu.style.display = '';\n this.positionPortalAppend();\n \n this.setupPortalEventListeners();\n \n this.setupAutoUpdatePositioning();\n \n window.addEventListener('resize', this.handleWindowResize.bind(this));\n }\n }, 50);\n });\n }\n\n private findParentContainer(): any {\n // First, check if we're in a slot and find the dropdown through the slot\n const root = this.component.getRootNode();\n if (root instanceof ShadowRoot) {\n // We're in a shadow root, find the dropdown host\n const host = root.host;\n if (host && host.tagName.toLowerCase() === 'nile-dropdown') {\n return host;\n }\n }\n \n // Also check parent element chain\n let current = this.component.parentElement;\n while (current && current !== document.body) {\n // Check for nile-dropdown or other containers that might have open/close behavior\n if (current.tagName.toLowerCase() === 'nile-dropdown') {\n return current;\n }\n \n // If we hit a shadow root, check the host\n if (current instanceof ShadowRoot) {\n const host = current.host;\n if (host && host.tagName.toLowerCase() === 'nile-dropdown') {\n return host;\n }\n }\n \n current = current.parentElement;\n }\n \n // Try to find dropdown through assigned slot\n if (this.component.assignedSlot) {\n const slotRoot = this.component.assignedSlot.getRootNode();\n if (slotRoot instanceof ShadowRoot) {\n const host = slotRoot.host;\n if (host && host.tagName.toLowerCase() === 'nile-dropdown') {\n return host;\n }\n }\n }\n \n return null;\n }\n\n private setupPortalEventListeners(): void {\n if (!this.clonedMenu) return;\n\n // Forward events from cloned menu to original component\n this.clonedMenu.addEventListener('nile-select', (event: Event) => {\n const customEvent = event as CustomEvent;\n this.component.dispatchEvent(new CustomEvent('nile-select', { detail: customEvent.detail, bubbles: true }));\n });\n }\n\n cleanupPortalAppend(): void {\n this.cleanupAutoUpdatePositioning();\n \n if (this.portalContainer && this.portalContainer.parentNode) {\n const injectedStyleId = (this.portalContainer as any).__injectedStyleId;\n if (injectedStyleId) {\n const styleElement = document.getElementById(injectedStyleId);\n if (styleElement) {\n styleElement.remove();\n }\n }\n \n this.portalContainer.parentNode.removeChild(this.portalContainer);\n }\n \n window.removeEventListener('resize', this.handleWindowResize.bind(this));\n \n this.portalContainer = null;\n this.originalMenuParent = null;\n this.clonedMenu = null;\n this.measuredMenuHeight = null;\n this.currentPlacement = 'bottom';\n this.currentMiddlewareData = null;\n }\n\n get portalContainerElement(): HTMLElement | null {\n return this.portalContainer;\n }\n\n resetMeasuredHeight(): void {\n this.measuredMenuHeight = null;\n }\n\n forceReposition(): void {\n if (this.portalContainer) {\n this.computeFloatingUIPosition();\n }\n }\n\n getCurrentPlacement(): Placement {\n return this.currentPlacement;\n }\n\n getCurrentMiddlewareData(): MiddlewareData | null {\n return this.currentMiddlewareData;\n }\n\n isUsingFloatingUI(): boolean {\n return this.cleanupAutoUpdate !== null;\n }\n}\n\n"]}
@@ -1,21 +0,0 @@
1
- import { type Placement, type MiddlewareData } from '@floating-ui/dom';
2
- export declare class PortalUtils {
3
- static calculateAvailableSpace(referenceElement: HTMLElement): {
4
- spaceAbove: number;
5
- spaceBelow: number;
6
- viewportHeight: number;
7
- };
8
- static getOptimalPlacement(referenceElement: HTMLElement): Placement;
9
- static findBoundaryElements(component: HTMLElement): Element[] | undefined;
10
- static calculateOptimalHeight(referenceRect: {
11
- x: number;
12
- y: number;
13
- width: number;
14
- height: number;
15
- }, viewportHeight: number, placement: Placement): number;
16
- static extractStylesAsCSS(styles: any): string;
17
- static generateStyleId(): string;
18
- static isPositioningOptimal(placement: Placement, referenceElement: HTMLElement): boolean;
19
- static applyCollisionData(element: HTMLElement, middlewareData: MiddlewareData, placement: Placement): void;
20
- static findReferenceElement(menu: HTMLElement): HTMLElement | null;
21
- }
@@ -1,128 +0,0 @@
1
- export class PortalUtils {
2
- static calculateAvailableSpace(referenceElement) {
3
- const rect = referenceElement.getBoundingClientRect();
4
- const viewportHeight = window.innerHeight;
5
- const spaceBelow = viewportHeight - rect.bottom;
6
- const spaceAbove = rect.top;
7
- return { spaceAbove, spaceBelow, viewportHeight };
8
- }
9
- static getOptimalPlacement(referenceElement) {
10
- const { spaceAbove, spaceBelow } = this.calculateAvailableSpace(referenceElement);
11
- if (spaceBelow < 200 && spaceAbove > spaceBelow) {
12
- return 'top';
13
- }
14
- return 'bottom';
15
- }
16
- static findBoundaryElements(component) {
17
- const boundaryElements = [];
18
- let currentElement = component.parentElement;
19
- while (currentElement && currentElement !== document.body) {
20
- const computedStyle = window.getComputedStyle(currentElement);
21
- const overflow = computedStyle.overflow;
22
- const overflowY = computedStyle.overflowY;
23
- const overflowX = computedStyle.overflowX;
24
- if (overflow === 'auto' || overflow === 'scroll' ||
25
- overflowY === 'auto' || overflowY === 'scroll' ||
26
- overflowX === 'auto' || overflowX === 'scroll') {
27
- boundaryElements.push(currentElement);
28
- }
29
- if (currentElement.hasAttribute('data-floating-boundary') ||
30
- currentElement.classList.contains('floating-boundary') ||
31
- currentElement.classList.contains('scroll-container')) {
32
- boundaryElements.push(currentElement);
33
- }
34
- currentElement = currentElement.parentElement;
35
- }
36
- return boundaryElements.length > 0 ? boundaryElements : undefined;
37
- }
38
- static calculateOptimalHeight(referenceRect, viewportHeight, placement) {
39
- const spaceBelow = viewportHeight - (referenceRect.y + referenceRect.height);
40
- const spaceAbove = referenceRect.y;
41
- if (spaceAbove > spaceBelow) {
42
- return Math.max(spaceAbove - 20, 100);
43
- }
44
- else if (spaceBelow > spaceAbove) {
45
- return Math.max(spaceBelow - 20, 100);
46
- }
47
- return Math.max(Math.min(spaceAbove, spaceBelow) - 20, 100);
48
- }
49
- static extractStylesAsCSS(styles) {
50
- if (typeof styles === 'string') {
51
- return styles;
52
- }
53
- if (Array.isArray(styles)) {
54
- return styles.map(style => this.extractStylesAsCSS(style)).join('\n');
55
- }
56
- if (styles && typeof styles === 'object' && styles.cssText) {
57
- return styles.cssText;
58
- }
59
- return '';
60
- }
61
- static generateStyleId() {
62
- return `nile-menu-styles-${Math.random().toString(36).substring(2, 11)}`;
63
- }
64
- static isPositioningOptimal(placement, referenceElement) {
65
- const { spaceAbove, spaceBelow } = this.calculateAvailableSpace(referenceElement);
66
- const isAbove = placement.startsWith('top');
67
- const isBelow = placement.startsWith('bottom');
68
- if (isAbove && spaceBelow > spaceAbove)
69
- return false;
70
- if (isBelow && spaceAbove > spaceBelow)
71
- return false;
72
- return true;
73
- }
74
- static applyCollisionData(element, middlewareData, placement) {
75
- if (middlewareData.flip) {
76
- const { overflows } = middlewareData.flip;
77
- element.setAttribute('data-placement', placement);
78
- if (overflows && overflows.length > 0) {
79
- const overflowPlacements = overflows.map(overflow => overflow.placement).join(',');
80
- element.setAttribute('data-overflow', overflowPlacements);
81
- }
82
- else {
83
- element.removeAttribute('data-overflow');
84
- }
85
- }
86
- if (middlewareData.shift) {
87
- const { x, y } = middlewareData.shift;
88
- if (x !== undefined && y !== undefined && (x !== 0 || y !== 0)) {
89
- element.setAttribute('data-shift', `${x},${y}`);
90
- }
91
- else {
92
- element.removeAttribute('data-shift');
93
- }
94
- }
95
- if (middlewareData.size) {
96
- const { availableWidth, availableHeight } = middlewareData.size;
97
- if (availableWidth !== undefined) {
98
- element.setAttribute('data-available-width', availableWidth.toString());
99
- }
100
- if (availableHeight !== undefined) {
101
- element.setAttribute('data-available-height', availableHeight.toString());
102
- }
103
- }
104
- }
105
- static findReferenceElement(menu) {
106
- // Try to find nile-dropdown parent first (common use case)
107
- let current = menu.parentElement;
108
- while (current && current !== document.body) {
109
- if (current.tagName.toLowerCase() === 'nile-dropdown') {
110
- // Get the trigger element from the dropdown
111
- const dropdown = current;
112
- const triggerSlot = dropdown.shadowRoot?.querySelector('.dropdown__trigger');
113
- if (triggerSlot) {
114
- const triggerElements = triggerSlot.assignedElements({ flatten: true });
115
- if (triggerElements.length > 0) {
116
- return triggerElements[0];
117
- }
118
- }
119
- // Fallback to parent container itself
120
- return current;
121
- }
122
- current = current.parentElement;
123
- }
124
- // If no parent container found, try to find closest parent element
125
- return menu.parentElement || menu;
126
- }
127
- }
128
- //# sourceMappingURL=portal-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"portal-utils.js","sourceRoot":"","sources":["../../../src/nile-menu/portal-utils.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,WAAW;IACtB,MAAM,CAAC,uBAAuB,CAAC,gBAA6B;QAK1D,MAAM,IAAI,GAAG,gBAAgB,CAAC,qBAAqB,EAAE,CAAC;QACtD,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC;QAC1C,MAAM,UAAU,GAAG,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC;QAE5B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,gBAA6B;QACtD,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;QAElF,IAAI,UAAU,GAAG,GAAG,IAAI,UAAU,GAAG,UAAU,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,SAAsB;QAChD,MAAM,gBAAgB,GAAc,EAAE,CAAC;QAEvC,IAAI,cAAc,GAAG,SAAS,CAAC,aAAa,CAAC;QAE7C,OAAO,cAAc,IAAI,cAAc,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC1D,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;YAC9D,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;YACxC,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;YAC1C,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;YAE1C,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,QAAQ;gBAC5C,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,QAAQ;gBAC9C,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBACnD,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACxC,CAAC;YAED,IAAI,cAAc,CAAC,YAAY,CAAC,wBAAwB,CAAC;gBACrD,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBACtD,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC1D,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACxC,CAAC;YAED,cAAc,GAAG,cAAc,CAAC,aAAa,CAAC;QAChD,CAAC;QAED,OAAO,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;IACpE,CAAC;IAED,MAAM,CAAC,sBAAsB,CAC3B,aAAsE,EACtE,cAAsB,EACtB,SAAoB;QAEpB,MAAM,UAAU,GAAG,cAAc,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC;QAEnC,IAAI,UAAU,GAAG,UAAU,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;QACxC,CAAC;aACI,IAAI,UAAU,GAAG,UAAU,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,MAAW;QACnC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAC3D,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,eAAe;QACpB,OAAO,oBAAoB,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAC3E,CAAC;IAED,MAAM,CAAC,oBAAoB,CACzB,SAAoB,EACpB,gBAA6B;QAE7B,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;QAElF,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAE/C,IAAI,OAAO,IAAI,UAAU,GAAG,UAAU;YAAE,OAAO,KAAK,CAAC;QACrD,IAAI,OAAO,IAAI,UAAU,GAAG,UAAU;YAAE,OAAO,KAAK,CAAC;QAErD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,kBAAkB,CACvB,OAAoB,EACpB,cAA8B,EAC9B,SAAoB;QAEpB,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC;YACxB,MAAM,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC;YAE1C,OAAO,CAAC,YAAY,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;YAElD,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,MAAM,kBAAkB,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnF,OAAO,CAAC,YAAY,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC;YACzB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC;YAEtC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC/D,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC;YACxB,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC;YAEhE,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,CAAC,YAAY,CAAC,sBAAsB,EAAE,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO,CAAC,YAAY,CAAC,uBAAuB,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,IAAiB;QAC3C,2DAA2D;QAC3D,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;QACjC,OAAO,OAAO,IAAI,OAAO,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,eAAe,EAAE,CAAC;gBACtD,4CAA4C;gBAC5C,MAAM,QAAQ,GAAG,OAAc,CAAC;gBAChC,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,oBAAoB,CAAoB,CAAC;gBAChG,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,eAAe,GAAG,WAAW,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;oBACxE,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC/B,OAAO,eAAe,CAAC,CAAC,CAAgB,CAAC;oBAC3C,CAAC;gBACH,CAAC;gBACD,sCAAsC;gBACtC,OAAO,OAAsB,CAAC;YAChC,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;QAClC,CAAC;QAED,mEAAmE;QACnE,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;IACpC,CAAC;CACF","sourcesContent":["import { \n type Placement,\n type MiddlewareData\n} from '@floating-ui/dom';\n\nexport class PortalUtils {\n static calculateAvailableSpace(referenceElement: HTMLElement): {\n spaceAbove: number;\n spaceBelow: number;\n viewportHeight: number;\n } {\n const rect = referenceElement.getBoundingClientRect();\n const viewportHeight = window.innerHeight;\n const spaceBelow = viewportHeight - rect.bottom;\n const spaceAbove = rect.top;\n \n return { spaceAbove, spaceBelow, viewportHeight };\n }\n\n static getOptimalPlacement(referenceElement: HTMLElement): Placement {\n const { spaceAbove, spaceBelow } = this.calculateAvailableSpace(referenceElement);\n \n if (spaceBelow < 200 && spaceAbove > spaceBelow) {\n return 'top';\n }\n \n return 'bottom';\n }\n\n static findBoundaryElements(component: HTMLElement): Element[] | undefined {\n const boundaryElements: Element[] = [];\n \n let currentElement = component.parentElement;\n \n while (currentElement && currentElement !== document.body) {\n const computedStyle = window.getComputedStyle(currentElement);\n const overflow = computedStyle.overflow;\n const overflowY = computedStyle.overflowY;\n const overflowX = computedStyle.overflowX;\n \n if (overflow === 'auto' || overflow === 'scroll' || \n overflowY === 'auto' || overflowY === 'scroll' ||\n overflowX === 'auto' || overflowX === 'scroll') {\n boundaryElements.push(currentElement);\n }\n \n if (currentElement.hasAttribute('data-floating-boundary') ||\n currentElement.classList.contains('floating-boundary') ||\n currentElement.classList.contains('scroll-container')) {\n boundaryElements.push(currentElement);\n }\n \n currentElement = currentElement.parentElement;\n }\n \n return boundaryElements.length > 0 ? boundaryElements : undefined;\n }\n\n static calculateOptimalHeight(\n referenceRect: { x: number; y: number; width: number; height: number },\n viewportHeight: number,\n placement: Placement\n ): number {\n const spaceBelow = viewportHeight - (referenceRect.y + referenceRect.height);\n const spaceAbove = referenceRect.y;\n \n if (spaceAbove > spaceBelow) {\n return Math.max(spaceAbove - 20, 100);\n }\n else if (spaceBelow > spaceAbove) {\n return Math.max(spaceBelow - 20, 100);\n }\n \n return Math.max(Math.min(spaceAbove, spaceBelow) - 20, 100);\n }\n\n static extractStylesAsCSS(styles: any): string {\n if (typeof styles === 'string') {\n return styles;\n }\n \n if (Array.isArray(styles)) {\n return styles.map(style => this.extractStylesAsCSS(style)).join('\\n');\n }\n \n if (styles && typeof styles === 'object' && styles.cssText) {\n return styles.cssText;\n }\n \n return '';\n }\n\n static generateStyleId(): string {\n return `nile-menu-styles-${Math.random().toString(36).substring(2, 11)}`;\n }\n\n static isPositioningOptimal(\n placement: Placement,\n referenceElement: HTMLElement\n ): boolean {\n const { spaceAbove, spaceBelow } = this.calculateAvailableSpace(referenceElement);\n \n const isAbove = placement.startsWith('top');\n const isBelow = placement.startsWith('bottom');\n \n if (isAbove && spaceBelow > spaceAbove) return false;\n if (isBelow && spaceAbove > spaceBelow) return false;\n \n return true;\n }\n\n static applyCollisionData(\n element: HTMLElement,\n middlewareData: MiddlewareData,\n placement: Placement\n ): void {\n if (middlewareData.flip) {\n const { overflows } = middlewareData.flip;\n \n element.setAttribute('data-placement', placement);\n \n if (overflows && overflows.length > 0) {\n const overflowPlacements = overflows.map(overflow => overflow.placement).join(',');\n element.setAttribute('data-overflow', overflowPlacements);\n } else {\n element.removeAttribute('data-overflow');\n }\n }\n\n if (middlewareData.shift) {\n const { x, y } = middlewareData.shift;\n \n if (x !== undefined && y !== undefined && (x !== 0 || y !== 0)) {\n element.setAttribute('data-shift', `${x},${y}`);\n } else {\n element.removeAttribute('data-shift');\n }\n }\n\n if (middlewareData.size) {\n const { availableWidth, availableHeight } = middlewareData.size;\n \n if (availableWidth !== undefined) {\n element.setAttribute('data-available-width', availableWidth.toString());\n }\n if (availableHeight !== undefined) {\n element.setAttribute('data-available-height', availableHeight.toString());\n }\n }\n }\n\n static findReferenceElement(menu: HTMLElement): HTMLElement | null {\n // Try to find nile-dropdown parent first (common use case)\n let current = menu.parentElement;\n while (current && current !== document.body) {\n if (current.tagName.toLowerCase() === 'nile-dropdown') {\n // Get the trigger element from the dropdown\n const dropdown = current as any;\n const triggerSlot = dropdown.shadowRoot?.querySelector('.dropdown__trigger') as HTMLSlotElement;\n if (triggerSlot) {\n const triggerElements = triggerSlot.assignedElements({ flatten: true });\n if (triggerElements.length > 0) {\n return triggerElements[0] as HTMLElement;\n }\n }\n // Fallback to parent container itself\n return current as HTMLElement;\n }\n current = current.parentElement;\n }\n \n // If no parent container found, try to find closest parent element\n return menu.parentElement || menu;\n }\n}\n\n"]}
@@ -1,22 +0,0 @@
1
- /* @web/test-runner snapshot v1 */
2
- export const snapshots = {};
3
-
4
- snapshots["NilePopover renders correctly"] =
5
- `<nile-popup
6
- active=""
7
- arrowplacement="anchor"
8
- distance="18"
9
- placement="top"
10
- shift=""
11
- strategy="absolute"
12
- >
13
- <slot
14
- aria-describedby="tooltip"
15
- name="anchor"
16
- slot="anchor"
17
- >
18
- </slot>
19
- </nile-popup>
20
- `;
21
- /* end snapshot NilePopover renders correctly */
22
-
@@ -1,21 +0,0 @@
1
- /**
2
- * Copyright Aquera Inc 2025
3
- *
4
- * This source code is licensed under the BSD-3-Clause license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
- import { PortalContentHandler, PortalConfig } from '../internal/portal-manager';
8
- import type { CSSResultGroup } from 'lit';
9
- export declare class PopoverPortalHandler implements PortalContentHandler {
10
- private component;
11
- private config;
12
- private clonedPopoverContent;
13
- constructor(component: any, config?: PortalConfig);
14
- createPortalContent(): HTMLElement;
15
- private createFallbackContent;
16
- updatePortalContent(portalElement: HTMLElement): void;
17
- setupEventListeners(portalElement: HTMLElement): void;
18
- cleanupEventListeners(portalElement: HTMLElement): void;
19
- getReferenceElement(): HTMLElement;
20
- getComponentStyles(): CSSResultGroup | undefined;
21
- }