@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
package/dist/index.d.ts CHANGED
@@ -1,11 +1,14 @@
1
- export { default as SkfAccordion, SkfAccordionItem } from './components/accordion/accordion.js';
1
+ export { default as SkfAccordionItem } from './components/accordion/accordion-item.js';
2
+ export { default as SkfAccordion } from './components/accordion/accordion.js';
2
3
  export { default as SkfAlert } from './components/alert/alert.js';
4
+ export { default as SkfBreadcrumbItem } from './components/breadcrumb/breadcrumb-item.js';
5
+ export { default as SkfBreadcrumb } from './components/breadcrumb/breadcrumb.js';
3
6
  export { default as SkfButton } from './components/button/button.js';
4
7
  export { default as SkfCard } from './components/card/card.js';
5
8
  export { default as SkfCheckbox } from './components/checkbox/checkbox.js';
6
- export { default as SkfCollapse } from './components/collapse/collapse.js';
7
- export { default as SkfDatePickerInput } from './components/date-picker-input/datepicker-input.js';
8
- export { default as SkfDatePicker } from './components/date-picker/datepicker.js';
9
+ export { default as SkfDatepickerCalendar } from './components/datepicker/datepicker-calendar.js';
10
+ export { default as SkfDatepickerPopup } from './components/datepicker/datepicker-popup.js';
11
+ export { default as SkfDatepicker } from './components/datepicker/datepicker.js';
9
12
  export { default as SkfDialog } from './components/dialog/dialog.js';
10
13
  export { default as SkfDivider } from './components/divider/divider.js';
11
14
  export { default as SkfDrawer } from './components/drawer/drawer.js';
@@ -16,23 +19,27 @@ export { default as SkfInput } from './components/input/input.js';
16
19
  export { default as SkfLink } from './components/link/link.js';
17
20
  export { default as SkfLoader } from './components/loader/loader.js';
18
21
  export { default as SkfLogo } from './components/logo/logo.js';
19
- export { default as SkfMenuItem } from './components/menu-item/menu-item.js';
22
+ export { default as SkfMenuItem } from './components/menu/menu-item.js';
20
23
  export { default as SkfMenu } from './components/menu/menu.js';
21
- export { default as SkfNavItem } from './components/nav-item/nav-item.js';
24
+ export { default as SkfNavItem } from './components/nav/nav-item.js';
22
25
  export { default as SkfNav } from './components/nav/nav.js';
23
26
  export { default as SkfPopover } from './components/popover/popover.js';
24
27
  export { default as SkfProgress } from './components/progress/progress.js';
25
28
  export { default as SkfRadio } from './components/radio/radio.js';
26
- export { default as SkfOptionGroup } from './components/select-option-group/select-option-group.js';
27
- export { default as SkfOption } from './components/select-option/select-option.js';
29
+ export { default as SkfSegmentedButtonItem } from './components/segmented-button/segmented-button-item.js';
30
+ export { default as SkfSegmentedButton } from './components/segmented-button/segmented-button.js';
31
+ export { default as SkfSelectOptionGroup } from './components/select/select-option-group.js';
32
+ export { default as SkfSelectOption } from './components/select/select-option.js';
28
33
  export { default as SkfSelect } from './components/select/select.js';
29
- export { default as SkfStepperItem } from './components/stepper-item/stepper-item.js';
34
+ export { default as SkfStepperItem } from './components/stepper/stepper-item.js';
30
35
  export { default as SkfStepper } from './components/stepper/stepper.js';
31
36
  export { default as SkfSwitch } from './components/switch/switch.js';
32
- export { default as SkfTabGoup } from './components/tab-group/tab-group.js';
33
- export { default as SkfTabPanel } from './components/tab-panel/tab-panel.js';
34
- export { default as SkfTab } from './components/tab/tab.js';
37
+ export { default as SkfTabPanel } from './components/tabs/tab-panel.js';
38
+ export { default as SkfTab } from './components/tabs/tab.js';
39
+ export { default as SkfTabs } from './components/tabs/tabs.js';
35
40
  export { default as SkfTag } from './components/tag/tag.js';
36
41
  export { default as SkfTextArea } from './components/textarea/textarea.js';
42
+ export { default as SkfToastItem } from './components/toast/toast-item.js';
43
+ export { default as SkfToastWrapper } from './components/toast/toast-wrapper.js';
37
44
  export { default as SkfToast } from './components/toast/toast.js';
38
45
  export { default as SkfTooltip } from './components/tooltip/tooltip.js';
package/dist/index.js CHANGED
@@ -1,11 +1,14 @@
1
+ import "./components/accordion/accordion-item.js";
1
2
  import "./components/accordion/accordion.js";
