@aquera/nile-elements 1.6.6 → 1.6.8

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 (231) hide show
  1. package/README.md +7 -0
  2. package/dist/index.cjs.js +1 -1
  3. package/dist/index.esm.js +1 -1
  4. package/dist/index.js +1735 -489
  5. package/dist/internal/enum.cjs.js +1 -1
  6. package/dist/internal/enum.cjs.js.map +1 -1
  7. package/dist/internal/enum.esm.js +1 -1
  8. package/dist/nile-inline-sidebar/index.cjs.js +1 -1
  9. package/dist/nile-inline-sidebar/index.esm.js +1 -1
  10. package/dist/nile-inline-sidebar/nile-inline-sidebar.cjs.js +1 -1
  11. package/dist/nile-inline-sidebar/nile-inline-sidebar.cjs.js.map +1 -1
  12. package/dist/nile-inline-sidebar/nile-inline-sidebar.css.cjs.js +1 -1
  13. package/dist/nile-inline-sidebar/nile-inline-sidebar.css.cjs.js.map +1 -1
  14. package/dist/nile-inline-sidebar/nile-inline-sidebar.css.esm.js +76 -19
  15. package/dist/nile-inline-sidebar/nile-inline-sidebar.esm.js +42 -23
  16. package/dist/nile-inline-sidebar-group/nile-inline-sidebar-group.css.cjs.js +1 -1
  17. package/dist/nile-inline-sidebar-group/nile-inline-sidebar-group.css.cjs.js.map +1 -1
  18. package/dist/nile-inline-sidebar-group/nile-inline-sidebar-group.css.esm.js +8 -9
  19. package/dist/nile-inline-sidebar-item/index.cjs.js +1 -1
  20. package/dist/nile-inline-sidebar-item/index.esm.js +1 -1
  21. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.cjs.js +1 -1
  22. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.cjs.js.map +1 -1
  23. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.css.cjs.js +1 -1
  24. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.css.cjs.js.map +1 -1
  25. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.css.esm.js +16 -18
  26. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.esm.js +22 -4
  27. package/dist/nile-inline-sidebar-item-body/index.cjs.js +2 -0
  28. package/dist/nile-inline-sidebar-item-body/index.cjs.js.map +1 -0
  29. package/dist/nile-inline-sidebar-item-body/index.esm.js +1 -0
  30. package/dist/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.cjs.js +2 -0
  31. package/dist/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.cjs.js.map +1 -0
  32. package/dist/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.cjs.js +2 -0
  33. package/dist/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.cjs.js.map +1 -0
  34. package/dist/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.esm.js +53 -0
  35. package/dist/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.esm.js +13 -0
  36. package/dist/nile-inline-sidebar-item-header/index.cjs.js +2 -0
  37. package/dist/nile-inline-sidebar-item-header/index.cjs.js.map +1 -0
  38. package/dist/nile-inline-sidebar-item-header/index.esm.js +1 -0
  39. package/dist/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.cjs.js +2 -0
  40. package/dist/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.cjs.js.map +1 -0
  41. package/dist/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.cjs.js +2 -0
  42. package/dist/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.cjs.js.map +1 -0
  43. package/dist/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.esm.js +27 -0
  44. package/dist/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.esm.js +16 -0
  45. package/dist/nile-inline-sidebar-panel/index.cjs.js +2 -0
  46. package/dist/nile-inline-sidebar-panel/index.cjs.js.map +1 -0
  47. package/dist/nile-inline-sidebar-panel/index.esm.js +1 -0
  48. package/dist/nile-inline-sidebar-panel/nile-inline-sidebar-panel.cjs.js +2 -0
  49. package/dist/nile-inline-sidebar-panel/nile-inline-sidebar-panel.cjs.js.map +1 -0
  50. package/dist/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.cjs.js +2 -0
  51. package/dist/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.cjs.js.map +1 -0
  52. package/dist/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.esm.js +19 -0
  53. package/dist/nile-inline-sidebar-panel/nile-inline-sidebar-panel.esm.js +5 -0
  54. package/dist/nile-inline-sidebar-panel-group/index.cjs.js +2 -0
  55. package/dist/nile-inline-sidebar-panel-group/index.cjs.js.map +1 -0
  56. package/dist/nile-inline-sidebar-panel-group/index.esm.js +1 -0
  57. package/dist/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.cjs.js +2 -0
  58. package/dist/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.cjs.js.map +1 -0
  59. package/dist/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.cjs.js +2 -0
  60. package/dist/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.cjs.js.map +1 -0
  61. package/dist/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.esm.js +30 -0
  62. package/dist/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.esm.js +12 -0
  63. package/dist/nile-nav-tab/index.cjs.js +2 -0
  64. package/dist/nile-nav-tab/index.cjs.js.map +1 -0
  65. package/dist/nile-nav-tab/index.esm.js +1 -0
  66. package/dist/nile-nav-tab/nile-nav-tab.cjs.js +2 -0
  67. package/dist/nile-nav-tab/nile-nav-tab.cjs.js.map +1 -0
  68. package/dist/nile-nav-tab/nile-nav-tab.css.cjs.js +2 -0
  69. package/dist/nile-nav-tab/nile-nav-tab.css.cjs.js.map +1 -0
  70. package/dist/nile-nav-tab/nile-nav-tab.css.esm.js +190 -0
  71. package/dist/nile-nav-tab/nile-nav-tab.esm.js +36 -0
  72. package/dist/nile-nav-tab-group/index.cjs.js +2 -0
  73. package/dist/nile-nav-tab-group/index.cjs.js.map +1 -0
  74. package/dist/nile-nav-tab-group/index.esm.js +1 -0
  75. package/dist/nile-nav-tab-group/nile-nav-tab-group.cjs.js +4 -0
  76. package/dist/nile-nav-tab-group/nile-nav-tab-group.cjs.js.map +1 -0
  77. package/dist/nile-nav-tab-group/nile-nav-tab-group.css.cjs.js +2 -0
  78. package/dist/nile-nav-tab-group/nile-nav-tab-group.css.cjs.js.map +1 -0
  79. package/dist/nile-nav-tab-group/nile-nav-tab-group.css.esm.js +668 -0
  80. package/dist/nile-nav-tab-group/nile-nav-tab-group.esm.js +61 -0
  81. package/dist/nile-nav-tab-panel/index.cjs.js +2 -0
  82. package/dist/nile-nav-tab-panel/index.cjs.js.map +1 -0
  83. package/dist/nile-nav-tab-panel/index.esm.js +1 -0
  84. package/dist/nile-nav-tab-panel/nile-nav-tab-panel.cjs.js +2 -0
  85. package/dist/nile-nav-tab-panel/nile-nav-tab-panel.cjs.js.map +1 -0
  86. package/dist/nile-nav-tab-panel/nile-nav-tab-panel.css.cjs.js +2 -0
  87. package/dist/nile-nav-tab-panel/nile-nav-tab-panel.css.cjs.js.map +1 -0
  88. package/dist/nile-nav-tab-panel/nile-nav-tab-panel.css.esm.js +22 -0
  89. package/dist/nile-nav-tab-panel/nile-nav-tab-panel.esm.js +8 -0
  90. package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js +1 -1
  91. package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js.map +1 -1
  92. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js +1 -1
  93. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js.map +1 -1
  94. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.esm.js +5 -2
  95. package/dist/nile-rich-text-editor/nile-rich-text-editor.esm.js +1 -1
  96. package/dist/src/index.d.ts +7 -0
  97. package/dist/src/index.js +7 -0
  98. package/dist/src/index.js.map +1 -1
  99. package/dist/src/internal/enum.d.ts +6 -0
  100. package/dist/src/internal/enum.js +7 -0
  101. package/dist/src/internal/enum.js.map +1 -1
  102. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.d.ts +1 -0
  103. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.js +75 -17
  104. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.js.map +1 -1
  105. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.d.ts +17 -1
  106. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.js +147 -18
  107. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.js.map +1 -1
  108. package/dist/src/nile-inline-sidebar-group/nile-inline-sidebar-group.css.d.ts +1 -0
  109. package/dist/src/nile-inline-sidebar-group/nile-inline-sidebar-group.css.js +7 -7
  110. package/dist/src/nile-inline-sidebar-group/nile-inline-sidebar-group.css.js.map +1 -1
  111. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.css.d.ts +1 -1
  112. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.css.js +15 -17
  113. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.css.js.map +1 -1
  114. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.d.ts +7 -1
  115. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.js +63 -4
  116. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.js.map +1 -1
  117. package/dist/src/nile-inline-sidebar-item-body/index.d.ts +1 -0
  118. package/dist/src/nile-inline-sidebar-item-body/index.js +2 -0
  119. package/dist/src/nile-inline-sidebar-item-body/index.js.map +1 -0
  120. package/dist/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.d.ts +9 -0
  121. package/dist/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.js +62 -0
  122. package/dist/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.js.map +1 -0
  123. package/dist/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.d.ts +45 -0
  124. package/dist/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.js +110 -0
  125. package/dist/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.js.map +1 -0
  126. package/dist/src/nile-inline-sidebar-item-header/index.d.ts +1 -0
  127. package/dist/src/nile-inline-sidebar-item-header/index.js +2 -0
  128. package/dist/src/nile-inline-sidebar-item-header/index.js.map +1 -0
  129. package/dist/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.d.ts +9 -0
  130. package/dist/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.js +36 -0
  131. package/dist/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.js.map +1 -0
  132. package/dist/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.d.ts +34 -0
  133. package/dist/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.js +68 -0
  134. package/dist/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.js.map +1 -0
  135. package/dist/src/nile-inline-sidebar-panel/index.d.ts +1 -0
  136. package/dist/src/nile-inline-sidebar-panel/index.js +2 -0
  137. package/dist/src/nile-inline-sidebar-panel/index.js.map +1 -0
  138. package/dist/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.d.ts +9 -0
  139. package/dist/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.js +28 -0
  140. package/dist/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.js.map +1 -0
  141. package/dist/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.d.ts +35 -0
  142. package/dist/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.js +55 -0
  143. package/dist/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.js.map +1 -0
  144. package/dist/src/nile-inline-sidebar-panel-group/index.d.ts +1 -0
  145. package/dist/src/nile-inline-sidebar-panel-group/index.js +2 -0
  146. package/dist/src/nile-inline-sidebar-panel-group/index.js.map +1 -0
  147. package/dist/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.d.ts +9 -0
  148. package/dist/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.js +39 -0
  149. package/dist/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.js.map +1 -0
  150. package/dist/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.d.ts +43 -0
  151. package/dist/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.js +93 -0
  152. package/dist/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.js.map +1 -0
  153. package/dist/src/nile-nav-tab/index.d.ts +1 -0
  154. package/dist/src/nile-nav-tab/index.js +2 -0
  155. package/dist/src/nile-nav-tab/index.js.map +1 -0
  156. package/dist/src/nile-nav-tab/nile-nav-tab.css.d.ts +9 -0
  157. package/dist/src/nile-nav-tab/nile-nav-tab.css.js +199 -0
  158. package/dist/src/nile-nav-tab/nile-nav-tab.css.js.map +1 -0
  159. package/dist/src/nile-nav-tab/nile-nav-tab.d.ts +50 -0
  160. package/dist/src/nile-nav-tab/nile-nav-tab.js +190 -0
  161. package/dist/src/nile-nav-tab/nile-nav-tab.js.map +1 -0
  162. package/dist/src/nile-nav-tab/nile-nav-tab.test.d.ts +1 -0
  163. package/dist/src/nile-nav-tab/nile-nav-tab.test.js +656 -0
  164. package/dist/src/nile-nav-tab/nile-nav-tab.test.js.map +1 -0
  165. package/dist/src/nile-nav-tab-group/index.d.ts +1 -0
  166. package/dist/src/nile-nav-tab-group/index.js +2 -0
  167. package/dist/src/nile-nav-tab-group/index.js.map +1 -0
  168. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.css.d.ts +12 -0
  169. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.css.js +680 -0
  170. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.css.js.map +1 -0
  171. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.d.ts +119 -0
  172. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.js +765 -0
  173. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.js.map +1 -0
  174. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.test.d.ts +3 -0
  175. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.test.js +838 -0
  176. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.test.js.map +1 -0
  177. package/dist/src/nile-nav-tab-panel/index.d.ts +1 -0
  178. package/dist/src/nile-nav-tab-panel/index.js +2 -0
  179. package/dist/src/nile-nav-tab-panel/index.js.map +1 -0
  180. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.css.d.ts +15 -0
  181. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.css.js +37 -0
  182. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.css.js.map +1 -0
  183. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.d.ts +37 -0
  184. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.js +75 -0
  185. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.js.map +1 -0
  186. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.test.d.ts +1 -0
  187. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.test.js +534 -0
  188. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.test.js.map +1 -0
  189. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js +5 -2
  190. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js.map +1 -1
  191. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.d.ts +2 -1
  192. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js +9 -0
  193. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js.map +1 -1
  194. package/dist/src/version.js +1 -1
  195. package/dist/src/version.js.map +1 -1
  196. package/dist/tsconfig.tsbuildinfo +1 -1
  197. package/package.json +8 -3
  198. package/src/index.ts +7 -0
  199. package/src/internal/enum.ts +8 -1
  200. package/src/nile-inline-sidebar/nile-inline-sidebar.css.ts +75 -17
  201. package/src/nile-inline-sidebar/nile-inline-sidebar.ts +148 -18
  202. package/src/nile-inline-sidebar-group/nile-inline-sidebar-group.css.ts +7 -7
  203. package/src/nile-inline-sidebar-item/nile-inline-sidebar-item.css.ts +15 -17
  204. package/src/nile-inline-sidebar-item/nile-inline-sidebar-item.ts +74 -9
  205. package/src/nile-inline-sidebar-item-body/index.ts +1 -0
  206. package/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.ts +64 -0
  207. package/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.ts +110 -0
  208. package/src/nile-inline-sidebar-item-header/index.ts +1 -0
  209. package/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.ts +38 -0
  210. package/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.ts +69 -0
  211. package/src/nile-inline-sidebar-panel/index.ts +1 -0
  212. package/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.ts +30 -0
  213. package/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.ts +53 -0
  214. package/src/nile-inline-sidebar-panel-group/index.ts +1 -0
  215. package/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.ts +41 -0
  216. package/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.ts +101 -0
  217. package/src/nile-nav-tab/index.ts +1 -0
  218. package/src/nile-nav-tab/nile-nav-tab.css.ts +201 -0
  219. package/src/nile-nav-tab/nile-nav-tab.test.ts +768 -0
  220. package/src/nile-nav-tab/nile-nav-tab.ts +198 -0
  221. package/src/nile-nav-tab-group/index.ts +1 -0
  222. package/src/nile-nav-tab-group/nile-nav-tab-group.css.ts +682 -0
  223. package/src/nile-nav-tab-group/nile-nav-tab-group.test.ts +1009 -0
  224. package/src/nile-nav-tab-group/nile-nav-tab-group.ts +845 -0
  225. package/src/nile-nav-tab-panel/index.ts +1 -0
  226. package/src/nile-nav-tab-panel/nile-nav-tab-panel.css.ts +39 -0
  227. package/src/nile-nav-tab-panel/nile-nav-tab-panel.test.ts +797 -0
  228. package/src/nile-nav-tab-panel/nile-nav-tab-panel.ts +78 -0
  229. package/src/nile-rich-text-editor/nile-rich-text-editor.css.ts +5 -2
  230. package/src/nile-rich-text-editor/nile-rich-text-editor.ts +12 -1
  231. package/vscode-html-custom-data.json +272 -2
