@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,118 @@
1
+ import { FormControlBase, FormState } from "../helper/internals/form-control-base";
2
+ export type SkyRadioSelectDetail = {
3
+ value: string;
4
+ };
5
+ export type SkyRadioValidationErrorDetail = {
6
+ errors: string[];
7
+ };
8
+ export type SkyRadioValueClearedDetail = {
9
+ value: "";
10
+ };
11
+ /**
12
+ * @element sky-radio
13
+ *
14
+ * @summary Single radio option for grouped or standalone selection.
15
+ *
16
+ * @status stable
17
+ * @since 1.0.0
18
+ *
19
+ * @documentation https://library.sky-ui.com/components/radio
20
+ *
21
+ * @slot - Content to display instead of the label property.
22
+ *
23
+ * @csspart wrapper - The circular radio control element.
24
+ * @csspart input - The native hidden radio input element.
25
+ * @csspart label - The text label element.
26
+ *
27
+ * @property {string} label - Text label displayed beside the control.
28
+ * @property {string} value - Option value used for selection and form value.
29
+ * @property {boolean} checked - Whether this option is selected.
30
+ * @property {string} name - Radio name used for same-name exclusivity.
31
+ * @property {string} color - Accent color used in checked state.
32
+ * @property {boolean} disabled - Disables user interaction.
33
+ * @property {boolean} readonly - Prevents selection changes while still allowing focus.
34
+ * @property {boolean} required - Enables required validation for standalone usage.
35
+ * @property {string} requiredMessage - Error message for required validation failures.
36
+ *
37
+ * @fires {CustomEvent<SkyRadioSelectDetail>} radio-select - Fired when the option becomes selected.
38
+ * @fires {Event} change - Native change event for form compatibility.
39
+ * @fires {Event} input - Native input event for form compatibility.
40
+ * @fires {CustomEvent<SkyRadioValidationErrorDetail>} validation-error - Fired when validation errors occur.
41
+ * @fires {CustomEvent<SkyRadioValueClearedDetail>} value-cleared - Fired when selection is reset.
42
+ * @method check Selects this radio option.
43
+ * @method focusRadio Focuses the underlying native radio control.
44
+ *
45
+ * @Behavior
46
+ * - Uses a native hidden radio input for semantics and keyboard interaction.
47
+ * - Supports grouped usage inside `sky-radio-group` and standalone usage.
48
+ * - Synchronizes checked state and form value through `FormControlBase`.
49
+ *
50
+ * @example
51
+ * ```html
52
+ * <sky-radio-group label="Deployment" name="deployment">
53
+ * <sky-radio value="blue" checked color="primary">Blue Environment</sky-radio>
54
+ * <sky-radio value="green">Green Environment</sky-radio>
55
+ * </sky-radio-group>
56
+ * ```
57
+ * ```vue
58
+ * <template>
59
+ * <sky-radio-group label="Deployment" name="deployment">
60
+ * <sky-radio value="blue" checked color="primary">Blue Environment</sky-radio>
61
+ * <sky-radio value="green">Green Environment</sky-radio>
62
+ * </sky-radio-group>
63
+ * </template>
64
+ * ```
65
+ * ```jsx
66
+ * export default function Demo() {
67
+ * return (
68
+ * <sky-radio-group label="Deployment" name="deployment">
69
+ * <sky-radio value="blue" checked color="primary">Blue Environment</sky-radio>
70
+ * <sky-radio value="green">Green Environment</sky-radio>
71
+ * </sky-radio-group>
72
+ * );
73
+ * }
74
+ * ```
75
+ */
76
+ export declare class SkyRadio extends FormControlBase {
77
+ label: string;
78
+ value: string;
79
+ checked: boolean;
80
+ color: string;
81
+ private _hasMeaningfulSlot;
82
+ check(): void;
83
+ focusRadio(): void;
84
+ static styles: import("lit").CSSResult;
85
+ constructor();
86
+ static shadowRootOptions: {
87
+ delegatesFocus: boolean;
88
+ clonable?: boolean;
89
+ customElementRegistry?: CustomElementRegistry;
90
+ mode: ShadowRootMode;
91
+ serializable?: boolean;
92
+ slotAssignment?: SlotAssignmentMode;
93
+ };
94
+ connectedCallback(): void;
95
+ disconnectedCallback(): void;
96
+ updated(changed: Map<string, unknown>): void;
97
+ private _slotHasMeaningfulContent;
98
+ private _onSlotChange;
99
+ private onNativeChange;
100
+ private handleKeydown;
101
+ /** Get the current value for form submission */
102
+ protected getFormValue(): FormState;
103
+ /** Set value from form state (e.g., form reset) */
104
+ protected setValueFromFormState(state: FormState): void;
105
+ /** Get the validity anchor (the hidden input) */
106
+ protected getValidityAnchor(): HTMLElement | undefined;
107
+ /** Check if empty (for required validation) */
108
+ protected isEmpty(): boolean;
109
+ /** Get the native control (hidden radio input) */
110
+ protected getNativeControl(): HTMLElement | null;
111
+ /** Handle native value mutation */
112
+ protected onNativeValueMutated(_native: any): void;
113
+ /** Override to provide custom error messages */
114
+ protected getCustomErrorMessage(): string;
115
+ /** Get current validation errors */
116
+ get validationErrors(): string[];
117
+ render(): import("lit-html").TemplateResult<1>;
118
+ }
@@ -0,0 +1,109 @@
1
+ import{__decorate as e,__metadata as t}from"tslib";import{css as o,LitElement as i,html as s}from"lit";import{property as r,state as a,customElement as n}from"lit/decorators.js";import{when as d}from"lit/directives/when.js";import{resolveColor as l}from"../helper/utils/color-resolver.js";import{FormControlBase as h}from"../helper/internals/form-control-base.js";let c=class extends h{check(){this.disabled||this.readonly||(this.checked=!0,this.syncFormValue())}focusRadio(){const e=this.shadowRoot?.querySelector('input[type="radio"]');e?.focus()}static{this.styles=o`
2
+ :host {
3
+ display: inline-flex;
4
+ align-items: center;
5
+ }
6
+
7
+ /* readonly: allow focus + keyboard traversal, but show subtle visual state */
8
+ :host([readonly]) label {
9
+ cursor: default;
10
+ }
11
+
12
+ label {
13
+ display: flex;
14
+ align-items: center;
15
+ gap: 6px;
16
+ color: var(--sky-text-primary);
17
+ cursor: pointer;
18
+ font-size: var(--sky-font-size-sm);
19
+ font-family: var(--sky-font);
20
+ }
21
+
22
+ label[disabled] {
23
+ pointer-events: none;
24
+ opacity: 0.6;
25
+ cursor: not-allowed;
26
+ }
27
+
28
+ :host([disabled]) label,
29
+ :host([disabled]) .radio-wrapper {
30
+ pointer-events: none;
31
+ cursor: not-allowed;
32
+ opacity: 0.6;
33
+ }
34
+
35
+ .radio-wrapper {
36
+ position: relative;
37
+ box-sizing: border-box;
38
+ width: 18px;
39
+ height: 18px;
40
+ display: inline-block;
41
+ border: 2px solid var(--sky-text-tertiary);
42
+ border-radius: 50%;
43
+ transition: border-color 0.3s ease-in-out,
44
+ background-color 0.3s ease-in-out;
45
+ cursor: pointer;
46
+ flex-shrink: 0;
47
+ }
48
+
49
+ .radio-wrapper::before {
50
+ content: "";
51
+ position: absolute;
52
+ top: 50%;
53
+ left: 50%;
54
+ transform: translate(-50%, -50%) scale(0);
55
+ width: 10px;
56
+ height: 10px;
57
+ background-color: var(--sky-glass-solid);
58
+ border-radius: 50%;
59
+ transition: transform 0.3s ease-in-out, background-color 0.3s ease-in-out;
60
+ }
61
+
62
+ .radio-wrapper.checked {
63
+ border-color: var(--radio-checked-color);
64
+ background-color: var(--radio-checked-color);
65
+ }
66
+
67
+ .radio-wrapper.checked::before {
68
+ transform: translate(-50%, -50%) scale(1);
69
+ }
70
+
71
+ input[type="radio"] {
72
+ position: absolute;
73
+ opacity: 0;
74
+ pointer-events: none;
75
+ width: 0;
76
+ height: 0;
77
+ }
78
+
79
+ input[type="radio"]:focus + .radio-wrapper {
80
+ border-color: var(--radio-checked-color);
81
+ }
82
+
83
+ sky-icon {
84
+ display: inline-block;
85
+ width: 1em;
86
+ height: 1em;
87
+ }
88
+ `}constructor(){super(),this.label="",this.value="",this.checked=!1,this.color="primary",this._hasMeaningfulSlot=!1,this._onSlotChange=e=>{const t=e.target,o=this._slotHasMeaningfulContent(t);o!==this._hasMeaningfulSlot&&(this._hasMeaningfulSlot=o)},this.onNativeChange=e=>{const t=e.currentTarget;if(this.disabled||this.readonly)return void(t.checked!==this.checked&&(t.checked=this.checked));const o=t.checked&&!this.checked;if(this.checked=t.checked,this.checked&&this.name&&!this.closest("sky-radio-group")){const e=Array.from(document.querySelectorAll("sky-radio"));for(const t of e)t!==this&&t.name===this.name&&(t.checked=!1)}o&&(this.dispatchEvent(new CustomEvent("radio-select",{detail:{value:this.value},bubbles:!0,composed:!0})),this.reemitNativeEvent("change",e),this.reemitNativeEvent("input",e),this.syncFormValue(),this.syncValidity())},this.handleKeydown=e=>{if(!(this.disabled||this.readonly||" "!==e.key&&"Enter"!==e.key)){e.preventDefault();const t=this.shadowRoot?.querySelector("input[type='radio']");t?.click()}},this.captureDefaultValue("")}static{this.shadowRootOptions={...i.shadowRootOptions,delegatesFocus:!0}}connectedCallback(){super.connectedCallback(),this.addEventListener("keydown",this.handleKeydown),this.hasAttribute("tabindex")||(this.tabIndex=this.disabled?-1:0)}disconnectedCallback(){this.removeEventListener("keydown",this.handleKeydown),super.disconnectedCallback()}updated(e){const t=this.shadowRoot?.querySelector("input[type='radio']");if(e.has("checked")){const o=this.shadowRoot?.querySelector(".radio-wrapper");o?.classList.toggle("checked",this.checked),t&&t.checked!==this.checked&&(t.checked=this.checked),void 0!==e.get("checked")&&(this.syncFormValue(),this.syncValidity())}(e.has("disabled")||e.has("readonly"))&&(t&&(t.disabled=this.disabled,t.readOnly=this.readonly),this.tabIndex=this.disabled?-1:0),e.has("color")&&this.style.setProperty("--radio-checked-color",l(this.color)),e.has("value")&&(this.syncFormValue(),this.syncValidity())}_slotHasMeaningfulContent(e){return e.assignedNodes({flatten:!0}).some(e=>e.nodeType===Node.ELEMENT_NODE||(e.textContent??"").trim().length>0)}getFormValue(){return this.checked?this.value:null}setValueFromFormState(e){this.checked="string"==typeof e&&e===this.value}getValidityAnchor(){return this.getNativeControl()||void 0}isEmpty(){return!this.checked}getNativeControl(){return this.shadowRoot?.querySelector("input[type='radio']")||null}onNativeValueMutated(e){const t=this.getNativeControl();t&&(this.checked=t.checked)}getCustomErrorMessage(){return this.validationErrors?.[0]||""}get validationErrors(){return this.required&&!this.checked?[this.requiredMessage]:[]}render(){return s`
89
+ <label
90
+ ?disabled=${this.disabled}
91
+ ?readonly=${this.readonly}
92
+ aria-disabled=${this.disabled?"true":"false"}
93
+ aria-readonly=${this.readonly?"true":"false"}
94
+ >
95
+ <input
96
+ type="radio"
97
+ .name=${this.name}
98
+ .value=${this.value}
99
+ .checked=${this.checked}
100
+ @change=${this.onNativeChange}
101
+ ?disabled=${this.disabled}
102
+ ?required=${this.required}
103
+ />
104
+ <div class="radio-wrapper"></div>
105
+ <slot @slotchange=${this._onSlotChange}></slot>
106
+ ${d(!this._hasMeaningfulSlot,()=>this.label)}
107
+ </label>
108
+ `}};e([r({type:String}),t("design:type",String)],c.prototype,"label",void 0),e([r({type:String}),t("design:type",String)],c.prototype,"value",void 0),e([r({type:Boolean,reflect:!0}),t("design:type",Boolean)],c.prototype,"checked",void 0),e([r({type:String}),t("design:type",String)],c.prototype,"color",void 0),e([a(),t("design:type",Object)],c.prototype,"_hasMeaningfulSlot",void 0),c=e([n("sky-radio"),t("design:paramtypes",[])],c);export{c as SkyRadio};
109
+ //# sourceMappingURL=sky-radio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sky-radio.js","sources":["../../src/sky-radio/sky-radio.ts"],"sourcesContent":[null],"names":["SkyRadio","FormControlBase","check","this","disabled","readonly","checked","syncFormValue","focusRadio","input","shadowRoot","querySelector","focus","styles","css","constructor","super","label","value","color","_hasMeaningfulSlot","_onSlotChange","e","slot","target","next","_slotHasMeaningfulContent","onNativeChange","currentTarget","becameChecked","name","closest","all","Array","from","document","querySelectorAll","r","dispatchEvent","CustomEvent","detail","bubbles","composed","reemitNativeEvent","syncValidity","handleKeydown","event","key","preventDefault","click","captureDefaultValue","shadowRootOptions","LitElement","delegatesFocus","connectedCallback","addEventListener","hasAttribute","tabIndex","disconnectedCallback","removeEventListener","updated","changed","has","wrapper","classList","toggle","undefined","get","readOnly","style","setProperty","resolveColor","slotEl","assignedNodes","flatten","some","n","nodeType","Node","ELEMENT_NODE","textContent","trim","length","getFormValue","setValueFromFormState","state","getValidityAnchor","getNativeControl","isEmpty","onNativeValueMutated","_native","getCustomErrorMessage","validationErrors","required","requiredMessage","render","html","when","__decorate","property","type","String","prototype","Boolean","reflect","customElement"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from "./sky-radio-group";
@@ -0,0 +1 @@
1
+ export * from './sky-radio-group.js';
@@ -0,0 +1,186 @@
1
+ import { FormControlBase, FormState } from "../helper/internals/form-control-base";
2
+ export type SkyRadioGroupLayout = "row" | "column";
3
+ export type SkyRadioGroupVariant = "default" | "highlight";
4
+ export type SkyRadioGroupValueChangedDetail = {
5
+ value: string;
6
+ };
7
+ export type SkyRadioGroupValidationErrorDetail = {
8
+ errors: string[];
9
+ };
10
+ export type SkyRadioGroupValueClearedDetail = {
11
+ value: "";
12
+ };
13
+ export type SkyRadioGroupIconClickDetail = {
14
+ position: "left" | "right";
15
+ eventType: string | null;
16
+ eventData: Event | null;
17
+ };
18
+ /**
19
+ * @element sky-radio-group
20
+ *
21
+ * @summary Accessible group container that coordinates a set of `sky-radio` options.
22
+ *
23
+ * @status stable
24
+ * @since 1.0.0
25
+ *
26
+ * @documentation https://library.sky-ui.com/components/radio
27
+ * @dependency sky-radio
28
+ *
29
+ * @uiVModel value value-changed
30
+ *
31
+ * @slot - Default slot for group content. When `label` is omitted or blank, the group runs in **slot-only** mode: no built-in label row (unless `icon-left` / `icon-right` are used), and the default slot is not forced into the internal radio flex layout—use it to compose custom UI (still place `<sky-radio>` children here for selection behavior).
32
+ * @slot icon-left - Optional leading action/icon area.
33
+ * @slot icon-right - Optional trailing action/icon area.
34
+ *
35
+ * @csspart wrapper - The outer interactive container (error/shadow styling hooks).
36
+ * @csspart group-label - The rendered label text (including prefix/suffix).
37
+ * @csspart container - The element that wraps the slotted radios.
38
+ * @csspart icon-left - The left icon/button container.
39
+ * @csspart icon-right - The right icon/button container.
40
+ * @csspart error - The error message element rendered below the wrapper.
41
+ *
42
+ * @property {string} name - Shared radio name applied to child `<sky-radio>` elements. Default: ""
43
+ * @property {string} value - Currently selected value. Default: ""
44
+ * @property {string} label - Optional group label text. Default: ""
45
+ * @property {SkyRadioGroupLayout} layout - Layout direction for radio options.
46
+ * @property {boolean} shadow - Enables bordered glass effect around the group.
47
+ * @property {boolean} force - Stacks header and options vertically in constrained layouts.
48
+ * @property {string[]} validationErrors - Current validation errors.
49
+ * @property {boolean} required - Requires one radio option to be selected.
50
+ * @property {boolean} validationActive - Activates validation state and messages.
51
+ * @property {string} requiredMessage - Validation message shown when selection is missing.
52
+ * @property {boolean} showErrors - Controls whether error messages are rendered.
53
+ * @property {string} prefix - Text rendered before the group label.
54
+ * @property {string} suffix - Text rendered after the group label.
55
+ * @property {string} prefixColor - CSS color for prefix text.
56
+ * @property {string} suffixColor - CSS color for suffix text.
57
+ * @property {boolean} disabled - Disables interaction for the group and children.
58
+ * @property {string} color - Checked-state color propagated to radios.
59
+ * @property {boolean} readonly - Makes the group read-only while preserving focusability.
60
+ * @property {SkyRadioGroupVariant} variant - Visual label style variant.
61
+ *
62
+ * @fires {CustomEvent<SkyRadioGroupValueChangedDetail>} value-changed - Fired when selected value changes.
63
+ * @fires {CustomEvent<SkyRadioGroupValidationErrorDetail>} validation-error - Fired after `validateInput()` completes.
64
+ * @fires {CustomEvent<SkyRadioGroupValueClearedDetail>} value-cleared - Fired when `reset()` clears selection.
65
+ * @fires {CustomEvent<SkyRadioGroupIconClickDetail>} left-icon-click - Fired when the left icon slot is clicked.
66
+ * @fires {CustomEvent<SkyRadioGroupIconClickDetail>} right-icon-click - Fired when the right icon slot is clicked.
67
+ * @fires {Event} change - Native change event for form compatibility.
68
+ * @fires {Event} input - Native input event for form compatibility.
69
+ * @method setValue Sets selected radio value programmatically.
70
+ * @method reset Clears selection and validation state.
71
+ *
72
+ * @Behavior
73
+ * - Listens to child `radio-select` events and keeps a single selected value.
74
+ * - Mirrors `name`, `disabled`, and `readonly` state to child radios.
75
+ * - Integrates with `FormControlBase` for form value and validation handling.
76
+ *
77
+ * @example
78
+ * ```html
79
+ * <sky-radio-group label="Notification Channel" name="channel" value="email" layout="column" required show-errors validation-active>
80
+ * <sky-radio value="email">Email</sky-radio>
81
+ * <sky-radio value="sms">SMS</sky-radio>
82
+ * <sky-radio value="push">Push Notification</sky-radio>
83
+ * </sky-radio-group>
84
+ * ```
85
+ * ```vue
86
+ * <template>
87
+ * <sky-radio-group label="Notification Channel" name="channel" value="email" layout="column" required show-errors validation-active>
88
+ * <sky-radio value="email">Email</sky-radio>
89
+ * <sky-radio value="sms">SMS</sky-radio>
90
+ * <sky-radio value="push">Push Notification</sky-radio>
91
+ * </sky-radio-group>
92
+ * </template>
93
+ * ```
94
+ * ```jsx
95
+ * export default function Demo() {
96
+ * return (
97
+ * <sky-radio-group label="Notification Channel" name="channel" value="email" layout="column" required show-errors validation-active>
98
+ * <sky-radio value="email">Email</sky-radio>
99
+ * <sky-radio value="sms">SMS</sky-radio>
100
+ * <sky-radio value="push">Push Notification</sky-radio>
101
+ * </sky-radio-group>
102
+ * );
103
+ * }
104
+ * ```
105
+ */
106
+ export declare class SkyRadioGroup extends FormControlBase {
107
+ /** Currently selected value. */
108
+ value: string;
109
+ setValue(value: string): void;
110
+ /** Optional group label text. */
111
+ label: string;
112
+ /** Layout direction for options: `row` or `column`. */
113
+ layout: SkyRadioGroupLayout;
114
+ /** Enables bordered glass effect around the group. */
115
+ shadow: boolean;
116
+ /** Stacks label/icons and options vertically for constrained widths. */
117
+ force: boolean;
118
+ /** Current validation errors. */
119
+ validationErrors: string[];
120
+ /** Whether a selection is required. */
121
+ required: boolean;
122
+ /** Whether validation state is active. */
123
+ validationActive: boolean;
124
+ /** Message to use when required validation fails. */
125
+ requiredMessage: string;
126
+ /** Whether to render the error text. */
127
+ showErrors: boolean;
128
+ /** Optional text prefix before the label. */
129
+ prefix: string;
130
+ /** Optional text suffix after the label. */
131
+ suffix: string;
132
+ /** Color for the label prefix text. */
133
+ prefixColor: string;
134
+ /** Color for the label suffix text. */
135
+ suffixColor: string;
136
+ /** Disables interaction for the whole group. */
137
+ disabled: boolean;
138
+ color: string;
139
+ readonly: boolean;
140
+ invalid: boolean;
141
+ variant: SkyRadioGroupVariant;
142
+ constructor();
143
+ static styles: import("lit").CSSResult;
144
+ static shadowRootOptions: {
145
+ delegatesFocus: boolean;
146
+ clonable?: boolean;
147
+ customElementRegistry?: CustomElementRegistry;
148
+ mode: ShadowRootMode;
149
+ serializable?: boolean;
150
+ slotAssignment?: SlotAssignmentMode;
151
+ };
152
+ firstUpdated(): void;
153
+ updated(changedProperties: Map<string, unknown>): void;
154
+ /** Handle a child `radio-select` event and update selection. */
155
+ private handleChange;
156
+ /** Validate required selection and surface errors. */
157
+ validateInput(value?: string | null): boolean;
158
+ focus(): void;
159
+ /** Clear selection and error state, and notify listeners. */
160
+ reset(): void;
161
+ /** Keep child checked states in sync with the group's `value`. */
162
+ private updateCheckedState;
163
+ /** Apply name/disabled/readonly down to children. */
164
+ private syncChildRadios;
165
+ private _radioSelectHandler;
166
+ connectedCallback(): void;
167
+ disconnectedCallback(): void;
168
+ /** Emit which icon was clicked (left/right). */
169
+ private handleIconClick;
170
+ /** Get the current value for form submission */
171
+ protected getFormValue(): FormState;
172
+ /** Set value from form state (e.g., form reset) */
173
+ protected setValueFromFormState(state: FormState): void;
174
+ /** Get the validity anchor (the first radio input) */
175
+ protected getValidityAnchor(): HTMLElement | undefined;
176
+ /** Check if empty (for required validation) */
177
+ protected isEmpty(): boolean;
178
+ /** Get the native control (first radio's input) */
179
+ protected getNativeControl(): HTMLElement | null;
180
+ /** Override to provide custom error messages */
181
+ protected getCustomErrorMessage(): string;
182
+ protected onFormReset(): void;
183
+ /** Built-in group label row (prop); whitespace-only counts as absent for slot-only mode. */
184
+ private get _usesBuiltinGroupLabel();
185
+ render(): import("lit-html").TemplateResult<1>;
186
+ }