@aquera/nile-elements 1.4.1-beta-1.3 → 1.4.2-beta-1.0

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 (467) hide show
  1. package/README.md +5 -2
  2. package/demo/variables.css +1 -0
  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 +1 -1
  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.test.cjs.js +1 -1
  26. package/dist/nile-chip/nile-chip.test.esm.js +1 -1
  27. package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
  28. package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
  29. package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
  30. package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
  31. package/dist/nile-dropdown/nile-dropdown.test.cjs.js +1 -1
  32. package/dist/nile-dropdown/nile-dropdown.test.esm.js +1 -1
  33. package/dist/nile-empty-state/nile-empty-state.test.cjs.js +1 -1
  34. package/dist/nile-empty-state/nile-empty-state.test.esm.js +1 -1
  35. package/dist/nile-error-message/nile-error-message.test.cjs.js +1 -1
  36. package/dist/nile-error-message/nile-error-message.test.esm.js +1 -1
  37. package/dist/nile-file-preview/nile-file-preview.test.cjs.js +1 -1
  38. package/dist/nile-file-preview/nile-file-preview.test.esm.js +1 -1
  39. package/dist/nile-file-upload/nile-file-upload.test.cjs.js +1 -1
  40. package/dist/nile-file-upload/nile-file-upload.test.esm.js +1 -1
  41. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +1 -1
  42. package/dist/nile-filter-chip/nile-filter-chip.test.esm.js +1 -1
  43. package/dist/nile-form-group/nile-form-group.test.cjs.js +1 -1
  44. package/dist/nile-form-group/nile-form-group.test.esm.js +1 -1
  45. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +1 -1
  46. package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +1 -1
  47. package/dist/nile-hero/nile-hero.test.cjs.js +1 -1
  48. package/dist/nile-hero/nile-hero.test.esm.js +1 -1
  49. package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
  50. package/dist/nile-icon/nile-icon.test.esm.js +1 -1
  51. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  52. package/dist/nile-input/nile-input.test.esm.js +1 -1
  53. package/dist/nile-link/nile-link.test.cjs.js +1 -1
  54. package/dist/nile-link/nile-link.test.esm.js +1 -1
  55. package/dist/nile-loader/nile-loader.test.cjs.js +1 -1
  56. package/dist/nile-loader/nile-loader.test.esm.js +1 -1
  57. package/dist/nile-popover/nile-popover.test.cjs.js +1 -1
  58. package/dist/nile-popover/nile-popover.test.esm.js +1 -1
  59. package/dist/nile-popup/nile-popup.test.cjs.js +1 -1
  60. package/dist/nile-popup/nile-popup.test.esm.js +1 -1
  61. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +1 -1
  62. package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +1 -1
  63. package/dist/nile-radio/nile-radio.test.cjs.js +1 -1
  64. package/dist/nile-radio/nile-radio.test.esm.js +1 -1
  65. package/dist/nile-radio-group/nile-radio-group.test.cjs.js +1 -1
  66. package/dist/nile-radio-group/nile-radio-group.test.esm.js +1 -1
  67. package/dist/nile-select/nile-select.test.cjs.js +1 -1
  68. package/dist/nile-select/nile-select.test.esm.js +1 -1
  69. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +1 -1
  70. package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +1 -1
  71. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
  72. package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
  73. package/dist/nile-textarea/nile-textarea.test.cjs.js +1 -1
  74. package/dist/nile-textarea/nile-textarea.test.esm.js +1 -1
  75. package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js +1 -1
  76. package/dist/nile-virtual-select/nile-virtual-select.test.esm.js +1 -1
  77. package/dist/src/nile-css-tooltip/index.d.ts +1 -0
  78. package/dist/src/nile-css-tooltip/index.js +2 -0
  79. package/dist/src/nile-css-tooltip/index.js.map +1 -0
  80. package/dist/src/nile-css-tooltip/nile-css-tooltip.css.d.ts +9 -0
  81. package/dist/src/nile-css-tooltip/nile-css-tooltip.css.js +459 -0
  82. package/dist/src/nile-css-tooltip/nile-css-tooltip.css.js.map +1 -0
  83. package/dist/src/nile-css-tooltip/nile-css-tooltip.d.ts +113 -0
  84. package/dist/src/nile-css-tooltip/nile-css-tooltip.js +213 -0
  85. package/dist/src/nile-css-tooltip/nile-css-tooltip.js.map +1 -0
  86. package/dist/src/version.js +1 -1
  87. package/dist/src/version.js.map +1 -1
  88. package/package.json +1 -1
  89. package/dist/fixture-54600b35.cjs.js.map +0 -1
  90. package/dist/fixture-5b79f853.cjs.js +0 -395
  91. package/dist/fixture-5b79f853.cjs.js.map +0 -1
  92. package/dist/fixture-73855806.cjs.js +0 -395
  93. package/dist/fixture-90b199c4.esm.js +0 -569
  94. package/dist/fixture-c1d78368.cjs.js +0 -395
  95. package/dist/fixture-c1d78368.cjs.js.map +0 -1
  96. package/dist/fixture-cf7bfcf5.esm.js +0 -569
  97. package/dist/fixture-dbd66009.cjs.js +0 -395
  98. package/dist/fixture-dbd66009.cjs.js.map +0 -1
  99. package/dist/nile-carousel/carousel-helpers.cjs.js +0 -2
  100. package/dist/nile-carousel/carousel-helpers.cjs.js.map +0 -1
  101. package/dist/nile-carousel/carousel-helpers.esm.js +0 -1
  102. package/dist/nile-carousel/index.cjs.js +0 -2
  103. package/dist/nile-carousel/index.cjs.js.map +0 -1
  104. package/dist/nile-carousel/index.esm.js +0 -1
  105. package/dist/nile-carousel/nile-carousel-item/index.cjs.js +0 -2
  106. package/dist/nile-carousel/nile-carousel-item/index.cjs.js.map +0 -1
  107. package/dist/nile-carousel/nile-carousel-item/index.esm.js +0 -1
  108. package/dist/nile-carousel/nile-carousel-item/nile-carousel-item.cjs.js +0 -2
  109. package/dist/nile-carousel/nile-carousel-item/nile-carousel-item.cjs.js.map +0 -1
  110. package/dist/nile-carousel/nile-carousel-item/nile-carousel-item.css.cjs.js +0 -2
  111. package/dist/nile-carousel/nile-carousel-item/nile-carousel-item.css.cjs.js.map +0 -1
  112. package/dist/nile-carousel/nile-carousel-item/nile-carousel-item.css.esm.js +0 -18
  113. package/dist/nile-carousel/nile-carousel-item/nile-carousel-item.esm.js +0 -5
  114. package/dist/nile-carousel/nile-carousel.cjs.js +0 -2
  115. package/dist/nile-carousel/nile-carousel.cjs.js.map +0 -1
  116. package/dist/nile-carousel/nile-carousel.css.cjs.js +0 -2
  117. package/dist/nile-carousel/nile-carousel.css.cjs.js.map +0 -1
  118. package/dist/nile-carousel/nile-carousel.css.esm.js +0 -157
  119. package/dist/nile-carousel/nile-carousel.esm.js +0 -58
  120. package/dist/nile-code-editor/backup_nile-code-editor copy.cjs.js +0 -2
  121. package/dist/nile-code-editor/backup_nile-code-editor copy.cjs.js.map +0 -1
  122. package/dist/nile-code-editor/backup_nile-code-editor copy.esm.js +0 -1
  123. package/dist/nile-grid/nile-grid.types.cjs.js +0 -2
  124. package/dist/nile-grid/nile-grid.types.cjs.js.map +0 -1
  125. package/dist/nile-grid/nile-grid.types.esm.js +0 -1
  126. package/dist/nile-grid-body/index.cjs.js +0 -2
  127. package/dist/nile-grid-body/index.cjs.js.map +0 -1
  128. package/dist/nile-grid-body/index.esm.js +0 -1
  129. package/dist/nile-grid-body/nile-grid-body.cjs.js +0 -2
  130. package/dist/nile-grid-body/nile-grid-body.cjs.js.map +0 -1
  131. package/dist/nile-grid-body/nile-grid-body.css.cjs.js +0 -2
  132. package/dist/nile-grid-body/nile-grid-body.css.cjs.js.map +0 -1
  133. package/dist/nile-grid-body/nile-grid-body.css.esm.js +0 -10
  134. package/dist/nile-grid-body/nile-grid-body.esm.js +0 -5
  135. package/dist/nile-grid-cell-item/index.cjs.js +0 -2
  136. package/dist/nile-grid-cell-item/index.cjs.js.map +0 -1
  137. package/dist/nile-grid-cell-item/index.esm.js +0 -1
  138. package/dist/nile-grid-cell-item/nile-grid-cell-item.cjs.js +0 -2
  139. package/dist/nile-grid-cell-item/nile-grid-cell-item.cjs.js.map +0 -1
  140. package/dist/nile-grid-cell-item/nile-grid-cell-item.css.cjs.js +0 -2
  141. package/dist/nile-grid-cell-item/nile-grid-cell-item.css.cjs.js.map +0 -1
  142. package/dist/nile-grid-cell-item/nile-grid-cell-item.css.esm.js +0 -35
  143. package/dist/nile-grid-cell-item/nile-grid-cell-item.esm.js +0 -12
  144. package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.cjs.js +0 -2
  145. package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.cjs.js.map +0 -1
  146. package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.esm.js +0 -1
  147. package/dist/nile-grid-head/index.cjs.js +0 -2
  148. package/dist/nile-grid-head/index.cjs.js.map +0 -1
  149. package/dist/nile-grid-head/index.esm.js +0 -1
  150. package/dist/nile-grid-head/nile-grid-head.cjs.js +0 -2
  151. package/dist/nile-grid-head/nile-grid-head.cjs.js.map +0 -1
  152. package/dist/nile-grid-head/nile-grid-head.css.cjs.js +0 -2
  153. package/dist/nile-grid-head/nile-grid-head.css.cjs.js.map +0 -1
  154. package/dist/nile-grid-head/nile-grid-head.css.esm.js +0 -7
  155. package/dist/nile-grid-head/nile-grid-head.esm.js +0 -5
  156. package/dist/nile-grid-head-item/index.cjs.js +0 -2
  157. package/dist/nile-grid-head-item/index.cjs.js.map +0 -1
  158. package/dist/nile-grid-head-item/index.esm.js +0 -1
  159. package/dist/nile-grid-head-item/nile-grid-head-item.cjs.js +0 -2
  160. package/dist/nile-grid-head-item/nile-grid-head-item.cjs.js.map +0 -1
  161. package/dist/nile-grid-head-item/nile-grid-head-item.css.cjs.js +0 -2
  162. package/dist/nile-grid-head-item/nile-grid-head-item.css.cjs.js.map +0 -1
  163. package/dist/nile-grid-head-item/nile-grid-head-item.css.esm.js +0 -34
  164. package/dist/nile-grid-head-item/nile-grid-head-item.esm.js +0 -12
  165. package/dist/nile-grid-head-item/nile-grid-head-item.utils.cjs.js +0 -2
  166. package/dist/nile-grid-head-item/nile-grid-head-item.utils.cjs.js.map +0 -1
  167. package/dist/nile-grid-head-item/nile-grid-head-item.utils.esm.js +0 -1
  168. package/dist/nile-grid-row/index.cjs.js +0 -2
  169. package/dist/nile-grid-row/index.cjs.js.map +0 -1
  170. package/dist/nile-grid-row/index.esm.js +0 -1
  171. package/dist/nile-grid-row/nile-grid-row.cjs.js +0 -2
  172. package/dist/nile-grid-row/nile-grid-row.cjs.js.map +0 -1
  173. package/dist/nile-grid-row/nile-grid-row.css.cjs.js +0 -2
  174. package/dist/nile-grid-row/nile-grid-row.css.cjs.js.map +0 -1
  175. package/dist/nile-grid-row/nile-grid-row.css.esm.js +0 -15
  176. package/dist/nile-grid-row/nile-grid-row.esm.js +0 -7
  177. package/dist/nile-rich-text-editor/utils.cjs.js +0 -2
  178. package/dist/nile-rich-text-editor/utils.cjs.js.map +0 -1
  179. package/dist/nile-rich-text-editor/utils.esm.js +0 -1
  180. package/dist/nile-sidebar/index.cjs.js +0 -2
  181. package/dist/nile-sidebar/index.cjs.js.map +0 -1
  182. package/dist/nile-sidebar/index.esm.js +0 -75
  183. package/dist/nile-sidebar-menu/index.cjs.js +0 -2
  184. package/dist/nile-sidebar-menu/index.cjs.js.map +0 -1
  185. package/dist/nile-sidebar-menu/index.esm.js +0 -1
  186. package/dist/nile-sidebar-menu/nile-sidebar-menu.cjs.js +0 -2
  187. package/dist/nile-sidebar-menu/nile-sidebar-menu.cjs.js.map +0 -1
  188. package/dist/nile-sidebar-menu/nile-sidebar-menu.css.cjs.js +0 -2
  189. package/dist/nile-sidebar-menu/nile-sidebar-menu.css.cjs.js.map +0 -1
  190. package/dist/nile-sidebar-menu/nile-sidebar-menu.css.esm.js +0 -38
  191. package/dist/nile-sidebar-menu/nile-sidebar-menu.esm.js +0 -10
  192. package/dist/nile-sidebar-menu-items/index.cjs.js +0 -2
  193. package/dist/nile-sidebar-menu-items/index.cjs.js.map +0 -1
  194. package/dist/nile-sidebar-menu-items/index.esm.js +0 -1
  195. package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.cjs.js +0 -2
  196. package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.cjs.js.map +0 -1
  197. package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.css.cjs.js +0 -2
  198. package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.css.cjs.js.map +0 -1
  199. package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.css.esm.js +0 -36
  200. package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.esm.js +0 -15
  201. package/dist/nile-sidebar-wrapper/index.cjs.js +0 -2
  202. package/dist/nile-sidebar-wrapper/index.cjs.js.map +0 -1
  203. package/dist/nile-sidebar-wrapper/index.esm.js +0 -1
  204. package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.cjs.js +0 -2
  205. package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.cjs.js.map +0 -1
  206. package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.css.cjs.js +0 -2
  207. package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.css.cjs.js.map +0 -1
  208. package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.css.esm.js +0 -105
  209. package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.esm.js +0 -16
  210. package/dist/nile-virtual-select/group-manager.cjs.js +0 -2
  211. package/dist/nile-virtual-select/group-manager.cjs.js.map +0 -1
  212. package/dist/nile-virtual-select/group-manager.esm.js +0 -1
  213. package/dist/nile-virtual-select/temp_nile-virtual-select copy.cjs.js +0 -2
  214. package/dist/nile-virtual-select/temp_nile-virtual-select copy.cjs.js.map +0 -1
  215. package/dist/nile-virtual-select/temp_nile-virtual-select copy.esm.js +0 -231
  216. package/dist/scopedElementsWrapper-1bff26ef.cjs.js +0 -2
  217. package/dist/scopedElementsWrapper-1bff26ef.cjs.js.map +0 -1
  218. package/dist/scopedElementsWrapper-4c29be11.esm.js +0 -7
  219. package/dist/scopedElementsWrapper-a112fc73.cjs.js +0 -6
  220. package/dist/scopedElementsWrapper-a112fc73.cjs.js.map +0 -1
  221. package/dist/scopedElementsWrapper-c815042c.cjs.js +0 -2
  222. package/dist/scopedElementsWrapper-c815042c.cjs.js.map +0 -1
  223. package/dist/src/internal/portal-manager.d.ts +0 -53
  224. package/dist/src/internal/portal-manager.js +0 -196
  225. package/dist/src/internal/portal-manager.js.map +0 -1
  226. package/dist/src/internal/portal.d.ts +0 -60
  227. package/dist/src/internal/portal.js +0 -199
  228. package/dist/src/internal/portal.js.map +0 -1
  229. package/dist/src/internal/resizable-helper.d.ts +0 -59
  230. package/dist/src/internal/resizable-helper.js +0 -115
  231. package/dist/src/internal/resizable-helper.js.map +0 -1
  232. package/dist/src/internal/resizable-styles.d.ts +0 -16
  233. package/dist/src/internal/resizable-styles.js +0 -144
  234. package/dist/src/internal/resizable-styles.js.map +0 -1
  235. package/dist/src/internal/virtualizer-error-handler.d.ts +0 -30
  236. package/dist/src/internal/virtualizer-error-handler.js +0 -82
  237. package/dist/src/internal/virtualizer-error-handler.js.map +0 -1
  238. package/dist/src/lib/index.d.ts +0 -7
  239. package/dist/src/lib/index.js +0 -8
  240. package/dist/src/lib/index.js.map +0 -1
  241. package/dist/src/lib/virtualize.d.ts +0 -32
  242. package/dist/src/lib/virtualize.js +0 -105
  243. package/dist/src/lib/virtualize.js.map +0 -1
  244. package/dist/src/lib/virtualize.test.d.ts +0 -7
  245. package/dist/src/lib/virtualize.test.js +0 -57
  246. package/dist/src/lib/virtualize.test.js.map +0 -1
  247. package/dist/src/nile-badge/__snapshots__/nile-badge.test.snap.js +0 -17
  248. package/dist/src/nile-calendar/__snapshots__/nile-calendar.test.snap.js +0 -310
  249. package/dist/src/nile-card/__snapshots__/nile-card.test.snap.js +0 -34
  250. package/dist/src/nile-carousel/carousel-helpers.d.ts +0 -18
  251. package/dist/src/nile-carousel/carousel-helpers.js +0 -53
  252. package/dist/src/nile-carousel/carousel-helpers.js.map +0 -1
  253. package/dist/src/nile-carousel/index.d.ts +0 -1
  254. package/dist/src/nile-carousel/index.js +0 -2
  255. package/dist/src/nile-carousel/index.js.map +0 -1
  256. package/dist/src/nile-carousel/nile-carousel-item/index.d.ts +0 -1
  257. package/dist/src/nile-carousel/nile-carousel-item/index.js +0 -2
  258. package/dist/src/nile-carousel/nile-carousel-item/index.js.map +0 -1
  259. package/dist/src/nile-carousel/nile-carousel-item/nile-carousel-item.css.d.ts +0 -12
  260. package/dist/src/nile-carousel/nile-carousel-item/nile-carousel-item.css.js +0 -30
  261. package/dist/src/nile-carousel/nile-carousel-item/nile-carousel-item.css.js.map +0 -1
  262. package/dist/src/nile-carousel/nile-carousel-item/nile-carousel-item.d.ts +0 -24
  263. package/dist/src/nile-carousel/nile-carousel-item/nile-carousel-item.js +0 -35
  264. package/dist/src/nile-carousel/nile-carousel-item/nile-carousel-item.js.map +0 -1
  265. package/dist/src/nile-carousel/nile-carousel.css.d.ts +0 -12
  266. package/dist/src/nile-carousel/nile-carousel.css.js +0 -169
  267. package/dist/src/nile-carousel/nile-carousel.css.js.map +0 -1
  268. package/dist/src/nile-carousel/nile-carousel.d.ts +0 -56
  269. package/dist/src/nile-carousel/nile-carousel.js +0 -340
  270. package/dist/src/nile-carousel/nile-carousel.js.map +0 -1
  271. package/dist/src/nile-checkbox/__snapshots__/nile-checkbox.test.snap.js +0 -31
  272. package/dist/src/nile-code-editor/Old_theme copy.d.ts +0 -191
  273. package/dist/src/nile-code-editor/Old_theme copy.js +0 -193
  274. package/dist/src/nile-code-editor/Old_theme copy.js.map +0 -1
  275. package/dist/src/nile-code-editor/backup_nile-code-editor copy.d.ts +0 -0
  276. package/dist/src/nile-code-editor/backup_nile-code-editor copy.js +0 -675
  277. package/dist/src/nile-code-editor/backup_nile-code-editor copy.js.map +0 -1
  278. package/dist/src/nile-code-editor/theme copy.d.ts +0 -191
  279. package/dist/src/nile-code-editor/theme copy.js +0 -193
  280. package/dist/src/nile-code-editor/theme copy.js.map +0 -1
  281. package/dist/src/nile-grid/data-processor.d.ts +0 -37
  282. package/dist/src/nile-grid/data-processor.js +0 -122
  283. package/dist/src/nile-grid/data-processor.js.map +0 -1
  284. package/dist/src/nile-grid/event-handlers.d.ts +0 -35
  285. package/dist/src/nile-grid/event-handlers.js +0 -158
  286. package/dist/src/nile-grid/event-handlers.js.map +0 -1
  287. package/dist/src/nile-grid/nile-grid.types.d.ts +0 -3
  288. package/dist/src/nile-grid/nile-grid.types.js +0 -2
  289. package/dist/src/nile-grid/nile-grid.types.js.map +0 -1
  290. package/dist/src/nile-grid/renderer.d.ts +0 -8
  291. package/dist/src/nile-grid/renderer.js +0 -78
  292. package/dist/src/nile-grid/renderer.js.map +0 -1
  293. package/dist/src/nile-grid/resize-handler.d.ts +0 -4
  294. package/dist/src/nile-grid/resize-handler.js +0 -36
  295. package/dist/src/nile-grid/resize-handler.js.map +0 -1
  296. package/dist/src/nile-grid/types.d.ts +0 -32
  297. package/dist/src/nile-grid/types.js +0 -2
  298. package/dist/src/nile-grid/types.js.map +0 -1
  299. package/dist/src/nile-grid/utils.d.ts +0 -4
  300. package/dist/src/nile-grid/utils.js +0 -32
  301. package/dist/src/nile-grid/utils.js.map +0 -1
  302. package/dist/src/nile-grid-body/index.d.ts +0 -1
  303. package/dist/src/nile-grid-body/index.js +0 -2
  304. package/dist/src/nile-grid-body/index.js.map +0 -1
  305. package/dist/src/nile-grid-body/nile-grid-body.css.d.ts +0 -12
  306. package/dist/src/nile-grid-body/nile-grid-body.css.js +0 -22
  307. package/dist/src/nile-grid-body/nile-grid-body.css.js.map +0 -1
  308. package/dist/src/nile-grid-body/nile-grid-body.d.ts +0 -29
  309. package/dist/src/nile-grid-body/nile-grid-body.js +0 -43
  310. package/dist/src/nile-grid-body/nile-grid-body.js.map +0 -1
  311. package/dist/src/nile-grid-cell-item/index.d.ts +0 -1
  312. package/dist/src/nile-grid-cell-item/index.js +0 -2
  313. package/dist/src/nile-grid-cell-item/index.js.map +0 -1
  314. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.d.ts +0 -12
  315. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.js +0 -47
  316. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.js.map +0 -1
  317. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.d.ts +0 -36
  318. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.js +0 -93
  319. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.js.map +0 -1
  320. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.d.ts +0 -10
  321. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.js +0 -34
  322. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.js.map +0 -1
  323. package/dist/src/nile-grid-head/index.d.ts +0 -1
  324. package/dist/src/nile-grid-head/index.js +0 -2
  325. package/dist/src/nile-grid-head/index.js.map +0 -1
  326. package/dist/src/nile-grid-head/nile-grid-head.css.d.ts +0 -12
  327. package/dist/src/nile-grid-head/nile-grid-head.css.js +0 -19
  328. package/dist/src/nile-grid-head/nile-grid-head.css.js.map +0 -1
  329. package/dist/src/nile-grid-head/nile-grid-head.d.ts +0 -28
  330. package/dist/src/nile-grid-head/nile-grid-head.js +0 -41
  331. package/dist/src/nile-grid-head/nile-grid-head.js.map +0 -1
  332. package/dist/src/nile-grid-head-item/index.d.ts +0 -1
  333. package/dist/src/nile-grid-head-item/index.js +0 -2
  334. package/dist/src/nile-grid-head-item/index.js.map +0 -1
  335. package/dist/src/nile-grid-head-item/nile-grid-head-item.css.d.ts +0 -12
  336. package/dist/src/nile-grid-head-item/nile-grid-head-item.css.js +0 -46
  337. package/dist/src/nile-grid-head-item/nile-grid-head-item.css.js.map +0 -1
  338. package/dist/src/nile-grid-head-item/nile-grid-head-item.d.ts +0 -37
  339. package/dist/src/nile-grid-head-item/nile-grid-head-item.js +0 -100
  340. package/dist/src/nile-grid-head-item/nile-grid-head-item.js.map +0 -1
  341. package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.d.ts +0 -10
  342. package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.js +0 -34
  343. package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.js.map +0 -1
  344. package/dist/src/nile-grid-row/index.d.ts +0 -1
  345. package/dist/src/nile-grid-row/index.js +0 -2
  346. package/dist/src/nile-grid-row/index.js.map +0 -1
  347. package/dist/src/nile-grid-row/nile-grid-row.css.d.ts +0 -12
  348. package/dist/src/nile-grid-row/nile-grid-row.css.js +0 -27
  349. package/dist/src/nile-grid-row/nile-grid-row.css.js.map +0 -1
  350. package/dist/src/nile-grid-row/nile-grid-row.d.ts +0 -29
  351. package/dist/src/nile-grid-row/nile-grid-row.js +0 -45
  352. package/dist/src/nile-grid-row/nile-grid-row.js.map +0 -1
  353. package/dist/src/nile-hero/__snapshots__/nile-hero.test.snap.js +0 -47
  354. package/dist/src/nile-icon/__snapshots__/nile-icon.test.snap.js +0 -16
  355. package/dist/src/nile-input/__snapshots__/nile-input.test.snap.js +0 -75
  356. package/dist/src/nile-menu/portal-manager.d.ts +0 -39
  357. package/dist/src/nile-menu/portal-manager.js +0 -340
  358. package/dist/src/nile-menu/portal-manager.js.map +0 -1
  359. package/dist/src/nile-menu/portal-utils.d.ts +0 -21
  360. package/dist/src/nile-menu/portal-utils.js +0 -128
  361. package/dist/src/nile-menu/portal-utils.js.map +0 -1
  362. package/dist/src/nile-popover/__snapshots__/nile-popover.test.snap.js +0 -22
  363. package/dist/src/nile-popover/popover-portal-handler.d.ts +0 -21
  364. package/dist/src/nile-popover/popover-portal-handler.js +0 -106
  365. package/dist/src/nile-popover/popover-portal-handler.js.map +0 -1
  366. package/dist/src/nile-portal-wrapper/index.d.ts +0 -1
  367. package/dist/src/nile-portal-wrapper/index.js +0 -2
  368. package/dist/src/nile-portal-wrapper/index.js.map +0 -1
  369. package/dist/src/nile-portal-wrapper/nile-portal-wrapper.d.ts +0 -47
  370. package/dist/src/nile-portal-wrapper/nile-portal-wrapper.js +0 -451
  371. package/dist/src/nile-portal-wrapper/nile-portal-wrapper.js.map +0 -1
  372. package/dist/src/nile-rich-text-editor/utils.d.ts +0 -13
  373. package/dist/src/nile-rich-text-editor/utils.js +0 -538
  374. package/dist/src/nile-rich-text-editor/utils.js.map +0 -1
  375. package/dist/src/nile-select/body-append-manager.d.ts +0 -90
  376. package/dist/src/nile-select/body-append-manager.js +0 -298
  377. package/dist/src/nile-select/body-append-manager.js.map +0 -1
  378. package/dist/src/nile-sidebar/index.d.ts +0 -28
  379. package/dist/src/nile-sidebar/index.js +0 -116
  380. package/dist/src/nile-sidebar/index.js.map +0 -1
  381. package/dist/src/nile-sidebar-menu/index.d.ts +0 -1
  382. package/dist/src/nile-sidebar-menu/index.js +0 -2
  383. package/dist/src/nile-sidebar-menu/index.js.map +0 -1
  384. package/dist/src/nile-sidebar-menu/nile-sidebar-menu.css.d.ts +0 -12
  385. package/dist/src/nile-sidebar-menu/nile-sidebar-menu.css.js +0 -47
  386. package/dist/src/nile-sidebar-menu/nile-sidebar-menu.css.js.map +0 -1
  387. package/dist/src/nile-sidebar-menu/nile-sidebar-menu.d.ts +0 -37
  388. package/dist/src/nile-sidebar-menu/nile-sidebar-menu.js +0 -84
  389. package/dist/src/nile-sidebar-menu/nile-sidebar-menu.js.map +0 -1
  390. package/dist/src/nile-sidebar-menu-items/index.d.ts +0 -1
  391. package/dist/src/nile-sidebar-menu-items/index.js +0 -2
  392. package/dist/src/nile-sidebar-menu-items/index.js.map +0 -1
  393. package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.css.d.ts +0 -12
  394. package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.css.js +0 -45
  395. package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.css.js.map +0 -1
  396. package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.d.ts +0 -35
  397. package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.js +0 -78
  398. package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.js.map +0 -1
  399. package/dist/src/nile-sidebar-wrapper/index.d.ts +0 -1
  400. package/dist/src/nile-sidebar-wrapper/index.js +0 -2
  401. package/dist/src/nile-sidebar-wrapper/index.js.map +0 -1
  402. package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.css.d.ts +0 -12
  403. package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.css.js +0 -114
  404. package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.css.js.map +0 -1
  405. package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.d.ts +0 -35
  406. package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.js +0 -89
  407. package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.js.map +0 -1
  408. package/dist/src/nile-table-body/virtual-scroll-helper.d.ts +0 -9
  409. package/dist/src/nile-table-body/virtual-scroll-helper.js +0 -24
  410. package/dist/src/nile-table-body/virtual-scroll-helper.js.map +0 -1
  411. package/dist/src/nile-virtual-select/body-append-helper.d.ts +0 -16
  412. package/dist/src/nile-virtual-select/body-append-helper.js +0 -95
  413. package/dist/src/nile-virtual-select/body-append-helper.js.map +0 -1
  414. package/dist/src/nile-virtual-select/group-manager.d.ts +0 -32
  415. package/dist/src/nile-virtual-select/group-manager.js +0 -134
  416. package/dist/src/nile-virtual-select/group-manager.js.map +0 -1
  417. package/dist/src/nile-virtual-select/portal-utils.d.ts +0 -65
  418. package/dist/src/nile-virtual-select/portal-utils.js +0 -376
  419. package/dist/src/nile-virtual-select/portal-utils.js.map +0 -1
  420. package/dist/src/nile-virtual-select/temp_nile-virtual-select copy.d.ts +0 -273
  421. package/dist/src/nile-virtual-select/temp_nile-virtual-select copy.js +0 -1305
  422. package/dist/src/nile-virtual-select/temp_nile-virtual-select copy.js.map +0 -1
  423. package/dist/src/nile-virtual-select/virtualizer-error-handler.d.ts +0 -21
  424. package/dist/src/nile-virtual-select/virtualizer-error-handler.js +0 -56
  425. package/dist/src/nile-virtual-select/virtualizer-error-handler.js.map +0 -1
  426. package/dist/src/nile-virtual-select-disabled/index.d.ts +0 -1
  427. package/dist/src/nile-virtual-select-disabled/index.js +0 -2
  428. package/dist/src/nile-virtual-select-disabled/index.js.map +0 -1
  429. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.css.d.ts +0 -12
  430. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.css.js +0 -538
  431. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.css.js.map +0 -1
  432. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.d.ts +0 -299
  433. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.js +0 -1441
  434. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.js.map +0 -1
  435. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.test.d.ts +0 -7
  436. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.test.js +0 -631
  437. package/dist/src/nile-virtual-select-disabled/nile-virtual-select.test.js.map +0 -1
  438. package/dist/src/nile-virtual-select-disabled/portal-manager.d.ts +0 -45
  439. package/dist/src/nile-virtual-select-disabled/portal-manager.js +0 -333
  440. package/dist/src/nile-virtual-select-disabled/portal-manager.js.map +0 -1
  441. package/dist/src/nile-virtual-select-disabled/renderer.d.ts +0 -16
  442. package/dist/src/nile-virtual-select-disabled/renderer.js +0 -79
  443. package/dist/src/nile-virtual-select-disabled/renderer.js.map +0 -1
  444. package/dist/src/nile-virtual-select-disabled/search-manager.d.ts +0 -12
  445. package/dist/src/nile-virtual-select-disabled/search-manager.js +0 -40
  446. package/dist/src/nile-virtual-select-disabled/search-manager.js.map +0 -1
  447. package/dist/src/nile-virtual-select-disabled/selection-manager.d.ts +0 -12
  448. package/dist/src/nile-virtual-select-disabled/selection-manager.js +0 -64
  449. package/dist/src/nile-virtual-select-disabled/selection-manager.js.map +0 -1
  450. package/dist/src/nile-virtual-select-disabled/types.d.ts +0 -50
  451. package/dist/src/nile-virtual-select-disabled/types.js +0 -8
  452. package/dist/src/nile-virtual-select-disabled/types.js.map +0 -1
  453. package/dist/src/nile-virtual-table-body/index.d.ts +0 -2
  454. package/dist/src/nile-virtual-table-body/index.js +0 -3
  455. package/dist/src/nile-virtual-table-body/index.js.map +0 -1
  456. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.d.ts +0 -1
  457. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.js +0 -44
  458. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.js.map +0 -1
  459. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.d.ts +0 -50
  460. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.js +0 -135
  461. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.js.map +0 -1
  462. package/dist/src/nile-virtual-table-body/renderer.d.ts +0 -16
  463. package/dist/src/nile-virtual-table-body/renderer.js +0 -49
  464. package/dist/src/nile-virtual-table-body/renderer.js.map +0 -1
  465. package/dist/src/utilities/stepper-utils.d.ts +0 -71
  466. package/dist/src/utilities/stepper-utils.js +0 -108
  467. package/dist/src/utilities/stepper-utils.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/nile-rich-text-editor/utils.ts"],"names":[],"mappings":"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","sourcesContent":["export function closestBlock(\n node: Node | null,\n root: HTMLElement\n): HTMLElement | null {\n while (node && node !== root) {\n if (node instanceof HTMLElement) {\n const display = getComputedStyle(node).display;\n if (\n node.tagName.match(/^(P|DIV|H1|H2|H3|H4|H5|H6|LI)$/) ||\n display === 'block' ||\n display === 'list-item'\n ) {\n return node;\n }\n }\n node = node?.parentNode || null;\n }\n return root;\n}\n\nexport function nearestElement(n: Node | null): HTMLElement | null {\n while (n && !(n instanceof HTMLElement)) n = n.parentNode as Node | null;\n return n as HTMLElement | null;\n}\n\nexport function rgbToHex(rgb: string): string {\n const m = rgb.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)/i);\n if (!m) return '#000000';\n const r = Number(m[1]).toString(16).padStart(2, '0');\n const g = Number(m[2]).toString(16).padStart(2, '0');\n const b = Number(m[3]).toString(16).padStart(2, '0');\n return `#${r}${g}${b}`;\n}\n\nexport function unwrap(node: HTMLElement) {\n const p = node.parentNode;\n if (!p) return;\n while (node.firstChild) p.insertBefore(node.firstChild, node);\n p.removeChild(node);\n}\n\nexport function surroundInline(\n range: Range,\n tag: string,\n attrs?: Record<string, string>\n) {\n const wrap = document.createElement(tag);\n if (attrs) Object.entries(attrs).forEach(([k, v]) => wrap.setAttribute(k, v));\n try {\n range.surroundContents(wrap);\n } catch {\n const frag = range.extractContents();\n wrap.appendChild(frag);\n range.insertNode(wrap);\n }\n}\n\nfunction unwrapAllMatching(\n node: Node,\n root: HTMLElement,\n matcher: (el: HTMLElement) => boolean\n) {\n let n: Node | null = node.parentNode;\n while (n && n !== root) {\n if (n instanceof HTMLElement && matcher(n)) {\n unwrap(n);\n\n n = node.parentNode;\n continue;\n }\n n = n.parentNode;\n }\n}\n\nexport function toggleInlineTag(\n root: HTMLElement,\n tag: 'strong' | 'em' | 'u' | 'span',\n attrs?: Record<string, string>\n) {\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) {\n return;\n }\n const range = sel.getRangeAt(0);\n\n const aliases: Record<string, string[]> = {\n strong: ['strong', 'b'],\n em: ['em', 'i'],\n u: ['u'],\n span: ['span'],\n };\n const candidates = aliases[tag] ?? [tag];\n\n function isMatchingInline(el: HTMLElement): boolean {\n return candidates.includes(el.tagName.toLowerCase());\n }\n\n if (range.collapsed) {\n let n: Node | null = range.startContainer;\n while (n && n !== root) {\n if (n instanceof HTMLElement && isMatchingInline(n)) {\n unwrapAllMatching(range.startContainer, root, isMatchingInline);\n return;\n }\n n = n.parentNode;\n }\n\n const elm = document.createElement(tag);\n if (attrs)\n Object.entries(attrs).forEach(([k, v]) => elm.setAttribute(k, v));\n elm.appendChild(document.createTextNode('\\u200b'));\n range.insertNode(elm);\n\n const r = document.createRange();\n r.setStart(elm.firstChild!, 1);\n r.collapse(true);\n sel.removeAllRanges();\n sel.addRange(r);\n\n return;\n }\n\n const startBlock = closestBlock(range.startContainer, root);\n const endBlock = closestBlock(range.endContainer, root);\n if (startBlock && endBlock && startBlock !== endBlock) {\n const blocks: HTMLElement[] = [];\n let node: Node | null = startBlock;\n while (node) {\n if (node instanceof HTMLElement) blocks.push(node);\n if (node === endBlock) break;\n node = node.nextSibling;\n }\n\n blocks.forEach((block, i) => {\n const r = document.createRange();\n r.selectNodeContents(block);\n\n const textNodes: Text[] = [];\n const tw = document.createTreeWalker(block, NodeFilter.SHOW_TEXT, null);\n let tn: Node | null;\n while ((tn = tw.nextNode())) {\n if (tn.nodeValue?.trim()) textNodes.push(tn as Text);\n }\n\n const allWrapped =\n textNodes.length > 0 &&\n textNodes.every(txt => {\n let n: Node | null = txt;\n while (n && n !== block) {\n if (n instanceof HTMLElement && isMatchingInline(n)) return true;\n n = n.parentNode;\n }\n return false;\n });\n\n if (allWrapped) {\n textNodes.forEach(txt =>\n unwrapAllMatching(txt, block, isMatchingInline)\n );\n } else {\n surroundInline(r, tag, attrs);\n }\n });\n return;\n }\n const walker = document.createTreeWalker(\n range.commonAncestorContainer,\n NodeFilter.SHOW_TEXT,\n {\n acceptNode: n => {\n if (!n.nodeValue || !n.nodeValue.trim())\n return NodeFilter.FILTER_REJECT;\n const nodeRange = document.createRange();\n nodeRange.selectNodeContents(n);\n const intersects =\n range.compareBoundaryPoints(Range.END_TO_START, nodeRange) <= 0 &&\n range.compareBoundaryPoints(Range.START_TO_END, nodeRange) >= 0;\n return intersects ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;\n },\n }\n );\n\n const textNodes: Text[] = [];\n let t: Node | null;\n while ((t = walker.nextNode())) textNodes.push(t as Text);\n\n if (textNodes.length === 0) {\n let n: Node | null = range.startContainer;\n while (n && n !== root) {\n if (n instanceof HTMLElement && isMatchingInline(n)) {\n unwrapAllMatching(range.startContainer, root, isMatchingInline);\n return;\n }\n n = n.parentNode;\n }\n }\n\n const allWrapped =\n textNodes.length > 0 &&\n textNodes.every(txt => {\n let n: Node | null = txt;\n while (n && n !== root) {\n if (n instanceof HTMLElement && isMatchingInline(n)) {\n return true;\n }\n n = n.parentNode;\n }\n return false;\n });\n\n if (allWrapped) {\n textNodes.forEach(txt => unwrapAllMatching(txt, root, isMatchingInline));\n } else {\n surroundInline(range, tag, attrs);\n }\n\n // restore selection\n const selRange = document.createRange();\n selRange.setStart(range.startContainer, range.startOffset);\n selRange.setEnd(range.endContainer, range.endOffset);\n sel.removeAllRanges();\n sel.addRange(selRange);\n}\n\nexport function setBlockTag(root: HTMLElement, tag: 'p' | 'h1' | 'h2' | 'h3') {\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n const block = closestBlock(range.startContainer, root);\n if (!block) return;\n if (block.tagName.toLowerCase() === tag) return;\n const nb = document.createElement(tag);\n while (block.firstChild) nb.appendChild(block.firstChild);\n block.replaceWith(nb);\n const r = document.createRange();\n r.selectNodeContents(nb);\n r.collapse(true);\n sel.removeAllRanges();\n sel.addRange(r);\n}\n\nexport function setAlignment(\n root: HTMLElement,\n align: 'left' | 'center' | 'right' | 'justify'\n) {\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n\n let block = closestBlock(range.startContainer, root);\n if (!block) return;\n\n if (block.tagName.toLowerCase() === 'li') {\n block.style.textAlign = align;\n const list = block.closest('ul,ol') as HTMLElement | null;\n if (list) list.style.textAlign = align;\n } else {\n block.style.textAlign = align === 'justify' ? 'justify' : align;\n }\n}\n\nexport function setFontFamily(root: HTMLElement, family: string) {\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n if (range.collapsed) {\n const span = document.createElement('span');\n span.style.fontFamily = family;\n span.appendChild(document.createTextNode('\\u200b'));\n range.insertNode(span);\n const r = document.createRange();\n r.setStart(span.firstChild!, 1);\n r.collapse(true);\n sel.removeAllRanges();\n sel.addRange(r);\n return;\n }\n surroundInline(range, 'span', { style: `font-family:${family}` });\n}\n\nfunction enclosingStyledSpan(\n editor: HTMLElement,\n node: Node | null,\n dataAttr: 'data-rte-color' | 'data-rte-bg'\n): HTMLSpanElement | null {\n while (node && node !== editor) {\n if (node instanceof HTMLSpanElement && node.hasAttribute(dataAttr)) {\n return node;\n }\n node = node.parentNode;\n }\n return null;\n}\n\nfunction applyInlineStyle(\n editor: HTMLElement,\n cssProp: 'color' | 'backgroundColor',\n value: string,\n dataAttr: 'data-rte-color' | 'data-rte-bg'\n) {\n const sel = window.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const r0 = sel.getRangeAt(0);\n if (!editor.contains(r0.commonAncestorContainer)) return;\n\n const range = r0.cloneRange();\n\n if (range.collapsed) {\n const enclosing = enclosingStyledSpan(\n editor,\n range.startContainer,\n dataAttr\n );\n if (enclosing) {\n (enclosing.style as any)[cssProp] = value;\n mergeAdjacentStyledSpans(editor, dataAttr, cssProp);\n return;\n }\n\n const s = document.createElement('span');\n s.setAttribute(dataAttr, '1');\n (s.style as any)[cssProp] = value;\n s.appendChild(document.createTextNode('\\u200B'));\n range.insertNode(s);\n\n const caret = document.createRange();\n caret.setStart(s.firstChild!, 1);\n caret.collapse(true);\n sel.removeAllRanges();\n sel.addRange(caret);\n\n mergeAdjacentStyledSpans(editor, dataAttr, cssProp);\n return;\n }\n\n const leftEdge = enclosingStyledSpan(editor, range.startContainer, dataAttr);\n const rightEdge = enclosingStyledSpan(editor, range.endContainer, dataAttr);\n if (leftEdge && leftEdge === rightEdge) {\n if (rangeCoversWholeNode(range, leftEdge)) {\n (leftEdge.style as any)[cssProp] = value;\n } else {\n const mid = splitAndRecolorWithinSpan(\n leftEdge,\n range,\n dataAttr,\n cssProp,\n value\n );\n\n const sel = window.getSelection();\n const r = document.createRange();\n r.selectNodeContents(mid);\n sel?.removeAllRanges();\n sel?.addRange(r);\n }\n mergeAdjacentStyledSpans(editor, dataAttr, cssProp);\n return;\n }\n\n const commonEl = (() => {\n let n: Node | null = range.commonAncestorContainer;\n while (n && !(n instanceof HTMLElement)) n = n.parentNode;\n return n as HTMLElement | null;\n })();\n\n const walker = document.createTreeWalker(\n commonEl || editor,\n NodeFilter.SHOW_TEXT,\n {\n acceptNode: n => {\n if (!n.nodeValue || !n.nodeValue.trim())\n return NodeFilter.FILTER_REJECT;\n const nodeRange = document.createRange();\n nodeRange.selectNodeContents(n);\n const intersects =\n range.compareBoundaryPoints(Range.END_TO_START, nodeRange) < 0 &&\n range.compareBoundaryPoints(Range.START_TO_END, nodeRange) > 0;\n return intersects ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;\n },\n }\n );\n\n const toProcess: Text[] = [];\n let t: Node | null;\n while ((t = walker.nextNode())) toProcess.push(t as Text);\n\n toProcess.forEach(text => {\n let start = 0,\n end = text.length;\n if (text === range.startContainer) start = range.startOffset;\n if (text === range.endContainer) end = range.endOffset;\n if (start > 0) text = text.splitText(start);\n if (end < text.length) text.splitText(end);\n\n const existing = enclosingStyledSpan(editor, text, dataAttr);\n if (existing) {\n (existing.style as any)[cssProp] = value;\n return;\n }\n\n const span = document.createElement('span');\n span.setAttribute(dataAttr, '1');\n (span.style as any)[cssProp] = value;\n const parent = text.parentElement!;\n parent.replaceChild(span, text);\n span.appendChild(text);\n });\n\n mergeAdjacentStyledSpans(editor, dataAttr, cssProp);\n\n // restore selection\n sel.removeAllRanges();\n sel.addRange(range);\n}\n\n// Is the range covering the entire node's contents?\nfunction rangeCoversWholeNode(range: Range, node: Node): boolean {\n const all = document.createRange();\n all.selectNodeContents(node);\n return (\n range.compareBoundaryPoints(Range.START_TO_START, all) <= 0 &&\n range.compareBoundaryPoints(Range.END_TO_END, all) >= 0\n );\n}\n\nfunction hasRangeContent(r: Range): boolean {\n if (r.collapsed) return false;\n const text = r.cloneContents().textContent || '';\n return text.length > 0;\n}\n\n// Split one styled span into [left][middle][right]; recolor only middle\nfunction splitAndRecolorWithinSpan(\n span: HTMLSpanElement,\n range: Range,\n dataAttr: 'data-rte-color' | 'data-rte-bg',\n cssProp: 'color' | 'backgroundColor',\n newValue: string\n): HTMLSpanElement {\n const oldValue = (span.style as any)[cssProp];\n\n const left = document.createRange();\n left.setStart(span, 0);\n left.setEnd(range.startContainer, range.startOffset);\n\n const right = document.createRange();\n right.setStart(range.endContainer, range.endOffset);\n right.setEnd(span, span.childNodes.length);\n\n // Build replacement fragment\n const frag = document.createDocumentFragment();\n\n // helper to make a styled clone shell\n const makeShell = (val: string) => {\n const s = document.createElement('span');\n s.setAttribute(dataAttr, '1');\n (s.style as any)[cssProp] = val;\n return s;\n };\n\n if (hasRangeContent(left)) {\n const sLeft = makeShell(oldValue);\n sLeft.appendChild(left.cloneContents());\n frag.appendChild(sLeft);\n }\n\n const mid = makeShell(newValue);\n mid.appendChild(range.cloneContents());\n frag.appendChild(mid);\n\n if (hasRangeContent(right)) {\n const sRight = makeShell(oldValue);\n sRight.appendChild(right.cloneContents());\n frag.appendChild(sRight);\n }\n\n span.replaceWith(frag);\n return mid;\n}\n\nfunction mergeAdjacentStyledSpans(\n root: HTMLElement,\n dataAttr: 'data-rte-color' | 'data-rte-bg',\n cssProp: 'color' | 'backgroundColor'\n) {\n const spans = Array.from(\n root.querySelectorAll<HTMLSpanElement>(`span[${dataAttr}]`)\n );\n\n const valOf = (el: HTMLElement) => (el.style as any)[cssProp];\n\n spans.forEach(s => {\n const nested = Array.from(\n s.querySelectorAll<HTMLSpanElement>(`span[${dataAttr}]`)\n );\n nested.forEach(child => {\n if (valOf(child) === valOf(s)) {\n while (child.firstChild) s.insertBefore(child.firstChild, child);\n child.remove();\n }\n });\n\n const prev = s.previousSibling;\n if (\n prev instanceof HTMLSpanElement &&\n prev.hasAttribute(dataAttr) &&\n valOf(prev) === valOf(s)\n ) {\n while (s.firstChild) prev.appendChild(s.firstChild);\n s.remove();\n return;\n }\n\n const next = s.nextSibling;\n if (\n next instanceof HTMLSpanElement &&\n next.hasAttribute(dataAttr) &&\n valOf(next) === valOf(s)\n ) {\n while (next.firstChild) s.appendChild(next.firstChild);\n next.remove();\n }\n });\n}\n\nexport function setForeColor(editor: HTMLElement, hex: string) {\n applyInlineStyle(editor, 'color', hex, 'data-rte-color');\n}\nexport function setBackColor(editor: HTMLElement, hex: string) {\n applyInlineStyle(editor, 'backgroundColor', hex, 'data-rte-bg');\n}\n\nexport function toggleList(root: HTMLElement, kind: 'ul' | 'ol') {\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n\n const blocks: HTMLElement[] = [];\n const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {\n acceptNode: n => {\n if (!(n instanceof HTMLElement)) return NodeFilter.FILTER_SKIP;\n if (!/^(P|DIV|LI|H[1-6])$/.test(n.tagName)) return NodeFilter.FILTER_SKIP;\n\n const r = document.createRange();\n r.selectNodeContents(n);\n const intersects =\n range.compareBoundaryPoints(Range.END_TO_START, r) < 0 &&\n range.compareBoundaryPoints(Range.START_TO_END, r) > 0;\n return intersects ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;\n },\n });\n\n let n: Node | null;\n while ((n = walker.nextNode())) {\n blocks.push(n as HTMLElement);\n }\n\n if (blocks.length === 0) {\n const block = closestBlock(range.startContainer, root);\n if (block) blocks.push(block);\n }\n\n const firstLi = blocks[0].closest('li');\n if (firstLi) {\n const currentList = firstLi.closest('ul,ol') as HTMLElement | null;\n if (!currentList) return;\n\n if (currentList.tagName.toLowerCase() === kind) {\n const frag = document.createDocumentFragment();\n for (const li of Array.from(currentList.querySelectorAll('li'))) {\n const p = document.createElement('p');\n while (li.firstChild) p.appendChild(li.firstChild);\n frag.appendChild(p);\n }\n currentList.replaceWith(frag);\n } else {\n const newList = document.createElement(kind);\n while (currentList.firstChild)\n newList.appendChild(currentList.firstChild);\n currentList.replaceWith(newList);\n }\n return;\n }\n\n const newList = document.createElement(kind);\n for (const block of blocks) {\n const li = document.createElement('li');\n while (block.firstChild) li.appendChild(block.firstChild);\n newList.appendChild(li);\n block.replaceWith(newList);\n }\n}\n\nexport function insertOrEditLink(root: HTMLElement, href?: string) {\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n\n let n: Node | null = range.startContainer;\n let a: HTMLAnchorElement | null = null;\n while (n && n !== root) {\n if (n instanceof HTMLAnchorElement) {\n a = n;\n break;\n }\n n = n.parentNode;\n }\n\n const url =\n href ??\n (typeof window !== 'undefined'\n ? window.prompt('Enter URL', a?.href || 'https://') || ''\n : '');\n if (!url) return;\n\n if (a) {\n a.href = url;\n return;\n }\n\n if (range.collapsed) {\n const link = document.createElement('a');\n link.href = url;\n link.textContent = url;\n range.insertNode(link);\n const r = document.createRange();\n r.setStartAfter(link);\n r.collapse(true);\n sel.removeAllRanges();\n sel.addRange(r);\n return;\n }\n\n const link = document.createElement('a');\n link.href = url;\n try {\n range.surroundContents(link);\n } catch {\n const frag = range.extractContents();\n link.appendChild(frag);\n range.insertNode(link);\n }\n}\n"]}
