@aquera/nile-elements 0.0.120 → 0.0.122

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 (524) hide show
  1. package/README.md +10 -0
  2. package/dist/abap-511af2a5.cjs.js +2 -0
  3. package/dist/abap-511af2a5.cjs.js.map +1 -0
  4. package/dist/abap-f2ab40d0.esm.js +1 -0
  5. package/dist/{angular-ts-32bbcd01.cjs.js → angular-ts-a70761c6.cjs.js} +2 -2
  6. package/dist/{angular-ts-32bbcd01.cjs.js.map → angular-ts-a70761c6.cjs.js.map} +1 -1
  7. package/dist/cairo-014ad724.cjs.js +2 -0
  8. package/dist/cairo-014ad724.cjs.js.map +1 -0
  9. package/dist/cairo-9be40999.esm.js +1 -0
  10. package/dist/catppuccin-frappe-52a52bb1.cjs.js +2 -0
  11. package/dist/catppuccin-frappe-52a52bb1.cjs.js.map +1 -0
  12. package/dist/catppuccin-frappe-dbc3161e.esm.js +1 -0
  13. package/dist/catppuccin-latte-d8a0f6a8.cjs.js +2 -0
  14. package/dist/catppuccin-latte-d8a0f6a8.cjs.js.map +1 -0
  15. package/dist/catppuccin-latte-e7591143.esm.js +1 -0
  16. package/dist/catppuccin-macchiato-19a7795e.cjs.js +2 -0
  17. package/dist/catppuccin-macchiato-19a7795e.cjs.js.map +1 -0
  18. package/dist/catppuccin-macchiato-283b424a.esm.js +1 -0
  19. package/dist/catppuccin-mocha-165e830c.esm.js +1 -0
  20. package/dist/catppuccin-mocha-9f9ec5f6.cjs.js +2 -0
  21. package/dist/catppuccin-mocha-9f9ec5f6.cjs.js.map +1 -0
  22. package/dist/cobol-8517cfc1.esm.js +1 -0
  23. package/dist/cobol-922d57ed.cjs.js +2 -0
  24. package/dist/cobol-922d57ed.cjs.js.map +1 -0
  25. package/dist/{cpp-c2442fe2.cjs.js → cpp-8812199e.cjs.js} +2 -2
  26. package/dist/{cpp-c2442fe2.cjs.js.map → cpp-8812199e.cjs.js.map} +1 -1
  27. package/dist/{crystal-1913e34d.cjs.js → crystal-5458e62a.cjs.js} +2 -2
  28. package/dist/{crystal-1913e34d.cjs.js.map → crystal-5458e62a.cjs.js.map} +1 -1
  29. package/dist/{edge-ef9e682b.cjs.js → edge-cb04b11b.cjs.js} +2 -2
  30. package/dist/{edge-ef9e682b.cjs.js.map → edge-cb04b11b.cjs.js.map} +1 -1
  31. package/dist/{elm-7fd07d47.cjs.js → elm-53a0b5b4.cjs.js} +2 -2
  32. package/dist/{elm-7fd07d47.cjs.js.map → elm-53a0b5b4.cjs.js.map} +1 -1
  33. package/dist/{erb-c813c1f2.cjs.js → erb-1bc4721c.cjs.js} +2 -2
  34. package/dist/{erb-c813c1f2.cjs.js.map → erb-1bc4721c.cjs.js.map} +1 -1
  35. package/dist/{fortran-fixed-form-c39bf051.cjs.js → fortran-fixed-form-00a9d08f.cjs.js} +2 -2
  36. package/dist/{fortran-fixed-form-c39bf051.cjs.js.map → fortran-fixed-form-00a9d08f.cjs.js.map} +1 -1
  37. package/dist/{fsharp-ba007c9c.cjs.js → fsharp-661f4f18.cjs.js} +2 -2
  38. package/dist/{fsharp-ba007c9c.cjs.js.map → fsharp-661f4f18.cjs.js.map} +1 -1
  39. package/dist/{gdresource-f3068367.cjs.js → gdresource-8fb6a6ad.cjs.js} +2 -2
  40. package/dist/{gdresource-f3068367.cjs.js.map → gdresource-8fb6a6ad.cjs.js.map} +1 -1
  41. package/dist/{git-commit-372b638c.cjs.js → git-commit-9373b48b.cjs.js} +2 -2
  42. package/dist/{git-commit-372b638c.cjs.js.map → git-commit-9373b48b.cjs.js.map} +1 -1
  43. package/dist/{git-rebase-2cc6f2a3.cjs.js → git-rebase-c3fa2bb9.cjs.js} +2 -2
  44. package/dist/{git-rebase-2cc6f2a3.cjs.js.map → git-rebase-c3fa2bb9.cjs.js.map} +1 -1
  45. package/dist/go-85139440.esm.js +1 -0
  46. package/dist/go-d5ed1b82.cjs.js +2 -0
  47. package/dist/go-d5ed1b82.cjs.js.map +1 -0
  48. package/dist/{graphql-74f146e1.cjs.js → graphql-1541cb3c.cjs.js} +2 -2
  49. package/dist/{graphql-74f146e1.cjs.js.map → graphql-1541cb3c.cjs.js.map} +1 -1
  50. package/dist/{handlebars-864fcb12.cjs.js → handlebars-39ab86cd.cjs.js} +2 -2
  51. package/dist/{handlebars-864fcb12.cjs.js.map → handlebars-39ab86cd.cjs.js.map} +1 -1
  52. package/dist/{http-08501497.cjs.js → http-1cf9a3de.cjs.js} +2 -2
  53. package/dist/{http-08501497.cjs.js.map → http-1cf9a3de.cjs.js.map} +1 -1
  54. package/dist/{hxml-bbac80e4.cjs.js → hxml-6d54d760.cjs.js} +2 -2
  55. package/dist/{hxml-bbac80e4.cjs.js.map → hxml-6d54d760.cjs.js.map} +1 -1
  56. package/dist/hy-33aa9c6f.cjs.js +2 -0
  57. package/dist/hy-33aa9c6f.cjs.js.map +1 -0
  58. package/dist/hy-a7a6e9c3.esm.js +1 -0
  59. package/dist/{julia-689ac552.cjs.js → julia-0152d8b9.cjs.js} +2 -2
  60. package/dist/{julia-689ac552.cjs.js.map → julia-0152d8b9.cjs.js.map} +1 -1
  61. package/dist/{latex-4d76e817.cjs.js → latex-33ebd2ce.cjs.js} +2 -2
  62. package/dist/{latex-4d76e817.cjs.js.map → latex-33ebd2ce.cjs.js.map} +1 -1
  63. package/dist/luau-19444703.cjs.js +2 -0
  64. package/dist/luau-19444703.cjs.js.map +1 -0
  65. package/dist/luau-b564b070.esm.js +1 -0
  66. package/dist/{marko-2880d4ee.cjs.js → marko-23ca6223.cjs.js} +2 -2
  67. package/dist/{marko-2880d4ee.cjs.js.map → marko-23ca6223.cjs.js.map} +1 -1
  68. package/dist/mdc-05d87356.esm.js +1 -0
  69. package/dist/mdc-56aefda2.cjs.js +2 -0
  70. package/dist/mdc-56aefda2.cjs.js.map +1 -0
  71. package/dist/{mdx-a859ee84.cjs.js → mdx-01dab0d1.cjs.js} +2 -2
  72. package/dist/{mdx-a859ee84.cjs.js.map → mdx-01dab0d1.cjs.js.map} +1 -1
  73. package/dist/{mdx-bf2a8fe9.esm.js → mdx-0782bcd8.esm.js} +1 -1
  74. package/dist/nextflow-11e4899f.esm.js +1 -0
  75. package/dist/nextflow-2a4bf0cc.cjs.js +2 -0
  76. package/dist/nextflow-2a4bf0cc.cjs.js.map +1 -0
  77. package/dist/{nginx-7bc0fc82.cjs.js → nginx-1aabec59.cjs.js} +2 -2
  78. package/dist/{nginx-7bc0fc82.cjs.js.map → nginx-1aabec59.cjs.js.map} +1 -1
  79. package/dist/nile-accordion/nile-accordion.cjs.js +1 -1
  80. package/dist/nile-accordion/nile-accordion.cjs.js.map +1 -1
  81. package/dist/nile-accordion/nile-accordion.esm.js +1 -1
  82. package/dist/nile-auto-complete/nile-auto-complete.cjs.js +1 -1
  83. package/dist/nile-auto-complete/nile-auto-complete.cjs.js.map +1 -1
  84. package/dist/nile-auto-complete/nile-auto-complete.esm.js +6 -15
  85. package/dist/nile-avatar/nile-avatar.cjs.js +1 -1
  86. package/dist/nile-avatar/nile-avatar.cjs.js.map +1 -1
  87. package/dist/nile-avatar/nile-avatar.esm.js +1 -1
  88. package/dist/nile-badge/nile-badge.cjs.js +1 -1
  89. package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
  90. package/dist/nile-badge/nile-badge.esm.js +1 -1
  91. package/dist/nile-breadcrumb/nile-breadcrumb.cjs.js +1 -1
  92. package/dist/nile-breadcrumb/nile-breadcrumb.cjs.js.map +1 -1
  93. package/dist/nile-breadcrumb/nile-breadcrumb.esm.js +1 -1
  94. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.cjs.js +1 -1
  95. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.cjs.js.map +1 -1
  96. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.esm.js +2 -2
  97. package/dist/nile-button/nile-button.cjs.js +1 -1
  98. package/dist/nile-button/nile-button.cjs.js.map +1 -1
  99. package/dist/nile-button/nile-button.css.cjs.js +1 -1
  100. package/dist/nile-button/nile-button.css.cjs.js.map +1 -1
  101. package/dist/nile-button/nile-button.css.esm.js +24 -28
  102. package/dist/nile-button/nile-button.esm.js +1 -1
  103. package/dist/nile-button-toggle/nile-button-toggle.cjs.js +1 -1
  104. package/dist/nile-button-toggle/nile-button-toggle.cjs.js.map +1 -1
  105. package/dist/nile-button-toggle/nile-button-toggle.esm.js +1 -1
  106. package/dist/nile-button-toggle-group/nile-button-toggle-group.cjs.js +1 -1
  107. package/dist/nile-button-toggle-group/nile-button-toggle-group.cjs.js.map +1 -1
  108. package/dist/nile-button-toggle-group/nile-button-toggle-group.esm.js +1 -1
  109. package/dist/nile-calendar/nile-calendar.cjs.js +1 -1
  110. package/dist/nile-calendar/nile-calendar.cjs.js.map +1 -1
  111. package/dist/nile-calendar/nile-calendar.esm.js +4 -4
  112. package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
  113. package/dist/nile-calendar/nile-calendar.test.cjs.js.map +1 -1
  114. package/dist/nile-calendar/nile-calendar.test.esm.js +9 -5
  115. package/dist/nile-card/nile-card.cjs.js +1 -1
  116. package/dist/nile-card/nile-card.cjs.js.map +1 -1
  117. package/dist/nile-card/nile-card.esm.js +1 -1
  118. package/dist/nile-checkbox/nile-checkbox.cjs.js +1 -1
  119. package/dist/nile-checkbox/nile-checkbox.cjs.js.map +1 -1
  120. package/dist/nile-checkbox/nile-checkbox.esm.js +1 -1
  121. package/dist/nile-chip/nile-chip.cjs.js +1 -1
  122. package/dist/nile-chip/nile-chip.cjs.js.map +1 -1
  123. package/dist/nile-chip/nile-chip.esm.js +2 -6
  124. package/dist/nile-code-editor/nile-code-editor.cjs.js +1 -1
  125. package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
  126. package/dist/nile-code-editor/nile-code-editor.esm.js +1 -1
  127. package/dist/nile-content-editor/nile-content-editor.cjs.js +1 -1
  128. package/dist/nile-content-editor/nile-content-editor.cjs.js.map +1 -1
  129. package/dist/nile-content-editor/nile-content-editor.esm.js +5 -5
  130. package/dist/nile-date-picker/nile-date-picker.cjs.js +1 -1
  131. package/dist/nile-date-picker/nile-date-picker.cjs.js.map +1 -1
  132. package/dist/nile-date-picker/nile-date-picker.esm.js +8 -15
  133. package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
  134. package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
  135. package/dist/nile-dialog/nile-dialog.esm.js +1 -1
  136. package/dist/nile-drawer/nile-drawer.cjs.js +1 -1
  137. package/dist/nile-drawer/nile-drawer.cjs.js.map +1 -1
  138. package/dist/nile-drawer/nile-drawer.esm.js +1 -1
  139. package/dist/nile-empty-state/nile-empty-state.cjs.js +1 -1
  140. package/dist/nile-empty-state/nile-empty-state.cjs.js.map +1 -1
  141. package/dist/nile-empty-state/nile-empty-state.esm.js +1 -1
  142. package/dist/nile-form-help-text/nile-form-help-text.cjs.js +1 -1
  143. package/dist/nile-form-help-text/nile-form-help-text.cjs.js.map +1 -1
  144. package/dist/nile-form-help-text/nile-form-help-text.esm.js +5 -4
  145. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +2 -0
  146. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js.map +1 -0
  147. package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +1 -0
  148. package/dist/nile-highlighter/nile-highlighter.cjs.js +1 -1
  149. package/dist/nile-highlighter/nile-highlighter.cjs.js.map +1 -1
  150. package/dist/nile-highlighter/nile-highlighter.esm.js +1 -1
  151. package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
  152. package/dist/nile-icon-button/nile-icon-button.cjs.js.map +1 -1
  153. package/dist/nile-icon-button/nile-icon-button.esm.js +1 -1
  154. package/dist/nile-input/nile-input.cjs.js +1 -1
  155. package/dist/nile-input/nile-input.cjs.js.map +1 -1
  156. package/dist/nile-input/nile-input.esm.js +1 -1
  157. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  158. package/dist/nile-input/nile-input.test.cjs.js.map +1 -1
  159. package/dist/nile-input/nile-input.test.esm.js +1 -1
  160. package/dist/nile-link/nile-link.cjs.js +1 -1
  161. package/dist/nile-link/nile-link.cjs.js.map +1 -1
  162. package/dist/nile-link/nile-link.esm.js +1 -1
  163. package/dist/nile-list/nile-list.cjs.js +1 -1
  164. package/dist/nile-list/nile-list.cjs.js.map +1 -1
  165. package/dist/nile-list/nile-list.esm.js +1 -1
  166. package/dist/nile-list-item/nile-list-item.cjs.js +1 -1
  167. package/dist/nile-list-item/nile-list-item.cjs.js.map +1 -1
  168. package/dist/nile-list-item/nile-list-item.esm.js +1 -1
  169. package/dist/nile-loader/nile-loader.test.cjs.js +1 -1
  170. package/dist/nile-loader/nile-loader.test.cjs.js.map +1 -1
  171. package/dist/nile-loader/nile-loader.test.esm.js +1 -1
  172. package/dist/nile-menu/nile-menu.cjs.js +1 -1
  173. package/dist/nile-menu/nile-menu.cjs.js.map +1 -1
  174. package/dist/nile-menu/nile-menu.esm.js +2 -5
  175. package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
  176. package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
  177. package/dist/nile-menu-item/nile-menu-item.esm.js +1 -1
  178. package/dist/nile-option/nile-option.cjs.js +1 -1
  179. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  180. package/dist/nile-option/nile-option.esm.js +1 -1
  181. package/dist/nile-popover/nile-popover.cjs.js +1 -1
  182. package/dist/nile-popover/nile-popover.cjs.js.map +1 -1
  183. package/dist/nile-popover/nile-popover.esm.js +4 -4
  184. package/dist/nile-popup/nile-popup.cjs.js +1 -1
  185. package/dist/nile-popup/nile-popup.cjs.js.map +1 -1
  186. package/dist/nile-popup/nile-popup.esm.js +1 -1
  187. package/dist/nile-radio-group/nile-radio-group.cjs.js +1 -1
  188. package/dist/nile-radio-group/nile-radio-group.cjs.js.map +1 -1
  189. package/dist/nile-radio-group/nile-radio-group.esm.js +1 -1
  190. package/dist/nile-select/nile-select.cjs.js +1 -1
  191. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  192. package/dist/nile-select/nile-select.esm.js +4 -6
  193. package/dist/nile-slide-toggle/nile-slide-toggle.cjs.js +1 -1
  194. package/dist/nile-slide-toggle/nile-slide-toggle.cjs.js.map +1 -1
  195. package/dist/nile-slide-toggle/nile-slide-toggle.esm.js +1 -1
  196. package/dist/nile-split-panel/nile-split-panel.cjs.js +1 -1
  197. package/dist/nile-split-panel/nile-split-panel.cjs.js.map +1 -1
  198. package/dist/nile-split-panel/nile-split-panel.esm.js +1 -1
  199. package/dist/nile-stepper/nile-stepper.cjs.js +1 -1
  200. package/dist/nile-stepper/nile-stepper.cjs.js.map +1 -1
  201. package/dist/nile-stepper/nile-stepper.esm.js +1 -1
  202. package/dist/nile-tab/nile-tab.cjs.js +1 -1
  203. package/dist/nile-tab/nile-tab.cjs.js.map +1 -1
  204. package/dist/nile-tab/nile-tab.esm.js +1 -1
  205. package/dist/nile-tab-group/nile-tab-group.cjs.js +1 -1
  206. package/dist/nile-tab-group/nile-tab-group.cjs.js.map +1 -1
  207. package/dist/nile-tab-group/nile-tab-group.esm.js +4 -4
  208. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
  209. package/dist/nile-tab-group/nile-tab-group.test.cjs.js.map +1 -1
  210. package/dist/nile-tab-group/nile-tab-group.test.esm.js +13 -5
  211. package/dist/nile-table-body/nile-table-body.cjs.js +1 -1
  212. package/dist/nile-table-body/nile-table-body.cjs.js.map +1 -1
  213. package/dist/nile-table-body/nile-table-body.esm.js +1 -1
  214. package/dist/nile-tag/nile-tag.cjs.js +1 -1
  215. package/dist/nile-tag/nile-tag.cjs.js.map +1 -1
  216. package/dist/nile-tag/nile-tag.esm.js +1 -1
  217. package/dist/nile-textarea/nile-textarea.cjs.js +1 -1
  218. package/dist/nile-textarea/nile-textarea.cjs.js.map +1 -1
  219. package/dist/nile-textarea/nile-textarea.esm.js +1 -1
  220. package/dist/nile-toast/nile-toast.cjs.js +1 -1
  221. package/dist/nile-toast/nile-toast.cjs.js.map +1 -1
  222. package/dist/nile-toast/nile-toast.esm.js +1 -1
  223. package/dist/nile-tooltip/nile-tooltip.cjs.js +1 -1
  224. package/dist/nile-tooltip/nile-tooltip.cjs.js.map +1 -1
  225. package/dist/nile-tooltip/nile-tooltip.esm.js +1 -1
  226. package/dist/nile-tree/nile-tree.cjs.js +1 -1
  227. package/dist/nile-tree/nile-tree.cjs.js.map +1 -1
  228. package/dist/nile-tree/nile-tree.esm.js +1 -1
  229. package/dist/{nim-1cf0460c.cjs.js → nim-55b3acf7.cjs.js} +2 -2
  230. package/dist/{nim-1cf0460c.cjs.js.map → nim-55b3acf7.cjs.js.map} +1 -1
  231. package/dist/one-dark-pro-3bcc58f7.cjs.js +2 -0
  232. package/dist/one-dark-pro-3bcc58f7.cjs.js.map +1 -0
  233. package/dist/one-dark-pro-4fce25f8.esm.js +1 -0
  234. package/dist/{razor-0acc551a.cjs.js → razor-57f13c4a.cjs.js} +2 -2
  235. package/dist/{razor-0acc551a.cjs.js.map → razor-57f13c4a.cjs.js.map} +1 -1
  236. package/dist/{rst-6b792481.cjs.js → rst-4226018b.cjs.js} +2 -2
  237. package/dist/{rst-6b792481.cjs.js.map → rst-4226018b.cjs.js.map} +1 -1
  238. package/dist/{ruby-578b1ee6.cjs.js → ruby-4306ddd1.cjs.js} +2 -2
  239. package/dist/{ruby-578b1ee6.cjs.js.map → ruby-4306ddd1.cjs.js.map} +1 -1
  240. package/dist/{shaderlab-606f022b.cjs.js → shaderlab-2234cd06.cjs.js} +2 -2
  241. package/dist/{shaderlab-606f022b.cjs.js.map → shaderlab-2234cd06.cjs.js.map} +1 -1
  242. package/dist/{shellsession-cb0df007.cjs.js → shellsession-cd95727e.cjs.js} +2 -2
  243. package/dist/{shellsession-cb0df007.cjs.js.map → shellsession-cd95727e.cjs.js.map} +1 -1
  244. package/dist/{sparql-589e0308.cjs.js → sparql-197a828d.cjs.js} +2 -2
  245. package/dist/{sparql-589e0308.cjs.js.map → sparql-197a828d.cjs.js.map} +1 -1
  246. package/dist/src/nile-accordion/nile-accordion.d.ts +0 -1
  247. package/dist/src/nile-accordion/nile-accordion.js +0 -1
  248. package/dist/src/nile-accordion/nile-accordion.js.map +1 -1
  249. package/dist/src/nile-auto-complete/nile-auto-complete.d.ts +0 -1
  250. package/dist/src/nile-auto-complete/nile-auto-complete.js +2 -12
  251. package/dist/src/nile-auto-complete/nile-auto-complete.js.map +1 -1
  252. package/dist/src/nile-avatar/nile-avatar.d.ts +0 -1
  253. package/dist/src/nile-avatar/nile-avatar.js +0 -1
  254. package/dist/src/nile-avatar/nile-avatar.js.map +1 -1
  255. package/dist/src/nile-badge/nile-badge.d.ts +0 -1
  256. package/dist/src/nile-badge/nile-badge.js +0 -1
  257. package/dist/src/nile-badge/nile-badge.js.map +1 -1
  258. package/dist/src/nile-breadcrumb/nile-breadcrumb.d.ts +0 -1
  259. package/dist/src/nile-breadcrumb/nile-breadcrumb.js +0 -5
  260. package/dist/src/nile-breadcrumb/nile-breadcrumb.js.map +1 -1
  261. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.d.ts +0 -1
  262. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.js +0 -1
  263. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.js.map +1 -1
  264. package/dist/src/nile-button/nile-button.css.js +24 -28
  265. package/dist/src/nile-button/nile-button.css.js.map +1 -1
  266. package/dist/src/nile-button/nile-button.d.ts +0 -1
  267. package/dist/src/nile-button/nile-button.js +0 -1
  268. package/dist/src/nile-button/nile-button.js.map +1 -1
  269. package/dist/src/nile-button-toggle/nile-button-toggle.d.ts +0 -1
  270. package/dist/src/nile-button-toggle/nile-button-toggle.js +0 -1
  271. package/dist/src/nile-button-toggle/nile-button-toggle.js.map +1 -1
  272. package/dist/src/nile-button-toggle-group/nile-button-toggle-group.d.ts +0 -1
  273. package/dist/src/nile-button-toggle-group/nile-button-toggle-group.js +0 -1
  274. package/dist/src/nile-button-toggle-group/nile-button-toggle-group.js.map +1 -1
  275. package/dist/src/nile-calendar/nile-calendar.d.ts +1 -11
  276. package/dist/src/nile-calendar/nile-calendar.js +12 -80
  277. package/dist/src/nile-calendar/nile-calendar.js.map +1 -1
  278. package/dist/src/nile-calendar/nile-calendar.test.js +50 -5
  279. package/dist/src/nile-calendar/nile-calendar.test.js.map +1 -1
  280. package/dist/src/nile-card/nile-card.d.ts +0 -1
  281. package/dist/src/nile-card/nile-card.js +0 -1
  282. package/dist/src/nile-card/nile-card.js.map +1 -1
  283. package/dist/src/nile-checkbox/nile-checkbox.d.ts +0 -1
  284. package/dist/src/nile-checkbox/nile-checkbox.js +0 -1
  285. package/dist/src/nile-checkbox/nile-checkbox.js.map +1 -1
  286. package/dist/src/nile-chip/nile-chip.d.ts +0 -1
  287. package/dist/src/nile-chip/nile-chip.js +0 -5
  288. package/dist/src/nile-chip/nile-chip.js.map +1 -1
  289. package/dist/src/nile-code-editor/nile-code-editor.d.ts +0 -1
  290. package/dist/src/nile-code-editor/nile-code-editor.js +0 -1
  291. package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
  292. package/dist/src/nile-content-editor/nile-content-editor.d.ts +0 -1
  293. package/dist/src/nile-content-editor/nile-content-editor.js +0 -1
  294. package/dist/src/nile-content-editor/nile-content-editor.js.map +1 -1
  295. package/dist/src/nile-date-picker/nile-date-picker.d.ts +0 -1
  296. package/dist/src/nile-date-picker/nile-date-picker.js +7 -14
  297. package/dist/src/nile-date-picker/nile-date-picker.js.map +1 -1
  298. package/dist/src/nile-dialog/nile-dialog.d.ts +0 -1
  299. package/dist/src/nile-dialog/nile-dialog.js +0 -1
  300. package/dist/src/nile-dialog/nile-dialog.js.map +1 -1
  301. package/dist/src/nile-drawer/nile-drawer.d.ts +0 -1
  302. package/dist/src/nile-drawer/nile-drawer.js +0 -1
  303. package/dist/src/nile-drawer/nile-drawer.js.map +1 -1
  304. package/dist/src/nile-empty-state/nile-empty-state.d.ts +0 -1
  305. package/dist/src/nile-empty-state/nile-empty-state.js +0 -1
  306. package/dist/src/nile-empty-state/nile-empty-state.js.map +1 -1
  307. package/dist/src/nile-form-help-text/nile-form-help-text.d.ts +2 -0
  308. package/dist/src/nile-form-help-text/nile-form-help-text.js +14 -6
  309. package/dist/src/nile-form-help-text/nile-form-help-text.js.map +1 -1
  310. package/dist/src/nile-form-help-text/nile-form-help-text.test.d.ts +1 -0
  311. package/dist/src/nile-form-help-text/nile-form-help-text.test.js +67 -0
  312. package/dist/src/nile-form-help-text/nile-form-help-text.test.js.map +1 -0
  313. package/dist/src/nile-icon-button/nile-icon-button.d.ts +0 -1
  314. package/dist/src/nile-icon-button/nile-icon-button.js +0 -1
  315. package/dist/src/nile-icon-button/nile-icon-button.js.map +1 -1
  316. package/dist/src/nile-input/nile-input.d.ts +0 -1
  317. package/dist/src/nile-input/nile-input.js +0 -1
  318. package/dist/src/nile-input/nile-input.js.map +1 -1
  319. package/dist/src/nile-input/nile-input.test.js +5 -1
  320. package/dist/src/nile-input/nile-input.test.js.map +1 -1
  321. package/dist/src/nile-link/nile-link.d.ts +0 -1
  322. package/dist/src/nile-link/nile-link.js +0 -1
  323. package/dist/src/nile-link/nile-link.js.map +1 -1
  324. package/dist/src/nile-list/nile-list.d.ts +0 -1
  325. package/dist/src/nile-list/nile-list.js +0 -5
  326. package/dist/src/nile-list/nile-list.js.map +1 -1
  327. package/dist/src/nile-list-item/nile-list-item.d.ts +0 -1
  328. package/dist/src/nile-list-item/nile-list-item.js +0 -1
  329. package/dist/src/nile-list-item/nile-list-item.js.map +1 -1
  330. package/dist/src/nile-loader/nile-loader.test.js +5 -0
  331. package/dist/src/nile-loader/nile-loader.test.js.map +1 -1
  332. package/dist/src/nile-menu/nile-menu.d.ts +0 -1
  333. package/dist/src/nile-menu/nile-menu.js +0 -4
  334. package/dist/src/nile-menu/nile-menu.js.map +1 -1
  335. package/dist/src/nile-menu-item/nile-menu-item.d.ts +0 -2
  336. package/dist/src/nile-menu-item/nile-menu-item.js +0 -2
  337. package/dist/src/nile-menu-item/nile-menu-item.js.map +1 -1
  338. package/dist/src/nile-option/nile-option.d.ts +0 -2
  339. package/dist/src/nile-option/nile-option.js +0 -2
  340. package/dist/src/nile-option/nile-option.js.map +1 -1
  341. package/dist/src/nile-popover/nile-popover.d.ts +1 -1
  342. package/dist/src/nile-popover/nile-popover.js +5 -2
  343. package/dist/src/nile-popover/nile-popover.js.map +1 -1
  344. package/dist/src/nile-popup/nile-popup.d.ts +0 -2
  345. package/dist/src/nile-popup/nile-popup.js +0 -2
  346. package/dist/src/nile-popup/nile-popup.js.map +1 -1
  347. package/dist/src/nile-radio-group/nile-radio-group.d.ts +0 -1
  348. package/dist/src/nile-radio-group/nile-radio-group.js +0 -1
  349. package/dist/src/nile-radio-group/nile-radio-group.js.map +1 -1
  350. package/dist/src/nile-select/nile-select.d.ts +0 -1
  351. package/dist/src/nile-select/nile-select.js +3 -6
  352. package/dist/src/nile-select/nile-select.js.map +1 -1
  353. package/dist/src/nile-slide-toggle/nile-slide-toggle.d.ts +0 -1
  354. package/dist/src/nile-slide-toggle/nile-slide-toggle.js +0 -1
  355. package/dist/src/nile-slide-toggle/nile-slide-toggle.js.map +1 -1
  356. package/dist/src/nile-split-panel/nile-split-panel.d.ts +0 -1
  357. package/dist/src/nile-split-panel/nile-split-panel.js +0 -1
  358. package/dist/src/nile-split-panel/nile-split-panel.js.map +1 -1
  359. package/dist/src/nile-stepper/nile-stepper.d.ts +0 -1
  360. package/dist/src/nile-stepper/nile-stepper.js +0 -1
  361. package/dist/src/nile-stepper/nile-stepper.js.map +1 -1
  362. package/dist/src/nile-tab/nile-tab.d.ts +0 -1
  363. package/dist/src/nile-tab/nile-tab.js +0 -1
  364. package/dist/src/nile-tab/nile-tab.js.map +1 -1
  365. package/dist/src/nile-tab-group/nile-tab-group.d.ts +1 -2
  366. package/dist/src/nile-tab-group/nile-tab-group.js +5 -10
  367. package/dist/src/nile-tab-group/nile-tab-group.js.map +1 -1
  368. package/dist/src/nile-tab-group/nile-tab-group.test.js +56 -22
  369. package/dist/src/nile-tab-group/nile-tab-group.test.js.map +1 -1
  370. package/dist/src/nile-table-body/nile-table-body.d.ts +0 -1
  371. package/dist/src/nile-table-body/nile-table-body.js +0 -1
  372. package/dist/src/nile-table-body/nile-table-body.js.map +1 -1
  373. package/dist/src/nile-tag/nile-tag.d.ts +0 -1
  374. package/dist/src/nile-tag/nile-tag.js +0 -1
  375. package/dist/src/nile-tag/nile-tag.js.map +1 -1
  376. package/dist/src/nile-textarea/nile-textarea.d.ts +0 -1
  377. package/dist/src/nile-textarea/nile-textarea.js +0 -1
  378. package/dist/src/nile-textarea/nile-textarea.js.map +1 -1
  379. package/dist/src/nile-toast/nile-toast.d.ts +0 -1
  380. package/dist/src/nile-toast/nile-toast.js +0 -1
  381. package/dist/src/nile-toast/nile-toast.js.map +1 -1
  382. package/dist/src/nile-tooltip/nile-tooltip.d.ts +0 -1
  383. package/dist/src/nile-tooltip/nile-tooltip.js +0 -1
  384. package/dist/src/nile-tooltip/nile-tooltip.js.map +1 -1
  385. package/dist/src/nile-tree/nile-tree.d.ts +0 -1
  386. package/dist/src/nile-tree/nile-tree.js +0 -1
  387. package/dist/src/nile-tree/nile-tree.js.map +1 -1
  388. package/dist/{svelte-2ae868b6.cjs.js → svelte-5a90df12.cjs.js} +2 -2
  389. package/dist/{svelte-2ae868b6.cjs.js.map → svelte-5a90df12.cjs.js.map} +1 -1
  390. package/dist/{svelte-ac03a3ac.esm.js → svelte-cb8564e6.esm.js} +1 -1
  391. package/dist/{system-verilog-7d2d7268.cjs.js → system-verilog-b3e652eb.cjs.js} +2 -2
  392. package/dist/{system-verilog-7d2d7268.cjs.js.map → system-verilog-b3e652eb.cjs.js.map} +1 -1
  393. package/dist/{system-verilog-2d49210f.esm.js → system-verilog-c1c6377f.esm.js} +1 -1
  394. package/dist/{templ-f2d0dadd.esm.js → templ-13492ead.esm.js} +1 -1
  395. package/dist/{templ-2a2d64b7.cjs.js → templ-4425132d.cjs.js} +2 -2
  396. package/dist/{templ-2a2d64b7.cjs.js.map → templ-4425132d.cjs.js.map} +1 -1
  397. package/dist/{tex-8addc455.cjs.js → tex-d609b400.cjs.js} +2 -2
  398. package/dist/{tex-8addc455.cjs.js.map → tex-d609b400.cjs.js.map} +1 -1
  399. package/dist/{ts-tags-e56ee3ee.cjs.js → ts-tags-ba7eb9e3.cjs.js} +2 -2
  400. package/dist/{ts-tags-e56ee3ee.cjs.js.map → ts-tags-ba7eb9e3.cjs.js.map} +1 -1
  401. package/dist/tsconfig.tsbuildinfo +1 -1
  402. package/dist/{twig-911808dc.cjs.js → twig-e9bb57f2.cjs.js} +2 -2
  403. package/dist/{twig-911808dc.cjs.js.map → twig-e9bb57f2.cjs.js.map} +1 -1
  404. package/dist/{vue-9b06428b.cjs.js → vue-16d91bfa.cjs.js} +2 -2
  405. package/dist/{vue-9b06428b.cjs.js.map → vue-16d91bfa.cjs.js.map} +1 -1
  406. package/dist/{vue-html-ca1dd5bf.cjs.js → vue-html-432cdd7f.cjs.js} +2 -2
  407. package/dist/{vue-html-ca1dd5bf.cjs.js.map → vue-html-432cdd7f.cjs.js.map} +1 -1
  408. package/dist/wikitext-2748811a.cjs.js +2 -0
  409. package/dist/wikitext-2748811a.cjs.js.map +1 -0
  410. package/dist/wikitext-c9071578.esm.js +1 -0
  411. package/package.json +2 -2
  412. package/rollup.config.js +1 -0
  413. package/src/nile-accordion/nile-accordion.ts +0 -1
  414. package/src/nile-auto-complete/nile-auto-complete.ts +2 -13
  415. package/src/nile-avatar/nile-avatar.ts +0 -2
  416. package/src/nile-badge/nile-badge.ts +0 -2
  417. package/src/nile-breadcrumb/nile-breadcrumb.ts +0 -2
  418. package/src/nile-breadcrumb-item/nile-breadcrumb-item.ts +0 -2
  419. package/src/nile-button/nile-button.css.ts +24 -28
  420. package/src/nile-button/nile-button.ts +0 -2
  421. package/src/nile-button-toggle/nile-button-toggle.ts +0 -2
  422. package/src/nile-button-toggle-group/nile-button-toggle-group.ts +0 -2
  423. package/src/nile-calendar/nile-calendar.test.ts +64 -5
  424. package/src/nile-calendar/nile-calendar.ts +14 -96
  425. package/src/nile-card/nile-card.ts +0 -2
  426. package/src/nile-checkbox/nile-checkbox.ts +0 -2
  427. package/src/nile-chip/nile-chip.ts +0 -6
  428. package/src/nile-code-editor/nile-code-editor.ts +0 -2
  429. package/src/nile-content-editor/nile-content-editor.ts +0 -2
  430. package/src/nile-date-picker/nile-date-picker.ts +7 -15
  431. package/src/nile-dialog/nile-dialog.ts +0 -2
  432. package/src/nile-drawer/nile-drawer.ts +0 -2
  433. package/src/nile-empty-state/nile-empty-state.ts +0 -2
  434. package/src/nile-form-help-text/nile-form-help-text.test.ts +86 -0
  435. package/src/nile-form-help-text/nile-form-help-text.ts +17 -15
  436. package/src/nile-icon-button/nile-icon-button.ts +0 -2
  437. package/src/nile-input/nile-input.test.ts +7 -1
  438. package/src/nile-input/nile-input.ts +0 -2
  439. package/src/nile-link/nile-link.ts +0 -2
  440. package/src/nile-list/nile-list.ts +0 -2
  441. package/src/nile-list-item/nile-list-item.ts +0 -2
  442. package/src/nile-loader/nile-loader.test.ts +6 -0
  443. package/src/nile-menu/nile-menu.ts +0 -6
  444. package/src/nile-menu-item/nile-menu-item.ts +0 -3
  445. package/src/nile-option/nile-option.ts +0 -3
  446. package/src/nile-popover/nile-popover.ts +3 -3
  447. package/src/nile-popup/nile-popup.ts +0 -3
  448. package/src/nile-radio-group/nile-radio-group.ts +0 -2
  449. package/src/nile-select/nile-select.ts +3 -7
  450. package/src/nile-slide-toggle/nile-slide-toggle.ts +0 -2
  451. package/src/nile-split-panel/nile-split-panel.ts +0 -2
  452. package/src/nile-stepper/nile-stepper.ts +0 -2
  453. package/src/nile-tab/nile-tab.ts +0 -2
  454. package/src/nile-tab-group/nile-tab-group.test.ts +71 -29
  455. package/src/nile-tab-group/nile-tab-group.ts +6 -14
  456. package/src/nile-table-body/nile-table-body.ts +0 -2
  457. package/src/nile-tag/nile-tag.ts +0 -2
  458. package/src/nile-textarea/nile-textarea.ts +0 -2
  459. package/src/nile-toast/nile-toast.ts +0 -2
  460. package/src/nile-tooltip/nile-tooltip.ts +0 -2
  461. package/src/nile-tree/nile-tree.ts +0 -2
  462. package/tsconfig.json +1 -0
  463. package/vscode-html-custom-data.json +3717 -60
  464. package/web-test-runner.config.mjs +6 -1
  465. package/dist/abap-1e9762d1.esm.js +0 -1
  466. package/dist/abap-3b3fe406.cjs.js +0 -2
  467. package/dist/abap-3b3fe406.cjs.js.map +0 -1
  468. package/dist/catppuccin-frappe-c0734345.esm.js +0 -1
  469. package/dist/catppuccin-frappe-eb77e95d.cjs.js +0 -2
  470. package/dist/catppuccin-frappe-eb77e95d.cjs.js.map +0 -1
  471. package/dist/catppuccin-latte-471f76fc.cjs.js +0 -2
  472. package/dist/catppuccin-latte-471f76fc.cjs.js.map +0 -1
  473. package/dist/catppuccin-latte-d798493f.esm.js +0 -1
  474. package/dist/catppuccin-macchiato-7ac78e7e.cjs.js +0 -2
  475. package/dist/catppuccin-macchiato-7ac78e7e.cjs.js.map +0 -1
  476. package/dist/catppuccin-macchiato-d78b2ec2.esm.js +0 -1
  477. package/dist/catppuccin-mocha-3b00f8d6.cjs.js +0 -2
  478. package/dist/catppuccin-mocha-3b00f8d6.cjs.js.map +0 -1
  479. package/dist/catppuccin-mocha-6a189a57.esm.js +0 -1
  480. package/dist/cobol-4ed2b235.esm.js +0 -1
  481. package/dist/cobol-c428fca2.cjs.js +0 -2
  482. package/dist/cobol-c428fca2.cjs.js.map +0 -1
  483. package/dist/go-4c55ae2b.esm.js +0 -1
  484. package/dist/go-9bee484b.cjs.js +0 -2
  485. package/dist/go-9bee484b.cjs.js.map +0 -1
  486. package/dist/hy-431f15f8.cjs.js +0 -2
  487. package/dist/hy-431f15f8.cjs.js.map +0 -1
  488. package/dist/hy-5e43d6c1.esm.js +0 -1
  489. package/dist/luau-0b166b7a.cjs.js +0 -2
  490. package/dist/luau-0b166b7a.cjs.js.map +0 -1
  491. package/dist/luau-7d7eaa97.esm.js +0 -1
  492. package/dist/mdc-13285ad6.esm.js +0 -1
  493. package/dist/mdc-a3fe82c5.cjs.js +0 -2
  494. package/dist/mdc-a3fe82c5.cjs.js.map +0 -1
  495. package/dist/nextflow-35e5a63d.esm.js +0 -1
  496. package/dist/nextflow-c666e91b.cjs.js +0 -2
  497. package/dist/nextflow-c666e91b.cjs.js.map +0 -1
  498. package/dist/nile-split-panel/nile-split-panel.test.cjs.js +0 -2
  499. package/dist/nile-split-panel/nile-split-panel.test.cjs.js.map +0 -1
  500. package/dist/nile-split-panel/nile-split-panel.test.esm.js +0 -1
  501. package/dist/nile-stepper/nile-stepper.test.cjs.js +0 -2
  502. package/dist/nile-stepper/nile-stepper.test.cjs.js.map +0 -1
  503. package/dist/nile-stepper/nile-stepper.test.esm.js +0 -1
  504. package/dist/nile-tree/nile-tree.test.cjs.js +0 -2
  505. package/dist/nile-tree/nile-tree.test.cjs.js.map +0 -1
  506. package/dist/nile-tree/nile-tree.test.esm.js +0 -1
  507. package/dist/one-dark-pro-9477257e.cjs.js +0 -2
  508. package/dist/one-dark-pro-9477257e.cjs.js.map +0 -1
  509. package/dist/one-dark-pro-deb4f5e9.esm.js +0 -1
  510. package/dist/src/nile-split-panel/nile-split-panel.test.d.ts +0 -1
  511. package/dist/src/nile-split-panel/nile-split-panel.test.js +0 -4
  512. package/dist/src/nile-split-panel/nile-split-panel.test.js.map +0 -1
  513. package/dist/src/nile-stepper/nile-stepper.test.d.ts +0 -4
  514. package/dist/src/nile-stepper/nile-stepper.test.js +0 -7
  515. package/dist/src/nile-stepper/nile-stepper.test.js.map +0 -1
  516. package/dist/src/nile-tree/nile-tree.test.d.ts +0 -2
  517. package/dist/src/nile-tree/nile-tree.test.js +0 -5
  518. package/dist/src/nile-tree/nile-tree.test.js.map +0 -1
  519. package/dist/wikitext-b9a7e67b.cjs.js +0 -2
  520. package/dist/wikitext-b9a7e67b.cjs.js.map +0 -1
  521. package/dist/wikitext-c06489b3.esm.js +0 -1
  522. package/src/nile-split-panel/nile-split-panel.test.ts +0 -7
  523. package/src/nile-stepper/nile-stepper.test.ts +0 -12
  524. package/src/nile-tree/nile-tree.test.ts +0 -9
