@aquera/nile-elements 1.3.4-beta-1 → 1.3.4

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 (450) hide show
  1. package/README.md +3 -0
  2. package/demo/index.html +27 -20
  3. package/dist/{fixture-54600b35.cjs.js → fixture-1c49c014.cjs.js} +2 -2
  4. package/dist/{fixture-73855806.cjs.js.map → fixture-1c49c014.cjs.js.map} +1 -1
  5. package/dist/{fixture-9871e8a9.esm.js → fixture-985bba12.esm.js} +1 -1
  6. package/dist/index.js +3 -2
  7. package/dist/nile-accordion/nile-accordian.test.cjs.js +1 -1
  8. package/dist/nile-accordion/nile-accordian.test.esm.js +1 -1
  9. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +1 -1
  10. package/dist/nile-auto-complete/nile-auto-complete.test.esm.js +1 -1
  11. package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
  12. package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
  13. package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
  14. package/dist/nile-badge/nile-badge.test.esm.js +1 -1
  15. package/dist/nile-button/nile-button.test.cjs.js +1 -1
  16. package/dist/nile-button/nile-button.test.esm.js +1 -1
  17. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +1 -1
  18. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.esm.js +1 -1
  19. package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
  20. package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
  21. package/dist/nile-card/nile-card.test.cjs.js +1 -1
  22. package/dist/nile-card/nile-card.test.esm.js +1 -1
  23. package/dist/nile-checkbox/nile-checkbox.test.cjs.js +1 -1
  24. package/dist/nile-checkbox/nile-checkbox.test.esm.js +1 -1
  25. package/dist/nile-chip/nile-chip.cjs.js +1 -1
  26. package/dist/nile-chip/nile-chip.cjs.js.map +1 -1
  27. package/dist/nile-chip/nile-chip.esm.js +3 -2
  28. package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
  29. package/dist/nile-chip/nile-chip.test.esm.js +1 -1
  30. package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
  31. package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
  32. package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
  33. package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
  34. package/dist/nile-dropdown/nile-dropdown.test.cjs.js +1 -1
  35. package/dist/nile-dropdown/nile-dropdown.test.esm.js +1 -1
  36. package/dist/nile-empty-state/nile-empty-state.test.cjs.js +1 -1
  37. package/dist/nile-empty-state/nile-empty-state.test.esm.js +1 -1
  38. package/dist/nile-error-message/nile-error-message.test.cjs.js +1 -1
  39. package/dist/nile-error-message/nile-error-message.test.esm.js +1 -1
  40. package/dist/nile-file-preview/nile-file-preview.test.cjs.js +1 -1
  41. package/dist/nile-file-preview/nile-file-preview.test.esm.js +1 -1
  42. package/dist/nile-file-upload/nile-file-upload.test.cjs.js +1 -1
  43. package/dist/nile-file-upload/nile-file-upload.test.esm.js +1 -1
  44. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +1 -1
  45. package/dist/nile-filter-chip/nile-filter-chip.test.esm.js +1 -1
  46. package/dist/nile-form-group/nile-form-group.test.cjs.js +1 -1
  47. package/dist/nile-form-group/nile-form-group.test.esm.js +1 -1
  48. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +1 -1
  49. package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +1 -1
  50. package/dist/nile-hero/nile-hero.test.cjs.js +1 -1
  51. package/dist/nile-hero/nile-hero.test.esm.js +1 -1
  52. package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
  53. package/dist/nile-icon/nile-icon.test.esm.js +1 -1
  54. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  55. package/dist/nile-input/nile-input.test.esm.js +1 -1
  56. package/dist/nile-link/nile-link.test.cjs.js +1 -1
  57. package/dist/nile-link/nile-link.test.esm.js +1 -1
  58. package/dist/nile-loader/nile-loader.test.cjs.js +1 -1
  59. package/dist/nile-loader/nile-loader.test.esm.js +1 -1
  60. package/dist/nile-popover/nile-popover.test.cjs.js +1 -1
  61. package/dist/nile-popover/nile-popover.test.esm.js +1 -1
  62. package/dist/nile-popup/nile-popup.test.cjs.js +1 -1
  63. package/dist/nile-popup/nile-popup.test.esm.js +1 -1
  64. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +1 -1
  65. package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +1 -1
  66. package/dist/nile-radio/nile-radio.test.cjs.js +1 -1
  67. package/dist/nile-radio/nile-radio.test.esm.js +1 -1
  68. package/dist/nile-radio-group/nile-radio-group.test.cjs.js +1 -1
  69. package/dist/nile-radio-group/nile-radio-group.test.esm.js +1 -1
  70. package/dist/nile-select/nile-select.test.cjs.js +1 -1
  71. package/dist/nile-select/nile-select.test.esm.js +1 -1
  72. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +1 -1
  73. package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +1 -1
  74. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
  75. package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
  76. package/dist/nile-textarea/nile-textarea.test.cjs.js +1 -1
  77. package/dist/nile-textarea/nile-textarea.test.esm.js +1 -1
  78. package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js +1 -1
  79. package/dist/nile-virtual-select/nile-virtual-select.test.esm.js +1 -1
  80. package/dist/src/nile-chip/nile-chip.js +8 -0
  81. package/dist/src/nile-chip/nile-chip.js.map +1 -1
  82. package/dist/src/version.js +1 -1
  83. package/dist/src/version.js.map +1 -1
  84. package/dist/tsconfig.tsbuildinfo +1 -1
  85. package/package.json +1 -1
  86. package/src/nile-chip/nile-chip.ts +9 -0
  87. package/dist/fixture-54600b35.cjs.js.map +0 -1
  88. package/dist/fixture-5b79f853.cjs.js +0 -395
  89. package/dist/fixture-5b79f853.cjs.js.map +0 -1
  90. package/dist/fixture-73855806.cjs.js +0 -395
  91. package/dist/fixture-90b199c4.esm.js +0 -569
  92. package/dist/fixture-c1d78368.cjs.js +0 -395
  93. package/dist/fixture-c1d78368.cjs.js.map +0 -1
  94. package/dist/fixture-cf7bfcf5.esm.js +0 -569
  95. package/dist/fixture-dbd66009.cjs.js +0 -395
  96. package/dist/fixture-dbd66009.cjs.js.map +0 -1
  97. package/dist/nile-code-editor/backup_nile-code-editor copy.cjs.js +0 -2
  98. package/dist/nile-code-editor/backup_nile-code-editor copy.cjs.js.map +0 -1
  99. package/dist/nile-code-editor/backup_nile-code-editor copy.esm.js +0 -1
  100. package/dist/nile-grid/nile-grid.types.cjs.js +0 -2
  101. package/dist/nile-grid/nile-grid.types.cjs.js.map +0 -1
  102. package/dist/nile-grid/nile-grid.types.esm.js +0 -1
  103. package/dist/nile-grid-body/index.cjs.js +0 -2
  104. package/dist/nile-grid-body/index.cjs.js.map +0 -1
  105. package/dist/nile-grid-body/index.esm.js +0 -1
  106. package/dist/nile-grid-body/nile-grid-body.cjs.js +0 -2
  107. package/dist/nile-grid-body/nile-grid-body.cjs.js.map +0 -1
  108. package/dist/nile-grid-body/nile-grid-body.css.cjs.js +0 -2
  109. package/dist/nile-grid-body/nile-grid-body.css.cjs.js.map +0 -1
  110. package/dist/nile-grid-body/nile-grid-body.css.esm.js +0 -10
  111. package/dist/nile-grid-body/nile-grid-body.esm.js +0 -5
  112. package/dist/nile-grid-cell-item/index.cjs.js +0 -2
  113. package/dist/nile-grid-cell-item/index.cjs.js.map +0 -1
  114. package/dist/nile-grid-cell-item/index.esm.js +0 -1
  115. package/dist/nile-grid-cell-item/nile-grid-cell-item.cjs.js +0 -2
  116. package/dist/nile-grid-cell-item/nile-grid-cell-item.cjs.js.map +0 -1
  117. package/dist/nile-grid-cell-item/nile-grid-cell-item.css.cjs.js +0 -2
  118. package/dist/nile-grid-cell-item/nile-grid-cell-item.css.cjs.js.map +0 -1
  119. package/dist/nile-grid-cell-item/nile-grid-cell-item.css.esm.js +0 -35
  120. package/dist/nile-grid-cell-item/nile-grid-cell-item.esm.js +0 -12
  121. package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.cjs.js +0 -2
  122. package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.cjs.js.map +0 -1
  123. package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.esm.js +0 -1
  124. package/dist/nile-grid-head/index.cjs.js +0 -2
  125. package/dist/nile-grid-head/index.cjs.js.map +0 -1
  126. package/dist/nile-grid-head/index.esm.js +0 -1
  127. package/dist/nile-grid-head/nile-grid-head.cjs.js +0 -2
  128. package/dist/nile-grid-head/nile-grid-head.cjs.js.map +0 -1
  129. package/dist/nile-grid-head/nile-grid-head.css.cjs.js +0 -2
  130. package/dist/nile-grid-head/nile-grid-head.css.cjs.js.map +0 -1
  131. package/dist/nile-grid-head/nile-grid-head.css.esm.js +0 -7
  132. package/dist/nile-grid-head/nile-grid-head.esm.js +0 -5
  133. package/dist/nile-grid-head-item/index.cjs.js +0 -2
  134. package/dist/nile-grid-head-item/index.cjs.js.map +0 -1
  135. package/dist/nile-grid-head-item/index.esm.js +0 -1
  136. package/dist/nile-grid-head-item/nile-grid-head-item.cjs.js +0 -2
  137. package/dist/nile-grid-head-item/nile-grid-head-item.cjs.js.map +0 -1
  138. package/dist/nile-grid-head-item/nile-grid-head-item.css.cjs.js +0 -2
  139. package/dist/nile-grid-head-item/nile-grid-head-item.css.cjs.js.map +0 -1
  140. package/dist/nile-grid-head-item/nile-grid-head-item.css.esm.js +0 -34
  141. package/dist/nile-grid-head-item/nile-grid-head-item.esm.js +0 -12
  142. package/dist/nile-grid-head-item/nile-grid-head-item.utils.cjs.js +0 -2
  143. package/dist/nile-grid-head-item/nile-grid-head-item.utils.cjs.js.map +0 -1
  144. package/dist/nile-grid-head-item/nile-grid-head-item.utils.esm.js +0 -1
  145. package/dist/nile-grid-row/index.cjs.js +0 -2
  146. package/dist/nile-grid-row/index.cjs.js.map +0 -1
  147. package/dist/nile-grid-row/index.esm.js +0 -1
  148. package/dist/nile-grid-row/nile-grid-row.cjs.js +0 -2
  149. package/dist/nile-grid-row/nile-grid-row.cjs.js.map +0 -1
  150. package/dist/nile-grid-row/nile-grid-row.css.cjs.js +0 -2
  151. package/dist/nile-grid-row/nile-grid-row.css.cjs.js.map +0 -1
  152. package/dist/nile-grid-row/nile-grid-row.css.esm.js +0 -15
  153. package/dist/nile-grid-row/nile-grid-row.esm.js +0 -7
  154. package/dist/nile-rich-text-editor/utils.cjs.js +0 -2
  155. package/dist/nile-rich-text-editor/utils.cjs.js.map +0 -1
  156. package/dist/nile-rich-text-editor/utils.esm.js +0 -1
  157. package/dist/nile-sidebar/index.cjs.js +0 -2
  158. package/dist/nile-sidebar/index.cjs.js.map +0 -1
  159. package/dist/nile-sidebar/index.esm.js +0 -75
  160. package/dist/nile-sidebar-menu/index.cjs.js +0 -2
  161. package/dist/nile-sidebar-menu/index.cjs.js.map +0 -1
  162. package/dist/nile-sidebar-menu/index.esm.js +0 -1
  163. package/dist/nile-sidebar-menu/nile-sidebar-menu.cjs.js +0 -2
  164. package/dist/nile-sidebar-menu/nile-sidebar-menu.cjs.js.map +0 -1
  165. package/dist/nile-sidebar-menu/nile-sidebar-menu.css.cjs.js +0 -2
  166. package/dist/nile-sidebar-menu/nile-sidebar-menu.css.cjs.js.map +0 -1
  167. package/dist/nile-sidebar-menu/nile-sidebar-menu.css.esm.js +0 -38
  168. package/dist/nile-sidebar-menu/nile-sidebar-menu.esm.js +0 -10
  169. package/dist/nile-sidebar-menu-items/index.cjs.js +0 -2
  170. package/dist/nile-sidebar-menu-items/index.cjs.js.map +0 -1
  171. package/dist/nile-sidebar-menu-items/index.esm.js +0 -1
  172. package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.cjs.js +0 -2
  173. package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.cjs.js.map +0 -1
  174. package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.css.cjs.js +0 -2
  175. package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.css.cjs.js.map +0 -1
  176. package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.css.esm.js +0 -36
  177. package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.esm.js +0 -15
  178. package/dist/nile-sidebar-wrapper/index.cjs.js +0 -2
  179. package/dist/nile-sidebar-wrapper/index.cjs.js.map +0 -1
  180. package/dist/nile-sidebar-wrapper/index.esm.js +0 -1
  181. package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.cjs.js +0 -2
  182. package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.cjs.js.map +0 -1
  183. package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.css.cjs.js +0 -2
  184. package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.css.cjs.js.map +0 -1
  185. package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.css.esm.js +0 -105
  186. package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.esm.js +0 -16
  187. package/dist/nile-virtual-select/group-manager.cjs.js +0 -2
  188. package/dist/nile-virtual-select/group-manager.cjs.js.map +0 -1
  189. package/dist/nile-virtual-select/group-manager.esm.js +0 -1
  190. package/dist/nile-virtual-select/temp_nile-virtual-select copy.cjs.js +0 -2
  191. package/dist/nile-virtual-select/temp_nile-virtual-select copy.cjs.js.map +0 -1
  192. package/dist/nile-virtual-select/temp_nile-virtual-select copy.esm.js +0 -231
  193. package/dist/scopedElementsWrapper-1bff26ef.cjs.js +0 -2
  194. package/dist/scopedElementsWrapper-1bff26ef.cjs.js.map +0 -1
  195. package/dist/scopedElementsWrapper-4c29be11.esm.js +0 -7
  196. package/dist/scopedElementsWrapper-a112fc73.cjs.js +0 -6
  197. package/dist/scopedElementsWrapper-a112fc73.cjs.js.map +0 -1
  198. package/dist/scopedElementsWrapper-c815042c.cjs.js +0 -2
  199. package/dist/scopedElementsWrapper-c815042c.cjs.js.map +0 -1
  200. package/dist/src/internal/portal-manager.d.ts +0 -53
  201. package/dist/src/internal/portal-manager.js +0 -196
  202. package/dist/src/internal/portal-manager.js.map +0 -1
  203. package/dist/src/internal/portal.d.ts +0 -60
  204. package/dist/src/internal/portal.js +0 -199
  205. package/dist/src/internal/portal.js.map +0 -1
  206. package/dist/src/internal/resizable-helper.d.ts +0 -59
  207. package/dist/src/internal/resizable-helper.js +0 -115
  208. package/dist/src/internal/resizable-helper.js.map +0 -1
  209. package/dist/src/internal/resizable-styles.d.ts +0 -16
  210. package/dist/src/internal/resizable-styles.js +0 -144
  211. package/dist/src/internal/resizable-styles.js.map +0 -1
  212. package/dist/src/internal/virtualizer-error-handler.d.ts +0 -30
  213. package/dist/src/internal/virtualizer-error-handler.js +0 -82
  214. package/dist/src/internal/virtualizer-error-handler.js.map +0 -1
  215. package/dist/src/lib/index.d.ts +0 -7
  216. package/dist/src/lib/index.js +0 -8
  217. package/dist/src/lib/index.js.map +0 -1
  218. package/dist/src/lib/virtualize.d.ts +0 -32
  219. package/dist/src/lib/virtualize.js +0 -105
  220. package/dist/src/lib/virtualize.js.map +0 -1
  221. package/dist/src/lib/virtualize.test.d.ts +0 -7
  222. package/dist/src/lib/virtualize.test.js +0 -57
  223. package/dist/src/lib/virtualize.test.js.map +0 -1
  224. package/dist/src/nile-badge/__snapshots__/nile-badge.test.snap.js +0 -17
  225. package/dist/src/nile-calendar/__snapshots__/nile-calendar.test.snap.js +0 -310
  226. package/dist/src/nile-card/__snapshots__/nile-card.test.snap.js +0 -34
  227. package/dist/src/nile-checkbox/__snapshots__/nile-checkbox.test.snap.js +0 -31
  228. package/dist/src/nile-code-editor/Old_theme copy.d.ts +0 -191
  229. package/dist/src/nile-code-editor/Old_theme copy.js +0 -193
  230. package/dist/src/nile-code-editor/Old_theme copy.js.map +0 -1
  231. package/dist/src/nile-code-editor/backup_nile-code-editor copy.d.ts +0 -0
  232. package/dist/src/nile-code-editor/backup_nile-code-editor copy.js +0 -675
  233. package/dist/src/nile-code-editor/backup_nile-code-editor copy.js.map +0 -1
  234. package/dist/src/nile-code-editor/theme copy.d.ts +0 -191
  235. package/dist/src/nile-code-editor/theme copy.js +0 -193
  236. package/dist/src/nile-code-editor/theme copy.js.map +0 -1
  237. package/dist/src/nile-floating-panel/anchor-manager.d.ts +0 -26
  238. package/dist/src/nile-floating-panel/anchor-manager.js +0 -49
  239. package/dist/src/nile-floating-panel/anchor-manager.js.map +0 -1
  240. package/dist/src/nile-floating-panel/content-manager.d.ts +0 -23
  241. package/dist/src/nile-floating-panel/content-manager.js +0 -67
  242. package/dist/src/nile-floating-panel/content-manager.js.map +0 -1
  243. package/dist/src/nile-floating-panel/event-manager.d.ts +0 -38
  244. package/dist/src/nile-floating-panel/event-manager.js +0 -81
  245. package/dist/src/nile-floating-panel/event-manager.js.map +0 -1
  246. package/dist/src/nile-floating-panel/index.d.ts +0 -1
  247. package/dist/src/nile-floating-panel/index.js +0 -2
  248. package/dist/src/nile-floating-panel/index.js.map +0 -1
  249. package/dist/src/nile-floating-panel/nile-floating-panel.css.d.ts +0 -17
  250. package/dist/src/nile-floating-panel/nile-floating-panel.css.js +0 -51
  251. package/dist/src/nile-floating-panel/nile-floating-panel.css.js.map +0 -1
  252. package/dist/src/nile-floating-panel/nile-floating-panel.d.ts +0 -67
  253. package/dist/src/nile-floating-panel/nile-floating-panel.js +0 -203
  254. package/dist/src/nile-floating-panel/nile-floating-panel.js.map +0 -1
  255. package/dist/src/nile-floating-panel/position-manager.d.ts +0 -47
  256. package/dist/src/nile-floating-panel/position-manager.js +0 -94
  257. package/dist/src/nile-floating-panel/position-manager.js.map +0 -1
  258. package/dist/src/nile-floating-panel/style-manager.d.ts +0 -31
  259. package/dist/src/nile-floating-panel/style-manager.js +0 -74
  260. package/dist/src/nile-floating-panel/style-manager.js.map +0 -1
  261. package/dist/src/nile-floating-panel/types.d.ts +0 -29
  262. package/dist/src/nile-floating-panel/types.js +0 -8
  263. package/dist/src/nile-floating-panel/types.js.map +0 -1
  264. package/dist/src/nile-grid/data-processor.d.ts +0 -37
  265. package/dist/src/nile-grid/data-processor.js +0 -122
  266. package/dist/src/nile-grid/data-processor.js.map +0 -1
  267. package/dist/src/nile-grid/event-handlers.d.ts +0 -35
  268. package/dist/src/nile-grid/event-handlers.js +0 -158
  269. package/dist/src/nile-grid/event-handlers.js.map +0 -1
  270. package/dist/src/nile-grid/nile-grid.types.d.ts +0 -3
  271. package/dist/src/nile-grid/nile-grid.types.js +0 -2
  272. package/dist/src/nile-grid/nile-grid.types.js.map +0 -1
  273. package/dist/src/nile-grid/renderer.d.ts +0 -8
  274. package/dist/src/nile-grid/renderer.js +0 -78
  275. package/dist/src/nile-grid/renderer.js.map +0 -1
  276. package/dist/src/nile-grid/resize-handler.d.ts +0 -4
  277. package/dist/src/nile-grid/resize-handler.js +0 -36
  278. package/dist/src/nile-grid/resize-handler.js.map +0 -1
  279. package/dist/src/nile-grid/types.d.ts +0 -32
  280. package/dist/src/nile-grid/types.js +0 -2
  281. package/dist/src/nile-grid/types.js.map +0 -1
  282. package/dist/src/nile-grid/utils.d.ts +0 -4
  283. package/dist/src/nile-grid/utils.js +0 -32
  284. package/dist/src/nile-grid/utils.js.map +0 -1
  285. package/dist/src/nile-grid-body/index.d.ts +0 -1
  286. package/dist/src/nile-grid-body/index.js +0 -2
  287. package/dist/src/nile-grid-body/index.js.map +0 -1
  288. package/dist/src/nile-grid-body/nile-grid-body.css.d.ts +0 -12
  289. package/dist/src/nile-grid-body/nile-grid-body.css.js +0 -22
  290. package/dist/src/nile-grid-body/nile-grid-body.css.js.map +0 -1
  291. package/dist/src/nile-grid-body/nile-grid-body.d.ts +0 -29
  292. package/dist/src/nile-grid-body/nile-grid-body.js +0 -43
  293. package/dist/src/nile-grid-body/nile-grid-body.js.map +0 -1
  294. package/dist/src/nile-grid-cell-item/index.d.ts +0 -1
  295. package/dist/src/nile-grid-cell-item/index.js +0 -2
  296. package/dist/src/nile-grid-cell-item/index.js.map +0 -1
  297. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.d.ts +0 -12
  298. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.js +0 -47
  299. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.js.map +0 -1
  300. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.d.ts +0 -36
  301. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.js +0 -93
  302. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.js.map +0 -1
  303. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.d.ts +0 -10
  304. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.js +0 -34
  305. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.js.map +0 -1
  306. package/dist/src/nile-grid-head/index.d.ts +0 -1
  307. package/dist/src/nile-grid-head/index.js +0 -2
  308. package/dist/src/nile-grid-head/index.js.map +0 -1
  309. package/dist/src/nile-grid-head/nile-grid-head.css.d.ts +0 -12
  310. package/dist/src/nile-grid-head/nile-grid-head.css.js +0 -19
  311. package/dist/src/nile-grid-head/nile-grid-head.css.js.map +0 -1
  312. package/dist/src/nile-grid-head/nile-grid-head.d.ts +0 -28
  313. package/dist/src/nile-grid-head/nile-grid-head.js +0 -41
  314. package/dist/src/nile-grid-head/nile-grid-head.js.map +0 -1
  315. package/dist/src/nile-grid-head-item/index.d.ts +0 -1
  316. package/dist/src/nile-grid-head-item/index.js +0 -2
  317. package/dist/src/nile-grid-head-item/index.js.map +0 -1
  318. package/dist/src/nile-grid-head-item/nile-grid-head-item.css.d.ts +0 -12
  319. package/dist/src/nile-grid-head-item/nile-grid-head-item.css.js +0 -46
  320. package/dist/src/nile-grid-head-item/nile-grid-head-item.css.js.map +0 -1
  321. package/dist/src/nile-grid-head-item/nile-grid-head-item.d.ts +0 -37
  322. package/dist/src/nile-grid-head-item/nile-grid-head-item.js +0 -100
  323. package/dist/src/nile-grid-head-item/nile-grid-head-item.js.map +0 -1
  324. package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.d.ts +0 -10
  325. package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.js +0 -34
  326. package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.js.map +0 -1
  327. package/dist/src/nile-grid-row/index.d.ts +0 -1
  328. package/dist/src/nile-grid-row/index.js +0 -2
  329. package/dist/src/nile-grid-row/index.js.map +0 -1
  330. package/dist/src/nile-grid-row/nile-grid-row.css.d.ts +0 -12
  331. package/dist/src/nile-grid-row/nile-grid-row.css.js +0 -27
  332. package/dist/src/nile-grid-row/nile-grid-row.css.js.map +0 -1
  333. package/dist/src/nile-grid-row/nile-grid-row.d.ts +0 -29
  334. package/dist/src/nile-grid-row/nile-grid-row.js +0 -45
  335. package/dist/src/nile-grid-row/nile-grid-row.js.map +0 -1
  336. package/dist/src/nile-hero/__snapshots__/nile-hero.test.snap.js +0 -47
  337. package/dist/src/nile-icon/__snapshots__/nile-icon.test.snap.js +0 -16
  338. package/dist/src/nile-input/__snapshots__/nile-input.test.snap.js +0 -75
  339. package/dist/src/nile-menu/portal-manager.d.ts +0 -39
  340. package/dist/src/nile-menu/portal-manager.js +0 -340
  341. package/dist/src/nile-menu/portal-manager.js.map +0 -1
  342. package/dist/src/nile-menu/portal-utils.d.ts +0 -21
  343. package/dist/src/nile-menu/portal-utils.js +0 -128
  344. package/dist/src/nile-menu/portal-utils.js.map +0 -1
  345. package/dist/src/nile-popover/__snapshots__/nile-popover.test.snap.js +0 -22
  346. package/dist/src/nile-popover/popover-portal-handler.d.ts +0 -21
  347. package/dist/src/nile-popover/popover-portal-handler.js +0 -106
  348. package/dist/src/nile-popover/popover-portal-handler.js.map +0 -1
  349. package/dist/src/nile-portal-wrapper/index.d.ts +0 -1
  350. package/dist/src/nile-portal-wrapper/index.js +0 -2
  351. package/dist/src/nile-portal-wrapper/index.js.map +0 -1
  352. package/dist/src/nile-portal-wrapper/nile-portal-wrapper.d.ts +0 -47
  353. package/dist/src/nile-portal-wrapper/nile-portal-wrapper.js +0 -451
  354. package/dist/src/nile-portal-wrapper/nile-portal-wrapper.js.map +0 -1
  355. package/dist/src/nile-rich-text-editor/utils.d.ts +0 -13
  356. package/dist/src/nile-rich-text-editor/utils.js +0 -538
  357. package/dist/src/nile-rich-text-editor/utils.js.map +0 -1
  358. package/dist/src/nile-select/body-append-manager.d.ts +0 -90
  359. package/dist/src/nile-select/body-append-manager.js +0 -298
  360. package/dist/src/nile-select/body-append-manager.js.map +0 -1
  361. package/dist/src/nile-sidebar/index.d.ts +0 -28
  362. package/dist/src/nile-sidebar/index.js +0 -116
  363. package/dist/src/nile-sidebar/index.js.map +0 -1
  364. package/dist/src/nile-sidebar-menu/index.d.ts +0 -1
  365. package/dist/src/nile-sidebar-menu/index.js +0 -2
  366. package/dist/src/nile-sidebar-menu/index.js.map +0 -1
  367. package/dist/src/nile-sidebar-menu/nile-sidebar-menu.css.d.ts +0 -12
  368. package/dist/src/nile-sidebar-menu/nile-sidebar-menu.css.js +0 -47
  369. package/dist/src/nile-sidebar-menu/nile-sidebar-menu.css.js.map +0 -1
  370. package/dist/src/nile-sidebar-menu/nile-sidebar-menu.d.ts +0 -37
  371. package/dist/src/nile-sidebar-menu/nile-sidebar-menu.js +0 -84
  372. package/dist/src/nile-sidebar-menu/nile-sidebar-menu.js.map +0 -1
  373. package/dist/src/nile-sidebar-menu-items/index.d.ts +0 -1
  374. package/dist/src/nile-sidebar-menu-items/index.js +0 -2
  375. package/dist/src/nile-sidebar-menu-items/index.js.map +0 -1
  376. package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.css.d.ts +0 -12
  377. package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.css.js +0 -45
  378. package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.css.js.map +0 -1
  379. package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.d.ts +0 -35
  380. package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.js +0 -78
  381. package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.js.map +0 -1
  382. package/dist/src/nile-sidebar-wrapper/index.d.ts +0 -1
  383. package/dist/src/nile-sidebar-wrapper/index.js +0 -2
  384. package/dist/src/nile-sidebar-wrapper/index.js.map +0 -1
  385. package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.css.d.ts +0 -12
  386. package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.css.js +0 -114
  387. package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.css.js.map +0 -1
  388. package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.d.ts +0 -35
  389. package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.js +0 -89
  390. package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.js.map +0 -1
  391. package/dist/src/nile-table-body/virtual-scroll-helper.d.ts +0 -9
  392. package/dist/src/nile-table-body/virtual-scroll-helper.js +0 -24
  393. package/dist/src/nile-table-body/virtual-scroll-helper.js.map +0 -1
  394. package/dist/src/nile-virtual-select/body-append-helper.d.ts +0 -16
  395. package/dist/src/nile-virtual-select/body-append-helper.js +0 -95
  396. package/dist/src/nile-virtual-select/body-append-helper.js.map +0 -1
  397. package/dist/src/nile-virtual-select/group-manager.d.ts +0 -32
  398. package/dist/src/nile-virtual-select/group-manager.js +0 -134
  399. package/dist/src/nile-virtual-select/group-manager.js.map +0 -1
  400. package/dist/src/nile-virtual-select/portal-utils.d.ts +0 -65
  401. package/dist/src/nile-virtual-select/portal-utils.js +0 -376
  402. package/dist/src/nile-virtual-select/portal-utils.js.map +0 -1
  403. package/dist/src/nile-virtual-select/temp_nile-virtual-select copy.d.ts +0 -273
  404. package/dist/src/nile-virtual-select/temp_nile-virtual-select copy.js +0 -1305
  405. package/dist/src/nile-virtual-select/temp_nile-virtual-select copy.js.map +0 -1
  406. package/dist/src/nile-virtual-select/virtualizer-error-handler.d.ts +0 -21
  407. package/dist/src/nile-virtual-select/virtualizer-error-handler.js +0 -56
  408. package/dist/src/nile-virtual-select/virtualizer-error-handler.js.map +0 -1
  409. package/dist/src/nile-virtual-select-disabled/index.d.ts +0 -1
  410. package/dist/src/nile-virtual-select-disabled/index.js +0 -2
  411. package/dist/src/nile-virtual-select-disabled/index.js.map +0 -1
  412. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.css.d.ts +0 -12
  413. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.css.js +0 -538
  414. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.css.js.map +0 -1
  415. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.d.ts +0 -299
  416. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.js +0 -1441
  417. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.js.map +0 -1
  418. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.test.d.ts +0 -7
  419. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.test.js +0 -631
  420. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.test.js.map +0 -1
  421. package/dist/src/nile-virtual-select-disabled/portal-manager.d.ts +0 -45
  422. package/dist/src/nile-virtual-select-disabled/portal-manager.js +0 -333
  423. package/dist/src/nile-virtual-select-disabled/portal-manager.js.map +0 -1
  424. package/dist/src/nile-virtual-select-disabled/renderer.d.ts +0 -16
  425. package/dist/src/nile-virtual-select-disabled/renderer.js +0 -79
  426. package/dist/src/nile-virtual-select-disabled/renderer.js.map +0 -1
  427. package/dist/src/nile-virtual-select-disabled/search-manager.d.ts +0 -12
  428. package/dist/src/nile-virtual-select-disabled/search-manager.js +0 -40
  429. package/dist/src/nile-virtual-select-disabled/search-manager.js.map +0 -1
  430. package/dist/src/nile-virtual-select-disabled/selection-manager.d.ts +0 -12
  431. package/dist/src/nile-virtual-select-disabled/selection-manager.js +0 -64
  432. package/dist/src/nile-virtual-select-disabled/selection-manager.js.map +0 -1
  433. package/dist/src/nile-virtual-select-disabled/types.d.ts +0 -50
  434. package/dist/src/nile-virtual-select-disabled/types.js +0 -8
  435. package/dist/src/nile-virtual-select-disabled/types.js.map +0 -1
  436. package/dist/src/nile-virtual-table-body/index.d.ts +0 -2
  437. package/dist/src/nile-virtual-table-body/index.js +0 -3
  438. package/dist/src/nile-virtual-table-body/index.js.map +0 -1
  439. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.d.ts +0 -1
  440. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.js +0 -44
  441. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.js.map +0 -1
  442. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.d.ts +0 -50
  443. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.js +0 -135
  444. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.js.map +0 -1
  445. package/dist/src/nile-virtual-table-body/renderer.d.ts +0 -16
  446. package/dist/src/nile-virtual-table-body/renderer.js +0 -49
  447. package/dist/src/nile-virtual-table-body/renderer.js.map +0 -1
  448. package/dist/src/utilities/stepper-utils.d.ts +0 -71
  449. package/dist/src/utilities/stepper-utils.js +0 -108
  450. package/dist/src/utilities/stepper-utils.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"portal-manager.js","sourceRoot":"","sources":["../../../src/nile-menu/portal-manager.ts"],"names":[],"mappings":"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","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
