@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,81 @@
1
+ import { LitElement } from "lit";
2
+ export type FormState = string | File | FormData | null | string;
3
+ export declare abstract class FormControlBase extends LitElement {
4
+ /** Enables form-associated custom element behavior */
5
+ static formAssociated: boolean;
6
+ protected internals: ElementInternals;
7
+ protected defaultValue: string;
8
+ /** Native form attributes you’ll reuse everywhere */
9
+ name: string;
10
+ formId: string | null;
11
+ disabled: boolean;
12
+ readonly: boolean;
13
+ required: boolean;
14
+ requiredMessage: string;
15
+ constructor();
16
+ get form(): HTMLFormElement | null;
17
+ get validity(): ValidityState;
18
+ get validationMessage(): string;
19
+ get willValidate(): boolean;
20
+ checkValidity(): boolean;
21
+ reportValidity(): boolean;
22
+ formResetCallback(): void;
23
+ formDisabledCallback(disabled: boolean): void;
24
+ formStateRestoreCallback(state: FormState): void;
25
+ /** Must return current “submission value” (string/file/formdata) */
26
+ protected abstract getFormValue(): FormState;
27
+ /** Must set the component state from restored state (usually string) */
28
+ protected abstract setValueFromFormState(state: FormState): void;
29
+ /** Must return the internal focusable control to anchor validity bubbles */
30
+ protected abstract getValidityAnchor(): HTMLElement | undefined;
31
+ /** Must return true if empty (for required) */
32
+ protected abstract isEmpty(): boolean;
33
+ /** ✅ Must return the native control you want to proxy to (input/textarea/select/...) */
34
+ protected abstract getNativeControl(): HTMLElement | null;
35
+ /** Optional: return first custom error message (or empty string) */
36
+ protected getCustomErrorMessage(): string;
37
+ protected validateForForm(): string;
38
+ /** Optional: reset component to default */
39
+ protected onFormReset(): void;
40
+ /** Optional: react to fieldset disabled */
41
+ protected onFormDisabled(_disabled: boolean): void;
42
+ /** Optional: handle BFCache restore */
43
+ protected onFormStateRestore(state: FormState): void;
44
+ /**
45
+ * ✅ Called by base after a proxy method mutates the native control.
46
+ * Subclasses should pull native.value into their state and optionally validate.
47
+ */
48
+ protected onNativeValueMutated(_native: any): void;
49
+ protected syncFormValue(): void;
50
+ protected syncValidity(): void;
51
+ protected reemitNativeEvent(type: string, originalEvent: Event, init?: Partial<EventInit> & {
52
+ detail?: any;
53
+ }): void;
54
+ /** Call once after initial render */
55
+ protected captureDefaultValue(initial: string): void;
56
+ protected get nativeControl(): any | null;
57
+ protected get nativeInput(): HTMLInputElement | null;
58
+ protected get nativeTextarea(): HTMLTextAreaElement | null;
59
+ /** Central sync after proxy calls */
60
+ protected syncFromNative(runValidity?: boolean): void;
61
+ focus(options?: FocusOptions): void;
62
+ blur(): void;
63
+ click(): void;
64
+ showPicker(): boolean;
65
+ protected getSelectionTarget(): HTMLInputElement | HTMLTextAreaElement | null;
66
+ get selectionStart(): number | null;
67
+ set selectionStart(v: number | null);
68
+ get selectionEnd(): number | null;
69
+ set selectionEnd(v: number | null);
70
+ get selectionDirection(): "forward" | "backward" | "none" | null;
71
+ select(): void;
72
+ setSelectionRange(start: number, end: number, direction?: "forward" | "backward" | "none"): void;
73
+ setRangeText(replacement: string, start?: number, end?: number, selectionMode?: "select" | "start" | "end" | "preserve"): void;
74
+ get valueAsNumber(): number;
75
+ set valueAsNumber(v: number);
76
+ get valueAsDate(): Date | null;
77
+ set valueAsDate(v: Date | null);
78
+ stepUp(n?: number): void;
79
+ stepDown(n?: number): void;
80
+ setCustomValidity(message: string): void;
81
+ }
@@ -0,0 +1,2 @@
1
+ import{__decorate as t,__metadata as e}from"tslib";import{LitElement as i}from"lit";import{property as s}from"lit/decorators.js";class n extends i{static{this.formAssociated=!0}constructor(){if(super(),this.defaultValue="",this.name="",this.formId=null,this.disabled=!1,this.readonly=!1,this.required=!1,this.requiredMessage="This field is required.","function"!=typeof this.attachInternals)throw new Error("ElementInternals / form-associated custom elements not supported in this browser.");this.internals=this.attachInternals()}get form(){return this.internals.form}get validity(){return this.internals.validity}get validationMessage(){return this.internals.validationMessage}get willValidate(){return this.internals.willValidate}checkValidity(){return this.internals.checkValidity()}reportValidity(){return this.internals.reportValidity()}formResetCallback(){this.onFormReset(),this.syncFormValue(),this.syncValidity()}formDisabledCallback(t){this.disabled=t,this.onFormDisabled(t),this.syncValidity()}formStateRestoreCallback(t){this.onFormStateRestore(t),this.syncFormValue(),this.syncValidity()}getCustomErrorMessage(){return""}validateForForm(){return""}onFormReset(){this.setValueFromFormState(this.defaultValue)}onFormDisabled(t){}onFormStateRestore(t){this.setValueFromFormState(t)}onNativeValueMutated(t){}syncFormValue(){if(!this.name||this.disabled)return void this.internals.setFormValue(null);const t=this.getFormValue();null!==t?this.internals.setFormValue(t):this.internals.setFormValue(null)}syncValidity(){if(this.disabled)return void this.internals.setValidity({});if(this.required&&this.isEmpty())return void this.internals.setValidity({valueMissing:!0},this.requiredMessage||"This field is required.",this.getValidityAnchor());const t=this.validateForForm();t?this.internals.setValidity({customError:!0},t,this.getValidityAnchor()):this.internals.setValidity({})}reemitNativeEvent(t,e,i){const s={bubbles:!0,composed:!0,cancelable:!!["submit"].includes(t)},n=void 0!==i?.detail?new CustomEvent(t,{...s,...i}):new Event(t,{...s,...i});n.__originalEvent=e,this.dispatchEvent(n)}captureDefaultValue(t){this.defaultValue=t??""}get nativeControl(){return this.getNativeControl()}get nativeInput(){const t=this.getNativeControl();return t instanceof HTMLInputElement?t:null}get nativeTextarea(){const t=this.getNativeControl();return t instanceof HTMLTextAreaElement?t:null}syncFromNative(t=!0){const e=this.nativeControl;e&&(this.onNativeValueMutated(e),this.syncFormValue(),t&&this.syncValidity())}focus(t){this.nativeControl?.focus?.(t)}blur(){this.nativeControl?.blur?.()}click(){this.nativeControl?.click?.()}showPicker(){const t=this.nativeInput;if(!t||"function"!=typeof t.showPicker)return!1;try{return t.showPicker(),!0}catch(t){return!1}}getSelectionTarget(){const t=this.getNativeControl();if(!t)return null;if(t instanceof HTMLTextAreaElement)return t;if(t instanceof HTMLInputElement){const e=(t.type||"").toLowerCase();return"date"===e||"time"===e||"week"===e||"month"===e||"datetime-local"===e||"number"===e||"file"===e?null:t}return null}get selectionStart(){return this.getSelectionTarget()?.selectionStart??null}set selectionStart(t){const e=this.getSelectionTarget();e&&(e.selectionStart=t)}get selectionEnd(){return this.getSelectionTarget()?.selectionEnd??null}set selectionEnd(t){const e=this.getSelectionTarget();e&&(e.selectionEnd=t)}get selectionDirection(){return this.getSelectionTarget()?.selectionDirection??null}select(){this.getSelectionTarget()?.select?.()}setSelectionRange(t,e,i){this.getSelectionTarget()?.setSelectionRange?.(t,e,i)}setRangeText(t,e,i,s){const n=this.getSelectionTarget();!n||this.disabled||this.readonly||(void 0!==e&&void 0!==i?n.setRangeText(t,e,i,s):n.setRangeText(t),this.syncFromNative(!0))}get valueAsNumber(){return this.nativeInput?.valueAsNumber??Number.NaN}set valueAsNumber(t){const e=this.nativeInput;!e||this.disabled||this.readonly||(e.valueAsNumber=t,this.syncFromNative(!0))}get valueAsDate(){return this.nativeInput?.valueAsDate??null}set valueAsDate(t){const e=this.nativeInput;!e||this.disabled||this.readonly||(e.valueAsDate=t,this.syncFromNative(!0))}stepUp(t){const e=this.nativeInput;!e||this.disabled||this.readonly||(e.stepUp(t),this.syncFromNative(!0))}stepDown(t){const e=this.nativeInput;!e||this.disabled||this.readonly||(e.stepDown(t),this.syncFromNative(!0))}setCustomValidity(t){this.disabled||(t?this.internals.setValidity({customError:!0},t,this.getValidityAnchor()):(this.internals.setValidity({}),this.syncValidity()))}}t([s({type:String,reflect:!0}),e("design:type",Object)],n.prototype,"name",void 0),t([s({type:String,reflect:!0}),e("design:type",Object)],n.prototype,"formId",void 0),t([s({type:Boolean,reflect:!0}),e("design:type",Object)],n.prototype,"disabled",void 0),t([s({type:Boolean,reflect:!0}),e("design:type",Object)],n.prototype,"readonly",void 0),t([s({type:Boolean,reflect:!0}),e("design:type",Object)],n.prototype,"required",void 0),t([s({type:String}),e("design:type",Object)],n.prototype,"requiredMessage",void 0);export{n as FormControlBase};
2
+ //# sourceMappingURL=form-control-base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-control-base.js","sources":["../../../src/helper/internals/form-control-base.ts"],"sourcesContent":[null],"names":["FormControlBase","LitElement","this","formAssociated","constructor","super","defaultValue","name","formId","disabled","readonly","required","requiredMessage","attachInternals","Error","internals","form","validity","validationMessage","willValidate","checkValidity","reportValidity","formResetCallback","onFormReset","syncFormValue","syncValidity","formDisabledCallback","onFormDisabled","formStateRestoreCallback","state","onFormStateRestore","getCustomErrorMessage","validateForForm","setValueFromFormState","_disabled","onNativeValueMutated","_native","setFormValue","v","getFormValue","setValidity","isEmpty","valueMissing","getValidityAnchor","msg","customError","reemitNativeEvent","type","originalEvent","init","common","bubbles","composed","cancelable","includes","ev","undefined","detail","CustomEvent","Event","__originalEvent","dispatchEvent","captureDefaultValue","initial","nativeControl","getNativeControl","nativeInput","el","HTMLInputElement","nativeTextarea","HTMLTextAreaElement","syncFromNative","runValidity","native","focus","options","blur","click","showPicker","input","err","getSelectionTarget","t","toLowerCase","selectionStart","selectionEnd","selectionDirection","select","setSelectionRange","start","end","direction","setRangeText","replacement","selectionMode","valueAsNumber","Number","NaN","valueAsDate","stepUp","n","stepDown","setCustomValidity","message","__decorate","property","String","reflect","prototype","Boolean"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from "./form-control-base";
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Color resolution utilities for Sky Design System
3
+ * Provides consistent color token mapping across components
4
+ */
5
+ export type ColorToken = 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'light' | 'dark' | 'default' | string;
6
+ export interface ColorResolverConfig {
7
+ /** CSS variable prefix (default: 'sky') */
8
+ prefix?: string;
9
+ /** Whether to use color-mix for hover states */
10
+ useColorMix?: boolean;
11
+ }
12
+ /**
13
+ * Default color token mapping to CSS variables
14
+ */
15
+ export declare const DEFAULT_COLOR_TOKENS: Record<string, string>;
16
+ /**
17
+ * Resolves a color token to its CSS value
18
+ * @param input - Color token (e.g., 'primary') or custom CSS color
19
+ * @param customMap - Optional custom token mapping (overrides defaults)
20
+ * @returns CSS color value
21
+ */
22
+ export declare function resolveColor(input: string, customMap?: Record<string, string>): string;
23
+ /**
24
+ * Determines appropriate text color for a given background color token
25
+ * @param input - Color token (e.g., 'primary')
26
+ * @returns CSS color value for text
27
+ */
28
+ export declare function resolveTextColorForToken(input: string): string;
29
+ /** True when the token is the neutral glass surface (`default`), not a brand accent. */
30
+ export declare function isDefaultColorToken(input: string): boolean;
31
+ /** Foreground ink (labels, borders) — never use glass-solid as text. */
32
+ export declare function resolveInkColorForToken(input: string): string;
33
+ /** Accent for hover/focus on neutral surfaces. */
34
+ export declare function resolveAccentColorForToken(input: string): string;
35
+ /**
36
+ * Theme glass border shorthand (`1px solid …` from `--sky-border-primary`).
37
+ * Use as a full `border` value — do not wrap in `Npx solid var(--sky-border-primary)`.
38
+ */
39
+ export declare function skyBorderPrimaryShorthand(): string;
40
+ /**
41
+ * Separator stroke for custom widths (`--sky-border-light` is a color, not shorthand).
42
+ */
43
+ export declare function skyBorderWidthSolid(widthPx: number): string;
44
+ /** Partial variant overrides when `color="default"` (surface token, not ink). */
45
+ export type DefaultColorVariantPatch = Partial<{
46
+ bg: string;
47
+ color: string;
48
+ border: string;
49
+ shadow: string;
50
+ hoverBg: string;
51
+ hoverColor: string;
52
+ hoverShadow: string;
53
+ hoverBorder: string;
54
+ arrow: string;
55
+ }>;
56
+ /**
57
+ * Applies variant style overrides for `color="default"` so glass tokens are not
58
+ * used as text/border/hover ink on translucent surfaces.
59
+ */
60
+ export declare function tuneSurfaceVariantForDefaultColor<T extends DefaultColorVariantPatch>(colorToken: string, variant: string, styles: T): T;
61
+ /**
62
+ * Creates a hover shade using color-mix
63
+ * @param color - Base CSS color
64
+ * @param amount - Percentage of black to mix (0-100)
65
+ * @returns CSS color-mix() value
66
+ */
67
+ export declare function hoverShade(color: string, amount?: number): string;
68
+ /**
69
+ * Creates a hover shade using color-mix
70
+ * @param color - Base CSS color
71
+ * @param amount - Percentage of black to mix (0-100)
72
+ * @returns CSS color-mix() value
73
+ */
74
+ export declare function darkShade(color: string, amount?: number): string;
75
+ /**
76
+ * Creates a hover shade using color-mix
77
+ * @param color - Base CSS color
78
+ * @param amount - Percentage of black to mix (0-100)
79
+ * @returns CSS color-mix() value
80
+ */
81
+ export declare function lightShade(color: string, amount?: number): string;
82
+ /**
83
+ * Creates a faded/transparent version of a color
84
+ * @param color - Base CSS color
85
+ * @param amount - Percentage of transparency (0-100)
86
+ * @returns CSS color-mix() value with transparency
87
+ */
88
+ export declare function fadeMix(color: string, amount?: number): string;
89
+ /**
90
+ * Resolves gradient stop tokens to CSS colors
91
+ * @param stop - Gradient stop token (e.g., 'primary 30%')
92
+ * @returns CSS gradient stop value
93
+ */
94
+ export declare function resolveGradientStop(stop: string): string;
95
+ /**
96
+ * Parses a gradient specification string
97
+ */
98
+ export interface GradientSpec {
99
+ kind: 'linear' | 'radial' | 'conic';
100
+ args: string;
101
+ stops: string[];
102
+ }
103
+ /**
104
+ * Parses gradient specification string
105
+ * Format: "kind@args: stop1, stop2, stop3"
106
+ * Example: "linear@90deg: primary, secondary 50%, danger"
107
+ * Example: "radial@circle: primary, transparent"
108
+ */
109
+ export declare function parseGradientSpec(input: string): GradientSpec;
110
+ /**
111
+ * Creates a CSS gradient from a specification string
112
+ * @param specStr - Gradient specification string
113
+ * @param fallbackColor - Fallback color if no stops provided
114
+ * @returns CSS gradient value
115
+ */
116
+ export declare function createGradient(specStr: string, fallbackColor?: string): string;
117
+ /**
118
+ * Color resolver with configuration support
119
+ */
120
+ export declare class ColorResolver {
121
+ private config;
122
+ constructor(config?: ColorResolverConfig);
123
+ /**
124
+ * Resolves a color with prefix-aware variable names
125
+ */
126
+ resolve(input: string): string;
127
+ /**
128
+ * Gets text color for a background color
129
+ */
130
+ getTextColor(backgroundColor: string): string;
131
+ /**
132
+ * Creates a hover state color
133
+ */
134
+ getHoverColor(baseColor: string, darkenAmount?: number): string;
135
+ }
136
+ /**
137
+ * Singleton instance for convenience
138
+ */
139
+ export declare const colorResolver: ColorResolver;
@@ -0,0 +1,2 @@
1
+ const r={primary:"var(--sky-active-primary)",active:"var(--sky-active-primary)",secondary:"var(--sky-info-primary)",success:"var(--sky-success-primary)",danger:"var(--sky-danger-primary)",warning:"var(--sky-warning-primary)",info:"var(--sky-info-primary)",light:"var(--sky-text-light)",dark:"var(--sky-text-dark)",muted:"var(--sky-text-tertiary)","border-light":"var(--sky-border-light)",default:"var(--sky-glass-solid)"};function t(t,a={}){const e={...r,...a};return e[t]||t||e.primary}function a(r){return{dark:"var(--sky-text-light)",light:"var(--sky-text-dark)",warning:"var(--sky-text-black)",success:"var(--sky-text-black)",default:"var(--sky-text-primary)"}[r]||"var(--sky-text-white)"}function e(r){return"default"===r}function i(r){return e(r)?"var(--sky-text-primary)":t(r)}function o(r){return e(r)?"var(--sky-active-primary)":t(r)}function s(){return"var(--sky-border-primary)"}function n(r){return`${r}px solid var(--sky-border-light)`}const y={shadow:{bg:"var(--sky-glass-solid)",hoverBg:"var(--sky-glass-solid)",color:"var(--sky-text-primary)",hoverColor:"var(--sky-active-primary)",arrow:"var(--sky-glass-solid)"},solid:{hoverShadow:"var(--sky-box-shadow-primary)"},faded:{color:"var(--sky-text-primary)",hoverColor:"var(--sky-text-primary)",arrow:"var(--sky-hover-tertiary)"},bordered:{color:"var(--sky-text-primary)",border:n(2),hoverColor:"var(--sky-text-primary)",hoverBorder:"2px solid var(--sky-text-tertiary)",arrow:"var(--sky-border-light)"},transparent:{color:"var(--sky-text-primary)",hoverBg:"var(--sky-hover-tertiary)",hoverColor:"var(--sky-text-primary)"},flat:{bg:"var(--sky-hover-tertiary)",color:"var(--sky-text-primary)",hoverBg:"var(--sky-hover-secondary)",hoverColor:"var(--sky-active-primary)",arrow:"var(--sky-hover-tertiary)"},ghost:{color:"var(--sky-text-primary)",border:n(2),hoverBg:"var(--sky-hover-secondary)",hoverColor:"var(--sky-text-primary)"},link:{color:"var(--sky-text-primary)",hoverColor:"var(--sky-active-primary)"},light:{color:"var(--sky-text-primary)"}};function v(r,t,a){if(!e(r))return a;const i=y[t];return i?{...a,...i}:a}function c(r,t=20){return`color-mix(in srgb, ${r} ${100-t}%, var(--sky-text-dark))`}function l(r,t=20){return`color-mix(in srgb, ${r} ${100-t}%, var(--sky-text-black))`}function k(r,t=20){return`color-mix(in srgb, ${r} ${100-t}%, var(--sky-text-white))`}function d(r,t=15){return`color-mix(in srgb, ${r} ${t}%, transparent)`}function u(t){const a=t.match(/^([^\s]+)(\s+.+)?$/),e=a?.[1]??t;return`${r[e]||e}${a?.[2]??""}`}function p(r){const t=(r||"").trim(),a=t.indexOf(":");let e="",i=t;-1!==a&&(e=t.slice(0,a).trim(),i=t.slice(a+1).trim());let o="linear",s="90deg";if(e){const[r,a]=e.split("@").map(r=>r.trim()),n=(r||"").toLowerCase();"linear"===n||"radial"===n||"conic"===n?(o=n,s=a||("linear"===o?"90deg":"radial"===o?"circle":"from 0deg at 50% 50%")):i=t}return{kind:o,args:s,stops:i.split(",").map(r=>r.trim()).filter(Boolean)}}function g(r,t="var(--sky-active-primary)"){const a=p(r),e=(a.stops.length?a.stops:[t,t]).map(r=>u(r)),{kind:i,args:o}=a;switch(i){case"linear":return`linear-gradient(${o}, ${e.join(", ")})`;case"radial":return`radial-gradient(${o}, ${e.join(", ")})`;case"conic":return`conic-gradient(${o}, ${e.join(", ")})`;default:return`linear-gradient(90deg, ${e.join(", ")})`}}class h{constructor(r={}){this.config={prefix:r.prefix||"sky",useColorMix:r.useColorMix??!0}}resolve(t){if(t.startsWith("#"))return t;if(t.startsWith("rgb")||t.startsWith("hsl"))return t;if(t.startsWith("var("))return t;const a=`var(--${this.config.prefix}-${t})`;return r[t]||a||r.primary}getTextColor(t){return t in r?a(t):"var(--sky-text-white)"}getHoverColor(r,t=20){return this.config.useColorMix?c(r,t):r}}const m=new h;export{h as ColorResolver,r as DEFAULT_COLOR_TOKENS,m as colorResolver,g as createGradient,l as darkShade,d as fadeMix,c as hoverShade,e as isDefaultColorToken,k as lightShade,p as parseGradientSpec,o as resolveAccentColorForToken,t as resolveColor,u as resolveGradientStop,i as resolveInkColorForToken,a as resolveTextColorForToken,s as skyBorderPrimaryShorthand,n as skyBorderWidthSolid,v as tuneSurfaceVariantForDefaultColor};
2
+ //# sourceMappingURL=color-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-resolver.js","sources":["../../../src/helper/utils/color-resolver.ts"],"sourcesContent":[null],"names":["DEFAULT_COLOR_TOKENS","primary","active","secondary","success","danger","warning","info","light","dark","muted","default","resolveColor","input","customMap","map","resolveTextColorForToken","isDefaultColorToken","resolveInkColorForToken","resolveAccentColorForToken","skyBorderPrimaryShorthand","skyBorderWidthSolid","widthPx","DEFAULT_COLOR_VARIANT_PATCHES","shadow","bg","hoverBg","color","hoverColor","arrow","solid","hoverShadow","faded","bordered","border","hoverBorder","transparent","flat","ghost","link","tuneSurfaceVariantForDefaultColor","colorToken","variant","styles","patch","hoverShade","amount","darkShade","lightShade","fadeMix","resolveGradientStop","stop","match","head","parseGradientSpec","raw","trim","idx","indexOf","prefix","stopsStr","slice","kind","args","k","a","split","s","kLower","toLowerCase","stops","filter","Boolean","createGradient","specStr","fallbackColor","spec","length","st","join","ColorResolver","constructor","config","this","useColorMix","resolve","startsWith","customVar","getTextColor","backgroundColor","getHoverColor","baseColor","darkenAmount","colorResolver"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from "./color-resolver";
2
+ export * from "./size-resolver";
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Resolves a radius input into a valid CSS radius value.
3
+ * @param input - The radius input (`sm`, `md`, `lg`, `full`, `none`, or CSS length).
4
+ * @returns The resolved CSS radius value.
5
+ */
6
+ export declare function resolveRadius(input: string): string;
@@ -0,0 +1,2 @@
1
+ function r(r){const a={none:"0px",sm:"var(--sky-radius-primary)",md:"var(--sky-radius-secondary)",lg:"var(--sky-radius-tertiary)",full:"9999px"};return Object.prototype.hasOwnProperty.call(a,r)?a[r]:r}export{r as resolveRadius};
2
+ //# sourceMappingURL=size-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"size-resolver.js","sources":["../../../src/helper/utils/size-resolver.ts"],"sourcesContent":[null],"names":["resolveRadius","input","map","none","sm","md","lg","full","Object","prototype","hasOwnProperty","call"],"mappings":"AAKM,SAAUA,EAAcC,GAC1B,MAAMC,EAA8B,CAClCC,KAAM,MACNC,GAAI,4BACJC,GAAI,8BACJC,GAAI,6BACJC,KAAM,UAER,OAAOC,OAAOC,UAAUC,eAAeC,KAAKT,EAAKD,GAC7CC,EAAID,GACJA,CACN"}
@@ -0,0 +1,58 @@
1
+ export { html } from 'lit';
2
+ export * from './helper';
3
+ export * from './sky-accordion';
4
+ export * from './sky-accordion-item';
5
+ export * from './sky-alert';
6
+ export * from './sky-appbar';
7
+ export * from './sky-avatar';
8
+ export * from './sky-badge';
9
+ export * from './sky-breadcrumb';
10
+ export * from './sky-button';
11
+ export * from './sky-button-group';
12
+ export * from './sky-card';
13
+ export * from './sky-carousel';
14
+ export * from './sky-checkbox';
15
+ export * from './sky-chip';
16
+ export * from './sky-col';
17
+ export * from './sky-combobox';
18
+ export * from './sky-counter';
19
+ export * from './sky-dialog';
20
+ export * from './sky-divider';
21
+ export * from './sky-drawer';
22
+ export * from './sky-dropdown';
23
+ export * from './sky-dropdown-item';
24
+ export * from './sky-flexbar';
25
+ export * from './sky-flexbox';
26
+ export * from './sky-flexcol';
27
+ export * from './sky-flexitem';
28
+ export * from './sky-form';
29
+ export * from './sky-grid';
30
+ export * from './sky-icon';
31
+ export * from './sky-image';
32
+ export * from './sky-input';
33
+ export * from './sky-list';
34
+ export * from './sky-listitem';
35
+ export * from './sky-navbar';
36
+ export * from './sky-navpanel';
37
+ export * from './sky-notification';
38
+ export * from './sky-otp';
39
+ export * from './sky-overlay';
40
+ export * from './sky-pagination';
41
+ export * from './sky-progress';
42
+ export * from './sky-radio';
43
+ export * from './sky-radio-group';
44
+ export * from './sky-range';
45
+ export * from './sky-row';
46
+ export * from './sky-serial';
47
+ export * from './sky-sheet';
48
+ export * from './sky-skeleton';
49
+ export * from './sky-slider';
50
+ export * from './sky-speeddial';
51
+ export * from './sky-spinner';
52
+ export * from './sky-steps';
53
+ export * from './sky-switch';
54
+ export * from './sky-tab';
55
+ export * from './sky-tab-button';
56
+ export * from './sky-theme-provider';
57
+ export * from './sky-theme-switcher';
58
+ export * from './sky-tooltip';
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export{html}from"lit";export{FormControlBase}from"./helper/internals/form-control-base.js";export{ColorResolver,DEFAULT_COLOR_TOKENS,colorResolver,createGradient,darkShade,fadeMix,hoverShade,isDefaultColorToken,lightShade,parseGradientSpec,resolveAccentColorForToken,resolveColor,resolveGradientStop,resolveInkColorForToken,resolveTextColorForToken,skyBorderPrimaryShorthand,skyBorderWidthSolid,tuneSurfaceVariantForDefaultColor}from"./helper/utils/color-resolver.js";export{resolveRadius}from"./helper/utils/size-resolver.js";export{AnimationController}from"./helper/controllers/animation-controller.js";export{PopoverController}from"./helper/controllers/popover-controller.js";export{extractIconNames,fetchIconsForOffline,registerOfflineIcons}from"./helper/iconify-offline.js";export{SkyAccordion}from"./sky-accordion/sky-accordion.js";export{SkyAccordionItem}from"./sky-accordion-item/sky-accordion-item.js";export{SkyAlert}from"./sky-alert/sky-alert.js";export{SkyAppbar}from"./sky-appbar/sky-appbar.js";export{SkyAvatar}from"./sky-avatar/sky-avatar.js";export{SkyBadge}from"./sky-badge/sky-badge.js";export{SkyBreadcrumb}from"./sky-breadcrumb/sky-breadcrumb.js";export{SkyButton}from"./sky-button/sky-button.js";export{SkyButtonGroup}from"./sky-button-group/sky-button-group.js";export{SkyCard}from"./sky-card/sky-card.js";export{SkyCarousel}from"./sky-carousel/sky-carousel.js";export{SkyCheckbox}from"./sky-checkbox/sky-checkbox.js";export{SkyChip}from"./sky-chip/sky-chip.js";export{SkyCol}from"./sky-col/sky-col.js";export{SkyCombobox}from"./sky-combobox/sky-combobox.js";export{SkyCounter}from"./sky-counter/sky-counter.js";export{SkyDialog}from"./sky-dialog/sky-dialog.js";export{SkyDivider}from"./sky-divider/sky-divider.js";export{SkyDrawer}from"./sky-drawer/sky-drawer.js";export{SkyDropdown}from"./sky-dropdown/sky-dropdown.js";export{SkyDropdownItem}from"./sky-dropdown-item/sky-dropdown-item.js";export{SkyFlexbar}from"./sky-flexbar/sky-flexbar.js";export{SkyFlexbox}from"./sky-flexbox/sky-flexbox.js";export{SkyFlexcol}from"./sky-flexcol/sky-flexcol.js";export{SkyFlexitem}from"./sky-flexitem/sky-flexitem.js";export{SkyForm}from"./sky-form/sky-form.js";export{SkyGrid}from"./sky-grid/sky-grid.js";export{SkyIcon}from"./sky-icon/sky-icon.js";export{SkyImage}from"./sky-image/sky-image.js";export{SkyInput}from"./sky-input/sky-input.js";export{SkyList}from"./sky-list/sky-list.js";export{SkyListitem}from"./sky-listitem/sky-listitem.js";export{SkyNavbar}from"./sky-navbar/sky-navbar.js";export{SkyNavpanel}from"./sky-navpanel/sky-navpanel.js";export{SkyNotification}from"./sky-notification/sky-notification.js";export{SkyOtp}from"./sky-otp/sky-otp.js";export{SkyOverlay}from"./sky-overlay/sky-overlay.js";export{SkyPagination}from"./sky-pagination/sky-pagination.js";export{SkyProgress}from"./sky-progress/sky-progress.js";export{SkyRadio}from"./sky-radio/sky-radio.js";export{SkyRadioGroup}from"./sky-radio-group/sky-radio-group.js";export{SkyRange}from"./sky-range/sky-range.js";export{SkyRow}from"./sky-row/sky-row.js";export{SkySerial}from"./sky-serial/sky-serial.js";export{SkySheet,resolveSheetRadius}from"./sky-sheet/sky-sheet.js";export{SkySkeleton}from"./sky-skeleton/sky-skeleton.js";export{SkySlider}from"./sky-slider/sky-slider.js";export{SkySpeeddial}from"./sky-speeddial/sky-speeddial.js";export{SkySpinner}from"./sky-spinner/sky-spinner.js";export{SkySteps}from"./sky-steps/sky-steps.js";export{SkySwitch}from"./sky-switch/sky-switch.js";export{SkyTab}from"./sky-tab/sky-tab.js";export{SkyTabButton}from"./sky-tab-button/sky-tab-button.js";export{SkyThemeProvider,defaultTheme,getCurrentTheme,getThemePreference,mergeTheme,onThemeChange,resolveActualTheme,themeContext}from"./sky-theme-provider/sky-theme-provider.js";export{SkyThemeSwitcher}from"./sky-theme-switcher/sky-theme-switcher.js";export{SkyTooltip}from"./sky-tooltip/sky-tooltip.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export * from "./sky-accordion";
@@ -0,0 +1 @@
1
+ export * from './sky-accordion.js';
@@ -0,0 +1,201 @@
1
+ import { LitElement } from "lit";
2
+ import { SkyAccordionItem } from "../sky-accordion-item/sky-accordion-item";
3
+ export type SkyAccordionVariant = "transparent" | "solid" | "bordered" | "splitted";
4
+ export type SkyAccordionToggleEventDetail = {
5
+ open: boolean;
6
+ };
7
+ /**
8
+ * @element sky-accordion
9
+ *
10
+ * @summary Container that manages direct `<sky-accordion-item>` children, open-state coordination, and keyboard navigation.
11
+ *
12
+ * @status stable
13
+ * @since 1.0.0
14
+ *
15
+ * @documentation https://library.sky-ui.com/components/accordion
16
+ * @dependency sky-accordion-item
17
+ *
18
+ * @slot - One or more direct `<sky-accordion-item>` children.
19
+ *
20
+ * @property {boolean} singleOpen - Allows at most one direct item to remain open at a time.
21
+ * @property {SkyAccordionVariant} variant - Visual presentation variant for the accordion container.
22
+ * @property {boolean} disabled - Disables user interaction for the entire accordion.
23
+ * @property {string} label - Accessible name applied to the group via `aria-label`.
24
+ * @method expandAll Opens all direct items; in `single-open` mode, opens only the first direct item.
25
+ * @method collapseAll Closes all direct items.
26
+ * @method openItem Opens a direct item by index and returns whether the operation succeeded.
27
+ * @method closeItem Closes a direct item by index and returns whether the operation succeeded.
28
+ * @method toggleItem Toggles a direct item by index and returns whether the operation succeeded.
29
+ * @method openFirst Opens the first direct item and returns whether the operation succeeded.
30
+ * @method openLast Opens the last direct item and returns whether the operation succeeded.
31
+ * @method focusItem Moves focus to a direct item header by index and returns whether focus was moved.
32
+ * @method focusFirst Moves focus to the first direct item header and returns whether focus was moved.
33
+ * @method focusLast Moves focus to the last direct item header and returns whether focus was moved.
34
+ * @method getItems Returns a snapshot of direct `<sky-accordion-item>` children.
35
+ *
36
+ * @fires {CustomEvent<SkyAccordionToggleEventDetail>} accordion-toggle - Emitted by a direct child item when its open state changes; used by the container to enforce `single-open` behavior.
37
+ *
38
+ * @csspart group - Wrapper that contains all slotted accordion items.
39
+ *
40
+ * @Behavior
41
+ * - Default mode allows multiple direct items to remain open.
42
+ * - `single-open` ensures only one direct item is open at any time.
43
+ * - Nested item events are ignored; coordination applies only to direct children.
44
+ * - Keyboard navigation supports `ArrowDown`/`ArrowRight`, `ArrowUp`/`ArrowLeft`, `Home`, and `End`.
45
+ * - Accessibility is provided through `role="group"` and optional `aria-label` on the wrapper.
46
+ *
47
+ * @example
48
+ * ```html
49
+ * <sky-accordion label="FAQs" single-open variant="splitted">
50
+ * <sky-accordion-item open>
51
+ * <span slot="title">What is Sky UI?</span>
52
+ * <div slot="content">A reusable web component library.</div>
53
+ * </sky-accordion-item>
54
+ * </sky-accordion>
55
+ * ```
56
+ * ```vue
57
+ * <template>
58
+ * <sky-accordion label="FAQs" single-open variant="splitted">
59
+ * <sky-accordion-item open>
60
+ * <span slot="title">What is Sky UI?</span>
61
+ * <div slot="content">A reusable web component library.</div>
62
+ * </sky-accordion-item>
63
+ * </sky-accordion>
64
+ * </template>
65
+ * ```
66
+ * ```jsx
67
+ * export default function Demo() {
68
+ * return (
69
+ * <sky-accordion label="FAQs" single-open variant="splitted">
70
+ * <sky-accordion-item open>
71
+ * <span slot="title">What is Sky UI?</span>
72
+ * <div slot="content">A reusable web component library.</div>
73
+ * </sky-accordion-item>
74
+ * </sky-accordion>
75
+ * );
76
+ * }
77
+ * ```
78
+ */
79
+ export declare class SkyAccordion extends LitElement {
80
+ /**
81
+ * Enables single-open coordination for direct items.
82
+ * @default false
83
+ */
84
+ singleOpen: boolean;
85
+ /**
86
+ * Visual variant applied to the accordion container.
87
+ * @default "solid"
88
+ */
89
+ variant: SkyAccordionVariant;
90
+ /**
91
+ * Disables interaction for all direct accordion items.
92
+ * @default false
93
+ */
94
+ disabled: boolean;
95
+ /**
96
+ * Accessible group label mapped to `aria-label`.
97
+ */
98
+ label: string;
99
+ /**
100
+ * Cached list of direct accordion children.
101
+ * Reset when slot content changes.
102
+ */
103
+ private _itemsCache;
104
+ static styles: import("lit").CSSResult;
105
+ connectedCallback(): void;
106
+ disconnectedCallback(): void;
107
+ /**
108
+ * Opens direct items.
109
+ * In `single-open` mode, opens only the first direct item.
110
+ *
111
+ * @returns {void}
112
+ */
113
+ expandAll(): void;
114
+ /**
115
+ * Closes all direct items.
116
+ *
117
+ * @returns {void}
118
+ */
119
+ collapseAll(): void;
120
+ /**
121
+ * Opens a direct item by index.
122
+ * In `single-open` mode, opening one item closes the others.
123
+ *
124
+ * @param index Zero-based direct child index.
125
+ * @returns True when an item exists at the index and is opened.
126
+ */
127
+ openItem(index: number): boolean;
128
+ /**
129
+ * Closes a direct item by index.
130
+ *
131
+ * @param index Zero-based direct child index.
132
+ * @returns True when an item exists at the index and is closed.
133
+ */
134
+ closeItem(index: number): boolean;
135
+ /**
136
+ * Toggles a direct item by index.
137
+ * In `single-open` mode, opening one item closes the others.
138
+ *
139
+ * @param index Zero-based direct child index.
140
+ * @returns True when an item exists at the index and is toggled.
141
+ */
142
+ toggleItem(index: number): boolean;
143
+ /**
144
+ * Opens the first direct item.
145
+ *
146
+ * @returns True when at least one direct item exists and is opened.
147
+ */
148
+ openFirst(): boolean;
149
+ /**
150
+ * Opens the last direct item.
151
+ *
152
+ * @returns True when at least one direct item exists and is opened.
153
+ */
154
+ openLast(): boolean;
155
+ /**
156
+ * Moves focus to a direct item header by index.
157
+ *
158
+ * @param index Zero-based direct child index.
159
+ * @returns True when a header is found and focused.
160
+ */
161
+ focusItem(index: number): boolean;
162
+ /**
163
+ * Moves focus to the first direct item header.
164
+ *
165
+ * @returns True when a first item header is found and focused.
166
+ */
167
+ focusFirst(): boolean;
168
+ /**
169
+ * Moves focus to the last direct item header.
170
+ *
171
+ * @returns True when a last item header is found and focused.
172
+ */
173
+ focusLast(): boolean;
174
+ /**
175
+ * Returns a snapshot of direct items.
176
+ *
177
+ * @returns A shallow copy of direct `<sky-accordion-item>` children.
178
+ */
179
+ getItems(): SkyAccordionItem[];
180
+ /**
181
+ * Handles child toggle events for single-open coordination.
182
+ * Ignores events from nested or non-direct accordion items.
183
+ *
184
+ * @param e Toggle event emitted by a descendant item.
185
+ * @returns {void}
186
+ */
187
+ private handleItemToggle;
188
+ /**
189
+ * Handles keyboard navigation across direct item headers.
190
+ * Focuses adjacent or boundary headers without changing open state.
191
+ */
192
+ private handleKeydown;
193
+ /** Clears the direct-item cache after slot content changes. */
194
+ private handleSlotChange;
195
+ /**
196
+ * Returns direct `<sky-accordion-item>` children.
197
+ * Uses `this.children`, so nested descendants are excluded.
198
+ */
199
+ private get items();
200
+ render(): import("lit-html").TemplateResult<1>;
201
+ }