@@ -33,7 +33,6 @@ let id = 0;
33
33
  let NileTab = class NileTab extends NileElement {
34
34
  constructor() {
35
35
  super(...arguments);
36
- this.BUBBLES = false;
37
36
  this.attrId = ++id;
38
37
  this.componentId = `nile-tab-${this.attrId}`;
39
38
  /** The name of the tab panel this tab is associated with. The panel must be located in the same tab group. */
@@ -1 +1 @@
1
- {"version":3,"file":"nile-tab.js","sourceRoot":"","sources":["../../../src/nile-tab/nile-tab.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 {LitElement, html, property, CSSResultArray, TemplateResult} from 'lit-element';\nimport { customElement } from 'lit/decorators.js';\nimport {styles} from './nile-tab.css';\n\nimport '../nile-icon-button/nile-icon-button';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query } from 'lit/decorators.js';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup, PropertyValueMap } from 'lit';\n\nlet id = 0;\n\n/**\n * Nile icon component.\n *\n * @tag nile-tab\n *\n *\n * @dependency nile-icon-button\n *\n * @slot - The tab's label.\n *\n * @event nile-close - Emitted when the tab is closable and the close button is activated.\n *\n * @csspart base - The component's base wrapper.\n * @csspart close-button - The close button, an `<nile-icon-button>`.\n * @csspart close-button__base - The close button's exported `base` part.\n */\n@customElement('nile-tab')\nexport class NileTab extends NileElement {\n static styles: CSSResultGroup = styles;\n\n protected override BUBBLES: boolean=false;\n\n private readonly attrId = ++id;\n private readonly componentId = `nile-tab-${this.attrId}`;\n\n @query('.tab') tab: HTMLElement;\n\n /** The name of the tab panel this tab is associated with. The panel must be located in the same tab group. */\n @property({ reflect: true }) panel = '';\n\n /** Draws the tab in an active state. */\n @property({ type: Boolean, reflect: true }) active = false;\n\n /** Makes the tab closable and shows a close button. */\n @property({ type: Boolean }) closable = false;\n\n /** Disables the tab and prevents selection. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n @property({ type: Boolean, reflect: true }) centered = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', 'tab');\n }\n\n private handleCloseClick(event: Event) {\n event.stopPropagation();\n this.emit('nile-close');\n }\n\n @watch('active')\n handleActiveChange() {\n if(this.active) this.emit('nile-toggle-change',{ value: this.panel })\n this.setAttribute('aria-selected', this.active ? 'true' : 'false');\n }\n\n @watch('disabled')\n handleDisabledChange() {\n this.setAttribute('aria-disabled', this.disabled ? 'true' : 'false');\n }\n\n /** Sets focus to the tab. */\n focus(options?: FocusOptions) {\n this.tab.focus(options);\n }\n\n /** Removes focus from the tab. */\n blur() {\n this.tab.blur();\n }\n\n render() {\n // If the user didn't provide an ID, we'll set one so we can link tabs and tab panels with aria labels\n this.id = this.id.length > 0 ? this.id : this.componentId;\n\n return html`\n <div\n part=\"base\"\n class=${classMap({\n tab: true,\n 'tab--centered': this.centered,\n 'tab--active': this.active,\n 'tab--closable': this.closable,\n 'tab--disabled': this.disabled\n })}\n tabindex=${this.disabled ? '-1' : '0'}\n >\n <slot name=\"prefix\"></slot>\n <slot></slot>\n ${this.closable\n ? html`\n <nile-icon-button\n part=\"close-button\"\n exportparts=\"base:close-button__base\"\n name=\"x-lg\"\n library=\"system\"\n label=\"close\"\n class=\"tab__close-button\"\n @click=${this.handleCloseClick}\n tabindex=\"-1\"\n ></nile-icon-button>\n `\n : ''}\n </div>\n `;\n }\n}\n\nexport default NileTab;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-tab': NileTab;\n }\n}\n"]}
1
+ {"version":3,"file":"nile-tab.js","sourceRoot":"","sources":["../../../src/nile-tab/nile-tab.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 {LitElement, html, property, CSSResultArray, TemplateResult} from 'lit-element';\nimport { customElement } from 'lit/decorators.js';\nimport {styles} from './nile-tab.css';\n\nimport '../nile-icon-button/nile-icon-button';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query } from 'lit/decorators.js';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup, PropertyValueMap } from 'lit';\n\nlet id = 0;\n\n/**\n * Nile icon component.\n *\n * @tag nile-tab\n *\n *\n * @dependency nile-icon-button\n *\n * @slot - The tab's label.\n *\n * @event nile-close - Emitted when the tab is closable and the close button is activated.\n *\n * @csspart base - The component's base wrapper.\n * @csspart close-button - The close button, an `<nile-icon-button>`.\n * @csspart close-button__base - The close button's exported `base` part.\n */\n@customElement('nile-tab')\nexport class NileTab extends NileElement {\n static styles: CSSResultGroup = styles;\n\n private readonly attrId = ++id;\n private readonly componentId = `nile-tab-${this.attrId}`;\n\n @query('.tab') tab: HTMLElement;\n\n /** The name of the tab panel this tab is associated with. The panel must be located in the same tab group. */\n @property({ reflect: true }) panel = '';\n\n /** Draws the tab in an active state. */\n @property({ type: Boolean, reflect: true }) active = false;\n\n /** Makes the tab closable and shows a close button. */\n @property({ type: Boolean }) closable = false;\n\n /** Disables the tab and prevents selection. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n @property({ type: Boolean, reflect: true }) centered = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', 'tab');\n }\n\n private handleCloseClick(event: Event) {\n event.stopPropagation();\n this.emit('nile-close');\n }\n\n @watch('active')\n handleActiveChange() {\n if(this.active) this.emit('nile-toggle-change',{ value: this.panel })\n this.setAttribute('aria-selected', this.active ? 'true' : 'false');\n }\n\n @watch('disabled')\n handleDisabledChange() {\n this.setAttribute('aria-disabled', this.disabled ? 'true' : 'false');\n }\n\n /** Sets focus to the tab. */\n focus(options?: FocusOptions) {\n this.tab.focus(options);\n }\n\n /** Removes focus from the tab. */\n blur() {\n this.tab.blur();\n }\n\n render() {\n // If the user didn't provide an ID, we'll set one so we can link tabs and tab panels with aria labels\n this.id = this.id.length > 0 ? this.id : this.componentId;\n\n return html`\n <div\n part=\"base\"\n class=${classMap({\n tab: true,\n 'tab--centered': this.centered,\n 'tab--active': this.active,\n 'tab--closable': this.closable,\n 'tab--disabled': this.disabled\n })}\n tabindex=${this.disabled ? '-1' : '0'}\n >\n <slot name=\"prefix\"></slot>\n <slot></slot>\n ${this.closable\n ? html`\n <nile-icon-button\n part=\"close-button\"\n exportparts=\"base:close-button__base\"\n name=\"x-lg\"\n library=\"system\"\n label=\"close\"\n class=\"tab__close-button\"\n @click=${this.handleCloseClick}\n tabindex=\"-1\"\n ></nile-icon-button>\n `\n : ''}\n </div>\n `;\n }\n}\n\nexport default NileTab;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-tab': NileTab;\n }\n}\n"]}
@@ -36,7 +36,6 @@ import type { CSSResultGroup, PropertyValueMap } from 'lit';
36
36
  */
37
37
  export declare class NileTabGroup extends NileElement {
38
38
  static styles: CSSResultGroup;
39
- protected BUBBLES: boolean;
40
39
  private activeTab?;
41
40
  private mutationObserver;
42
41
  private resizeObserver;
@@ -46,7 +45,7 @@ export declare class NileTabGroup extends NileElement {
46
45
  body: HTMLSlotElement;
47
46
  nav: HTMLElement;
48
47
  indicator: HTMLElement;
49
- private hasScrollControls;
48
+ hasScrollControls: boolean;
50
49
  /** The placement of the tabs. */
51
50
  placement: 'top' | 'bottom' | 'start' | 'end';
52
51
  /** The placement of the tabs. */
@@ -43,7 +43,6 @@ import NileElement from '../internal/nile-element';
43
43
  let NileTabGroup = class NileTabGroup extends NileElement {
44
44
  constructor() {
45
45
  super(...arguments);
46
- this.BUBBLES = false;
47
46
  this.tabs = [];
48
47
  this.panels = [];
49
48
  this.hasScrollControls = false;
@@ -168,7 +167,7 @@ let NileTabGroup = class NileTabGroup extends NileElement {
168
167
  name='arrowright'
169
168
  library="system"
170
169
  label="scrollToStart"
171
- @click=${this.handleScrollToStart}
170
+ @click=${this.handleScrollToEnd}
172
171
  ></nile-icon-button>
173
172
  `
174
173
  : ''}
@@ -194,7 +193,7 @@ let NileTabGroup = class NileTabGroup extends NileElement {
194
193
  name='arrowleft'
195
194
  library="system"
196
195
  label="scrollToEnd"
197
- @click=${this.handleScrollToEnd}
196
+ @click=${this.handleScrollToStart}
198
197
  ></nile-icon-button>
199
198
  `
200
199
  : ''}
@@ -256,7 +255,7 @@ let NileTabGroup = class NileTabGroup extends NileElement {
256
255
  }
257
256
  // Move focus left or right
258
257
  if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {
259
- const activeEl = this.tabs.find(t => t.matches(':focus'));
258
+ const activeEl = tab;
260
259
  const isRtl = false;
261
260
  if (activeEl?.tagName.toLowerCase() === 'nile-tab') {
262
261
  let index = this.tabs.indexOf(activeEl);
@@ -293,17 +292,13 @@ let NileTabGroup = class NileTabGroup extends NileElement {
293
292
  }
294
293
  handleScrollToStart() {
295
294
  this.nav.scroll({
296
- left: true
297
- ? this.nav.scrollLeft + this.nav.clientWidth
298
- : this.nav.scrollLeft - this.nav.clientWidth,
295
+ left: -this.nav.scrollWidth,
299
296
  behavior: 'smooth'
300
297
  });
301
298
  }
302
299
  handleScrollToEnd() {
303
300
  this.nav.scroll({
304
- left: true
305
- ? this.nav.scrollLeft - this.nav.clientWidth
306
- : this.nav.scrollLeft + this.nav.clientWidth,
301
+ left: this.nav.scrollWidth,
307
302
  behavior: 'smooth'
308
303
  });
309
304
  }
@@ -1 +1 @@
1
- {"version":3,"file":"nile-tab-group.js","sourceRoot":"","sources":["../../../src/nile-tab-group/nile-tab-group.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 {LitElement, html, property, CSSResultArray, TemplateResult} from 'lit-element';\nimport { customElement } from 'lit/decorators.js';\nimport {styles} from './nile-tab-group.css';\n\nimport '../nile-icon-button/nile-icon-button';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query, state } from 'lit/decorators.js';\nimport { scrollIntoView } from '../internal/scroll';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup, PropertyValueMap } from 'lit';\nimport type NileTab from '../nile-tab/nile-tab';\nimport type NileTabPanel from '../nile-tab-panel/nile-tab-panel';\n\n/**\n * Nile icon component.\n *\n * @tag nile-tab-group\n *\n * @slot - Used for grouping tab panels in the tab group. Must be `<nile-tab-panel>` elements.\n * @slot nav - Used for grouping tabs in the tab group. Must be `<nile-tab>` elements.\n *\n * @event {{ name: String }} nile-tab-show - Emitted when a tab is shown.\n * @event {{ name: String }} nile-tab-hide - Emitted when a tab is hidden.\n *\n * @csspart base - The component's base wrapper.\n * @csspart nav - The tab group's navigation container where tabs are slotted in.\n * @csspart tabs - The container that wraps the tabs.\n * @csspart active-tab-indicator - The line that highlights the currently selected tab.\n * @csspart body - The tab group's body where tab panels are slotted in.\n * @csspart scroll-button - The previous/next scroll buttons that show when tabs are scrollable, an `<nile-icon-button>`.\n * @csspart scroll-button--start - The starting scroll button.\n * @csspart scroll-button--end - The ending scroll button.\n * @csspart scroll-button__base - The scroll button's exported `base` part.\n *\n * @cssproperty --indicator-color - The color of the active tab indicator.\n * @cssproperty --track-color - The color of the indicator's track (the line that separates tabs from panels).\n * @cssproperty --track-width - The width of the indicator's track (the line that separates tabs from panels).\n *\n */\n@customElement('nile-tab-group')\nexport class NileTabGroup extends NileElement {\n\n static styles: CSSResultGroup = styles;\n\n protected override BUBBLES: boolean=false;\n\n private activeTab?: NileTab;\n private mutationObserver: MutationObserver;\n private resizeObserver: ResizeObserver;\n private tabs: NileTab[] = [];\n private panels: NileTabPanel[] = [];\n\n @query('.tab-group') tabGroup: HTMLElement;\n @query('.tab-group__body') body: HTMLSlotElement;\n @query('.tab-group__nav') nav: HTMLElement;\n @query('.tab-group__indicator') indicator: HTMLElement;\n\n @state() private hasScrollControls = false;\n\n /** The placement of the tabs. */\n @property() placement: 'top' | 'bottom' | 'start' | 'end' = 'top';\n\n /** The placement of the tabs. */\n @property({ reflect: true, attribute: 'value', type: String }) activeTabProp: string = '';\n\n /** Track for showing Indicators and Background. */\n @property({ type: Boolean, reflect: true, attribute:'no-track'}) noTrack = false;\n\n /**\n * When set to auto, navigating tabs with the arrow keys will instantly show the corresponding tab panel. When set to\n * manual, the tab will receive focus but will not show until the user presses spacebar or enter.\n */\n @property() activation: 'auto' | 'manual' = 'auto';\n\n /** Disables the scroll arrows that appear when tabs overflow. */\n @property({ attribute: 'no-scroll-controls', type: Boolean }) noScrollControls = false;\n\n /** Controls whether tabs are centered and have equal width */\n @property({ type: Boolean, reflect: true }) centered = false;\n\n @state() activeTabName: string = '';\n\n connectedCallback() {\n const whenAllDefined = Promise.allSettled([\n customElements.whenDefined('nile-tab'),\n customElements.whenDefined('nile-tab-panel')\n ]);\n\n super.connectedCallback();\n\n this.resizeObserver = new ResizeObserver(() => {\n this.repositionIndicator();\n // this.updateScrollControls();\n });\n\n this.mutationObserver = new MutationObserver(mutations => {\n // Update aria labels when the DOM changes\n if (mutations.some(m => !['aria-labelledby', 'aria-controls'].includes(m.attributeName!))) {\n setTimeout(() => this.setAriaLabels());\n }\n\n // Sync tabs when disabled states change\n if (mutations.some(m => m.attributeName === 'disabled')) {\n this.syncTabsAndPanels();\n }\n });\n\n // After the first update...\n this.updateComplete.then(() => {\n this.syncTabsAndPanels();\n if(this.activeTabProp) this.activeTabName=this.activeTabProp;\n else this.activeTabName=this.getActiveTab().panel;\n this.syncIndicator();\n\n this.mutationObserver.observe(this, { attributes: true, childList: true, subtree: true });\n this.resizeObserver.observe(this.nav);\n // Wait for tabs and tab panels to be registered\n whenAllDefined.then(() => {\n // Set initial tab state when the tabs become visible\n const intersectionObserver = new IntersectionObserver((entries, observer) => {\n if (entries[0].intersectionRatio > 0) {\n this.setAriaLabels();\n observer.unobserve(entries[0].target);\n }\n });\n intersectionObserver.observe(this.tabGroup);\n });\n });\n }\n\n disconnectedCallback() {\n this.mutationObserver.disconnect();\n this.resizeObserver.unobserve(this.nav);\n }\n \n protected firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n this.addEventListener('nile-toggle-change', this.handleToggleFromTab);\n }\n\n protected updated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n if(_changedProperties.has('activeTabName')){\n const tab=this.getActiveTab()\n if(!tab) return;\n this.setActiveTab(tab, {scrollBehavior: 'smooth' });\n }\n if(_changedProperties.has('activeTabProp')){\n this.activeTabName=this.activeTabProp;\n }\n }\n\n // @watch('noScrollControls', { waitUntilFirstUpdate: true })\n // updateScrollControls() {\n // this.setScrollControls()\n // }\n\n @watch('placement', { waitUntilFirstUpdate: true })\n syncIndicator() {\n if(!this.indicator) return;\n const tab = this.getActiveTab();\n\n if (tab) {\n this.indicator.style.display = 'block';\n this.repositionIndicator();\n } else {\n this.indicator.style.display = 'none';\n }\n }\n \n render() {\n return html`\n <div\n part=\"base\"\n class=${classMap({\n 'tab-group': true,\n 'tab-group--top': this.placement === 'top',\n 'tab-group--bottom': this.placement === 'bottom',\n 'tab-group--start': this.placement === 'start',\n 'tab-group--end': this.placement === 'end',\n 'tab-group--rtl': true,\n 'tab-group--has-scroll-controls': this.hasScrollControls,\n 'hide__track':this.noTrack\n })}\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n >\n <div class=\"tab-group__nav-container\" part=\"nav\">\n ${this.hasScrollControls\n ? html`\n <nile-icon-button\n part=\"scroll-button scroll-button--start\"\n exportparts=\"base:scroll-button__base\"\n class=\"tab-group__scroll-button tab-group__scroll-button--start\"\n name='arrowright'\n library=\"system\"\n label=\"scrollToStart\"\n @click=${this.handleScrollToStart}\n ></nile-icon-button>\n `\n : ''}\n\n <div class=\"tab-group__nav\">\n <div part=\"tabs\" class=\"tab-group__tabs\" role=\"tablist\">\n <div\n part=\"active-tab-indicator\"\n class=${classMap({\n 'tab-group__indicator': !this.noTrack,\n })}\n ></div>\n <slot name=\"nav\" @slotchange=${this.syncTabsAndPanels}></slot>\n </div>\n </div>\n\n ${this.hasScrollControls\n ? html`\n <nile-icon-button\n part=\"scroll-button scroll-button--end\"\n exportparts=\"base:scroll-button__base\"\n class=\"tab-group__scroll-button tab-group__scroll-button--end\"\n name='arrowleft'\n library=\"system\"\n label=\"scrollToEnd\"\n @click=${this.handleScrollToEnd}\n ></nile-icon-button>\n `\n : ''}\n </div>\n\n <slot part=\"body\" class=\"tab-group__body\" @slotchange=${this.syncTabsAndPanels}></slot>\n </div>\n `;\n }\n\n private getAllTabs(options: { includeDisabled: boolean } = { includeDisabled: true }) {\n const slot = this.shadowRoot!.querySelector<HTMLSlotElement>('slot[name=\"nav\"]')!;\n\n return [...(slot.assignedElements() as NileTab[])].filter(el => {\n return options.includeDisabled\n ? el.tagName.toLowerCase() === 'nile-tab'\n : el.tagName.toLowerCase() === 'nile-tab' && !el.disabled;\n });\n }\n\n private getAllPanels() {\n return [...this.body.assignedElements()].filter(el => el.tagName.toLowerCase() === 'nile-tab-panel') as [NileTabPanel];\n }\n\n private getActiveTab() {\n return this.tabs.find(el => this.activeTabName?el.panel==this.activeTabName:el.active) ?? this.tabs[0];\n }\n\n private handleClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest('nile-tab');\n const tabGroup = tab?.closest('nile-tab-group');\n\n // Ensure the target tab is in this tab group\n if (tabGroup !== this) {\n return;\n }\n\n if (tab !== null && !tab.disabled) {\n this.activeTabName=tab.panel\n }\n }\n\n setScrollControls(){\n if (this.noScrollControls) {\n this.hasScrollControls = false;\n } else {\n this.hasScrollControls = ['top', 'bottom'].includes(this.placement) && this.nav.scrollWidth > this.nav.clientWidth;\n }\n this.hasScrollControls = false;\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest('nile-tab');\n const tabGroup = tab?.closest('nile-tab-group');\n\n // Ensure the target tab is in this tab group\n if (tabGroup !== this) {\n return;\n }\n\n // Activate a tab\n if (['Enter', ' '].includes(event.key)) {\n if (tab !== null) {\n this.activeTabName=tab.panel\n event.preventDefault();\n }\n }\n\n // Move focus left or right\n if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {\n const activeEl = this.tabs.find(t => t.matches(':focus'));\n const isRtl = false;\n\n if (activeEl?.tagName.toLowerCase() === 'nile-tab') {\n let index = this.tabs.indexOf(activeEl);\n\n if (event.key === 'Home') {\n index = 0;\n } else if (event.key === 'End') {\n index = this.tabs.length - 1;\n } else if (\n (['top', 'bottom'].includes(this.placement) && event.key === (isRtl ? 'ArrowRight' : 'ArrowLeft')) ||\n (['start', 'end'].includes(this.placement) && event.key === 'ArrowUp')\n ) {\n index--;\n } else if (\n (['top', 'bottom'].includes(this.placement) && event.key === (isRtl ? 'ArrowLeft' : 'ArrowRight')) ||\n (['start', 'end'].includes(this.placement) && event.key === 'ArrowDown')\n ) {\n index++;\n }\n\n if (index < 0) {\n index = this.tabs.length - 1;\n }\n\n if (index > this.tabs.length - 1) {\n index = 0;\n }\n\n this.tabs[index].focus({ preventScroll: true });\n\n if (this.activation === 'auto') {\n this.activeTabName=this.tabs[index].panel\n }\n\n if (['top', 'bottom'].includes(this.placement)) {\n scrollIntoView(this.tabs[index], this.nav, 'horizontal');\n }\n\n event.preventDefault();\n }\n }\n }\n\n private handleScrollToStart() {\n this.nav.scroll({\n left:\n true\n ? this.nav.scrollLeft + this.nav.clientWidth\n : this.nav.scrollLeft - this.nav.clientWidth,\n behavior: 'smooth'\n });\n }\n\n private handleScrollToEnd() {\n this.nav.scroll({\n left:\n true\n ? this.nav.scrollLeft - this.nav.clientWidth\n : this.nav.scrollLeft + this.nav.clientWidth,\n behavior: 'smooth'\n });\n }\n\n private setActiveTab(tab: NileTab, options?: { emitEvents?: boolean; scrollBehavior?: 'auto' | 'smooth' }) {\n options = {\n emitEvents: true,\n scrollBehavior: 'auto',\n ...options\n };\n\n if (tab !== this.activeTab && !tab.disabled) {\n\n const previousTab = this.activeTab;\n this.activeTab = tab;\n\n // Sync active tab and panel\n this.tabs.map(el => (el.active = el === this.activeTab));\n this.panels.map(el => (el.active = el.name === this.activeTab?.panel));\n this.syncIndicator();\n\n if (['top', 'bottom'].includes(this.placement)) {\n scrollIntoView(this.activeTab, this.nav, 'horizontal', options.scrollBehavior);\n }\n\n // Emit events\n if (options.emitEvents) {\n if (previousTab) {\n this.emit('nile-tab-hide', { value: previousTab.panel });\n }\n\n this.emit('nile-tab-show', { value: this.activeTab.panel });\n }\n }\n }\n\n private setAriaLabels() {\n // Link each tab with its corresponding panel\n this.tabs.forEach(tab => {\n const panel = this.panels.find(el => el.name === tab.panel);\n if (panel) {\n tab.setAttribute('aria-controls', panel.getAttribute('id')!);\n panel.setAttribute('aria-labelledby', tab.getAttribute('id')!);\n }\n });\n }\n\n private repositionIndicator() {\n const currentTab = this.getActiveTab();\n\n if (!currentTab || !this.indicator) {\n return;\n }\n\n const width = currentTab.clientWidth;\n const height = currentTab.clientHeight;\n const isRtl = false;\n\n // We can't used offsetLeft/offsetTop here due to a shadow parent issue where neither can getBoundingClientRect\n // because it provides invalid values for animating elements: https://bugs.chromium.org/p/chromium/issues/detail?id=920069\n const allTabs = this.getAllTabs();\n const precedingTabs = allTabs.slice(0, allTabs.indexOf(currentTab));\n const offset = precedingTabs.reduce(\n (previous, current) => ({\n left: previous.left + current.clientWidth + 12,\n top: previous.top + current.clientHeight + 12\n }),\n { left: 0, top: 0 }\n );\n\n switch (this.placement) {\n case 'top':\n case 'bottom':\n this.indicator.style.width = `${width - 5}px`;\n this.indicator.style.height = 'auto';\n this.indicator.style.translate = `${offset.left + 2}px`;\n break;\n\n case 'start':\n case 'end':\n this.indicator.style.width = 'auto';\n this.indicator.style.height = `${height}px`;\n this.indicator.style.translate = `0 ${offset.top}px`;\n break;\n }\n }\n\n // This stores tabs and panels so we can refer to a cache instead of calling querySelectorAll() multiple times.\n private syncTabsAndPanels() {\n this.tabs = this.getAllTabs({ includeDisabled: false });\n this.panels = this.getAllPanels();\n\n this.tabs.forEach((tab:any) => {\n tab.centered = this.centered;\n });\n\n // After updating, show or hide scroll controls as needed\n // this.updateComplete.then(() => this.updateScrollControls());\n }\n \n private handleToggleFromTab(e:CustomEvent){\n e.stopPropagation();\n this.activeTabName=e.detail.value;\n }\n\n}\n\nexport default NileTabGroup;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-tab-group': NileTabGroup;\n }\n}\n"]}
1
+ {"version":3,"file":"nile-tab-group.js","sourceRoot":"","sources":["../../../src/nile-tab-group/nile-tab-group.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 {LitElement, html, property, CSSResultArray, TemplateResult} from 'lit-element';\nimport { customElement } from 'lit/decorators.js';\nimport {styles} from './nile-tab-group.css';\n\nimport '../nile-icon-button/nile-icon-button';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { query, state } from 'lit/decorators.js';\nimport { scrollIntoView } from '../internal/scroll';\nimport { watch } from '../internal/watch';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup, PropertyValueMap } from 'lit';\nimport type NileTab from '../nile-tab/nile-tab';\nimport type NileTabPanel from '../nile-tab-panel/nile-tab-panel';\n\n/**\n * Nile icon component.\n *\n * @tag nile-tab-group\n *\n * @slot - Used for grouping tab panels in the tab group. Must be `<nile-tab-panel>` elements.\n * @slot nav - Used for grouping tabs in the tab group. Must be `<nile-tab>` elements.\n *\n * @event {{ name: String }} nile-tab-show - Emitted when a tab is shown.\n * @event {{ name: String }} nile-tab-hide - Emitted when a tab is hidden.\n *\n * @csspart base - The component's base wrapper.\n * @csspart nav - The tab group's navigation container where tabs are slotted in.\n * @csspart tabs - The container that wraps the tabs.\n * @csspart active-tab-indicator - The line that highlights the currently selected tab.\n * @csspart body - The tab group's body where tab panels are slotted in.\n * @csspart scroll-button - The previous/next scroll buttons that show when tabs are scrollable, an `<nile-icon-button>`.\n * @csspart scroll-button--start - The starting scroll button.\n * @csspart scroll-button--end - The ending scroll button.\n * @csspart scroll-button__base - The scroll button's exported `base` part.\n *\n * @cssproperty --indicator-color - The color of the active tab indicator.\n * @cssproperty --track-color - The color of the indicator's track (the line that separates tabs from panels).\n * @cssproperty --track-width - The width of the indicator's track (the line that separates tabs from panels).\n *\n */\n@customElement('nile-tab-group')\nexport class NileTabGroup extends NileElement {\n\n static styles: CSSResultGroup = styles;\n\n private activeTab?: NileTab;\n private mutationObserver: MutationObserver;\n private resizeObserver: ResizeObserver;\n private tabs: NileTab[] = [];\n private panels: NileTabPanel[] = [];\n\n @query('.tab-group') tabGroup: HTMLElement;\n @query('.tab-group__body') body: HTMLSlotElement;\n @query('.tab-group__nav') nav: HTMLElement;\n @query('.tab-group__indicator') indicator: HTMLElement;\n\n @state() hasScrollControls = false;\n\n /** The placement of the tabs. */\n @property() placement: 'top' | 'bottom' | 'start' | 'end' = 'top';\n\n /** The placement of the tabs. */\n @property({ reflect: true, attribute: 'value', type: String }) activeTabProp: string = '';\n\n /** Track for showing Indicators and Background. */\n @property({ type: Boolean, reflect: true, attribute:'no-track'}) noTrack = false;\n\n /**\n * When set to auto, navigating tabs with the arrow keys will instantly show the corresponding tab panel. When set to\n * manual, the tab will receive focus but will not show until the user presses spacebar or enter.\n */\n @property() activation: 'auto' | 'manual' = 'auto';\n\n /** Disables the scroll arrows that appear when tabs overflow. */\n @property({ attribute: 'no-scroll-controls', type: Boolean }) noScrollControls = false;\n\n /** Controls whether tabs are centered and have equal width */\n @property({ type: Boolean, reflect: true }) centered = false;\n\n @state() activeTabName: string = '';\n\n connectedCallback() {\n const whenAllDefined = Promise.allSettled([\n customElements.whenDefined('nile-tab'),\n customElements.whenDefined('nile-tab-panel')\n ]);\n\n super.connectedCallback();\n\n this.resizeObserver = new ResizeObserver(() => {\n this.repositionIndicator();\n // this.updateScrollControls();\n });\n\n this.mutationObserver = new MutationObserver(mutations => {\n // Update aria labels when the DOM changes\n if (mutations.some(m => !['aria-labelledby', 'aria-controls'].includes(m.attributeName!))) {\n setTimeout(() => this.setAriaLabels());\n }\n\n // Sync tabs when disabled states change\n if (mutations.some(m => m.attributeName === 'disabled')) {\n this.syncTabsAndPanels();\n }\n });\n\n // After the first update...\n this.updateComplete.then(() => {\n this.syncTabsAndPanels();\n if(this.activeTabProp) this.activeTabName=this.activeTabProp;\n else this.activeTabName=this.getActiveTab().panel;\n this.syncIndicator();\n\n this.mutationObserver.observe(this, { attributes: true, childList: true, subtree: true });\n this.resizeObserver.observe(this.nav);\n // Wait for tabs and tab panels to be registered\n whenAllDefined.then(() => {\n // Set initial tab state when the tabs become visible\n const intersectionObserver = new IntersectionObserver((entries, observer) => {\n if (entries[0].intersectionRatio > 0) {\n this.setAriaLabels();\n observer.unobserve(entries[0].target);\n }\n });\n intersectionObserver.observe(this.tabGroup);\n });\n });\n }\n\n disconnectedCallback() {\n this.mutationObserver.disconnect();\n this.resizeObserver.unobserve(this.nav);\n }\n \n protected firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n this.addEventListener('nile-toggle-change', this.handleToggleFromTab);\n }\n\n protected updated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n if(_changedProperties.has('activeTabName')){\n const tab=this.getActiveTab()\n if(!tab) return;\n this.setActiveTab(tab, {scrollBehavior: 'smooth' });\n }\n if(_changedProperties.has('activeTabProp')){\n this.activeTabName=this.activeTabProp;\n }\n }\n\n // @watch('noScrollControls', { waitUntilFirstUpdate: true })\n // updateScrollControls() {\n // this.setScrollControls()\n // }\n\n @watch('placement', { waitUntilFirstUpdate: true })\n syncIndicator() {\n if(!this.indicator) return;\n const tab = this.getActiveTab();\n\n if (tab) {\n this.indicator.style.display = 'block';\n this.repositionIndicator();\n } else {\n this.indicator.style.display = 'none';\n }\n }\n \n render() {\n return html`\n <div\n part=\"base\"\n class=${classMap({\n 'tab-group': true,\n 'tab-group--top': this.placement === 'top',\n 'tab-group--bottom': this.placement === 'bottom',\n 'tab-group--start': this.placement === 'start',\n 'tab-group--end': this.placement === 'end',\n 'tab-group--rtl': true,\n 'tab-group--has-scroll-controls': this.hasScrollControls,\n 'hide__track':this.noTrack\n })}\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n >\n <div class=\"tab-group__nav-container\" part=\"nav\">\n ${this.hasScrollControls\n ? html`\n <nile-icon-button\n part=\"scroll-button scroll-button--start\"\n exportparts=\"base:scroll-button__base\"\n class=\"tab-group__scroll-button tab-group__scroll-button--start\"\n name='arrowright'\n library=\"system\"\n label=\"scrollToStart\"\n @click=${this.handleScrollToEnd}\n ></nile-icon-button>\n `\n : ''}\n\n <div class=\"tab-group__nav\">\n <div part=\"tabs\" class=\"tab-group__tabs\" role=\"tablist\">\n <div\n part=\"active-tab-indicator\"\n class=${classMap({\n 'tab-group__indicator': !this.noTrack,\n })}\n ></div>\n <slot name=\"nav\" @slotchange=${this.syncTabsAndPanels}></slot>\n </div>\n </div>\n\n ${this.hasScrollControls\n ? html`\n <nile-icon-button\n part=\"scroll-button scroll-button--end\"\n exportparts=\"base:scroll-button__base\"\n class=\"tab-group__scroll-button tab-group__scroll-button--end\"\n name='arrowleft'\n library=\"system\"\n label=\"scrollToEnd\"\n @click=${this.handleScrollToStart}\n ></nile-icon-button>\n `\n : ''}\n </div>\n\n <slot part=\"body\" class=\"tab-group__body\" @slotchange=${this.syncTabsAndPanels}></slot>\n </div>\n `;\n }\n\n private getAllTabs(options: { includeDisabled: boolean } = { includeDisabled: true }) {\n const slot = this.shadowRoot!.querySelector<HTMLSlotElement>('slot[name=\"nav\"]')!;\n\n return [...(slot.assignedElements() as NileTab[])].filter(el => {\n return options.includeDisabled\n ? el.tagName.toLowerCase() === 'nile-tab'\n : el.tagName.toLowerCase() === 'nile-tab' && !el.disabled;\n });\n }\n\n private getAllPanels() {\n return [...this.body.assignedElements()].filter(el => el.tagName.toLowerCase() === 'nile-tab-panel') as [NileTabPanel];\n }\n\n private getActiveTab() {\n return this.tabs.find(el => this.activeTabName?el.panel==this.activeTabName:el.active) ?? this.tabs[0];\n }\n\n private handleClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest('nile-tab');\n const tabGroup = tab?.closest('nile-tab-group');\n\n // Ensure the target tab is in this tab group\n if (tabGroup !== this) {\n return;\n }\n\n if (tab !== null && !tab.disabled) {\n this.activeTabName=tab.panel\n }\n }\n\n setScrollControls(){\n if (this.noScrollControls) {\n this.hasScrollControls = false;\n } else {\n this.hasScrollControls = ['top', 'bottom'].includes(this.placement) && this.nav.scrollWidth > this.nav.clientWidth;\n }\n this.hasScrollControls = false;\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest('nile-tab');\n const tabGroup = tab?.closest('nile-tab-group');\n\n // Ensure the target tab is in this tab group\n if (tabGroup !== this) {\n return;\n }\n\n // Activate a tab\n if (['Enter', ' '].includes(event.key)) {\n if (tab !== null) {\n this.activeTabName=tab.panel\n event.preventDefault();\n }\n }\n\n // Move focus left or right\n if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {\n const activeEl = tab;\n const isRtl = false;\n\n if (activeEl?.tagName.toLowerCase() === 'nile-tab') {\n let index = this.tabs.indexOf(activeEl);\n\n if (event.key === 'Home') {\n index = 0;\n } else if (event.key === 'End') {\n index = this.tabs.length - 1;\n } else if (\n (['top', 'bottom'].includes(this.placement) && event.key === (isRtl ? 'ArrowRight' : 'ArrowLeft')) ||\n (['start', 'end'].includes(this.placement) && event.key === 'ArrowUp')\n ) {\n index--;\n } else if (\n (['top', 'bottom'].includes(this.placement) && event.key === (isRtl ? 'ArrowLeft' : 'ArrowRight')) ||\n (['start', 'end'].includes(this.placement) && event.key === 'ArrowDown')\n ) {\n index++;\n }\n\n if (index < 0) {\n index = this.tabs.length - 1;\n }\n\n if (index > this.tabs.length - 1) {\n index = 0;\n }\n\n this.tabs[index].focus({ preventScroll: true });\n\n if (this.activation === 'auto') {\n this.activeTabName=this.tabs[index].panel\n }\n\n if (['top', 'bottom'].includes(this.placement)) {\n scrollIntoView(this.tabs[index], this.nav, 'horizontal');\n }\n\n event.preventDefault();\n }\n }\n }\n\n private handleScrollToStart() {\n this.nav.scroll({\n left:-this.nav.scrollWidth,\n behavior: 'smooth'\n });\n }\n\n private handleScrollToEnd() {\n this.nav.scroll({\n left:this.nav.scrollWidth,\n behavior: 'smooth'\n });\n }\n\n private setActiveTab(tab: NileTab, options?: { emitEvents?: boolean; scrollBehavior?: 'auto' | 'smooth' }) {\n options = {\n emitEvents: true,\n scrollBehavior: 'auto',\n ...options\n };\n\n if (tab !== this.activeTab && !tab.disabled) {\n\n const previousTab = this.activeTab;\n this.activeTab = tab;\n\n // Sync active tab and panel\n this.tabs.map(el => (el.active = el === this.activeTab));\n this.panels.map(el => (el.active = el.name === this.activeTab?.panel));\n this.syncIndicator();\n\n if (['top', 'bottom'].includes(this.placement)) {\n scrollIntoView(this.activeTab, this.nav, 'horizontal', options.scrollBehavior);\n }\n\n // Emit events\n if (options.emitEvents) {\n if (previousTab) {\n this.emit('nile-tab-hide', { value: previousTab.panel });\n }\n\n this.emit('nile-tab-show', { value: this.activeTab.panel });\n }\n }\n }\n\n private setAriaLabels() {\n // Link each tab with its corresponding panel\n this.tabs.forEach(tab => {\n const panel = this.panels.find(el => el.name === tab.panel);\n if (panel) {\n tab.setAttribute('aria-controls', panel.getAttribute('id')!);\n panel.setAttribute('aria-labelledby', tab.getAttribute('id')!);\n }\n });\n }\n\n private repositionIndicator() {\n const currentTab = this.getActiveTab();\n\n if (!currentTab || !this.indicator) {\n return;\n }\n\n const width = currentTab.clientWidth;\n const height = currentTab.clientHeight;\n const isRtl = false;\n\n // We can't used offsetLeft/offsetTop here due to a shadow parent issue where neither can getBoundingClientRect\n // because it provides invalid values for animating elements: https://bugs.chromium.org/p/chromium/issues/detail?id=920069\n const allTabs = this.getAllTabs();\n const precedingTabs = allTabs.slice(0, allTabs.indexOf(currentTab));\n const offset = precedingTabs.reduce(\n (previous, current) => ({\n left: previous.left + current.clientWidth + 12,\n top: previous.top + current.clientHeight + 12\n }),\n { left: 0, top: 0 }\n );\n\n switch (this.placement) {\n case 'top':\n case 'bottom':\n this.indicator.style.width = `${width - 5}px`;\n this.indicator.style.height = 'auto';\n this.indicator.style.translate = `${offset.left + 2}px`;\n break;\n\n case 'start':\n case 'end':\n this.indicator.style.width = 'auto';\n this.indicator.style.height = `${height}px`;\n this.indicator.style.translate = `0 ${offset.top}px`;\n break;\n }\n }\n\n // This stores tabs and panels so we can refer to a cache instead of calling querySelectorAll() multiple times.\n private syncTabsAndPanels() {\n this.tabs = this.getAllTabs({ includeDisabled: false });\n this.panels = this.getAllPanels();\n\n this.tabs.forEach((tab:any) => {\n tab.centered = this.centered;\n });\n\n // After updating, show or hide scroll controls as needed\n // this.updateComplete.then(() => this.updateScrollControls());\n }\n \n private handleToggleFromTab(e:CustomEvent){\n e.stopPropagation();\n this.activeTabName=e.detail.value;\n }\n\n}\n\nexport default NileTabGroup;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-tab-group': NileTabGroup;\n }\n}\n"]}
@@ -3,6 +3,7 @@ import './nile-tab-group';
3
3
  import { NileTabGroup } from './nile-tab-group';
4
4
  import '../nile-tab/nile-tab';
5
5
  import '../nile-tab-panel/nile-tab-panel';
6
+ import { repeat } from 'lit/directives/repeat.js';
6
7
  const wait = (ms = 50000) => new Promise(resolve => setTimeout(resolve, ms));
7
8
  describe('NileTabGroup with Tabs and Panels', () => {
8
9
  it('should render the tabs correctly', async () => {
@@ -83,28 +84,6 @@ describe('NileTabGroup with Tabs and Panels', () => {
83
84
  const activePanel = document.querySelector('nile-tab-panel[name="general"]');
84
85
  expect(activePanel?.shadowRoot?.querySelector("slot")?.className.includes('tab-panel--active')).to.be.true;
85
86
  });
86
- // it('should activate tab and panel when using keyboard navigation', async () => {
87
- // const el = await fixture<NileTabGroup>(html`
88
- // <nile-tab-group value="general">
89
- // <nile-tab slot="nav" panel="general">General</nile-tab>
90
- // <nile-tab slot="nav" panel="custom">Custom</nile-tab>
91
- // <nile-tab slot="nav" panel="advanced">Advanced</nile-tab>
92
- // <nile-tab-panel name="general">This is the general tab panel.</nile-tab-panel>
93
- // <nile-tab-panel name="custom">This is the custom tab panel.</nile-tab-panel>
94
- // <nile-tab-panel name="advanced">This is the advanced tab panel.</nile-tab-panel>
95
- // </nile-tab-group>
96
- // `);
97
- // const firstTab = document.querySelector('nile-tab[panel="general"]') as NileTab;
98
- // firstTab.focus();
99
- // // Simulate pressing the "ArrowRight" key
100
- // const event = new KeyboardEvent('keydown', { key: 'ArrowRight' });
101
- // firstTab.dispatchEvent(event);
102
- // await elementUpdated(el);
103
- // const secondTab = document?.querySelector('nile-tab[panel="custom"]');
104
- // expect(secondTab?.shadowRoot?.querySelector("div")?.className.includes('tab--active')).to.be.true;
105
- // const activePanel = document.querySelector('nile-tab-panel[name="custom"]');
106
- // expect(activePanel?.shadowRoot?.querySelector("slot")?.className.includes('tab-panel--active')).to.be.true;
107
- // });
108
87
  it('should emit "nile-tab-show" event when a tab is shown', async () => {
109
88
  const el = await fixture(html `
110
89
  <nile-tab-group value="general">
@@ -139,5 +118,60 @@ describe('NileTabGroup with Tabs and Panels', () => {
139
118
  const hideEvent = await hideEventPromise;
140
119
  expect(hideEvent.detail.value).to.equal('general');
141
120
  });
121
+ it('Scroll to the end and start correctly', async () => {
122
+ const NumetOfTags = 40;
123
+ const el = await fixture(html `
124
+ <nile-tab-group no-track value="custom">
125
+ ${repeat(Array.from({ length: NumetOfTags }, (_, index) => index + 1), el => el, (el) => html `<nile-tab slot="nav" panel="TabNumber${el}">TabNumber+${el}</nile-tab>`)}
126
+ </nile-tab-group>
127
+ `);
128
+ await elementUpdated(el);
129
+ el.hasScrollControls = true;
130
+ await elementUpdated(el);
131
+ const FirstElement = document.querySelector("nile-tab:first-child");
132
+ const LastElement = document.querySelector("nile-tab:last-child");
133
+ observer.observe(LastElement);
134
+ observer.observe(FirstElement);
135
+ await wait(1000);
136
+ expect(LastElement?.className.includes('visible')).to.be.false;
137
+ expect(FirstElement?.className.includes('visible')).to.be.true;
138
+ const scrollRightBtn = el.shadowRoot?.querySelector("nile-icon-button.tab-group__scroll-button.tab-group__scroll-button--start");
139
+ const scrollLeftBtn = el.shadowRoot?.querySelector("nile-icon-button.tab-group__scroll-button.tab-group__scroll-button--end");
140
+ scrollRightBtn?.click();
141
+ await elementUpdated(el);
142
+ await wait(1000);
143
+ expect(LastElement?.className.includes('visible')).to.be.true;
144
+ expect(FirstElement?.className.includes('visible')).to.be.false;
145
+ scrollLeftBtn?.click();
146
+ await elementUpdated(el);
147
+ });
148
+ it('Arrow key controls should work correctly', async () => {
149
+ const el = await fixture(html `
150
+ <nile-tab-group>
151
+ ${repeat(Array.from({ length: 10 }, (_, index) => index + 1), el => el, (el) => html `<nile-tab closable slot="nav" cloa panel="TabNumber${el}">TabNumber+${el}</nile-tab>`)}
152
+ </nile-tab-group>
153
+ `);
154
+ await elementUpdated(el);
155
+ const FirstTab = document.querySelector("nile-tab:first-child");
156
+ const SecondTab = document.querySelector("nile-tab:nth-child(2)");
157
+ const LastTab = document.querySelector("nile-tab:last-child");
158
+ FirstTab?.dispatchEvent(arrowRightEvent);
159
+ await elementUpdated(el);
160
+ expect(FirstTab?.shadowRoot?.querySelector("div")?.className.includes('tab--active')).to.be.false;
161
+ expect(SecondTab?.shadowRoot?.querySelector("div")?.className.includes('tab--active')).to.be.true;
162
+ SecondTab?.dispatchEvent(arrowLeftEvent);
163
+ await elementUpdated(el);
164
+ expect(FirstTab?.shadowRoot?.querySelector("div")?.className.includes('tab--active')).to.be.true;
165
+ expect(SecondTab?.shadowRoot?.querySelector("div")?.className.includes('tab--active')).to.be.false;
166
+ FirstTab?.dispatchEvent(arrowLeftEvent);
167
+ await elementUpdated(el);
168
+ expect(FirstTab?.shadowRoot?.querySelector("div")?.className.includes('tab--active')).to.be.false;
169
+ expect(LastTab?.shadowRoot?.querySelector("div")?.className.includes('tab--active')).to.be.true;
170
+ });
142
171
  });
172
+ const observer = new IntersectionObserver((entries, opts) => entries.forEach(entry => entry.target.classList.toggle('visible', entry.isIntersecting)), { root: null, threshold: .5 });
173
+ const arrowLeftEvent = new KeyboardEvent('keydown', { key: 'ArrowLeft', code: 'ArrowLeft', keyCode: 37, which: 37, bubbles: true, cancelable: true });
174
+ const arrowUpEvent = new KeyboardEvent('keydown', { key: 'ArrowUp', code: 'ArrowUp', keyCode: 38, which: 38, bubbles: true, cancelable: true });
175
+ const arrowRightEvent = new KeyboardEvent('keydown', { key: 'ArrowRight', code: 'ArrowRight', keyCode: 39, which: 39, bubbles: true, cancelable: true });
176
+ const arrowDownEvent = new KeyboardEvent('keydown', { key: 'ArrowDown', code: 'ArrowDown', keyCode: 40, which: 40, bubbles: true, cancelable: true });
143
177
  //# sourceMappingURL=nile-tab-group.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nile-tab-group.test.js","sourceRoot":"","sources":["../../../src/nile-tab-group/nile-tab-group.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { fixture, html, expect, elementUpdated, oneEvent } from '@open-wc/testing';\nimport './nile-tab-group';\nimport Sinon from 'sinon';\nimport { NileTabGroup } from './nile-tab-group';\nimport { NileTab } from '../nile-tab/nile-tab';\nimport '../nile-tab/nile-tab';\nimport '../nile-tab-panel/nile-tab-panel';\nimport { NileTabPanel } from '../nile-tab-panel/nile-tab-panel';\n\nconst wait=(ms:number=50000)=>new Promise(resolve => setTimeout(resolve, ms))\ndescribe('NileTabGroup with Tabs and Panels', () => {\n\n it('should render the tabs correctly', async () => {\n const el = await fixture<NileTabGroup>(html`\n <nile-tab-group no-track value=\"custom\">\n <nile-tab slot=\"nav\" panel=\"general\">General</nile-tab>\n <nile-tab slot=\"nav\" panel=\"custom\">Custom</nile-tab>\n <nile-tab slot=\"nav\" panel=\"advanced\">Advanced</nile-tab>\n <nile-tab slot=\"nav\" panel=\"disabled\" disabled>Disabled</nile-tab>\n <nile-tab-panel name=\"general\">This is the general tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"custom\">This is the custom tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"advanced\">This is the advanced tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"disabled\">This is a disabled tab panel.</nile-tab-panel>\n </nile-tab-group>\n `);\n\n expect(el).to.be.instanceOf(NileTabGroup);\n const tabs = document.querySelectorAll(\"nile-tab\");\n const panels = el.shadowRoot?.querySelectorAll('nile-tab-panel');\n \n expect(tabs?.length).to.equal(4);\n });\n\n it('should set the active tab and show corresponding panel', async () => {\n const el = await fixture<NileTabGroup>(html`\n <nile-tab-group value=\"custom\">\n <nile-tab slot=\"nav\" panel=\"general\">General</nile-tab>\n <nile-tab slot=\"nav\" panel=\"custom\">Custom</nile-tab>\n <nile-tab slot=\"nav\" panel=\"advanced\">Advanced</nile-tab>\n <nile-tab-panel name=\"general\">This is the general tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"custom\">This is the custom tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"advanced\">This is the advanced tab panel.</nile-tab-panel>\n </nile-tab-group>\n `);\n\n // Validate active tab\n const activeTab = document?.querySelector('nile-tab[panel=\"custom\"]');\n // Validate the visible panel\n const activePanel = document?.querySelector('nile-tab-panel[name=\"custom\"]');\n expect(activeTab?.shadowRoot?.querySelector(\"div\")?.className.includes('tab--active')).to.be.true;\n expect(activePanel?.shadowRoot?.querySelector(\"slot\")?.className.includes('tab-panel--active')).to.be.true;\n });\n\n it('should switch to the selected tab and display the corresponding panel', async () => {\n const el = await fixture<NileTabGroup>(html`\n <nile-tab-group value=\"general\">\n <nile-tab slot=\"nav\" panel=\"general\">General</nile-tab>\n <nile-tab slot=\"nav\" panel=\"custom\">Custom</nile-tab>\n <nile-tab slot=\"nav\" panel=\"advanced\">Advanced</nile-tab>\n <nile-tab-panel name=\"general\">This is the general tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"custom\">This is the custom tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"advanced\">This is the advanced tab panel.</nile-tab-panel>\n </nile-tab-group>\n `);\n\n const tabToClick = document?.querySelector<NileTab>('nile-tab[panel=\"custom\"]');\n tabToClick?.click();\n await elementUpdated(el);\n\n // Check that the clicked tab becomes active\n expect(tabToClick?.shadowRoot?.querySelector(\"div\")?.className.includes('tab--active')).to.be.true;\n\n // Check that the correct panel is now visible\n const activePanel = document?.querySelector('nile-tab-panel[name=\"custom\"]');\n expect(activePanel?.shadowRoot?.querySelector(\"slot\")?.className.includes('tab-panel--active')).to.be.true;\n });\n\n it('should disable tab and prevent it from being selected', async () => {\n const el = await fixture<NileTabGroup>(html`\n <nile-tab-group value=\"general\">\n <nile-tab slot=\"nav\" panel=\"general\">General</nile-tab>\n <nile-tab slot=\"nav\" panel=\"custom\">Custom</nile-tab>\n <nile-tab slot=\"nav\" panel=\"advanced\" disabled>Advanced</nile-tab>\n <nile-tab-panel name=\"general\">This is the general tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"custom\">This is the custom tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"advanced\">This is the advanced tab panel.</nile-tab-panel>\n </nile-tab-group>\n `);\n\n const disabledTab = document?.querySelector<NileTab>('nile-tab[panel=\"advanced\"]');\n expect(disabledTab?.hasAttribute('disabled')).to.be.true;\n\n // Try to click on the disabled tab\n disabledTab?.click();\n await elementUpdated(el);\n\n // The disabled tab should not become active\n expect(disabledTab?.shadowRoot?.querySelector(\"div\")?.className.includes('tab--active')).to.be.false;\n\n // The currently active tab and panel should remain unchanged\n const activePanel = document.querySelector('nile-tab-panel[name=\"general\"]');\n expect(activePanel?.shadowRoot?.querySelector(\"slot\")?.className.includes('tab-panel--active')).to.be.true;\n });\n\n // it('should activate tab and panel when using keyboard navigation', async () => {\n // const el = await fixture<NileTabGroup>(html`\n // <nile-tab-group value=\"general\">\n // <nile-tab slot=\"nav\" panel=\"general\">General</nile-tab>\n // <nile-tab slot=\"nav\" panel=\"custom\">Custom</nile-tab>\n // <nile-tab slot=\"nav\" panel=\"advanced\">Advanced</nile-tab>\n // <nile-tab-panel name=\"general\">This is the general tab panel.</nile-tab-panel>\n // <nile-tab-panel name=\"custom\">This is the custom tab panel.</nile-tab-panel>\n // <nile-tab-panel name=\"advanced\">This is the advanced tab panel.</nile-tab-panel>\n // </nile-tab-group>\n // `);\n\n // const firstTab = document.querySelector('nile-tab[panel=\"general\"]') as NileTab;\n // firstTab.focus();\n\n // // Simulate pressing the \"ArrowRight\" key\n // const event = new KeyboardEvent('keydown', { key: 'ArrowRight' });\n // firstTab.dispatchEvent(event);\n // await elementUpdated(el);\n\n // const secondTab = document?.querySelector('nile-tab[panel=\"custom\"]');\n // expect(secondTab?.shadowRoot?.querySelector(\"div\")?.className.includes('tab--active')).to.be.true;\n\n // const activePanel = document.querySelector('nile-tab-panel[name=\"custom\"]');\n // expect(activePanel?.shadowRoot?.querySelector(\"slot\")?.className.includes('tab-panel--active')).to.be.true;\n // });\n\n it('should emit \"nile-tab-show\" event when a tab is shown', async () => {\n const el = await fixture<NileTabGroup>(html`\n <nile-tab-group value=\"general\">\n <nile-tab slot=\"nav\" panel=\"general\">General</nile-tab>\n <nile-tab slot=\"nav\" panel=\"custom\">Custom</nile-tab>\n <nile-tab slot=\"nav\" panel=\"advanced\">Advanced</nile-tab>\n <nile-tab-panel name=\"general\">This is the general tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"custom\">This is the custom tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"advanced\">This is the advanced tab panel.</nile-tab-panel>\n </nile-tab-group>\n `);\n\n const showEventPromise = oneEvent(el, 'nile-tab-show');\n\n const tabToClick = document?.querySelector<NileTab>('nile-tab[panel=\"custom\"]');\n tabToClick?.click();\n\n const showEvent = await showEventPromise;\n expect(showEvent.detail.value).to.equal('custom');\n });\n\n it('should emit \"nile-tab-hide\" event when a tab is hidden', async () => {\n const el = await fixture<NileTabGroup>(html`\n <nile-tab-group value=\"general\">\n <nile-tab slot=\"nav\" panel=\"general\">General</nile-tab>\n <nile-tab slot=\"nav\" panel=\"custom\">Custom</nile-tab>\n <nile-tab slot=\"nav\" panel=\"advanced\">Advanced</nile-tab>\n <nile-tab-panel name=\"general\">This is the general tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"custom\">This is the custom tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"advanced\">This is the advanced tab panel.</nile-tab-panel>\n </nile-tab-group>\n `);\n\n const hideEventPromise = oneEvent(el, 'nile-tab-hide');\n\n const tabToClick = document?.querySelector<NileTab>('nile-tab[panel=\"custom\"]');\n tabToClick?.click();\n\n const hideEvent = await hideEventPromise;\n expect(hideEvent.detail.value).to.equal('general');\n });\n});\n"]}
1
+ {"version":3,"file":"nile-tab-group.test.js","sourceRoot":"","sources":["../../../src/nile-tab-group/nile-tab-group.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { fixture, html, expect, elementUpdated, oneEvent } from '@open-wc/testing';\nimport './nile-tab-group';\nimport Sinon from 'sinon';\nimport { NileTabGroup } from './nile-tab-group';\nimport { NileTab } from '../nile-tab/nile-tab';\nimport '../nile-tab/nile-tab';\nimport '../nile-tab-panel/nile-tab-panel';\nimport { NileTabPanel } from '../nile-tab-panel/nile-tab-panel';\nimport { repeat } from 'lit/directives/repeat.js';\nimport { NileIconButton } from '../nile-icon-button';\n\nconst wait = (ms: number = 50000) => new Promise(resolve => setTimeout(resolve, ms))\ndescribe('NileTabGroup with Tabs and Panels', () => {\n\n it('should render the tabs correctly', async () => {\n const el = await fixture<NileTabGroup>(html`\n <nile-tab-group no-track value=\"custom\">\n <nile-tab slot=\"nav\" panel=\"general\">General</nile-tab>\n <nile-tab slot=\"nav\" panel=\"custom\">Custom</nile-tab>\n <nile-tab slot=\"nav\" panel=\"advanced\">Advanced</nile-tab>\n <nile-tab slot=\"nav\" panel=\"disabled\" disabled>Disabled</nile-tab>\n <nile-tab-panel name=\"general\">This is the general tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"custom\">This is the custom tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"advanced\">This is the advanced tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"disabled\">This is a disabled tab panel.</nile-tab-panel>\n </nile-tab-group>\n `);\n\n expect(el).to.be.instanceOf(NileTabGroup);\n const tabs = document.querySelectorAll(\"nile-tab\");\n const panels = el.shadowRoot?.querySelectorAll('nile-tab-panel');\n\n expect(tabs?.length).to.equal(4);\n });\n\n it('should set the active tab and show corresponding panel', async () => {\n const el = await fixture<NileTabGroup>(html`\n <nile-tab-group value=\"custom\">\n <nile-tab slot=\"nav\" panel=\"general\">General</nile-tab>\n <nile-tab slot=\"nav\" panel=\"custom\">Custom</nile-tab>\n <nile-tab slot=\"nav\" panel=\"advanced\">Advanced</nile-tab>\n <nile-tab-panel name=\"general\">This is the general tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"custom\">This is the custom tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"advanced\">This is the advanced tab panel.</nile-tab-panel>\n </nile-tab-group>\n `);\n\n // Validate active tab\n const activeTab = document?.querySelector('nile-tab[panel=\"custom\"]');\n // Validate the visible panel\n const activePanel = document?.querySelector('nile-tab-panel[name=\"custom\"]');\n expect(activeTab?.shadowRoot?.querySelector(\"div\")?.className.includes('tab--active')).to.be.true;\n expect(activePanel?.shadowRoot?.querySelector(\"slot\")?.className.includes('tab-panel--active')).to.be.true;\n });\n\n it('should switch to the selected tab and display the corresponding panel', async () => {\n const el = await fixture<NileTabGroup>(html`\n <nile-tab-group value=\"general\">\n <nile-tab slot=\"nav\" panel=\"general\">General</nile-tab>\n <nile-tab slot=\"nav\" panel=\"custom\">Custom</nile-tab>\n <nile-tab slot=\"nav\" panel=\"advanced\">Advanced</nile-tab>\n <nile-tab-panel name=\"general\">This is the general tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"custom\">This is the custom tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"advanced\">This is the advanced tab panel.</nile-tab-panel>\n </nile-tab-group>\n `);\n\n const tabToClick = document?.querySelector<NileTab>('nile-tab[panel=\"custom\"]');\n tabToClick?.click();\n await elementUpdated(el);\n\n // Check that the clicked tab becomes active\n expect(tabToClick?.shadowRoot?.querySelector(\"div\")?.className.includes('tab--active')).to.be.true;\n\n // Check that the correct panel is now visible\n const activePanel = document?.querySelector('nile-tab-panel[name=\"custom\"]');\n expect(activePanel?.shadowRoot?.querySelector(\"slot\")?.className.includes('tab-panel--active')).to.be.true;\n });\n\n it('should disable tab and prevent it from being selected', async () => {\n const el = await fixture<NileTabGroup>(html`\n <nile-tab-group value=\"general\">\n <nile-tab slot=\"nav\" panel=\"general\">General</nile-tab>\n <nile-tab slot=\"nav\" panel=\"custom\">Custom</nile-tab>\n <nile-tab slot=\"nav\" panel=\"advanced\" disabled>Advanced</nile-tab>\n <nile-tab-panel name=\"general\">This is the general tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"custom\">This is the custom tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"advanced\">This is the advanced tab panel.</nile-tab-panel>\n </nile-tab-group>\n `);\n\n const disabledTab = document?.querySelector<NileTab>('nile-tab[panel=\"advanced\"]');\n expect(disabledTab?.hasAttribute('disabled')).to.be.true;\n\n // Try to click on the disabled tab\n disabledTab?.click();\n await elementUpdated(el);\n\n // The disabled tab should not become active\n expect(disabledTab?.shadowRoot?.querySelector(\"div\")?.className.includes('tab--active')).to.be.false;\n\n // The currently active tab and panel should remain unchanged\n const activePanel = document.querySelector('nile-tab-panel[name=\"general\"]');\n expect(activePanel?.shadowRoot?.querySelector(\"slot\")?.className.includes('tab-panel--active')).to.be.true;\n });\n\n it('should emit \"nile-tab-show\" event when a tab is shown', async () => {\n const el = await fixture<NileTabGroup>(html`\n <nile-tab-group value=\"general\">\n <nile-tab slot=\"nav\" panel=\"general\">General</nile-tab>\n <nile-tab slot=\"nav\" panel=\"custom\">Custom</nile-tab>\n <nile-tab slot=\"nav\" panel=\"advanced\">Advanced</nile-tab>\n <nile-tab-panel name=\"general\">This is the general tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"custom\">This is the custom tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"advanced\">This is the advanced tab panel.</nile-tab-panel>\n </nile-tab-group>\n `);\n\n const showEventPromise = oneEvent(el, 'nile-tab-show');\n\n const tabToClick = document?.querySelector<NileTab>('nile-tab[panel=\"custom\"]');\n tabToClick?.click();\n\n const showEvent = await showEventPromise;\n expect(showEvent.detail.value).to.equal('custom');\n });\n\n it('should emit \"nile-tab-hide\" event when a tab is hidden', async () => {\n const el = await fixture<NileTabGroup>(html`\n <nile-tab-group value=\"general\">\n <nile-tab slot=\"nav\" panel=\"general\">General</nile-tab>\n <nile-tab slot=\"nav\" panel=\"custom\">Custom</nile-tab>\n <nile-tab slot=\"nav\" panel=\"advanced\">Advanced</nile-tab>\n <nile-tab-panel name=\"general\">This is the general tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"custom\">This is the custom tab panel.</nile-tab-panel>\n <nile-tab-panel name=\"advanced\">This is the advanced tab panel.</nile-tab-panel>\n </nile-tab-group>\n `);\n\n const hideEventPromise = oneEvent(el, 'nile-tab-hide');\n\n const tabToClick = document?.querySelector<NileTab>('nile-tab[panel=\"custom\"]');\n tabToClick?.click();\n\n const hideEvent = await hideEventPromise;\n expect(hideEvent.detail.value).to.equal('general');\n });\n\n it('Scroll to the end and start correctly', async () => {\n const NumetOfTags=40\n const el = await fixture<NileTabGroup>(html`\n <nile-tab-group no-track value=\"custom\">\n\t\t\t\t${repeat(Array.from({ length: NumetOfTags }, (_, index) => index + 1), el => el, (el) => html`<nile-tab slot=\"nav\" panel=\"TabNumber${el}\">TabNumber+${el}</nile-tab>`)}\n </nile-tab-group>\n `)\n await elementUpdated(el);\n el.hasScrollControls = true;\n await elementUpdated(el);\n\n const FirstElement=document.querySelector<NileTab>(\"nile-tab:first-child\");\n const LastElement=document.querySelector<NileTab>(\"nile-tab:last-child\");\n observer.observe(LastElement as Element)\n observer.observe(FirstElement as Element)\n\n await wait(1000)\n expect(LastElement?.className.includes('visible')).to.be.false;\n expect(FirstElement?.className.includes('visible')).to.be.true;\n const scrollRightBtn=el.shadowRoot?.querySelector<NileIconButton>(\"nile-icon-button.tab-group__scroll-button.tab-group__scroll-button--start\")\n const scrollLeftBtn=el.shadowRoot?.querySelector<NileIconButton>(\"nile-icon-button.tab-group__scroll-button.tab-group__scroll-button--end\")\n scrollRightBtn?.click()\n await elementUpdated(el);\n await wait(1000)\n expect(LastElement?.className.includes('visible')).to.be.true;\n expect(FirstElement?.className.includes('visible')).to.be.false;\n scrollLeftBtn?.click()\n await elementUpdated(el);\n });\n\n it('Arrow key controls should work correctly', async () => {\n const el = await fixture<NileTabGroup>(html`\n <nile-tab-group>\n\t\t\t\t${repeat(Array.from({ length: 10 }, (_, index) => index + 1), el => el, (el) => html`<nile-tab closable slot=\"nav\" cloa panel=\"TabNumber${el}\">TabNumber+${el}</nile-tab>`)}\n </nile-tab-group>\n `)\n await elementUpdated(el);\n const FirstTab=document.querySelector<NileTab>(\"nile-tab:first-child\");\n const SecondTab=document.querySelector<NileTab>(\"nile-tab:nth-child(2)\");\n const LastTab=document.querySelector<NileTab>(\"nile-tab:last-child\");\n\n FirstTab?.dispatchEvent(arrowRightEvent)\n await elementUpdated(el);\n expect(FirstTab?.shadowRoot?.querySelector(\"div\")?.className.includes('tab--active')).to.be.false;\n expect(SecondTab?.shadowRoot?.querySelector(\"div\")?.className.includes('tab--active')).to.be.true;\n\n SecondTab?.dispatchEvent(arrowLeftEvent)\n await elementUpdated(el);\n expect(FirstTab?.shadowRoot?.querySelector(\"div\")?.className.includes('tab--active')).to.be.true;\n expect(SecondTab?.shadowRoot?.querySelector(\"div\")?.className.includes('tab--active')).to.be.false;\n\n FirstTab?.dispatchEvent(arrowLeftEvent)\n await elementUpdated(el);\n expect(FirstTab?.shadowRoot?.querySelector(\"div\")?.className.includes('tab--active')).to.be.false;\n expect(LastTab?.shadowRoot?.querySelector(\"div\")?.className.includes('tab--active')).to.be.true;\n });\n});\n\nconst observer = new IntersectionObserver(\n (entries, opts)=> entries.forEach(entry => entry.target.classList.toggle('visible', entry.isIntersecting)),\n { root: null, threshold: .5}\n)\n\nconst arrowLeftEvent = new KeyboardEvent('keydown', { key: 'ArrowLeft', code: 'ArrowLeft', keyCode: 37, which: 37, bubbles: true, cancelable: true });\nconst arrowUpEvent = new KeyboardEvent('keydown', { key: 'ArrowUp', code: 'ArrowUp', keyCode: 38, which: 38, bubbles: true, cancelable: true });\nconst arrowRightEvent = new KeyboardEvent('keydown', { key: 'ArrowRight', code: 'ArrowRight', keyCode: 39, which: 39, bubbles: true, cancelable: true });\nconst arrowDownEvent = new KeyboardEvent('keydown', { key: 'ArrowDown', code: 'ArrowDown', keyCode: 40, which: 40, bubbles: true, cancelable: true });\n"]}
@@ -24,7 +24,6 @@ export declare class NileTableBody extends NileElement {
24
24
  private sort__index;
25
25
  private search__index;
26
26
  static get styles(): CSSResultArray;
27
- protected BUBBLES: boolean;
28
27
  private getChildren;
29
28
  private getIndexValue;
30
29
  handleSlotchange(e: any): void;
@@ -24,7 +24,6 @@ let NileTableBody = class NileTableBody extends NileElement {
24
24
  super(...arguments);
25
25
  this.rows_data = [];
26
26
  this.header_rows_data = [];
27
- this.BUBBLES = false;
28
27
  /* #endregion */
29
28
  }
30
29
  static get styles() {
@@ -1 +1 @@
1
- {"version":3,"file":"nile-table-body.js","sourceRoot":"","sources":["../../../src/nile-table-body/nile-table-body.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,EAEL,IAAI,GAIL,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACb,KAAK,EACL,KAAK,EAGL,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAGnD;;;;;GAKG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,WAAW;IAAvC;QACL;;;WAGG;;QAMc,cAAS,GAAU,EAAE,CAAC;QACtB,qBAAgB,GAAU,EAAE,CAAC;QAQ3B,YAAO,GAAU,KAAK,CAAC;QAoE1C,gBAAgB;IAClB,CAAC;IAzEQ,MAAM,KAAK,MAAM;QACtB,OAAO,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAID,gBAAgB;IAEhB,qBAAqB;IAEb,WAAW,CAAC,KAAU,EAAE,OAAe;QAC7C,OAAO,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAEO,aAAa,CAAC,YAAoB;QACxC,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACrD,CAAC;IAED,gBAAgB,CAAC,CAAM;QACrB,IAAI,QAAQ,GAAQ,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,EAAE;YACtC,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE;gBACvE,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;gBAC/D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;oBACvB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAA2B,EAAE,EAAE;wBAC/C,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBACnC,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC/B;qBAAM;oBACL,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;oBACpE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC1B,WAAW,CAAC,OAAO,CAAC,CAAC,MAAuB,EAAE,KAAa,EAAE,EAAE;4BAC7D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wBAC/C,CAAC,CAAC,CAAC;qBACJ;iBACF;gBACD,QAAQ,GAAG,EAAE,CAAC;aACf;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,UAAU,CAAC,CAAM;QACvB,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACnD,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,KAAK,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,KAAK,EAAE;SACjD,CAAC,CAAC;IACL,CAAC;IAEO,YAAY,CAAC,CAAM;QACzB,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC7B,KAAK,EAAE,IAAI,CAAC,aAAa;YACzB,KAAK,EAAE,UAAU;SAClB,CAAC,CAAC;IACL,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,CAAA;;;;wBAIS,IAAI,CAAC,gBAAgB;6BAChB,IAAI,CAAC,UAAU;;yBAEnB,IAAI,CAAC,YAAY;;;KAGrC,CAAC;IACJ,CAAC;CAGF,CAAA;AAlFgB;IAAd,KAAK,CAAC,MAAM,CAAC;kDAA8B;AAE5C;IADC,kBAAkB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;kDACL;AAExB;IAAR,KAAK,EAAE;gDAA+B;AAC9B;IAAR,KAAK,EAAE;uDAAsC;AACrC;IAAR,KAAK,EAAE;kDAA6B;AAC5B;IAAR,KAAK,EAAE;oDAA+B;AAb5B,aAAa;IADzB,aAAa,CAAC,iBAAiB,CAAC;GACpB,aAAa,CAwFzB;SAxFY,aAAa;AA0F1B,eAAe,aAAa,CAAC","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 {\n LitElement,\n html,\n property,\n CSSResultArray,\n TemplateResult,\n} from 'lit-element';\nimport {\n customElement,\n query,\n state,\n queryAll,\n queryAssignedElements,\n queryAssignedNodes,\n} from 'lit/decorators.js';\nimport { styles } from './nile-table-body.css';\nimport NileElement from '../internal/nile-element';\nimport { getInnerHTML } from '../slot';\n\n/**\n * nile-table-body component.\n *\n * @tag nile-table-body\n *\n */\n@customElement('nile-table-body')\nexport class NileTableBody extends NileElement {\n /**\n * The styles for TableBody\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n\n @query('slot') defaultSlot: HTMLSlotElement;\n @queryAssignedNodes({ flatten: true })\n _childNodes!: Array<HTMLElement>;\n\n @state() private rows_data: any[] = [];\n @state() private header_rows_data: any[] = [];\n @state() private sort__index: number;\n @state() private search__index: number;\n\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n protected override BUBBLES: boolean=false;\n\n /* #endregion */\n\n /* #region Methods */\n\n private getChildren(child: any, tagname: string) {\n return child.querySelectorAll(tagname);\n }\n\n private getIndexValue(index__value: string): number {\n return this.header_rows_data.indexOf(index__value);\n }\n\n handleSlotchange(e: any) {\n let row_data: any = [];\n this._childNodes.forEach((child: any) => {\n if (child.tagName && child?.tagName?.toLowerCase() === 'nile-table-row') {\n let nilerows = this.getChildren(child, 'nile-table-cell-item');\n if (nilerows.length > 0) {\n nilerows.forEach((element: { innerHTML: any }) => {\n row_data.push(element.innerHTML);\n });\n this.rows_data.push(row_data);\n } else {\n let nileheaders = this.getChildren(child, 'nile-table-header-item');\n if (nileheaders.length > 0) {\n nileheaders.forEach((header: HTMLSlotElement, index: number) => {\n this.header_rows_data.push(header.innerHTML);\n });\n }\n }\n row_data = [];\n }\n });\n }\n\n private handleSort(e: any) {\n const { curr_sort_string, order } = e.detail.value;\n const header_index = this.getIndexValue(curr_sort_string);\n this.emit('nile-sort', {\n value: { header_index, curr_sort_string, order },\n });\n }\n\n private handleSearch(e: any) {\n const searchText = e.detail.value;\n this.search__index = this.getIndexValue(e.target.textContent);\n this.emit('nile-table-search', {\n index: this.search__index,\n value: searchText,\n });\n }\n\n public render(): TemplateResult {\n return html`\n <div class=\"base\" part=\"base\">\n <slot name=\"table__header\" class=\"table__header\"></slot>\n <slot\n @slotchange=${this.handleSlotchange}\n @nile-click-sort=${this.handleSort}\n class=\"nile__table__body\"\n @nile-search=${this.handleSearch}\n ></slot>\n </div>\n `;\n }\n\n /* #endregion */\n}\n\nexport default NileTableBody;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-table-body': NileTableBody;\n }\n}\n"]}
1
+ {"version":3,"file":"nile-table-body.js","sourceRoot":"","sources":["../../../src/nile-table-body/nile-table-body.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 {\n LitElement,\n html,\n property,\n CSSResultArray,\n TemplateResult,\n} from 'lit-element';\nimport {\n customElement,\n query,\n state,\n queryAll,\n queryAssignedElements,\n queryAssignedNodes,\n} from 'lit/decorators.js';\nimport { styles } from './nile-table-body.css';\nimport NileElement from '../internal/nile-element';\nimport { getInnerHTML } from '../slot';\n\n/**\n * nile-table-body component.\n *\n * @tag nile-table-body\n *\n */\n@customElement('nile-table-body')\nexport class NileTableBody extends NileElement {\n /**\n * The styles for TableBody\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n\n @query('slot') defaultSlot: HTMLSlotElement;\n @queryAssignedNodes({ flatten: true })\n _childNodes!: Array<HTMLElement>;\n\n @state() private rows_data: any[] = [];\n @state() private header_rows_data: any[] = [];\n @state() private sort__index: number;\n @state() private search__index: number;\n\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n /* #endregion */\n\n /* #region Methods */\n\n private getChildren(child: any, tagname: string) {\n return child.querySelectorAll(tagname);\n }\n\n private getIndexValue(index__value: string): number {\n return this.header_rows_data.indexOf(index__value);\n }\n\n handleSlotchange(e: any) {\n let row_data: any = [];\n this._childNodes.forEach((child: any) => {\n if (child.tagName && child?.tagName?.toLowerCase() === 'nile-table-row') {\n let nilerows = this.getChildren(child, 'nile-table-cell-item');\n if (nilerows.length > 0) {\n nilerows.forEach((element: { innerHTML: any }) => {\n row_data.push(element.innerHTML);\n });\n this.rows_data.push(row_data);\n } else {\n let nileheaders = this.getChildren(child, 'nile-table-header-item');\n if (nileheaders.length > 0) {\n nileheaders.forEach((header: HTMLSlotElement, index: number) => {\n this.header_rows_data.push(header.innerHTML);\n });\n }\n }\n row_data = [];\n }\n });\n }\n\n private handleSort(e: any) {\n const { curr_sort_string, order } = e.detail.value;\n const header_index = this.getIndexValue(curr_sort_string);\n this.emit('nile-sort', {\n value: { header_index, curr_sort_string, order },\n });\n }\n\n private handleSearch(e: any) {\n const searchText = e.detail.value;\n this.search__index = this.getIndexValue(e.target.textContent);\n this.emit('nile-table-search', {\n index: this.search__index,\n value: searchText,\n });\n }\n\n public render(): TemplateResult {\n return html`\n <div class=\"base\" part=\"base\">\n <slot name=\"table__header\" class=\"table__header\"></slot>\n <slot\n @slotchange=${this.handleSlotchange}\n @nile-click-sort=${this.handleSort}\n class=\"nile__table__body\"\n @nile-search=${this.handleSearch}\n ></slot>\n </div>\n `;\n }\n\n /* #endregion */\n}\n\nexport default NileTableBody;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-table-body': NileTableBody;\n }\n}\n"]}
@@ -31,7 +31,6 @@ import type { CSSResultGroup } from 'lit';
31
31
  */
32
32
  export declare class NileTag extends NileElement {
33
33
  static styles: CSSResultGroup;
34
- protected BUBBLES: boolean;
35
34
  /** The tag's theme variant. */
36
35
  variant: 'primary' | 'success' | 'normal' | 'warning' | 'error' | 'info';
37
36
  /** The tag's size. */
@@ -35,7 +35,6 @@ import NileElement from '../internal/nile-element';
35
35
  let NileTag = class NileTag extends NileElement {
36
36
  constructor() {
37
37
  super(...arguments);
38
- this.BUBBLES = false;
39
38
  /** The tag's theme variant. */
40
39
  this.variant = 'normal';
41
40
  /** The tag's size. */
@@ -1 +1 @@
1
- {"version":3,"file":"nile-tag.js","sourceRoot":"","sources":["../../../src/nile-tag/nile-tag.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 {\n LitElement,\n html,\n property,\n CSSResultArray,\n TemplateResult,\n} from 'lit-element';\nimport { styles } from './nile-tag.css';\nimport '../nile-icon-button/nile-icon-button';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement } from 'lit/decorators.js';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup } from 'lit';\n/**\n * Nile icon component.\n *\n * @tag nile-tag\n *\n */\n\n/**\n * @summary Tags are used as labels to organize things or to indicate a selection.\n * @status stable\n *\n * @dependency nile-icon-button\n *\n * @slot - The tag's content.\n *\n * @event nile-remove - Emitted when the remove button is activated.\n *\n * @csspart base - The component's base wrapper.\n * @csspart content - The tag's content.\n * @csspart remove-button - The tag's remove button, an `<nile-icon-button>`.\n * @csspart remove-button__base - The remove button's exported `base` part.\n */\n\n@customElement('nile-tag')\nexport class NileTag extends NileElement {\n static styles: CSSResultGroup = styles;\n\n protected override BUBBLES: boolean=false;\n\n /** The tag's theme variant. */\n @property({ reflect: true }) variant:\n | 'primary'\n | 'success'\n | 'normal'\n | 'warning'\n | 'error'\n | 'info' = 'normal';\n\n /** The tag's size. */\n @property({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Draws a pill-style tag with rounded edges. */\n @property({ type: Boolean, reflect: true }) pill = false;\n\n /** Makes the tag removable and shows a remove button. */\n @property({ type: Boolean }) removable = false;\n\n private handleRemoveClick() {\n this.emit('nile-remove');\n }\n\n getCloseButtonColor() {\n switch (this.variant) {\n case 'primary':\n return '--nile-colors-blue-500'; \n case 'success':\n return '--nile-colors-green-500'; \n case 'normal':\n return '--nile-colors-dark-500'; \n case 'warning':\n return '--nile-colors-yellow-500';\n case 'error':\n return '--nile-colors-red-500';\n case 'info':\n return '--nile-colors-blue-500';\n default:\n return '--nile-colors-dark-500'; \n }\n }\n \n\n render() {\n const colorVariable = this.getCloseButtonColor();\n return html`\n <span\n part=\"base\"\n class=${classMap({\n tag: true,\n\n // Types\n 'tag--primary': this.variant === 'primary',\n 'tag--success': this.variant === 'success',\n 'tag--normal': this.variant === 'normal',\n 'tag--warning': this.variant === 'warning',\n 'tag--error': this.variant === 'error',\n 'tag--info': this.variant === 'info',\n\n // Sizes\n 'tag--small': this.size === 'small',\n 'tag--medium': this.size === 'medium',\n 'tag--large': this.size === 'large',\n\n // Modifiers\n 'tag--pill': this.pill,\n 'tag--removable': this.removable,\n\n })}\n >\n <slot name=\"prefix\" part=\"prefix\" class=\"tag__prefix\"></slot>\n\n <slot part=\"content\" class=\"tag__content\"></slot>\n\n ${this.removable\n ? html`\n <nile-icon-button\n part=\"remove-button\"\n exportparts=\"base:remove-button__base\"\n name=\"close\"\n library=\"system\"\n label=\"remove\"\n class=\"tag__remove\"\n @click=${this.handleRemoveClick}\n tabindex=\"-1\"\n color=\"var(${colorVariable})\"\n ></nile-icon-button>\n `\n : ''}\n </span>\n `;\n }\n}\n\nexport default NileTag;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-tag': NileTag;\n }\n}\n"]}
1
+ {"version":3,"file":"nile-tag.js","sourceRoot":"","sources":["../../../src/nile-tag/nile-tag.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,EAEL,IAAI,EACJ,QAAQ,GAGT,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAEnD;;;;;GAKG;AAEH;;;;;;;;;;;;;;GAcG;AAGI,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,WAAW;IAAjC;;QAGL,+BAA+B;QACF,YAAO,GAMvB,QAAQ,CAAC;QAEtB,sBAAsB;QACO,SAAI,GAAiC,QAAQ,CAAC;QAE3E,iDAAiD;QACL,SAAI,GAAG,KAAK,CAAC;QAEzD,yDAAyD;QAC5B,cAAS,GAAG,KAAK,CAAC;IA2EjD,CAAC;IAzES,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3B,CAAC;IAED,mBAAmB;QACjB,QAAQ,IAAI,CAAC,OAAO,EAAE;YACpB,KAAK,SAAS;gBACZ,OAAQ,wBAAwB,CAAC;YACnC,KAAK,SAAS;gBACZ,OAAO,yBAAyB,CAAC;YACnC,KAAK,QAAQ;gBACX,OAAO,wBAAwB,CAAC;YAClC,KAAK,SAAS;gBACZ,OAAO,0BAA0B,CAAC;YACpC,KAAK,OAAO;gBACV,OAAO,uBAAuB,CAAC;YACjC,KAAK,MAAM;gBACT,OAAO,wBAAwB,CAAC;YAClC;gBACE,OAAO,wBAAwB,CAAC;SACnC;IACH,CAAC;IAGD,MAAM;QACJ,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACjD,OAAO,IAAI,CAAA;;;gBAGC,QAAQ,CAAC;YACf,GAAG,EAAE,IAAI;YAET,QAAQ;YACR,cAAc,EAAE,IAAI,CAAC,OAAO,KAAK,SAAS;YAC1C,cAAc,EAAE,IAAI,CAAC,OAAO,KAAK,SAAS;YAC1C,aAAa,EAAE,IAAI,CAAC,OAAO,KAAK,QAAQ;YACxC,cAAc,EAAE,IAAI,CAAC,OAAO,KAAK,SAAS;YAC1C,YAAY,EAAE,IAAI,CAAC,OAAO,KAAK,OAAO;YACtC,WAAW,EAAE,IAAI,CAAC,OAAO,KAAK,MAAM;YAEpC,QAAQ;YACR,YAAY,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO;YACnC,aAAa,EAAE,IAAI,CAAC,IAAI,KAAK,QAAQ;YACrC,YAAY,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO;YAEnC,YAAY;YACZ,WAAW,EAAE,IAAI,CAAC,IAAI;YACtB,gBAAgB,EAAE,IAAI,CAAC,SAAS;SAEjC,CAAC;;;;;;UAMA,IAAI,CAAC,SAAS;YACd,CAAC,CAAC,IAAI,CAAA;;;;;;;;yBAQS,IAAI,CAAC,iBAAiB;;6BAElB,aAAa;;aAE7B;YACH,CAAC,CAAC,EAAE;;KAET,CAAC;IACJ,CAAC;;AA5FM,cAAM,GAAmB,MAAM,CAAC;AAGV;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wCAMN;AAGO;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;qCAA+C;AAG/B;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;qCAAc;AAG5B;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CAAmB;AAnBpC,OAAO;IADnB,aAAa,CAAC,UAAU,CAAC;GACb,OAAO,CA8FnB;SA9FY,OAAO;AAgGpB,eAAe,OAAO,CAAC","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 {\n LitElement,\n html,\n property,\n CSSResultArray,\n TemplateResult,\n} from 'lit-element';\nimport { styles } from './nile-tag.css';\nimport '../nile-icon-button/nile-icon-button';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement } from 'lit/decorators.js';\nimport NileElement from '../internal/nile-element';\nimport type { CSSResultGroup } from 'lit';\n/**\n * Nile icon component.\n *\n * @tag nile-tag\n *\n */\n\n/**\n * @summary Tags are used as labels to organize things or to indicate a selection.\n * @status stable\n *\n * @dependency nile-icon-button\n *\n * @slot - The tag's content.\n *\n * @event nile-remove - Emitted when the remove button is activated.\n *\n * @csspart base - The component's base wrapper.\n * @csspart content - The tag's content.\n * @csspart remove-button - The tag's remove button, an `<nile-icon-button>`.\n * @csspart remove-button__base - The remove button's exported `base` part.\n */\n\n@customElement('nile-tag')\nexport class NileTag extends NileElement {\n static styles: CSSResultGroup = styles;\n\n /** The tag's theme variant. */\n @property({ reflect: true }) variant:\n | 'primary'\n | 'success'\n | 'normal'\n | 'warning'\n | 'error'\n | 'info' = 'normal';\n\n /** The tag's size. */\n @property({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Draws a pill-style tag with rounded edges. */\n @property({ type: Boolean, reflect: true }) pill = false;\n\n /** Makes the tag removable and shows a remove button. */\n @property({ type: Boolean }) removable = false;\n\n private handleRemoveClick() {\n this.emit('nile-remove');\n }\n\n getCloseButtonColor() {\n switch (this.variant) {\n case 'primary':\n return '--nile-colors-blue-500'; \n case 'success':\n return '--nile-colors-green-500'; \n case 'normal':\n return '--nile-colors-dark-500'; \n case 'warning':\n return '--nile-colors-yellow-500';\n case 'error':\n return '--nile-colors-red-500';\n case 'info':\n return '--nile-colors-blue-500';\n default:\n return '--nile-colors-dark-500'; \n }\n }\n \n\n render() {\n const colorVariable = this.getCloseButtonColor();\n return html`\n <span\n part=\"base\"\n class=${classMap({\n tag: true,\n\n // Types\n 'tag--primary': this.variant === 'primary',\n 'tag--success': this.variant === 'success',\n 'tag--normal': this.variant === 'normal',\n 'tag--warning': this.variant === 'warning',\n 'tag--error': this.variant === 'error',\n 'tag--info': this.variant === 'info',\n\n // Sizes\n 'tag--small': this.size === 'small',\n 'tag--medium': this.size === 'medium',\n 'tag--large': this.size === 'large',\n\n // Modifiers\n 'tag--pill': this.pill,\n 'tag--removable': this.removable,\n\n })}\n >\n <slot name=\"prefix\" part=\"prefix\" class=\"tag__prefix\"></slot>\n\n <slot part=\"content\" class=\"tag__content\"></slot>\n\n ${this.removable\n ? html`\n <nile-icon-button\n part=\"remove-button\"\n exportparts=\"base:remove-button__base\"\n name=\"close\"\n library=\"system\"\n label=\"remove\"\n class=\"tag__remove\"\n @click=${this.handleRemoveClick}\n tabindex=\"-1\"\n color=\"var(${colorVariable})\"\n ></nile-icon-button>\n `\n : ''}\n </span>\n `;\n }\n}\n\nexport default NileTag;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-tag': NileTag;\n }\n}\n"]}
@@ -29,7 +29,6 @@ import type { CSSResultGroup } from 'lit';
29
29
  */
30
30
  export declare class NileTextarea extends NileElement {
31
31
  static styles: CSSResultGroup;
32
- protected BUBBLES: boolean;
33
32
  private readonly hasSlotController;
34
33
  private resizeObserver;
35
34
  input: HTMLTextAreaElement;
@@ -40,7 +40,6 @@ import { unsafeHTML } from 'lit/directives/unsafe-html.js';
40
40
  let NileTextarea = class NileTextarea extends NileElement {
41
41
  constructor() {
42
42
  super(...arguments);
43
- this.BUBBLES = false;
44
43
  this.hasSlotController = new HasSlotController(this, 'help-text', 'label');
45
44
  this.hasFocus = false;
46
45
  this.title = ''; // make reactive to pass through