@sky.ui/core 0.0.1

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 (320) hide show
  1. package/LICENSE.md +139 -0
  2. package/README.md +113 -0
  3. package/auto-import-loader.js +60 -0
  4. package/auto-import.js +93 -0
  5. package/dist/custom-elements.json +27051 -0
  6. package/dist/helper/controllers/animation-controller.d.ts +120 -0
  7. package/dist/helper/controllers/animation-controller.js +2 -0
  8. package/dist/helper/controllers/animation-controller.js.map +1 -0
  9. package/dist/helper/controllers/index.d.ts +2 -0
  10. package/dist/helper/controllers/popover-controller.d.ts +162 -0
  11. package/dist/helper/controllers/popover-controller.js +2 -0
  12. package/dist/helper/controllers/popover-controller.js.map +1 -0
  13. package/dist/helper/form-control-base.d.ts +1 -0
  14. package/dist/helper/iconify-offline.d.ts +73 -0
  15. package/dist/helper/iconify-offline.js +2 -0
  16. package/dist/helper/iconify-offline.js.map +1 -0
  17. package/dist/helper/index.d.ts +5 -0
  18. package/dist/helper/internals/form-control-base.d.ts +81 -0
  19. package/dist/helper/internals/form-control-base.js +2 -0
  20. package/dist/helper/internals/form-control-base.js.map +1 -0
  21. package/dist/helper/internals/index.d.ts +1 -0
  22. package/dist/helper/utils/color-resolver.d.ts +139 -0
  23. package/dist/helper/utils/color-resolver.js +2 -0
  24. package/dist/helper/utils/color-resolver.js.map +1 -0
  25. package/dist/helper/utils/index.d.ts +2 -0
  26. package/dist/helper/utils/size-resolver.d.ts +6 -0
  27. package/dist/helper/utils/size-resolver.js +2 -0
  28. package/dist/helper/utils/size-resolver.js.map +1 -0
  29. package/dist/index.d.ts +58 -0
  30. package/dist/index.js +2 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/sky-accordion/index.d.ts +1 -0
  33. package/dist/sky-accordion/index.js +1 -0
  34. package/dist/sky-accordion/sky-accordion.d.ts +201 -0
  35. package/dist/sky-accordion/sky-accordion.js +85 -0
  36. package/dist/sky-accordion/sky-accordion.js.map +1 -0
  37. package/dist/sky-accordion-item/index.d.ts +1 -0
  38. package/dist/sky-accordion-item/index.js +1 -0
  39. package/dist/sky-accordion-item/sky-accordion-item.d.ts +161 -0
  40. package/dist/sky-accordion-item/sky-accordion-item.js +191 -0
  41. package/dist/sky-accordion-item/sky-accordion-item.js.map +1 -0
  42. package/dist/sky-alert/index.d.ts +1 -0
  43. package/dist/sky-alert/index.js +1 -0
  44. package/dist/sky-alert/sky-alert.d.ts +136 -0
  45. package/dist/sky-alert/sky-alert.js +292 -0
  46. package/dist/sky-alert/sky-alert.js.map +1 -0
  47. package/dist/sky-appbar/index.d.ts +1 -0
  48. package/dist/sky-appbar/index.js +1 -0
  49. package/dist/sky-appbar/sky-appbar.d.ts +84 -0
  50. package/dist/sky-appbar/sky-appbar.js +173 -0
  51. package/dist/sky-appbar/sky-appbar.js.map +1 -0
  52. package/dist/sky-avatar/index.d.ts +1 -0
  53. package/dist/sky-avatar/index.js +1 -0
  54. package/dist/sky-avatar/sky-avatar.d.ts +104 -0
  55. package/dist/sky-avatar/sky-avatar.js +152 -0
  56. package/dist/sky-avatar/sky-avatar.js.map +1 -0
  57. package/dist/sky-badge/index.d.ts +1 -0
  58. package/dist/sky-badge/index.js +1 -0
  59. package/dist/sky-badge/sky-badge.d.ts +154 -0
  60. package/dist/sky-badge/sky-badge.js +148 -0
  61. package/dist/sky-badge/sky-badge.js.map +1 -0
  62. package/dist/sky-breadcrumb/index.d.ts +1 -0
  63. package/dist/sky-breadcrumb/index.js +1 -0
  64. package/dist/sky-breadcrumb/sky-breadcrumb.d.ts +111 -0
  65. package/dist/sky-breadcrumb/sky-breadcrumb.js +230 -0
  66. package/dist/sky-breadcrumb/sky-breadcrumb.js.map +1 -0
  67. package/dist/sky-button/index.d.ts +1 -0
  68. package/dist/sky-button/index.js +1 -0
  69. package/dist/sky-button/sky-button.d.ts +118 -0
  70. package/dist/sky-button/sky-button.js +172 -0
  71. package/dist/sky-button/sky-button.js.map +1 -0
  72. package/dist/sky-button-group/index.d.ts +1 -0
  73. package/dist/sky-button-group/index.js +1 -0
  74. package/dist/sky-button-group/sky-button-group.d.ts +93 -0
  75. package/dist/sky-button-group/sky-button-group.js +281 -0
  76. package/dist/sky-button-group/sky-button-group.js.map +1 -0
  77. package/dist/sky-card/index.d.ts +1 -0
  78. package/dist/sky-card/index.js +1 -0
  79. package/dist/sky-card/sky-card.d.ts +143 -0
  80. package/dist/sky-card/sky-card.js +186 -0
  81. package/dist/sky-card/sky-card.js.map +1 -0
  82. package/dist/sky-carousel/index.d.ts +1 -0
  83. package/dist/sky-carousel/index.js +1 -0
  84. package/dist/sky-carousel/sky-carousel.d.ts +265 -0
  85. package/dist/sky-carousel/sky-carousel.js +211 -0
  86. package/dist/sky-carousel/sky-carousel.js.map +1 -0
  87. package/dist/sky-checkbox/index.d.ts +1 -0
  88. package/dist/sky-checkbox/index.js +1 -0
  89. package/dist/sky-checkbox/sky-checkbox.d.ts +165 -0
  90. package/dist/sky-checkbox/sky-checkbox.js +276 -0
  91. package/dist/sky-checkbox/sky-checkbox.js.map +1 -0
  92. package/dist/sky-chip/index.d.ts +1 -0
  93. package/dist/sky-chip/index.js +1 -0
  94. package/dist/sky-chip/sky-chip.d.ts +95 -0
  95. package/dist/sky-chip/sky-chip.js +210 -0
  96. package/dist/sky-chip/sky-chip.js.map +1 -0
  97. package/dist/sky-col/index.d.ts +1 -0
  98. package/dist/sky-col/index.js +1 -0
  99. package/dist/sky-col/sky-col.d.ts +84 -0
  100. package/dist/sky-col/sky-col.js +46 -0
  101. package/dist/sky-col/sky-col.js.map +1 -0
  102. package/dist/sky-combobox/index.d.ts +1 -0
  103. package/dist/sky-combobox/index.js +1 -0
  104. package/dist/sky-combobox/sky-combobox.d.ts +313 -0
  105. package/dist/sky-combobox/sky-combobox.js +1146 -0
  106. package/dist/sky-combobox/sky-combobox.js.map +1 -0
  107. package/dist/sky-counter/index.d.ts +1 -0
  108. package/dist/sky-counter/index.js +1 -0
  109. package/dist/sky-counter/sky-counter.d.ts +130 -0
  110. package/dist/sky-counter/sky-counter.js +101 -0
  111. package/dist/sky-counter/sky-counter.js.map +1 -0
  112. package/dist/sky-dialog/index.d.ts +1 -0
  113. package/dist/sky-dialog/index.js +1 -0
  114. package/dist/sky-dialog/sky-dialog.d.ts +237 -0
  115. package/dist/sky-dialog/sky-dialog.js +265 -0
  116. package/dist/sky-dialog/sky-dialog.js.map +1 -0
  117. package/dist/sky-divider/index.d.ts +1 -0
  118. package/dist/sky-divider/index.js +1 -0
  119. package/dist/sky-divider/sky-divider.d.ts +120 -0
  120. package/dist/sky-divider/sky-divider.js +42 -0
  121. package/dist/sky-divider/sky-divider.js.map +1 -0
  122. package/dist/sky-drawer/index.d.ts +1 -0
  123. package/dist/sky-drawer/index.js +1 -0
  124. package/dist/sky-drawer/sky-drawer.d.ts +161 -0
  125. package/dist/sky-drawer/sky-drawer.js +177 -0
  126. package/dist/sky-drawer/sky-drawer.js.map +1 -0
  127. package/dist/sky-dropdown/index.d.ts +1 -0
  128. package/dist/sky-dropdown/index.js +1 -0
  129. package/dist/sky-dropdown/sky-dropdown.d.ts +252 -0
  130. package/dist/sky-dropdown/sky-dropdown.js +58 -0
  131. package/dist/sky-dropdown/sky-dropdown.js.map +1 -0
  132. package/dist/sky-dropdown-item/index.d.ts +1 -0
  133. package/dist/sky-dropdown-item/index.js +1 -0
  134. package/dist/sky-dropdown-item/sky-dropdown-item.d.ts +207 -0
  135. package/dist/sky-dropdown-item/sky-dropdown-item.js +341 -0
  136. package/dist/sky-dropdown-item/sky-dropdown-item.js.map +1 -0
  137. package/dist/sky-flexbar/index.d.ts +1 -0
  138. package/dist/sky-flexbar/index.js +1 -0
  139. package/dist/sky-flexbar/sky-flexbar.d.ts +189 -0
  140. package/dist/sky-flexbar/sky-flexbar.js +148 -0
  141. package/dist/sky-flexbar/sky-flexbar.js.map +1 -0
  142. package/dist/sky-flexbox/index.d.ts +1 -0
  143. package/dist/sky-flexbox/index.js +1 -0
  144. package/dist/sky-flexbox/sky-flexbox.d.ts +156 -0
  145. package/dist/sky-flexbox/sky-flexbox.js +40 -0
  146. package/dist/sky-flexbox/sky-flexbox.js.map +1 -0
  147. package/dist/sky-flexcol/index.d.ts +1 -0
  148. package/dist/sky-flexcol/index.js +1 -0
  149. package/dist/sky-flexcol/sky-flexcol.d.ts +154 -0
  150. package/dist/sky-flexcol/sky-flexcol.js +14 -0
  151. package/dist/sky-flexcol/sky-flexcol.js.map +1 -0
  152. package/dist/sky-flexitem/index.d.ts +1 -0
  153. package/dist/sky-flexitem/index.js +1 -0
  154. package/dist/sky-flexitem/sky-flexitem.d.ts +114 -0
  155. package/dist/sky-flexitem/sky-flexitem.js +45 -0
  156. package/dist/sky-flexitem/sky-flexitem.js.map +1 -0
  157. package/dist/sky-form/index.d.ts +1 -0
  158. package/dist/sky-form/index.js +1 -0
  159. package/dist/sky-form/sky-form.d.ts +286 -0
  160. package/dist/sky-form/sky-form.js +66 -0
  161. package/dist/sky-form/sky-form.js.map +1 -0
  162. package/dist/sky-grid/index.d.ts +1 -0
  163. package/dist/sky-grid/index.js +1 -0
  164. package/dist/sky-grid/sky-grid.d.ts +78 -0
  165. package/dist/sky-grid/sky-grid.js +40 -0
  166. package/dist/sky-grid/sky-grid.js.map +1 -0
  167. package/dist/sky-icon/index.d.ts +1 -0
  168. package/dist/sky-icon/index.js +1 -0
  169. package/dist/sky-icon/ion-local.json.js +2 -0
  170. package/dist/sky-icon/ion-local.json.js.map +1 -0
  171. package/dist/sky-icon/sky-icon.d.ts +123 -0
  172. package/dist/sky-icon/sky-icon.js +40 -0
  173. package/dist/sky-icon/sky-icon.js.map +1 -0
  174. package/dist/sky-image/index.d.ts +1 -0
  175. package/dist/sky-image/index.js +1 -0
  176. package/dist/sky-image/sky-image.d.ts +102 -0
  177. package/dist/sky-image/sky-image.js +29 -0
  178. package/dist/sky-image/sky-image.js.map +1 -0
  179. package/dist/sky-input/index.d.ts +1 -0
  180. package/dist/sky-input/index.js +1 -0
  181. package/dist/sky-input/sky-input.d.ts +345 -0
  182. package/dist/sky-input/sky-input.js +820 -0
  183. package/dist/sky-input/sky-input.js.map +1 -0
  184. package/dist/sky-list/index.d.ts +1 -0
  185. package/dist/sky-list/index.js +1 -0
  186. package/dist/sky-list/sky-list.d.ts +85 -0
  187. package/dist/sky-list/sky-list.js +41 -0
  188. package/dist/sky-list/sky-list.js.map +1 -0
  189. package/dist/sky-listitem/index.d.ts +1 -0
  190. package/dist/sky-listitem/index.js +1 -0
  191. package/dist/sky-listitem/sky-listitem.d.ts +76 -0
  192. package/dist/sky-listitem/sky-listitem.js +104 -0
  193. package/dist/sky-listitem/sky-listitem.js.map +1 -0
  194. package/dist/sky-navbar/index.d.ts +1 -0
  195. package/dist/sky-navbar/index.js +1 -0
  196. package/dist/sky-navbar/sky-navbar.d.ts +207 -0
  197. package/dist/sky-navbar/sky-navbar.js +521 -0
  198. package/dist/sky-navbar/sky-navbar.js.map +1 -0
  199. package/dist/sky-navpanel/index.d.ts +1 -0
  200. package/dist/sky-navpanel/index.js +1 -0
  201. package/dist/sky-navpanel/sky-navpanel.d.ts +186 -0
  202. package/dist/sky-navpanel/sky-navpanel.js +404 -0
  203. package/dist/sky-navpanel/sky-navpanel.js.map +1 -0
  204. package/dist/sky-notification/index.d.ts +1 -0
  205. package/dist/sky-notification/index.js +1 -0
  206. package/dist/sky-notification/sky-notification.d.ts +152 -0
  207. package/dist/sky-notification/sky-notification.js +456 -0
  208. package/dist/sky-notification/sky-notification.js.map +1 -0
  209. package/dist/sky-otp/index.d.ts +1 -0
  210. package/dist/sky-otp/index.js +1 -0
  211. package/dist/sky-otp/sky-otp.d.ts +101 -0
  212. package/dist/sky-otp/sky-otp.js +96 -0
  213. package/dist/sky-otp/sky-otp.js.map +1 -0
  214. package/dist/sky-overlay/index.d.ts +1 -0
  215. package/dist/sky-overlay/index.js +1 -0
  216. package/dist/sky-overlay/sky-overlay.d.ts +71 -0
  217. package/dist/sky-overlay/sky-overlay.js +26 -0
  218. package/dist/sky-overlay/sky-overlay.js.map +1 -0
  219. package/dist/sky-pagination/index.d.ts +1 -0
  220. package/dist/sky-pagination/index.js +1 -0
  221. package/dist/sky-pagination/sky-pagination.d.ts +167 -0
  222. package/dist/sky-pagination/sky-pagination.js +453 -0
  223. package/dist/sky-pagination/sky-pagination.js.map +1 -0
  224. package/dist/sky-progress/index.d.ts +1 -0
  225. package/dist/sky-progress/index.js +1 -0
  226. package/dist/sky-progress/sky-progress.d.ts +70 -0
  227. package/dist/sky-progress/sky-progress.js +87 -0
  228. package/dist/sky-progress/sky-progress.js.map +1 -0
  229. package/dist/sky-radio/index.d.ts +1 -0
  230. package/dist/sky-radio/index.js +1 -0
  231. package/dist/sky-radio/sky-radio.d.ts +118 -0
  232. package/dist/sky-radio/sky-radio.js +109 -0
  233. package/dist/sky-radio/sky-radio.js.map +1 -0
  234. package/dist/sky-radio-group/index.d.ts +1 -0
  235. package/dist/sky-radio-group/index.js +1 -0
  236. package/dist/sky-radio-group/sky-radio-group.d.ts +186 -0
  237. package/dist/sky-radio-group/sky-radio-group.js +239 -0
  238. package/dist/sky-radio-group/sky-radio-group.js.map +1 -0
  239. package/dist/sky-range/index.d.ts +1 -0
  240. package/dist/sky-range/index.js +1 -0
  241. package/dist/sky-range/sky-range.d.ts +110 -0
  242. package/dist/sky-range/sky-range.js +196 -0
  243. package/dist/sky-range/sky-range.js.map +1 -0
  244. package/dist/sky-row/index.d.ts +1 -0
  245. package/dist/sky-row/index.js +1 -0
  246. package/dist/sky-row/sky-row.d.ts +57 -0
  247. package/dist/sky-row/sky-row.js +6 -0
  248. package/dist/sky-row/sky-row.js.map +1 -0
  249. package/dist/sky-serial/index.d.ts +1 -0
  250. package/dist/sky-serial/index.js +1 -0
  251. package/dist/sky-serial/sky-serial.d.ts +127 -0
  252. package/dist/sky-serial/sky-serial.js +133 -0
  253. package/dist/sky-serial/sky-serial.js.map +1 -0
  254. package/dist/sky-sheet/index.d.ts +1 -0
  255. package/dist/sky-sheet/index.js +1 -0
  256. package/dist/sky-sheet/sky-sheet.d.ts +70 -0
  257. package/dist/sky-sheet/sky-sheet.js +47 -0
  258. package/dist/sky-sheet/sky-sheet.js.map +1 -0
  259. package/dist/sky-skeleton/index.d.ts +1 -0
  260. package/dist/sky-skeleton/index.js +1 -0
  261. package/dist/sky-skeleton/sky-skeleton.d.ts +80 -0
  262. package/dist/sky-skeleton/sky-skeleton.js +233 -0
  263. package/dist/sky-skeleton/sky-skeleton.js.map +1 -0
  264. package/dist/sky-slider/index.d.ts +1 -0
  265. package/dist/sky-slider/index.js +1 -0
  266. package/dist/sky-slider/sky-slider.d.ts +96 -0
  267. package/dist/sky-slider/sky-slider.js +139 -0
  268. package/dist/sky-slider/sky-slider.js.map +1 -0
  269. package/dist/sky-speeddial/index.d.ts +1 -0
  270. package/dist/sky-speeddial/index.js +1 -0
  271. package/dist/sky-speeddial/sky-speeddial.d.ts +86 -0
  272. package/dist/sky-speeddial/sky-speeddial.js +154 -0
  273. package/dist/sky-speeddial/sky-speeddial.js.map +1 -0
  274. package/dist/sky-spinner/index.d.ts +1 -0
  275. package/dist/sky-spinner/index.js +1 -0
  276. package/dist/sky-spinner/sky-spinner.d.ts +87 -0
  277. package/dist/sky-spinner/sky-spinner.js +334 -0
  278. package/dist/sky-spinner/sky-spinner.js.map +1 -0
  279. package/dist/sky-steps/index.d.ts +1 -0
  280. package/dist/sky-steps/index.js +1 -0
  281. package/dist/sky-steps/sky-steps.d.ts +170 -0
  282. package/dist/sky-steps/sky-steps.js +455 -0
  283. package/dist/sky-steps/sky-steps.js.map +1 -0
  284. package/dist/sky-switch/index.d.ts +1 -0
  285. package/dist/sky-switch/index.js +1 -0
  286. package/dist/sky-switch/sky-switch.d.ts +116 -0
  287. package/dist/sky-switch/sky-switch.js +191 -0
  288. package/dist/sky-switch/sky-switch.js.map +1 -0
  289. package/dist/sky-tab/index.d.ts +1 -0
  290. package/dist/sky-tab/index.js +1 -0
  291. package/dist/sky-tab/sky-tab.d.ts +188 -0
  292. package/dist/sky-tab/sky-tab.js +390 -0
  293. package/dist/sky-tab/sky-tab.js.map +1 -0
  294. package/dist/sky-tab-button/index.d.ts +1 -0
  295. package/dist/sky-tab-button/index.js +1 -0
  296. package/dist/sky-tab-button/sky-tab-button.d.ts +114 -0
  297. package/dist/sky-tab-button/sky-tab-button.js +167 -0
  298. package/dist/sky-tab-button/sky-tab-button.js.map +1 -0
  299. package/dist/sky-theme-provider/index.d.ts +1 -0
  300. package/dist/sky-theme-provider/index.js +1 -0
  301. package/dist/sky-theme-provider/sky-theme-provider.d.ts +169 -0
  302. package/dist/sky-theme-provider/sky-theme-provider.js +12 -0
  303. package/dist/sky-theme-provider/sky-theme-provider.js.map +1 -0
  304. package/dist/sky-theme-switcher/index.d.ts +1 -0
  305. package/dist/sky-theme-switcher/index.js +1 -0
  306. package/dist/sky-theme-switcher/sky-theme-switcher.d.ts +92 -0
  307. package/dist/sky-theme-switcher/sky-theme-switcher.js +43 -0
  308. package/dist/sky-theme-switcher/sky-theme-switcher.js.map +1 -0
  309. package/dist/sky-tooltip/index.d.ts +1 -0
  310. package/dist/sky-tooltip/index.js +1 -0
  311. package/dist/sky-tooltip/sky-tooltip.d.ts +156 -0
  312. package/dist/sky-tooltip/sky-tooltip.js +242 -0
  313. package/dist/sky-tooltip/sky-tooltip.js.map +1 -0
  314. package/package.json +475 -0
  315. package/plugins/rollup-plugin.d.ts +19 -0
  316. package/plugins/rollup-plugin.js +129 -0
  317. package/plugins/vite-plugin.d.ts +22 -0
  318. package/plugins/vite-plugin.js +116 -0
  319. package/plugins/webpack-plugin.d.ts +12 -0
  320. package/plugins/webpack-plugin.js +46 -0