- }
@@ -1,106 +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
- export class PopoverPortalHandler {
8
- constructor(component, config = {}) {
9
- this.component = component;
10
- this.config = config;
11
- this.clonedPopoverContent = null;
12
- }
13
- createPortalContent() {
14
- // Find the popover content in the shadow DOM (now it's always rendered but hidden when portal is enabled)
15
- const popoverBox = this.component.shadowRoot?.querySelector('.popover__box');
16
- if (!popoverBox) {
17
- // Fallback: create content directly
18
- return this.createFallbackContent();
19
- }
20
- // Clone the popover content for portal
21
- this.clonedPopoverContent = popoverBox.cloneNode(true);
22
- this.clonedPopoverContent.style.display = 'block';
23
- this.clonedPopoverContent.style.position = 'relative';
24
- return this.clonedPopoverContent;
25
- }
26
- createFallbackContent() {
27
- // Create the popover content directly as fallback
28
- this.clonedPopoverContent = document.createElement('div');
29
- this.clonedPopoverContent.className = 'popover__box';
30
- this.clonedPopoverContent.setAttribute('part', 'popover');
31
- this.clonedPopoverContent.style.display = 'block';
32
- this.clonedPopoverContent.style.position = 'relative';
33
- // Create the title element
34
- const titleElement = document.createElement('div');
35
- titleElement.className = 'popover__title';
36
- titleElement.textContent = this.component.title;
37
- // Create the base content slot
38
- const baseSlot = document.createElement('div');
39
- baseSlot.setAttribute('part', 'base');
40
- // Create the action slot
41
- const actionSlot = document.createElement('div');
42
- actionSlot.className = 'popover__action';
43
- // Append elements
44
- this.clonedPopoverContent.appendChild(titleElement);
45
- this.clonedPopoverContent.appendChild(baseSlot);
46
- this.clonedPopoverContent.appendChild(actionSlot);
47
- return this.clonedPopoverContent;
48
- }
49
- updatePortalContent(portalElement) {
50
- if (!this.component.isShow) {
51
- portalElement.style.display = 'none';
52
- return;
53
- }
54
- portalElement.style.display = 'block';
55
- // Update the content by cloning from the shadow DOM again
56
- const originalPopoverBox = this.component.shadowRoot?.querySelector('.popover__box');
57
- if (originalPopoverBox) {
58
- // Clone the updated content
59
- const updatedContent = originalPopoverBox.cloneNode(true);
60
- updatedContent.style.display = 'block';
61
- updatedContent.style.position = 'relative';
62
- // Replace the content
63
- portalElement.innerHTML = updatedContent.innerHTML;
64
- }
65
- }
66
- setupEventListeners(portalElement) {
67
- // Handle click events to prevent them from bubbling up
68
- portalElement.addEventListener('click', (event) => {
69
- event.stopPropagation();
70
- });
71
- // Handle any other popover-specific events
72
- // For example, if the popover has action buttons, we might need to handle those
73
- const actionSlot = portalElement.querySelector('slot[name="action"]');
74
- if (actionSlot) {
75
- actionSlot.addEventListener('click', (event) => {
76
- event.stopPropagation();
77
- // Forward the event to the original component if needed
78
- this.component.dispatchEvent(new CustomEvent('nile-popover-action', {
79
- detail: { originalEvent: event },
80
- bubbles: true
81
- }));
82
- });
83
- }
84
- }
85
- cleanupEventListeners(portalElement) {
86
- // Remove all event listeners
87
- const newElement = portalElement.cloneNode(true);
88
- portalElement.parentNode?.replaceChild(newElement, portalElement);
89
- }
90
- getReferenceElement() {
91
- // Get the anchor element from the slot
92
- const anchorSlot = this.component.shadowRoot?.querySelector('slot[name="anchor"]');
93
- if (anchorSlot) {
94
- const assignedElements = anchorSlot.assignedElements();
95
- if (assignedElements.length > 0) {
96
- return assignedElements[0];
97
- }
98
- }
99
- // Fallback to the component itself
100
- return this.component;
101
- }
102
- getComponentStyles() {
103
- return this.component.constructor.styles;
104
- }
105
- }
106
- //# sourceMappingURL=popover-portal-handler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"popover-portal-handler.js","sourceRoot":"","sources":["../../../src/nile-popover/popover-portal-handler.ts"],"names":[],"mappings":"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","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 { PortalContentHandler, PortalConfig } from '../internal/portal-manager';\nimport type { CSSResultGroup } from 'lit';\n\nexport class PopoverPortalHandler implements PortalContentHandler {\n private clonedPopoverContent: HTMLElement | null = null;\n\n constructor(\n private component: any,\n private config: PortalConfig = {}\n ) {}\n\n createPortalContent(): HTMLElement {\n // Find the popover content in the shadow DOM (now it's always rendered but hidden when portal is enabled)\n const popoverBox = this.component.shadowRoot?.querySelector('.popover__box') as HTMLElement;\n if (!popoverBox) {\n // Fallback: create content directly\n return this.createFallbackContent();\n }\n\n // Clone the popover content for portal\n this.clonedPopoverContent = popoverBox.cloneNode(true) as HTMLElement;\n this.clonedPopoverContent.style.display = 'block';\n this.clonedPopoverContent.style.position = 'relative';\n \n return this.clonedPopoverContent;\n }\n\n private createFallbackContent(): HTMLElement {\n // Create the popover content directly as fallback\n this.clonedPopoverContent = document.createElement('div');\n this.clonedPopoverContent.className = 'popover__box';\n this.clonedPopoverContent.setAttribute('part', 'popover');\n this.clonedPopoverContent.style.display = 'block';\n this.clonedPopoverContent.style.position = 'relative';\n \n // Create the title element\n const titleElement = document.createElement('div');\n titleElement.className = 'popover__title';\n titleElement.textContent = this.component.title;\n \n // Create the base content slot\n const baseSlot = document.createElement('div');\n baseSlot.setAttribute('part', 'base');\n \n // Create the action slot\n const actionSlot = document.createElement('div');\n actionSlot.className = 'popover__action';\n \n // Append elements\n this.clonedPopoverContent.appendChild(titleElement);\n this.clonedPopoverContent.appendChild(baseSlot);\n this.clonedPopoverContent.appendChild(actionSlot);\n \n return this.clonedPopoverContent;\n }\n\n updatePortalContent(portalElement: HTMLElement): void {\n if (!this.component.isShow) {\n portalElement.style.display = 'none';\n return;\n }\n\n portalElement.style.display = 'block';\n\n // Update the content by cloning from the shadow DOM again\n const originalPopoverBox = this.component.shadowRoot?.querySelector('.popover__box') as HTMLElement;\n if (originalPopoverBox) {\n // Clone the updated content\n const updatedContent = originalPopoverBox.cloneNode(true) as HTMLElement;\n updatedContent.style.display = 'block';\n updatedContent.style.position = 'relative';\n \n // Replace the content\n portalElement.innerHTML = updatedContent.innerHTML;\n }\n }\n\n setupEventListeners(portalElement: HTMLElement): void {\n // Handle click events to prevent them from bubbling up\n portalElement.addEventListener('click', (event) => {\n event.stopPropagation();\n });\n\n // Handle any other popover-specific events\n // For example, if the popover has action buttons, we might need to handle those\n const actionSlot = portalElement.querySelector('slot[name=\"action\"]');\n if (actionSlot) {\n actionSlot.addEventListener('click', (event) => {\n event.stopPropagation();\n // Forward the event to the original component if needed\n this.component.dispatchEvent(new CustomEvent('nile-popover-action', {\n detail: { originalEvent: event },\n bubbles: true\n }));\n });\n }\n }\n\n cleanupEventListeners(portalElement: HTMLElement): void {\n // Remove all event listeners\n const newElement = portalElement.cloneNode(true) as HTMLElement;\n portalElement.parentNode?.replaceChild(newElement, portalElement);\n }\n\n getReferenceElement(): HTMLElement {\n // Get the anchor element from the slot\n const anchorSlot = this.component.shadowRoot?.querySelector('slot[name=\"anchor\"]') as HTMLSlotElement;\n if (anchorSlot) {\n const assignedElements = anchorSlot.assignedElements();\n if (assignedElements.length > 0) {\n return assignedElements[0] as HTMLElement;\n }\n }\n \n // Fallback to the component itself\n return this.component;\n }\n\n getComponentStyles(): CSSResultGroup | undefined {\n return (this.component.constructor as any).styles;\n }\n}\n"]}
@@ -1 +0,0 @@
1
- export { NilePortalWrapper } from './nile-portal-wrapper.js';
@@ -1,2 +0,0 @@
1
- export { NilePortalWrapper } from './nile-portal-wrapper.js';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nile-portal-wrapper/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC","sourcesContent":["export { NilePortalWrapper } from './nile-portal-wrapper.js';\n"]}
@@ -1,47 +0,0 @@
1
- import { LitElement } from 'lit';
2
- import { type Placement, type Boundary } from '@floating-ui/dom';
3
- export declare class NilePortalWrapper extends LitElement {
4
- enabled: boolean;
5
- targetElement: HTMLElement | null;
6
- content: HTMLElement | null;
7
- placement: Placement;
8
- offset: number;
9
- padding: number;
10
- boundary: Boundary;
11
- fallbackPlacements: Placement[];
12
- strategy: 'absolute' | 'fixed';
13
- className: string;
14
- zIndex: number;
15
- preserveStyles: boolean;
16
- cloneContent: boolean;
17
- private portalContainer;
18
- private clonedContent;
19
- private currentPlacement;
20
- private currentMiddlewareData;
21
- private measuredHeight;
22
- private cleanupAutoUpdate;
23
- private injectedStyleId;
24
- private resizeObserver;
25
- static styles: import("lit").CSSResult;
26
- connectedCallback(): void;
27
- disconnectedCallback(): void;
28
- updated(changedProperties: Map<string | number | symbol, unknown>): void;
29
- private setupPortal;
30
- private createPortalContainer;
31
- private createClonedContent;
32
- private createPortalListbox;
33
- private cloneOption;
34
- private positionPortal;
35
- private handleSizeMiddleware;
36
- private applyPosition;
37
- private fallbackPositioning;
38
- private setupAutoUpdate;
39
- private setupEventListeners;
40
- private handleOptionClick;
41
- private forwardEvent;
42
- private findOriginalElement;
43
- private injectStyles;
44
- private extractStylesAsCSS;
45
- private cleanup;
46
- render(): import("lit-html").TemplateResult<1>;
47
- }