@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,167 @@
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 a,state as n,customElement as o}from"lit/decorators.js";import{when as l}from"lit/directives/when.js";import{repeat as d}from"lit/directives/repeat.js";import{styleMap as h}from"lit/directives/style-map.js";import{resolveColor as p,resolveTextColorForToken as c}from"../helper/utils/color-resolver.js";import{resolveRadius as m}from"../helper/utils/size-resolver.js";import{SkyIcon as u}from"../sky-icon/sky-icon.js";const y={xs:28,sm:36,md:44,lg:52,xl:60};let b=class extends i{constructor(){super(...arguments),this.states=[],this.value="",this.disabled=!1,this.size="sm",this.radius="full",this.showCurrentLabelOnly=!1,this.color="primary",this._labelWidths=new Map,this._ready=!1,this._containerWidth=0,this._itemsCache=[],this.#t=!1,this._labelAnimations=new Map,this._updateScheduled=!1,this._visibilityRetryAttempts=0,this.#e=()=>{this._windowResizeTimeout&&window.clearTimeout(this._windowResizeTimeout),this._windowResizeTimeout=window.setTimeout(()=>{this._windowResizeTimeout=void 0,this.#i()},50)},this.#s=t=>{const e=t.target.closest?.(".btn");if(!e||this.disabled)return;const i=parseInt(e.getAttribute("data-index")??"-1",10);if(i<0)return;const s=this.items[i];s?.disabled||(this.index=i)},this.#r=t=>{if(this.disabled)return;const e=this.items;if(!e.length)return;let i=this.index;switch(t.key){case"ArrowRight":case"ArrowDown":case" ":case"Enter":i=this.#a(this.index,1);break;case"ArrowLeft":case"ArrowUp":i=this.#a(this.index,-1);break;case"Home":i=e.findIndex(t=>!t.disabled),i<0&&(i=this.index);break;case"End":i=[...e].map((t,e)=>({it:t,idx:e})).reverse().find(t=>!t.it.disabled)?.idx??this.index;break;default:return}t.preventDefault(),i!==this.index&&(this.index=i),this.updateComplete.then(()=>{const t=this.renderRoot.querySelectorAll(".btn");t[i]?.focus()})}}static{this.dependencies={"sky-icon":u}}#n;#o;#l;#t;static{this.styles=s`
2
+ :host {
3
+ display: inline-block;
4
+ --anim-ms: 220ms;
5
+ --anim-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
6
+ }
7
+
8
+ .wrap {
9
+ position: relative;
10
+ display: inline-flex;
11
+ gap: var(--gap);
12
+ padding: var(--pad);
13
+ border-radius: var(--tab-radius, var(--sky-radius-full));
14
+ align-items: center;
15
+ background: var(--sky-glass-primary);
16
+ border: var(--sky-border-primary);
17
+ box-shadow: var(--sky-box-shadow-inset);
18
+ }
19
+
20
+ .wrap::before{
21
+ content: "";
22
+ position: absolute;
23
+ inset: 0;
24
+ border-radius: inherit;
25
+ pointer-events: none;
26
+ backdrop-filter: var(--sky-blur-primary) var(--sky-brightness-primary) var(--sky-saturation-primary);
27
+ z-index: -1;
28
+ }
29
+
30
+ .thumb {
31
+ position: absolute;
32
+ border-radius: var(--tab-radius, var(--sky-radius-full));
33
+ background: var(--sky-tab-color);
34
+ pointer-events: none;
35
+ z-index: 0;
36
+ opacity: 0; /* Start hidden, WAAPI will show it */
37
+ }
38
+
39
+ /* Fallback for reduced motion */
40
+ @media (prefers-reduced-motion: reduce) {
41
+ .wrap[data-ready="true"] .thumb {
42
+ transition:
43
+ transform var(--anim-ms) var(--anim-ease),
44
+ width var(--anim-ms) var(--anim-ease),
45
+ height var(--anim-ms) var(--anim-ease);
46
+ opacity: 1;
47
+ }
48
+ }
49
+
50
+ .btn {
51
+ position: relative;
52
+ z-index: 1;
53
+ appearance: none;
54
+ border: 0;
55
+ background: transparent;
56
+ border-radius: var(--tab-radius, var(--sky-radius-full));
57
+ font: inherit;
58
+ font-weight: var(--sky-font-weight-medium, 500);
59
+ color: var(--sky-text-primary, currentColor);
60
+ cursor: pointer;
61
+ display: inline-flex;
62
+ align-items: center;
63
+ justify-content: center;
64
+ gap: 6px;
65
+ transition: color var(--anim-ms) var(--anim-ease);
66
+ outline: none;
67
+ padding: var(--item-pad);
68
+ min-width: var(--item-min-w);
69
+ min-height: var(--item-min-h);
70
+ }
71
+
72
+ .btn[aria-checked="true"] {
73
+ color: var(--sky-tab-text-color-active, currentColor);
74
+ }
75
+
76
+ .btn:focus-visible {
77
+ box-shadow: 0 0 0 2px var(--sky-tab-color, currentColor);
78
+ }
79
+
80
+ .btn[disabled] {
81
+ cursor: not-allowed;
82
+ opacity: 0.6;
83
+ }
84
+
85
+ :host([disabled]) .btn {
86
+ cursor: not-allowed;
87
+ opacity: 0.6;
88
+ }
89
+ :host([disabled]) .wrap {
90
+ opacity: 0.8;
91
+ }
92
+
93
+ sky-icon {
94
+ display: inline-block;
95
+ width: 1em;
96
+ height: 1em;
97
+ }
98
+
99
+ .label {
100
+ display: inline-block;
101
+ overflow: hidden;
102
+ white-space: nowrap;
103
+ opacity: 1;
104
+ max-width: none;
105
+ /* No CSS transition - WAAPI handles it */
106
+ }
107
+
108
+ /* Fallback for reduced motion */
109
+ @media (prefers-reduced-motion: reduce) {
110
+ .wrap[data-ready="true"] .label {
111
+ transition:
112
+ max-width var(--anim-ms) var(--anim-ease),
113
+ opacity var(--anim-ms) var(--anim-ease);
114
+ }
115
+ }
116
+
117
+ .label[data-hidden="true"] {
118
+ opacity: 0;
119
+ max-width: 0;
120
+ }
121
+ `}connectedCallback(){super.connectedCallback(),this.#d(),this._itemsCache=(this.states??[]).map(t=>"string"==typeof t?{value:t,label:t}:{...t}),this.#h();const t=document.createElement("canvas");this._canvasContext=t.getContext("2d")||void 0,this.#n=new ResizeObserver(()=>{this._resizeTimeout&&window.clearTimeout(this._resizeTimeout),this._resizeTimeout=window.setTimeout(()=>{this._containerWidth=this.offsetWidth,this.#i()},50)}),this.#o=new IntersectionObserver(t=>{t.forEach(()=>{this.#t&&(this.#i(),this.#p())})},{threshold:[0,.01,.1,1]}),requestAnimationFrame(()=>{this.#n&&this.#n.observe(this),this.#o&&this.#o.observe(this),this.#c(),this.#i()}),window.addEventListener("resize",this.#e,{passive:!0})}disconnectedCallback(){super.disconnectedCallback(),this.#n?.disconnect(),this.#o?.disconnect(),this.#l?.disconnect(),this.#m(),this._thumbAnimation&&this._thumbAnimation.cancel(),this._labelAnimations.forEach(t=>t.cancel()),this._labelAnimations.clear(),this._resizeTimeout&&window.clearTimeout(this._resizeTimeout),this._windowResizeTimeout&&window.clearTimeout(this._windowResizeTimeout),window.removeEventListener("resize",this.#e)}#u(){const t=this.#y,e=p(t),i=c(t);this.style.setProperty("--sky-tab-color",e),this.style.setProperty("--sky-tab-text-color-active",i)}firstUpdated(t){this.#u(),requestAnimationFrame(()=>{this.#b(),this._ready=!0,this.#t=!0,this.updateComplete.then(()=>{this.#i()})})}willUpdate(t){this._itemsCache=(this.states??[]).map(t=>"string"==typeof t?{value:t,label:t}:{...t}),(t.has("size")||t.has("radius"))&&(this.#d(),t.has("size")&&this.#t&&this.#i()),t.has("states")&&(this.#h(),this.#t&&this.#i())}updated(t){(t.has("color")||t.has("value")||t.has("states"))&&this.#u(),(t.has("states")||t.has("showCurrentLabelOnly"))&&this.#i(),t.has("value")&&this.#t&&this.#i()}#e;#s;#i(){this._updateScheduled||(this._updateScheduled=!0,requestAnimationFrame(()=>{this.#v(),this._updateScheduled=!1}))}get items(){return this._itemsCache}get#y(){const t=this.items[this.index];return(t?.color??this.color)||"primary"}#h(){const t=this.items.map(t=>t.value);t.length?t.includes(this.value)||(this.value=t[0]):this.value=""}#d(){const t={xs:{pad:"2px",gap:"2px",font:"11px",itemPad:"4px 8px",minW:"28px",minH:"22px"},sm:{pad:"3px",gap:"3px",font:"12px",itemPad:"6px 10px",minW:"36px",minH:"26px"},md:{pad:"4px",gap:"4px",font:"13px",itemPad:"8px 14px",minW:"44px",minH:"32px"},lg:{pad:"5px",gap:"5px",font:"14px",itemPad:"10px 16px",minW:"52px",minH:"38px"},xl:{pad:"6px",gap:"6px",font:"15px",itemPad:"12px 20px",minW:"60px",minH:"44px"}},e=t[this.size]??t.md,i=this.style;i.setProperty("--pad",e.pad),i.setProperty("--gap",e.gap),i.setProperty("--font-size",e.font),i.setProperty("--item-pad",e.itemPad),i.setProperty("--item-min-w",e.minW),i.setProperty("--item-min-h",e.minH),i.setProperty("--tab-radius",m(this.radius))}get index(){return Math.max(0,this.items.findIndex(t=>t.value===this.value))}set index(t){const e=this.items;if(!e.length)return;const i=Math.max(0,Math.min(e.length-1,t)),s=e[i].value;s!==this.value&&(this.value=s,this.dispatchEvent(new CustomEvent("state-change",{detail:{value:this.value,index:i,item:e[i]},bubbles:!0,composed:!0})))}#b(){const t=this.items,e=new Map,i=this.renderRoot.querySelector(".wrap"),s=i?window.getComputedStyle(i):null,r=this._canvasContext;s&&r&&(r.font=`${s.fontWeight} ${s.fontSize} ${s.fontFamily}`);const a=parseFloat(this.style.getPropertyValue("--font-size")||"12");for(let i=0;i<t.length;i++){const n=t[i];if(n.label)if(r&&s){const t=r.measureText(n.label).width;e.set(i,Math.ceil(t))}else e.set(i,Math.ceil(n.label.length*a*.6));else e.set(i,0)}this._labelWidths=e}#c(){this.#l?.disconnect(),this.#l=new MutationObserver(()=>{this.#t&&(this.#i(),this.#p())});let t=this.parentElement;for(let e=0;t&&e<8;e++)this.#l.observe(t,{attributes:!0,attributeFilter:["class","style","aria-hidden","hidden","open"]}),t=t.parentElement}#m(){void 0!==this._visibilityRetryTimer&&(window.clearTimeout(this._visibilityRetryTimer),this._visibilityRetryTimer=void 0),this._visibilityRetryAttempts=0}#p(){if(void 0!==this._visibilityRetryTimer)return;const t=()=>{if(this._visibilityRetryTimer=void 0,!this.isConnected)return;this.#v();const e=this.renderRoot.querySelector(".thumb"),i=!e||parseFloat(e.style.opacity||"0")<.01;if(this._ready&&this.items.length>0&&i&&this._visibilityRetryAttempts<30)return this._visibilityRetryAttempts++,void(this._visibilityRetryTimer=window.setTimeout(t,100));i||(this._visibilityRetryAttempts=0)};this._visibilityRetryTimer=window.setTimeout(t,50)}#x(){if(!this.isConnected)return!1;let t=this;for(;t&&t!==document.documentElement;){const e=window.getComputedStyle(t);if("none"===e.display||"hidden"===e.visibility)return!1;t=t.parentElement}const e=this.closest("sky-dialog, dialog");return!(e&&!e.hasAttribute("open"))}#v(){const t=this.renderRoot.querySelector(".wrap"),e=this.renderRoot.querySelectorAll(".btn")[this.index],i=t?.querySelector(".thumb");if(!(t&&e&&i&&this._ready))return void(this.#t&&!this._updateScheduled&&requestAnimationFrame(()=>this.#v()));if(!this.#x())return i.style.opacity="0",void this.#p();const s=t.getBoundingClientRect(),r=e.getBoundingClientRect();if(0===s.width||0===s.height||0===r.width||0===r.height)return void(this.#t&&this.#p());const a=getComputedStyle(t),n=parseFloat(a.paddingLeft||"0"),o=parseFloat(a.paddingTop||"0"),l=t.clientWidth||s.width,d=t.clientHeight||s.height,h=l?s.width/l:1,p=d?s.height/d:1,c=(r.left-s.left-n*h)/(h||1),m=(r.top-s.top-o*p)/(p||1),u=Math.max(1,r.width/(h||1)),y=Math.max(1,r.height/(p||1));if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return i.style.transform=`translate(${c-1}px, ${m-1}px)`,i.style.width=`${u}px`,i.style.height=`${y}px`,void(i.style.opacity="1");const b=[{transform:i.style.transform||"translate(0, 0)",width:i.style.width||"0px",height:i.style.height||"0px",opacity:parseFloat(i.style.opacity||"0")},{transform:`translate(${c-1}px, ${m-1}px)`,width:`${u}px`,height:`${y}px`,opacity:1}];this._thumbAnimation&&this._thumbAnimation.cancel(),this._thumbAnimation=i.animate(b,{duration:220,easing:"cubic-bezier(0.2, 0.8, 0.2, 1)",fill:"forwards"}),i.style.transform=`translate(${c-1}px, ${m-1}px)`,i.style.width=`${u}px`,i.style.height=`${y}px`,i.style.opacity="1",this._visibilityRetryAttempts=0}refresh(){this.#i(),this.#p()}#a(t,e){const i=this.items,s=i.length;for(let r=1;r<=s;r++){const a=(t+e*r+s)%s;if(!i[a].disabled)return a}return t}#r;render(){const t=this.index,e=this.items;return r`
122
+ <div
123
+ class="wrap"
124
+ part="wrap"
125
+ role="radiogroup"
126
+ style=${h({fontSize:"var(--font-size)"})}
127
+ data-ready=${String(this._ready)}
128
+ @keydown=${this.#r}
129
+ @click=${this.#s}
130
+ >
131
+ <span class="thumb" part="thumb" aria-hidden="true"></span>
132
+
133
+ ${d(e,t=>t.value,(e,i)=>{const s=i===t,a=!this.showCurrentLabelOnly||s,n=this.showCurrentLabelOnly&&!s,o=this._labelWidths.get(i)||0,d=e.icon?16:0,p=y[this.size]??44,c=Math.max(p,o+d+12+(e.icon&&e.label?6:0)),m=this.disabled||!!e.disabled;return r`
134
+ <button
135
+ class="btn"
136
+ part="btn"
137
+ role="radio"
138
+ aria-checked=${s}
139
+ aria-disabled=${m?"true":"false"}
140
+ tabindex=${s?"0":"-1"}
141
+ data-index=${i}
142
+ ?disabled=${m}
143
+ style=${h({minWidth:`${c}px`})}
144
+ >
145
+ ${l(e.icon,()=>r`
146
+ <sky-icon
147
+ icon=${e.icon}
148
+ part="icon"
149
+ aria-hidden="true"
150
+ ></sky-icon>
151
+ `)}
152
+ ${l(e.label,()=>r`
153
+ <span
154
+ class="label"
155
+ part="label"
156
+ data-hidden=${String(n)}
157
+ data-index=${i}
158
+ style=${h({maxWidth:a?"none":"0"})}
159
+ >
160
+ ${e.label}
161
+ </span>
162
+ `)}
163
+ </button>
164
+ `})}
165
+ </div>
166
+ `}focusButton(){const t=this.renderRoot.querySelector('.btn[aria-checked="true"]');t?.focus()}};t([a({type:Array}),e("design:type",Array)],b.prototype,"states",void 0),t([a({type:String,reflect:!0}),e("design:type",String)],b.prototype,"value",void 0),t([a({type:Boolean,reflect:!0}),e("design:type",Object)],b.prototype,"disabled",void 0),t([a({type:String}),e("design:type",String)],b.prototype,"size",void 0),t([a({type:String}),e("design:type",String)],b.prototype,"radius",void 0),t([a({type:Boolean}),e("design:type",Object)],b.prototype,"showCurrentLabelOnly",void 0),t([a({type:String}),e("design:type",String)],b.prototype,"color",void 0),t([n(),e("design:type",Object)],b.prototype,"_labelWidths",void 0),t([n(),e("design:type",Object)],b.prototype,"_ready",void 0),t([n(),e("design:type",Object)],b.prototype,"_containerWidth",void 0),b=t([o("sky-tab-button")],b);export{b as SkyTabButton};
167
+ //# sourceMappingURL=sky-tab-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sky-tab-button.js","sources":["../../src/sky-tab-button/sky-tab-button.ts"],"sourcesContent":[null],"names":["SIZE_MIN_WIDTHS","xs","sm","md","lg","xl","SkyTabButton","LitElement","constructor","this","states","value","disabled","size","radius","showCurrentLabelOnly","color","_labelWidths","Map","_ready","_containerWidth","_itemsCache","initialRenderComplete","_labelAnimations","_updateScheduled","_visibilityRetryAttempts","onResize","_windowResizeTimeout","window","clearTimeout","setTimeout","undefined","scheduleUpdate","onWrapClick","e","btn","target","closest","i","parseInt","getAttribute","item","items","index","onKeydown","length","next","key","findNextEnabled","findIndex","map","it","idx","reverse","find","x","preventDefault","updateComplete","then","btns","renderRoot","querySelectorAll","focus","dependencies","SkyIcon","ro","io","displayContextObserver","styles","css","connectedCallback","super","applyVars","s","label","ensureValue","canvas","document","createElement","_canvasContext","getContext","ResizeObserver","_resizeTimeout","offsetWidth","IntersectionObserver","entries","forEach","scheduleVisibilityRetry","threshold","requestAnimationFrame","observe","observeDisplayContext","addEventListener","passive","disconnectedCallback","disconnect","clearVisibilityRetry","_thumbAnimation","cancel","anim","clear","removeEventListener","applyEffectiveColor","token","effectiveColor","baseColor","resolveColor","activeTextColor","resolveTextColorForToken","style","setProperty","firstUpdated","_changed","calculateLabelWidths","willUpdate","changed","has","updated","positionThumb","selected","vals","includes","vars","pad","gap","font","itemPad","minW","minH","v","resolveRadius","Math","max","clamped","min","dispatchEvent","CustomEvent","detail","bubbles","composed","newWidths","wrap","querySelector","computedStyle","getComputedStyle","ctx","fontWeight","fontSize","fontFamily","fallbackFontSize","parseFloat","getPropertyValue","width","measureText","set","ceil","MutationObserver","node","parentElement","depth","attributes","attributeFilter","_visibilityRetryTimer","attempt","isConnected","thumb","thumbHidden","opacity","isElementVisible","documentElement","display","visibility","dialog","hasAttribute","active","wr","getBoundingClientRect","ar","height","cs","padL","paddingLeft","padT","paddingTop","localW","clientWidth","localH","clientHeight","scaleX","scaleY","xLocal","left","yLocal","top","thumbWidth","thumbHeight","matchMedia","matches","transform","keyframes","animate","duration","easing","fill","refresh","start","dir","n","step","j","render","html","styleMap","String","repeat","showLabel","labelHidden","labelWidth","get","iconWidth","icon","sizeMinW","approxButtonWidth","isDisabled","minWidth","when","maxWidth","focusButton","__decorate","property","type","Array","prototype","reflect","Boolean","state","customElement"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from "./sky-theme-provider";
@@ -0,0 +1 @@
1
+ export * from './sky-theme-provider.js';
@@ -0,0 +1,169 @@
1
+ import { LitElement } from "lit";
2
+ export interface ThemeConfig {
3
+ light: ThemeModeConfig;
4
+ dark: ThemeModeConfig;
5
+ }
6
+ export type ThemePreference = "light" | "dark" | "system";
7
+ export type PartialTheme = Partial<ThemeConfig>;
8
+ /** Extended ThemeModeConfig: added typography & spacing tokens */
9
+ export interface ThemeModeConfig {
10
+ glass: {
11
+ baseColor: string;
12
+ /** Optional per-level base shades; if omitted, secondary/tertiary are derived by mixing baseColor with theme background */
13
+ baseShades?: {
14
+ secondary?: string;
15
+ tertiary?: string;
16
+ };
17
+ opacities: Record<"primary" | "secondary" | "tertiary" | "solid", number>;
18
+ };
19
+ glassHover: {
20
+ color: string;
21
+ opacity: Record<"primary" | "secondary" | "tertiary" | "solid", number>;
22
+ };
23
+ overlay: {
24
+ color: string;
25
+ opacities: Record<"primary" | "secondary" | "tertiary" | "solid", number>;
26
+ };
27
+ fontFamily: string;
28
+ /** Monospace font stack; used for --sky-font-mono and bounded mono presets */
29
+ fontFamilyMono?: string;
30
+ fontSize?: Record<"xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl", string>;
31
+ fontWeight?: Record<"thin" | "light" | "normal" | "medium" | "semibold" | "bold" | "extrabold", string>;
32
+ lineHeight?: Record<"tight" | "snug" | "normal" | "relaxed" | "loose", string>;
33
+ letterSpacing?: Record<"tighter" | "tight" | "normal" | "wide" | "wider", string>;
34
+ glassSurface?: {
35
+ top: number;
36
+ bottom: number;
37
+ };
38
+ spacing?: Record<"0" | "px" | "0.5" | "1" | "1.5" | "2" | "2.5" | "3" | "3.5" | "4" | "5" | "6" | "8" | "10" | "12" | "16" | "20" | "24" | "32" | "40" | "48" | "56" | "64", string>;
39
+ color: {
40
+ background: string;
41
+ foreground: string;
42
+ active: string;
43
+ success: string;
44
+ warning: string;
45
+ danger: string;
46
+ info: string;
47
+ };
48
+ blur: Record<"primary" | "secondary" | "tertiary", string>;
49
+ radius: Record<"primary" | "secondary" | "tertiary" | "full", string>;
50
+ boxshadow: Record<"primary" | "secondary" | "tertiary" | "inset" | "hover", string>;
51
+ brightness: Record<"primary" | "secondary" | "tertiary", string>;
52
+ saturation: Record<"primary" | "secondary" | "tertiary", string>;
53
+ border: Record<"primary" | "secondary" | "tertiary", string>;
54
+ separator: string;
55
+ /** Motion: duration and easing for consistent, themeable transitions */
56
+ motion?: {
57
+ duration?: Record<"instant" | "fast" | "normal" | "slow", string>;
58
+ ease?: Record<"default" | "in" | "out" | "inOut" | "bounce", string>;
59
+ };
60
+ /** Z-index scale for predictable stacking (dropdown, modal, toast, etc.) */
61
+ zIndex?: Record<"base" | "dropdown" | "sticky" | "fixed" | "modal" | "popover" | "toast" | "max", number>;
62
+ /** Opacity tokens for disabled/muted states */
63
+ opacity?: Record<"disabled" | "muted" | "subtle", number>;
64
+ }
65
+ export declare const defaultTheme: ThemeConfig;
66
+ export declare function getThemePreference(): ThemePreference;
67
+ export declare function resolveActualTheme(pref: ThemePreference): "light" | "dark";
68
+ /** Returns "light" | "dark" (prefers provider, falls back to system). SSR-safe: returns "light" when document is undefined. */
69
+ export declare function getCurrentTheme(): "light" | "dark";
70
+ /** Subscribe to theme changes. Returns an unsubscribe function. SSR-safe: returns no-op when window is undefined. */
71
+ export declare function onThemeChange(cb: (mode: "light" | "dark", preference?: ThemePreference) => void): () => void;
72
+ export declare function mergeTheme(userTheme: Partial<ThemeConfig>): ThemeConfig;
73
+ export interface ThemeContextValue {
74
+ mode: "light" | "dark";
75
+ preference: ThemePreference;
76
+ theme: ThemeConfig;
77
+ setPreference: (pref: ThemePreference) => void;
78
+ togglePreference: () => ThemePreference;
79
+ }
80
+ export declare const themeContext: {
81
+ __context__: ThemeContextValue;
82
+ };
83
+ type ThemeScope = "root" | "host" | "both";
84
+ export type SkyThemeProviderScope = ThemeScope;
85
+ export type SkyThemeProviderGlobalChangeDetail = {
86
+ mode: "light" | "dark";
87
+ preference: ThemePreference;
88
+ };
89
+ /**
90
+ * @element sky-theme-provider
91
+ *
92
+ * @summary Theme provider for light, dark, and system preferences with CSS variable generation.
93
+ *
94
+ * @status stable
95
+ * @since 1.0.0
96
+ *
97
+ * @documentation https://library.sky-ui.com/components/theme-provider
98
+ *
99
+ * @slot - Default slot for content that will receive theme context.
100
+ *
101
+ * @csspart container - The theme provider container element.
102
+ *
103
+ * @property {Partial<ThemeConfig>} userTheme - Custom theme overrides.
104
+ * @property {SkyThemeProviderScope} scope - Where CSS variables are applied.
105
+ * @property {"light"|"dark"|"system"} preference - Theme preference.
106
+ * @property {boolean} persist - Persists preference in localStorage.
107
+ * @property {boolean} broadcast - Broadcasts theme changes through events.
108
+ *
109
+ * @fires {CustomEvent<SkyThemeProviderGlobalChangeDetail>} theme-change-global - Fired when theme changes globally.
110
+ * @fires {CustomEvent<SkyThemeProviderGlobalChangeDetail>} sky-theme - Fired on global theme updates.
111
+ *
112
+ * @Behavior
113
+ * - Resolves light/dark mode from explicit or system preference.
114
+ * - Emits CSS custom properties for color, typography, spacing, and motion tokens.
115
+ * - Provides theme context for descendant components.
116
+ *
117
+ * @example
118
+ * ```html
119
+ * <sky-theme-provider preference="system" scope="both">
120
+ * <app-content></app-content>
121
+ * </sky-theme-provider>
122
+ * ```
123
+ * ```vue
124
+ * <template>
125
+ * <sky-theme-provider :user-theme="theme" preference="dark" scope="both">
126
+ * <app-content />
127
+ * </sky-theme-provider>
128
+ * </template>
129
+ * ```
130
+ * ```jsx
131
+ * export default function Demo() {
132
+ * return <sky-theme-provider userTheme={theme} preference="dark" scope="both"><app-content /></sky-theme-provider>;
133
+ * }
134
+ * ```
135
+ */
136
+ export declare class SkyThemeProvider extends LitElement {
137
+ /** User theme overrides. From HTML pass JSON, e.g. usertheme='{"primary":"#0af"}'. */
138
+ userTheme?: PartialTheme;
139
+ /** Where to apply CSS vars and global CSS. Default: "root". */
140
+ scope: ThemeScope;
141
+ preference: ThemePreference;
142
+ private mode;
143
+ private _ctx;
144
+ persist: boolean;
145
+ broadcast: boolean;
146
+ private media;
147
+ private globalStyleId;
148
+ private hostSheet;
149
+ private hostStyleEl;
150
+ private rootVarsStyleId;
151
+ static styles: import("lit").CSSResult;
152
+ connectedCallback(): void;
153
+ disconnectedCallback(): void;
154
+ protected firstUpdated(): void;
155
+ updated(changedProperties: Map<string | number | symbol, unknown>): void;
156
+ protected willUpdate(changed: Map<string, unknown>): void;
157
+ private setRootThemeAttrs;
158
+ private broadcastTheme;
159
+ setPreference(pref: ThemePreference): void;
160
+ togglePreference(): ThemePreference;
161
+ private onSystemChange;
162
+ private setupSystemWatcher;
163
+ /** Ensure global body + dialog rules exist when scope touches root. */
164
+ private ensureGlobalStyle;
165
+ private applyVariables;
166
+ private pushContext;
167
+ render(): import("lit-html").TemplateResult<1>;
168
+ }
169
+ export {};
@@ -0,0 +1,12 @@
1
+ import{__decorate as e,__metadata as t}from"tslib";import{LitElement as r,css as o,html as s}from"lit";import{property as i,state as a,customElement as n}from"lit/decorators.js";import{createContext as l,provide as c}from"@lit/context";const y={light:{glass:{baseColor:"#F5F7FA",opacities:{primary:.48,secondary:.48,tertiary:.48,solid:1}},overlay:{color:"#F5F7FA",opacities:{primary:.75,secondary:.33,tertiary:.19,solid:1}},glassHover:{color:"#000000",opacity:{primary:.06,secondary:.09,tertiary:.12,solid:1}},fontFamily:"'SF Pro Text', 'Poppins', Arial, sans-serif",fontFamilyMono:"ui-monospace, 'SF Mono', 'Cascadia Code', Consolas, monospace",fontSize:{xs:"0.75rem",sm:"0.875rem",md:"1rem",lg:"1.125rem",xl:"1.25rem","2xl":"1.5rem","3xl":"1.875rem","4xl":"2.25rem","5xl":"3rem","6xl":"3.75rem"},fontWeight:{thin:"100",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800"},lineHeight:{tight:"1.1",snug:"1.25",normal:"1.5",relaxed:"1.75",loose:"2"},letterSpacing:{tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em"},spacing:{0:"0px",px:"1px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",8:"2rem",10:"2.5rem",12:"3rem",16:"4rem",20:"5rem",24:"6rem",32:"8rem",40:"10rem",48:"12rem",56:"14rem",64:"16rem"},color:{background:"#FAFAFA",foreground:"#1A1A1A",active:"#0485f7",success:"#17C964",warning:"#F5A524",danger:"#Ff383c",info:"#9353D3"},blur:{primary:"8px",secondary:"16px",tertiary:"24px"},radius:{primary:"8px",secondary:"12px",tertiary:"16px",full:"9999px"},boxshadow:{primary:"0 1.5px 6px rgba(0,0,0,0.09)",secondary:"0 3px 12px rgba(0,0,0,0.13)",tertiary:"0 8px 16px rgba(0,0,0,0.11)",inset:"inset 0 2px 9px rgba(0,0,0,0.10)",hover:"0 4px 12px rgba(0,0,0,0.15)"},brightness:{primary:"1.0",secondary:"1.0",tertiary:"1.0"},saturation:{primary:"1.0",secondary:"1.0",tertiary:"1.0"},separator:"rgba(0,0,0,0.15)",border:{primary:"1px solid rgba(0,0,0,0.15)",secondary:"none",tertiary:"none"},glassSurface:{top:.16,bottom:.04},motion:{duration:{instant:"0ms",fast:"120ms",normal:"200ms",slow:"300ms"},ease:{default:"cubic-bezier(0.4, 0, 0.2, 1)",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)",inOut:"cubic-bezier(0.4, 0, 0.2, 1)",bounce:"cubic-bezier(0.34, 1.56, 0.64, 1)"}},zIndex:{base:0,dropdown:1e3,sticky:1100,fixed:1200,modal:1300,popover:1400,toast:1500,max:9999},opacity:{disabled:.5,muted:.7,subtle:.85}},dark:{glass:{baseColor:"#181A1B",opacities:{primary:.52,secondary:.52,tertiary:.52,solid:1}},overlay:{color:"#181A1B",opacities:{primary:.75,secondary:.33,tertiary:.19,solid:1}},glassHover:{color:"#FFFFFF",opacity:{primary:.08,secondary:.12,tertiary:.16,solid:1}},fontFamily:"'SF Pro Text', 'Poppins', Arial, sans-serif",fontFamilyMono:"ui-monospace, 'SF Mono', 'Cascadia Code', Consolas, monospace",fontSize:{xs:"0.75rem",sm:"0.875rem",md:"1rem",lg:"1.125rem",xl:"1.25rem","2xl":"1.5rem","3xl":"1.875rem","4xl":"2.25rem","5xl":"3rem","6xl":"3.75rem"},fontWeight:{thin:"100",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800"},lineHeight:{tight:"1.1",snug:"1.25",normal:"1.5",relaxed:"1.75",loose:"2"},letterSpacing:{tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em"},spacing:{0:"0px",px:"1px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",8:"2rem",10:"2.5rem",12:"3rem",16:"4rem",20:"5rem",24:"6rem",32:"8rem",40:"10rem",48:"12rem",56:"14rem",64:"16rem"},color:{background:"#181A1B",foreground:"#E5E5E5",active:"#0485f7",success:"#17C964",warning:"#f7b750",danger:"#db3b3e",info:"#9353D3"},blur:{primary:"8px",secondary:"16px",tertiary:"24px"},radius:{primary:"8px",secondary:"12px",tertiary:"16px",full:"9999px"},boxshadow:{primary:"0 1.5px 6px rgba(0,0,0,0.23)",secondary:"0 3px 12px rgba(0,0,0,0.21)",tertiary:"0 8px 16px rgba(0,0,0,0.18)",inset:"inset 0 2px 9px rgba(0,0,0,0.24)",hover:"0 4px 12px rgba(0,0,0,0.27)"},brightness:{primary:"1.0",secondary:"1.0",tertiary:"1.0"},saturation:{primary:"1.0",secondary:"1.0",tertiary:"1.0"},separator:"rgba(255,255,255,0.12)",border:{primary:"1px solid rgba(255,255,255,0.12)",secondary:"none",tertiary:"none"},glassSurface:{top:.18,bottom:.06},motion:{duration:{instant:"0ms",fast:"120ms",normal:"200ms",slow:"300ms"},ease:{default:"cubic-bezier(0.4, 0, 0.2, 1)",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)",inOut:"cubic-bezier(0.4, 0, 0.2, 1)",bounce:"cubic-bezier(0.34, 1.56, 0.64, 1)"}},zIndex:{base:0,dropdown:1e3,sticky:1100,fixed:1200,modal:1300,popover:1400,toast:1500,max:9999},opacity:{disabled:.5,muted:.7,subtle:.85}}};function h(){try{if("undefined"!=typeof localStorage){const e=localStorage.getItem("theme");return"light"===e||"dark"===e||"system"===e?e:"system"}}catch{}return"system"}function m(e){if("undefined"==typeof window)return"light";if("system"===e){try{if(window.matchMedia)return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}catch{}return"light"}return e}function d(){if("undefined"==typeof document)return"light";const e=document.documentElement.getAttribute("data-theme");return"light"===e||"dark"===e?e:"undefined"!=typeof matchMedia&&matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function p(e){if("undefined"==typeof window)return()=>{};const t=t=>{const{mode:r,preference:o}=t.detail||{};"light"===r||"dark"===r?e(r,o):e(d(),void 0)};return window.addEventListener("sky-theme",t),queueMicrotask(()=>e(d(),void 0)),()=>window.removeEventListener("sky-theme",t)}function k(e,t){const r=Array.isArray(e)?[...e]:{...e};for(const o in t){const s=t[o];s&&"object"==typeof s&&!Array.isArray(s)?r[o]=k(e[o],s):r[o]=s??e[o]}return r}function g(e){return{light:k(y.light,e.light??{}),dark:k(y.dark,e.dark??{})}}function u(e){return/^oklch\(\s*[\d.]+\s+[\d.]+\s+[\d.]+(?:deg)?(?:\s*\/\s*[\d.]+%?)?\s*\)$/i.test(e.trim())}function x(e){return u(e),e}function b(e,t){return u(e)?e.includes("/")?e:e.replace(/\)$/,` / ${Math.round(100*t)}%)`):`color-mix(in oklch, ${e} ${Math.round(100*t)}%, transparent)`}function f(e,t){return`${t}{${Object.entries(e).map(([e,t])=>`${e}:${t};`).join("")}}`}const v=l("sky/theme");let $=class extends r{constructor(){super(...arguments),this.scope="root",this.preference=h(),this.mode="light",this.persist=!0,this.broadcast=!0,this.media=null,this.globalStyleId="sky-theme-provider-global-style",this.hostSheet=null,this.hostStyleEl=null,this.rootVarsStyleId="sky-theme-vars-root",this.onSystemChange=()=>{"system"===(this.preference??h())&&(this.mode=m("system"),this.applyVariables(),this.pushContext(),this.dispatchEvent(new CustomEvent("theme-change-global",{bubbles:!0,composed:!0})))}}static{this.styles=o`
2
+ :host {
3
+ display: contents;
4
+ }
5
+
6
+ :host {
7
+ font-family: var(--sky-font);
8
+ color: var(--sky-text-primary);
9
+ background: var(--sky-background-color);
10
+ }
11
+ `}connectedCallback(){super.connectedCallback(),this.mode=m(this.preference),this.pushContext(),this.setupSystemWatcher(),"host"===this.scope&&this.applyVariables()}disconnectedCallback(){if(super.disconnectedCallback(),this.media?.removeEventListener("change",this.onSystemChange),this.hostStyleEl&&this.hostStyleEl.parentNode&&(this.hostStyleEl.parentNode.removeChild(this.hostStyleEl),this.hostStyleEl=null),"host"===this.scope){const e=document.getElementById(this.globalStyleId);e&&e.remove()}}firstUpdated(){"root"!==this.scope&&"both"!==this.scope||this.applyVariables()}updated(e){super.updated(e),(e.has("userTheme")||e.has("mode")||e.has("preference")||e.has("scope"))&&this.pushContext()}willUpdate(e){const t=e.has("preference"),r=e.has("scope"),o=e.has("userTheme");let s=!1;if(t||r){const e=m(this.preference);e!==this.mode&&(this.mode=e,s=!0)}const i=!!this.hasUpdated;if(("host"===this.scope||i)&&(s||r||o)&&this.applyVariables(),t||s||o||r){this.pushContext();const e="host"===this.scope&&i&&(o||t||s||r);this.broadcast&&("root"===this.scope||"both"===this.scope||e)&&this.broadcastTheme()}}setRootThemeAttrs(){const e=document.documentElement;e.toggleAttribute("data-theme-light","light"===this.mode),e.toggleAttribute("data-theme-dark","dark"===this.mode),e.setAttribute("data-theme",this.mode),e.style.colorScheme=this.mode,e.classList.toggle("dark","dark"===this.mode)}broadcastTheme(){const e={mode:this.mode,preference:this.preference};window.dispatchEvent(new CustomEvent("sky-theme",{detail:e})),window.dispatchEvent(new CustomEvent("theme-change-global",{detail:e}))}setPreference(e){try{!this.persist||"root"!==this.scope&&"both"!==this.scope||localStorage.setItem("theme",e)}catch{}this.preference=e,!this.broadcast||"root"!==this.scope&&"both"!==this.scope||this.dispatchEvent(new CustomEvent("theme-change-global",{bubbles:!0,composed:!0}))}togglePreference(){const e=this.preference??h(),t="light"===e?"dark":"dark"===e?"system":"light";return this.setPreference(t),t}setupSystemWatcher(){"undefined"!=typeof window&&window.matchMedia&&(this.media=window.matchMedia("(prefers-color-scheme: dark)"),this.media.addEventListener("change",this.onSystemChange))}ensureGlobalStyle(){if("undefined"==typeof document)return;const e='\n body {\n font-family: var(--sky-font);\n margin: 0;\n padding: 0;\n background: var(--sky-background-color);\n color: var(--sky-text-primary);\n }\n\n html[data-sky-dialog-open="true"] {\n overflow: hidden !important;\n position: relative;\n height: 100%;\n }\n\n '.trim();let t=document.getElementById(this.globalStyleId);t?t.textContent=e:(t=document.createElement("style"),t.id=this.globalStyleId,t.textContent=e,document.head.appendChild(t))}applyVariables(){const e=function(e,t){const r={},o=(e,t)=>{null!=t&&(r[`--${e}`]=t)};o("sky-text-dark",x(t?"#FFFFFF":"#000000")),o("sky-text-light",x(t?"#000000":"#FFFFFF"));const s=e.fontFamily,i=e.fontFamilyMono??"ui-monospace, monospace";o("sky-font",s),o("sky-font-sans",s),o("sky-font-mono",i),o("sky-background-color",x(e.color.background)),o("sky-text-primary",x(e.color.foreground)),t?(o("sky-text-secondary","color-mix(in oklch, var(--sky-text-primary) 85%, var(--sky-text-light))"),o("sky-text-tertiary","color-mix(in oklch, var(--sky-text-primary) 70%, var(--sky-text-light))"),o("sky-text-quaternary","color-mix(in oklch, var(--sky-text-primary) 55%, var(--sky-text-light))"),o("sky-text-quinary","color-mix(in oklch, var(--sky-text-primary) 40%, var(--sky-text-light))"),["primary","secondary","tertiary","quaternary","quinary"].forEach(e=>o(`sky-text-${e}-hover`,`color-mix(in oklch, var(--sky-text-${e}) 85%, var(--sky-text-light))`))):(o("sky-text-secondary","color-mix(in oklch, var(--sky-text-primary) 80%, var(--sky-text-light))"),o("sky-text-tertiary","color-mix(in oklch, var(--sky-text-primary) 60%, var(--sky-text-light))"),o("sky-text-quaternary","color-mix(in oklch, var(--sky-text-primary) 40%, var(--sky-text-light))"),o("sky-text-quinary","color-mix(in oklch, var(--sky-text-primary) 20%, var(--sky-text-light))"),["primary","secondary","tertiary","quaternary","quinary"].forEach(e=>o(`sky-text-${e}-hover`,`color-mix(in oklch, var(--sky-text-${e}) 80%, var(--sky-text-dark))`))),o("sky-glass-surface",`linear-gradient(\n 180deg,\n ${b(e.glass.baseColor,e.glassSurface?.top??.16)},\n ${b(e.glass.baseColor,e.glassSurface?.bottom??.04)}\n )`);const{baseColor:a,baseShades:n,opacities:l}=e.glass,c=t?"#FFFFFF":"#000000";o("sky-glass-primary",b(a,l.primary)),o("sky-glass-secondary",null!=n?.secondary?b(n.secondary,l.secondary):`color-mix(in oklch, color-mix(in oklch, ${a} 88%, ${c}) ${Math.round(100*l.secondary)}%, transparent)`),o("sky-glass-tertiary",null!=n?.tertiary?b(n.tertiary,l.tertiary):`color-mix(in oklch, color-mix(in oklch, ${a} 72%, ${c}) ${Math.round(100*l.tertiary)}%, transparent)`),o("sky-glass-solid",b(a,l.solid)),Object.entries(e.overlay.opacities).forEach(([t,r])=>o(`sky-overlay-${t}`,b(e.overlay.color,r))),Object.entries(e.glassHover.opacity).forEach(([t,r])=>o(`sky-hover-${t}`,b(e.glassHover.color,r))),Object.entries(e.border).forEach(([e,t])=>o(`sky-border-${e}`,t)),Object.entries(e.radius).forEach(([e,t])=>o(`sky-radius-${e}`,t)),Object.entries(e.blur).forEach(([e,t])=>o(`sky-blur-${e}`,`blur(${t})`)),Object.entries(e.brightness).forEach(([e,t])=>o(`sky-brightness-${e}`,`brightness(${t})`)),Object.entries(e.saturation).forEach(([e,t])=>o(`sky-saturation-${e}`,`saturate(${t})`)),Object.entries(e.boxshadow).forEach(([e,t])=>o(`sky-box-shadow-${e}`,t)),o("sky-border-light",b(e.separator,1)),Object.entries(e.motion?.duration??{}).forEach(([e,t])=>o(`sky-duration-${e}`,t)),Object.entries(e.motion?.ease??{}).forEach(([e,t])=>o(`sky-ease-${e}`,t)),o("sky-transition-default","all var(--sky-duration-normal, 200ms) var(--sky-ease-default, cubic-bezier(0.4, 0, 0.2, 1))"),o("sky-transition-fast","all var(--sky-duration-fast, 120ms) var(--sky-ease-default, cubic-bezier(0.4, 0, 0.2, 1))"),Object.entries(e.zIndex??{}).forEach(([e,t])=>o(`sky-z-${e}`,String(t))),Object.entries(e.opacity??{}).forEach(([e,t])=>o(`sky-opacity-${e}`,String(t))),o("sky-text-shadow-on-glass",t?"0 1px 2px rgba(0,0,0,0.35)":"0 1px 2px rgba(255,255,255,0.6)");const y=["active","success","warning","danger","info"];y.forEach(t=>{const r=e.color[t];o(`sky-${t}-primary`,r),o(`sky-${t}-secondary`,`color-mix(in oklch, var(--sky-${t}-primary) 85%, var(--sky-text-light))`),o(`sky-${t}-tertiary`,`color-mix(in oklch, var(--sky-${t}-primary) 70%, var(--sky-text-light))`),o(`sky-${t}-quaternary`,`color-mix(in oklch, var(--sky-${t}-primary) 55%, var(--sky-text-light))`),o(`sky-${t}-quinary`,`color-mix(in oklch, var(--sky-${t}-primary) 40%, var(--sky-text-light))`),o(`sky-${t}-primary-dark`,`color-mix(in oklch, var(--sky-${t}-primary) 90%, var(--sky-text-dark))`),o(`sky-${t}-secondary-dark`,`color-mix(in oklch, var(--sky-${t}-primary) 75%, var(--sky-text-dark))`),o(`sky-${t}-tertiary-dark`,`color-mix(in oklch, var(--sky-${t}-primary) 60%, var(--sky-text-dark))`),o(`sky-${t}-quaternary-dark`,`color-mix(in oklch, var(--sky-${t}-primary) 45%, var(--sky-text-dark))`),o(`sky-${t}-quinary-dark`,`color-mix(in oklch, var(--sky-${t}-primary) 30%, var(--sky-text-dark))`),o(`sky-${t}-g0`,`color-mix(in oklch, var(--sky-${t}-primary) 10%, transparent)`),o(`sky-${t}-g1`,`color-mix(in oklch, var(--sky-${t}-primary) 30%, transparent)`),o(`sky-${t}-g2`,`color-mix(in oklch, var(--sky-${t}-primary) 60%, transparent)`)}),y.forEach(e=>{o(`sky-${e}-primary-hover`,`color-mix(in oklch, var(--sky-${e}-primary) 85%, var(--sky-text-dark))`),o(`sky-${e}-secondary-hover`,`color-mix(in oklch, var(--sky-${e}-secondary) 85%, var(--sky-text-dark))`),o(`sky-${e}-tertiary-hover`,`color-mix(in oklch, var(--sky-${e}-tertiary) 85%, var(--sky-text-dark))`),o(`sky-${e}-quaternary-hover`,`color-mix(in oklch, var(--sky-${e}-quaternary) 85%, var(--sky-text-dark))`),o(`sky-${e}-quinary-hover`,`color-mix(in oklch, var(--sky-${e}-quinary) 85%, var(--sky-text-dark))`)}),y.forEach(e=>{o(`sky-ring-${e}-1`,`0 0 0 1px var(--sky-${e}-primary)`),o(`sky-ring-${e}-2`,`0 0 0 2px var(--sky-${e}-primary)`),o(`sky-ring-${e}-3`,`0 0 0 3px var(--sky-${e}-primary)`),o(`sky-ring-${e}-4`,`0 0 0 4px var(--sky-${e}-primary)`),o(`sky-ring-${e}-5`,`0 0 0 4px var(--sky-${e}-primary)`),o(`sky-ring-${e}-inset-1`,`inset 0 0 0 1px var(--sky-${e}-primary)`),o(`sky-ring-${e}-inset-2`,`inset 0 0 0 2px var(--sky-${e}-primary)`),o(`sky-ring-${e}-inset-3`,`inset 0 0 0 3px var(--sky-${e}-primary)`)}),o("sky-focus-ring","0 0 0 2px var(--sky-active-primary)"),o("sky-focus-ring-offset","2px"),o("sky-text-white","oklch(1 0 0)"),o("sky-text-black","oklch(0 0 0)"),Object.entries(e.fontSize??{}).forEach(([e,t])=>o(`sky-font-size-${e}`,t)),Object.entries(e.fontWeight??{}).forEach(([e,t])=>o(`sky-font-weight-${e}`,t)),Object.entries(e.lineHeight??{}).forEach(([e,t])=>o(`sky-line-height-${e}`,t)),Object.entries(e.letterSpacing??{}).forEach(([e,t])=>o(`sky-letter-spacing-${e}`,t));const h=[{key:"xs",size:"xs",line:"tight"},{key:"sm",size:"sm",line:"snug"},{key:"md",size:"md",line:"normal"},{key:"lg",size:"lg",line:"snug"},{key:"xl",size:"xl",line:"snug"},{key:"2xl",size:"2xl",line:"tight"},{key:"3xl",size:"3xl",line:"tight"},{key:"4xl",size:"4xl",line:"tight"}],m=e.fontSize??{},d=e.lineHeight??{};for(const{key:e,size:t,line:r}of h){const s=m[t]??"1rem",i=d[r]??"1.5";o(`sky-font-${e}`,`${s} / ${i} var(--sky-font-sans)`),o(`sky-font-mono-${e}`,`${s} / ${i} var(--sky-font-mono)`)}Object.entries(e.spacing??{}).forEach(([e,t])=>o(`sky-space-${e}`,t));const p={body:{size:"md",weight:"normal",line:"normal"},label:{size:"sm",weight:"medium",line:"snug"},caption:{size:"xs",weight:"normal",line:"tight"},title:{size:"lg",weight:"semibold",line:"snug"},heading:{size:"2xl",weight:"bold",line:"tight"},display:{size:"4xl",weight:"bold",line:"tight"}};for(const[t,r]of Object.entries(p)){const s=(e.fontSize??{})[r.size]??"1rem",i=(e.fontWeight??{})[r.weight]??"400",a=(e.lineHeight??{})[r.line]??"1.5";o(`sky-text-${t}`,`${i} ${s}/${a} ${e.fontFamily}`)}return r}(g(this.userTheme||{})[this.mode],"dark"===this.mode);if(this.toggleAttribute("data-theme-light","light"===this.mode),this.toggleAttribute("data-theme-dark","dark"===this.mode),"host"===this.scope||"both"===this.scope){const t=f(e,":host");if("adoptedStyleSheets"in Document.prototype&&"replaceSync"in CSSStyleSheet.prototype){if(!this.hostSheet){this.hostSheet=new CSSStyleSheet;const e=this.renderRoot.adoptedStyleSheets??[];this.renderRoot.adoptedStyleSheets=[...e,this.hostSheet]}this.hostSheet.replaceSync(t)}else this.hostStyleEl||(this.hostStyleEl=document.createElement("style"),this.renderRoot.appendChild(this.hostStyleEl)),this.hostStyleEl.textContent=t;this.style.removeProperty("color"),this.style.removeProperty("background")}if("root"===this.scope||"both"===this.scope){const t=f(e,":root");!function(e,t){let r=document.getElementById(e);r||(r=document.createElement("style"),r.id=e,document.head.appendChild(r)),r.textContent=t}(this.rootVarsStyleId,t),this.setRootThemeAttrs(),this.ensureGlobalStyle(),document.body&&(document.body.style.removeProperty("color"),document.body.style.removeProperty("background"),document.body.style.removeProperty("font-family")),this.broadcastTheme()}}pushContext(){const e=g(this.userTheme??{});this._ctx={mode:this.mode,preference:this.preference,theme:e,setPreference:e=>this.setPreference(e),togglePreference:()=>this.togglePreference()}}render(){return s`<slot></slot>`}};e([i({type:Object}),t("design:type",Object)],$.prototype,"userTheme",void 0),e([i({type:String,reflect:!0}),t("design:type",String)],$.prototype,"scope",void 0),e([i({type:String,reflect:!0}),t("design:type",String)],$.prototype,"preference",void 0),e([a(),t("design:type",String)],$.prototype,"mode",void 0),e([c({context:v}),t("design:type",Object)],$.prototype,"_ctx",void 0),e([i({type:Boolean}),t("design:type",Boolean)],$.prototype,"persist",void 0),e([i({type:Boolean}),t("design:type",Boolean)],$.prototype,"broadcast",void 0),$=e([n("sky-theme-provider")],$);export{$ as SkyThemeProvider,y as defaultTheme,d as getCurrentTheme,h as getThemePreference,g as mergeTheme,p as onThemeChange,m as resolveActualTheme,v as themeContext};
12
+ //# sourceMappingURL=sky-theme-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sky-theme-provider.js","sources":["../../src/sky-theme-provider/sky-theme-provider.ts"],"sourcesContent":[null],"names":["defaultTheme","light","glass","baseColor","opacities","primary","secondary","tertiary","solid","overlay","color","glassHover","opacity","fontFamily","fontFamilyMono","fontSize","xs","sm","md","lg","xl","fontWeight","thin","normal","medium","semibold","bold","extrabold","lineHeight","tight","snug","relaxed","loose","letterSpacing","tighter","wide","wider","spacing","px","background","foreground","active","success","warning","danger","info","blur","radius","full","boxshadow","inset","hover","brightness","saturation","separator","border","glassSurface","top","bottom","motion","duration","instant","fast","slow","ease","default","in","out","inOut","bounce","zIndex","base","dropdown","sticky","fixed","modal","popover","toast","max","disabled","muted","subtle","dark","getThemePreference","localStorage","v","getItem","resolveActualTheme","pref","window","matchMedia","matches","getCurrentTheme","document","documentElement","getAttribute","onThemeChange","cb","handler","e","mode","preference","detail","undefined","addEventListener","queueMicrotask","removeEventListener","deepMerge","target","source","t","Array","isArray","k","sv","mergeTheme","userTheme","isOKLCH","value","test","trim","toOKLCH","hexOrOKLCH","toOKLCHAlpha","alpha","includes","replace","Math","round","buildVarCSS","vars","selector","Object","entries","map","join","themeContext","createContext","SkyThemeProvider","LitElement","constructor","this","scope","persist","broadcast","media","globalStyleId","hostSheet","hostStyleEl","rootVarsStyleId","onSystemChange","applyVariables","pushContext","dispatchEvent","CustomEvent","bubbles","composed","styles","css","connectedCallback","super","setupSystemWatcher","disconnectedCallback","parentNode","removeChild","s","getElementById","remove","firstUpdated","updated","changedProperties","has","willUpdate","changed","prefChanged","scopeChanged","userThemeChanged","modeChanged","nextMode","hydrated","hasUpdated","hostThemeChanged","broadcastTheme","setRootThemeAttrs","de","toggleAttribute","setAttribute","style","colorScheme","classList","toggle","setPreference","setItem","togglePreference","current","next","ensureGlobalStyle","cssText","tag","textContent","createElement","id","head","appendChild","theme","isDark","set","fontSans","fontMono","forEach","baseShades","op","shadeMix","String","semanticColors","key","fontPresets","size","line","sizes","lines","sizeVal","lineVal","roleMap","body","weight","label","caption","title","heading","display","role","cfg","weightVal","generateVarMap","Document","prototype","CSSStyleSheet","renderRoot","adoptedStyleSheets","replaceSync","removeProperty","ensureStyleTag","mergedTheme","_ctx","render","html","__decorate","property","type","reflect","state","provide","context","Boolean","customElement"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from "./sky-theme-switcher";
@@ -0,0 +1 @@
1
+ export * from './sky-theme-switcher.js';
@@ -0,0 +1,92 @@
1
+ import { LitElement } from "lit";
2
+ import { ThemePreference } from "../sky-theme-provider/sky-theme-provider";
3
+ type radiusSize = "none" | "sm" | "md" | "lg" | "full";
4
+ type Size = "xs" | "sm" | "md" | "lg" | "xl";
5
+ export type SkyThemeSwitcherChangeDetail = {
6
+ preference: ThemePreference;
7
+ mode: "light" | "dark";
8
+ };
9
+ /**
10
+ * `<sky-theme-switcher>` — A theme switching component that integrates with `<sky-theme-provider>`.
11
+ * Supports both button and switch styles for toggling between light, dark, and system themes.
12
+ *
13
+ * @element sky-theme-switcher
14
+ * @status stable
15
+ * @since 1.0.0
16
+ *
17
+ * @summary Theme switcher for light, dark, and system preferences.
18
+ *
19
+ * @documentation https://library.sky-ui.com/components/theme-switcher
20
+ * @dependency sky-tab-button
21
+ * @dependency sky-button
22
+ * @dependency sky-icon
23
+ *
24
+ * @slot - Default slot for additional content (not typically used).
25
+ * @slot icon - Optional slot to override the theme icon.
26
+ *
27
+ * @csspart container - The wrapper container for the theme switcher.
28
+ * @csspart button - The button element when type="button".
29
+ * @csspart switch - The tab button element when type="switch".
30
+ * @csspart icon - The icon element displaying current theme.
31
+ *
32
+ * @property {string} darkIcon - Iconify icon name for dark theme. Default: "ion:moon-outline"
33
+ * @property {string} lightIcon - Iconify icon name for light theme. Default: "ion:sunny-outline"
34
+ * @property {string} systemIcon - Iconify icon name for system/auto theme. Default: "ion:desktop"
35
+ * @property {"switch"|"button"} type - Display type: "switch" shows all three options as tabs, "button" cycles through options on click. Default: "button"
36
+ * @property {"none"|"sm"|"md"|"lg"|"full"} radius - Border radius for the component. Default: "md"
37
+ * @property {string} color - Button color when type="button". Default: "dark"
38
+ * @property {boolean} disabled - Whether the theme switcher is disabled. Default: false
39
+ * @property {"xs"|"sm"|"md"|"lg"|"xl"} size - Size of the component. Default: "md"
40
+ * @property {string} variant - Button variant when type="button". Default: "transparent"
41
+ *
42
+ * @fires {CustomEvent<SkyThemeSwitcherChangeDetail>} theme-change - Fired when theme preference changes.
43
+ * @method toggleTheme Cycles to the next theme preference.
44
+ *
45
+ * @Behavior
46
+ * - Consumes `sky-theme-provider` context for preference and mode.
47
+ * - Supports button (cycle) and segmented switch interaction styles.
48
+ * - Emits `theme-change` for host synchronization.
49
+ *
50
+ * @example
51
+ * ```html
52
+ * <sky-theme-switcher type="switch" size="md"></sky-theme-switcher>
53
+ * ```
54
+ * ```vue
55
+ * <template>
56
+ * <sky-theme-switcher type="switch" size="md" radius="full"></sky-theme-switcher>
57
+ * </template>
58
+ * ```
59
+ * ```jsx
60
+ * export default function Demo() {
61
+ * return <sky-theme-switcher type="switch" size="md" radius="full"></sky-theme-switcher>;
62
+ * }
63
+ * ```
64
+ */
65
+ export declare class SkyThemeSwitcher extends LitElement {
66
+ static dependencies: Record<string, CustomElementConstructor>;
67
+ static styles: import("lit").CSSResult;
68
+ /** Display options */
69
+ darkIcon: string;
70
+ lightIcon: string;
71
+ systemIcon: string;
72
+ /** "switch" | "button" */
73
+ type: "switch" | "button";
74
+ radius: radiusSize;
75
+ color: string;
76
+ disabled: boolean;
77
+ size: Size;
78
+ variant: string;
79
+ iconOnly: boolean;
80
+ /** Live theme context from <sky-theme-provider>. */
81
+ private themeCtx?;
82
+ private get preference();
83
+ private get mode();
84
+ private iconForPref;
85
+ /** Cycle order + safe next */
86
+ private readonly cycle;
87
+ private nextPref;
88
+ private handleButtonClick;
89
+ toggleTheme(): void;
90
+ render(): import("lit-html").TemplateResult<1>;
91
+ }
92
+ export {};