@aquera/nile-elements 0.1.75-beta-1.1 → 0.1.75-beta-2.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 (491) hide show
  1. package/README.md +3 -0
  2. package/demo/index.html +121 -181
  3. package/dist/index.cjs.js +1 -1
  4. package/dist/index.esm.js +1 -1
  5. package/dist/index.js +724 -271
  6. package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
  7. package/dist/nile-avatar/nile-avatar.test.cjs.js.map +1 -1
  8. package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
  9. package/dist/nile-badge/index.cjs.js +1 -1
  10. package/dist/nile-badge/index.esm.js +1 -1
  11. package/dist/nile-badge/nile-badge.cjs.js +1 -1
  12. package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
  13. package/dist/nile-badge/nile-badge.esm.js +1 -1
  14. package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
  15. package/dist/nile-badge/nile-badge.test.cjs.js.map +1 -1
  16. package/dist/nile-badge/nile-badge.test.esm.js +1 -1
  17. package/dist/nile-button/index.cjs.js +1 -1
  18. package/dist/nile-button/index.esm.js +1 -1
  19. package/dist/nile-button/nile-button.cjs.js +1 -1
  20. package/dist/nile-button/nile-button.cjs.js.map +1 -1
  21. package/dist/nile-button/nile-button.esm.js +1 -1
  22. package/dist/nile-button/nile-button.test.cjs.js +1 -1
  23. package/dist/nile-button/nile-button.test.cjs.js.map +1 -1
  24. package/dist/nile-button/nile-button.test.esm.js +1 -1
  25. package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
  26. package/dist/nile-calendar/nile-calendar.test.cjs.js.map +1 -1
  27. package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
  28. package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
  29. package/dist/nile-chip/nile-chip.test.cjs.js.map +1 -1
  30. package/dist/nile-chip/nile-chip.test.esm.js +1 -1
  31. package/dist/nile-code-editor/backup_nile-code-editor copy.cjs.js +2 -0
  32. package/dist/nile-code-editor/backup_nile-code-editor copy.cjs.js.map +1 -0
  33. package/dist/nile-code-editor/backup_nile-code-editor copy.esm.js +1 -0
  34. package/dist/nile-code-editor/extensionSetup.cjs.js +6 -6
  35. package/dist/nile-code-editor/extensionSetup.cjs.js.map +1 -1
  36. package/dist/nile-code-editor/extensionSetup.esm.js +1 -1
  37. package/dist/nile-code-editor/nile-code-editor.cjs.js +2 -2
  38. package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
  39. package/dist/nile-code-editor/nile-code-editor.esm.js +3 -3
  40. package/dist/nile-dialog/index.cjs.js +1 -1
  41. package/dist/nile-dialog/index.esm.js +1 -1
  42. package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
  43. package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
  44. package/dist/nile-dialog/nile-dialog.esm.js +2 -2
  45. package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
  46. package/dist/nile-dialog/nile-dialog.test.cjs.js.map +1 -1
  47. package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
  48. package/dist/nile-drawer/index.cjs.js +1 -1
  49. package/dist/nile-drawer/index.esm.js +1 -1
  50. package/dist/nile-drawer/nile-drawer.cjs.js +1 -1
  51. package/dist/nile-drawer/nile-drawer.cjs.js.map +1 -1
  52. package/dist/nile-drawer/nile-drawer.esm.js +2 -2
  53. package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
  54. package/dist/nile-drawer/nile-drawer.test.cjs.js.map +1 -1
  55. package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
  56. package/dist/nile-grid/index.cjs.js +2 -0
  57. package/dist/nile-grid/index.cjs.js.map +1 -0
  58. package/dist/nile-grid/index.esm.js +1 -0
  59. package/dist/nile-grid/nile-grid.cjs.js +2 -0
  60. package/dist/nile-grid/nile-grid.cjs.js.map +1 -0
  61. package/dist/nile-grid/nile-grid.css.cjs.js +2 -0
  62. package/dist/nile-grid/nile-grid.css.cjs.js.map +1 -0
  63. package/dist/nile-grid/nile-grid.css.esm.js +32 -0
  64. package/dist/nile-grid/nile-grid.esm.js +7 -0
  65. package/dist/nile-grid/nile-grid.utils.cjs.js +2 -0
  66. package/dist/nile-grid/nile-grid.utils.cjs.js.map +1 -0
  67. package/dist/nile-grid/nile-grid.utils.esm.js +1 -0
  68. package/dist/nile-grid-body/index.cjs.js +2 -0
  69. package/dist/nile-grid-body/index.cjs.js.map +1 -0
  70. package/dist/nile-grid-body/index.esm.js +1 -0
  71. package/dist/nile-grid-body/nile-grid-body.cjs.js +2 -0
  72. package/dist/nile-grid-body/nile-grid-body.cjs.js.map +1 -0
  73. package/dist/nile-grid-body/nile-grid-body.css.cjs.js +2 -0
  74. package/dist/nile-grid-body/nile-grid-body.css.cjs.js.map +1 -0
  75. package/dist/nile-grid-body/nile-grid-body.css.esm.js +10 -0
  76. package/dist/nile-grid-body/nile-grid-body.esm.js +5 -0
  77. package/dist/nile-grid-cell-item/index.cjs.js +2 -0
  78. package/dist/nile-grid-cell-item/index.cjs.js.map +1 -0
  79. package/dist/nile-grid-cell-item/index.esm.js +1 -0
  80. package/dist/nile-grid-cell-item/nile-grid-cell-item.cjs.js +2 -0
  81. package/dist/nile-grid-cell-item/nile-grid-cell-item.cjs.js.map +1 -0
  82. package/dist/nile-grid-cell-item/nile-grid-cell-item.css.cjs.js +2 -0
  83. package/dist/nile-grid-cell-item/nile-grid-cell-item.css.cjs.js.map +1 -0
  84. package/dist/nile-grid-cell-item/nile-grid-cell-item.css.esm.js +35 -0
  85. package/dist/nile-grid-cell-item/nile-grid-cell-item.esm.js +12 -0
  86. package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.cjs.js +2 -0
  87. package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.cjs.js.map +1 -0
  88. package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.esm.js +1 -0
  89. package/dist/nile-grid-head/index.cjs.js +2 -0
  90. package/dist/nile-grid-head/index.cjs.js.map +1 -0
  91. package/dist/nile-grid-head/index.esm.js +1 -0
  92. package/dist/nile-grid-head/nile-grid-head.cjs.js +2 -0
  93. package/dist/nile-grid-head/nile-grid-head.cjs.js.map +1 -0
  94. package/dist/nile-grid-head/nile-grid-head.css.cjs.js +2 -0
  95. package/dist/nile-grid-head/nile-grid-head.css.cjs.js.map +1 -0
  96. package/dist/nile-grid-head/nile-grid-head.css.esm.js +7 -0
  97. package/dist/nile-grid-head/nile-grid-head.esm.js +5 -0
  98. package/dist/nile-grid-head-item/index.cjs.js +2 -0
  99. package/dist/nile-grid-head-item/index.cjs.js.map +1 -0
  100. package/dist/nile-grid-head-item/index.esm.js +1 -0
  101. package/dist/nile-grid-head-item/nile-grid-head-item.cjs.js +2 -0
  102. package/dist/nile-grid-head-item/nile-grid-head-item.cjs.js.map +1 -0
  103. package/dist/nile-grid-head-item/nile-grid-head-item.css.cjs.js +2 -0
  104. package/dist/nile-grid-head-item/nile-grid-head-item.css.cjs.js.map +1 -0
  105. package/dist/nile-grid-head-item/nile-grid-head-item.css.esm.js +34 -0
  106. package/dist/nile-grid-head-item/nile-grid-head-item.esm.js +12 -0
  107. package/dist/nile-grid-head-item/nile-grid-head-item.utils.cjs.js +2 -0
  108. package/dist/nile-grid-head-item/nile-grid-head-item.utils.cjs.js.map +1 -0
  109. package/dist/nile-grid-head-item/nile-grid-head-item.utils.esm.js +1 -0
  110. package/dist/nile-grid-row/index.cjs.js +2 -0
  111. package/dist/nile-grid-row/index.cjs.js.map +1 -0
  112. package/dist/nile-grid-row/index.esm.js +1 -0
  113. package/dist/nile-grid-row/nile-grid-row.cjs.js +2 -0
  114. package/dist/nile-grid-row/nile-grid-row.cjs.js.map +1 -0
  115. package/dist/nile-grid-row/nile-grid-row.css.cjs.js +2 -0
  116. package/dist/nile-grid-row/nile-grid-row.css.cjs.js.map +1 -0
  117. package/dist/nile-grid-row/nile-grid-row.css.esm.js +15 -0
  118. package/dist/nile-grid-row/nile-grid-row.esm.js +7 -0
  119. package/dist/nile-icon/icons/svg/format_align_justify.cjs.js +2 -0
  120. package/dist/nile-icon/icons/svg/format_align_justify.cjs.js.map +1 -0
  121. package/dist/nile-icon/icons/svg/format_align_justify.esm.js +1 -0
  122. package/dist/nile-icon/icons/svg/format_align_left.cjs.js +2 -0
  123. package/dist/nile-icon/icons/svg/format_align_left.cjs.js.map +1 -0
  124. package/dist/nile-icon/icons/svg/format_align_left.esm.js +1 -0
  125. package/dist/nile-icon/icons/svg/format_align_middle.cjs.js +2 -0
  126. package/dist/nile-icon/icons/svg/format_align_middle.cjs.js.map +1 -0
  127. package/dist/nile-icon/icons/svg/format_align_middle.esm.js +1 -0
  128. package/dist/nile-icon/icons/svg/format_align_right.cjs.js +2 -0
  129. package/dist/nile-icon/icons/svg/format_align_right.cjs.js.map +1 -0
  130. package/dist/nile-icon/icons/svg/format_align_right.esm.js +1 -0
  131. package/dist/nile-icon/icons/svg/format_bold.cjs.js +2 -0
  132. package/dist/nile-icon/icons/svg/format_bold.cjs.js.map +1 -0
  133. package/dist/nile-icon/icons/svg/format_bold.esm.js +1 -0
  134. package/dist/nile-icon/icons/svg/format_clear.cjs.js +2 -0
  135. package/dist/nile-icon/icons/svg/format_clear.cjs.js.map +1 -0
  136. package/dist/nile-icon/icons/svg/format_clear.esm.js +1 -0
  137. package/dist/nile-icon/icons/svg/format_italic.cjs.js +2 -0
  138. package/dist/nile-icon/icons/svg/format_italic.cjs.js.map +1 -0
  139. package/dist/nile-icon/icons/svg/format_italic.esm.js +1 -0
  140. package/dist/nile-icon/icons/svg/format_list_bulleted.cjs.js +2 -0
  141. package/dist/nile-icon/icons/svg/format_list_bulleted.cjs.js.map +1 -0
  142. package/dist/nile-icon/icons/svg/format_list_bulleted.esm.js +1 -0
  143. package/dist/nile-icon/icons/svg/format_list_numbered.cjs.js +2 -0
  144. package/dist/nile-icon/icons/svg/format_list_numbered.cjs.js.map +1 -0
  145. package/dist/nile-icon/icons/svg/format_list_numbered.esm.js +1 -0
  146. package/dist/nile-icon/icons/svg/format_underline.cjs.js +2 -0
  147. package/dist/nile-icon/icons/svg/format_underline.cjs.js.map +1 -0
  148. package/dist/nile-icon/icons/svg/format_underline.esm.js +1 -0
  149. package/dist/nile-icon/icons/svg/image_2.cjs.js +2 -0
  150. package/dist/nile-icon/icons/svg/image_2.cjs.js.map +1 -0
  151. package/dist/nile-icon/icons/svg/image_2.esm.js +1 -0
  152. package/dist/nile-icon/icons/svg/index.cjs.js +1 -1
  153. package/dist/nile-icon/icons/svg/index.esm.js +1 -1
  154. package/dist/nile-icon/icons/svg/link_2.cjs.js +2 -0
  155. package/dist/nile-icon/icons/svg/link_2.cjs.js.map +1 -0
  156. package/dist/nile-icon/icons/svg/link_2.esm.js +1 -0
  157. package/dist/nile-icon/index.cjs.js +1 -1
  158. package/dist/nile-icon/index.cjs.js.map +1 -1
  159. package/dist/nile-icon/index.esm.js +2 -2
  160. package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
  161. package/dist/nile-icon/nile-icon.test.cjs.js.map +1 -1
  162. package/dist/nile-icon/nile-icon.test.esm.js +1 -1
  163. package/dist/nile-icon-button/index.cjs.js +1 -1
  164. package/dist/nile-icon-button/index.esm.js +1 -1
  165. package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
  166. package/dist/nile-icon-button/nile-icon-button.cjs.js.map +1 -1
  167. package/dist/nile-icon-button/nile-icon-button.esm.js +1 -1
  168. package/dist/nile-input/index.cjs.js +1 -1
  169. package/dist/nile-input/index.esm.js +1 -1
  170. package/dist/nile-input/nile-input.cjs.js +1 -1
  171. package/dist/nile-input/nile-input.cjs.js.map +1 -1
  172. package/dist/nile-input/nile-input.esm.js +1 -1
  173. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  174. package/dist/nile-input/nile-input.test.cjs.js.map +1 -1
  175. package/dist/nile-input/nile-input.test.esm.js +1 -1
  176. package/dist/nile-link/nile-link.css.cjs.js +1 -1
  177. package/dist/nile-link/nile-link.css.cjs.js.map +1 -1
  178. package/dist/nile-link/nile-link.css.esm.js +1 -0
  179. package/dist/nile-menu-item/index.cjs.js +1 -1
  180. package/dist/nile-menu-item/index.esm.js +1 -1
  181. package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
  182. package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
  183. package/dist/nile-menu-item/nile-menu-item.esm.js +1 -1
  184. package/dist/nile-option/index.cjs.js +1 -1
  185. package/dist/nile-option/index.esm.js +1 -1
  186. package/dist/nile-option/nile-option.cjs.js +1 -1
  187. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  188. package/dist/nile-option/nile-option.esm.js +2 -2
  189. package/dist/nile-rich-text-editor/index.cjs.js +2 -0
  190. package/dist/nile-rich-text-editor/index.cjs.js.map +1 -0
  191. package/dist/nile-rich-text-editor/index.esm.js +1 -0
  192. package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js +2 -0
  193. package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js.map +1 -0
  194. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js +2 -0
  195. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js.map +1 -0
  196. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.esm.js +149 -0
  197. package/dist/nile-rich-text-editor/nile-rich-text-editor.esm.js +1 -0
  198. package/dist/nile-rich-text-editor/nile-rte-color.cjs.js +2 -0
  199. package/dist/nile-rich-text-editor/nile-rte-color.cjs.js.map +1 -0
  200. package/dist/nile-rich-text-editor/nile-rte-color.esm.js +53 -0
  201. package/dist/nile-rich-text-editor/nile-rte-divider.cjs.js +2 -0
  202. package/dist/nile-rich-text-editor/nile-rte-divider.cjs.js.map +1 -0
  203. package/dist/nile-rich-text-editor/nile-rte-divider.esm.js +1 -0
  204. package/dist/nile-rich-text-editor/nile-rte-link.cjs.js +2 -0
  205. package/dist/nile-rich-text-editor/nile-rte-link.cjs.js.map +1 -0
  206. package/dist/nile-rich-text-editor/nile-rte-link.esm.js +19 -0
  207. package/dist/nile-rich-text-editor/nile-rte-mentions-item.cjs.js +2 -0
  208. package/dist/nile-rich-text-editor/nile-rte-mentions-item.cjs.js.map +1 -0
  209. package/dist/nile-rich-text-editor/nile-rte-mentions-item.esm.js +1 -0
  210. package/dist/nile-rich-text-editor/nile-rte-mentions.cjs.js +3 -0
  211. package/dist/nile-rich-text-editor/nile-rte-mentions.cjs.js.map +1 -0
  212. package/dist/nile-rich-text-editor/nile-rte-mentions.esm.js +1 -0
  213. package/dist/nile-rich-text-editor/nile-rte-preview.cjs.js +2 -0
  214. package/dist/nile-rich-text-editor/nile-rte-preview.cjs.js.map +1 -0
  215. package/dist/nile-rich-text-editor/nile-rte-preview.esm.js +1 -0
  216. package/dist/nile-rich-text-editor/nile-rte-select.cjs.js +2 -0
  217. package/dist/nile-rich-text-editor/nile-rte-select.cjs.js.map +1 -0
  218. package/dist/nile-rich-text-editor/nile-rte-select.esm.js +66 -0
  219. package/dist/nile-rich-text-editor/nile-rte-toolbar-item.cjs.js +2 -0
  220. package/dist/nile-rich-text-editor/nile-rte-toolbar-item.cjs.js.map +1 -0
  221. package/dist/nile-rich-text-editor/nile-rte-toolbar-item.esm.js +1 -0
  222. package/dist/nile-rich-text-editor/nile-rte-toolbar.cjs.js +2 -0
  223. package/dist/nile-rich-text-editor/nile-rte-toolbar.cjs.js.map +1 -0
  224. package/dist/nile-rich-text-editor/nile-rte-toolbar.esm.js +1 -0
  225. package/dist/nile-rich-text-editor/utils.cjs.js +2 -0
  226. package/dist/nile-rich-text-editor/utils.cjs.js.map +1 -0
  227. package/dist/nile-rich-text-editor/utils.esm.js +1 -0
  228. package/dist/nile-select/index.cjs.js +1 -1
  229. package/dist/nile-select/index.esm.js +1 -1
  230. package/dist/nile-select/nile-select.cjs.js +1 -1
  231. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  232. package/dist/nile-select/nile-select.esm.js +1 -1
  233. package/dist/nile-select/nile-select.test.cjs.js +1 -1
  234. package/dist/nile-select/nile-select.test.cjs.js.map +1 -1
  235. package/dist/nile-select/nile-select.test.esm.js +1 -1
  236. package/dist/nile-tab/index.cjs.js +1 -1
  237. package/dist/nile-tab/index.esm.js +1 -1
  238. package/dist/nile-tab/nile-tab.cjs.js +1 -1
  239. package/dist/nile-tab/nile-tab.cjs.js.map +1 -1
  240. package/dist/nile-tab/nile-tab.esm.js +1 -1
  241. package/dist/nile-tab-group/index.cjs.js +1 -1
  242. package/dist/nile-tab-group/index.esm.js +1 -1
  243. package/dist/nile-tab-group/nile-tab-group.cjs.js +1 -1
  244. package/dist/nile-tab-group/nile-tab-group.cjs.js.map +1 -1
  245. package/dist/nile-tab-group/nile-tab-group.esm.js +1 -1
  246. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
  247. package/dist/nile-tab-group/nile-tab-group.test.cjs.js.map +1 -1
  248. package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
  249. package/dist/nile-tag/index.cjs.js +1 -1
  250. package/dist/nile-tag/index.esm.js +1 -1
  251. package/dist/nile-tag/nile-tag.cjs.js +1 -1
  252. package/dist/nile-tag/nile-tag.cjs.js.map +1 -1
  253. package/dist/nile-tag/nile-tag.esm.js +1 -1
  254. package/dist/nile-toast/index.cjs.js +1 -1
  255. package/dist/nile-toast/index.esm.js +1 -1
  256. package/dist/nile-toast/nile-toast.cjs.js +1 -1
  257. package/dist/nile-toast/nile-toast.cjs.js.map +1 -1
  258. package/dist/nile-toast/nile-toast.esm.js +1 -1
  259. package/dist/nile-tree/index.cjs.js +1 -1
  260. package/dist/nile-tree/index.esm.js +1 -1
  261. package/dist/nile-tree/nile-tree.cjs.js +1 -1
  262. package/dist/nile-tree/nile-tree.cjs.js.map +1 -1
  263. package/dist/nile-tree/nile-tree.esm.js +1 -1
  264. package/dist/nile-tree-item/index.cjs.js +1 -1
  265. package/dist/nile-tree-item/index.esm.js +1 -1
  266. package/dist/nile-tree-item/nile-tree-item.cjs.js +1 -1
  267. package/dist/nile-tree-item/nile-tree-item.cjs.js.map +1 -1
  268. package/dist/nile-tree-item/nile-tree-item.esm.js +1 -1
  269. package/dist/nile-virtual-select/index.cjs.js +1 -1
  270. package/dist/nile-virtual-select/index.esm.js +1 -1
  271. package/dist/nile-virtual-select/nile-virtual-select.cjs.js +2 -2
  272. package/dist/nile-virtual-select/nile-virtual-select.cjs.js.map +1 -1
  273. package/dist/nile-virtual-select/nile-virtual-select.esm.js +3 -3
  274. package/dist/src/index.d.ts +7 -0
  275. package/dist/src/index.js +8 -1
  276. package/dist/src/index.js.map +1 -1
  277. package/dist/src/nile-code-editor/Old_theme copy.d.ts +191 -0
  278. package/dist/src/nile-code-editor/Old_theme copy.js +193 -0
  279. package/dist/src/nile-code-editor/Old_theme copy.js.map +1 -0
  280. package/dist/src/nile-code-editor/backup_nile-code-editor copy.d.ts +0 -0
  281. package/dist/src/nile-code-editor/backup_nile-code-editor copy.js +675 -0
  282. package/dist/src/nile-code-editor/backup_nile-code-editor copy.js.map +1 -0
  283. package/dist/src/nile-code-editor/nile-code-editor.d.ts +6 -3
  284. package/dist/src/nile-code-editor/nile-code-editor.js +44 -22
  285. package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
  286. package/dist/src/nile-code-editor/theme copy.d.ts +191 -0
  287. package/dist/src/nile-code-editor/theme copy.js +193 -0
  288. package/dist/src/nile-code-editor/theme copy.js.map +1 -0
  289. package/dist/src/nile-grid/index.d.ts +0 -4
  290. package/dist/src/nile-grid/index.js +0 -4
  291. package/dist/src/nile-grid/index.js.map +1 -1
  292. package/dist/src/nile-grid/nile-grid.css.d.ts +8 -0
  293. package/dist/src/nile-grid/nile-grid.css.js +27 -106
  294. package/dist/src/nile-grid/nile-grid.css.js.map +1 -1
  295. package/dist/src/nile-grid/nile-grid.d.ts +37 -26
  296. package/dist/src/nile-grid/nile-grid.js +96 -148
  297. package/dist/src/nile-grid/nile-grid.js.map +1 -1
  298. package/dist/src/nile-grid/nile-grid.utils.d.ts +9 -0
  299. package/dist/src/nile-grid/nile-grid.utils.js +170 -0
  300. package/dist/src/nile-grid/nile-grid.utils.js.map +1 -0
  301. package/dist/src/nile-grid-body/index.d.ts +1 -0
  302. package/dist/src/nile-grid-body/index.js +2 -0
  303. package/dist/src/nile-grid-body/index.js.map +1 -0
  304. package/dist/src/nile-grid-body/nile-grid-body.css.d.ts +12 -0
  305. package/dist/src/nile-grid-body/nile-grid-body.css.js +22 -0
  306. package/dist/src/nile-grid-body/nile-grid-body.css.js.map +1 -0
  307. package/dist/src/nile-grid-body/nile-grid-body.d.ts +29 -0
  308. package/dist/src/nile-grid-body/nile-grid-body.js +43 -0
  309. package/dist/src/nile-grid-body/nile-grid-body.js.map +1 -0
  310. package/dist/src/nile-grid-cell-item/index.d.ts +1 -0
  311. package/dist/src/nile-grid-cell-item/index.js +2 -0
  312. package/dist/src/nile-grid-cell-item/index.js.map +1 -0
  313. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.d.ts +12 -0
  314. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.js +47 -0
  315. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.js.map +1 -0
  316. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.d.ts +36 -0
  317. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.js +93 -0
  318. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.js.map +1 -0
  319. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.d.ts +10 -0
  320. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.js +34 -0
  321. package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.js.map +1 -0
  322. package/dist/src/nile-grid-head/index.d.ts +1 -0
  323. package/dist/src/nile-grid-head/index.js +2 -0
  324. package/dist/src/nile-grid-head/index.js.map +1 -0
  325. package/dist/src/nile-grid-head/nile-grid-head.css.d.ts +12 -0
  326. package/dist/src/nile-grid-head/nile-grid-head.css.js +19 -0
  327. package/dist/src/nile-grid-head/nile-grid-head.css.js.map +1 -0
  328. package/dist/src/nile-grid-head/nile-grid-head.d.ts +28 -0
  329. package/dist/src/nile-grid-head/nile-grid-head.js +41 -0
  330. package/dist/src/nile-grid-head/nile-grid-head.js.map +1 -0
  331. package/dist/src/nile-grid-head-item/index.d.ts +1 -0
  332. package/dist/src/nile-grid-head-item/index.js +2 -0
  333. package/dist/src/nile-grid-head-item/index.js.map +1 -0
  334. package/dist/src/nile-grid-head-item/nile-grid-head-item.css.d.ts +12 -0
  335. package/dist/src/nile-grid-head-item/nile-grid-head-item.css.js +46 -0
  336. package/dist/src/nile-grid-head-item/nile-grid-head-item.css.js.map +1 -0
  337. package/dist/src/nile-grid-head-item/nile-grid-head-item.d.ts +37 -0
  338. package/dist/src/nile-grid-head-item/nile-grid-head-item.js +100 -0
  339. package/dist/src/nile-grid-head-item/nile-grid-head-item.js.map +1 -0
  340. package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.d.ts +10 -0
  341. package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.js +34 -0
  342. package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.js.map +1 -0
  343. package/dist/src/nile-grid-row/index.d.ts +1 -0
  344. package/dist/src/nile-grid-row/index.js +2 -0
  345. package/dist/src/nile-grid-row/index.js.map +1 -0
  346. package/dist/src/nile-grid-row/nile-grid-row.css.d.ts +12 -0
  347. package/dist/src/nile-grid-row/nile-grid-row.css.js +27 -0
  348. package/dist/src/nile-grid-row/nile-grid-row.css.js.map +1 -0
  349. package/dist/src/nile-grid-row/nile-grid-row.d.ts +29 -0
  350. package/dist/src/nile-grid-row/nile-grid-row.js +45 -0
  351. package/dist/src/nile-grid-row/nile-grid-row.js.map +1 -0
  352. package/dist/src/nile-icon/icons/svg/format_align_justify.d.ts +5 -0
  353. package/dist/src/nile-icon/icons/svg/format_align_justify.js +5 -0
  354. package/dist/src/nile-icon/icons/svg/format_align_justify.js.map +1 -0
  355. package/dist/src/nile-icon/icons/svg/format_align_left.d.ts +5 -0
  356. package/dist/src/nile-icon/icons/svg/format_align_left.js +5 -0
  357. package/dist/src/nile-icon/icons/svg/format_align_left.js.map +1 -0
  358. package/dist/src/nile-icon/icons/svg/format_align_middle.d.ts +5 -0
  359. package/dist/src/nile-icon/icons/svg/format_align_middle.js +5 -0
  360. package/dist/src/nile-icon/icons/svg/format_align_middle.js.map +1 -0
  361. package/dist/src/nile-icon/icons/svg/format_align_right.d.ts +5 -0
  362. package/dist/src/nile-icon/icons/svg/format_align_right.js +5 -0
  363. package/dist/src/nile-icon/icons/svg/format_align_right.js.map +1 -0
  364. package/dist/src/nile-icon/icons/svg/format_bold.d.ts +5 -0
  365. package/dist/src/nile-icon/icons/svg/format_bold.js +5 -0
  366. package/dist/src/nile-icon/icons/svg/format_bold.js.map +1 -0
  367. package/dist/src/nile-icon/icons/svg/format_clear.d.ts +5 -0
  368. package/dist/src/nile-icon/icons/svg/format_clear.js +5 -0
  369. package/dist/src/nile-icon/icons/svg/format_clear.js.map +1 -0
  370. package/dist/src/nile-icon/icons/svg/format_italic.d.ts +5 -0
  371. package/dist/src/nile-icon/icons/svg/format_italic.js +5 -0
  372. package/dist/src/nile-icon/icons/svg/format_italic.js.map +1 -0
  373. package/dist/src/nile-icon/icons/svg/format_list_bulleted.d.ts +5 -0
  374. package/dist/src/nile-icon/icons/svg/format_list_bulleted.js +5 -0
  375. package/dist/src/nile-icon/icons/svg/format_list_bulleted.js.map +1 -0
  376. package/dist/src/nile-icon/icons/svg/format_list_numbered.d.ts +5 -0
  377. package/dist/src/nile-icon/icons/svg/format_list_numbered.js +5 -0
  378. package/dist/src/nile-icon/icons/svg/format_list_numbered.js.map +1 -0
  379. package/dist/src/nile-icon/icons/svg/format_underline.d.ts +5 -0
  380. package/dist/src/nile-icon/icons/svg/format_underline.js +5 -0
  381. package/dist/src/nile-icon/icons/svg/format_underline.js.map +1 -0
  382. package/dist/src/nile-icon/icons/svg/image_2.d.ts +5 -0
  383. package/dist/src/nile-icon/icons/svg/image_2.js +5 -0
  384. package/dist/src/nile-icon/icons/svg/image_2.js.map +1 -0
  385. package/dist/src/nile-icon/icons/svg/index.d.ts +12 -0
  386. package/dist/src/nile-icon/icons/svg/index.js +12 -0
  387. package/dist/src/nile-icon/icons/svg/index.js.map +1 -1
  388. package/dist/src/nile-icon/icons/svg/link_2.d.ts +5 -0
  389. package/dist/src/nile-icon/icons/svg/link_2.js +5 -0
  390. package/dist/src/nile-icon/icons/svg/link_2.js.map +1 -0
  391. package/dist/src/nile-link/nile-link.css.js +1 -0
  392. package/dist/src/nile-link/nile-link.css.js.map +1 -1
  393. package/dist/src/nile-option/nile-option.js +1 -1
  394. package/dist/src/nile-option/nile-option.js.map +1 -1
  395. package/dist/src/nile-rich-text-editor/index.d.ts +1 -0
  396. package/dist/src/nile-rich-text-editor/index.js +2 -0
  397. package/dist/src/nile-rich-text-editor/index.js.map +1 -0
  398. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.d.ts +3 -0
  399. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js +152 -0
  400. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js.map +1 -0
  401. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.d.ts +63 -0
  402. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js +735 -0
  403. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js.map +1 -0
  404. package/dist/src/nile-rich-text-editor/nile-rte-color.d.ts +20 -0
  405. package/dist/src/nile-rich-text-editor/nile-rte-color.js +188 -0
  406. package/dist/src/nile-rich-text-editor/nile-rte-color.js.map +1 -0
  407. package/dist/src/nile-rich-text-editor/nile-rte-divider.d.ts +10 -0
  408. package/dist/src/nile-rich-text-editor/nile-rte-divider.js +12 -0
  409. package/dist/src/nile-rich-text-editor/nile-rte-divider.js.map +1 -0
  410. package/dist/src/nile-rich-text-editor/nile-rte-link.d.ts +19 -0
  411. package/dist/src/nile-rich-text-editor/nile-rte-link.js +169 -0
  412. package/dist/src/nile-rich-text-editor/nile-rte-link.js.map +1 -0
  413. package/dist/src/nile-rich-text-editor/nile-rte-mentions-item.d.ts +18 -0
  414. package/dist/src/nile-rich-text-editor/nile-rte-mentions-item.js +53 -0
  415. package/dist/src/nile-rich-text-editor/nile-rte-mentions-item.js.map +1 -0
  416. package/dist/src/nile-rich-text-editor/nile-rte-mentions.d.ts +64 -0
  417. package/dist/src/nile-rich-text-editor/nile-rte-mentions.js +544 -0
  418. package/dist/src/nile-rich-text-editor/nile-rte-mentions.js.map +1 -0
  419. package/dist/src/nile-rich-text-editor/nile-rte-preview.d.ts +10 -0
  420. package/dist/src/nile-rich-text-editor/nile-rte-preview.js +12 -0
  421. package/dist/src/nile-rich-text-editor/nile-rte-preview.js.map +1 -0
  422. package/dist/src/nile-rich-text-editor/nile-rte-select.d.ts +33 -0
  423. package/dist/src/nile-rich-text-editor/nile-rte-select.js +228 -0
  424. package/dist/src/nile-rich-text-editor/nile-rte-select.js.map +1 -0
  425. package/dist/src/nile-rich-text-editor/nile-rte-toolbar-item.d.ts +12 -0
  426. package/dist/src/nile-rich-text-editor/nile-rte-toolbar-item.js +23 -0
  427. package/dist/src/nile-rich-text-editor/nile-rte-toolbar-item.js.map +1 -0
  428. package/dist/src/nile-rich-text-editor/nile-rte-toolbar.d.ts +10 -0
  429. package/dist/src/nile-rich-text-editor/nile-rte-toolbar.js +12 -0
  430. package/dist/src/nile-rich-text-editor/nile-rte-toolbar.js.map +1 -0
  431. package/dist/src/nile-rich-text-editor/utils.d.ts +13 -0
  432. package/dist/src/nile-rich-text-editor/utils.js +538 -0
  433. package/dist/src/nile-rich-text-editor/utils.js.map +1 -0
  434. package/dist/src/version.js +1 -1
  435. package/dist/src/version.js.map +1 -1
  436. package/dist/tsconfig.tsbuildinfo +1 -1
  437. package/package.json +9 -3
  438. package/rollup.config.js +1 -3
  439. package/src/index.ts +8 -1
  440. package/src/nile-code-editor/backup_nile-code-editor copy.ts +763 -0
  441. package/src/nile-code-editor/nile-code-editor.ts +44 -20
  442. package/src/nile-grid/index.ts +1 -0
  443. package/src/nile-grid/nile-grid.css.ts +43 -0
  444. package/src/nile-grid/nile-grid.ts +185 -0
  445. package/src/nile-grid/nile-grid.utils.ts +252 -0
  446. package/src/nile-grid-body/index.ts +1 -0
  447. package/src/nile-grid-body/nile-grid-body.css.ts +24 -0
  448. package/src/nile-grid-body/nile-grid-body.ts +51 -0
  449. package/src/nile-grid-cell-item/index.ts +1 -0
  450. package/src/nile-grid-cell-item/nile-grid-cell-item.css.ts +49 -0
  451. package/src/nile-grid-cell-item/nile-grid-cell-item.ts +98 -0
  452. package/src/nile-grid-cell-item/nile-grid-cell-item.utils.ts +65 -0
  453. package/src/nile-grid-head/index.ts +1 -0
  454. package/src/nile-grid-head/nile-grid-head.css.ts +21 -0
  455. package/src/nile-grid-head/nile-grid-head.ts +50 -0
  456. package/src/nile-grid-head-item/index.ts +1 -0
  457. package/src/nile-grid-head-item/nile-grid-head-item.css.ts +48 -0
  458. package/src/nile-grid-head-item/nile-grid-head-item.ts +111 -0
  459. package/src/nile-grid-head-item/nile-grid-head-item.utils.ts +66 -0
  460. package/src/nile-grid-row/index.ts +1 -0
  461. package/src/nile-grid-row/nile-grid-row.css.ts +29 -0
  462. package/src/nile-grid-row/nile-grid-row.ts +53 -0
  463. package/src/nile-icon/icons/svg/format_align_justify.ts +5 -0
  464. package/src/nile-icon/icons/svg/format_align_left.ts +5 -0
  465. package/src/nile-icon/icons/svg/format_align_middle.ts +5 -0
  466. package/src/nile-icon/icons/svg/format_align_right.ts +5 -0
  467. package/src/nile-icon/icons/svg/format_bold.ts +5 -0
  468. package/src/nile-icon/icons/svg/format_clear.ts +5 -0
  469. package/src/nile-icon/icons/svg/format_italic.ts +5 -0
  470. package/src/nile-icon/icons/svg/format_list_bulleted.ts +5 -0
  471. package/src/nile-icon/icons/svg/format_list_numbered.ts +5 -0
  472. package/src/nile-icon/icons/svg/format_underline.ts +5 -0
  473. package/src/nile-icon/icons/svg/image_2.ts +5 -0
  474. package/src/nile-icon/icons/svg/index.ts +12 -0
  475. package/src/nile-icon/icons/svg/link_2.ts +5 -0
  476. package/src/nile-link/nile-link.css.ts +1 -0
  477. package/src/nile-option/nile-option.ts +1 -1
  478. package/src/nile-rich-text-editor/index.ts +1 -0
  479. package/src/nile-rich-text-editor/nile-rich-text-editor.css.ts +154 -0
  480. package/src/nile-rich-text-editor/nile-rich-text-editor.ts +836 -0
  481. package/src/nile-rich-text-editor/nile-rte-color.ts +189 -0
  482. package/src/nile-rich-text-editor/nile-rte-divider.ts +9 -0
  483. package/src/nile-rich-text-editor/nile-rte-link.ts +161 -0
  484. package/src/nile-rich-text-editor/nile-rte-mentions-item.ts +46 -0
  485. package/src/nile-rich-text-editor/nile-rte-mentions.ts +618 -0
  486. package/src/nile-rich-text-editor/nile-rte-preview.ts +9 -0
  487. package/src/nile-rich-text-editor/nile-rte-select.ts +249 -0
  488. package/src/nile-rich-text-editor/nile-rte-toolbar-item.ts +13 -0
  489. package/src/nile-rich-text-editor/nile-rte-toolbar.ts +9 -0
  490. package/src/nile-rich-text-editor/utils.ts +643 -0
  491. package/vscode-html-custom-data.json +309 -7