2
3
  import "./components/alert/alert.js";
4
+ import "./components/breadcrumb/breadcrumb-item.js";
5
+ import "./components/breadcrumb/breadcrumb.js";
3
6
  import "./components/button/button.js";
4
7
  import "./components/card/card.js";
5
8
  import "./components/checkbox/checkbox.js";
6
- import "./components/collapse/collapse.js";
7
- import "./components/date-picker-input/datepicker-input.js";
8
- import "./components/date-picker/datepicker.js";
9
+ import "./components/datepicker/datepicker-calendar.js";
10
+ import "./components/datepicker/datepicker-popup.js";
11
+ import "./components/datepicker/datepicker.js";
9
12
  import "./components/dialog/dialog.js";
10
13
  import "./components/divider/divider.js";
11
14
  import "./components/drawer/drawer.js";
@@ -16,103 +19,119 @@ import "./components/input/input.js";
16
19
  import "./components/link/link.js";
17
20
  import "./components/loader/loader.js";
18
21
  import "./components/logo/logo.js";
19
- import "./components/menu-item/menu-item.js";
22
+ import "./components/menu/menu-item.js";
20
23
  import "./components/menu/menu.js";
21
- import "./components/nav-item/nav-item.js";
24
+ import "./components/nav/nav-item.js";
22
25
  import "./components/nav/nav.js";
23
26
  import "./components/popover/popover.js";
24
27
  import "./components/progress/progress.js";
25
28
  import "./components/radio/radio.js";
26
- import "./components/select-option-group/select-option-group.js";
27
- import "./components/select-option/select-option.js";
29
+ import "./components/segmented-button/segmented-button-item.js";
30
+ import "./components/segmented-button/segmented-button.js";
31
+ import "./components/select/select-option-group.js";
32
+ import "./components/select/select-option.js";
28
33
  import "./components/select/select.js";
29
- import "./components/stepper-item/stepper-item.js";
34
+ import "./components/stepper/stepper-item.js";
30
35
  import "./components/stepper/stepper.js";
31
36
  import "./components/switch/switch.js";
32
- import "./components/tab-group/tab-group.js";
33
- import "./components/tab-panel/tab-panel.js";
34
- import "./components/tab/tab.js";
37
+ import "./components/tabs/tab-panel.js";
38
+ import "./components/tabs/tab.js";
39
+ import "./components/tabs/tabs.js";
35
40
  import "./components/tag/tag.js";
36
41
  import "./components/textarea/textarea.js";
42
+ import "./components/toast/toast-item.js";
43
+ import "./components/toast/toast-wrapper.js";
37
44
  import "./components/toast/toast.js";
38
45
  import "./components/tooltip/tooltip.js";
