@skf-design-system/ui-components 1.0.2-beta.0 → 1.0.2-beta.10

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 (297) hide show
  1. package/README.md +37 -9
  2. package/dist/components/accordion/accordion-item.component.d.ts +36 -0
  3. package/dist/components/accordion/accordion-item.component.js +98 -0
  4. package/dist/components/accordion/accordion-item.d.ts +3 -3
  5. package/dist/components/accordion/accordion-item.js +4 -5
  6. package/dist/components/accordion/accordion-item.styles.js +77 -0
  7. package/dist/components/accordion/accordion.component.d.ts +6 -10
  8. package/dist/components/accordion/accordion.component.js +9 -10
  9. package/dist/components/accordion/accordion.d.ts +0 -1
  10. package/dist/components/accordion/accordion.js +0 -2
  11. package/dist/components/alert/alert.component.d.ts +12 -10
  12. package/dist/components/alert/alert.component.js +59 -51
  13. package/dist/components/alert/alert.styles.js +50 -51
  14. package/dist/components/breadcrumb/breadcrumb-item.component.js +59 -0
  15. package/dist/components/{breadcrumb-item → breadcrumb}/breadcrumb-item.d.ts +2 -2
  16. package/dist/components/breadcrumb/breadcrumb-item.js +6 -0
  17. package/dist/components/breadcrumb/breadcrumb-item.styles.js +63 -0
  18. package/dist/components/breadcrumb/breadcrumb.component.d.ts +6 -3
  19. package/dist/components/breadcrumb/breadcrumb.component.js +65 -0
  20. package/dist/components/breadcrumb/breadcrumb.d.ts +2 -2
  21. package/dist/components/breadcrumb/breadcrumb.js +6 -0
  22. package/dist/components/breadcrumb/breadcrumb.styles.js +25 -0
  23. package/dist/components/button/button.component.d.ts +13 -10
  24. package/dist/components/button/button.component.js +69 -66
  25. package/dist/components/button/button.styles.d.ts +1 -2
  26. package/dist/components/button/button.styles.js +6 -5
  27. package/dist/components/card/card.component.d.ts +6 -1
  28. package/dist/components/card/card.component.js +46 -24
  29. package/dist/components/card/card.styles.js +31 -14
  30. package/dist/components/checkbox/checkbox.component.d.ts +14 -11
  31. package/dist/components/checkbox/checkbox.component.js +67 -69
  32. package/dist/components/checkbox/checkbox.styles.d.ts +1 -2
  33. package/dist/components/checkbox/checkbox.styles.js +2 -6
  34. package/dist/components/{date-picker/datepicker.calendar.component.d.ts → datepicker/datepicker-calendar.component.d.ts} +8 -1
  35. package/dist/components/{date-picker/datepicker.calendar.component.js → datepicker/datepicker-calendar.component.js} +109 -115
  36. package/dist/components/datepicker/datepicker-calendar.d.ts +8 -0
  37. package/dist/components/datepicker/datepicker-calendar.js +6 -0
  38. package/dist/components/{date-picker/datepicker.component.d.ts → datepicker/datepicker-popup.component.d.ts} +9 -20
  39. package/dist/components/datepicker/datepicker-popup.component.js +272 -0
  40. package/dist/components/datepicker/datepicker-popup.d.ts +8 -0
  41. package/dist/components/{date-picker/datepicker.helpers.d.ts → datepicker/datepicker-popup.helpers.d.ts} +3 -3
  42. package/dist/components/datepicker/datepicker-popup.helpers.js +83 -0
  43. package/dist/components/datepicker/datepicker-popup.js +6 -0
  44. package/dist/components/{date-picker/datepicker.styles.js → datepicker/datepicker-popup.styles.js} +3 -3
  45. package/dist/components/{date-picker-input/datepicker-input.component.d.ts → datepicker/datepicker.component.d.ts} +22 -14
  46. package/dist/components/datepicker/datepicker.component.js +455 -0
  47. package/dist/components/datepicker/datepicker.d.ts +8 -0
  48. package/dist/components/datepicker/datepicker.js +6 -0
  49. package/dist/components/dialog/dialog.component.d.ts +8 -6
  50. package/dist/components/dialog/dialog.component.js +67 -67
  51. package/dist/components/dialog/dialog.d.ts +2 -2
  52. package/dist/components/dialog/dialog.styles.js +4 -4
  53. package/dist/components/divider/divider.component.d.ts +3 -0
  54. package/dist/components/divider/divider.component.js +43 -22
  55. package/dist/components/divider/divider.styles.js +9 -9
  56. package/dist/components/drawer/drawer.component.d.ts +24 -12
  57. package/dist/components/drawer/drawer.component.js +87 -63
  58. package/dist/components/drawer/drawer.d.ts +2 -2
  59. package/dist/components/drawer/drawer.styles.js +47 -40
  60. package/dist/components/header/header.component.d.ts +7 -4
  61. package/dist/components/header/header.component.js +68 -55
  62. package/dist/components/header/header.d.ts +2 -2
  63. package/dist/components/header/header.styles.js +2 -2
  64. package/dist/components/heading/heading.component.d.ts +8 -6
  65. package/dist/components/heading/heading.component.js +52 -24
  66. package/dist/components/heading/heading.styles.js +34 -36
  67. package/dist/components/icon/icon.component.d.ts +15 -17
  68. package/dist/components/icon/icon.component.js +62 -43
  69. package/dist/components/icon/icon.styles.d.ts +1 -2
  70. package/dist/components/icon/icon.styles.js +60 -60
  71. package/dist/components/input/input.component.d.ts +34 -39
  72. package/dist/components/input/input.component.js +159 -153
  73. package/dist/components/input/input.controllers.d.ts +0 -1
  74. package/dist/components/input/input.controllers.js +14 -19
  75. package/dist/components/link/link.component.d.ts +20 -25
  76. package/dist/components/link/link.component.js +104 -107
  77. package/dist/components/link/link.styles.d.ts +1 -2
  78. package/dist/components/link/link.styles.js +54 -46
  79. package/dist/components/loader/loader.component.d.ts +6 -4
  80. package/dist/components/loader/loader.component.js +49 -42
  81. package/dist/components/loader/loader.styles.d.ts +1 -2
  82. package/dist/components/loader/loader.styles.js +34 -30
  83. package/dist/components/logo/logo.component.d.ts +8 -6
  84. package/dist/components/logo/logo.component.js +55 -51
  85. package/dist/components/logo/logo.styles.js +26 -16
  86. package/dist/components/menu/menu-item.component.d.ts +13 -0
  87. package/dist/components/menu/menu-item.component.js +13 -0
  88. package/dist/components/{menu-item → menu}/menu-item.d.ts +2 -2
  89. package/dist/components/menu/menu-item.styles.js +23 -0
  90. package/dist/components/menu/menu.component.d.ts +14 -8
  91. package/dist/components/menu/menu.component.js +10 -12
  92. package/dist/components/menu/menu.d.ts +2 -2
  93. package/dist/components/{nav-item → nav}/nav-item.component.d.ts +6 -4
  94. package/dist/components/nav/nav-item.component.js +57 -0
  95. package/dist/components/nav/nav-item.styles.js +43 -0
  96. package/dist/components/nav/nav.component.d.ts +9 -0
  97. package/dist/components/nav/nav.component.js +47 -21
  98. package/dist/components/nav/nav.d.ts +2 -2
  99. package/dist/components/nav/nav.styles.js +15 -9
  100. package/dist/components/popover/popover.component.d.ts +17 -6
  101. package/dist/components/popover/popover.component.js +22 -16
  102. package/dist/components/popover/popover.d.ts +2 -2
  103. package/dist/components/progress/progress.component.d.ts +4 -2
  104. package/dist/components/progress/progress.component.js +38 -35
  105. package/dist/components/progress/progress.d.ts +2 -2
  106. package/dist/components/progress/progress.styles.js +42 -35
  107. package/dist/components/radio/radio.component.d.ts +13 -9
  108. package/dist/components/radio/radio.component.js +96 -91
  109. package/dist/components/radio/radio.styles.js +1 -1
  110. package/dist/components/{segmented-button-item → segmented-button}/segmented-button-item.component.d.ts +4 -4
  111. package/dist/components/segmented-button/segmented-button-item.component.js +56 -0
  112. package/dist/components/{segmented-button-item → segmented-button}/segmented-button-item.d.ts +2 -2
  113. package/dist/components/segmented-button/segmented-button-item.js +6 -0
  114. package/dist/components/segmented-button/segmented-button-item.styles.js +62 -0
  115. package/dist/components/segmented-button/segmented-button.component.d.ts +0 -2
  116. package/dist/components/segmented-button/segmented-button.component.js +71 -0
  117. package/dist/components/segmented-button/segmented-button.d.ts +2 -2
  118. package/dist/components/segmented-button/segmented-button.js +6 -0
  119. package/dist/components/segmented-button/segmented-button.styles.js +16 -0
  120. package/dist/components/{select-option-group → select}/select-option-group.component.d.ts +4 -0
  121. package/dist/components/select/select-option-group.component.js +50 -0
  122. package/dist/components/{select-option-group → select}/select-option-group.d.ts +2 -2
  123. package/dist/components/select/select-option-group.style.js +24 -0
  124. package/dist/components/{select-option → select}/select-option.component.d.ts +16 -12
  125. package/dist/components/select/select-option.component.js +135 -0
  126. package/dist/components/select/select-option.styles.js +65 -0
  127. package/dist/components/select/select.component.d.ts +35 -25
  128. package/dist/components/select/select.component.js +126 -88
  129. package/dist/components/select/select.controllers.d.ts +1 -1
  130. package/dist/components/select/select.controllers.js +16 -18
  131. package/dist/components/select/select.styles.js +8 -2
  132. package/dist/components/select/stories/select.stories.icons.d.ts +7 -0
  133. package/dist/components/{stepper-item → stepper}/stepper-item.component.d.ts +1 -1
  134. package/dist/components/stepper/stepper-item.component.js +116 -0
  135. package/dist/components/{stepper-item → stepper}/stepper-item.d.ts +2 -2
  136. package/dist/components/{stepper-item → stepper}/stepper-item.styles.js +4 -4
  137. package/dist/components/stepper/stepper.component.d.ts +2 -2
  138. package/dist/components/stepper/stepper.component.js +17 -18
  139. package/dist/components/stepper/stepper.d.ts +2 -2
  140. package/dist/components/stepper/stepper.helpers.d.ts +1 -1
  141. package/dist/components/stepper/stepper.helpers.js +6 -7
  142. package/dist/components/switch/switch.component.d.ts +4 -2
  143. package/dist/components/switch/switch.component.js +64 -58
  144. package/dist/components/switch/switch.d.ts +2 -2
  145. package/dist/components/switch/switch.styles.js +1 -1
  146. package/dist/components/{tab-panel → tabs}/tab-panel.component.d.ts +1 -1
  147. package/dist/components/tabs/tab-panel.component.js +39 -0
  148. package/dist/components/{tab-panel → tabs}/tab-panel.d.ts +2 -2
  149. package/dist/components/{tab → tabs}/tab.component.d.ts +3 -3
  150. package/dist/components/{tab → tabs}/tab.component.js +18 -15
  151. package/dist/components/{tab → tabs}/tab.d.ts +2 -2
  152. package/dist/components/{tab → tabs}/tab.styles.js +2 -2
  153. package/dist/components/{tab-group/tab-group.component.d.ts → tabs/tabs.component.d.ts} +3 -4
  154. package/dist/components/{tab-group/tab-group.component.js → tabs/tabs.component.js} +36 -37
  155. package/dist/components/tabs/tabs.d.ts +8 -0
  156. package/dist/components/tabs/tabs.js +6 -0
  157. package/dist/components/{tab-group/tab-group.styles.js → tabs/tabs.styles.js} +16 -16
  158. package/dist/components/tag/tag.component.d.ts +20 -16
  159. package/dist/components/tag/tag.component.js +74 -65
  160. package/dist/components/tag/tag.d.ts +2 -2
  161. package/dist/components/tag/tag.styles.js +63 -50
  162. package/dist/components/textarea/textarea.component.d.ts +14 -13
  163. package/dist/components/textarea/textarea.component.js +77 -72
  164. package/dist/components/{toast-item → toast}/toast-item.d.ts +2 -0
  165. package/dist/components/{toast-item → toast}/toast-item.js +4 -0
  166. package/dist/components/toast/toast-item.styles.js +21 -0
  167. package/dist/components/{toast-wrapper → toast}/toast-wrapper.component.js +1 -1
  168. package/dist/components/toast/toast-wrapper.styles.d.ts +1 -0
  169. package/dist/components/toast/toast.component.d.ts +5 -4
  170. package/dist/components/toast/toast.component.js +16 -16
  171. package/dist/components/toast/toast.singleton.d.ts +5 -5
  172. package/dist/components/toast/toast.singleton.js +28 -29
  173. package/dist/components/tooltip/tooltip.component.d.ts +11 -3
  174. package/dist/components/tooltip/tooltip.component.js +18 -9
  175. package/dist/components/tooltip/tooltip.d.ts +2 -2
  176. package/dist/custom-elements.json +2202 -1720
  177. package/dist/index.d.ts +19 -12
  178. package/dist/index.js +108 -89
  179. package/dist/internal/base-classes/popover/popover.base.d.ts +30 -6
  180. package/dist/internal/base-classes/popover/popover.base.js +83 -69
  181. package/dist/internal/base-classes/popover/popover.styles.js +4 -5
  182. package/dist/internal/components/formBase.d.ts +1 -0
  183. package/dist/internal/components/formBase.js +11 -19
  184. package/dist/internal/components/hint/hint.component.d.ts +6 -2
  185. package/dist/internal/components/hint/hint.component.js +47 -20
  186. package/dist/internal/components/hint/hint.styles.d.ts +1 -2
  187. package/dist/internal/components/hint/hint.styles.js +30 -26
  188. package/dist/internal/components/skf-element.d.ts +1 -3
  189. package/dist/internal/components/skf-element.js +4 -9
  190. package/dist/internal/constants/iconSeverity.d.ts +3 -2
  191. package/dist/internal/constants/iconSeverity.js +2 -3
  192. package/dist/internal/controllers/popover.controller.d.ts +2 -0
  193. package/dist/internal/controllers/popover.controller.js +11 -14
  194. package/dist/internal/helpers/hintSeverity.d.ts +2 -2
  195. package/dist/internal/helpers/hintSeverity.js +1 -1
  196. package/dist/internal/helpers/stateMap.d.ts +14 -0
  197. package/dist/internal/helpers/stateMap.js +68 -0
  198. package/dist/internal/helpers/uuid.d.ts +8 -10
  199. package/dist/internal/helpers/uuid.js +4 -11
  200. package/dist/internal/helpers/watch.d.ts +1 -1
  201. package/dist/internal/helpers/watch.js +12 -12
  202. package/dist/internal/templates/asterisk.d.ts +1 -1
  203. package/dist/internal/templates/asterisk.js +4 -4
  204. package/dist/internal/types/formField.d.ts +1 -1
  205. package/dist/internal/types.d.ts +22 -0
  206. package/dist/styles/component.styles.d.ts +1 -2
  207. package/dist/styles/component.styles.js +38 -37
  208. package/dist/styles/global-alt.css +1 -0
  209. package/dist/styles/global.css +1 -1
  210. package/dist/translations/en.d.ts +3 -0
  211. package/dist/translations/en.js +27 -0
  212. package/dist/translations/es.d.ts +3 -0
  213. package/dist/translations/es.js +27 -0
  214. package/dist/translations/index.d.ts +4 -0
  215. package/dist/translations/pt.d.ts +3 -0
  216. package/dist/translations/pt.js +27 -0
  217. package/dist/translations/sv.d.ts +3 -0
  218. package/dist/translations/sv.js +27 -0
  219. package/dist/types/jsx/custom-element-jsx.d.ts +2031 -927
  220. package/dist/types/vue/index.d.ts +357 -324
  221. package/dist/utilities/localize.d.ts +28 -0
  222. package/dist/utilities/localize.js +13 -0
  223. package/dist/vscode.html-custom-data.json +360 -1241
  224. package/dist/web-types.json +932 -805
  225. package/package.json +38 -52
  226. package/dist/components/accordion/accordion.test.d.ts +0 -1
  227. package/dist/components/checkbox/checkbox.test.d.ts +0 -1
  228. package/dist/components/collapse/collapse.component.d.ts +0 -40
  229. package/dist/components/collapse/collapse.component.js +0 -86
  230. package/dist/components/collapse/collapse.d.ts +0 -8
  231. package/dist/components/collapse/collapse.js +0 -6
  232. package/dist/components/collapse/collapse.styles.d.ts +0 -2
  233. package/dist/components/collapse/collapse.styles.js +0 -77
  234. package/dist/components/collapse/collapse.test.d.ts +0 -1
  235. package/dist/components/date-picker/datepicker.component.js +0 -261
  236. package/dist/components/date-picker/datepicker.d.ts +0 -10
  237. package/dist/components/date-picker/datepicker.helpers.js +0 -76
  238. package/dist/components/date-picker/datepicker.js +0 -8
  239. package/dist/components/date-picker-input/datepicker-input.component.js +0 -441
  240. package/dist/components/date-picker-input/datepicker-input.d.ts +0 -8
  241. package/dist/components/date-picker-input/datepicker-input.js +0 -6
  242. package/dist/components/input/input.test.d.ts +0 -1
  243. package/dist/components/menu-item/menu-item.component.d.ts +0 -25
  244. package/dist/components/menu-item/menu-item.component.js +0 -13
  245. package/dist/components/menu-item/menu-item.styles.js +0 -19
  246. package/dist/components/nav-item/nav-item.component.js +0 -38
  247. package/dist/components/nav-item/nav-item.styles.js +0 -39
  248. package/dist/components/radio/radio.test.d.ts +0 -1
  249. package/dist/components/select-option/select-option.component.js +0 -123
  250. package/dist/components/select-option/select-option.styles.js +0 -53
  251. package/dist/components/select-option-group/select-option-group.component.js +0 -31
  252. package/dist/components/select-option-group/select-option-group.style.js +0 -18
  253. package/dist/components/stepper-item/stepper-item.component.js +0 -113
  254. package/dist/components/switch/switch.test.d.ts +0 -1
  255. package/dist/components/tab-group/tab-group.d.ts +0 -8
  256. package/dist/components/tab-group/tab-group.js +0 -6
  257. package/dist/components/tab-panel/tab-panel.component.js +0 -36
  258. package/dist/components/toast-item/toast-item.styles.js +0 -18
  259. package/dist/internal/constants/heading.d.ts +0 -2
  260. package/dist/internal/playwright/index.d.ts +0 -1
  261. /package/dist/components/{breadcrumb-item/breadcrumb-item.styles.d.ts → accordion/accordion-item.styles.d.ts} +0 -0
  262. /package/dist/components/{breadcrumb-item → breadcrumb}/breadcrumb-item.component.d.ts +0 -0
  263. /package/dist/components/{date-picker/datepicker.calendar.styles.d.ts → breadcrumb/breadcrumb-item.styles.d.ts} +0 -0
  264. /package/dist/components/{date-picker/datepicker.styles.d.ts → datepicker/datepicker-calendar.styles.d.ts} +0 -0
  265. /package/dist/components/{date-picker/datepicker.calendar.styles.js → datepicker/datepicker-calendar.styles.js} +0 -0
  266. /package/dist/components/{menu-item/menu-item.styles.d.ts → datepicker/datepicker-popup.styles.d.ts} +0 -0
  267. /package/dist/components/{date-picker-input/datepicker-input.helpers.d.ts → datepicker/datepicker.helpers.d.ts} +0 -0
  268. /package/dist/components/{date-picker-input/datepicker-input.helpers.js → datepicker/datepicker.helpers.js} +0 -0
  269. /package/dist/components/{date-picker-input/datepicker-input.styles.d.ts → datepicker/datepicker.styles.d.ts} +0 -0
  270. /package/dist/components/{date-picker-input/datepicker-input.styles.js → datepicker/datepicker.styles.js} +0 -0
  271. /package/dist/components/{menu-item → menu}/menu-item.js +0 -0
  272. /package/dist/components/{nav-item/nav-item.styles.d.ts → menu/menu-item.styles.d.ts} +0 -0
  273. /package/dist/components/{nav-item → nav}/nav-item.d.ts +0 -0
  274. /package/dist/components/{nav-item → nav}/nav-item.js +0 -0
  275. /package/dist/components/{segmented-button-item/segmented-button-item.styles.d.ts → nav/nav-item.styles.d.ts} +0 -0
  276. /package/dist/components/{select-option-group/select-option-group.style.d.ts → segmented-button/segmented-button-item.styles.d.ts} +0 -0
  277. /package/dist/components/{select-option-group → select}/select-option-group.js +0 -0
  278. /package/dist/components/{select-option/select-option.styles.d.ts → select/select-option-group.style.d.ts} +0 -0
  279. /package/dist/components/{select-option → select}/select-option.controllers.d.ts +0 -0
  280. /package/dist/components/{select-option → select}/select-option.d.ts +0 -0
  281. /package/dist/components/{select-option → select}/select-option.js +0 -0
  282. /package/dist/components/{stepper-item/stepper-item.styles.d.ts → select/select-option.styles.d.ts} +0 -0
  283. /package/dist/components/{stepper-item → stepper}/stepper-item.js +0 -0
  284. /package/dist/components/{tab-group/tab-group.styles.d.ts → stepper/stepper-item.styles.d.ts} +0 -0
  285. /package/dist/components/{tab-panel → tabs}/tab-panel.js +0 -0
  286. /package/dist/components/{tab-panel → tabs}/tab-panel.styles.d.ts +0 -0
  287. /package/dist/components/{tab-panel → tabs}/tab-panel.styles.js +0 -0
  288. /package/dist/components/{tab → tabs}/tab.js +0 -0
  289. /package/dist/components/{tab → tabs}/tab.styles.d.ts +0 -0
  290. /package/dist/components/{toast-wrapper/toast-wrapper.styles.d.ts → tabs/tabs.styles.d.ts} +0 -0
  291. /package/dist/components/{toast-item → toast}/toast-item.component.d.ts +0 -0
  292. /package/dist/components/{toast-item → toast}/toast-item.component.js +0 -0
  293. /package/dist/components/{toast-item → toast}/toast-item.styles.d.ts +0 -0
  294. /package/dist/components/{toast-wrapper → toast}/toast-wrapper.component.d.ts +0 -0
  295. /package/dist/components/{toast-wrapper → toast}/toast-wrapper.d.ts +0 -0
  296. /package/dist/components/{toast-wrapper → toast}/toast-wrapper.js +0 -0
  297. /package/dist/components/{toast-wrapper → toast}/toast-wrapper.styles.js +0 -0