@@ -0,0 +1,198 @@
1
+ /**
2
+ * Copyright Aquera Inc 2023
3
+ *
4
+ * This source code is licensed under the BSD-3-Clause license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import { html, nothing } from 'lit';
9
+ import { customElement, property, query } from 'lit/decorators.js';
10
+ import { classMap } from 'lit/directives/class-map.js';
11
+ import type { CSSResultGroup } from 'lit';
12
+
13
+ import { styles } from './nile-nav-tab.css';
14
+ import '../nile-icon-button/nile-icon-button';
15
+ import { MouseKey } from '../internal/enum';
16
+ import { watch } from '../internal/watch';
17
+ import NileElement from '../internal/nile-element';
18
+ import '../nile-link/nile-link';
19
+ let id = 0;
20
+
21
+ @customElement('nile-nav-tab')
22
+ export class NileNavTab extends NileElement {
23
+ static styles: CSSResultGroup = styles;
24
+
25
+ private readonly attrId = ++id;
26
+ private readonly componentId = `nile-nav-tab-${this.attrId}`;
27
+
28
+ @query('.nav-tab') navTab!: HTMLElement;
29
+
30
+ /** The name of the tab panel this tab is associated with. */
31
+ @property({ reflect: true }) panel = '';
32
+
33
+ /** Draws the tab in an active state. */
34
+ @property({ type: Boolean, reflect: true }) active = false;
35
+
36
+ /** Makes the tab closable and shows a close button. */
37
+ @property({ type: Boolean }) closable = false;
38
+
39
+ /** Disables the tab and prevents selection. */
40
+ @property({ type: Boolean, reflect: true }) disabled = false;
41
+
42
+ @property({ type: Boolean, reflect: true }) centered = false;
43
+
44
+ @property({ type: String, reflect: true }) link?: string;
45
+
46
+ connectedCallback() {
47
+ super.connectedCallback();
48
+ this.setAttribute('role', 'tab');
49
+ this.syncA11yState();
50
+ }
51
+
52
+ firstUpdated() {
53
+ this.syncA11yState();
54
+ this.updateAccessibleName();
55
+ }
56
+
57
+ updated() {
58
+ this.syncA11yState();
59
+ this.updateAccessibleName();
60
+ }
61
+
62
+ private syncA11yState() {
63
+ this.id = this.id || this.componentId;
64
+ this.tabIndex = this.disabled ? -1 : this.active ? 0 : -1;
65
+
66
+ this.setAttribute('aria-selected', this.active ? 'true' : 'false');
67
+ this.setAttribute('aria-disabled', this.disabled ? 'true' : 'false');
68
+
69
+ if (this.disabled) {
70
+ this.setAttribute('aria-hidden', 'true');
71
+ } else {
72
+ this.removeAttribute('aria-hidden');
73
+ }
74
+ }
75
+
76
+ /**
77
+ * Give the host element the accessible name, since nile-link is hidden
78
+ * from the accessibility tree.
79
+ * Author `aria-label` (without `data-auto-aria-label`) is never overwritten so icon-only tabs can keep explicit names.
80
+ * Auto-derived names set `data-auto-aria-label="true"` so slot/text updates can refresh them.
81
+ */
82
+ private updateAccessibleName() {
83
+ const userDefinedAriaLabel =
84
+ this.hasAttribute('aria-label') && this.getAttribute('data-auto-aria-label') !== 'true';
85
+
86
+ if (userDefinedAriaLabel) {
87
+ return;
88
+ }
89
+
90
+ const label = (this.textContent || '').replace(/\s+/g, ' ').trim();
91
+
92
+ if (label) {
93
+ this.setAttribute('aria-label', label);
94
+ this.setAttribute('data-auto-aria-label', 'true');
95
+ } else {
96
+ this.removeAttribute('aria-label');
97
+ this.removeAttribute('data-auto-aria-label');
98
+ }
99
+ }
100
+
101
+ private handleCloseClick(event: Event) {
102
+ event.preventDefault();
103
+ event.stopPropagation();
104
+ this.emit('nile-close');
105
+ }
106
+
107
+ private handleTabClick(event: MouseEvent) {
108
+ if (this.disabled) {
109
+ event.preventDefault();
110
+ event.stopPropagation();
111
+ return;
112
+ }
113
+ const isModifiedClick =
114
+ Object.values(MouseKey).some(key => event[key as keyof MouseEvent]) ||
115
+ event.button !== 0;
116
+
117
+ if (isModifiedClick) {
118
+ return;
119
+ }
120
+
121
+ event.preventDefault();
122
+ }
123
+
124
+ @watch('active')
125
+ handleActiveChange() {
126
+ this.syncA11yState();
127
+ }
128
+
129
+ @watch('disabled')
130
+ handleDisabledChange() {
131
+ this.syncA11yState();
132
+ }
133
+
134
+ focus(options?: FocusOptions) {
135
+ super.focus(options);
136
+ }
137
+
138
+ blur() {
139
+ super.blur();
140
+ }
141
+
142
+ render() {
143
+ this.id = this.id || this.componentId;
144
+
145
+ return html`
146
+ <li part="base tab" class="nav-tab-container" role="presentation">
147
+ <nile-link
148
+ class=${classMap({
149
+ 'nav-tab': true,
150
+ 'tab--centered': this.centered,
151
+ 'nav-tab--active': this.active,
152
+ 'nav-tab--closable': this.closable,
153
+ 'nav-tab--disabled': this.disabled
154
+ })}
155
+ tabindex="-1"
156
+ role="none"
157
+ href=${this.link || nothing}
158
+ aria-hidden="true"
159
+ exportparts="
160
+ base:link,
161
+ prefix:link-prefix,
162
+ label:link-label,
163
+ suffix:link-suffix
164
+ "
165
+ @click=${this.handleTabClick}
166
+ >
167
+ <slot name="prefix" @slotchange=${this.updateAccessibleName}></slot>
168
+ <slot @slotchange=${this.updateAccessibleName}></slot>
169
+ <slot name="suffix" @slotchange=${this.updateAccessibleName}></slot>
170
+
171
+ ${this.closable
172
+ ? html`
173
+ <nile-icon-button
174
+ part="close-button"
175
+ exportparts="base:close-button__base"
176
+ name="var(--nile-icon-close, var(--ng-icon-x-close))"
177
+ library="system"
178
+ label="close"
179
+ class="nav-tab__close-button"
180
+ ?disabled=${this.disabled}
181
+ @click=${this.handleCloseClick}
182
+ tabindex="-1"
183
+ ></nile-icon-button>
184
+ `
185
+ : nothing}
186
+ </nile-link>
187
+ </li>
188
+ `;
189
+ }
190
+ }
191
+
192
+ export default NileNavTab;
193
+
194
+ declare global {
195
+ interface HTMLElementTagNameMap {
196
+ 'nile-nav-tab': NileNavTab;
197
+ }
198
+ }
@@ -0,0 +1 @@
1
+ export { NileNavTabGroup } from './nile-nav-tab-group';