@aquera/nile-elements 1.6.7 → 1.6.9

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 (255) hide show
  1. package/README.md +12 -0
  2. package/dist/index.cjs.js +1 -1
  3. package/dist/index.esm.js +1 -1
  4. package/dist/index.js +1735 -495
  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-auto-complete/nile-auto-complete.cjs.js +1 -1
  9. package/dist/nile-auto-complete/nile-auto-complete.cjs.js.map +1 -1
  10. package/dist/nile-auto-complete/nile-auto-complete.esm.js +1 -1
  11. package/dist/nile-calendar/nile-calendar.cjs.js +1 -1
  12. package/dist/nile-calendar/nile-calendar.cjs.js.map +1 -1
  13. package/dist/nile-calendar/nile-calendar.css.cjs.js +1 -1
  14. package/dist/nile-calendar/nile-calendar.css.cjs.js.map +1 -1
  15. package/dist/nile-calendar/nile-calendar.css.esm.js +0 -3
  16. package/dist/nile-calendar/nile-calendar.esm.js +2 -2
  17. package/dist/nile-dropdown/nile-dropdown.cjs.js +1 -1
  18. package/dist/nile-dropdown/nile-dropdown.cjs.js.map +1 -1
  19. package/dist/nile-dropdown/nile-dropdown.esm.js +1 -1
  20. package/dist/nile-inline-sidebar/index.cjs.js +1 -1
  21. package/dist/nile-inline-sidebar/index.esm.js +1 -1
  22. package/dist/nile-inline-sidebar/nile-inline-sidebar.cjs.js +1 -1
  23. package/dist/nile-inline-sidebar/nile-inline-sidebar.cjs.js.map +1 -1
  24. package/dist/nile-inline-sidebar/nile-inline-sidebar.css.cjs.js +1 -1
  25. package/dist/nile-inline-sidebar/nile-inline-sidebar.css.cjs.js.map +1 -1
  26. package/dist/nile-inline-sidebar/nile-inline-sidebar.css.esm.js +76 -19
  27. package/dist/nile-inline-sidebar/nile-inline-sidebar.esm.js +42 -23
  28. package/dist/nile-inline-sidebar-group/nile-inline-sidebar-group.css.cjs.js +1 -1
  29. package/dist/nile-inline-sidebar-group/nile-inline-sidebar-group.css.cjs.js.map +1 -1
  30. package/dist/nile-inline-sidebar-group/nile-inline-sidebar-group.css.esm.js +8 -9
  31. package/dist/nile-inline-sidebar-item/index.cjs.js +1 -1
  32. package/dist/nile-inline-sidebar-item/index.esm.js +1 -1
  33. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.cjs.js +1 -1
  34. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.cjs.js.map +1 -1
  35. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.css.cjs.js +1 -1
  36. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.css.cjs.js.map +1 -1
  37. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.css.esm.js +16 -18
  38. package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.esm.js +22 -4
  39. package/dist/nile-inline-sidebar-item-body/index.cjs.js +2 -0
  40. package/dist/nile-inline-sidebar-item-body/index.cjs.js.map +1 -0
  41. package/dist/nile-inline-sidebar-item-body/index.esm.js +1 -0
  42. package/dist/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.cjs.js +2 -0
  43. package/dist/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.cjs.js.map +1 -0
  44. package/dist/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.cjs.js +2 -0
  45. package/dist/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.cjs.js.map +1 -0
  46. package/dist/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.esm.js +53 -0
  47. package/dist/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.esm.js +13 -0
  48. package/dist/nile-inline-sidebar-item-header/index.cjs.js +2 -0
  49. package/dist/nile-inline-sidebar-item-header/index.cjs.js.map +1 -0
  50. package/dist/nile-inline-sidebar-item-header/index.esm.js +1 -0
  51. package/dist/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.cjs.js +2 -0
  52. package/dist/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.cjs.js.map +1 -0
  53. package/dist/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.cjs.js +2 -0
  54. package/dist/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.cjs.js.map +1 -0
  55. package/dist/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.esm.js +27 -0
  56. package/dist/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.esm.js +16 -0
  57. package/dist/nile-inline-sidebar-panel/index.cjs.js +2 -0
  58. package/dist/nile-inline-sidebar-panel/index.cjs.js.map +1 -0
  59. package/dist/nile-inline-sidebar-panel/index.esm.js +1 -0
  60. package/dist/nile-inline-sidebar-panel/nile-inline-sidebar-panel.cjs.js +2 -0
  61. package/dist/nile-inline-sidebar-panel/nile-inline-sidebar-panel.cjs.js.map +1 -0
  62. package/dist/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.cjs.js +2 -0
  63. package/dist/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.cjs.js.map +1 -0
  64. package/dist/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.esm.js +19 -0
  65. package/dist/nile-inline-sidebar-panel/nile-inline-sidebar-panel.esm.js +5 -0
  66. package/dist/nile-inline-sidebar-panel-group/index.cjs.js +2 -0
  67. package/dist/nile-inline-sidebar-panel-group/index.cjs.js.map +1 -0
  68. package/dist/nile-inline-sidebar-panel-group/index.esm.js +1 -0
  69. package/dist/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.cjs.js +2 -0
  70. package/dist/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.cjs.js.map +1 -0
  71. package/dist/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.cjs.js +2 -0
  72. package/dist/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.cjs.js.map +1 -0
  73. package/dist/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.esm.js +30 -0
  74. package/dist/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.esm.js +12 -0
  75. package/dist/nile-nav-tab/index.cjs.js +2 -0
  76. package/dist/nile-nav-tab/index.cjs.js.map +1 -0
  77. package/dist/nile-nav-tab/index.esm.js +1 -0
  78. package/dist/nile-nav-tab/nile-nav-tab.cjs.js +2 -0
  79. package/dist/nile-nav-tab/nile-nav-tab.cjs.js.map +1 -0
  80. package/dist/nile-nav-tab/nile-nav-tab.css.cjs.js +2 -0
  81. package/dist/nile-nav-tab/nile-nav-tab.css.cjs.js.map +1 -0
  82. package/dist/nile-nav-tab/nile-nav-tab.css.esm.js +190 -0
  83. package/dist/nile-nav-tab/nile-nav-tab.esm.js +36 -0
  84. package/dist/nile-nav-tab-group/index.cjs.js +2 -0
  85. package/dist/nile-nav-tab-group/index.cjs.js.map +1 -0
  86. package/dist/nile-nav-tab-group/index.esm.js +1 -0
  87. package/dist/nile-nav-tab-group/nile-nav-tab-group.cjs.js +4 -0
  88. package/dist/nile-nav-tab-group/nile-nav-tab-group.cjs.js.map +1 -0
  89. package/dist/nile-nav-tab-group/nile-nav-tab-group.css.cjs.js +2 -0
  90. package/dist/nile-nav-tab-group/nile-nav-tab-group.css.cjs.js.map +1 -0
  91. package/dist/nile-nav-tab-group/nile-nav-tab-group.css.esm.js +668 -0
  92. package/dist/nile-nav-tab-group/nile-nav-tab-group.esm.js +61 -0
  93. package/dist/nile-nav-tab-panel/index.cjs.js +2 -0
  94. package/dist/nile-nav-tab-panel/index.cjs.js.map +1 -0
  95. package/dist/nile-nav-tab-panel/index.esm.js +1 -0
  96. package/dist/nile-nav-tab-panel/nile-nav-tab-panel.cjs.js +2 -0
  97. package/dist/nile-nav-tab-panel/nile-nav-tab-panel.cjs.js.map +1 -0
  98. package/dist/nile-nav-tab-panel/nile-nav-tab-panel.css.cjs.js +2 -0
  99. package/dist/nile-nav-tab-panel/nile-nav-tab-panel.css.cjs.js.map +1 -0
  100. package/dist/nile-nav-tab-panel/nile-nav-tab-panel.css.esm.js +22 -0
  101. package/dist/nile-nav-tab-panel/nile-nav-tab-panel.esm.js +8 -0
  102. package/dist/nile-stepper-item/nile-stepper-item.cjs.js +1 -1
  103. package/dist/nile-stepper-item/nile-stepper-item.cjs.js.map +1 -1
  104. package/dist/nile-stepper-item/nile-stepper-item.esm.js +13 -13
  105. package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.cjs.js +1 -1
  106. package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.cjs.js.map +1 -1
  107. package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.esm.js +1 -1
  108. package/dist/src/index.d.ts +7 -0
  109. package/dist/src/index.js +7 -0
  110. package/dist/src/index.js.map +1 -1
  111. package/dist/src/internal/enum.d.ts +6 -0
  112. package/dist/src/internal/enum.js +7 -0
  113. package/dist/src/internal/enum.js.map +1 -1
  114. package/dist/src/nile-auto-complete/nile-auto-complete.js +1 -1
  115. package/dist/src/nile-auto-complete/nile-auto-complete.js.map +1 -1
  116. package/dist/src/nile-calendar/nile-calendar.css.js +0 -3
  117. package/dist/src/nile-calendar/nile-calendar.css.js.map +1 -1
  118. package/dist/src/nile-calendar/nile-calendar.js +2 -2
  119. package/dist/src/nile-calendar/nile-calendar.js.map +1 -1
  120. package/dist/src/nile-dropdown/nile-dropdown.d.ts +2 -0
  121. package/dist/src/nile-dropdown/nile-dropdown.js +21 -5
  122. package/dist/src/nile-dropdown/nile-dropdown.js.map +1 -1
  123. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.d.ts +1 -0
  124. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.js +75 -17
  125. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.js.map +1 -1
  126. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.d.ts +17 -1
  127. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.js +147 -18
  128. package/dist/src/nile-inline-sidebar/nile-inline-sidebar.js.map +1 -1
  129. package/dist/src/nile-inline-sidebar-group/nile-inline-sidebar-group.css.d.ts +1 -0
  130. package/dist/src/nile-inline-sidebar-group/nile-inline-sidebar-group.css.js +7 -7
  131. package/dist/src/nile-inline-sidebar-group/nile-inline-sidebar-group.css.js.map +1 -1
  132. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.css.d.ts +1 -1
  133. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.css.js +15 -17
  134. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.css.js.map +1 -1
  135. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.d.ts +7 -1
  136. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.js +63 -4
  137. package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.js.map +1 -1
  138. package/dist/src/nile-inline-sidebar-item-body/index.d.ts +1 -0
  139. package/dist/src/nile-inline-sidebar-item-body/index.js +2 -0
  140. package/dist/src/nile-inline-sidebar-item-body/index.js.map +1 -0
  141. package/dist/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.d.ts +9 -0
  142. package/dist/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.js +62 -0
  143. package/dist/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.js.map +1 -0
  144. package/dist/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.d.ts +45 -0
  145. package/dist/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.js +110 -0
  146. package/dist/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.js.map +1 -0
  147. package/dist/src/nile-inline-sidebar-item-header/index.d.ts +1 -0
  148. package/dist/src/nile-inline-sidebar-item-header/index.js +2 -0
  149. package/dist/src/nile-inline-sidebar-item-header/index.js.map +1 -0
  150. package/dist/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.d.ts +9 -0
  151. package/dist/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.js +36 -0
  152. package/dist/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.js.map +1 -0
  153. package/dist/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.d.ts +34 -0
  154. package/dist/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.js +68 -0
  155. package/dist/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.js.map +1 -0
  156. package/dist/src/nile-inline-sidebar-panel/index.d.ts +1 -0
  157. package/dist/src/nile-inline-sidebar-panel/index.js +2 -0
  158. package/dist/src/nile-inline-sidebar-panel/index.js.map +1 -0
  159. package/dist/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.d.ts +9 -0
  160. package/dist/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.js +28 -0
  161. package/dist/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.js.map +1 -0
  162. package/dist/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.d.ts +35 -0
  163. package/dist/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.js +55 -0
  164. package/dist/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.js.map +1 -0
  165. package/dist/src/nile-inline-sidebar-panel-group/index.d.ts +1 -0
  166. package/dist/src/nile-inline-sidebar-panel-group/index.js +2 -0
  167. package/dist/src/nile-inline-sidebar-panel-group/index.js.map +1 -0
  168. package/dist/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.d.ts +9 -0
  169. package/dist/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.js +39 -0
  170. package/dist/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.js.map +1 -0
  171. package/dist/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.d.ts +43 -0
  172. package/dist/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.js +93 -0
  173. package/dist/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.js.map +1 -0
  174. package/dist/src/nile-nav-tab/index.d.ts +1 -0
  175. package/dist/src/nile-nav-tab/index.js +2 -0
  176. package/dist/src/nile-nav-tab/index.js.map +1 -0
  177. package/dist/src/nile-nav-tab/nile-nav-tab.css.d.ts +9 -0
  178. package/dist/src/nile-nav-tab/nile-nav-tab.css.js +199 -0
  179. package/dist/src/nile-nav-tab/nile-nav-tab.css.js.map +1 -0
  180. package/dist/src/nile-nav-tab/nile-nav-tab.d.ts +50 -0
  181. package/dist/src/nile-nav-tab/nile-nav-tab.js +190 -0
  182. package/dist/src/nile-nav-tab/nile-nav-tab.js.map +1 -0
  183. package/dist/src/nile-nav-tab/nile-nav-tab.test.d.ts +1 -0
  184. package/dist/src/nile-nav-tab/nile-nav-tab.test.js +656 -0
  185. package/dist/src/nile-nav-tab/nile-nav-tab.test.js.map +1 -0
  186. package/dist/src/nile-nav-tab-group/index.d.ts +1 -0
  187. package/dist/src/nile-nav-tab-group/index.js +2 -0
  188. package/dist/src/nile-nav-tab-group/index.js.map +1 -0
  189. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.css.d.ts +12 -0
  190. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.css.js +680 -0
  191. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.css.js.map +1 -0
  192. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.d.ts +119 -0
  193. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.js +765 -0
  194. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.js.map +1 -0
  195. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.test.d.ts +3 -0
  196. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.test.js +838 -0
  197. package/dist/src/nile-nav-tab-group/nile-nav-tab-group.test.js.map +1 -0
  198. package/dist/src/nile-nav-tab-panel/index.d.ts +1 -0
  199. package/dist/src/nile-nav-tab-panel/index.js +2 -0
  200. package/dist/src/nile-nav-tab-panel/index.js.map +1 -0
  201. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.css.d.ts +15 -0
  202. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.css.js +37 -0
  203. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.css.js.map +1 -0
  204. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.d.ts +37 -0
  205. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.js +75 -0
  206. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.js.map +1 -0
  207. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.test.d.ts +1 -0
  208. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.test.js +534 -0
  209. package/dist/src/nile-nav-tab-panel/nile-nav-tab-panel.test.js.map +1 -0
  210. package/dist/src/nile-stepper-item/nile-stepper-item.js +1 -1
  211. package/dist/src/nile-stepper-item/nile-stepper-item.js.map +1 -1
  212. package/dist/src/nile-vertical-stepper-item/nile-vertical-stepper-item.js +1 -1
  213. package/dist/src/nile-vertical-stepper-item/nile-vertical-stepper-item.js.map +1 -1
  214. package/dist/src/version.js +1 -1
  215. package/dist/src/version.js.map +1 -1
  216. package/dist/tsconfig.tsbuildinfo +1 -1
  217. package/package.json +7 -2
  218. package/src/index.ts +7 -0
  219. package/src/internal/enum.ts +8 -1
  220. package/src/nile-auto-complete/nile-auto-complete.ts +1 -1
  221. package/src/nile-calendar/nile-calendar.css.ts +0 -3
  222. package/src/nile-calendar/nile-calendar.ts +2 -2
  223. package/src/nile-dropdown/nile-dropdown.ts +23 -5
  224. package/src/nile-inline-sidebar/nile-inline-sidebar.css.ts +75 -17
  225. package/src/nile-inline-sidebar/nile-inline-sidebar.ts +148 -18
  226. package/src/nile-inline-sidebar-group/nile-inline-sidebar-group.css.ts +7 -7
  227. package/src/nile-inline-sidebar-item/nile-inline-sidebar-item.css.ts +15 -17
  228. package/src/nile-inline-sidebar-item/nile-inline-sidebar-item.ts +74 -9
  229. package/src/nile-inline-sidebar-item-body/index.ts +1 -0
  230. package/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.css.ts +64 -0
  231. package/src/nile-inline-sidebar-item-body/nile-inline-sidebar-item-body.ts +110 -0
  232. package/src/nile-inline-sidebar-item-header/index.ts +1 -0
  233. package/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.css.ts +38 -0
  234. package/src/nile-inline-sidebar-item-header/nile-inline-sidebar-item-header.ts +69 -0
  235. package/src/nile-inline-sidebar-panel/index.ts +1 -0
  236. package/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.css.ts +30 -0
  237. package/src/nile-inline-sidebar-panel/nile-inline-sidebar-panel.ts +53 -0
  238. package/src/nile-inline-sidebar-panel-group/index.ts +1 -0
  239. package/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.css.ts +41 -0
  240. package/src/nile-inline-sidebar-panel-group/nile-inline-sidebar-panel-group.ts +101 -0
  241. package/src/nile-nav-tab/index.ts +1 -0
  242. package/src/nile-nav-tab/nile-nav-tab.css.ts +201 -0
  243. package/src/nile-nav-tab/nile-nav-tab.test.ts +768 -0
  244. package/src/nile-nav-tab/nile-nav-tab.ts +198 -0
  245. package/src/nile-nav-tab-group/index.ts +1 -0
  246. package/src/nile-nav-tab-group/nile-nav-tab-group.css.ts +682 -0
  247. package/src/nile-nav-tab-group/nile-nav-tab-group.test.ts +1009 -0
  248. package/src/nile-nav-tab-group/nile-nav-tab-group.ts +845 -0
  249. package/src/nile-nav-tab-panel/index.ts +1 -0
  250. package/src/nile-nav-tab-panel/nile-nav-tab-panel.css.ts +39 -0
  251. package/src/nile-nav-tab-panel/nile-nav-tab-panel.test.ts +797 -0
  252. package/src/nile-nav-tab-panel/nile-nav-tab-panel.ts +78 -0
  253. package/src/nile-stepper-item/nile-stepper-item.ts +1 -1
  254. package/src/nile-vertical-stepper-item/nile-vertical-stepper-item.ts +1 -1
  255. package/vscode-html-custom-data.json +273 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nile-nav-tab-group.cjs.js","sources":["../../../src/nile-nav-tab-group/nile-nav-tab-group.ts"],"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 { html, nothing } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styleMap } from 'lit/directives/style-map.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 NileNavTab from '../nile-nav-tab/nile-nav-tab';\nimport type NileNavTabPanel from '../nile-nav-tab-panel/nile-nav-tab-panel';\nimport { styles } from './nile-nav-tab-group.css';\nimport { MouseKey } from '../internal/enum';\nimport '../nile-icon-button/nile-icon-button';\n\n/**\n * Tab group navigation component.\n *\n * @tag nile-nav-tab-group\n *\n * @slot - Used for grouping tab panels in the tab group. Must be `<nile-nav-tab-panel>` elements.\n * @slot nav - Used for grouping tabs in the tab group. Must be `<nile-nav-tab>` elements.\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 toggle-frame - Toggle variant: absolutely positioned ring that draws the group chrome (tabs paint above it).\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 * @cssproperty --show-indicator-on-hover - Whether to show the indicator on hover.\n *\n * @event nile-close - Bubbled from a closable `<nile-nav-tab>`; re-emitted so parents can listen on this element.\n */\n@customElement('nile-nav-tab-group')\nexport class NileNavTabGroup extends NileElement {\n\n static styles: CSSResultGroup = styles;\n\n /**\n * Selection model (for reviewers):\n * - `activeTabName` is the internal source of truth; clicks and keyboard update it.\n * - `activeTabProp` / attribute `value` is the host-controlled API; changes in `updated()` copy into `activeTabName`.\n * - `setActiveTab()` syncs each tab’s `active` flag, each panel’s `active`, `activeTabProp` / `value`, indicator/pill geometry, and optionally emits `nile-tab-change`.\n * - `this.tabs` only includes non-disabled tabs (see `syncTabsAndPanels`); keyboard roving focus uses that list.\n */\n private activeTab?: NileNavTab;\n private mutationObserver: MutationObserver;\n private resizeObserver: ResizeObserver;\n private visibilityObserver: IntersectionObserver;\n private pillRepositionTimer: ReturnType<typeof setTimeout> | null = null;\n private pillTransitionClassTimer: ReturnType<typeof setTimeout> | null = null;\n private pillReady = false;\n private observedTabs = new Set<NileNavTab>();\n private tabs: NileNavTab[] = [];\n private panels: NileNavTabPanel[] = [];\n\n /** Tabs emit `nile-close` on the host; bubble is stopped so we re-emit from the group with `{ panel }` for consumers. */\n private readonly handleCloseEvent = (e: Event) => {\n if (e.target === this) return;\n\n const tab = e.target as NileNavTab | null;\n const panel = tab?.getAttribute('panel');\n\n if (!panel) return;\n\n // Other listeners on this host must not see the child event (no `detail`) after we synthesize one.\n e.stopImmediatePropagation();\n e.stopPropagation();\n\n this.syncIndicator();\n this.emit('nile-close', { panel });\n };\n\n /** Tracks visibility for snapping the indicator when a hidden parent (e.g. dropdown) is reopened. */\n private tabGroupWasIntersecting = false;\n\n /** Last measured nav width; used to detect layout resume after display:none / collapse. */\n private lastNavClientWidth = 0;\n\n @query('.nav-tab-group') tabGroup: HTMLElement;\n @query('.nav-tab-group__body') body: HTMLSlotElement;\n @query('.nav-tab-group__nav') nav: HTMLElement;\n @query('.nav-tab-group__indicator') indicator: HTMLElement;\n @query('.nav-tab-group__hover-indicator') hoverIndicator: HTMLElement;\n\n @property({ type: Boolean, reflect: true, attribute: true }) hasScrollControls = false;\n\n /** The placement of the tabs. */\n @property() placement: 'top' | 'bottom' | 'start' | 'end' = 'top';\n\n /** The currently active tab value. */\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 /** 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 @property({ type: String, reflect: true }) variant: 'underline' | 'filled' | 'toggle' | 'neutral-filled' | 'toggle-button' = 'underline';\n\n @property({ type: String, reflect: true }) indicatorPlacement = '';\n\n @property({ type: Boolean, reflect: true, attribute: true }) fullWidth = false;\n\n @property({ type: String, reflect: true }) width = '';\n\n @property({ type: Boolean, reflect: true, attribute: true }) showIndicatorOnHover = false;\n\n @state() activeTabName: string = '';\n\n private get showScrollControlButtons(): boolean {\n return !this.noScrollControls && this.hasScrollControls;\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n this.resizeObserver = new ResizeObserver(() => {\n this.setScrollControls();\n const nw = this.nav?.clientWidth ?? 0;\n const layoutResumed = this.lastNavClientWidth === 0 && nw > 0;\n this.lastNavClientWidth = nw;\n this.repositionIndicator({ skipTransition: layoutResumed });\n this.debouncedPositionPill();\n });\n\n this.mutationObserver = new MutationObserver(mutations => {\n if (mutations.some(m => !['aria-labelledby', 'aria-controls'].includes(m.attributeName!))) {\n setTimeout(() => this.setAriaLabels());\n }\n\n if (mutations.some(m => m.attributeName === 'disabled')) {\n this.syncTabsAndPanels();\n }\n\n if (mutations.some(m => m.attributeName === 'active')) {\n const activeTab = this.getAllTabs({ includeDisabled: false }).find(t => t.active);\n if (activeTab && activeTab.panel !== this.activeTabName) {\n this.activeTabName = activeTab.panel;\n }\n }\n\n if (mutations.some(m => m.type === 'childList' || m.type === 'characterData')) {\n this.repositionIndicator();\n this.debouncedPositionPill();\n requestAnimationFrame(() => this.setScrollControls());\n }\n });\n\n this.updateComplete.then(async () => {\n this.setScrollControls();\n await Promise.all(this.getAllTabs({ includeDisabled: true }).map(tab => tab.updateComplete));\n await Promise.all(this.getAllPanels().map(panel => panel.updateComplete));\n this.syncTabsAndPanels();\n\n if (this.activeTabProp) {\n this.activeTabName = this.activeTabProp;\n } else {\n const activeTab = this.getActiveTab();\n this.activeTabName = activeTab ? activeTab.panel : '';\n }\n\n // First paint: disable indicator transition so it jumps to the correct tab without sliding from (0,0).\n requestAnimationFrame(() => {\n if (this.indicator) {\n this.indicator.style.transition = 'none';\n }\n\n this.syncIndicator();\n this.positionPill();\n\n requestAnimationFrame(() => {\n if (this.indicator) {\n this.indicator.style.transition = '';\n }\n });\n });\n\n this.mutationObserver.observe(this, { attributes: true, childList: true, subtree: true, characterData: true });\n this.resizeObserver.observe(this.nav);\n\n this.visibilityObserver = new IntersectionObserver((entries) => {\n const entry = entries[0];\n const nowVisible = entry.isIntersecting && entry.intersectionRatio > 0;\n if (nowVisible) {\n this.setAriaLabels();\n this.debouncedPositionPill();\n const becameVisible = !this.tabGroupWasIntersecting;\n this.tabGroupWasIntersecting = true;\n this.repositionIndicator({ skipTransition: becameVisible });\n } else {\n this.tabGroupWasIntersecting = false;\n }\n });\n this.visibilityObserver.observe(this.tabGroup);\n });\n\n this.addEventListener('nile-close', this.handleCloseEvent);\n this.addEventListener('click', this.handleNavClick);\n this.addEventListener('keydown', this.handleKeyDown);\n }\n\n disconnectedCallback() {\n this.mutationObserver.disconnect();\n this.resizeObserver.disconnect();\n this.observedTabs.clear();\n this.visibilityObserver?.disconnect();\n this.removeEventListener('nile-close', this.handleCloseEvent);\n this.removeEventListener('click', this.handleNavClick);\n this.removeEventListener('keydown', this.handleKeyDown);\n }\n\n protected updated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n let nameChanged = _changedProperties.has('activeTabName');\n\n if (_changedProperties.has('activeTabProp') && this.activeTabName !== this.activeTabProp) {\n this.activeTabName = this.activeTabProp;\n nameChanged = true;\n }\n\n if (nameChanged) {\n const tab = this.getActiveTab();\n if (tab) {\n this.setActiveTab(tab, { scrollBehavior: 'smooth' });\n }\n }\n if (_changedProperties.has('noScrollControls')) {\n requestAnimationFrame(() => this.setScrollControls());\n }\n }\n\n @watch('placement', { waitUntilFirstUpdate: true })\n syncIndicator() {\n requestAnimationFrame(() => this.setScrollControls());\n if (!this.indicator) return;\n const tab = this.getActiveTab();\n\n if (tab && !tab.disabled) {\n this.indicator.style.display = 'block';\n this.repositionIndicator();\n } else {\n this.indicator.style.display = 'none';\n }\n }\n\n private handleNavClick(event: MouseEvent) {\n const tab = event.composedPath().find(\n (el): el is NileNavTab =>\n el instanceof HTMLElement && el.tagName.toLowerCase() === 'nile-nav-tab'\n );\n\n if (!tab) return;\n\n const tabsNow = this.getAllTabs({ includeDisabled: true });\n if (!tabsNow.includes(tab)) return;\n\n if (tab.hasAttribute('disabled') || tab.disabled) return;\n\n const isModifiedClick =\n Object.values(MouseKey).some(key => event[key as keyof MouseEvent]) || event.button !== 0;\n\n if (isModifiedClick) return;\n\n this.activeTabProp = tab.panel;\n this.activeTabName = tab.panel;\n tab.focus();\n }\n\n private positionPill(animate = false) {\n const pill = this.shadowRoot?.querySelector<HTMLElement>('.nav-tab-group__pill');\n if (!pill) return;\n\n if (this.pillTransitionClassTimer) {\n clearTimeout(this.pillTransitionClassTimer);\n this.pillTransitionClassTimer = null;\n }\n\n const tab = this.getActiveTab();\n if (!tab || tab.disabled) {\n pill.classList.add('nav-tab-group__pill--inactive');\n pill.classList.remove('nav-tab-group__pill--transitioning');\n return;\n }\n\n pill.classList.remove('nav-tab-group__pill--inactive');\n\n const target = tab.shadowRoot?.querySelector<HTMLElement>('.nav-tab-container');\n if (!target) return;\n\n const container = this.shadowRoot?.querySelector<HTMLElement>('.nav-tab-group__tabs');\n if (!container) return;\n\n if (target.offsetWidth === 0 || target.offsetHeight === 0) return;\n\n const box = this.getLayoutBoxRelativeToContainer(target, container);\n if (!box) return;\n\n const x = box.x;\n const y = box.y;\n const w = box.width;\n const h = box.height;\n\n const cw = container.clientWidth;\n const rightInset = Math.max(0, cw - x - w);\n\n if (animate) {\n const ease = 'cubic-bezier(0.4, 0, 0.2, 1)';\n pill.style.transition = `left 400ms ${ease}, right 400ms ${ease}, top 400ms ${ease}, height 400ms ${ease}`;\n if (this.variant === 'toggle') {\n pill.classList.add('nav-tab-group__pill--transitioning');\n }\n } else {\n pill.style.transition = '';\n if (this.variant === 'toggle') {\n pill.classList.remove('nav-tab-group__pill--transitioning');\n }\n }\n\n pill.style.transform = '';\n pill.style.left = `${x}px`;\n pill.style.right = `${rightInset}px`;\n pill.style.width = 'auto';\n pill.style.top = `${y}px`;\n pill.style.height = `${h}px`;\n pill.style.opacity = '1';\n\n if (!this.pillReady) {\n this.pillReady = true;\n }\n\n if (animate) {\n const onEnd = () => {\n pill.style.transition = '';\n pill.removeEventListener('transitionend', onEnd);\n };\n pill.addEventListener('transitionend', onEnd);\n if (this.variant === 'toggle') {\n this.pillTransitionClassTimer = setTimeout(() => {\n this.pillTransitionClassTimer = null;\n pill.classList.remove('nav-tab-group__pill--transitioning');\n }, 420);\n }\n }\n }\n\n private debouncedPositionPill() {\n if (this.pillRepositionTimer) {\n clearTimeout(this.pillRepositionTimer);\n }\n this.pillRepositionTimer = setTimeout(() => {\n this.pillRepositionTimer = null;\n this.positionPill();\n }, 150);\n }\n\n private handleTabHover(event: MouseEvent) {\n if (!this.showIndicatorOnHover) return;\n\n const tab = event.composedPath().find(\n (el): el is NileNavTab =>\n el instanceof HTMLElement && el.tagName.toLowerCase() === 'nile-nav-tab'\n );\n\n if (!tab || tab.disabled || tab.hasAttribute('disabled')) return;\n\n const tabsNow = this.getAllTabs({ includeDisabled: true });\n if (!tabsNow.includes(tab)) return;\n\n this.positionHoverIndicator(tab);\n }\n\n private handleTabHoverLeave() {\n if (!this.showIndicatorOnHover || !this.hoverIndicator) return;\n this.hoverIndicator.style.opacity = '0';\n }\n\n private positionHoverIndicator(tab: NileNavTab) {\n if (!this.hoverIndicator) return;\n\n const container = this.shadowRoot?.querySelector<HTMLElement>('.nav-tab-group__tabs');\n if (!container) return;\n\n const target = tab.shadowRoot?.querySelector<HTMLElement>('.nav-tab-container');\n if (!target) return;\n\n const layoutBox = this.getLayoutBoxRelativeToContainer(target, container);\n if (!layoutBox) return;\n\n this.hoverIndicator.style.transition = 'none';\n\n switch (this.placement) {\n case 'top':\n case 'bottom':\n this.hoverIndicator.style.width = `${target.offsetWidth}px`;\n this.hoverIndicator.style.height = 'auto';\n this.hoverIndicator.style.translate = `${layoutBox.x}px 0px`;\n break;\n\n case 'start':\n case 'end':\n this.hoverIndicator.style.height = `${target.offsetHeight}px`;\n this.hoverIndicator.style.width = 'auto';\n this.hoverIndicator.style.translate = `0px ${layoutBox.y}px`;\n break;\n }\n\n this.hoverIndicator.style.opacity = '1';\n }\n\n render() {\n const usesPill =\n this.variant === 'filled' ||\n this.variant === 'neutral-filled' ||\n this.variant === 'toggle' ||\n this.variant === 'toggle-button';\n\n const showsIndicator =\n this.variant !== 'filled' &&\n this.variant !== 'neutral-filled' &&\n this.variant !== 'toggle-button' &&\n this.variant !== 'toggle';\n\n const toggleVariant = this.variant === 'toggle';\n\n return html`\n <div\n part=\"base\"\n class=${classMap({\n 'nav-tab-group': true,\n 'nav-tab-group--top': this.placement === 'top',\n 'nav-tab-group--bottom': this.placement === 'bottom',\n 'nav-tab-group--start': this.placement === 'start',\n 'nav-tab-group--end': this.placement === 'end',\n 'nav-tab-group--rtl': true,\n 'nav-tab-group--has-scroll-controls': this.showScrollControlButtons,\n 'hide__track': this.noTrack,\n })}\n style=${styleMap(this.width ? { '--nav-tab-item-width': this.width } : {})}\n >\n <nav class=\"nav-tab-group__nav-container\" part=\"nav\">\n ${toggleVariant\n ? html`<div class=\"nav-tab-group__toggle-frame\" part=\"toggle-frame\"></div>`\n : nothing}\n ${this.showScrollControlButtons\n ? html`\n <nile-icon-button\n part=\"scroll-button scroll-button--start\"\n exportparts=\"base:scroll-button__base\"\n class=\"nav-tab-group__scroll-button nav-tab-group__scroll-button--start\"\n name='var(--nile-icon-arrow-right, var(--ng-icon-chevron-right))'\n library=\"system\"\n label=\"scrollToStart\"\n @click=${this.handleScrollToEnd}\n ></nile-icon-button>\n `\n : nothing}\n\n <div part=\"tab-container\" class=\"nav-tab-group__nav\">\n <ul part=\"tabs\" class=\"nav-tab-group__tabs\" role=\"tablist\">\n ${showsIndicator ? html`\n <div part=\"active-tab-indicator-path\" class=\"nav-tab-group__indicator__path\"></div>\n <div\n part=\"active-tab-indicator\"\n class=${classMap({\n 'nav-tab-group__indicator': !this.noTrack,\n })}\n ></div>\n ` : nothing}\n\n ${!this.noTrack && showsIndicator && this.showIndicatorOnHover ? html`\n <div class=\"nav-tab-group__hover-indicator\" part=\"hover-tab-indicator\"></div>\n ` : nothing}\n\n ${usesPill ? html`<div class=\"nav-tab-group__pill\" part=\"active-tab-pill\"></div>` : nothing}\n\n <slot\n name=\"nav\"\n @mouseover=${this.handleTabHover}\n @mouseleave=${this.handleTabHoverLeave}\n @slotchange=${this.syncTabsAndPanels}\n ></slot>\n </ul>\n </div>\n\n ${this.showScrollControlButtons\n ? html`\n <nile-icon-button\n part=\"scroll-button scroll-button--end\"\n exportparts=\"base:scroll-button__base\"\n class=\"nav-tab-group__scroll-button nav-tab-group__scroll-button--end\"\n name='var(--nile-icon-arrow-left, var(--ng-icon-chevron-left))'\n library=\"system\"\n label=\"scrollToEnd\"\n @click=${this.handleScrollToStart}\n ></nile-icon-button>\n `\n : nothing}\n </nav>\n\n <slot part=\"body\" class=\"nav-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 const navTabs = slot.assignedElements().filter(\n (el): el is NileNavTab => el.tagName.toLowerCase() === 'nile-nav-tab'\n );\n return options.includeDisabled ? navTabs : navTabs.filter(tab => !tab.disabled);\n }\n\n private getAllPanels() {\n return [...this.body.assignedElements()].filter(\n el => el.tagName.toLowerCase() === 'nile-nav-tab-panel'\n ) as NileNavTabPanel[];\n }\n\n /**\n * Resolves the tab to treat as selected for indicator/pill wiring.\n * Prefer `activeTabName` match; if empty (before init), fall back to `.active` or first usable tab.\n */\n private getActiveTab() {\n return this.tabs.find(el =>\n this.activeTabName ? el.panel === this.activeTabName : el.active\n ) ?? this.tabs.find(el => !el.disabled) ?? this.tabs[0];\n }\n\n /** Reflects horizontal overflow into `hasScrollControls` (top/bottom only; vertical stacks do not scroll this strip). */\n setScrollControls() {\n if (!this.nav) return;\n if (this.noScrollControls) {\n this.hasScrollControls = false;\n return;\n }\n this.hasScrollControls =\n ['top', 'bottom'].includes(this.placement) &&\n this.nav.scrollWidth > this.nav.clientWidth;\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n const tab = event.composedPath().find(\n (el): el is NileNavTab =>\n el instanceof HTMLElement && el.tagName.toLowerCase() === 'nile-nav-tab'\n );\n\n if (tab?.disabled) {\n event.preventDefault();\n return;\n }\n\n if (!tab || !this.tabs.includes(tab)) {\n return;\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.activeTabProp = tab.panel;\n this.activeTabName = tab.panel;\n return;\n }\n\n const navKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'];\n if (!navKeys.includes(event.key)) return;\n\n let index = this.tabs.indexOf(tab);\n const isHorizontal = ['top', 'bottom'].includes(this.placement);\n const isRtl = getComputedStyle(this).direction === 'rtl';\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 (isHorizontal &&\n ((isRtl && event.key === 'ArrowRight') || (!isRtl && event.key === 'ArrowLeft'))) ||\n (['start', 'end'].includes(this.placement) && event.key === 'ArrowUp')\n ) {\n index--;\n } else if (\n (isHorizontal &&\n ((isRtl && event.key === 'ArrowLeft') || (!isRtl && event.key === 'ArrowRight'))) ||\n (['start', 'end'].includes(this.placement) && event.key === 'ArrowDown')\n ) {\n index++;\n }\n\n if (index < 0) index = this.tabs.length - 1;\n if (index > this.tabs.length - 1) index = 0;\n\n this.tabs[index].focus({ preventScroll: true });\n\n if (isHorizontal) {\n scrollIntoView(this.tabs[index], this.nav, 'horizontal');\n }\n\n event.preventDefault();\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: NileNavTab, 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 const previousTab = this.activeTab;\n this.activeTab = tab;\n if (this.activeTabProp !== this.activeTab.panel) {\n this.activeTabProp = this.activeTab.panel;\n }\n\n this.tabs.forEach(el => (el.active = el === this.activeTab));\n this.panels.forEach(el => (el.active = el.name === this.activeTab?.panel));\n this.syncIndicator();\n this.positionPill(this.pillReady);\n\n if (['top', 'bottom'].includes(this.placement)) {\n scrollIntoView(this.activeTab, this.nav, 'horizontal', options.scrollBehavior);\n }\n\n if (options.emitEvents) {\n this.emit('nile-tab-change', {\n value: this.activeTab.panel,\n previousValue: previousTab?.panel ?? null,\n index: this.tabs.indexOf(this.activeTab),\n previousIndex: previousTab ? this.tabs.indexOf(previousTab) : -1,\n link: this.activeTab.link\n });\n }\n }\n }\n\n private setAriaLabels() {\n const allTabs = this.getAllTabs({ includeDisabled: true });\n for (const tab of allTabs) {\n const panel = this.panels.find(el => el.name === tab.panel);\n if (tab.disabled) {\n tab.removeAttribute('aria-controls');\n if (panel) panel.removeAttribute('aria-labelledby');\n continue;\n }\n if (!panel) continue;\n const panelId = panel.getAttribute('id');\n const tabId = tab.getAttribute('id');\n if (!panelId || !tabId) continue;\n\n tab.setAttribute('aria-controls', panelId);\n panel.setAttribute('aria-labelledby', tabId);\n }\n }\n\n \n private getRelativeOffsetToAncestor(element: HTMLElement, ancestor: HTMLElement): { x: number; y: number } | null {\n let x = 0;\n let y = 0;\n let el: HTMLElement | null = element;\n while (el && el !== ancestor) {\n x += el.offsetLeft;\n y += el.offsetTop;\n el = el.offsetParent as HTMLElement | null;\n }\n return el === ancestor ? { x, y } : null;\n }\n\n private getLayoutBoxRelativeToContainer(\n target: HTMLElement,\n container: HTMLElement\n ): { x: number; y: number; width: number; height: number } | null {\n const c = container.getBoundingClientRect();\n const r = target.getBoundingClientRect();\n if (r.width === 0 || r.height === 0) return null;\n\n const scaleX = container.offsetWidth > 0 ? c.width / container.offsetWidth : 1;\n const scaleY = container.offsetHeight > 0 ? c.height / container.offsetHeight : 1;\n\n if (scaleX > 0 && scaleY > 0 && Number.isFinite(scaleX) && Number.isFinite(scaleY)) {\n const scaleIsUnity =\n Math.abs(scaleX - 1) < 0.001 && Math.abs(scaleY - 1) < 0.001;\n if (scaleIsUnity) {\n const off = this.getRelativeOffsetToAncestor(target, container);\n if (off) {\n return {\n x: off.x,\n y: off.y,\n width: target.offsetWidth,\n height: target.offsetHeight,\n };\n }\n }\n\n const x = (r.left - c.left) / scaleX;\n const y = (r.top - c.top) / scaleY;\n let width = r.width / scaleX;\n let height = r.height / scaleY;\n const ow = target.offsetWidth;\n const oh = target.offsetHeight;\n if (ow > 0) width = Math.min(width, ow);\n if (oh > 0) height = Math.min(height, oh);\n return { x, y, width, height };\n }\n\n const offset = this.getRelativeOffsetToAncestor(target, container);\n if (!offset) return null;\n return {\n x: offset.x,\n y: offset.y,\n width: target.offsetWidth,\n height: target.offsetHeight,\n };\n }\n\n private repositionIndicator(options?: { skipTransition?: boolean }) {\n const currentTab = this.getActiveTab();\n if (!currentTab || !this.indicator) return;\n\n const container = this.shadowRoot?.querySelector<HTMLElement>('.nav-tab-group__tabs');\n if (!container) return;\n\n const target = currentTab.shadowRoot?.querySelector<HTMLElement>('.nav-tab-container');\n if (!target) return;\n\n const skipTransition = options?.skipTransition === true;\n if (skipTransition) {\n this.indicator.style.transition = 'none';\n }\n\n const layoutBox = this.getLayoutBoxRelativeToContainer(target, container);\n if (!layoutBox) {\n if (skipTransition) {\n requestAnimationFrame(() => {\n if (this.indicator) this.indicator.style.transition = '';\n });\n }\n return;\n }\n\n const x = layoutBox.x;\n const y = layoutBox.y;\n\n switch (this.placement) {\n case 'top':\n case 'bottom':\n this.indicator.style.width = `${layoutBox.width}px`;\n this.indicator.style.height = 'auto';\n this.indicator.style.translate = `${x}px 0px`;\n break;\n\n case 'start':\n case 'end':\n this.indicator.style.width = 'auto';\n this.indicator.style.height = `${layoutBox.height}px`;\n this.indicator.style.translate = `0px ${y}px`;\n break;\n }\n\n if (skipTransition) {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (this.indicator) this.indicator.style.transition = '';\n });\n });\n }\n }\n\n private syncTabsAndPanels() {\n this.tabs = this.getAllTabs({ includeDisabled: false });\n this.panels = this.getAllPanels();\n\n const allTabs = this.getAllTabs({ includeDisabled: true });\n const enabledTabs = this.getAllTabs({ includeDisabled: false });\n const size = enabledTabs.length;\n\n const currentTabs = new Set(allTabs);\n\n for (const tab of this.observedTabs) {\n if (!currentTabs.has(tab)) {\n this.resizeObserver.unobserve(tab);\n this.observedTabs.delete(tab);\n }\n }\n\n allTabs.forEach(tab => {\n tab.centered = this.centered;\n if (tab.disabled) {\n tab.removeAttribute('aria-posinset');\n tab.removeAttribute('aria-setsize');\n } else {\n const i = enabledTabs.indexOf(tab);\n tab.setAttribute('aria-posinset', String(i + 1));\n tab.setAttribute('aria-setsize', String(size));\n }\n\n if (!this.observedTabs.has(tab)) {\n this.resizeObserver.observe(tab);\n this.observedTabs.add(tab);\n }\n });\n\n this.setScrollControls();\n this.setAriaLabels();\n }\n}\n\nexport default NileNavTabGroup;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-nav-tab-group': NileNavTabGroup;\n }\n}\n"],"names":["NileNavTabGroup","v","this","pillRepositionTimer","pillTransitionClassTimer","pillReady","observedTabs","Set","tabs","panels","handleCloseEvent","e","target","tab","panel","getAttribute","stopImmediatePropagation","stopPropagation","syncIndicator","emit","n","tabGroupWasIntersecting","lastNavClientWidth","hasScrollControls","placement","activeTabProp","noTrack","noScrollControls","centered","variant","indicatorPlacement","fullWidth","width","showIndicatorOnHover","activeTabName","_this","_inherits","_g","_createClass","key","get","value","connectedCallback","super","resizeObserver","ResizeObserver","setScrollControls","nw","nav","clientWidth","layoutResumed","repositionIndicator","skipTransition","debouncedPositionPill","mutationObserver","MutationObserver","mutations","some","m","includes","attributeName","setTimeout","setAriaLabels","syncTabsAndPanels","activeTab","getAllTabs","includeDisabled","find","t","active","type","requestAnimationFrame","updateComplete","then","async","Promise","all","map","getAllPanels","getActiveTab","indicator","style","transition","positionPill","observe","attributes","childList","subtree","characterData","visibilityObserver","IntersectionObserver","entries","entry","isIntersecting","intersectionRatio","becameVisible","tabGroup","_context2","stop","_callee","addEventListener","handleNavClick","handleKeyDown","disconnectedCallback","disconnect","clear","removeEventListener","updated","_changedProperties","_this3","nameChanged","has","setActiveTab","scrollBehavior","_this4","disabled","display","event","composedPath","el","HTMLElement","tagName","toLowerCase","hasAttribute","Object","values","MouseKey","button","focus","animate","pill","shadowRoot","querySelector","clearTimeout","classList","add","remove","container","offsetWidth","offsetHeight","box","getLayoutBoxRelativeToContainer","x","y","w","h","height","cw","rightInset","Math","max","ease","concat","transform","left","right","top","opacity","onEnd","handleTabHover","positionHoverIndicator","handleTabHoverLeave","hoverIndicator","layoutBox","translate","render","usesPill","showsIndicator","toggleVariant","html","_templateObject","_taggedTemplateLiteral","classMap","showScrollControlButtons","hide__track","styleMap","_templateObject2","nothing","_templateObject3","handleScrollToEnd","_templateObject4","_templateObject5","_templateObject6","_templateObject7","handleScrollToStart","options","arguments","length","undefined","navTabs","assignedElements","filter","_toConsumableArray","body","_ref2","_this$tabs$find","scrollWidth","preventDefault","index","indexOf","isHorizontal","isRtl","getComputedStyle","direction","preventScroll","scrollIntoView","scroll","behavior","_this8","_objectSpread","emitEvents","_n$panel","previousTab","forEach","name","previousValue","previousIndex","link","allTabs","_iterator","_createForOfIteratorHelper","removeAttribute","panelId","tabId","setAttribute","_ret","s","_step","done","_loop","err","f","getRelativeOffsetToAncestor","element","ancestor","offsetLeft","offsetTop","offsetParent","o","c","getBoundingClientRect","r","scaleX","scaleY","Number","isFinite","abs","off","ow","oh","min","j","offset","_this$shadowRoot4","_s$shadowRoot","_this10","currentTab","enabledTabs","size","currentTabs","_iterator2","_step2","unobserve","delete","i","String","NileElement","styles","__decorate","query","prototype","property","Boolean","reflect","attribute","state","watch","waitUntilFirstUpdate","_export","customElement"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ System.register(["lit"],function(_export,_context){"use strict";var a,_templateObject,n;function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}));}return{setters:[function(_lit){a=_lit.css;}],execute:function execute(){_export("s",n=a(_templateObject||(_templateObject=_taggedTemplateLiteral(["\n \n [hidden] {\n display: none;\n }\n\n :host {\n --indicator-color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n --track-color: var(--nile-colors-neutral-400, var(--ng-componentcolors-utility-gray-500));\n --track-width: var(--nile-border-width-1, var(--ng-border-width-1));\n --tab-gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n display: block;\n\n --nile-nav-tab-padding: var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-lg, var(--ng-spacing-lg)) var(--nile-spacing-none, var(--ng-spacing-none)) ; \n }\n\n \n .nav-tab-group {\n display: flex;\n border-radius: var(--nile-radius-none, var(--ng-radius-none));\n }\n\n .nav-tab-group__tabs {\n display: flex;\n position: relative;\n gap: var(--tab-gap);\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .hide__track {\n --track-width: 0px;\n --tab-gap: var(--nile-spacing-3px, var(--ng-spacing-xs));\n }\n\n .nav-tab-group__body {\n display: block;\n overflow: auto;\n }\n\n /* --------------------------------------------------------------------------\n * Nav container, scroll buttons, RTL\n * -------------------------------------------------------------------------- */\n\n .nav-tab-group--has-scroll-controls .nav-tab-group__nav-container {\n position: relative;\n padding: var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-10px, var(--ng-spacing-lg));\n }\n \n :host([variant='toggle']) .nav-tab-group--has-scroll-controls .nav-tab-group__nav-container,\n :host([variant='toggle-button']) .nav-tab-group--has-scroll-controls .nav-tab-group__nav-container {\n padding: 0;\n }\n\n :host([variant='toggle']) .nav-tab-group--has-scroll-controls .nav-tab-group__nav,\n :host([variant='toggle-button']) .nav-tab-group--has-scroll-controls .nav-tab-group__nav {\n scroll-padding-inline: var(--nile-width-20px, var(--ng-width-5));\n }\n\n .nav-tab-group__scroll-button {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: 0;\n bottom: 0;\n width: var(--nile-width-20px, var(--ng-width-5));\n }\n\n .nav-tab-group__scroll-button--start {\n left: 0;\n }\n\n .nav-tab-group__scroll-button--end {\n right: 0;\n }\n\n .nav-tab-group--rtl .nav-tab-group__scroll-button--start {\n left: auto;\n right: -20px;\n }\n\n .nav-tab-group--rtl .nav-tab-group__scroll-button--end {\n left: -20px;\n right: auto;\n }\n\n /* --------------------------------------------------------------------------\n * Indicator, path, pill, no-track\n * -------------------------------------------------------------------------- */\n\n .nav-tab-group__indicator {\n position: absolute;\n transition: 0.3s translate ease, 0.3s width ease;\n z-index: 2;\n }\n\n .nav-tab-group__indicator__path {\n position: absolute;\n height: var(--track-width);\n width: 100%;\n background: var(--nile-colors-neutral-400, var(--ng-colors-bg-quaternary));\n bottom: 0px;\n z-index: 0;\n }\n\n\n\n .nav-tab-group__indicator--no-track {\n display: none;\n }\n\n .nav-tab-group__pill {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n box-sizing: border-box;\n border-radius: var(--nile-nav-tab-radius);\n background: var(--nile-nav-tab-bg-active);\n box-shadow: var(--nile-nav-tab-active-box-shadow, none);\n opacity: 0;\n pointer-events: none;\n }\n\n .nav-tab-group__pill.nav-tab-group__pill--inactive {\n opacity: 0;\n transition: none;\n transform: none;\n left: 0;\n right: auto;\n top: 0;\n width: auto;\n height: auto;\n }\n\n /* Idle: stroke only on the active tab. While moving, .pill--transitioning matches tab border (see positionPill). */\n :host([variant='toggle']) .nav-tab-group__pill {\n border: none;\n \n }\n\n :host([variant='toggle']) .nav-tab-group__pill.nav-tab-group__pill--transitioning {\n border: var(--nile-nav-tab-border);\n overflow: hidden;\n }\n\n /* Shadow lives on the active tab container so selection never flashes unshaded while the pill moves. */\n :host([variant='toggle-button']) .nav-tab-group__pill {\n box-shadow: none;\n }\n\n /* --------------------------------------------------------------------------\n * Placement: top\n * -------------------------------------------------------------------------- */\n\n .nav-tab-group--top {\n flex-direction: column;\n }\n\n .nav-tab-group--top .nav-tab-group__nav-container {\n order: 1;\n }\n\n .nav-tab-group--top .nav-tab-group__nav,\n .nav-tab-group--bottom .nav-tab-group__nav {\n display: flex;\n overflow-x: auto;\n scrollbar-width: none;\n }\n\n .nav-tab-group--top .nav-tab-group__nav::-webkit-scrollbar,\n .nav-tab-group--bottom .nav-tab-group__nav::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n\n .nav-tab-group--top .nav-tab-group__tabs {\n flex: 1 1 auto;\n position: relative;\n flex-direction: row;\n }\n\n .nav-tab-group--top .nav-tab-group__indicator {\n bottom: 0px;\n border-bottom: 2px solid var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n z-index: 0;\n }\n\n .nav-tab-group--top .nav-tab-group__body {\n order: 2;\n }\n\n .nav-tab-group--top ::slotted(nile-nav-tab-panel) {\n --padding: var(--nile-spacing-10px, var(--ng-spacing-lg)) var(--nile-spacing-none, var(--ng-spacing-none));\n }\n\n /* --------------------------------------------------------------------------\n * Placement: bottom\n * -------------------------------------------------------------------------- */\n\n .nav-tab-group--bottom {\n flex-direction: column;\n }\n\n .nav-tab-group--bottom .nav-tab-group__nav-container {\n order: 2;\n }\n\n .nav-tab-group--bottom .nav-tab-group__tabs {\n flex: 1 1 auto;\n position: relative;\n flex-direction: row;\n border-top: solid var(--track-width) var(--track-color);\n }\n\n :host(:is([variant='filled'], [variant='neutral-filled'], [variant='toggle'], [variant='toggle-button']))\n .nav-tab-group--bottom .nav-tab-group__tabs {\n border-top: none;\n }\n\n :host(:is([variant='filled'], [variant='neutral-filled'], [variant='toggle-button'], [variant='toggle']))\n .nav-tab-group--top .nav-tab-group__nav,\n :host(:is([variant='filled'], [variant='neutral-filled'], [variant='toggle-button'], [variant='toggle']))\n .nav-tab-group--bottom .nav-tab-group__nav {\n overflow: auto;\n }\n\n /* Symmetric inset so box-shadow isn\u2019t clipped and the strip stays vertically centered (end-only\n padding made top/bottom look uneven). */\n :host([variant='toggle-button']) .nav-tab-group--top .nav-tab-group__nav,\n :host([variant='toggle-button']) .nav-tab-group--bottom .nav-tab-group__nav {\n padding-block: var(--nile-spacing-xs, var(--ng-spacing-xs));\n box-sizing: border-box;\n align-items: center;\n padding-inline: var(--nile-spacing-xs, var(--ng-spacing-xs));\n }\n\n .nav-tab-group--bottom .nav-tab-group__indicator {\n top: calc(-1 * var(--track-width));\n border-top: solid var(--nile-border-width-2, var(--ng-border-width-2)) var(--indicator-color);\n }\n\n .nav-tab-group--bottom .nav-tab-group__body {\n order: 1;\n }\n\n .nav-tab-group--bottom ::slotted(nile-nav-tab-panel) {\n --padding: var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-none, var(--ng-spacing-none))\n var(--nile-spacing-10px, var(--ng-spacing-lg)) var(--nile-spacing-none, var(--ng-spacing-none));\n }\n\n /* --------------------------------------------------------------------------\n * Placement: start\n * -------------------------------------------------------------------------- */\n\n .nav-tab-group--start {\n flex-direction: row;\n }\n\n .nav-tab-group--start .nav-tab-group__nav-container {\n order: 1;\n }\n\n .nav-tab-group--start .nav-tab-group__tabs {\n flex: 0 0 auto;\n flex-direction: column;\n border-inline-end: solid var(--track-width) var(--track-color);\n }\n\n /* Block-level tab hosts match the flex column and full row height (wrap, multi-line labels). */\n .nav-tab-group--start slot[name='nav']::slotted(nile-nav-tab),\n .nav-tab-group--end slot[name='nav']::slotted(nile-nav-tab) {\n display: block;\n width: 100%;\n box-sizing: border-box;\n }\n\n :host([variant='filled']) .nav-tab-group--start .nav-tab-group__tabs {\n border-inline-end: none;\n }\n\n .nav-tab-group--start .nav-tab-group__indicator {\n top: 0;\n right: calc(-1 * var(--track-width));\n border-right: solid var(--nile-width-2px, var(--ng-border-width-2)) var(--indicator-color);\n }\n\n .nav-tab-group--start .nav-tab-group__body {\n flex: 1 1 auto;\n order: 2;\n }\n\n .nav-tab-group--start .nav-tab-group__indicator__path,\n .nav-tab-group--bottom .nav-tab-group__indicator__path,\n .nav-tab-group--end .nav-tab-group__indicator__path {\n display: none;\n }\n\n /* --------------------------------------------------------------------------\n * Placement: end\n * -------------------------------------------------------------------------- */\n\n .nav-tab-group--end {\n flex-direction: row;\n }\n\n .nav-tab-group--end .nav-tab-group__nav-container {\n order: 2;\n }\n\n .nav-tab-group--end .nav-tab-group__tabs {\n flex: 0 0 auto;\n flex-direction: column;\n border-inline-start: solid var(--track-width) var(--track-color);\n }\n\n :host([variant='filled']) .nav-tab-group--end .nav-tab-group__tabs {\n border-inline-start: none;\n }\n\n .nav-tab-group--end .nav-tab-group__indicator {\n top: 0;\n left: calc(-1 * var(--track-width));\n border-left: solid var(--nile-width-2px, var(--ng-border-width-2)) var(--indicator-color);\n }\n\n .nav-tab-group--end .nav-tab-group__body {\n flex: 1 1 auto;\n order: 1;\n }\n\n /* Start & end: same horizontal panel padding */\n .nav-tab-group--start ::slotted(nile-nav-tab-panel),\n .nav-tab-group--end ::slotted(nile-nav-tab-panel) {\n --padding: var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-10px, var(--ng-spacing-lg));\n }\n\n /* --------------------------------------------------------------------------\n * hide__track: slotted tab tokens\n * -------------------------------------------------------------------------- */\n\n .hide__track slot::slotted(nile-nav-tab) {\n --nile-nav-tab-radius: var(--nile-radius-radius-xs, var(--ng-radius-xs));\n --nile-nav-tab-padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg));\n --nile-nav-tab-height: auto;\n --nile-nav-tab-bg-hover: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n --nile-nav-tab-bg-active: var(--nile-colors-brand-50, var(--ng-colors-bg-brand-primary-alt));\n }\n\n /* --------------------------------------------------------------------------\n * fullWidth\n * -------------------------------------------------------------------------- */\n\n :host([fullWidth]) .nav-tab-group__tabs {\n width: 100%;\n flex: 1 1 auto;\n }\n\n :host([fullWidth]) ::slotted(nile-nav-tab) {\n flex: 1;\n min-width: 0;\n }\n\n :host([fullWidth]) .nav-tab-group.nav-tab-group--top .nav-tab-group__tabs {\n display: flex;\n }\n\n :host([fullWidth]) {\n --justify-content: center;\n }\n\n /* --------------------------------------------------------------------------\n * Variants: filled, neutral-filled, toggle, toggle-button\n * -------------------------------------------------------------------------- */\n\n :host([variant='filled']) {\n --nile-nav-tab-radius: var(--nile-radius-radius-lg, var(--ng-radius-sm));\n --nile-nav-tab-padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg));\n --nile-nav-tab-active-color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n --nile-nav-tab-bg-active: var(--nile-colors-primary-100, var(--ng-colors-bg-brand-primary-alt));\n --tab-gap: var(--nile-spacing-xs, var(--ng-spacing-xs));\n --nile-nav-tab-bg-hover: var(--nile-colors-primary-100, var(--ng-colors-bg-brand-primary-alt));\n }\n\n :host([variant='neutral-filled']) {\n --nile-nav-tab-radius: var(--nile-radius-radius-lg, var(--ng-radius-sm));\n --nile-nav-tab-padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg));\n --nile-nav-tab-color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n --nile-nav-tab-bg-active: var(--nile-colors-dark-200, var(--ng-colors-bg-active));\n\n --tab-gap: var(--nile-spacing-xs, var(--ng-spacing-xs));\n --nile-nav-tab-bg-hover: var(--nile-colors-dark-200, var(--ng-colors-bg-active));\n --nile-nav-tab-text-color-hover: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n --nile-nav-tab-active-color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n }\n\n :host([variant='toggle-button']) .nav-tab-group__nav-container {\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-secondary-alt));\n border: var(--nile-border-width-1, var(--ng-border-width-1)) var(--nile-border-style-solid, var(--ng-border-style-solid)) var(--nile-colors-neutral-500, var(--ng-colors-border-secondary));\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-lg));\n }\n :host([variant='toggle-button'][placement='start']) .nav-tab-group__nav-container,\n:host([variant='toggle-button'][placement='end']) .nav-tab-group__nav-container {\n padding-block: var(--nile-spacing-xs, var(--ng-spacing-xs));\n padding-inline: var(--nile-spacing-xs, var(--ng-spacing-xs));\n}\n\n :host([variant='toggle-button']) {\n --nile-nav-tab-bg-active: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt));\n --nile-nav-tab-padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg));\n --nile-nav-tab-radius: var(--nile-radius-radius-md, var(--ng-radius-sm));\n --nile-nav-tab-transparent-border: var(--nile-border-width-1, var(--ng-border-width-1)) var(--nile-border-style-solid, var(--ng-border-style-solid)) transparent;\n --tab-gap: var(--nile-spacing-xs, var(--ng-spacing-xs));\n position: relative;\n box-sizing: border-box;\n --nile-nav-tab-active-box-shadow: var(--nile-box-shadow-3, var(--ng-shadow-xs));\n --nile-nav-tab-container-overflow: visible;\n --nile-nav-tab-bg-hover: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt));\n --nile-nav-tab-text-color-hover: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n --nile-nav-tab-active-color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n }\n\n :host([variant='toggle']) {\n --nile-nav-tab-radius: var(--nile-radius-radius-md, var(--ng-radius-sm));\n --nile-nav-tab-padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg));\n --tab-gap: var(--nile-spacing-xxs, var(--ng-spacing-xxs));\n --nile-nav-tab-border: var(--nile-border-width-1, var(--ng-border-width-1)) var(--nile-border-style-solid, var(--ng-border-style-solid)) var(--nile-colors-neutral-500, var(--ng-colors-border-primary));\n --nile-nav-tab-active-box-shadow: var(--nile-box-shadow-3, var(--ng-shadow-xs));\n --nile-nav-transparent-border: var(--nile-border-width-1, var(--ng-border-width-1)) var(--nile-border-style-solid, var(--ng-border-style-solid)) transparent;\n --nile-nav-tab-bg-hover: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt));\n --nile-nav-tab-text-color-hover: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n --nile-nav-tab-active-color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n --nile-nav-tab-bg-active: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt));\n }\n\n :host([variant='toggle']) .nav-tab-group__nav-container {\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-secondary-alt));\n border: none;\n border-radius: var(--nile-border-size-6, var(--ng-radius-sm));\n box-sizing: border-box;\n position: relative;\n overflow: visible;\n }\n\n :host([variant='toggle']) .nav-tab-group__toggle-frame {\n position: absolute;\n inset: 0;\n box-sizing: border-box;\n border: var(--nile-width-1px, var(--ng-border-width-1)) var(--nile-border-style-solid, var(--ng-border-style-solid))\n var(--nile-colors-neutral-500, var(--ng-colors-border-secondary));\n border-radius: inherit;\n pointer-events: none;\n z-index: 0;\n }\n\n :host([variant='toggle']) .nav-tab-group__nav {\n position: relative;\n z-index: 1;\n }\n\n /* --------------------------------------------------------------------------\n * Placement start / end: host token overrides\n * -------------------------------------------------------------------------- */\n\n :host([placement='start']) {\n --nile-nav-tab-bg-active: var(--nile-colors-primary-100, var(--ng-colors-bg-brand-primary-alt));\n --nile-nav-tab-radius: var(--nile-radius-sm, var(--ng-radius-sm)) var(--nile-radius-radius-none, var(--ng-radius-none)) var(--nile-radius-radius-none, var(--ng-radius-none)) var(--nile-radius-sm, var(--ng-radius-sm));\n --white-space: normal;\n --nile-nav-tab-height: auto; \n --word-break: break-word;\n --overflow-wrap: break-word;\n --text-align: left;\n }\n\n :host([placement='start'][variant='underline']),\n :host([placement='start']:not([variant])) {\n --nile-nav-tab-bg-hover: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary-hover));\n --nile-nav-tab-text-color-hover: var(--nile-colors-dark-500, var(--ng-colors-text-placeholder));\n --nile-nav-tab-padding: var(--nile-spacing-lg, var(--ng-spacing-3));\n --nile-nav-tab-active-color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n }\n\n :host([variant='filled'][placement='start']) .nav-tab-group__tabs,\n :host([variant='neutral-filled'][placement='start']) .nav-tab-group__tabs,\n :host([variant='toggle'][placement='start']) .nav-tab-group__tabs,\n :host([variant='toggle-button'][placement='start']) .nav-tab-group__tabs {\n border-inline-end: none;\n --tab-gap: var(--nile-spacing-xs, var(--ng-spacing-xs));\n --nile-nav-tab-radius: var(--nile-radius-radius-lg, var(--ng-radius-sm));\n }\n\n :host([variant='neutral-filled'][placement='start']) {\n --nile-nav-tab-bg-active: var(--nile-colors-dark-200, var(--ng-colors-bg-active));\n --nile-nav-tab-active-color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n }\n\n :host([variant='toggle'][placement='start']) {\n --nile-nav-tab-bg-active: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt));\n --nile-nav-tab-radius: var(--nile-radius-sm, var(--ng-radius-sm));\n }\n\n :host([variant='toggle-button'][placement='start']) {\n --nile-nav-tab-bg-active: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt));\n --nile-nav-tab-radius: var(--nile-radius-sm, var(--ng-radius-sm));\n --nile-nav-tab-padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg));\n --nile-nav-tab-bg-hover: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt));\n padding-block: var(--nile-spacing-xs, var(--ng-spacing-xs));\n padding-inline: var(--nile-spacing-xs, var(--ng-spacing-xs));\n }\n\n :host([placement='end']) {\n --nile-nav-tab-bg-active: var(--nile-colors-primary-100, var(--ng-colors-bg-brand-primary-alt));\n --nile-nav-tab-radius: 0 var(--nile-radius-sm, var(--ng-radius-sm)) var(--nile-radius-sm, var(--ng-radius-sm)) 0;\n --white-space: normal;\n --nile-nav-tab-height: auto;\n --word-break: break-word;\n --overflow-wrap: break-word;\n }\n\n :host([placement='end'][variant='underline']),\n :host([placement='end']:not([variant])) {\n --nile-nav-tab-bg-hover: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary-hover));\n --nile-nav-tab-text-color-hover: var(--nile-colors-dark-500, var(--ng-colors-text-placeholder));\n --nile-nav-tab-padding: var(--nile-spacing-lg, var(--ng-spacing-3));\n --white-space: normal;\n --nile-nav-tab-height: auto;\n --word-break: break-word;\n --overflow-wrap: break-word;\n --text-align: left;\n }\n\n :host([variant='filled'][placement='end']) .nav-tab-group__tabs,\n :host([variant='neutral-filled'][placement='end']) .nav-tab-group__tabs,\n :host([variant='toggle'][placement='end']) .nav-tab-group__tabs,\n :host([variant='toggle-button'][placement='end']) .nav-tab-group__tabs {\n border-inline-start: none;\n --tab-gap: var(--nile-spacing-xs, var(--ng-spacing-xs));\n --nile-nav-tab-radius: var(--nile-radius-radius-lg, var(--ng-radius-sm));\n \n }\n\n :host([variant='neutral-filled'][placement='end']) {\n --nile-nav-tab-bg-active: var(--nile-colors-dark-200, var(--ng-colors-bg-active));\n --nile-nav-tab-active-color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n }\n\n :host([variant='toggle'][placement='end']) {\n --nile-nav-tab-bg-active: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt));\n --nile-nav-tab-radius: var(--nile-radius-sm, var(--ng-radius-sm));\n }\n\n :host([variant='toggle-button'][placement='end']) {\n --nile-nav-tab-bg-active: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt));\n --nile-nav-tab-radius: var(--nile-radius-sm, var(--ng-radius-sm));\n --nile-nav-tab-padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg));\n --nile-nav-tab-bg-hover: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt));\n }\n\n /* --------------------------------------------------------------------------\n * Active tab: slotted token overrides (pill / underline variants)\n * -------------------------------------------------------------------------- */\n\n :host(:is([variant='filled'], [variant='neutral-filled'], [variant='toggle']))\n slot[name='nav']::slotted(nile-nav-tab[active]) {\n --nile-nav-tab-active-box-shadow: none;\n }\n\n /* Pill variants: paint fill/border only on .nav-tab-container; keep link layer transparent so a\n * second white plane can\u2019t extend past the border (grey stroke + white fringe). */\n :host(:is([variant='filled'], [variant='neutral-filled'], [variant='toggle'], [variant='toggle-button']))\n slot[name='nav']::slotted(nile-nav-tab) {\n --tab-active-background-color: transparent;\n --tab-hover-background-color: transparent;\n position: relative;\n z-index: 1;\n }\n\n /* --------------------------------------------------------------------------\n * Indicator placement: left (vertical start rail)\n * -------------------------------------------------------------------------- */\n\n :host([indicatorPlacement='left'][placement='start']) {\n --nile-nav-tab-bg-active: none;\n --nile-nav-tab-bg-hover: none;\n --tab-gap: 8px;\n --nile-nav-tab-active-color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n --nile-nav-tab-text-color-hover: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n }\n\n :host([indicatorPlacement='left']) .nav-tab-group--start .nav-tab-group__indicator {\n top: 0;\n right: auto;\n left: calc(-1 * var(--track-width));\n border-right: none;\n border-left: solid var(--nile-border-width-2, var(--ng-border-width-2)) var(--indicator-color);\n }\n\n :host([indicatorPlacement='left']) .nav-tab-group--start .nav-tab-group__tabs {\n border-inline-end: none;\n }\n\n /* --------------------------------------------------------------------------\n * Hover indicator\n * -------------------------------------------------------------------------- */\n\n .nav-tab-group__hover-indicator {\n position: absolute;\n pointer-events: none;\n opacity: 0;\n transition: none;\n z-index: 2;\n }\n\n .nav-tab-group--top .nav-tab-group__hover-indicator {\n bottom: 0px;\n height: 0;\n border-bottom: 2px solid var(--indicator-color);\n }\n\n .nav-tab-group--bottom .nav-tab-group__hover-indicator {\n top: calc(-1 * var(--track-width));\n height: 0;\n border-top: solid var(--nile-border-width-2, var(--ng-border-width-2)) var(--indicator-color);\n }\n\n .nav-tab-group--start .nav-tab-group__hover-indicator {\n top: 0;\n right: calc(-1 * var(--track-width));\n width: 0;\n border-right: solid var(--nile-border-width-2, var(--ng-border-width-2)) var(--indicator-color);\n }\n\n .nav-tab-group--end .nav-tab-group__hover-indicator {\n top: 0;\n left: calc(-1 * var(--track-width));\n width: 0;\n border-left: solid var(--nile-border-width-2, var(--ng-border-width-2)) var(--indicator-color);\n }\n\n :host([indicatorPlacement='left']) .nav-tab-group--start .nav-tab-group__hover-indicator {\n top: 0;\n right: auto;\n left: calc(-1 * var(--track-width));\n border-right: none;\n border-left: solid var(--nile-border-width-2, var(--ng-border-width-2)) var(--indicator-color);\n }\n\n /* --------------------------------------------------------------------------\n * Reduced motion\n * -------------------------------------------------------------------------- */\n\n @media (prefers-reduced-motion: reduce) {\n * {\n animation: none;\n transition: none;\n }\n }\n\n :host([placement='bottom'][variant='underline']),\n:host([placement='bottom']:not([variant])) {\n --nile-nav-tab-padding: var(--nile-spacing-lg, var(--ng-spacing-3)) var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-none, var(--ng-spacing-none));\n}\n"]))));}};});