39
- import { SkfAccordion as z } from "./components/accordion/accordion.component.js";
40
- import { SkfAlert as F } from "./components/alert/alert.component.js";
41
- import { SkfButton as K } from "./components/button/button.component.js";
42
- import { SkfCard as U } from "./components/card/card.component.js";
43
- import { SkfCheckbox as W } from "./components/checkbox/checkbox.component.js";
44
- import { SkfCollapse as Y } from "./components/collapse/collapse.component.js";
45
- import { SkfDatePickerInput as _ } from "./components/date-picker-input/datepicker-input.component.js";
46
- import { SkfDatePicker as oo } from "./components/date-picker/datepicker.component.js";
47
- import { SkfDialog as to } from "./components/dialog/dialog.component.js";
48
- import { SkfDivider as fo } from "./components/divider/divider.component.js";
49
- import { SkfDrawer as eo } from "./components/drawer/drawer.component.js";
50
- import { SkfHeader as So } from "./components/header/header.component.js";
51
- import { SkfHeading as xo } from "./components/heading/heading.component.js";
52
- import { SkfIcon as no } from "./components/icon/icon.component.js";
53
- import { SkfInput as lo } from "./components/input/input.component.js";
54
- import { SkfLink as To } from "./components/link/link.component.js";
55
- import { SkfLoader as Io } from "./components/loader/loader.component.js";
56
- import { SkfLogo as go } from "./components/logo/logo.component.js";
57
- import { SkfMenuItem as Po } from "./components/menu-item/menu-item.component.js";
58
- import { SkfMenu as Ao } from "./components/menu/menu.component.js";
59
- import { SkfNavItem as Oo } from "./components/nav-item/nav-item.component.js";
60
- import { SkfNav as Lo } from "./components/nav/nav.component.js";
61
- import { SkfPopover as wo } from "./components/popover/popover.component.js";
62
- import { SkfProgress as Mo } from "./components/progress/progress.component.js";
63
- import { SkfRadio as Bo } from "./components/radio/radio.component.js";
64
- import { SkfSelectOptionGroup as jo } from "./components/select-option-group/select-option-group.component.js";
65
- import { SkfSelectOption as yo } from "./components/select-option/select-option.component.js";
66
- import { SkfSelect as Eo } from "./components/select/select.component.js";
67
- import { SkfStepperItem as Jo } from "./components/stepper-item/stepper-item.component.js";
68
- import { SkfStepper as Qo } from "./components/stepper/stepper.component.js";
69
- import { SkfSwitch as Vo } from "./components/switch/switch.component.js";
70
- import { SkfTabGroup as Xo } from "./components/tab-group/tab-group.component.js";
71
- import { SkfTabPanel as Zo } from "./components/tab-panel/tab-panel.component.js";
72
- import { SkfTab as $o } from "./components/tab/tab.component.js";
73
- import { SkfTag as rr } from "./components/tag/tag.component.js";
74
- import { SkfTextArea as pr } from "./components/textarea/textarea.component.js";
75
- import { SkfToast as mr } from "./components/toast/toast.component.js";
76
- import { SkfTooltip as ir } from "./components/tooltip/tooltip.component.js";
77
- import { SkfAccordionItem as kr } from "./components/accordion/accordion-item.js";
46
+ import { SkfAccordionItem as U } from "./components/accordion/accordion-item.component.js";
47
+ import { SkfAccordion as X } from "./components/accordion/accordion.component.js";
48
+ import { SkfAlert as Z } from "./components/alert/alert.component.js";
49
+ import { SkfBreadcrumbItem as $ } from "./components/breadcrumb/breadcrumb-item.component.js";
50
+ import { SkfBreadcrumb as ro } from "./components/breadcrumb/breadcrumb.component.js";
51
+ import { SkfButton as po } from "./components/button/button.component.js";
52
+ import { SkfCard as eo } from "./components/card/card.component.js";
53
+ import { SkfCheckbox as io } from "./components/checkbox/checkbox.component.js";
54
+ import { SkfDatepickerCalendar as ko } from "./components/datepicker/datepicker-calendar.component.js";
55
+ import { SkfDatepickerPopup as ao } from "./components/datepicker/datepicker-popup.component.js";
56
+ import { SkfDatepicker as co } from "./components/datepicker/datepicker.component.js";
57
+ import { SkfDialog as Io } from "./components/dialog/dialog.component.js";
58
+ import { SkfDivider as lo } from "./components/divider/divider.component.js";
59
+ import { SkfDrawer as bo } from "./components/drawer/drawer.component.js";
60
+ import { SkfHeader as Do } from "./components/header/header.component.js";
61
+ import { SkfHeading as vo } from "./components/heading/heading.component.js";
62
+ import { SkfIcon as Po } from "./components/icon/icon.component.js";
63
+ import { SkfInput as Lo } from "./components/input/input.component.js";
64
+ import { SkfLink as wo } from "./components/link/link.component.js";
65
+ import { SkfLoader as Mo } from "./components/loader/loader.component.js";
66
+ import { SkfLogo as Oo } from "./components/logo/logo.component.js";
67
+ import { SkfMenuItem as Ro } from "./components/menu/menu-item.component.js";
68
+ import { SkfMenu as jo } from "./components/menu/menu.component.js";
69
+ import { SkfNavItem as yo } from "./components/nav/nav-item.component.js";
70
+ import { SkfNav as Eo } from "./components/nav/nav.component.js";
71
+ import { SkfPopover as Jo } from "./components/popover/popover.component.js";
72
+ import { SkfProgress as Qo } from "./components/progress/progress.component.js";
73
+ import { SkfRadio as Vo } from "./components/radio/radio.component.js";
74
+ import { SkfSegmentedButtonItem as Yo } from "./components/segmented-button/segmented-button-item.component.js";
75
+ import { SkfSegmentedButton as _o } from "./components/segmented-button/segmented-button.component.js";
76
+ import { SkfSelectOptionGroup as or } from "./components/select/select-option-group.component.js";
77
+ import { SkfSelectOption as tr } from "./components/select/select-option.component.js";
78
+ import { SkfSelect as mr } from "./components/select/select.component.js";
79
+ import { SkfStepperItem as fr } from "./components/stepper/stepper-item.component.js";
80
+ import { SkfStepper as Sr } from "./components/stepper/stepper.component.js";
81
+ import { SkfSwitch as xr } from "./components/switch/switch.component.js";
82
+ import { SkfTabPanel as nr } from "./components/tabs/tab-panel.component.js";
83
+ import { SkfTab as dr } from "./components/tabs/tab.component.js";
84
+ import { SkfTabs as Ir } from "./components/tabs/tabs.component.js";
85
+ import { SkfTag as lr } from "./components/tag/tag.component.js";
86
+ import { SkfTextArea as br } from "./components/textarea/textarea.component.js";
87
+ import { SkfToastItem as Dr } from "./components/toast/toast-item.component.js";
88
+ import { SkfToastWrapper as vr } from "./components/toast/toast-wrapper.component.js";
89
+ import { SkfToast as Pr } from "./components/toast/toast.component.js";
90
+ import { SkfTooltip as Lr } from "./components/tooltip/tooltip.component.js";
78
91
  export {
79
- z as SkfAccordion,
80
- kr as SkfAccordionItem,
81
- F as SkfAlert,
82
- K as SkfButton,
83
- U as SkfCard,
84
- W as SkfCheckbox,
85
- Y as SkfCollapse,
86
- oo as SkfDatePicker,
87
- _ as SkfDatePickerInput,
88
- to as SkfDialog,
89
- fo as SkfDivider,
90
- eo as SkfDrawer,
91
- So as SkfHeader,
92
- xo as SkfHeading,
93
- no as SkfIcon,
94
- lo as SkfInput,
95
- To as SkfLink,
96
- Io as SkfLoader,
97
- go as SkfLogo,
98
- Ao as SkfMenu,
99
- Po as SkfMenuItem,
100
- Lo as SkfNav,
101
- Oo as SkfNavItem,
102
- yo as SkfOption,
103
- jo as SkfOptionGroup,
104
- wo as SkfPopover,
105
- Mo as SkfProgress,
106
- Bo as SkfRadio,
107
- Eo as SkfSelect,
108
- Qo as SkfStepper,
109
- Jo as SkfStepperItem,
110
- Vo as SkfSwitch,
111
- $o as SkfTab,
112
- Xo as SkfTabGoup,
113
- Zo as SkfTabPanel,
114
- rr as SkfTag,
115
- pr as SkfTextArea,
116
- mr as SkfToast,
117
- ir as SkfTooltip
92
+ X as SkfAccordion,
93
+ U as SkfAccordionItem,
94
+ Z as SkfAlert,
95
+ ro as SkfBreadcrumb,
96
+ $ as SkfBreadcrumbItem,
97
+ po as SkfButton,
98
+ eo as SkfCard,
99
+ io as SkfCheckbox,
100
+ co as SkfDatepicker,
101
+ ko as SkfDatepickerCalendar,
102
+ ao as SkfDatepickerPopup,
103
+ Io as SkfDialog,
104
+ lo as SkfDivider,
105
+ bo as SkfDrawer,
106
+ Do as SkfHeader,
107
+ vo as SkfHeading,
108
+ Po as SkfIcon,
109
+ Lo as SkfInput,
110
+ wo as SkfLink,
111
+ Mo as SkfLoader,
112
+ Oo as SkfLogo,
113
+ jo as SkfMenu,
114
+ Ro as SkfMenuItem,
115
+ Eo as SkfNav,
116
+ yo as SkfNavItem,
117
+ Jo as SkfPopover,
118
+ Qo as SkfProgress,
119
+ Vo as SkfRadio,
120
+ _o as SkfSegmentedButton,
121
+ Yo as SkfSegmentedButtonItem,
122
+ mr as SkfSelect,
123
+ tr as SkfSelectOption,
124
+ or as SkfSelectOptionGroup,
125
+ Sr as SkfStepper,
126
+ fr as SkfStepperItem,
127
+ xr as SkfSwitch,
128
+ dr as SkfTab,
129
+ nr as SkfTabPanel,
130
+ Ir as SkfTabs,
131
+ lr as SkfTag,
132
+ br as SkfTextArea,
133
+ Pr as SkfToast,
134
+ Dr as SkfToastItem,
135
+ vr as SkfToastWrapper,
136
+ Lr as SkfTooltip
118
137
  };