@@ -0,0 +1,56 @@
1
+ import "../icon/icon.js";
2
+ import { SkfElement as n } from "../../internal/components/skf-element.js";
3
+ import { componentStyles as f } from "../../styles/component.styles.js";
4
+ import { LitElement as u, nothing as m, html as c } from "lit";
5
+ import { property as r, state as v } from "lit/decorators.js";
6
+ import { ifDefined as l } from "lit/directives/if-defined.js";
7
+ import { styles as y } from "./segmented-button-item.styles.js";
8
+ var b = Object.defineProperty, i = (a, p, d, k) => {
9
+ for (var e = void 0, o = a.length - 1, h; o >= 0; o--)
10
+ (h = a[o]) && (e = h(p, d, e) || e);
11
+ return e && b(p, d, e), e;
12
+ };
13
+ const s = class s extends n {
14
+ constructor() {
15
+ super(), this.disabled = !1, this.selected = !1, this.value = "", this.isMultiple = !1, this._handleClick = () => {
16
+ this.emit("skf-segmented-button-item-select", {
17
+ detail: {
18
+ item: this
19
+ }
20
+ });
21
+ }, this.addEventListener("click", this._handleClick);
22
+ }
23
+ render() {
24
+ return c`
25
+ <button
26
+ ?disabled=${this.disabled}
27
+ aria-checked=${l(this.isMultiple ? void 0 : this.selected ? "true" : "false")}
28
+ aria-pressed=${l(this.isMultiple ? this.selected ? "true" : "false" : void 0)}
29
+ id="root"
30
+ role=${l(this.isMultiple ? void 0 : "radio")}
31
+ type="button"
32
+ value=${this.value}
33
+ >
34
+ ${this.selected ? c`<skf-icon color="emphasized" name="check" size="sm"></skf-icon>` : m}
35
+ <slot></slot>
36
+ </button>
37
+ `;
38
+ }
39
+ };
40
+ s.styles = [f, y], s.shadowRootOptions = { ...u.shadowRootOptions, delegatesFocus: !0 };
41
+ let t = s;
42
+ i([
43
+ r({ type: Boolean, reflect: !0 })
44
+ ], t.prototype, "disabled");
45
+ i([
46
+ r({ type: Boolean, reflect: !0 })
47
+ ], t.prototype, "selected");
48
+ i([
49
+ r({ reflect: !0 })
50
+ ], t.prototype, "value");
51
+ i([
52
+ v()
53
+ ], t.prototype, "isMultiple");
54
+ export {
55
+ t as SkfSegmentedButtonItem
56
+ };
@@ -1,5 +1,5 @@
1
- import { SkfSegmentedButtonItem } from './segmented-button-item.component';
2
- export * from './segmented-button-item.component';
1
+ import { SkfSegmentedButtonItem } from './segmented-button-item.component.js';
2
+ export * from './segmented-button-item.component.js';
3
3
  export default SkfSegmentedButtonItem;