@@ -0,0 +1,390 @@
1
+ import{__decorate as t,__metadata as e}from"tslib";import{LitElement as i,css as s,html as r}from"lit";import{property as o,state as n,customElement as a}from"lit/decorators.js";import{when as l}from"lit/directives/when.js";import{classMap as h}from"lit/directives/class-map.js";import{styleMap as d}from"lit/directives/style-map.js";import{resolveColor as c,resolveTextColorForToken as p}from"../helper/utils/color-resolver.js";import{SkyIcon as b}from"../sky-icon/sky-icon.js";let u=class extends i{constructor(){super(...arguments),this.selectedIndex=0,this.tabBarPosition="top",this.panelHeight="auto",this.panelWidth="auto",this.gutter="0",this.mountStrategy="lazy",this.keepAlive=!0,this.overflowButton=!1,this.scrollMode="tab",this.scrollPx=120,this.edgePad=12,this.holdDelay=250,this.holdInterval=120,this.neighbors=1,this.neighborPad=8,this.keyNavDebounce=140,this.navSelectOnButtons=!1,this._ready=!1,this.color="primary",this._cache=new Map,this._canBack=!1,this._canFwd=!1,this._holdTimer=null,this._holdStartTimer=null,this._held=!1,this._keyNavLocked=!1,this._keyNavTimer=null,this._keyNavDebouncing=!1,this._keyQueuedDir=null,this.#t=()=>{this.#e(),requestAnimationFrame(()=>{this.#i(),this.#s(),this.#r()})},this.#o=t=>{const e=this.#n().indexOf(t.currentTarget);e>=0&&this.selectTab(e)},this.#a=()=>{this.#i(),this.#s(),this.#r()},this.#l=t=>{if(!this.overflowButton)return;const e=this._tray;if(!e)return;if(t.ctrlKey)return;if("left"===this.tabBarPosition||"right"===this.tabBarPosition){if(Math.abs(t.deltaY)<Math.abs(t.deltaX))return;const i=Math.max(0,e.scrollHeight-e.clientHeight);if(i<=0)return;const s=e.scrollTop+t.deltaY;if(!(t.deltaY<0?e.scrollTop>0:e.scrollTop<i)||s===e.scrollTop)return;t.preventDefault(),e.scrollBy({top:t.deltaY,behavior:"auto"})}else{const i=t.shiftKey&&Math.abs(t.deltaY)>=Math.abs(t.deltaX)?t.deltaY:Math.abs(t.deltaX)>Math.abs(t.deltaY)?t.deltaX:0;if(!i)return;const s=Math.max(0,e.scrollWidth-e.clientWidth);if(s<=0)return;if(!(i<0?e.scrollLeft>0:e.scrollLeft<s))return;t.preventDefault(),e.scrollBy({left:i,behavior:"auto"})}},this.#h=()=>this.#r(),this.#d=t=>{const e=t.composedPath();if(!(e.some(t=>"tab"===t?.getAttribute?.("role"))||e.includes(this)))return;const i=this.#n().length;if(!i)return;const s="top"===this.tabBarPosition||"bottom"===this.tabBarPosition;let r=0;switch(t.key){case"ArrowRight":if(!s)return;t.preventDefault(),r=1;break;case"ArrowLeft":if(!s)return;t.preventDefault(),r=-1;break;case"ArrowDown":if(s)return;t.preventDefault(),r=1;break;case"ArrowUp":if(s)return;t.preventDefault(),r=-1;break;case"Home":return t.preventDefault(),void this.#c(0);case"End":return t.preventDefault(),void this.#c(i-1);default:return}this.#p(r)}}static{this.dependencies={"sky-icon":b}}static{this.styles=s`
2
+ :host {
3
+ --sky-tab-anim-ms: 280ms;
4
+ --sky-tab-anim-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
5
+ width: 100%;
6
+ }
7
+
8
+ .tabs {
9
+ position: relative;
10
+ display: inline-flex;
11
+ gap: 4px;
12
+ padding: 4px;
13
+ align-items: center;
14
+
15
+ background: var(--sky-glass-primary);
16
+ border: var(--sky-border-primary);
17
+ box-shadow: var(--sky-box-shadow-inset);
18
+ border-radius: var(--sky-radius-full);
19
+ /* Add these: */
20
+ flex-shrink: 0; /* Don't shrink */
21
+ white-space: nowrap; /* Prevent tabs from wrapping */
22
+ }
23
+
24
+ .tabs.top,
25
+ .tabs.bottom {
26
+ flex-direction: row;
27
+ width: max-content;
28
+ align-items: center;
29
+ }
30
+ .tabs.left,
31
+ .tabs.right {
32
+ flex-direction: column;
33
+ align-items: center;
34
+ width: max-content;
35
+ border-radius: var(--sky-radius-tertiary);
36
+ height: 100%;
37
+ box-sizing: border-box;
38
+ }
39
+
40
+ .thumb {
41
+ position: absolute;
42
+ border-radius: var(--sky-radius-full);
43
+ top: 4px;
44
+ left: 4px;
45
+ width: var(--thumb-w, 0px);
46
+ height: var(--thumb-h, 0px);
47
+ transform: translate(var(--thumb-x, 0px), var(--thumb-y, 0px));
48
+ background: var(--sky-tab-color, #111);
49
+ box-shadow: var(--sky-box-shadow-inset);
50
+ transition: none;
51
+ z-index: 0;
52
+ pointer-events: none;
53
+ }
54
+
55
+ /* Fallback for reduced motion – use CSS transitions */
56
+ @media (prefers-reduced-motion: reduce) {
57
+ .tabs[data-ready="true"] .thumb {
58
+ transition:
59
+ transform var(--sky-tab-anim-ms) var(--sky-tab-anim-ease),
60
+ width var(--sky-tab-anim-ms) var(--sky-tab-anim-ease),
61
+ height var(--sky-tab-anim-ms) var(--sky-tab-anim-ease);
62
+ }
63
+ }
64
+
65
+ .tabs.left .thumb,
66
+ .tabs.right .thumb {
67
+ border-radius: var(--sky-radius-tertiary);
68
+ }
69
+
70
+ ::slotted([slot="tab"]) {
71
+ position: relative;
72
+ z-index: 1;
73
+ appearance: none;
74
+ border: 0;
75
+ background: transparent;
76
+ padding: 8px 14px;
77
+ font: inherit;
78
+ border-radius: var(--sky-radius-full);
79
+ color: currentColor;
80
+ cursor: pointer;
81
+ white-space: nowrap;
82
+ outline: none;
83
+ transition:
84
+ color 0.18s ease,
85
+ transform 0.18s ease;
86
+ display: inline-flex;
87
+ align-items: center;
88
+ justify-content: center;
89
+ }
90
+
91
+ .tabs.left ::slotted([slot="tab"]),
92
+ .tabs.right ::slotted([slot="tab"]) {
93
+ width: var(--sky-seg-vert-item-width, auto);
94
+ border-radius: var(--sky-radius-tertiary);
95
+ align-self: flex-start;
96
+ justify-content: flex-start;
97
+ text-align: left;
98
+ }
99
+
100
+ ::slotted([slot="tab"][aria-selected="true"]) {
101
+ color: var(--sky-tab-text-color-active, currentColor);
102
+ }
103
+
104
+ .tabbtn {
105
+ position: relative;
106
+ z-index: 1;
107
+ appearance: none;
108
+ border: 0;
109
+ background: transparent;
110
+ padding: 8px 14px;
111
+ font: inherit;
112
+ border-radius: var(--sky-radius-full);
113
+ color: currentColor;
114
+ cursor: pointer;
115
+ white-space: nowrap;
116
+ outline: none;
117
+ transition:
118
+ color 0.18s ease,
119
+ transform 0.18s ease;
120
+ display: inline-flex;
121
+ align-items: center;
122
+ justify-content: center;
123
+ }
124
+
125
+ .tabs.left .tabbtn,
126
+ .tabs.right .tabbtn {
127
+ width: var(--sky-seg-vert-item-width, auto);
128
+ align-self: flex-start;
129
+ justify-content: flex-start;
130
+ text-align: left;
131
+ }
132
+
133
+ .tabbtn[aria-selected="true"] {
134
+ color: var(--sky-text-primary, currentColor);
135
+ }
136
+
137
+ .tabbtn:focus-visible {
138
+ box-shadow: 0 0 0 2px var(--sky-tab-color);
139
+ }
140
+
141
+ .rails {
142
+ display: inline-flex;
143
+ align-items: center;
144
+ justify-content: center;
145
+ position: relative;
146
+ /* Add these: */
147
+ overflow: hidden; /* This is likely what's missing! */
148
+
149
+ }
150
+ .rails.top,
151
+ .rails.bottom {
152
+ width: 100%;
153
+ justify-content: center;
154
+ align-items: center;
155
+ width: 100%; /* Take full width of parent */
156
+ flex-shrink: 0; /* Don't shrink */
157
+ }
158
+ .rails.left,
159
+ .rails.right {
160
+ height: 100%;
161
+ flex-direction: column;
162
+ justify-content: start;
163
+ align-items: center;
164
+ flex: 0 0 auto;
165
+ flex-shrink: 0;
166
+ width: max-content;
167
+ min-width: min-content;
168
+ }
169
+
170
+ .rails.left .tray,
171
+ .rails.right .tray {
172
+ flex: 1 1 auto;
173
+ flex-shrink: 0;
174
+ min-height: 0;
175
+ }
176
+
177
+ .tray {
178
+ max-width: 100%;
179
+ max-height: 100%;
180
+ overflow: clip;
181
+ contain: content;
182
+ padding: 5px;
183
+ border-radius: inherit;
184
+ box-sizing: border-box;
185
+ }
186
+
187
+ .tray--buttons {
188
+ overflow: hidden;
189
+ scrollbar-width: none;
190
+ }
191
+ .tray--buttons::-webkit-scrollbar {
192
+ width: 0;
193
+ height: 0;
194
+ }
195
+
196
+ .tray--native {
197
+ overflow: auto;
198
+ scrollbar-width: auto;
199
+ }
200
+
201
+ .tray > .tabs {
202
+ display: inline-flex;
203
+ will-change: transform;
204
+ /* Add these: */
205
+ flex-shrink: 0; /* Prevent tabs from shrinking */
206
+ flex-wrap: nowrap; /* Ensure tabs stay in a single line */
207
+ height: 100%; /* Match tray height */
208
+ align-items: center; /* Center vertically for horizontal tabs */
209
+ }
210
+
211
+ .navbtn {
212
+ appearance: none;
213
+ border: 0;
214
+ border-radius: var(--sky-radius-full);
215
+ display: inline-flex;
216
+ font-size: 24px;
217
+ align-items: center;
218
+ justify-content: center;
219
+ background: var(--sky-glass-primary);
220
+ border: var(--sky-border-primary);
221
+ color: var(--sky-tab-color);
222
+ box-shadow: var(--sky-box-shadow-primary);
223
+ cursor: pointer;
224
+
225
+ transition:
226
+ opacity 0.15s ease,
227
+ transform 0.15s ease;
228
+ }
229
+
230
+ .navbtn::before,
231
+ .tabs::before {
232
+ content: "";
233
+ inset: 0;
234
+ position: absolute;
235
+ border-radius: inherit;
236
+ z-index: -1;
237
+ pointer-events: none;
238
+ backdrop-filter: var(--sky-blur-primary) var(--sky-brightness-primary)
239
+ var(--sky-saturation-primary);
240
+ }
241
+
242
+ .rails.top .navbtn,
243
+ .rails.bottom .navbtn {
244
+ width: auto;
245
+ height: calc(100% - 10px);
246
+ aspect-ratio: 1;
247
+ }
248
+
249
+ .rails.left .navbtn,
250
+ .rails.right .navbtn {
251
+ width: calc(100% - 10px);
252
+ min-height: 45px;
253
+ aspect-ratio: auto;
254
+ }
255
+
256
+ .navbtn:disabled {
257
+ opacity: 0.6;
258
+ cursor: default;
259
+ }
260
+ .navbtn:active {
261
+ transform: scale(0.98);
262
+ }
263
+
264
+ .tabs .thumb {
265
+ position: absolute;
266
+ z-index: 1;
267
+ }
268
+ .tabs .tabbtn {
269
+ z-index: 2;
270
+ }
271
+
272
+ .wrapper.top,
273
+ .wrapper.bottom {
274
+ flex-direction: column;
275
+ }
276
+ .wrapper.left,
277
+ .wrapper.right {
278
+ flex-direction: row;
279
+ gap: var(--sky-tab-gap, 12px);
280
+ align-items: stretch;
281
+ }
282
+ .wrapper {
283
+ display: flex;
284
+ width: 100%;
285
+ height: 100%;
286
+ overflow: auto;
287
+ }
288
+
289
+ .content {
290
+ position: relative;
291
+ flex: 1 1 auto;
292
+ width: 100%;
293
+ height: 100%;
294
+ overflow: auto;
295
+ contain: layout paint;
296
+ /* Allow scroll chaining to the page (avoid scroll-trapping). */
297
+ overscroll-behavior: auto;
298
+ }
299
+
300
+ ::slotted([slot="tab-content"]) {
301
+ display: none;
302
+ position: relative;
303
+ inset: auto;
304
+ width: 100%;
305
+ height: 100%;
306
+ transition: none !important;
307
+ will-change: auto;
308
+ }
309
+
310
+ ::slotted([slot="tab-content"][selected]) {
311
+ display: block;
312
+ }
313
+
314
+ .navbtn[hidden] {
315
+ display: none;
316
+ }
317
+
318
+ sky-icon {
319
+ display: inline-block;
320
+ width: 1em;
321
+ height: 1em;
322
+ }
323
+
324
+ @media (prefers-reduced-motion: reduce) {
325
+ .thumb,
326
+ ::slotted([slot="tab-content"]) {
327
+ transition: none !important;
328
+ }
329
+ }
330
+ `}firstUpdated(){this._resizeObs=new ResizeObserver(()=>{this.#i(),this.#s(),this.#r()}),this._tray=this.renderRoot.querySelector(".tray"),this._labelSlot=this.renderRoot.querySelector('slot[name="tab"]'),this._tabsEl=this.renderRoot.querySelector(".tabs"),this._contentSlot=this.renderRoot.querySelector('slot[name="tab-content"]');const t=this.renderRoot.querySelector(".wrapper");t&&this._resizeObs?.observe(t),this._tabsEl&&this._resizeObs?.observe(this._tabsEl),this._tray&&(this._tray.addEventListener("scroll",this.#h,{passive:!0}),this._tray.addEventListener("wheel",this.#l,{passive:!1})),window.addEventListener("resize",this.#a,{passive:!0}),this.#e(),this.addEventListener("keydown",this.#d,{capture:!0});const e=this.renderRoot.querySelector(".tabs");if(e){const t=parseFloat(getComputedStyle(e).getPropertyValue("--sky-tab-anim-ms"))||280;this.keyNavDebounce=Math.round(.5*t)}this._btnPrev=this.renderRoot.querySelector(".navbtn.prev"),this._btnNext=this.renderRoot.querySelector(".navbtn.next"),this.#b(),queueMicrotask(()=>{this.#u(),this.#i(),this.#s(),this.#y(!1),this.#r(),this._ready=!0})}#m(){return this._contentSlot?.assignedElements({flatten:!0})??[]}#f(t,e){if(null==t||""===t)return`__index:${e}`;const i=t.match(/^tab-(\d+)$/);return i?`__index:${i[1]}`:t}#g(t,e){if(null==t||""===t)return`__index:${e}`;if(t.startsWith("panel-unpaired-"))return`__index:${e}`;const i=t.match(/^panel-(\d+)$/);return i?`__index:${i[1]}`:t}#v(){const t=this.#n(),e=new Set;return t.map((t,i)=>{const s=this.#f(t.id??null,i);return s.startsWith("__index:")?s:e.has(s)?`__index:${i}`:(e.add(s),s)})}#w(){const t=this.#m(),e=new Map;return t.forEach((t,i)=>{const s=this.#g(t.id??null,i);e.has(s)||e.set(s,t)}),e}#x(){const t=this.#v(),e=this.#w();return t.map(t=>e.get(t))}#u(){const t=this.#x(),e=new Set(t.filter(t=>null!=t)),i=this.#n();t.forEach((t,e)=>{if(!t)return;const s=String(e);(!t.id||t.id.startsWith("panel-unpaired-")||/^panel-\d+$/.test(t.id))&&(t.id=`panel-${s}`);const r=this.selectedIndex===e;t.toggleAttribute("selected",r),t.setAttribute("role","tabpanel"),t.setAttribute("aria-labelledby",i[e]?.id??`tab-${s}`)}),i.forEach((e,i)=>{e.setAttribute("aria-controls",t[i]?.id??`panel-${i}`)}),this.#m().forEach(t=>{e.has(t)||(t.toggleAttribute("selected",!1),t.setAttribute("role","tabpanel"),t.id&&!t.id.startsWith("panel-")||(t.id=`panel-unpaired-${Math.random().toString(36).slice(2)}`))})}#t;#e(){const t=this.#n();t.forEach((t,e)=>{const i=String(e);t.setAttribute("role","tab"),t.id||(t.id=`tab-${i}`),t.setAttribute("aria-controls",`panel-${i}`);const s=e===this.selectedIndex;t.setAttribute("aria-selected",String(s)),t.setAttribute("tabindex",s?"0":"-1"),"number"==typeof t.tabIndex&&t.tabIndex<0&&(t.tabIndex=s?0:-1),t.removeEventListener("click",this.#o),t.addEventListener("click",this.#o)});const e=t.map(t=>t.id);new Set(e).size!==e.length&&t.forEach((t,e)=>{const i=String(e);t.id=`tab-${i}`,t.setAttribute("aria-controls",`panel-${i}`)})}#n(){return this._labelSlot?.assignedElements({flatten:!0})??[]}#o;disconnectedCallback(){super.disconnectedCallback(),this._thumbAnimation?.cancel(),this._resizeObs?.disconnect(),window.removeEventListener("resize",this.#a),this._tray?.removeEventListener("scroll",this.#h),this._tray?.removeEventListener("wheel",this.#l),this._holdTimer&&(window.clearInterval(this._holdTimer),this._holdTimer=null),this._holdStartTimer&&(window.clearTimeout(this._holdStartTimer),this._holdStartTimer=null),this._keyNavTimer&&(window.clearTimeout(this._keyNavTimer),this._keyNavTimer=null)}updated(t){if(t.has("color")){const t=c(this.color),e=p(this.color);this.style.setProperty("--sky-tab-color",t),this.style.setProperty("--sky-tab-text-color-active",e)}(t.has("selectedIndex")||t.has("tabBarPosition")||t.has("overflowButton"))&&(this.#i(),this.#s(),requestAnimationFrame(()=>{this.#y(!0),this.#r()}))}#a;#r(t=!1){if(!this.overflowButton)return;const e=this._tray;if(!e)return;const i="left"===this.tabBarPosition||"right"===this.tabBarPosition,s=i?e.scrollHeight:e.scrollWidth,r=i?e.clientHeight:e.clientWidth,o=i?e.scrollTop:e.scrollLeft,n=o>0,a=o+r<s-1,l=this._canBack!==n||this._canFwd!==a;this._canBack=n,this._canFwd=a,!t&&l&&(this.#b(),this.requestUpdate())}#l;#h;#k(t){if(!this.overflowButton)return;const e=this._tray;if(!e)return;if(this.navSelectOnButtons&&"tab"===this.scrollMode)return void this.#_(t);const i="left"===this.tabBarPosition||"right"===this.tabBarPosition;if("px"===this.scrollMode){const s=t*this.scrollPx;return void e.scrollBy({left:i?0:s,top:i?s:0,behavior:"smooth"})}if("page"===this.scrollMode){const{start:s,end:r}=this.#S(),o=(i?e.clientHeight:e.clientWidth)-(s+r),n=.8*Math.max(0,o);return void e.scrollBy({left:i?0:t*n,top:i?t*n:0,behavior:"smooth"})}const s=this.#n();if(!s.length)return;const r=i?e.scrollTop:e.scrollLeft,o=s.map(t=>({el:t,start:i?t.offsetTop:t.offsetLeft,end:i?t.offsetTop+t.offsetHeight:t.offsetLeft+t.offsetWidth}));let n=o.findIndex(t=>t.start>=r-1);-1===n&&(n=o.length-1);const a=o[t>0?Math.min(n+1,o.length-1):Math.max(n-1,0)].el;this.#P(a,i),requestAnimationFrame(()=>this.#r())}#B(t){this.overflowButton&&(this._held=!1,this._holdSign=t,this._holdStartTimer=window.setTimeout(()=>{this._held=!0,this.#k(t),this._holdTimer=window.setInterval(()=>this.#k(t),this.holdInterval)},this.holdDelay))}#T(){this.overflowButton&&(this._holdStartTimer&&(window.clearTimeout(this._holdStartTimer),this._holdStartTimer=null),this._holdTimer&&(window.clearInterval(this._holdTimer),this._holdTimer=null),!this._held&&this._holdSign&&this.#k(this._holdSign),this._held=!1,this._holdSign=void 0)}#P(t,e){const i=this._tray,s=e?t.offsetTop:t.offsetLeft;i.scrollTo({left:e?0:s,top:e?s:0,behavior:"smooth"})}#y(t=!0){const e=this._tray,i=this._tabsEl,s=this.#n(),r=this.selectedIndex,o=s[r];if(!(e&&i&&o&&s.length))return;const n="left"===this.tabBarPosition||"right"===this.tabBarPosition,a=n?e.scrollTop:e.scrollLeft,l=n?e.clientHeight:e.clientWidth,{start:h,end:d}=this.#S(),c=a,p=Math.max(0,l-(h+d)),b=c+h,u=b+p,y=n?e.scrollHeight:e.scrollWidth;if(y<=l+1)return;const m=this.neighborPad??8,f=t=>{const e=n?t.offsetTop:t.offsetLeft,i=n?t.offsetHeight:t.offsetWidth;return{start:e,end:e+i,size:i}},g=f(o),v=r>0?f(s[r-1]):null,w=r<s.length-1?f(s[r+1]):null,x=v?Math.min(v.size+m,Math.floor(.35*p)):0,k=w?Math.min(w.size+m,Math.floor(.35*p)):0;let _=c;g.start<b+x&&(_=g.start-x-h),g.end>u-k&&(_=g.end-(p-k)-h),_=Math.max(0,Math.min(_,y-l));{const t=Math.max(0,g.end-(p-k)-h),e=Math.min(y-l,g.start-x-h);_<t&&(_=t),_>e&&(_=e),_=Math.max(0,Math.min(_,y-l))}e.scrollTo({left:n?0:_,top:n?_:0,behavior:t?"smooth":"auto"}),requestAnimationFrame(()=>this.#r())}#s(){const t=this.renderRoot.querySelector(".tabs"),e=this.#n()[this.selectedIndex],i=t?.querySelector(".thumb");if(!t||!e||!i)return;const s=getComputedStyle(t),r=parseFloat(s.paddingLeft||"4"),o=parseFloat(s.paddingTop||"4"),n=t.getBoundingClientRect(),a=e.getBoundingClientRect(),l=n.width/t.clientWidth||1,h=n.height/t.clientHeight||1,d=(a.left-n.left-r*l)/l,c=(a.top-n.top-o*h)/h,p=`translate(${d}px, ${c}px)`,b=`${a.width/l}px`,u=`${a.height/h}px`;if(window.matchMedia("(prefers-reduced-motion: reduce)").matches||!this._ready)return t.style.setProperty("--thumb-x",`${d}px`),t.style.setProperty("--thumb-y",`${c}px`),t.style.setProperty("--thumb-w",b),void t.style.setProperty("--thumb-h",u);const y=getComputedStyle(i),m=[{transform:y.transform||"translate(0, 0)",width:y.width||"0px",height:y.height||"0px"},{transform:p,width:b,height:u}],f=parseFloat(getComputedStyle(t).getPropertyValue("--sky-tab-anim-ms"))||280,g=getComputedStyle(t).getPropertyValue("--sky-tab-anim-ease")||"cubic-bezier(0.2, 0.8, 0.2, 1)";this._thumbAnimation?.cancel(),this._thumbAnimation=i.animate(m,{duration:f,easing:g,fill:"forwards"}),t.style.setProperty("--thumb-x",`${d}px`),t.style.setProperty("--thumb-y",`${c}px`),t.style.setProperty("--thumb-w",b),t.style.setProperty("--thumb-h",u)}#i(){const t=this.renderRoot.querySelector(".tabs");if(!t)return;if(!("left"===this.tabBarPosition||"right"===this.tabBarPosition))return void t.style.removeProperty("--sky-seg-vert-item-width");const e=this.#n();if(!e.length)return;const i=e.map(t=>{const e=t.style.alignSelf,i=t.style.width;t.style.alignSelf="flex-start",t.style.width="auto";const s=Math.ceil(t.getBoundingClientRect().width);return t.style.alignSelf=e,t.style.width=i,s}),s=Math.max(...i);t.style.setProperty("--sky-seg-vert-item-width",`${s}px`)}#S(){if(!this.overflowButton||!this._tray)return{start:0,end:0};const t="left"===this.tabBarPosition||"right"===this.tabBarPosition,e=this._btnPrev&&!this._btnPrev.hasAttribute("hidden")&&!this._btnPrev.disabled,i=this._btnNext&&!this._btnNext.hasAttribute("hidden")&&!this._btnNext.disabled;let s=0,r=0;if(e){const e=this._btnPrev.getBoundingClientRect();s=t?e.height:e.width}if(i){const e=this._btnNext.getBoundingClientRect();r=t?e.height:e.width}const o=getComputedStyle(this._tray);return{start:s+(t?parseFloat(o.paddingTop||"0"):parseFloat(o.paddingLeft||"0"))+20,end:r+(t?parseFloat(o.paddingBottom||"0"):parseFloat(o.paddingRight||"0"))+20}}#b(){const t=this._tray;if(!t)return;const e="left"===this.tabBarPosition||"right"===this.tabBarPosition,{start:i,end:s}=this.#S();e?(t.style.scrollPaddingBlockStart=`${i}px`,t.style.scrollPaddingBlockEnd=`${s}px`,t.style.scrollPaddingInlineStart="",t.style.scrollPaddingInlineEnd=""):(t.style.scrollPaddingInlineStart=`${i}px`,t.style.scrollPaddingInlineEnd=`${s}px`,t.style.scrollPaddingBlockStart="",t.style.scrollPaddingBlockEnd="")}selectTab(t){if(t===this.selectedIndex)return;const e=this.#x(),i=this.#n(),s=this.selectedIndex;if("unmount"===this.mountStrategy&&e[s]){const t=document.createDocumentFragment();t.append(...Array.from(e[s].childNodes)),this.keepAlive&&this._cache.set(s,t)}if(this.selectedIndex=t,"unmount"===this.mountStrategy&&e[t]){const i=e[t],s=this._cache.get(t);s&&i&&i.append(s)}e.forEach((e,i)=>{e&&e.toggleAttribute("selected",i===t)}),i.forEach((e,i)=>{e.setAttribute("aria-selected",String(i===t)),e.setAttribute("tabindex",i===t?"0":"-1")}),this.updateComplete.then(()=>{this.#s(),this.#y(!0),this.#r(),this.dispatchEvent(new CustomEvent("tab-change",{detail:{activeIndex:this.selectedIndex},bubbles:!1,composed:!1}))})}activate(t=this.selectedIndex){const e=this.#n().length-1;if(e<0)return;const i=Math.max(0,Math.min(t,e));this.selectTab(i)}#d;#c(t){this._keyNavLocked||(this._keyNavLocked=!0,this.selectTab(t),this.#y(!0),requestAnimationFrame(()=>{this.#n()[this.selectedIndex]?.focus({preventScroll:!0}),this._keyNavLocked=!1}))}#p(t){this._keyNavDebouncing?this._keyQueuedDir=t:(this.#_(t),this._keyNavDebouncing=!0,this._keyQueuedDir=null,this._keyNavTimer&&window.clearTimeout(this._keyNavTimer),this._keyNavTimer=window.setTimeout(()=>{this._keyNavDebouncing=!1;const t=this._keyQueuedDir;this._keyQueuedDir=null,t&&this.#p(t)},Math.max(0,this.keyNavDebounce)))}#_(t){const e=this.#n().length;if(!e)return;const i=(this.selectedIndex+t+e)%e;this.#c(i)}renderTabs(){const t="top"===this.tabBarPosition||"bottom"===this.tabBarPosition,e=l(t,()=>r`<sky-icon icon="ion:chevron-back" aria-hidden="true"></sky-icon>`,()=>r`<sky-icon icon="ion:chevron-up" aria-hidden="true"></sky-icon>`),i=l(t,()=>r`<sky-icon icon="ion:chevron-forward" aria-hidden="true"></sky-icon>`,()=>r`<sky-icon icon="ion:chevron-down" aria-hidden="true"></sky-icon>`),s=this.overflowButton,o=s&&(this._canBack||this._canFwd),n=h({rails:!0,top:"top"===this.tabBarPosition,bottom:"bottom"===this.tabBarPosition,left:"left"===this.tabBarPosition,right:"right"===this.tabBarPosition}),a=h({tray:!0,"tray--buttons":s,"tray--native":!s}),d=h({tabs:!0,top:"top"===this.tabBarPosition,bottom:"bottom"===this.tabBarPosition,left:"left"===this.tabBarPosition,right:"right"===this.tabBarPosition});return r`
331
+ <div class=${n} part="rails">
332
+ <button
333
+ class="navbtn prev"
334
+ ?hidden=${!s||!o}
335
+ .disabled=${!this._canBack&&!this.navSelectOnButtons}
336
+ @pointerdown=${()=>this.#B(-1)}
337
+ @pointerup=${this.#T}
338
+ @pointerleave=${this.#T}
339
+ @pointercancel=${this.#T}
340
+ aria-label=${t?"Scroll tabs left":"Scroll tabs up"}
341
+ >
342
+ ${e}
343
+ </button>
344
+
345
+ <div class=${a} part="tray">
346
+ <div
347
+ class=${d}
348
+ part="tabs"
349
+ role="tablist"
350
+ tabindex="-1"
351
+ data-ready=${String(this._ready)}
352
+ aria-orientation=${t?"horizontal":"vertical"}
353
+ >
354
+ <span class="thumb" part="indicator" aria-hidden="true"></span>
355
+ <slot name="tab" @slotchange=${this.#t}></slot>
356
+ </div>
357
+ </div>
358
+
359
+ <button
360
+ class="navbtn next"
361
+ ?hidden=${!s||!o}
362
+ .disabled=${!this._canFwd&&!this.navSelectOnButtons}
363
+ @pointerdown=${()=>this.#B(1)}
364
+ @pointerup=${this.#T}
365
+ @pointerleave=${this.#T}
366
+ @pointercancel=${this.#T}
367
+ aria-label=${t?"Scroll tabs right":"Scroll tabs down"}
368
+ >
369
+ ${i}
370
+ </button>
371
+ </div>
372
+ `}renderContent(){return this.#u(),r`
373
+ <div
374
+ class="content"
375
+ part="content"
376
+ style=${d({...this.panelWidth?{width:this.panelWidth}:{},...this.panelHeight?{height:this.panelHeight}:{}})}
377
+ >
378
+ <slot
379
+ name="tab-content"
380
+ @slotchange=${()=>{this.#u(),this.#i(),this.#s()}}
381
+ ></slot>
382
+ </div>
383
+ `}render(){const t=h({wrapper:!0,top:"top"===this.tabBarPosition,bottom:"bottom"===this.tabBarPosition,left:"left"===this.tabBarPosition,right:"right"===this.tabBarPosition}),e="left"===this.tabBarPosition||"top"===this.tabBarPosition,i="right"===this.tabBarPosition||"bottom"===this.tabBarPosition;return r`
384
+ <div class=${t} style=${d({gap:this.gutter})}>
385
+ ${l(e,()=>this.renderTabs())}
386
+ ${this.renderContent()}
387
+ ${l(i,()=>this.renderTabs())}
388
+ </div>
389
+ `}};t([o({type:Number}),e("design:type",Object)],u.prototype,"selectedIndex",void 0),t([o({type:String}),e("design:type",String)],u.prototype,"tabBarPosition",void 0),t([o({type:String}),e("design:type",Object)],u.prototype,"panelHeight",void 0),t([o({type:String}),e("design:type",Object)],u.prototype,"panelWidth",void 0),t([o({type:String}),e("design:type",Object)],u.prototype,"gutter",void 0),t([o({type:String}),e("design:type",String)],u.prototype,"mountStrategy",void 0),t([o({type:Boolean}),e("design:type",Object)],u.prototype,"keepAlive",void 0),t([o({type:Boolean}),e("design:type",Object)],u.prototype,"overflowButton",void 0),t([o({type:String}),e("design:type",String)],u.prototype,"scrollMode",void 0),t([o({type:Number}),e("design:type",Object)],u.prototype,"scrollPx",void 0),t([o({type:Number}),e("design:type",Object)],u.prototype,"edgePad",void 0),t([o({type:Number}),e("design:type",Object)],u.prototype,"holdDelay",void 0),t([o({type:Number}),e("design:type",Object)],u.prototype,"holdInterval",void 0),t([o({type:Number}),e("design:type",Object)],u.prototype,"neighbors",void 0),t([o({type:Number}),e("design:type",Object)],u.prototype,"neighborPad",void 0),t([o({type:Number}),e("design:type",Object)],u.prototype,"keyNavDebounce",void 0),t([o({type:Boolean}),e("design:type",Object)],u.prototype,"navSelectOnButtons",void 0),t([n(),e("design:type",Object)],u.prototype,"_ready",void 0),t([o({type:String}),e("design:type",Object)],u.prototype,"color",void 0),u=t([a("sky-tab")],u);export{u as SkyTab};
390
+ //# sourceMappingURL=sky-tab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sky-tab.js","sources":["../../src/sky-tab/sky-tab.ts"],"sourcesContent":[null],"names":["SkyTab","LitElement","constructor","this","selectedIndex","tabBarPosition","panelHeight","panelWidth","gutter","mountStrategy","keepAlive","overflowButton","scrollMode","scrollPx","edgePad","holdDelay","holdInterval","neighbors","neighborPad","keyNavDebounce","navSelectOnButtons","_ready","color","_cache","Map","_canBack","_canFwd","_holdTimer","_holdStartTimer","_held","_keyNavLocked","_keyNavTimer","_keyNavDebouncing","_keyQueuedDir","onLabelSlotChange","hydrateLabels","requestAnimationFrame","syncVertWidth","positionThumb","updateOverflowState","onLabelClick","e","idx","labels","indexOf","currentTarget","selectTab","onResize","onWheel","tray","_tray","ctrlKey","Math","abs","deltaY","deltaX","max","scrollHeight","clientHeight","next","scrollTop","preventDefault","scrollBy","top","behavior","delta","shiftKey","scrollWidth","clientWidth","scrollLeft","left","onScroll","onHostKeydown","path","composedPath","some","n","getAttribute","includes","count","length","horiz","dir","key","goToIndex","scheduleKeyNav","dependencies","SkyIcon","styles","css","firstUpdated","_resizeObs","ResizeObserver","renderRoot","querySelector","_labelSlot","_tabsEl","_contentSlot","wrapper","observe","addEventListener","passive","window","capture","tabs","ms","parseFloat","getComputedStyle","getPropertyValue","round","_btnPrev","_btnNext","applyScrollPadding","queueMicrotask","hydratePanels","scrollActiveIntoView","panels","assignedElements","flatten","labelKey","id","i","m","match","panelKey","startsWith","getLabelKeys","used","Set","map","el","has","add","panelByKey","forEach","p","set","orderedPanels","keys","byKey","k","get","pairedSet","filter","fallbackId","String","test","isSelected","toggleAttribute","setAttribute","random","toString","slice","selected","tabIndex","removeEventListener","tabIds","size","disconnectedCallback","super","_thumbAnimation","cancel","disconnect","clearInterval","clearTimeout","updated","changed","baseColor","resolveColor","activeTextColor","resolveTextColorForToken","style","setProperty","isVertical","extent","viewport","pos","canBack","canFwd","requestUpdate","scrollStep","sign","stepOnce","vertical","start","end","getInsets","usable","page","btns","viewStart","positions","b","offsetTop","offsetLeft","offsetHeight","offsetWidth","leftIndex","findIndex","target","min","scrollToElement","holdStart","_holdSign","setTimeout","setInterval","holdStop","undefined","offset","scrollTo","smooth","tabsEl","active","rawStart","rawSize","insetStart","insetEnd","effSize","effStart","effEnd","contentExtent","pad","a","prev","minLead","floor","minTrail","targetStart","windowStartAllowed","windowEndAllowed","wrap","thumb","wrapStyles","padL","paddingLeft","padT","paddingTop","wr","getBoundingClientRect","ar","scaleX","width","scaleY","height","xLocal","yLocal","targetTransform","targetWidth","targetHeight","matchMedia","matches","cs","keyframes","transform","animMs","animEase","animate","duration","easing","fill","removeProperty","widths","prevAlign","alignSelf","prevWidth","w","ceil","maxW","prevVisible","hasAttribute","disabled","nextVisible","r","trayStyles","paddingBottom","paddingRight","scrollPaddingBlockStart","scrollPaddingBlockEnd","scrollPaddingInlineStart","scrollPaddingInlineEnd","index","oldIdx","frag","document","createDocumentFragment","append","Array","from","childNodes","cached","updateComplete","then","dispatchEvent","CustomEvent","detail","activeIndex","bubbles","composed","activate","focus","preventScroll","queued","renderTabs","prevIcon","when","html","nextIcon","useButtons","showNav","railsClasses","classMap","rails","bottom","right","trayClasses","tabsClasses","renderContent","styleMap","render","wrapperClasses","tabsFirst","tabsLast","gap","__decorate","property","type","Number","prototype","Boolean","state","customElement"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from "./sky-tab-button";
@@ -0,0 +1 @@
1
+ export * from './sky-tab-button.js';
@@ -0,0 +1,114 @@
1
+ import { LitElement, PropertyValues } from "lit";
2
+ export type Size = "xs" | "sm" | "md" | "lg" | "xl";
3
+ export type RadiusSize = "none" | "sm" | "md" | "lg" | "full";
4
+ export type SwitchItem = string | {
5
+ value: string;
6
+ label?: string;
7
+ icon?: string;
8
+ disabled?: boolean;
9
+ color?: string;
10
+ };
11
+ type NormalizedItem = {
12
+ value: string;
13
+ label?: string;
14
+ icon?: string;
15
+ disabled?: boolean;
16
+ color?: string;
17
+ };
18
+ export type SkyTabButtonStateChangeDetail = {
19
+ value: string;
20
+ index: number;
21
+ item: NormalizedItem;
22
+ };
23
+ /**
24
+ * `<sky-tab-button>` — A segmented tab/switch-style button group with smooth animated thumb indicator.
25
+ * Supports icons, labels, keyboard navigation, dynamic resizing, and accessibility features.
26
+ *
27
+ * @element sky-tab-button
28
+ * @status stable
29
+ * @since 1.0.0
30
+ *
31
+ * @summary Segmented tab-button control with animated thumb and keyboard navigation.
32
+ *
33
+ * @documentation https://library.sky-ui.com/components/tab-button
34
+ * @dependency sky-icon
35
+ *
36
+ * @uiVModel value state-change
37
+ *
38
+ * @slot - Default slot for additional content (not typically used).
39
+ *
40
+ * @csspart wrap - The outer wrapper of the control (radiogroup).
41
+ * @csspart thumb - The animated highlight element behind the active button.
42
+ * @csspart btn - Each individual button element.
43
+ * @csspart label - The optional label span inside each button.
44
+ * @csspart icon - The optional icon inside each button.
45
+ *
46
+ * @property {Array<string|{value:string,label?:string,icon?:string,disabled?:boolean,color?:string}>} states - List of states. Each can be a string or an object with `value`, optional `label`, optional `icon`, optional `disabled`, and optional `color`. Default: []
47
+ * @property {string} value - Currently selected state value. Reflected as attribute. Default: ""
48
+ * @property {boolean} disabled - If true, disables all buttons. Reflected as attribute. Default: false
49
+ * @property {"xs"|"sm"|"md"|"lg"|"xl"} size - Size of the control. Affects padding, font size, and dimensions. Default: "sm"
50
+ * @property {"none"|"sm"|"md"|"lg"|"full"} radius - Border radius of the control. Default: "full"
51
+ * @property {boolean} showCurrentLabelOnly - If true, only the currently selected label is shown. Otherwise, all labels are shown. Default: false
52
+ * @property {string} color - Base color for the active thumb indicator. Supports CSS tokens like "primary", "success", etc. Default: "primary"
53
+ *
54
+ * @fires {CustomEvent<SkyTabButtonStateChangeDetail>} state-change - Fired when the selected value changes.
55
+ * @method focusButton Focuses the currently active tab button.
56
+ *
57
+ * @Behavior
58
+ * - Normalizes string/object states into a single selectable item model.
59
+ * - Animates active thumb position and optional label visibility.
60
+ * - Supports keyboard navigation and per-item disabled states.
61
+ *
62
+ * @example
63
+ * ```html
64
+ * <sky-tab-button size="md" radius="full" color="primary" value="active"></sky-tab-button>
65
+ * ```
66
+ * ```vue
67
+ * <template>
68
+ * <sky-tab-button :states="states" size="md" radius="full" color="primary" value="active" show-current-label-only></sky-tab-button>
69
+ * </template>
70
+ * ```
71
+ * ```jsx
72
+ * export default function Demo() {
73
+ * return <sky-tab-button states={[{ value: "draft", label: "Draft" }, { value: "active", label: "Active", icon: "mdi:check" }, { value: "archived", label: "Archived" }]} size="md" radius="full" color="primary" value="active" showCurrentLabelOnly></sky-tab-button>;
74
+ * }
75
+ * ```
76
+ */
77
+ export declare class SkyTabButton extends LitElement {
78
+ #private;
79
+ static dependencies: Record<string, CustomElementConstructor>;
80
+ states: SwitchItem[];
81
+ value: string;
82
+ disabled: boolean;
83
+ size: Size;
84
+ radius: RadiusSize;
85
+ showCurrentLabelOnly: boolean;
86
+ color: string;
87
+ private _labelWidths;
88
+ private _ready;
89
+ private _containerWidth;
90
+ /** Cached normalized items; updated in willUpdate to avoid repeated array creation. */
91
+ private _itemsCache;
92
+ private _canvasContext?;
93
+ private _thumbAnimation?;
94
+ private _labelAnimations;
95
+ private _updateScheduled;
96
+ private _resizeTimeout?;
97
+ private _windowResizeTimeout?;
98
+ private _visibilityRetryTimer?;
99
+ private _visibilityRetryAttempts;
100
+ static styles: import("lit").CSSResult;
101
+ connectedCallback(): void;
102
+ disconnectedCallback(): void;
103
+ protected firstUpdated(_changed: PropertyValues): void;
104
+ protected willUpdate(changed: PropertyValues): void;
105
+ protected updated(changed: Map<string, unknown>): void;
106
+ get items(): NormalizedItem[];
107
+ get index(): number;
108
+ set index(i: number);
109
+ /** Re-measure and reposition the active thumb (e.g. after parent layout/visibility changes). */
110
+ refresh(): void;
111
+ render(): import("lit-html").TemplateResult<1>;
112
+ focusButton(): void;
113
+ }
114
+ export {};