@@ -2,37 +2,61 @@ import { type Placement } from '@floating-ui/dom';
2
2
  import { SkfElement } from '../../components/skf-element.js';
3
3
  import { PopoverController } from '../../controllers/popover.controller.js';
4
4
  import { type CSSResultGroup } from 'lit';
5
+ /**
6
+ * @description - Base class for popover components.
7
+ * This class provides common functionality for popovers, such as handling open/close states, positioning, and event management.
8
+ * It should be extended by specific popover components like `SkfPopover`, `SkfTooltip`, etc.
9
+ *
10
+ * @event {CustomEvent} skf-opened - Fired when the popover is opened
11
+ * @event {CustomEvent} skf-closed - Fired when the popover is closed
12
+ *
13
+ * @slot - The popover content
14
+ */
5
15
  export declare class SkfPopoverBase extends SkfElement {
6
16
  static styles: CSSResultGroup;
7
17
  static classMap: {};
18
+ /** @internal - The popover element, aka `this` */
8
19
  $popover: this;
20
+ /** Where the popover is positioned relative to the anchor element if it fits */
9
21
  placement: Placement;
10
- variant: 'dropdown' | 'popup' | 'tooltip';
22
+ /** The variant of the popover extending this base class */
23
+ variant: 'menu' | 'popup' | 'tooltip';
24
+ /** The id of the element the popover will be anchored to */
11
25
  anchor?: string;
26
+ /** Whether the popover is currently open */
12
27
  isOpen: boolean;
28
+ /** @internal - Gap between popover and anchor */
13
29
  offset: number;
30
+ /** @internal - Element that triggered the popover */
14
31
  $anchor?: Element | HTMLElement | null;
32
+ /** If true, displays an arrow on the popover */
15
33
  arrow: boolean;
16
- /** @internal */
34
+ /** @internal - the event that triggers the popover */
17
35
  triggerEvent: 'mouseenter' | 'click';
36
+ /** @internal - Reference to the arrow element */
18
37
  $arrow: HTMLElement;
19
38
  protected abortEventsController: AbortController;
20
39
  protected signal: AbortSignal;
21
40
  protected popoverController: PopoverController;
22
- constructor();
41
+ connectedCallback(): void;
23
42
  disconnectedCallback(): void;
24
43
  protected _toggleOpen: (newValue?: boolean) => void;
25
44
  private _handleToggle;
26
45
  handleToggleOpen: () => Promise<void>;
27
- handleAnchorEl(): void;
46
+ handleAnchorEl(): Promise<void>;
28
47
  handleAnchorChange: () => Promise<void>;
29
48
  reposition: () => Promise<void>;
49
+ handleEscapeKey: (e: KeyboardEvent) => void;
30
50
  open: (e: Event) => void;
51
+ /** @internal add additional open tasks here in UI component */
52
+ openExtended(): void;
31
53
  close: () => void;
32
- /** @internal */
54
+ /** @internal add additional close tasks here in UI component */
55
+ closeExtended(): void;
56
+ /** @internal eventlisteners here should implement abort signal */
33
57
  addEventListeners($element: HTMLElement | Element): void;
34
58
  /** @internal */
35
- removeEventListeners($element: HTMLElement | Element): void;
59
+ removeEventListeners(): void;
36
60
  render(): import("lit").TemplateResult<1>;
37
61
  /** @internal helper */
38
62
  private _containsFocusableElement;
@@ -1,98 +1,112 @@
1
- import { flip as C, offset as S, arrow as x, computePosition as A } from "@floating-ui/dom";
2
- import { SkfElement as _ } from "../../components/skf-element.js";
3
- import { PopoverController as P } from "../../controllers/popover.controller.js";
4
- import { uuid as w } from "../../helpers/uuid.js";
1
+ import { flip as w, offset as E, arrow as $, computePosition as O } from "@floating-ui/dom";
2
+ import { SkfElement as C } from "../../components/skf-element.js";
3
+ import { PopoverController as x } from "../../controllers/popover.controller.js";
4
+ import { uuid as A } from "../../helpers/uuid.js";
5
5
  import { watch as f } from "../../helpers/watch.js";
6
- import L from "../../../styles/component.styles.js";
7
- import { nothing as F, html as b } from "lit";
8
- import { property as m, state as c, query as M } from "lit/decorators.js";
9
- import { classMap as j } from "lit/directives/class-map.js";
10
- import { styles as T } from "./popover.styles.js";
11
- var R = Object.defineProperty, q = Object.getOwnPropertyDescriptor, r = (u, t, s, i) => {
12
- for (var e = i > 1 ? void 0 : i ? q(t, s) : t, n = u.length - 1, a; n >= 0; n--)
13
- (a = u[n]) && (e = (i ? a(t, s, e) : a(e)) || e);
14
- return i && e && R(t, s, e), e;
15
- }, l;
16
- const o = (l = class extends _ {
6
+ import { componentStyles as S } from "../../../styles/component.styles.js";
7
+ import { nothing as P, html as g } from "lit";
8
+ import { property as u, state as c, query as _ } from "lit/decorators.js";
9
+ import { classMap as L } from "lit/directives/class-map.js";
10
+ import { styles as F } from "./popover.styles.js";
11
+ var k = Object.defineProperty, T = Object.getOwnPropertyDescriptor, r = (m, t, o, i) => {
12
+ for (var e = i > 1 ? void 0 : i ? T(t, o) : t, n = m.length - 1, a; n >= 0; n--)
13
+ (a = m[n]) && (e = (i ? a(t, o, e) : a(e)) || e);
14
+ return i && e && k(t, o, e), e;
15
+ }, p;
16
+ const s = (p = class extends C {
17
17
  constructor() {
18
- super(), this.$popover = this, this.placement = "top", this.variant = "popup", this.isOpen = !1, this.offset = 0, this.arrow = !1, this.triggerEvent = "mouseenter", this.abortEventsController = new AbortController(), this.signal = this.abortEventsController.signal, this.popoverController = new P(this), this._toggleOpen = (t) => {
18
+ super(...arguments), this.$popover = this, this.placement = "top", this.variant = "popup", this.isOpen = !1, this.offset = 0, this.arrow = !1, this.triggerEvent = "mouseenter", this.abortEventsController = new AbortController(), this.signal = this.abortEventsController.signal, this.popoverController = new x(this), this._toggleOpen = (t) => {
19
19
  this.isOpen = t ?? !this.isOpen;
20
20
  }, this._handleToggle = (t) => {
21
- const s = t.newState === "open";
22
- this.isOpen = s, this.emit(s ? "skf-opened" : "skf-closed");
21
+ const o = t.newState === "open";
22
+ this.isOpen = o, this.emit(o ? "skf-opened" : "skf-closed");
23
23
  }, this.handleToggleOpen = async () => {
24
24
  this.$anchor && (this.isOpen ? (this.$popover.togglePopover(!0), this.$popover.animate([{ opacity: 0 }, { opacity: 1 }], { duration: 250, fill: "forwards" })) : (await this.$popover.animate([{ opacity: 0 }], { duration: 150, fill: "forwards" }).finished, this.$popover.togglePopover(this.isOpen)));
25
25
  }, this.handleAnchorChange = async () => {
26
26
  if (!this.anchor) return;
27
- await this.popoverController.stop(), this.$anchor && this.removeEventListeners(this.$anchor);
27
+ await this.popoverController.stop(), this.$anchor && this.removeEventListeners();
28
28
  const t = this.getRootNode();
29
29
  this.$anchor = t.getElementById(this.anchor), this.$anchor && (this.addEventListeners(this.$anchor), this.popoverController.start());
30
30
  }, this.reposition = async () => {
31
- var n, a, h;
32
31
  if (!this.$anchor) return;
33
- const t = [C(), S(this.offset)];
34
- this.arrow && t.push(x({ element: this.$arrow }));
35
- const { x: s, y: i, middlewareData: e } = await A(this.$anchor, this.$popover, {
32
+ const t = [w(), E(this.offset)];
33
+ this.arrow && t.push($({ element: this.$arrow }));
34
+ const { x: o, y: i, middlewareData: e } = await O(this.$anchor, this.$popover, {
36
35
  placement: this.placement,
37
36
  middleware: t,
38
37
  strategy: "fixed"
39
38
  });
40
39
  if (Object.assign(this.$popover.style, {
41
- left: `${String(s)}px`,
40
+ left: `${String(o)}px`,
42
41
  top: `${String(i)}px`
43
42
  }), this.arrow) {
44
- const d = this.placement.split("-")[0], p = { top: "bottom", right: "left", bottom: "top", left: "right" }[d] ?? "", g = (n = e.flip) == null ? void 0 : n.index, v = (a = e.arrow) == null ? void 0 : a.x, $ = (h = e.arrow) == null ? void 0 : h.y, y = typeof v == "number" ? `${String(v)}px` : "", E = typeof $ == "number" ? `${String($)}px` : "", O = {
43
+ const n = this.placement.split("-")[0], a = { top: "bottom", right: "left", bottom: "top", left: "right" }[n] ?? "", h = e.flip?.index, d = e.arrow?.x, l = e.arrow?.y, v = typeof d == "number" ? `${String(d)}px` : "", b = typeof l == "number" ? `${String(l)}px` : "", y = {
45
44
  bottom: 45,
46
45
  right: 135,
47
46
  top: 225,
48
47
  left: 315
49
48
  };
50
49
  Object.assign(this.$arrow.style, {
51
- top: E,
52
- [this.placement.includes("left") ? "right" : "left"]: y,
53
- [g ? d : p]: "calc(var(--_skf-popover-arrow-size) * -1)",
54
- rotate: `${(O[p] + (g ? 180 : 0)).toString()}deg`
50
+ top: b,
51
+ [this.placement.includes("left") ? "right" : "left"]: v,
52
+ [h ? n : a]: "calc(var(--_skf-popover-arrow-size) * -1)",
53
+ rotate: `${(y[a] + (h ? 180 : 0)).toString()}deg`
55
54
  });
56
55
  }
56
+ }, this.handleEscapeKey = (t) => {
57
+ t.key === "Escape" && this.close();
57
58
  }, this.open = (t) => {
58
- t.stopPropagation(), this._toggleOpen(!0);
59
+ t.stopPropagation(), this._toggleOpen(!0), this.abortEventsController = new AbortController(), this.signal = this.abortEventsController.signal, document.addEventListener("keydown", this.handleEscapeKey, { signal: this.signal }), this.openExtended();
59
60
  }, this.close = () => {
60
- this._toggleOpen(!1);
61
- }, this.setAttribute("popover", "");
61
+ this.closeExtended(), this._toggleOpen(!1), this.abortEventsController.abort();
62
+ };
63
+ }
64
+ connectedCallback() {
65
+ super.connectedCallback(), this.setAttribute("popover", ""), this.addEventListener("toggle", (t) => {
66
+ this._handleToggle(t);
67
+ });
62
68
  }
63
69
  disconnectedCallback() {
64
70
  super.disconnectedCallback(), this.abortEventsController.abort();
65
71
  }
66
- handleAnchorEl() {
72
+ async handleAnchorEl() {
67
73
  if (!this.$anchor) return;
68
74
  const t = this._containsFocusableElement(this);
69
75
  this.$anchor.addEventListener(
70
76
  "focusout",
71
- (s) => {
72
- const i = this.contains(s.relatedTarget);
77
+ (o) => {
78
+ const i = this.contains(o.relatedTarget);
79
+ t && i || this.close();
80
+ },
81
+ { signal: this.signal }
82
+ ), this.addEventListener(
83
+ "focusout",
84
+ (o) => {
85
+ const i = this.contains(o.relatedTarget);
73
86
  t && i || this.close();
74
87
  },
75
88
  { signal: this.signal }
76
- ), this.addEventListener("focusout", this.close), this.$anchor.addEventListener("focusin", this.open, { signal: this.signal }), this.$anchor.setAttribute("aria-controls", w(this.$anchor.id)), this.$anchor.setAttribute("aria-has-popup", "true"), this.$popover.id = w(this.$anchor.id);
89
+ ), this.$popover.id = await A(this.$anchor.id), ["popup", "menu"].includes(this.variant) && (this.$anchor.setAttribute("aria-haspopup", "true"), this.setAttribute("aria-labelledby", this.$anchor.id)), ["menu"].includes(this.variant) && this.$anchor.setAttribute("aria-controls", this.$popover.id), ["popup"].includes(this.variant) && t && (this.role = "dialog"), ["tooltip"].includes(this.variant) && this.$anchor.addEventListener("focusin", this.open, { signal: this.signal });
77
90
  }
78
- /** @internal */
91
+ /** @internal add additional open tasks here in UI component */
92
+ openExtended() {
93
+ }
94
+ /** @internal add additional close tasks here in UI component */
95
+ closeExtended() {
96
+ }
97
+ /** @internal eventlisteners here should implement abort signal */
79
98
  addEventListeners(t) {
80
99
  throw new Error(`Cannot add eventListeners for ${t.id}. Method not implemented.`);
81
100
  }
82
101
  /** @internal */
83
- removeEventListeners(t) {
84
- throw new Error(`Cannot remove eventListeners for ${t.id}. Method not implemented.`);
102
+ removeEventListeners() {
103
+ this.abortEventsController.abort();
85
104
  }
86
105
  render() {
87
- var t;
88
- return (t = this.$anchor) == null || t.setAttribute("aria-expanded", this.isOpen ? "true" : "false"), b`
89
- <div
90
- @toggle=${this._handleToggle}
91
- class=${j({ popover: !0, ...l.classMap })}
92
- id="popover"
93
- >
106
+ return ["popup", "menu"].includes(this.variant) && this.$anchor?.setAttribute("aria-expanded", this.isOpen ? "true" : "false"), g`
107
+ <div class=${L({ popover: !0, ...p.classMap })} id="root">
94
108
  <slot></slot>
95
- ${this.arrow ? b`<div class="popover__arrow" id="arrow"></div>` : F}
109
+ ${this.arrow ? g`<div id="arrow"></div>` : P}
96
110
  </div>
97
111
  `;
98
112
  }
@@ -109,52 +123,52 @@ const o = (l = class extends _ {
109
123
  function e(n, a) {
110
124
  const h = Array.from(
111
125
  n.querySelectorAll(a.join(", "))
112
- ), d = Array.from(n.querySelectorAll("*")).map((p) => p.shadowRoot).filter((p) => p !== null);
113
- for (const p of d)
126
+ ), d = Array.from(n.querySelectorAll("*")).map((l) => l.shadowRoot).filter((l) => l !== null);
127
+ for (const l of d)
114
128
  h.push(
115
- ...e(p, a)
129
+ ...e(l, a)
116
130
  );
117
131
  return h;
118
132
  }
119
133
  }
120
- }, l.styles = [L, T], l.classMap = {}, l);
134
+ }, p.styles = [S, F], p.classMap = {}, p);
121
135
  r([
122
- m()
123
- ], o.prototype, "placement", 2);
136
+ u()
137
+ ], s.prototype, "placement", 2);
124
138
  r([
125
- m()
126
- ], o.prototype, "variant", 2);
139
+ u()
140
+ ], s.prototype, "variant", 2);
127
141
  r([
128
- m()
129
- ], o.prototype, "anchor", 2);
142
+ u()
143
+ ], s.prototype, "anchor", 2);
130
144
  r([
131
145
  c()
132
- ], o.prototype, "isOpen", 2);
146
+ ], s.prototype, "isOpen", 2);
133
147
  r([
134
148
  c()
135
- ], o.prototype, "offset", 2);
149
+ ], s.prototype, "offset", 2);
136
150
  r([
137
151
  c()
138
- ], o.prototype, "$anchor", 2);
152
+ ], s.prototype, "$anchor", 2);
139
153
  r([
140
154
  c()
141
- ], o.prototype, "arrow", 2);
155
+ ], s.prototype, "arrow", 2);
142
156
  r([
143
157
  c()
144
- ], o.prototype, "triggerEvent", 2);
158
+ ], s.prototype, "triggerEvent", 2);
145
159
  r([
146
- M("#arrow")
147
- ], o.prototype, "$arrow", 2);
160
+ _("#arrow")
161
+ ], s.prototype, "$arrow", 2);
148
162
  r([
149
163
  f("isOpen", { afterUpdate: !0 })
150
- ], o.prototype, "handleToggleOpen", 2);
164
+ ], s.prototype, "handleToggleOpen", 2);
151
165
  r([
152
166
  f("$anchor")
153
- ], o.prototype, "handleAnchorEl", 1);
167
+ ], s.prototype, "handleAnchorEl", 1);
154
168
  r([
155
169
  f("anchor")
156
- ], o.prototype, "handleAnchorChange", 2);
157
- let H = o;
170
+ ], s.prototype, "handleAnchorChange", 2);
171
+ let U = s;
158
172
  export {
159
- H as SkfPopoverBase
173
+ U as SkfPopoverBase
160
174
  };
@@ -1,9 +1,7 @@
1
1
  import { css as o } from "lit";
2
2
  const e = o`
3
- /* stylelint-disable selector-class-pattern */
4
3
  @layer components {
5
4
  :host {
6
- background-color: var(--skf-bg-color-neutral-1);
7
5
  border: none;
8
6
  border-radius: var(--skf-border-radius-sm);
9
7
  box-shadow: var(--skf-shadow-md);
@@ -19,15 +17,16 @@ const e = o`
19
17
  display: none;
20
18
  }
21
19
 
22
- #popover {
20
+ #root {
21
+ background-color: var(--skf-bg-color-neutral-1);
23
22
  height: 100%;
24
23
  width: 100%;
25
24
  }
26
25
 
27
- .popover__arrow {
26
+ #arrow {
28
27
  --_skf-popover-arrow-size: calc(6px * 0.7071);
29
28
 
30
- background-color: var(--skf-bg-color-neutral-1);
29
+ background-color: inherit;
31
30
  block-size: calc(var(--_skf-popover-arrow-size) * 2);
32
31
  box-shadow: 1px 1px 2px 0 rgb(0 0 0 / 5%);
33
32
  inline-size: calc(var(--_skf-popover-arrow-size) * 2);
@@ -37,6 +37,7 @@ export declare class FormBase extends SkfElement {
37
37
  /** If true, sets disabled state */
38
38
  set disabled(isDisabled: boolean);
39
39
  get disabled(): boolean;
40
+ /** If true, sets disabled state */
40
41
  set required(isRequired: boolean);
41
42
  get required(): boolean;
42
43
  set nativeValidation(nativeValidation: boolean);