4
4
  declare global {
5
5
  interface HTMLElementTagNameMap {
@@ -0,0 +1,6 @@
1
+ import { SkfSegmentedButtonItem as e } from "./segmented-button-item.component.js";
2
+ e.define("skf-segmented-button-item");
3
+ export {
4
+ e as SkfSegmentedButtonItem,
5
+ e as default
6
+ };
@@ -0,0 +1,62 @@
1
+ import { css as e } from "lit";
2
+ const o = e`
3
+ @layer components {
4
+ :host {
5
+ display: contents;
6
+ }
7
+
8
+ #root {
9
+ align-items: center;
10
+ background-color: var(--_skf-segmented-button-item-bg, transparent);
11
+ border: var(--skf-border-width-md) solid var(--_skf-segmented-button-item-border, transparent);
12
+ border-radius: 4px; /* TODO: Missing token */
13
+ display: flex;
14
+ flex: 1;
15
+ font-size: var(--skf-font-size-75);
16
+ font-weight: var(--skf-font-weight-bold);
17
+ gap: var(--skf-spacing-25);
18
+ justify-content: center;
19
+ min-inline-size: 0;
20
+ padding-inline: var(--skf-spacing-50);
21
+ position: relative;
22
+
23
+ :host(:not(:last-of-type)) &::after {
24
+ background-color: var(--skf-border-color-primary);
25
+ block-size: calc(100% - 5px);
26
+ content: '';
27
+ inline-size: 1px;
28
+
29
+ /* inset-inline-end: calc((var(--skf-spacing-75) + 2px + var(--skf-border-width-md) * 2) / -2); */
30
+ inset-inline-end: -9px;
31
+ position: absolute;
32
+ }
33
+
34
+ &:disabled {
35
+ color: var(--skf-interactive-text-color-disabled);
36
+ font-weight: 500;
37
+ }
38
+
39
+ &:is([aria-checked='true'], [aria-pressed='true']) {
40
+ --_skf-segmented-button-item-border: var(--skf-border-color-emphasized);
41
+ }
42
+
43
+ &:hover:not(:disabled) {
44
+ --_skf-segmented-button-item-bg: var(--skf-interactive-bg-color-secondary-hover);
45
+ }
46
+
47
+ &:is(:focus, :active):not(:disabled) {
48
+ --_skf-segmented-button-item-bg: var(--skf-interactive-bg-color-secondary-active);
49
+ }
50
+ }
51
+
52
+ slot {
53
+ display: block;
54
+ overflow: hidden;
55
+ text-overflow: ellipsis;
56
+ white-space: nowrap;
57
+ }
58
+ }
59
+ `;
60
+ export {
61
+ o as styles
62
+ };
@@ -11,8 +11,6 @@ import { type CSSResultGroup } from 'lit';
11
11
  */
12
12
  export declare class SkfSegmentedButton extends SkfElement {
13
13
  static styles: CSSResultGroup;
14
- /** Sets the default selected control */
15
- defaultSelected: number;
16
14
  /** If true, allowes multiple items to be selected */
17
15
  multiple: boolean;
18
16
  /** @internal */
@@ -0,0 +1,71 @@
1
+ import { SkfElement as d } from "../../internal/components/skf-element.js";
2
+ import { componentStyles as a } from "../../styles/component.styles.js";
3
+ import { html as c } from "lit";
4
+ import { property as u, state as f, queryAssignedElements as p } from "lit/decorators.js";
5
+ import { ifDefined as g } from "lit/directives/if-defined.js";
6
+ import { styles as v } from "./segmented-button.styles.js";
7
+ var y = Object.defineProperty, n = (m, s, t, i) => {
8
+ for (var e = void 0, o = m.length - 1, r; o >= 0; o--)
9
+ (r = m[o]) && (e = r(s, t, e) || e);
10
+ return e && y(s, t, e), e;
11
+ };
12
+ const h = class h extends d {
13
+ constructor() {
14
+ super(...arguments), this.multiple = !1, this.value = "", this._handleSegmentedButtonItemSelected = (s) => {
15
+ const t = s.detail.item;
16
+ this.multiple && (t.selected = !t.selected), this.value = "";
17
+ let i = [];
18
+ this.items.forEach((e) => {
19
+ this.multiple ? e.selected && (i = [...i, e.value], this.value = i.join()) : e !== t ? e.selected = !1 : (e.selected = !0, this.value = e.value);
20
+ });
21
+ }, this._handleSlotChange = () => {
22
+ this.items.forEach((s) => {
23
+ if (s.isMultiple = this.multiple, !this.multiple) {
24
+ const t = this.items.filter((i) => i.selected);
25
+ t.length > 1 && t.slice(0, -1).forEach((i) => i.selected = !1);
26
+ }
27
+ });
28
+ }, this._handleKeyDown = (s) => {
29
+ ["ArrowLeft", "ArrowRight"].includes(s.key) && this._getKeyDownNextItem(s.key)?.focus({ preventScroll: !0 });
30
+ };
31
+ }
32
+ firstUpdated() {
33
+ this.addEventListener(
34
+ "skf-segmented-button-item-select",
35
+ this._handleSegmentedButtonItemSelected
36
+ );
37
+ }
38
+ /** @internal */
39
+ _getKeyDownNextItem(s) {
40
+ const t = this.items.findIndex((r) => r === document.activeElement);
41
+ if (t === -1) return;
42
+ const e = (t + (s === "ArrowRight" ? 1 : -1)) % this.items.length;
43
+ return this.items[e < 0 ? this.items.length - 1 : e];
44
+ }
45
+ render() {
46
+ return c`
47
+ <div
48
+ @keydown=${this._handleKeyDown}
49
+ aria-label=${g(this.ariaLabel ?? "Segmented button label")}
50
+ id="root"
51
+ role=${this.multiple ? "group" : "radiogroup"}
52
+ >
53
+ <slot @slotchange=${this._handleSlotChange}></slot>
54
+ </div>
55
+ `;
56
+ }
57
+ };
58
+ h.styles = [a, v];
59
+ let l = h;
60
+ n([
61
+ u({ type: Boolean })
62
+ ], l.prototype, "multiple");
63
+ n([
64
+ f()
65
+ ], l.prototype, "value");
66
+ n([
67
+ p()
68
+ ], l.prototype, "items");
69
+ export {
70
+ l as SkfSegmentedButton
71
+ };
@@ -1,5 +1,5 @@
1
- import { SkfSegmentedButton } from './segmented-button.component';
2
- export * from './segmented-button.component';
1
+ import { SkfSegmentedButton } from './segmented-button.component.js';
2
+ export * from './segmented-button.component.js';
3
3
  export default SkfSegmentedButton;
4
4
  declare global {
5
5
  interface HTMLElementTagNameMap {
@@ -0,0 +1,6 @@
1
+ import { SkfSegmentedButton as e } from "./segmented-button.component.js";
2
+ e.define("skf-segmented-button");
3
+ export {
4
+ e as SkfSegmentedButton,
5
+ e as default
6
+ };
@@ -0,0 +1,16 @@
1
+ import { css as r } from "lit";
2
+ const o = r`
3
+ @layer components {
4
+ #root {
5
+ block-size: var(--skf-size-44);
6
+ border: var(--skf-border-width-sm) solid var(--skf-border-color-primary);
7
+ border-radius: 6px; /* TODO: Missing token */
8
+ display: flex;
9
+ gap: var(--skf-spacing-75);
10
+ padding: var(--skf-spacing-25);
11
+ }
12
+ }
13
+ `;
14
+ export {
15
+ o as styles
16
+ };
@@ -10,7 +10,11 @@ import { type CSSResultGroup } from 'lit';
10
10
  * @tagname skf-select-option-group
11
11
  */
12
12
  export declare class SkfSelectOptionGroup extends SkfElement {
13
+ #private;
13
14
  static styles: CSSResultGroup;
14
15
  label: string;
16
+ small: boolean;
17
+ /** @internal */
18
+ _handleStateChange(): void;
15
19
  render(): import("lit").TemplateResult<1>;
16
20
  }
@@ -0,0 +1,50 @@
1
+ var b = (t) => {
2
+ throw TypeError(t);
3
+ };
4
+ var d = (t, e, s) => e.has(t) || b("Cannot " + s);
5
+ var h = (t, e, s) => (d(t, e, "read from private field"), s ? s.call(t) : e.get(t)), n = (t, e, s) => e.has(t) ? b("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, s), f = (t, e, s, r) => (d(t, e, "write to private field"), r ? r.call(t, s) : e.set(t, s), s);
6
+ import { SkfElement as u } from "../../internal/components/skf-element.js";
7
+ import { stateMap as y } from "../../internal/helpers/stateMap.js";
8
+ import { watch as _ } from "../../internal/helpers/watch.js";
9
+ import { componentStyles as g } from "../../styles/component.styles.js";
10
+ import { html as P } from "lit";
11
+ import { property as w, state as C } from "lit/decorators.js";
12
+ import { styles as D } from "./select-option-group.style.js";
13
+ var j = Object.defineProperty, x = Object.getOwnPropertyDescriptor, v = (t, e, s, r) => {
14
+ for (var l = r > 1 ? void 0 : r ? x(e, s) : e, i = t.length - 1, p; i >= 0; i--)
15
+ (p = t[i]) && (l = (r ? p(e, s, l) : p(l)) || l);
16
+ return r && l && j(e, s, l), l;
17
+ }, o, m;
18
+ const c = class c extends u {
19
+ constructor() {
20
+ super(...arguments);
21
+ n(this, o);
22
+ n(this, m);
23
+ f(this, o, this.attachInternals()), f(this, m, h(this, o).states), this.label = "Default label", this.small = !1;
24
+ }
25
+ _handleStateChange() {
26
+ y(h(this, m), "small").set(this.small);
27
+ }
28
+ render() {
29
+ return P`
30
+ <div role="group">
31
+ <div id="label">${this.label}</div>
32
+ <slot></slot>
33
+ </div>
34
+ `;
35
+ }
36
+ };
37
+ o = new WeakMap(), m = new WeakMap(), c.styles = [g, D];
38
+ let a = c;
39
+ v([
40
+ w({ reflect: !0 })
41
+ ], a.prototype, "label", 2);
42
+ v([
43
+ C()
44
+ ], a.prototype, "small", 2);
45
+ v([
46
+ _("small")
47
+ ], a.prototype, "_handleStateChange", 1);
48
+ export {
49
+ a as SkfSelectOptionGroup
50
+ };
@@ -1,5 +1,5 @@
1
- import { SkfSelectOptionGroup } from './select-option-group.component';
2
- export * from './select-option-group.component';
1
+ import { SkfSelectOptionGroup } from './select-option-group.component.js';
2
+ export * from './select-option-group.component.js';
3
3
  export default SkfSelectOptionGroup;
4
4
  declare global {
5
5
  interface HTMLElementTagNameMap {
@@ -0,0 +1,24 @@
1
+ import { css as e } from "lit";
2
+ const t = e`
3
+ @layer components {
4
+ @layer base {
5
+ #label {
6
+ --_skf-select-option-group-height: var(--skf-size-44);
7
+
8
+ align-items: center;
9
+ block-size: var(--_skf-select-option-group-height);
10
+ display: flex;
11
+ font-weight: var(--skf-font-weight-bold);
12
+ }
13
+ }
14
+
15
+ @layer mods {
16
+ :host(:state(small)) #label {
17
+ --_skf-select-option-group-height: var(--skf-size-32);
18
+ }
19
+ }
20
+ }
21
+ `;
22
+ export {
23
+ t as styles
24
+ };
@@ -1,26 +1,27 @@
1
+ import '../icon/icon.js';
1
2
  import { SkfElement } from '../../internal/components/skf-element.js';
2
- import type { SeverityFgColor } from '@skf-design-system/ui-assets';
3
+ import type { Icon, IconColor } from '../../internal/types.js';
3
4
  import { type CSSResultGroup } from 'lit';
4
- import '../icon/icon';
5
- import { SkfIcon } from '../icon/icon';
6
- import type { SkfSelect } from '../select/select.component.js';
5
+ import type { SkfSelect } from './select.component.js';
7
6
  export interface SelectOptionEvent {
8
7
  value: string | null;
9
8
  option: SkfSelectOption;
10
9
  }
11
10
  /**
12
11
  * The `<skf-select-option>` is a component is used nested in a skf-select or skf-select-option-group.
12
+ * It represents an individual option in a select dropdown.
13
13
  *
14
14
  * @documentation See [InVision DSM](https://skf.invisionapp.com/dsm/ab-skf/4-web-applications/nav/5fa7caf78c01200018354495/asset/6229d63d9fe16020a60657e5) for design principles
15
15
  *
16
16
  * @slot - The option's text content
17
17
  * @slot icon - The option's slot for icon or custom meta information (svg).
18
18
  *
19
- * @event skf-select-option:select - {detail: { value: string | null, option: SkfSelectOption }} Fires when the option is selected/deselected.
19
+ * @event skf-select-option-select - {detail: { value: string | null, option: SkfSelectOption }} Fires when the option is selected/deselected.
20
20
  *
21
21
  * @tagname skf-select-option
22
22
  */
23
23
  export declare class SkfSelectOption extends SkfElement {
24
+ #private;
24
25
  static styles: CSSResultGroup;
25
26
  static shadowRootOptions: {
26
27
  delegatesFocus: boolean;
@@ -37,33 +38,36 @@ export declare class SkfSelectOption extends SkfElement {
37
38
  * Do not use directly, instead use `setSelectedDiscrete`.
38
39
  * If true, instantly sets/unsets the selected property, without engaging ui feedback. Primarily for unselecting previous option in single select.
39
40
  */
40
- _shortcutUpdate?: boolean;
41
+ _shortcutUpdate: boolean;
41
42
  /** If true, prevents interaction with the option */
42
- disabled?: boolean;
43
+ disabled: boolean;
43
44
  /** If defined, set an icon */
44
- icon?: SkfIcon['name'];
45
+ icon?: Icon;
45
46
  /** If defined, sets provided color on the icon */
46
- iconColor?: SeverityFgColor;
47
+ iconColor?: IconColor;
47
48
  /** If true, sets the option as selected */
48
- selected?: boolean;
49
+ selected: boolean;
49
50
  /** If defined, sets a short label */
50
51
  shortLabel?: string;
51
52
  /** The option's label text (equivalent to the tags textContent) */
52
53
  set text(slottedTextContent: string);
53
54
  get text(): string;
54
- /** Returns or sets the tags value. If value is omitted, defaults to the tags text. */
55
+ /** Returns or sets the option value. If value is omitted, defaults to the tags slotted text. */
55
56
  set value(optionValue: string);
56
57
  get value(): string;
58
+ small: boolean;
57
59
  /** @internal */
58
60
  private _assignedNodes?;
59
61
  constructor();
60
62
  updated(changedProperties: Map<string | number | symbol, unknown>): void;
63
+ /** @internal */
64
+ _handleStateChange(): void;
61
65
  /**
62
66
  * @internal
63
67
  * This internal setter is to change selected state without emitting events triggering other side effects,
64
68
  * e.g deselecting previous selected in a single select. Is used by skf-select in single select mode.
65
69
  */
66
- set setSelectedDiscrete(value: boolean);
70
+ set setSelectedDiscrete(isSelected: boolean);
67
71
  /**
68
72
  * @internal
69
73
  * Returns the slotted content as a string. If no slotted content, returns an empty string.
@@ -0,0 +1,135 @@
1
+ var y = (e) => {
2
+ throw TypeError(e);
3
+ };
4
+ var b = (e, s, t) => s.has(e) || y("Cannot " + t);
5
+ var u = (e, s, t) => (b(e, s, "read from private field"), t ? t.call(e) : s.get(e)), f = (e, s, t) => s.has(e) ? y("Cannot add the same private member more than once") : s instanceof WeakSet ? s.add(e) : s.set(e, t), m = (e, s, t, i) => (b(e, s, "write to private field"), i ? i.call(e, t) : s.set(e, t), t);
6
+ import "../icon/icon.js";
7
+ import { SkfElement as C } from "../../internal/components/skf-element.js";
8
+ import { stateMap as g } from "../../internal/helpers/stateMap.js";
9
+ import { watch as x } from "../../internal/helpers/watch.js";
10
+ import { componentStyles as N } from "../../styles/component.styles.js";
11
+ import { LitElement as T, html as _ } from "lit";
12
+ import { property as a, state as $, queryAssignedNodes as O } from "lit/decorators.js";
13
+ import { ifDefined as v } from "lit/directives/if-defined.js";
14
+ import { styles as E } from "./select-option.styles.js";
15
+ var k = Object.defineProperty, w = Object.getOwnPropertyDescriptor, r = (e, s, t, i) => {
16
+ for (var l = i > 1 ? void 0 : i ? w(s, t) : s, d = e.length - 1, p; d >= 0; d--)
17
+ (p = e[d]) && (l = (i ? p(s, t, l) : p(l)) || l);
18
+ return i && l && k(s, t, l), l;
19
+ }, n, h;
20
+ const c = class c extends C {
21
+ constructor() {
22
+ super();
23
+ f(this, n);
24
+ f(this, h);
25
+ m(this, n, this.attachInternals()), m(this, h, u(this, n).states), this._parent = null, this._shortcutUpdate = !1, this.disabled = !1, this.selected = !1, this.small = !1, this._handleClick = (t) => {
26
+ t.stopPropagation(), this.selected = !this.selected;
27
+ }, this._shortcutUpdate = !1;
28
+ }
29
+ set text(t) {
30
+ this.textContent = t.trim();
31
+ }
32
+ get text() {
33
+ return this.textContent?.trim() ?? "";
34
+ }
35
+ set value(t) {
36
+ this._value = t.trim();
37
+ }
38
+ get value() {
39
+ return !this._value && this._slotContainsOnlyText ? this._getSlottedContent().trim() : this._value?.trim() ?? this.text;
40
+ }
41
+ updated(t) {
42
+ super.updated(t), this._parent ??= this.closest("skf-select"), this._parent || console.warn("skf-select-option must be used inside a skf-select or skf-select-option-group"), t.has("selected") && !this._shortcutUpdate && this.emit("skf-select-option-select", {
43
+ detail: {
44
+ value: this.selected ? this.value : null,
45
+ option: this
46
+ }
47
+ });
48
+ }
49
+ _handleStateChange() {
50
+ g(u(this, h), "small").set(this.small);
51
+ }
52
+ /**
53
+ * @internal
54
+ * This internal setter is to change selected state without emitting events triggering other side effects,
55
+ * e.g deselecting previous selected in a single select. Is used by skf-select in single select mode.
56
+ */
57
+ set setSelectedDiscrete(t) {
58
+ (async () => {
59
+ this._shortcutUpdate = !0, this.selected = t, await this.updateComplete, this._shortcutUpdate = !1;
60
+ })();
61
+ }
62
+ /**
63
+ * @internal
64
+ * Returns the slotted content as a string. If no slotted content, returns an empty string.
65
+ */
66
+ _getSlottedContent() {
67
+ return this._assignedNodes ? [...this._assignedNodes].map((t) => t.nodeType === Node.ELEMENT_NODE ? t.outerHTML : t.textContent).join() : "";
68
+ }
69
+ /** @internal */
70
+ get _slotContainsOnlyText() {
71
+ return this._assignedNodes ? [...this._assignedNodes].every(
72
+ (i) => i.nodeType === Node.TEXT_NODE && i.textContent?.trim() !== ""
73
+ ) : "";
74
+ }
75
+ render() {
76
+ return _`
77
+ <button
78
+ ?disabled=${this.disabled}
79
+ @click=${this._handleClick}
80
+ aria-selected=${this.selected ? "true" : "false"}
81
+ role="option"
82
+ >
83
+ <skf-icon id="icon-check" name="check" size="sm"></skf-icon>
84
+ <slot>${this.text}</slot>
85
+ <div id="adornments">
86
+ <slot name="icon">
87
+ ${this.icon && _`
88
+ <skf-icon
89
+ color=${v(this.iconColor)}
90
+ data-color=${v((this.disabled || !this.iconColor) && "custom")}
91
+ name=${this.icon}
92
+ ></skf-icon>
93
+ `}
94
+ </slot>
95
+ ${this.shortLabel && _`<div id="short-label">${this.shortLabel}</div>`}
96
+ </div>
97
+ </button>
98
+ `;
99
+ }
100
+ };
101
+ n = new WeakMap(), h = new WeakMap(), c.styles = [N, E], c.shadowRootOptions = { ...T.shadowRootOptions, delegatesFocus: !0 };
102
+ let o = c;
103
+ r([
104
+ a({ type: Boolean, reflect: !0 })
105
+ ], o.prototype, "disabled", 2);
106
+ r([
107
+ a({ reflect: !0 })
108
+ ], o.prototype, "icon", 2);
109
+ r([
110
+ a({ reflect: !0, attribute: "icon-color" })
111
+ ], o.prototype, "iconColor", 2);
112
+ r([
113
+ a({ type: Boolean, reflect: !0 })
114
+ ], o.prototype, "selected", 2);
115
+ r([
116
+ a({ reflect: !0, attribute: "short-label" })
117
+ ], o.prototype, "shortLabel", 2);
118
+ r([
119
+ a({ attribute: !1 })
120
+ ], o.prototype, "text", 1);
121
+ r([
122
+ a({ reflect: !0 })
123
+ ], o.prototype, "value", 1);
124
+ r([
125
+ $()
126
+ ], o.prototype, "small", 2);
127
+ r([
128
+ O({ flatten: !0 })
129
+ ], o.prototype, "_assignedNodes", 2);
130
+ r([
131
+ x("small")
132
+ ], o.prototype, "_handleStateChange", 1);
133
+ export {
134
+ o as SkfSelectOption
135
+ };
@@ -0,0 +1,65 @@
1
+ import { css as e } from "lit";
2
+ const o = e`
3
+ @layer components {
4
+ @layer base {
5
+ button {
6
+ --_skf-select-option-bg: var(--skf-interactive-bg-color-secondary);
7
+ --_skf-select-option-color: inherit;
8
+ --_skf-select-option-height: var(--skf-size-44);
9
+
10
+ align-items: center;
11
+ background-color: var(--_skf-select-option-bg);
12
+ block-size: var(--_skf-select-option-height);
13
+ color: var(--_skf-select-option-color);
14
+ display: flex;
15
+ gap: var(--skf-spacing-50);
16
+ padding-inline: var(--skf-spacing-50);
17
+ width: 100%;
18
+ }
19
+
20
+ #icon-check {
21
+ opacity: 0;
22
+
23
+ :host([selected]) & {
24
+ opacity: 1;
25
+ }
26
+ }
27
+
28
+ #adornments {
29
+ align-items: inherit;
30
+ display: inherit;
31
+ gap: inherit;
32
+ margin-inline-start: auto;
33
+ }
34
+
35
+ #short-label {
36
+ color: var(--skf-text-color-tertiary);
37
+ }
38
+ }
39
+
40
+ @layer states {
41
+ button {
42
+ &:disabled {
43
+ --_skf-select-option-color: var(--skf-interactive-text-color-disabled);
44
+ }
45
+
46
+ &:is(:hover, :focus):not(:disabled) {
47
+ --_skf-select-option-bg: var(--skf-interactive-bg-color-secondary-hover);
48
+ }
49
+
50
+ &:active:not(:disabled) {
51
+ --_skf-select-option-bg: var(--skf-interactive-bg-color-secondary-active);
52
+ }
53
+ }
54
+ }
55
+
56
+ @layer mods {
57
+ :host(:state(small)) button {
58
+ --_skf-select-option-height: var(--skf-size-32);
59
+ }
60
+ }
61
+ }
62
+ `;
63
+ export {
64
+ o as styles
65
+ };