2
+ //# sourceMappingURL=nile-nav-tab-group.css.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nile-nav-tab-group.css.cjs.js","sources":["../../../src/nile-nav-tab-group/nile-nav-tab-group.css.ts"],"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 { css } from 'lit';\n\n/**\n * NavTabGroup CSS\n */\nexport const styles = css`\n \n [hidden] {\n display: none;\n }\n\n :host {\n --indicator-color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n --track-color: var(--nile-colors-neutral-400, var(--ng-componentcolors-utility-gray-500));\n --track-width: var(--nile-border-width-1, var(--ng-border-width-1));\n --tab-gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n display: block;\n\n --nile-nav-tab-padding: var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-lg, var(--ng-spacing-lg)) var(--nile-spacing-none, var(--ng-spacing-none)) ; \n }\n\n \n .nav-tab-group {\n display: flex;\n border-radius: var(--nile-radius-none, var(--ng-radius-none));\n }\n\n .nav-tab-group__tabs {\n display: flex;\n position: relative;\n gap: var(--tab-gap);\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .hide__track {\n --track-width: 0px;\n --tab-gap: var(--nile-spacing-3px, var(--ng-spacing-xs));\n }\n\n .nav-tab-group__body {\n display: block;\n overflow: auto;\n }\n\n /* --------------------------------------------------------------------------\n * Nav container, scroll buttons, RTL\n * -------------------------------------------------------------------------- */\n\n .nav-tab-group--has-scroll-controls .nav-tab-group__nav-container {\n position: relative;\n padding: var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-10px, var(--ng-spacing-lg));\n }\n \n :host([variant='toggle']) .nav-tab-group--has-scroll-controls .nav-tab-group__nav-container,\n :host([variant='toggle-button']) .nav-tab-group--has-scroll-controls .nav-tab-group__nav-container {\n padding: 0;\n }\n\n :host([variant='toggle']) .nav-tab-group--has-scroll-controls .nav-tab-group__nav,\n :host([variant='toggle-button']) .nav-tab-group--has-scroll-controls .nav-tab-group__nav {\n scroll-padding-inline: var(--nile-width-20px, var(--ng-width-5));\n }\n\n .nav-tab-group__scroll-button {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: 0;\n bottom: 0;\n width: var(--nile-width-20px, var(--ng-width-5));\n }\n\n .nav-tab-group__scroll-button--start {\n left: 0;\n }\n\n .nav-tab-group__scroll-button--end {\n right: 0;\n }\n\n .nav-tab-group--rtl .nav-tab-group__scroll-button--start {\n left: auto;\n right: -20px;\n }\n\n .nav-tab-group--rtl .nav-tab-group__scroll-button--end {\n left: -20px;\n right: auto;\n }\n\n /* --------------------------------------------------------------------------\n * Indicator, path, pill, no-track\n * -------------------------------------------------------------------------- */\n\n .nav-tab-group__indicator {\n position: absolute;\n transition: 0.3s translate ease, 0.3s width ease;\n z-index: 2;\n }\n\n .nav-tab-group__indicator__path {\n position: absolute;\n height: var(--track-width);\n width: 100%;\n background: var(--nile-colors-neutral-400, var(--ng-colors-bg-quaternary));\n bottom: 0px;\n z-index: 0;\n }\n\n\n\n .nav-tab-group__indicator--no-track {\n display: none;\n }\n\n .nav-tab-group__pill {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n box-sizing: border-box;\n border-radius: var(--nile-nav-tab-radius);\n background: var(--nile-nav-tab-bg-active);\n box-shadow: var(--nile-nav-tab-active-box-shadow, none);\n opacity: 0;\n pointer-events: none;\n }\n\n .nav-tab-group__pill.nav-tab-group__pill--inactive {\n opacity: 0;\n transition: none;\n transform: none;\n left: 0;\n right: auto;\n top: 0;\n width: auto;\n height: auto;\n }\n\n /* Idle: stroke only on the active tab. While moving, .pill--transitioning matches tab border (see positionPill). */\n :host([variant='toggle']) .nav-tab-group__pill {\n border: none;\n \n }\n\n :host([variant='toggle']) .nav-tab-group__pill.nav-tab-group__pill--transitioning {\n border: var(--nile-nav-tab-border);\n overflow: hidden;\n }\n\n /* Shadow lives on the active tab container so selection never flashes unshaded while the pill moves. */\n :host([variant='toggle-button']) .nav-tab-group__pill {\n box-shadow: none;\n }\n\n /* --------------------------------------------------------------------------\n * Placement: top\n * -------------------------------------------------------------------------- */\n\n .nav-tab-group--top {\n flex-direction: column;\n }\n\n .nav-tab-group--top .nav-tab-group__nav-container {\n order: 1;\n }\n\n .nav-tab-group--top .nav-tab-group__nav,\n .nav-tab-group--bottom .nav-tab-group__nav {\n display: flex;\n overflow-x: auto;\n scrollbar-width: none;\n }\n\n .nav-tab-group--top .nav-tab-group__nav::-webkit-scrollbar,\n .nav-tab-group--bottom .nav-tab-group__nav::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n\n .nav-tab-group--top .nav-tab-group__tabs {\n flex: 1 1 auto;\n position: relative;\n flex-direction: row;\n }\n\n .nav-tab-group--top .nav-tab-group__indicator {\n bottom: 0px;\n border-bottom: 2px solid var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n z-index: 0;\n }\n\n .nav-tab-group--top .nav-tab-group__body {\n order: 2;\n }\n\n .nav-tab-group--top ::slotted(nile-nav-tab-panel) {\n --padding: var(--nile-spacing-10px, var(--ng-spacing-lg)) var(--nile-spacing-none, var(--ng-spacing-none));\n }\n\n /* --------------------------------------------------------------------------\n * Placement: bottom\n * -------------------------------------------------------------------------- */\n\n .nav-tab-group--bottom {\n flex-direction: column;\n }\n\n .nav-tab-group--bottom .nav-tab-group__nav-container {\n order: 2;\n }\n\n .nav-tab-group--bottom .nav-tab-group__tabs {\n flex: 1 1 auto;\n position: relative;\n flex-direction: row;\n border-top: solid var(--track-width) var(--track-color);\n }\n\n :host(:is([variant='filled'], [variant='neutral-filled'], [variant='toggle'], [variant='toggle-button']))\n .nav-tab-group--bottom .nav-tab-group__tabs {\n border-top: none;\n }\n\n :host(:is([variant='filled'], [variant='neutral-filled'], [variant='toggle-button'], [variant='toggle']))\n .nav-tab-group--top .nav-tab-group__nav,\n :host(:is([variant='filled'], [variant='neutral-filled'], [variant='toggle-button'], [variant='toggle']))\n .nav-tab-group--bottom .nav-tab-group__nav {\n overflow: auto;\n }\n\n /* Symmetric inset so box-shadow isn’t clipped and the strip stays vertically centered (end-only\n padding made top/bottom look uneven). */\n :host([variant='toggle-button']) .nav-tab-group--top .nav-tab-group__nav,\n :host([variant='toggle-button']) .nav-tab-group--bottom .nav-tab-group__nav {\n padding-block: var(--nile-spacing-xs, var(--ng-spacing-xs));\n box-sizing: border-box;\n align-items: center;\n padding-inline: var(--nile-spacing-xs, var(--ng-spacing-xs));\n }\n\n .nav-tab-group--bottom .nav-tab-group__indicator {\n top: calc(-1 * var(--track-width));\n border-top: solid var(--nile-border-width-2, var(--ng-border-width-2)) var(--indicator-color);\n }\n\n .nav-tab-group--bottom .nav-tab-group__body {\n order: 1;\n }\n\n .nav-tab-group--bottom ::slotted(nile-nav-tab-panel) {\n --padding: var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-none, var(--ng-spacing-none))\n var(--nile-spacing-10px, var(--ng-spacing-lg)) var(--nile-spacing-none, var(--ng-spacing-none));\n }\n\n /* --------------------------------------------------------------------------\n * Placement: start\n * -------------------------------------------------------------------------- */\n\n .nav-tab-group--start {\n flex-direction: row;\n }\n\n .nav-tab-group--start .nav-tab-group__nav-container {\n order: 1;\n }\n\n .nav-tab-group--start .nav-tab-group__tabs {\n flex: 0 0 auto;\n flex-direction: column;\n border-inline-end: solid var(--track-width) var(--track-color);\n }\n\n /* Block-level tab hosts match the flex column and full row height (wrap, multi-line labels). */\n .nav-tab-group--start slot[name='nav']::slotted(nile-nav-tab),\n .nav-tab-group--end slot[name='nav']::slotted(nile-nav-tab) {\n display: block;\n width: 100%;\n box-sizing: border-box;\n }\n\n :host([variant='filled']) .nav-tab-group--start .nav-tab-group__tabs {\n border-inline-end: none;\n }\n\n .nav-tab-group--start .nav-tab-group__indicator {\n top: 0;\n right: calc(-1 * var(--track-width));\n border-right: solid var(--nile-width-2px, var(--ng-border-width-2)) var(--indicator-color);\n }\n\n .nav-tab-group--start .nav-tab-group__body {\n flex: 1 1 auto;\n order: 2;\n }\n\n .nav-tab-group--start .nav-tab-group__indicator__path,\n .nav-tab-group--bottom .nav-tab-group__indicator__path,\n .nav-tab-group--end .nav-tab-group__indicator__path {\n display: none;\n }\n\n /* --------------------------------------------------------------------------\n * Placement: end\n * -------------------------------------------------------------------------- */\n\n .nav-tab-group--end {\n flex-direction: row;\n }\n\n .nav-tab-group--end .nav-tab-group__nav-container {\n order: 2;\n }\n\n .nav-tab-group--end .nav-tab-group__tabs {\n flex: 0 0 auto;\n flex-direction: column;\n border-inline-start: solid var(--track-width) var(--track-color);\n }\n\n :host([variant='filled']) .nav-tab-group--end .nav-tab-group__tabs {\n border-inline-start: none;\n }\n\n .nav-tab-group--end .nav-tab-group__indicator {\n top: 0;\n left: calc(-1 * var(--track-width));\n border-left: solid var(--nile-width-2px, var(--ng-border-width-2)) var(--indicator-color);\n }\n\n .nav-tab-group--end .nav-tab-group__body {\n flex: 1 1 auto;\n order: 1;\n }\n\n /* Start & end: same horizontal panel padding */\n .nav-tab-group--start ::slotted(nile-nav-tab-panel),\n .nav-tab-group--end ::slotted(nile-nav-tab-panel) {\n --padding: var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-10px, var(--ng-spacing-lg));\n }\n\n /* --------------------------------------------------------------------------\n * hide__track: slotted tab tokens\n * -------------------------------------------------------------------------- */\n\n .hide__track slot::slotted(nile-nav-tab) {\n --nile-nav-tab-radius: var(--nile-radius-radius-xs, var(--ng-radius-xs));\n --nile-nav-tab-padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg));\n --nile-nav-tab-height: auto;\n --nile-nav-tab-bg-hover: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n --nile-nav-tab-bg-active: var(--nile-colors-brand-50, var(--ng-colors-bg-brand-primary-alt));\n }\n\n /* --------------------------------------------------------------------------\n * fullWidth\n * -------------------------------------------------------------------------- */\n\n :host([fullWidth]) .nav-tab-group__tabs {\n width: 100%;\n flex: 1 1 auto;\n }\n\n :host([fullWidth]) ::slotted(nile-nav-tab) {\n flex: 1;\n min-width: 0;\n }\n\n :host([fullWidth]) .nav-tab-group.nav-tab-group--top .nav-tab-group__tabs {\n display: flex;\n }\n\n :host([fullWidth]) {\n --justify-content: center;\n }\n\n /* --------------------------------------------------------------------------\n * Variants: filled, neutral-filled, toggle, toggle-button\n * -------------------------------------------------------------------------- */\n\n :host([variant='filled']) {\n --nile-nav-tab-radius: var(--nile-radius-radius-lg, var(--ng-radius-sm));\n --nile-nav-tab-padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg));\n --nile-nav-tab-active-color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n --nile-nav-tab-bg-active: var(--nile-colors-primary-100, var(--ng-colors-bg-brand-primary-alt));\n --tab-gap: var(--nile-spacing-xs, var(--ng-spacing-xs));\n --nile-nav-tab-bg-hover: var(--nile-colors-primary-100, var(--ng-colors-bg-brand-primary-alt));\n }\n\n :host([variant='neutral-filled']) {\n --nile-nav-tab-radius: var(--nile-radius-radius-lg, var(--ng-radius-sm));\n --nile-nav-tab-padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg));\n --nile-nav-tab-color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n --nile-nav-tab-bg-active: var(--nile-colors-dark-200, var(--ng-colors-bg-active));\n\n --tab-gap: var(--nile-spacing-xs, var(--ng-spacing-xs));\n --nile-nav-tab-bg-hover: var(--nile-colors-dark-200, var(--ng-colors-bg-active));\n --nile-nav-tab-text-color-hover: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n --nile-nav-tab-active-color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n }\n\n :host([variant='toggle-button']) .nav-tab-group__nav-container {\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-secondary-alt));\n border: var(--nile-border-width-1, var(--ng-border-width-1)) var(--nile-border-style-solid, var(--ng-border-style-solid)) var(--nile-colors-neutral-500, var(--ng-colors-border-secondary));\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-lg));\n }\n :host([variant='toggle-button'][placement='start']) .nav-tab-group__nav-container,\n:host([variant='toggle-button'][placement='end']) .nav-tab-group__nav-container {\n padding-block: var(--nile-spacing-xs, var(--ng-spacing-xs));\n padding-inline: var(--nile-spacing-xs, var(--ng-spacing-xs));\n}\n\n :host([variant='toggle-button']) {\n --nile-nav-tab-bg-active: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt));\n --nile-nav-tab-padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg));\n --nile-nav-tab-radius: var(--nile-radius-radius-md, var(--ng-radius-sm));\n --nile-nav-tab-transparent-border: var(--nile-border-width-1, var(--ng-border-width-1)) var(--nile-border-style-solid, var(--ng-border-style-solid)) transparent;\n --tab-gap: var(--nile-spacing-xs, var(--ng-spacing-xs));\n position: relative;\n box-sizing: border-box;\n --nile-nav-tab-active-box-shadow: var(--nile-box-shadow-3, var(--ng-shadow-xs));\n --nile-nav-tab-container-overflow: visible;\n --nile-nav-tab-bg-hover: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt));\n --nile-nav-tab-text-color-hover: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n --nile-nav-tab-active-color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n }\n\n :host([variant='toggle']) {\n --nile-nav-tab-radius: var(--nile-radius-radius-md, var(--ng-radius-sm));\n --nile-nav-tab-padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg));\n --tab-gap: var(--nile-spacing-xxs, var(--ng-spacing-xxs));\n --nile-nav-tab-border: var(--nile-border-width-1, var(--ng-border-width-1)) var(--nile-border-style-solid, var(--ng-border-style-solid)) var(--nile-colors-neutral-500, var(--ng-colors-border-primary));\n --nile-nav-tab-active-box-shadow: var(--nile-box-shadow-3, var(--ng-shadow-xs));\n --nile-nav-transparent-border: var(--nile-border-width-1, var(--ng-border-width-1)) var(--nile-border-style-solid, var(--ng-border-style-solid)) transparent;\n --nile-nav-tab-bg-hover: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt));\n --nile-nav-tab-text-color-hover: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n --nile-nav-tab-active-color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n --nile-nav-tab-bg-active: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt));\n }\n\n :host([variant='toggle']) .nav-tab-group__nav-container {\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-secondary-alt));\n border: none;\n border-radius: var(--nile-border-size-6, var(--ng-radius-sm));\n box-sizing: border-box;\n position: relative;\n overflow: visible;\n }\n\n :host([variant='toggle']) .nav-tab-group__toggle-frame {\n position: absolute;\n inset: 0;\n box-sizing: border-box;\n border: var(--nile-width-1px, var(--ng-border-width-1)) var(--nile-border-style-solid, var(--ng-border-style-solid))\n var(--nile-colors-neutral-500, var(--ng-colors-border-secondary));\n border-radius: inherit;\n pointer-events: none;\n z-index: 0;\n }\n\n :host([variant='toggle']) .nav-tab-group__nav {\n position: relative;\n z-index: 1;\n }\n\n /* --------------------------------------------------------------------------\n * Placement start / end: host token overrides\n * -------------------------------------------------------------------------- */\n\n :host([placement='start']) {\n --nile-nav-tab-bg-active: var(--nile-colors-primary-100, var(--ng-colors-bg-brand-primary-alt));\n --nile-nav-tab-radius: var(--nile-radius-sm, var(--ng-radius-sm)) var(--nile-radius-radius-none, var(--ng-radius-none)) var(--nile-radius-radius-none, var(--ng-radius-none)) var(--nile-radius-sm, var(--ng-radius-sm));\n --white-space: normal;\n --nile-nav-tab-height: auto; \n --word-break: break-word;\n --overflow-wrap: break-word;\n --text-align: left;\n }\n\n :host([placement='start'][variant='underline']),\n :host([placement='start']:not([variant])) {\n --nile-nav-tab-bg-hover: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary-hover));\n --nile-nav-tab-text-color-hover: var(--nile-colors-dark-500, var(--ng-colors-text-placeholder));\n --nile-nav-tab-padding: var(--nile-spacing-lg, var(--ng-spacing-3));\n --nile-nav-tab-active-color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n }\n\n :host([variant='filled'][placement='start']) .nav-tab-group__tabs,\n :host([variant='neutral-filled'][placement='start']) .nav-tab-group__tabs,\n :host([variant='toggle'][placement='start']) .nav-tab-group__tabs,\n :host([variant='toggle-button'][placement='start']) .nav-tab-group__tabs {\n border-inline-end: none;\n --tab-gap: var(--nile-spacing-xs, var(--ng-spacing-xs));\n --nile-nav-tab-radius: var(--nile-radius-radius-lg, var(--ng-radius-sm));\n }\n\n :host([variant='neutral-filled'][placement='start']) {\n --nile-nav-tab-bg-active: var(--nile-colors-dark-200, var(--ng-colors-bg-active));\n --nile-nav-tab-active-color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n }\n\n :host([variant='toggle'][placement='start']) {\n --nile-nav-tab-bg-active: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt));\n --nile-nav-tab-radius: var(--nile-radius-sm, var(--ng-radius-sm));\n }\n\n :host([variant='toggle-button'][placement='start']) {\n --nile-nav-tab-bg-active: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt));\n --nile-nav-tab-radius: var(--nile-radius-sm, var(--ng-radius-sm));\n --nile-nav-tab-padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg));\n --nile-nav-tab-bg-hover: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt));\n padding-block: var(--nile-spacing-xs, var(--ng-spacing-xs));\n padding-inline: var(--nile-spacing-xs, var(--ng-spacing-xs));\n }\n\n :host([placement='end']) {\n --nile-nav-tab-bg-active: var(--nile-colors-primary-100, var(--ng-colors-bg-brand-primary-alt));\n --nile-nav-tab-radius: 0 var(--nile-radius-sm, var(--ng-radius-sm)) var(--nile-radius-sm, var(--ng-radius-sm)) 0;\n --white-space: normal;\n --nile-nav-tab-height: auto;\n --word-break: break-word;\n --overflow-wrap: break-word;\n }\n\n :host([placement='end'][variant='underline']),\n :host([placement='end']:not([variant])) {\n --nile-nav-tab-bg-hover: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary-hover));\n --nile-nav-tab-text-color-hover: var(--nile-colors-dark-500, var(--ng-colors-text-placeholder));\n --nile-nav-tab-padding: var(--nile-spacing-lg, var(--ng-spacing-3));\n --white-space: normal;\n --nile-nav-tab-height: auto;\n --word-break: break-word;\n --overflow-wrap: break-word;\n --text-align: left;\n }\n\n :host([variant='filled'][placement='end']) .nav-tab-group__tabs,\n :host([variant='neutral-filled'][placement='end']) .nav-tab-group__tabs,\n :host([variant='toggle'][placement='end']) .nav-tab-group__tabs,\n :host([variant='toggle-button'][placement='end']) .nav-tab-group__tabs {\n border-inline-start: none;\n --tab-gap: var(--nile-spacing-xs, var(--ng-spacing-xs));\n --nile-nav-tab-radius: var(--nile-radius-radius-lg, var(--ng-radius-sm));\n \n }\n\n :host([variant='neutral-filled'][placement='end']) {\n --nile-nav-tab-bg-active: var(--nile-colors-dark-200, var(--ng-colors-bg-active));\n --nile-nav-tab-active-color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n }\n\n :host([variant='toggle'][placement='end']) {\n --nile-nav-tab-bg-active: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt));\n --nile-nav-tab-radius: var(--nile-radius-sm, var(--ng-radius-sm));\n }\n\n :host([variant='toggle-button'][placement='end']) {\n --nile-nav-tab-bg-active: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt));\n --nile-nav-tab-radius: var(--nile-radius-sm, var(--ng-radius-sm));\n --nile-nav-tab-padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg));\n --nile-nav-tab-bg-hover: var(--nile-colors-white-base, var(--ng-colors-bg-primary-alt));\n }\n\n /* --------------------------------------------------------------------------\n * Active tab: slotted token overrides (pill / underline variants)\n * -------------------------------------------------------------------------- */\n\n :host(:is([variant='filled'], [variant='neutral-filled'], [variant='toggle']))\n slot[name='nav']::slotted(nile-nav-tab[active]) {\n --nile-nav-tab-active-box-shadow: none;\n }\n\n /* Pill variants: paint fill/border only on .nav-tab-container; keep link layer transparent so a\n * second white plane can’t extend past the border (grey stroke + white fringe). */\n :host(:is([variant='filled'], [variant='neutral-filled'], [variant='toggle'], [variant='toggle-button']))\n slot[name='nav']::slotted(nile-nav-tab) {\n --tab-active-background-color: transparent;\n --tab-hover-background-color: transparent;\n position: relative;\n z-index: 1;\n }\n\n /* --------------------------------------------------------------------------\n * Indicator placement: left (vertical start rail)\n * -------------------------------------------------------------------------- */\n\n :host([indicatorPlacement='left'][placement='start']) {\n --nile-nav-tab-bg-active: none;\n --nile-nav-tab-bg-hover: none;\n --tab-gap: 8px;\n --nile-nav-tab-active-color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n --nile-nav-tab-text-color-hover: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n }\n\n :host([indicatorPlacement='left']) .nav-tab-group--start .nav-tab-group__indicator {\n top: 0;\n right: auto;\n left: calc(-1 * var(--track-width));\n border-right: none;\n border-left: solid var(--nile-border-width-2, var(--ng-border-width-2)) var(--indicator-color);\n }\n\n :host([indicatorPlacement='left']) .nav-tab-group--start .nav-tab-group__tabs {\n border-inline-end: none;\n }\n\n /* --------------------------------------------------------------------------\n * Hover indicator\n * -------------------------------------------------------------------------- */\n\n .nav-tab-group__hover-indicator {\n position: absolute;\n pointer-events: none;\n opacity: 0;\n transition: none;\n z-index: 2;\n }\n\n .nav-tab-group--top .nav-tab-group__hover-indicator {\n bottom: 0px;\n height: 0;\n border-bottom: 2px solid var(--indicator-color);\n }\n\n .nav-tab-group--bottom .nav-tab-group__hover-indicator {\n top: calc(-1 * var(--track-width));\n height: 0;\n border-top: solid var(--nile-border-width-2, var(--ng-border-width-2)) var(--indicator-color);\n }\n\n .nav-tab-group--start .nav-tab-group__hover-indicator {\n top: 0;\n right: calc(-1 * var(--track-width));\n width: 0;\n border-right: solid var(--nile-border-width-2, var(--ng-border-width-2)) var(--indicator-color);\n }\n\n .nav-tab-group--end .nav-tab-group__hover-indicator {\n top: 0;\n left: calc(-1 * var(--track-width));\n width: 0;\n border-left: solid var(--nile-border-width-2, var(--ng-border-width-2)) var(--indicator-color);\n }\n\n :host([indicatorPlacement='left']) .nav-tab-group--start .nav-tab-group__hover-indicator {\n top: 0;\n right: auto;\n left: calc(-1 * var(--track-width));\n border-right: none;\n border-left: solid var(--nile-border-width-2, var(--ng-border-width-2)) var(--indicator-color);\n }\n\n /* --------------------------------------------------------------------------\n * Reduced motion\n * -------------------------------------------------------------------------- */\n\n @media (prefers-reduced-motion: reduce) {\n * {\n animation: none;\n transition: none;\n }\n }\n\n :host([placement='bottom'][variant='underline']),\n:host([placement='bottom']:not([variant])) {\n --nile-nav-tab-padding: var(--nile-spacing-lg, var(--ng-spacing-3)) var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-none, var(--ng-spacing-none));\n}\n`;\n\nexport default [styles];\n"],"names":["styles","css","_templateObject","_taggedTemplateLiteral"],"mappings":"oTAYaA,CAAAA,CAASC,CAAG,CAAAC,eAAA,GAAAA,eAAA,CAAAC,sBAAA"}