@@ -1,90 +0,0 @@
1
- /**
2
- * Copyright Aquera Inc 2023
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 type NilePopup from '../nile-popup/nile-popup';
8
- import type NileSelect from './nile-select';
9
- /**
10
- * Manager class for handling bodyAppend functionality in nile-select
11
- * This class manages moving select options to document.body to avoid CSS clipping issues
12
- */
13
- export declare class BodyAppendManager {
14
- private bodyContainer?;
15
- private originalOptions;
16
- private boundHandlePopupReposition?;
17
- private selectElement;
18
- private popup?;
19
- private listbox?;
20
- private injectedStyleId?;
21
- constructor(selectElement: NileSelect);
22
- /**
23
- * Sets the popup and listbox references
24
- */
25
- setReferences(popup: NilePopup, listbox: HTMLSlotElement): void;
26
- /**
27
- * Handles the bodyAppend change
28
- */
29
- handleBodyAppendChange(bodyAppend: boolean): void;
30
- /**
31
- * Handles popup reposition events to update body container position
32
- */
33
- private handlePopupReposition;
34
- /**
35
- * Extracts styles as CSS string from various style formats
36
- */
37
- private extractStylesAsCSS;
38
- /**
39
- * Injects component styles into document head
40
- */
41
- private injectStylesToDocument;
42
- /**
43
- * Adopts component styles to the body container (similar to portal-manager pattern)
44
- */
45
- private adoptStylesToBodyContainer;
46
- /**
47
- * Creates a body container for options when bodyAppend is true
48
- */
49
- private createBodyContainer;
50
- /**
51
- * Cleans up the body container
52
- */
53
- private cleanupBodyContainer;
54
- /**
55
- * Moves options to body container when bodyAppend is true
56
- */
57
- private moveOptionsToBody;
58
- /**
59
- * Restores options to their original position
60
- */
61
- private restoreOptionsFromBody;
62
- /**
63
- * Updates body container visibility and positioning
64
- */
65
- private updateBodyContainerVisibility;
66
- /**
67
- * Gets all options from both original location and body container
68
- */
69
- private getAllOptions;
70
- /**
71
- * Updates body container visibility when select opens/closes
72
- */
73
- updateVisibility(visible: boolean): void;
74
- /**
75
- * Checks if bodyAppend is active (has body container)
76
- */
77
- isActive(): boolean;
78
- /**
79
- * Gets the body container element
80
- */
81
- getBodyContainer(): HTMLElement | undefined;
82
- /**
83
- * Gets the listbox container element inside the body container
84
- */
85
- getListboxContainer(): HTMLElement | undefined;
86
- /**
87
- * Cleans up all resources
88
- */
89
- destroy(): void;
90
- }
@@ -1,298 +0,0 @@
1
- /**
2
- * Copyright Aquera Inc 2023
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
- /**
8
- * Manager class for handling bodyAppend functionality in nile-select
9
- * This class manages moving select options to document.body to avoid CSS clipping issues
10
- */
11
- export class BodyAppendManager {
12
- constructor(selectElement) {
13
- this.originalOptions = [];
14
- this.selectElement = selectElement;
15
- }
16
- /**
17
- * Sets the popup and listbox references
18
- */
19
- setReferences(popup, listbox) {
20
- this.popup = popup;
21
- this.listbox = listbox;
22
- }
23
- /**
24
- * Handles the bodyAppend change
25
- */
26
- handleBodyAppendChange(bodyAppend) {
27
- if (bodyAppend) {
28
- // Initialize body container when bodyAppend becomes true
29
- this.createBodyContainer();
30
- // Move options to body immediately
31
- this.moveOptionsToBody();
32
- // If no options were found, retry after a short delay
33
- if (this.getAllOptions().length === 0) {
34
- setTimeout(() => {
35
- this.moveOptionsToBody();
36
- }, 100);
37
- }
38
- // Listen for popup reposition events
39
- this.boundHandlePopupReposition = this.handlePopupReposition.bind(this);
40
- this.popup?.addEventListener('reposition', this.boundHandlePopupReposition);
41
- }
42
- else {
43
- // Restore options from body when bodyAppend becomes false
44
- this.restoreOptionsFromBody();
45
- // Clean up body container when bodyAppend becomes false
46
- this.cleanupBodyContainer();
47
- // Remove popup reposition listener
48
- if (this.boundHandlePopupReposition) {
49
- this.popup?.removeEventListener('reposition', this.boundHandlePopupReposition);
50
- this.boundHandlePopupReposition = undefined;
51
- }
52
- }
53
- }
54
- /**
55
- * Handles popup reposition events to update body container position
56
- */
57
- handlePopupReposition() {
58
- if (this.bodyContainer && this.selectElement.open) {
59
- this.updateBodyContainerVisibility(true);
60
- }
61
- }
62
- /**
63
- * Extracts styles as CSS string from various style formats
64
- */
65
- extractStylesAsCSS(styles) {
66
- if (typeof styles === 'string') {
67
- return styles;
68
- }
69
- if (Array.isArray(styles)) {
70
- return styles.map(style => this.extractStylesAsCSS(style)).join('\n');
71
- }
72
- if (styles && typeof styles === 'object' && styles.cssText) {
73
- return styles.cssText;
74
- }
75
- return '';
76
- }
77
- /**
78
- * Injects component styles into document head
79
- */
80
- injectStylesToDocument() {
81
- if (!this.bodyContainer)
82
- return;
83
- // Create a unique identifier for this component instance
84
- this.injectedStyleId = `nile-select-body-append-styles-${Math.random().toString(36).substring(2, 11)}`;
85
- // Check if styles are already injected
86
- if (document.getElementById(this.injectedStyleId))
87
- return;
88
- // Get the component's styles
89
- const componentStyles = this.selectElement.constructor.styles;
90
- if (!componentStyles)
91
- return;
92
- // Create a style element
93
- const styleElement = document.createElement('style');
94
- styleElement.id = this.injectedStyleId;
95
- styleElement.textContent = this.extractStylesAsCSS(componentStyles);
96
- // Inject into document head
97
- document.head.appendChild(styleElement);
98
- }
99
- /**
100
- * Adopts component styles to the body container (similar to portal-manager pattern)
101
- */
102
- adoptStylesToBodyContainer(listboxContainer) {
103
- if (!this.bodyContainer)
104
- return;
105
- // Inject styles to document head first
106
- this.injectStylesToDocument();
107
- // Apply basic styling to match the original listbox
108
- if (this.listbox) {
109
- const computedStyle = window.getComputedStyle(this.listbox);
110
- listboxContainer.style.backgroundColor = computedStyle.backgroundColor;
111
- listboxContainer.style.border = computedStyle.border;
112
- listboxContainer.style.borderRadius = computedStyle.borderRadius;
113
- listboxContainer.style.boxShadow = computedStyle.boxShadow;
114
- listboxContainer.style.maxHeight = computedStyle.maxHeight;
115
- listboxContainer.style.overflow = computedStyle.overflow;
116
- listboxContainer.style.padding = computedStyle.padding;
117
- listboxContainer.style.margin = computedStyle.margin;
118
- }
119
- }
120
- /**
121
- * Creates a body container for options when bodyAppend is true
122
- */
123
- createBodyContainer() {
124
- if (this.bodyContainer) {
125
- return this.bodyContainer;
126
- }
127
- this.bodyContainer = document.createElement('div');
128
- this.bodyContainer.style.position = 'fixed';
129
- this.bodyContainer.style.zIndex = '9999';
130
- this.bodyContainer.style.pointerEvents = 'none';
131
- this.bodyContainer.style.visibility = 'hidden';
132
- this.bodyContainer.style.overflow = 'hidden';
133
- // Create the listbox container inside the body container
134
- const listboxContainer = document.createElement('div');
135
- listboxContainer.id = 'listbox';
136
- listboxContainer.setAttribute('role', 'listbox');
137
- listboxContainer.className = 'select__listbox';
138
- listboxContainer.setAttribute('aria-expanded', 'false');
139
- listboxContainer.setAttribute('aria-multiselectable', 'false');
140
- listboxContainer.setAttribute('aria-labelledby', 'label');
141
- listboxContainer.setAttribute('tabindex', '-1');
142
- // Adopt styles to the listbox container (similar to portal-manager pattern)
143
- this.adoptStylesToBodyContainer(listboxContainer);
144
- // Append the listbox container to the body container
145
- this.bodyContainer.appendChild(listboxContainer);
146
- // Inject component styles to document head
147
- this.injectStylesToDocument();
148
- document.body.appendChild(this.bodyContainer);
149
- return this.bodyContainer;
150
- }
151
- /**
152
- * Cleans up the body container
153
- */
154
- cleanupBodyContainer() {
155
- if (this.bodyContainer && this.bodyContainer.parentNode) {
156
- this.bodyContainer.parentNode.removeChild(this.bodyContainer);
157
- this.bodyContainer = undefined;
158
- }
159
- // Clean up injected styles
160
- if (this.injectedStyleId) {
161
- const styleElement = document.getElementById(this.injectedStyleId);
162
- if (styleElement) {
163
- styleElement.remove();
164
- }
165
- this.injectedStyleId = undefined;
166
- }
167
- }
168
- /**
169
- * Moves options to body container when bodyAppend is true
170
- */
171
- moveOptionsToBody() {
172
- const container = this.createBodyContainer();
173
- const listboxContainer = container.querySelector('#listbox');
174
- const allOptions = this.getAllOptions();
175
- // Only proceed if we have options to move and listbox container exists
176
- if (allOptions.length === 0 || !listboxContainer) {
177
- return;
178
- }
179
- // Store original options for restoration
180
- this.originalOptions = [...allOptions];
181
- // Move options to listbox container inside body container
182
- allOptions.forEach(option => {
183
- if (option.parentNode) {
184
- option.parentNode.removeChild(option);
185
- }
186
- listboxContainer.appendChild(option);
187
- });
188
- }
189
- /**
190
- * Restores options to their original position
191
- */
192
- restoreOptionsFromBody() {
193
- if (!this.bodyContainer) {
194
- return;
195
- }
196
- const allOptions = this.getAllOptions();
197
- // Move options back to their original position
198
- allOptions.forEach(option => {
199
- if (option.parentNode) {
200
- option.parentNode.removeChild(option);
201
- }
202
- // Insert back into the slot
203
- this.selectElement.appendChild(option);
204
- });
205
- }
206
- /**
207
- * Updates body container visibility and positioning
208
- */
209
- updateBodyContainerVisibility(visible) {
210
- if (!this.bodyContainer) {
211
- return;
212
- }
213
- if (visible) {
214
- this.bodyContainer.style.visibility = 'visible';
215
- this.bodyContainer.style.pointerEvents = 'auto';
216
- // Position the container relative to the popup
217
- if (this.popup && this.popup.popup) {
218
- const popupRect = this.popup.popup.getBoundingClientRect();
219
- this.bodyContainer.style.left = `${popupRect.left}px`;
220
- this.bodyContainer.style.top = `${popupRect.top}px`;
221
- this.bodyContainer.style.width = `${popupRect.width}px`;
222
- this.bodyContainer.style.height = `${popupRect.height}px`;
223
- // Update styles to match the popup
224
- const computedStyle = window.getComputedStyle(this.popup.popup);
225
- this.bodyContainer.style.backgroundColor = computedStyle.backgroundColor;
226
- this.bodyContainer.style.border = computedStyle.border;
227
- this.bodyContainer.style.borderRadius = computedStyle.borderRadius;
228
- this.bodyContainer.style.boxShadow = computedStyle.boxShadow;
229
- this.bodyContainer.style.maxHeight = computedStyle.maxHeight;
230
- }
231
- }
232
- else {
233
- this.bodyContainer.style.visibility = 'hidden';
234
- this.bodyContainer.style.pointerEvents = 'none';
235
- }
236
- }
237
- /**
238
- * Gets all options from both original location and body container
239
- */
240
- getAllOptions() {
241
- let options;
242
- // Always get options from the original location first
243
- options = [...this.selectElement.querySelectorAll('nile-option')];
244
- // If no options found in original location and bodyAppend is true, check listbox container
245
- if (options.length === 0 && this.bodyContainer) {
246
- const listboxContainer = this.bodyContainer.querySelector('#listbox');
247
- if (listboxContainer) {
248
- options = [...listboxContainer.querySelectorAll('nile-option')];
249
- }
250
- }
251
- return options;
252
- }
253
- /**
254
- * Updates body container visibility when select opens/closes
255
- */
256
- updateVisibility(visible) {
257
- this.updateBodyContainerVisibility(visible);
258
- }
259
- /**
260
- * Checks if bodyAppend is active (has body container)
261
- */
262
- isActive() {
263
- return !!this.bodyContainer;
264
- }
265
- /**
266
- * Gets the body container element
267
- */
268
- getBodyContainer() {
269
- return this.bodyContainer;
270
- }
271
- /**
272
- * Gets the listbox container element inside the body container
273
- */
274
- getListboxContainer() {
275
- return this.bodyContainer?.querySelector('#listbox');
276
- }
277
- /**
278
- * Cleans up all resources
279
- */
280
- destroy() {
281
- // Clean up body container if it exists
282
- this.cleanupBodyContainer();
283
- // Clean up event listeners
284
- if (this.boundHandlePopupReposition) {
285
- this.popup?.removeEventListener('reposition', this.boundHandlePopupReposition);
286
- this.boundHandlePopupReposition = undefined;
287
- }
288
- // Clean up injected styles
289
- if (this.injectedStyleId) {
290
- const styleElement = document.getElementById(this.injectedStyleId);
291
- if (styleElement) {
292
- styleElement.remove();
293
- }
294
- this.injectedStyleId = undefined;
295
- }
296
- }
297
- }
298
- //# sourceMappingURL=body-append-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"body-append-manager.js","sourceRoot":"","sources":["../../../src/nile-select/body-append-manager.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport type NileOption from '../nile-option/nile-option';\nimport type NilePopup from '../nile-popup/nile-popup';\nimport type NileSelect from './nile-select';\nimport type { CSSResultGroup } from 'lit';\n\n/**\n * Manager class for handling bodyAppend functionality in nile-select\n * This class manages moving select options to document.body to avoid CSS clipping issues\n */\nexport class BodyAppendManager {\n private bodyContainer?: HTMLElement;\n private originalOptions: NileOption[] = [];\n private boundHandlePopupReposition?: () => void;\n private selectElement: NileSelect;\n private popup?: NilePopup;\n private listbox?: HTMLSlotElement;\n private injectedStyleId?: string;\n\n constructor(selectElement: NileSelect) {\n this.selectElement = selectElement;\n }\n\n /**\n * Sets the popup and listbox references\n */\n setReferences(popup: NilePopup, listbox: HTMLSlotElement): void {\n this.popup = popup;\n this.listbox = listbox;\n }\n\n /**\n * Handles the bodyAppend change\n */\n handleBodyAppendChange(bodyAppend: boolean): void {\n if (bodyAppend) {\n // Initialize body container when bodyAppend becomes true\n this.createBodyContainer();\n // Move options to body immediately\n this.moveOptionsToBody();\n // If no options were found, retry after a short delay\n if (this.getAllOptions().length === 0) {\n setTimeout(() => {\n this.moveOptionsToBody();\n }, 100);\n }\n // Listen for popup reposition events\n this.boundHandlePopupReposition = this.handlePopupReposition.bind(this);\n this.popup?.addEventListener('reposition', this.boundHandlePopupReposition);\n } else {\n // Restore options from body when bodyAppend becomes false\n this.restoreOptionsFromBody();\n // Clean up body container when bodyAppend becomes false\n this.cleanupBodyContainer();\n // Remove popup reposition listener\n if (this.boundHandlePopupReposition) {\n this.popup?.removeEventListener('reposition', this.boundHandlePopupReposition);\n this.boundHandlePopupReposition = undefined;\n }\n }\n }\n\n /**\n * Handles popup reposition events to update body container position\n */\n private handlePopupReposition(): void {\n if (this.bodyContainer && this.selectElement.open) {\n this.updateBodyContainerVisibility(true);\n }\n }\n\n /**\n * Extracts styles as CSS string from various style formats\n */\n private 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 /**\n * Injects component styles into document head\n */\n private injectStylesToDocument(): void {\n if (!this.bodyContainer) return;\n\n // Create a unique identifier for this component instance\n this.injectedStyleId = `nile-select-body-append-styles-${Math.random().toString(36).substring(2, 11)}`;\n \n // Check if styles are already injected\n if (document.getElementById(this.injectedStyleId)) return;\n\n // Get the component's styles\n const componentStyles = (this.selectElement.constructor as any).styles;\n if (!componentStyles) return;\n\n // Create a style element\n const styleElement = document.createElement('style');\n styleElement.id = this.injectedStyleId;\n styleElement.textContent = this.extractStylesAsCSS(componentStyles);\n \n // Inject into document head\n document.head.appendChild(styleElement);\n }\n\n /**\n * Adopts component styles to the body container (similar to portal-manager pattern)\n */\n private adoptStylesToBodyContainer(listboxContainer: HTMLElement): void {\n if (!this.bodyContainer) return;\n \n // Inject styles to document head first\n this.injectStylesToDocument();\n \n // Apply basic styling to match the original listbox\n if (this.listbox) {\n const computedStyle = window.getComputedStyle(this.listbox);\n listboxContainer.style.backgroundColor = computedStyle.backgroundColor;\n listboxContainer.style.border = computedStyle.border;\n listboxContainer.style.borderRadius = computedStyle.borderRadius;\n listboxContainer.style.boxShadow = computedStyle.boxShadow;\n listboxContainer.style.maxHeight = computedStyle.maxHeight;\n listboxContainer.style.overflow = computedStyle.overflow;\n listboxContainer.style.padding = computedStyle.padding;\n listboxContainer.style.margin = computedStyle.margin;\n }\n }\n\n /**\n * Creates a body container for options when bodyAppend is true\n */\n private createBodyContainer(): HTMLElement {\n if (this.bodyContainer) {\n return this.bodyContainer;\n }\n\n this.bodyContainer = document.createElement('div');\n this.bodyContainer.style.position = 'fixed';\n this.bodyContainer.style.zIndex = '9999';\n this.bodyContainer.style.pointerEvents = 'none';\n this.bodyContainer.style.visibility = 'hidden';\n this.bodyContainer.style.overflow = 'hidden';\n \n // Create the listbox container inside the body container\n const listboxContainer = document.createElement('div');\n listboxContainer.id = 'listbox';\n listboxContainer.setAttribute('role', 'listbox');\n listboxContainer.className = 'select__listbox';\n listboxContainer.setAttribute('aria-expanded', 'false');\n listboxContainer.setAttribute('aria-multiselectable', 'false');\n listboxContainer.setAttribute('aria-labelledby', 'label');\n listboxContainer.setAttribute('tabindex', '-1');\n \n // Adopt styles to the listbox container (similar to portal-manager pattern)\n this.adoptStylesToBodyContainer(listboxContainer);\n \n // Append the listbox container to the body container\n this.bodyContainer.appendChild(listboxContainer);\n \n // Inject component styles to document head\n this.injectStylesToDocument();\n \n document.body.appendChild(this.bodyContainer);\n \n return this.bodyContainer;\n }\n\n /**\n * Cleans up the body container\n */\n private cleanupBodyContainer(): void {\n if (this.bodyContainer && this.bodyContainer.parentNode) {\n this.bodyContainer.parentNode.removeChild(this.bodyContainer);\n this.bodyContainer = undefined;\n }\n \n // Clean up injected styles\n if (this.injectedStyleId) {\n const styleElement = document.getElementById(this.injectedStyleId);\n if (styleElement) {\n styleElement.remove();\n }\n this.injectedStyleId = undefined;\n }\n }\n\n /**\n * Moves options to body container when bodyAppend is true\n */\n private moveOptionsToBody(): void {\n const container = this.createBodyContainer();\n const listboxContainer = container.querySelector('#listbox') as HTMLElement;\n const allOptions = this.getAllOptions();\n \n // Only proceed if we have options to move and listbox container exists\n if (allOptions.length === 0 || !listboxContainer) {\n return;\n }\n \n // Store original options for restoration\n this.originalOptions = [...allOptions];\n \n // Move options to listbox container inside body container\n allOptions.forEach(option => {\n if (option.parentNode) {\n option.parentNode.removeChild(option);\n }\n listboxContainer.appendChild(option);\n });\n }\n\n /**\n * Restores options to their original position\n */\n private restoreOptionsFromBody(): void {\n if (!this.bodyContainer) {\n return;\n }\n\n const allOptions = this.getAllOptions();\n \n // Move options back to their original position\n allOptions.forEach(option => {\n if (option.parentNode) {\n option.parentNode.removeChild(option);\n }\n // Insert back into the slot\n this.selectElement.appendChild(option);\n });\n }\n\n /**\n * Updates body container visibility and positioning\n */\n private updateBodyContainerVisibility(visible: boolean): void {\n if (!this.bodyContainer) {\n return;\n }\n\n if (visible) {\n this.bodyContainer.style.visibility = 'visible';\n this.bodyContainer.style.pointerEvents = 'auto';\n \n // Position the container relative to the popup\n if (this.popup && this.popup.popup) {\n const popupRect = this.popup.popup.getBoundingClientRect();\n this.bodyContainer.style.left = `${popupRect.left}px`;\n this.bodyContainer.style.top = `${popupRect.top}px`;\n this.bodyContainer.style.width = `${popupRect.width}px`;\n this.bodyContainer.style.height = `${popupRect.height}px`;\n \n // Update styles to match the popup\n const computedStyle = window.getComputedStyle(this.popup.popup);\n this.bodyContainer.style.backgroundColor = computedStyle.backgroundColor;\n this.bodyContainer.style.border = computedStyle.border;\n this.bodyContainer.style.borderRadius = computedStyle.borderRadius;\n this.bodyContainer.style.boxShadow = computedStyle.boxShadow;\n this.bodyContainer.style.maxHeight = computedStyle.maxHeight;\n }\n } else {\n this.bodyContainer.style.visibility = 'hidden';\n this.bodyContainer.style.pointerEvents = 'none';\n }\n }\n\n /**\n * Gets all options from both original location and body container\n */\n private getAllOptions(): NileOption[] {\n let options: NileOption[];\n \n // Always get options from the original location first\n options = [...this.selectElement.querySelectorAll<NileOption>('nile-option')];\n \n // If no options found in original location and bodyAppend is true, check listbox container\n if (options.length === 0 && this.bodyContainer) {\n const listboxContainer = this.bodyContainer.querySelector('#listbox');\n if (listboxContainer) {\n options = [...listboxContainer.querySelectorAll<NileOption>('nile-option')];\n }\n }\n\n return options;\n }\n\n /**\n * Updates body container visibility when select opens/closes\n */\n updateVisibility(visible: boolean): void {\n this.updateBodyContainerVisibility(visible);\n }\n\n /**\n * Checks if bodyAppend is active (has body container)\n */\n isActive(): boolean {\n return !!this.bodyContainer;\n }\n\n /**\n * Gets the body container element\n */\n getBodyContainer(): HTMLElement | undefined {\n return this.bodyContainer;\n }\n\n /**\n * Gets the listbox container element inside the body container\n */\n getListboxContainer(): HTMLElement | undefined {\n return this.bodyContainer?.querySelector('#listbox') as HTMLElement | undefined;\n }\n\n /**\n * Cleans up all resources\n */\n destroy(): void {\n // Clean up body container if it exists\n this.cleanupBodyContainer();\n // Clean up event listeners\n if (this.boundHandlePopupReposition) {\n this.popup?.removeEventListener('reposition', this.boundHandlePopupReposition);\n this.boundHandlePopupReposition = undefined;\n }\n // Clean up injected styles\n if (this.injectedStyleId) {\n const styleElement = document.getElementById(this.injectedStyleId);\n if (styleElement) {\n styleElement.remove();\n }\n this.injectedStyleId = undefined;\n }\n }\n}\n"]}
@@ -1,28 +0,0 @@
1
- import { LitElement } from 'lit';
2
- /**
3
- * An nile-sidebar element.
4
- *
5
- * @fires count-changed - Indicates when the count changes
6
- * @slot - This element has a slot
7
- * @csspart button - The button
8
- */
9
- export declare class NileSidebar extends LitElement {
10
- static styles: import("lit").CSSResult;
11
- /**
12
- * Button Lab
13
- */
14
- title: string;
15
- /**
16
- * Hide Sidebar
17
- */
18
- showSidebar: boolean;
19
- get buttonClassMap(): {
20
- 'nds-menu--active': boolean;
21
- };
22
- render(): import("lit-html").TemplateResult<1>;
23
- }
24
- declare global {
25
- interface HTMLElementTagNameMap {
26
- 'nile-sidebar': NileSidebar;
27
- }
28
- }