@@ -105,7 +105,7 @@ export class NileCodeEditor extends NileElement {
105
105
 
106
106
  @property({ type: Boolean, reflect: true, attribute: true }) defaultFont: boolean = false;
107
107
 
108
- @property({ type: Boolean, reflect: true, attribute: true }) containerWidth: boolean = false;
108
+ @property({ type: Object, attribute: false }) autoCompleteStyle: { width?: string; multiline?: boolean } | undefined = undefined;
109
109
 
110
110
  public view: EditorView;
111
111
  public viewState:EditorState;
@@ -121,7 +121,7 @@ export class NileCodeEditor extends NileElement {
121
121
  private defaultSyntaxHighlightingComp = new Compartment();
122
122
  private themeComp = new Compartment();
123
123
  private autoCompletionComp = new Compartment();
124
- private containerWidthComp = new Compartment();
124
+ private autoCompleteStyleComp = new Compartment();
125
125
 
126
126
  private isSpacePressed:boolean = false;
127
127
  /**
@@ -147,8 +147,7 @@ export class NileCodeEditor extends NileElement {
147
147
  firstUpdated() {
148
148
  this.createNewView()
149
149
 
150
- // Initialize ResizeObserver to watch for container resize
151
- if (this.containerWidth) {
150
+ if (this.autoCompleteStyle?.width) {
152
151
  this.resizeObserver = new ResizeObserver(entries => {
153
152
  for (const entry of entries) {
154
153
  const width = entry.contentRect.width;
@@ -244,9 +243,8 @@ export class NileCodeEditor extends NileElement {
244
243
  ]
245
244
  })
246
245
  }
247
- if(changedProperties.has('containerWidth') && this.view){
248
- if (this.containerWidth) {
249
- // Initialize ResizeObserver if containerWidth is enabled
246
+ if(changedProperties.has('autoCompleteStyle') && this.view){
247
+ if (this.autoCompleteStyle?.width) {
250
248
  if (!this.resizeObserver) {
251
249
  this.resizeObserver = new ResizeObserver(entries => {
252
250
  for (const entry of entries) {
@@ -257,14 +255,13 @@ export class NileCodeEditor extends NileElement {
257
255
  this.resizeObserver.observe(this.codeEditor);
258
256
  }
259
257
  } else {
260
- // Disconnect ResizeObserver if containerWidth is disabled
261
258
  this.resizeObserver?.disconnect();
262
259
  this.resizeObserver = undefined;
263
260
  }
264
261
 
265
262
  this.view.dispatch({
266
263
  effects: [
267
- this.containerWidthComp.reconfigure(this.getContainerWidthExtension())
264
+ this.autoCompleteStyleComp.reconfigure(this.getAutoCompleteStyleExtension())
268
265
  ]
269
266
  })
270
267
  }
@@ -349,7 +346,7 @@ export class NileCodeEditor extends NileElement {
349
346
  const placeholderExtension = this.placeholderComp.of(this.getPlaceholderExtension())
350
347
  const customThemeExtension=this.themeComp.of(this.getCustomThemeExtension());
351
348
  const defaultSyntaxHighlightingExtension = this.defaultSyntaxHighlightingComp.of(this.getDefaultSyntaxHighlightingExtension());
352
- const containerWidthExtension = this.containerWidthComp.of(this.getContainerWidthExtension());
349
+ const autoCompleteStyleExtension = this.autoCompleteStyleComp.of(this.getAutoCompleteStyleExtension());
353
350
  const language = this.getLanguageExtension()
354
351
  const customAutoCompletions = this.customCompletionComp.of(javascriptLanguage.data.of({
355
352
  autocomplete: this.customAutocomplete
@@ -374,7 +371,7 @@ export class NileCodeEditor extends NileElement {
374
371
  ),
375
372
  language,
376
373
  customThemeExtension,
377
- containerWidthExtension,
374
+ autoCompleteStyleExtension,
378
375
  this.getTabCompletionKeymap(),
379
376
  EditorView.updateListener.of((v: ViewUpdate) => {
380
377
  if (v.docChanged) {
@@ -607,19 +604,46 @@ export class NileCodeEditor extends NileElement {
607
604
  return [EditorView.theme(customisedThemeCss)];
608
605
  }
609
606
 
610
- getContainerWidthExtension(width?: number): Extension {
611
- if (this.containerWidth) {
612
- const codeEditorWidth = width || (this.codeEditor ? this.codeEditor.getBoundingClientRect().width : 300);
613
- return [
607
+ getAutoCompleteStyleExtension(width?: number): Extension {
608
+ if (this.autoCompleteStyle?.width) {
609
+ const containerWidth = width || (this.codeEditor ? this.codeEditor.getBoundingClientRect().width : 300);
610
+ const widthPercentage = parseFloat(this.autoCompleteStyle.width.replace('%', ''));
611
+ const codeEditorWidth = (containerWidth * widthPercentage) / 100;
612
+
613
+ const multilineStyles: { [key: string]: string } = this.autoCompleteStyle.multiline ? {
614
+ overflow: "visible",
615
+ textOverflow: "unset",
616
+ whiteSpace: "normal",
617
+ wordWrap: "break-word"
618
+ } : {
619
+ overflow: "hidden",
620
+ textOverflow: "ellipsis",
621
+ whiteSpace: "nowrap"
622
+ };
623
+
624
+ return [
625
+ tooltips({
626
+ position: "fixed",
627
+ tooltipSpace: () => {
628
+ const rect = this.codeEditor.getBoundingClientRect();
629
+ return {
630
+ left: rect.left,
631
+ top: 0,
632
+ right: rect.right,
633
+ bottom: 1000
634
+ };
635
+ }
636
+ }),
614
637
  EditorView.theme({
615
638
  ".cm-tooltip.cm-tooltip-autocomplete": {
616
- maxWidth: (codeEditorWidth - 15) + "px"
639
+ maxWidth: (codeEditorWidth - 15) + "px !important"
617
640
  },
618
641
  ".cm-tooltip.cm-tooltip-autocomplete > ul > li": {
619
- overflow: "hidden",
620
- textOverflow: "ellipsis",
621
- whiteSpace: "nowrap",
642
+ ...multilineStyles,
622
643
  maxWidth: "100%"
644
+ },
645
+ ".cm-tooltip.cm-tooltip-autocomplete > ul": {
646
+ minWidth: "unset !important"
623
647
  }
624
648
  })
625
649
  ];
@@ -630,7 +654,7 @@ export class NileCodeEditor extends NileElement {
630
654
  private updateAutocompleteWidth(width: number) {
631
655
  if (this.view) {
632
656
  this.view.dispatch({
633
- effects: this.containerWidthComp.reconfigure(this.getContainerWidthExtension(width))
657
+ effects: this.autoCompleteStyleComp.reconfigure(this.getAutoCompleteStyleExtension(width))
634
658
  });
635
659
  }
636
660
  }
@@ -0,0 +1 @@
1
+ export { NileGrid } from './nile-grid';
@@ -0,0 +1,43 @@
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
+
8
+ import { css } from 'lit';
9
+
10
+ export const styles = css`
11
+ :host {
12
+ display: grid;
13
+ grid-template-rows: auto;
14
+ overflow: auto;
15
+ inline-size: 100%;
16
+ position: relative;
17
+ contain: content;
18
+ box-sizing: border-box;
19
+ border: 1px solid var(--nile-colors-neutral-400);
20
+ border-radius: var(--nile-radius-radius-xl);
21
+ max-height: 100%;
22
+ }
23
+
24
+ ::slotted(nile-grid-head),
25
+ ::slotted(nile-grid-body) {
26
+ inline-size: 100%;
27
+ display: grid;
28
+ }
29
+
30
+ .nile-resize-start,
31
+ .nile-resize-end {
32
+ position: fixed;
33
+ z-index: 2;
34
+ background-color: var(--nile-colors-neutral-400);
35
+ width: 2px;
36
+ height: 100%;
37
+ top: 0;
38
+ display: none;
39
+ bottom: 0;
40
+ }
41
+ `;
42
+
43
+ export default [styles];
@@ -0,0 +1,185 @@
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
+
8
+ import { LitElement, html, CSSResultArray, TemplateResult } from 'lit';
9
+ import { customElement, property, query, state } from 'lit/decorators.js';
10
+ import { styles } from './nile-grid.css';
11
+ import NileElement from '../internal/nile-element';
12
+ import {
13
+ resizeLinesHandler,
14
+ listenToEventListeners,
15
+ removeEventListeners,
16
+ getHead,
17
+ getBody,
18
+ rebuildTemplate,
19
+ applyTemplate,
20
+ layout,
21
+ } from './nile-grid.utils';
22
+
23
+ /**
24
+ * Nile grid component.
25
+ *
26
+ * @tag nile-grid
27
+ *
28
+ */
29
+ @customElement('nile-grid')
30
+ export class NileGrid extends NileElement {
31
+ /**
32
+ * The styles for nile-grid
33
+ * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`
34
+ */
35
+ public static get styles(): CSSResultArray {
36
+ return [styles];
37
+ }
38
+ /** User can pass custom widths for the columns */
39
+ @property({ type: Array, attribute: true }) customWidths: number[] = [];
40
+
41
+ /** To set the grid template columns in rebuildTemplate method */
42
+ @state() public colTemplate = '';
43
+
44
+ /** To store the column widths in the beginning and after resizing */
45
+ @state() private columnWidths: number[] = [...this.customWidths];
46
+
47
+ /** To get the slot element */
48
+ @query('slot') private slotEl!: HTMLSlotElement;
49
+
50
+ /** To get the first resize line to show the resize handle */
51
+ @query('.nile-resize-start') resizeStart: HTMLElement;
52
+
53
+ /** To get the last resize line to show the resize handle */
54
+ @query('.nile-resize-end') resizeEnd: HTMLElement;
55
+
56
+ /** To store the mutation observer */
57
+ private mo?: MutationObserver;
58
+
59
+ /** To store the request animation frame */
60
+ private raf = 0;
61
+
62
+ private scheduleLayout() {
63
+ if (this.raf) cancelAnimationFrame(this.raf);
64
+ this.raf = requestAnimationFrame(() => {
65
+ this.raf = 0;
66
+ layout(
67
+ this,
68
+ this.slotEl,
69
+ this.ensureWidths.bind(this),
70
+ rebuildTemplate,
71
+ applyTemplate,
72
+ this.columnWidths
73
+ );
74
+ });
75
+ }
76
+
77
+ private ensureWidths(colCount: number) {
78
+ if (this.columnWidths.length !== colCount) {
79
+ this.columnWidths = Array(colCount).fill('');
80
+ }
81
+ }
82
+
83
+ private onResize = (e: Event) => {
84
+ const { col, widthPx } = (e as CustomEvent).detail as {
85
+ col: number;
86
+ widthPx: number;
87
+ };
88
+ let w: any;
89
+ const floor = 60;
90
+
91
+ if (
92
+ (e.target as HTMLElement).getAttribute('colspan') &&
93
+ parseInt((e.target as HTMLElement).getAttribute('colspan')!) > 1
94
+ ) {
95
+ w = Math.max(floor, Math.round(widthPx - this.columnWidths[col - 1]));
96
+ } else {
97
+ w = Math.max(floor, Math.round(widthPx));
98
+ }
99
+ this.columnWidths[col] = w;
100
+ resizeLinesHandler(
101
+ this.resizeStart,
102
+ this.resizeEnd,
103
+ col,
104
+ widthPx,
105
+ this.scrollHeight,
106
+ this.columnWidths,
107
+ e
108
+ );
109
+ this.colTemplate = rebuildTemplate(
110
+ this.columnWidths.length,
111
+ this.columnWidths
112
+ );
113
+ applyTemplate(getHead(this.slotEl), getBody(this.slotEl), this.colTemplate);
114
+ };
115
+
116
+ protected firstUpdated() {
117
+ this.setAttribute('role', 'table');
118
+ listenToEventListeners(
119
+ this,
120
+ this.onResize,
121
+ this.slotEl,
122
+ this._attachObserverAndLayout.bind(this)
123
+ );
124
+ }
125
+
126
+ private _attachObserverAndLayout() {
127
+ this.mo?.disconnect();
128
+ this.mo = new MutationObserver(() => {
129
+ this.scheduleLayout();
130
+ });
131
+
132
+ const head = getHead(this.slotEl);
133
+ const body = getBody(this.slotEl);
134
+ if (!head && !body) return;
135
+
136
+ const target = body ?? this;
137
+ this.mo.observe(target, {
138
+ subtree: true,
139
+ childList: true,
140
+ attributes: true,
141
+ attributeFilter: ['colspan', 'rowspan'],
142
+ });
143
+ layout(
144
+ this,
145
+ this.slotEl,
146
+ this.ensureWidths.bind(this),
147
+ rebuildTemplate,
148
+ applyTemplate,
149
+ this.columnWidths
150
+ );
151
+ }
152
+
153
+ public render(): TemplateResult {
154
+ return html`
155
+ <div>
156
+ <slot></slot>
157
+ <div class="nile-resize-start"></div>
158
+ <div class="nile-resize-end"></div>
159
+ </div>
160
+ `;
161
+ }
162
+
163
+ disconnectedCallback(): void {
164
+ super.disconnectedCallback?.();
165
+ this.mo?.disconnect();
166
+
167
+ if (this.raf) cancelAnimationFrame(this.raf);
168
+ removeEventListeners(
169
+ this,
170
+ this.onResize,
171
+ this.slotEl,
172
+ this._attachObserverAndLayout.bind(this)
173
+ );
174
+ }
175
+
176
+ /* #endregion */
177
+ }
178
+
179
+ export default NileGrid;
180
+
181
+ declare global {
182
+ interface HTMLElementTagNameMap {
183
+ 'nile-grid': NileGrid;
184
+ }
185
+ }
@@ -0,0 +1,252 @@
1
+ import { NileGrid } from './nile-grid';
2
+
3
+ export const resizeLinesHandler = (
4
+ resizeStart: any,
5
+ resizeEnd: any,
6
+ col: number,
7
+ widthPx: number,
8
+ scrollHeight: any,
9
+ columnWidths: any,
10
+ e: any
11
+ ) => {
12
+ resizeStart.style.display = 'block';
13
+ resizeEnd.style.display = 'block';
14
+ resizeStart.style.height = scrollHeight + 'px';
15
+ resizeEnd.style.height = scrollHeight + 'px';
16
+ if (col === 0) {
17
+ resizeStart.style.left = `${Math.max(60, widthPx) - 6}px`;
18
+ resizeEnd.style.left = `${Math.max(60, widthPx) - 2}px`;
19
+ } else {
20
+ let totalWidth = 0;
21
+ if (
22
+ (e.target as HTMLElement).getAttribute('colspan') &&
23
+ parseInt((e.target as HTMLElement).getAttribute('colspan')!) > 1
24
+ ) {
25
+ widthPx = widthPx - columnWidths[col - 1];
26
+ for (let i = 0; i < col; i++) {
27
+ totalWidth += columnWidths[i];
28
+ }
29
+ } else {
30
+ for (let i = 0; i < col; i++) {
31
+ totalWidth += columnWidths[i];
32
+ }
33
+ }
34
+ resizeStart.style.left = `${totalWidth + Math.max(60, widthPx) - 6}px`;
35
+ resizeEnd.style.left = `${totalWidth + Math.max(60, widthPx) - 2}px`;
36
+ }
37
+ };
38
+
39
+ export const listenToEventListeners = (
40
+ nileGrid: NileGrid,
41
+ onResize: any,
42
+ slotEl: any,
43
+ _attachObserverAndLayout: any
44
+ ) => {
45
+ nileGrid.addEventListener('nile-resize', onResize);
46
+ nileGrid.addEventListener('nile-resize-start', () => {
47
+ nileGrid.resizeStart.style.display = 'block';
48
+ });
49
+ nileGrid.addEventListener('nile-resize-end', () => {
50
+ nileGrid.resizeStart.style.display = 'none';
51
+ nileGrid.resizeEnd.style.display = 'none';
52
+ });
53
+ slotEl.addEventListener('slotchange', () => _attachObserverAndLayout());
54
+ };
55
+
56
+ export const removeEventListeners = (
57
+ nileGrid: NileGrid,
58
+ onResize: any,
59
+ slotEl: any,
60
+ _attachObserverAndLayout: any
61
+ ) => {
62
+ nileGrid.removeEventListener('nile-resize', onResize);
63
+ nileGrid.removeEventListener('nile-resize-start', () => {
64
+ nileGrid.resizeStart.style.display = 'block';
65
+ });
66
+ nileGrid.removeEventListener('nile-resize-end', () => {
67
+ nileGrid.resizeStart.style.display = 'none';
68
+ nileGrid.resizeEnd.style.display = 'none';
69
+ });
70
+ slotEl.removeEventListener('slotchange', () => _attachObserverAndLayout());
71
+ };
72
+
73
+ export const getHead = (slotEl: any) => {
74
+ const nodes = slotEl?.assignedElements() ?? [];
75
+ return (
76
+ (nodes.find(
77
+ (n: any) => n.tagName.toLowerCase() === 'nile-grid-head'
78
+ ) as HTMLElement) || null
79
+ );
80
+ };
81
+
82
+ export const getBody = (slotEl: any) => {
83
+ const nodes = slotEl?.assignedElements() ?? [];
84
+ return (
85
+ (nodes.find(
86
+ (n: any) => n.tagName.toLowerCase() === 'nile-grid-body'
87
+ ) as HTMLElement) || null
88
+ );
89
+ };
90
+
91
+ export const rebuildTemplate = (
92
+ colCount: number,
93
+ columnWidths: number[]
94
+ ): string => {
95
+ const parts: string[] = [];
96
+
97
+ for (let i = 0; i < colCount; i++) {
98
+ const explicit = columnWidths[i];
99
+ if (i === colCount - 1) {
100
+ parts.push(`minmax(${explicit}px, auto)`);
101
+ } else {
102
+ parts.push(`${explicit}px`);
103
+ }
104
+ }
105
+ return parts.join(' ');
106
+ };
107
+
108
+ export const applyTemplate = (
109
+ head: HTMLElement | null,
110
+ body: HTMLElement | null,
111
+ colTemplate: string
112
+ ) => {
113
+ if (head) head.style.gridTemplateColumns = colTemplate;
114
+ if (body) {
115
+ body.style.gridTemplateColumns = colTemplate;
116
+ body.style.overflowX = 'auto';
117
+ }
118
+ };
119
+
120
+ function computeHeadLayout(
121
+ headRows: HTMLElement[],
122
+ carryHead: number[],
123
+ colCount: number
124
+ ): number {
125
+ headRows.forEach((row, rIdx) => {
126
+ let c = 1;
127
+ const cells = Array.from(
128
+ row.querySelectorAll('nile-grid-head-item, nile-grid-cell')
129
+ ) as HTMLElement[];
130
+ const rStart = rIdx + 1;
131
+
132
+ cells.forEach(cell => {
133
+ while (carryHead[c - 1] > 0) c++;
134
+ const colspan = Math.max(1, Number(cell.getAttribute('colspan')) || 1);
135
+ const rowspan = Math.max(1, Number(cell.getAttribute('rowspan')) || 1);
136
+
137
+ const cStart = c,
138
+ cEnd = c + colspan;
139
+ const rEnd = rStart + rowspan;
140
+
141
+ cell.style.gridColumn = `${cStart} / ${cEnd}`;
142
+ cell.style.gridRow = `${rStart} / ${rEnd}`;
143
+ (cell as any).dataset.cStart = String(cStart);
144
+
145
+ for (let k = 0; k < colspan; k++) {
146
+ const idx = c - 1 + k;
147
+ carryHead[idx] = Math.max(carryHead[idx] || 0, rowspan);
148
+ }
149
+ c = cEnd;
150
+ colCount = Math.max(colCount, cEnd - 1);
151
+ });
152
+
153
+ for (let i = 0; i < carryHead.length; i++)
154
+ if (carryHead[i] > 0) carryHead[i]--;
155
+ });
156
+ return colCount;
157
+ }
158
+
159
+ function computeBodyLayout(
160
+ bodyRows: HTMLElement[],
161
+ carryBody: number[],
162
+ colCount: number
163
+ ) {
164
+ bodyRows.forEach((row, rIdx) => {
165
+ let c = 1;
166
+ const cells = Array.from(
167
+ row.querySelectorAll('nile-grid-cell, nile-grid-header')
168
+ ) as HTMLElement[];
169
+ const rStart = rIdx + 1;
170
+ let maxRowspan = 1;
171
+
172
+ const bg = row.shadowRoot?.querySelector<HTMLElement>('[data-row-bg]');
173
+ if (bg) bg.style.gridColumn = `1 / -1`;
174
+
175
+ cells.forEach(cell => {
176
+ while (carryBody[c - 1] > 0) c++;
177
+ const colspan = Math.max(1, Number(cell.getAttribute('colspan')) || 1);
178
+ const rowspan = Math.max(1, Number(cell.getAttribute('rowspan')) || 1);
179
+
180
+ const cStart = c,
181
+ cEnd = c + colspan;
182
+ const rEnd = rStart + rowspan;
183
+
184
+ cell.style.gridColumn = `${cStart} / ${cEnd}`;
185
+ cell.style.gridRow = `${rStart} / ${rEnd}`;
186
+ (cell as any).dataset.cStart = String(cStart);
187
+
188
+ for (let k = 0; k < colspan; k++) {
189
+ const idx = c - 1 + k;
190
+ carryBody[idx] = Math.max(carryBody[idx] || 0, rowspan);
191
+ }
192
+ maxRowspan = Math.max(maxRowspan, rowspan);
193
+ c = cEnd;
194
+ colCount = Math.max(colCount, cEnd - 1);
195
+ });
196
+
197
+ if (bg) {
198
+ const rEnd = rStart + maxRowspan;
199
+ bg.style.gridRow = `${rStart} / ${rEnd}`;
200
+ }
201
+
202
+ for (let i = 0; i < carryBody.length; i++)
203
+ if (carryBody[i] > 0) carryBody[i]--;
204
+ });
205
+
206
+ return colCount;
207
+ }
208
+
209
+ function computeColumnWidths(
210
+ nileGrid: NileGrid,
211
+ colCount: number,
212
+ columnWidths: number[]
213
+ ) {
214
+ for (let col = 0; col < colCount; col++) {
215
+ const containerWidth = (nileGrid.getBoundingClientRect().width || 1) - 2;
216
+ columnWidths[col] =
217
+ nileGrid.customWidths[col] || containerWidth / Math.max(colCount, 1);
218
+ }
219
+ }
220
+
221
+ export const layout = (
222
+ nileGrid: NileGrid,
223
+ slotEl: any,
224
+ ensureWidths: any,
225
+ rebuildTemplate: any,
226
+ applyTemplate: any,
227
+ columnWidths: any
228
+ ) => {
229
+ const head = getHead(slotEl);
230
+ const body = getBody(slotEl);
231
+ if (!body) return;
232
+
233
+ const headRows = head
234
+ ? (Array.from(head.querySelectorAll('nile-grid-row')) as HTMLElement[])
235
+ : [];
236
+ const bodyRows = Array.from(
237
+ body.querySelectorAll('nile-grid-row')
238
+ ) as HTMLElement[];
239
+
240
+ let colCount = 0;
241
+
242
+ colCount = computeHeadLayout(headRows, [], colCount);
243
+ colCount = computeBodyLayout(bodyRows, [], colCount);
244
+
245
+ computeColumnWidths(nileGrid, colCount, columnWidths);
246
+
247
+ ensureWidths(colCount);
248
+ body.style.gridAutoRows = 'auto';
249
+ body.style.overflowY = 'auto';
250
+ nileGrid.colTemplate = rebuildTemplate(colCount, columnWidths);
251
+ applyTemplate(head, body, nileGrid.colTemplate, nileGrid.colTemplate);
252
+ };
@@ -0,0 +1 @@
1
+ export { NileGridBody } from './nile-grid-body';
@@ -0,0 +1,24 @@
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
+
8
+ import { css } from 'lit';
9
+
10
+ /**
11
+ * GridBody CSS
12
+ */
13
+ export const styles = css`
14
+ :host {
15
+ display: grid;
16
+ overflow-y: auto;
17
+ overflow-x: visible;
18
+ box-sizing: border-box;
19
+ background-color: var(--nile-colors-white-base);
20
+ height: 100%;
21
+ }
22
+ `;
23
+
24
+ export default [styles];
@@ -0,0 +1,51 @@
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
+
8
+ import { LitElement, html, CSSResultArray, TemplateResult } from 'lit';
9
+ import { customElement } from 'lit/decorators.js';
10
+ import { styles } from './nile-grid-body.css';
11
+ import NileElement from '../internal/nile-element';
12
+
13
+ /**
14
+ * Nile grid-body component.
15
+ *
16
+ * @tag nile-grid-body
17
+ *
18
+ */
19
+ @customElement('nile-grid-body')
20
+ export class NileGridBody extends NileElement {
21
+ /**
22
+ * The styles for nile-grid-body
23
+ * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`
24
+ */
25
+ public static get styles(): CSSResultArray {
26
+ return [styles];
27
+ }
28
+
29
+ connectedCallback() {
30
+ super.connectedCallback();
31
+ this.setAttribute('role', 'rowgroup');
32
+ }
33
+
34
+ public render(): TemplateResult {
35
+ return html`
36
+ <div style="display: contents;">
37
+ <slot></slot>
38
+ </div>
39
+ `;
40
+ }
41
+
42
+ /* #endregion */
43
+ }
44
+
45
+ export default NileGridBody;
46
+
47
+ declare global {
48
+ interface HTMLElementTagNameMap {
49
+ 'nile-grid-body': NileGridBody;
50
+ }
51
+ }
@@ -0,0 +1 @@
1
+ export { NileGridCellItem } from './nile-grid-cell-item';