kemet-ui 1.4.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (497) hide show
  1. package/README.md +1 -1
  2. package/custom-elements.json +3113 -2570
  3. package/dist/components/kemet-accordion/kemet-accordion-panel.d.ts +51 -0
  4. package/dist/components/kemet-accordion/kemet-accordion-panel.js +94 -134
  5. package/dist/components/kemet-accordion/kemet-accordion-panel.js.map +1 -0
  6. package/dist/components/kemet-accordion/kemet-accordion.d.ts +37 -0
  7. package/dist/components/kemet-accordion/kemet-accordion.js +113 -129
  8. package/dist/components/kemet-accordion/kemet-accordion.js.map +1 -0
  9. package/dist/components/kemet-accordion/stories.d.ts +10 -0
  10. package/dist/components/kemet-accordion/stories.js +44 -0
  11. package/dist/components/kemet-accordion/stories.js.map +1 -0
  12. package/dist/components/kemet-accordion/styles.d.ts +2 -0
  13. package/dist/components/kemet-accordion/styles.js +42 -0
  14. package/dist/components/kemet-accordion/styles.js.map +1 -0
  15. package/dist/components/kemet-accordion/types.d.ts +9 -0
  16. package/dist/components/kemet-accordion/types.js +2 -0
  17. package/dist/components/kemet-accordion/types.js.map +1 -0
  18. package/dist/components/kemet-alert/docs/stories.d.ts +9 -0
  19. package/dist/components/kemet-alert/docs/stories.js +77 -0
  20. package/dist/components/kemet-alert/docs/stories.js.map +1 -0
  21. package/dist/components/kemet-alert/kemet-alert.d.ts +52 -0
  22. package/dist/components/kemet-alert/kemet-alert.js +67 -65
  23. package/dist/components/kemet-alert/kemet-alert.js.map +1 -0
  24. package/dist/components/kemet-alert/styles.d.ts +1 -0
  25. package/dist/components/kemet-alert/styles.js +4 -4
  26. package/dist/components/kemet-alert/styles.js.map +1 -0
  27. package/dist/components/kemet-alert/types.d.ts +10 -0
  28. package/dist/components/kemet-alert/types.js +2 -0
  29. package/dist/components/kemet-alert/types.js.map +1 -0
  30. package/dist/components/kemet-avatar/docs/stories.d.ts +11 -0
  31. package/dist/components/kemet-avatar/docs/stories.js +86 -0
  32. package/dist/components/kemet-avatar/docs/stories.js.map +1 -0
  33. package/dist/components/kemet-avatar/kemet-avatar.d.ts +43 -0
  34. package/dist/components/kemet-avatar/kemet-avatar.js +48 -88
  35. package/dist/components/kemet-avatar/kemet-avatar.js.map +1 -0
  36. package/dist/components/kemet-avatar/kemet-avatars.d.ts +20 -0
  37. package/dist/components/kemet-avatar/kemet-avatars.js +15 -31
  38. package/dist/components/kemet-avatar/kemet-avatars.js.map +1 -0
  39. package/dist/components/kemet-avatar/styles.d.ts +2 -0
  40. package/dist/components/kemet-avatar/styles.js +58 -0
  41. package/dist/components/kemet-avatar/styles.js.map +1 -0
  42. package/dist/components/kemet-avatar/types.d.ts +8 -0
  43. package/dist/components/kemet-avatar/types.js +2 -0
  44. package/dist/components/kemet-avatar/types.js.map +1 -0
  45. package/dist/components/kemet-badge/docs/stories.d.ts +9 -0
  46. package/dist/components/kemet-badge/docs/stories.js +40 -0
  47. package/dist/components/kemet-badge/docs/stories.js.map +1 -0
  48. package/dist/components/kemet-badge/kemet-badge.d.ts +30 -0
  49. package/dist/components/kemet-badge/kemet-badge.js +38 -89
  50. package/dist/components/kemet-badge/kemet-badge.js.map +1 -0
  51. package/dist/components/kemet-badge/styles.d.ts +1 -0
  52. package/dist/components/kemet-badge/styles.js +40 -0
  53. package/dist/components/kemet-badge/styles.js.map +1 -0
  54. package/dist/components/kemet-badge/types.d.ts +6 -0
  55. package/dist/components/kemet-badge/types.js +2 -0
  56. package/dist/components/kemet-badge/types.js.map +1 -0
  57. package/dist/components/kemet-button/docs/stories.d.ts +9 -0
  58. package/dist/components/kemet-button/docs/stories.js +51 -0
  59. package/dist/components/kemet-button/docs/stories.js.map +1 -0
  60. package/dist/components/kemet-button/kemet-button.d.ts +89 -0
  61. package/dist/components/kemet-button/kemet-button.js +101 -195
  62. package/dist/components/kemet-button/kemet-button.js.map +1 -0
  63. package/dist/components/kemet-button/styles.d.ts +1 -0
  64. package/dist/components/kemet-button/styles.js +73 -0
  65. package/dist/components/kemet-button/styles.js.map +1 -0
  66. package/dist/components/kemet-button/types.d.ts +10 -0
  67. package/dist/components/kemet-button/types.js +2 -0
  68. package/dist/components/kemet-button/types.js.map +1 -0
  69. package/dist/components/kemet-card/docs/stories.d.ts +9 -0
  70. package/dist/components/kemet-card/docs/stories.js +108 -0
  71. package/dist/components/kemet-card/docs/stories.js.map +1 -0
  72. package/dist/components/kemet-card/kemet-card.d.ts +47 -0
  73. package/dist/components/kemet-card/kemet-card.js +17 -21
  74. package/dist/components/kemet-card/kemet-card.js.map +1 -0
  75. package/dist/components/kemet-card/styles.d.ts +1 -0
  76. package/dist/components/kemet-card/styles.js +2 -2
  77. package/dist/components/kemet-card/styles.js.map +1 -0
  78. package/dist/components/kemet-card/types.d.ts +3 -0
  79. package/dist/components/kemet-card/types.js +2 -0
  80. package/dist/components/kemet-card/types.js.map +1 -0
  81. package/dist/components/kemet-carousel/docs/stories.d.ts +17 -0
  82. package/dist/components/kemet-carousel/docs/stories.js +168 -0
  83. package/dist/components/kemet-carousel/docs/stories.js.map +1 -0
  84. package/dist/components/kemet-carousel/kemet-carousel-current.d.ts +26 -0
  85. package/dist/components/kemet-carousel/kemet-carousel-current.js +32 -34
  86. package/dist/components/kemet-carousel/kemet-carousel-current.js.map +1 -0
  87. package/dist/components/kemet-carousel/kemet-carousel-first.d.ts +25 -0
  88. package/dist/components/kemet-carousel/kemet-carousel-first.js +30 -35
  89. package/dist/components/kemet-carousel/kemet-carousel-first.js.map +1 -0
  90. package/dist/components/kemet-carousel/kemet-carousel-last.d.ts +25 -0
  91. package/dist/components/kemet-carousel/kemet-carousel-last.js +30 -35
  92. package/dist/components/kemet-carousel/kemet-carousel-last.js.map +1 -0
  93. package/dist/components/kemet-carousel/kemet-carousel-link.d.ts +31 -0
  94. package/dist/components/kemet-carousel/kemet-carousel-link.js +40 -41
  95. package/dist/components/kemet-carousel/kemet-carousel-link.js.map +1 -0
  96. package/dist/components/kemet-carousel/kemet-carousel-next.d.ts +25 -0
  97. package/dist/components/kemet-carousel/kemet-carousel-next.js +30 -35
  98. package/dist/components/kemet-carousel/kemet-carousel-next.js.map +1 -0
  99. package/dist/components/kemet-carousel/kemet-carousel-prev.d.ts +25 -0
  100. package/dist/components/kemet-carousel/kemet-carousel-prev.js +30 -35
  101. package/dist/components/kemet-carousel/kemet-carousel-prev.js.map +1 -0
  102. package/dist/components/kemet-carousel/kemet-carousel-slide.d.ts +29 -0
  103. package/dist/components/kemet-carousel/kemet-carousel-slide.js +38 -39
  104. package/dist/components/kemet-carousel/kemet-carousel-slide.js.map +1 -0
  105. package/dist/components/kemet-carousel/kemet-carousel-total.d.ts +26 -0
  106. package/dist/components/kemet-carousel/kemet-carousel-total.js +32 -34
  107. package/dist/components/kemet-carousel/kemet-carousel-total.js.map +1 -0
  108. package/dist/components/kemet-carousel/kemet-carousel.d.ts +114 -0
  109. package/dist/components/kemet-carousel/kemet-carousel.js +328 -340
  110. package/dist/components/kemet-carousel/kemet-carousel.js.map +1 -0
  111. package/dist/components/kemet-carousel/styles.d.ts +1 -0
  112. package/dist/components/kemet-carousel/styles.js +2 -2
  113. package/dist/components/kemet-carousel/styles.js.map +1 -0
  114. package/dist/components/kemet-carousel/types.d.ts +21 -0
  115. package/dist/components/kemet-carousel/types.js +2 -0
  116. package/dist/components/kemet-carousel/types.js.map +1 -0
  117. package/dist/components/kemet-checkbox/docs/stories.d.ts +9 -0
  118. package/dist/components/kemet-checkbox/docs/stories.js +45 -0
  119. package/dist/components/kemet-checkbox/docs/stories.js.map +1 -0
  120. package/dist/components/kemet-checkbox/kemet-checkbox.d.ts +71 -0
  121. package/dist/components/kemet-checkbox/kemet-checkbox.js +118 -217
  122. package/dist/components/kemet-checkbox/kemet-checkbox.js.map +1 -0
  123. package/dist/components/kemet-checkbox/styles.d.ts +1 -0
  124. package/dist/components/kemet-checkbox/styles.js +83 -0
  125. package/dist/components/kemet-checkbox/styles.js.map +1 -0
  126. package/dist/components/kemet-checkbox/types.d.ts +15 -0
  127. package/dist/components/kemet-checkbox/types.js +2 -0
  128. package/dist/components/kemet-checkbox/types.js.map +1 -0
  129. package/dist/components/kemet-combo/docs/stories.d.ts +11 -0
  130. package/dist/components/kemet-combo/docs/stories.js +30 -0
  131. package/dist/components/kemet-combo/docs/stories.js.map +1 -0
  132. package/dist/components/kemet-combo/kemet-combo.d.ts +50 -0
  133. package/dist/components/kemet-combo/kemet-combo.js +111 -175
  134. package/dist/components/kemet-combo/kemet-combo.js.map +1 -0
  135. package/dist/components/kemet-combo/styles.d.ts +1 -0
  136. package/dist/components/kemet-combo/styles.js +44 -0
  137. package/dist/components/kemet-combo/styles.js.map +1 -0
  138. package/dist/components/kemet-combo/types.d.ts +5 -0
  139. package/dist/components/kemet-combo/types.js +2 -0
  140. package/dist/components/kemet-combo/types.js.map +1 -0
  141. package/dist/components/kemet-count/docs/stories.d.ts +11 -0
  142. package/dist/components/kemet-count/docs/stories.js +51 -0
  143. package/dist/components/kemet-count/docs/stories.js.map +1 -0
  144. package/dist/components/kemet-count/kemet-count.d.ts +39 -0
  145. package/dist/components/kemet-count/kemet-count.js +79 -82
  146. package/dist/components/kemet-count/kemet-count.js.map +1 -0
  147. package/dist/components/kemet-draggable/docs/stories.d.ts +9 -0
  148. package/dist/components/kemet-draggable/docs/stories.js +32 -0
  149. package/dist/components/kemet-draggable/docs/stories.js.map +1 -0
  150. package/dist/components/kemet-draggable/kemet-draggable.d.ts +49 -0
  151. package/dist/components/kemet-draggable/kemet-draggable.js +111 -114
  152. package/dist/components/kemet-draggable/kemet-draggable.js.map +1 -0
  153. package/dist/components/kemet-draggable/types.d.ts +6 -0
  154. package/dist/components/kemet-draggable/types.js +2 -0
  155. package/dist/components/kemet-draggable/types.js.map +1 -0
  156. package/dist/components/kemet-drawer/docs/stories.d.ts +10 -0
  157. package/dist/components/kemet-drawer/docs/stories.js +91 -0
  158. package/dist/components/kemet-drawer/docs/stories.js.map +1 -0
  159. package/dist/components/kemet-drawer/kemet-drawer.d.ts +48 -0
  160. package/dist/components/kemet-drawer/kemet-drawer.js +50 -65
  161. package/dist/components/kemet-drawer/kemet-drawer.js.map +1 -0
  162. package/dist/components/kemet-drawer/styles.d.ts +2 -0
  163. package/dist/components/kemet-drawer/styles.js +3 -5
  164. package/dist/components/kemet-drawer/styles.js.map +1 -0
  165. package/dist/components/kemet-drawer/types.d.ts +8 -0
  166. package/dist/components/kemet-drawer/types.js +2 -0
  167. package/dist/components/kemet-drawer/types.js.map +1 -0
  168. package/dist/components/kemet-fab/docs/stories.d.ts +11 -0
  169. package/dist/components/kemet-fab/docs/stories.js +87 -0
  170. package/dist/components/kemet-fab/docs/stories.js.map +1 -0
  171. package/dist/components/kemet-fab/kemet-fab.d.ts +49 -0
  172. package/dist/components/kemet-fab/kemet-fab.js +64 -67
  173. package/dist/components/kemet-fab/kemet-fab.js.map +1 -0
  174. package/dist/components/kemet-fab/styles.d.ts +1 -0
  175. package/dist/components/kemet-fab/styles.js +5 -5
  176. package/dist/components/kemet-fab/styles.js.map +1 -0
  177. package/dist/components/kemet-fab/types.d.ts +8 -0
  178. package/dist/components/kemet-fab/types.js +2 -0
  179. package/dist/components/kemet-fab/types.js.map +1 -0
  180. package/dist/components/kemet-field/docs/stories.d.ts +15 -0
  181. package/dist/components/kemet-field/docs/stories.js +105 -0
  182. package/dist/components/kemet-field/docs/stories.js.map +1 -0
  183. package/dist/components/kemet-field/kemet-field.d.ts +61 -0
  184. package/dist/components/kemet-field/kemet-field.js +102 -182
  185. package/dist/components/kemet-field/kemet-field.js.map +1 -0
  186. package/dist/components/kemet-field/styles.d.ts +1 -0
  187. package/dist/components/kemet-field/styles.js +61 -0
  188. package/dist/components/kemet-field/styles.js.map +1 -0
  189. package/dist/components/kemet-field/types.d.ts +13 -0
  190. package/dist/components/kemet-field/types.js +2 -0
  191. package/dist/components/kemet-field/types.js.map +1 -0
  192. package/dist/components/kemet-flipcard/docs/stories.d.ts +11 -0
  193. package/dist/components/kemet-flipcard/docs/stories.js +109 -0
  194. package/dist/components/kemet-flipcard/docs/stories.js.map +1 -0
  195. package/dist/components/kemet-flipcard/kemet-flipcard-trigger.d.ts +21 -0
  196. package/dist/components/kemet-flipcard/kemet-flipcard-trigger.js +29 -39
  197. package/dist/components/kemet-flipcard/kemet-flipcard-trigger.js.map +1 -0
  198. package/dist/components/kemet-flipcard/kemet-flipcard.d.ts +52 -0
  199. package/dist/components/kemet-flipcard/kemet-flipcard.js +97 -173
  200. package/dist/components/kemet-flipcard/kemet-flipcard.js.map +1 -0
  201. package/dist/components/kemet-flipcard/styles.d.ts +1 -0
  202. package/dist/components/kemet-flipcard/styles.js +85 -0
  203. package/dist/components/kemet-flipcard/styles.js.map +1 -0
  204. package/dist/components/kemet-flipcard/types.d.ts +7 -0
  205. package/dist/components/kemet-flipcard/types.js +2 -0
  206. package/dist/components/kemet-flipcard/types.js.map +1 -0
  207. package/dist/components/kemet-icon/docs/stories.d.ts +9 -0
  208. package/dist/components/kemet-icon/docs/stories.js +34 -0
  209. package/dist/components/kemet-icon/docs/stories.js.map +1 -0
  210. package/dist/components/kemet-icon/kemet-icon.d.ts +28 -0
  211. package/dist/components/kemet-icon/kemet-icon.js +86 -101
  212. package/dist/components/kemet-icon/kemet-icon.js.map +1 -0
  213. package/dist/components/kemet-icon/styles.d.ts +1 -0
  214. package/dist/components/kemet-icon/styles.js +9 -0
  215. package/dist/components/kemet-icon/styles.js.map +1 -0
  216. package/dist/components/kemet-icon/types.d.ts +5 -0
  217. package/dist/components/kemet-icon/types.js +2 -0
  218. package/dist/components/kemet-icon/types.js.map +1 -0
  219. package/dist/components/kemet-input/docs/stories.d.ts +9 -0
  220. package/dist/components/kemet-input/docs/stories.js +142 -0
  221. package/dist/components/kemet-input/docs/stories.js.map +1 -0
  222. package/dist/components/kemet-input/kemet-input.d.ts +193 -0
  223. package/dist/components/kemet-input/kemet-input.js +296 -447
  224. package/dist/components/kemet-input/kemet-input.js.map +1 -0
  225. package/dist/components/kemet-input/styles.d.ts +1 -0
  226. package/dist/components/kemet-input/styles.js +115 -0
  227. package/dist/components/kemet-input/styles.js.map +1 -0
  228. package/dist/components/kemet-input/types.d.ts +35 -0
  229. package/dist/components/kemet-input/types.js +2 -0
  230. package/dist/components/kemet-input/types.js.map +1 -0
  231. package/dist/components/kemet-modal/docs/stories.d.ts +10 -0
  232. package/dist/components/kemet-modal/docs/stories.js +101 -0
  233. package/dist/components/kemet-modal/docs/stories.js.map +1 -0
  234. package/dist/components/kemet-modal/kemet-modal-close.d.ts +21 -0
  235. package/dist/components/kemet-modal/kemet-modal-close.js +27 -30
  236. package/dist/components/kemet-modal/kemet-modal-close.js.map +1 -0
  237. package/dist/components/kemet-modal/kemet-modal.d.ts +49 -0
  238. package/dist/components/kemet-modal/kemet-modal.js +101 -115
  239. package/dist/components/kemet-modal/kemet-modal.js.map +1 -0
  240. package/dist/components/kemet-modal/styles.d.ts +2 -0
  241. package/dist/components/kemet-modal/styles.js +4 -4
  242. package/dist/components/kemet-modal/styles.js.map +1 -0
  243. package/dist/components/kemet-modal/types.d.ts +8 -0
  244. package/dist/components/kemet-modal/types.js +2 -0
  245. package/dist/components/kemet-modal/types.js.map +1 -0
  246. package/dist/components/kemet-password/docs/stories.d.ts +10 -0
  247. package/dist/components/kemet-password/docs/stories.js +37 -0
  248. package/dist/components/kemet-password/docs/stories.js.map +1 -0
  249. package/dist/components/kemet-password/kemet-password.d.ts +77 -0
  250. package/dist/components/kemet-password/kemet-password.js +142 -144
  251. package/dist/components/kemet-password/kemet-password.js.map +1 -0
  252. package/dist/components/kemet-password/styles.d.ts +1 -0
  253. package/dist/components/kemet-password/styles.js +5 -5
  254. package/dist/components/kemet-password/styles.js.map +1 -0
  255. package/dist/components/kemet-password/types.d.ts +10 -0
  256. package/dist/components/kemet-password/types.js +2 -0
  257. package/dist/components/kemet-password/types.js.map +1 -0
  258. package/dist/components/kemet-popper/docs/stories.d.ts +10 -0
  259. package/dist/components/kemet-popper/docs/stories.js +72 -0
  260. package/dist/components/kemet-popper/docs/stories.js.map +1 -0
  261. package/dist/components/kemet-popper/kemet-popper-close.d.ts +22 -0
  262. package/dist/components/kemet-popper/kemet-popper-close.js +49 -0
  263. package/dist/components/kemet-popper/kemet-popper-close.js.map +1 -0
  264. package/dist/components/kemet-popper/kemet-popper.d.ts +63 -0
  265. package/dist/components/kemet-popper/kemet-popper.js +182 -0
  266. package/dist/components/kemet-popper/kemet-popper.js.map +1 -0
  267. package/dist/components/kemet-popper/styles.d.ts +1 -0
  268. package/dist/components/kemet-popper/styles.effects.d.ts +8 -0
  269. package/dist/components/{kemet-popover → kemet-popper}/styles.effects.js +9 -16
  270. package/dist/components/kemet-popper/styles.effects.js.map +1 -0
  271. package/dist/components/kemet-popper/styles.js +28 -0
  272. package/dist/components/kemet-popper/styles.js.map +1 -0
  273. package/dist/components/kemet-popper/types.d.ts +3 -0
  274. package/dist/components/kemet-popper/types.js +2 -0
  275. package/dist/components/kemet-popper/types.js.map +1 -0
  276. package/dist/components/kemet-radio/docs/stories.d.ts +10 -0
  277. package/dist/components/kemet-radio/docs/stories.js +40 -0
  278. package/dist/components/kemet-radio/docs/stories.js.map +1 -0
  279. package/dist/components/kemet-radio/kemet-radio.d.ts +56 -0
  280. package/dist/components/kemet-radio/kemet-radio.js +76 -153
  281. package/dist/components/kemet-radio/kemet-radio.js.map +1 -0
  282. package/dist/components/kemet-radio/kemet-radios.d.ts +49 -0
  283. package/dist/components/kemet-radio/kemet-radios.js +112 -178
  284. package/dist/components/kemet-radio/kemet-radios.js.map +1 -0
  285. package/dist/components/kemet-radio/styles.d.ts +2 -0
  286. package/dist/components/kemet-radio/styles.js +102 -0
  287. package/dist/components/kemet-radio/styles.js.map +1 -0
  288. package/dist/components/kemet-radio/types.d.ts +20 -0
  289. package/dist/components/kemet-radio/types.js +2 -0
  290. package/dist/components/kemet-radio/types.js.map +1 -0
  291. package/dist/components/kemet-rotator/docs/stories.d.ts +9 -0
  292. package/dist/components/kemet-rotator/docs/stories.js +46 -0
  293. package/dist/components/kemet-rotator/docs/stories.js.map +1 -0
  294. package/dist/components/kemet-rotator/kemet-rotator.d.ts +40 -0
  295. package/dist/components/kemet-rotator/kemet-rotator.js +91 -180
  296. package/dist/components/kemet-rotator/kemet-rotator.js.map +1 -0
  297. package/dist/components/kemet-rotator/styles.d.ts +1 -0
  298. package/dist/components/kemet-rotator/styles.js +72 -0
  299. package/dist/components/kemet-rotator/styles.js.map +1 -0
  300. package/dist/components/kemet-rotator/types.d.ts +9 -0
  301. package/dist/components/kemet-rotator/types.js +2 -0
  302. package/dist/components/kemet-rotator/types.js.map +1 -0
  303. package/dist/components/kemet-scroll-link/docs/stories.d.ts +9 -0
  304. package/dist/components/kemet-scroll-link/docs/stories.js +97 -0
  305. package/dist/components/kemet-scroll-link/docs/stories.js.map +1 -0
  306. package/dist/components/kemet-scroll-link/kemet-scroll-link.d.ts +31 -0
  307. package/dist/components/kemet-scroll-link/kemet-scroll-link.js +62 -79
  308. package/dist/components/kemet-scroll-link/kemet-scroll-link.js.map +1 -0
  309. package/dist/components/kemet-scroll-link/types.d.ts +6 -0
  310. package/dist/components/kemet-scroll-link/types.js +2 -0
  311. package/dist/components/kemet-scroll-link/types.js.map +1 -0
  312. package/dist/components/kemet-scroll-nav/docs/stories.d.ts +10 -0
  313. package/dist/components/kemet-scroll-nav/docs/stories.js +162 -0
  314. package/dist/components/kemet-scroll-nav/docs/stories.js.map +1 -0
  315. package/dist/components/kemet-scroll-nav/kemet-scroll-nav.d.ts +34 -0
  316. package/dist/components/kemet-scroll-nav/kemet-scroll-nav.js +49 -86
  317. package/dist/components/kemet-scroll-nav/kemet-scroll-nav.js.map +1 -0
  318. package/dist/components/kemet-scroll-nav/styles.d.ts +1 -0
  319. package/dist/components/kemet-scroll-nav/styles.js +27 -0
  320. package/dist/components/kemet-scroll-nav/styles.js.map +1 -0
  321. package/dist/components/kemet-scroll-nav/types.d.ts +6 -0
  322. package/dist/components/kemet-scroll-nav/types.js +2 -0
  323. package/dist/components/kemet-scroll-nav/types.js.map +1 -0
  324. package/dist/components/kemet-scroll-snap/docs/stories.d.ts +11 -0
  325. package/dist/components/kemet-scroll-snap/docs/stories.js +131 -0
  326. package/dist/components/kemet-scroll-snap/docs/stories.js.map +1 -0
  327. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.d.ts +44 -0
  328. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.js +79 -124
  329. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.js.map +1 -0
  330. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-slide.d.ts +30 -0
  331. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-slide.js +36 -47
  332. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-slide.js.map +1 -0
  333. package/dist/components/kemet-scroll-snap/kemet-scroll-snap.d.ts +46 -0
  334. package/dist/components/kemet-scroll-snap/kemet-scroll-snap.js +93 -164
  335. package/dist/components/kemet-scroll-snap/kemet-scroll-snap.js.map +1 -0
  336. package/dist/components/kemet-scroll-snap/styles.d.ts +2 -0
  337. package/dist/components/kemet-scroll-snap/styles.js +74 -0
  338. package/dist/components/kemet-scroll-snap/styles.js.map +1 -0
  339. package/dist/components/kemet-scroll-snap/types.d.ts +20 -0
  340. package/dist/components/kemet-scroll-snap/types.js +2 -0
  341. package/dist/components/kemet-scroll-snap/types.js.map +1 -0
  342. package/dist/components/kemet-select/docs/stories.d.ts +10 -0
  343. package/dist/components/kemet-select/docs/stories.js +57 -0
  344. package/dist/components/kemet-select/docs/stories.js.map +1 -0
  345. package/dist/components/kemet-select/kemet-option.d.ts +29 -0
  346. package/dist/components/kemet-select/kemet-option.js +28 -33
  347. package/dist/components/kemet-select/kemet-option.js.map +1 -0
  348. package/dist/components/kemet-select/kemet-select.d.ts +110 -0
  349. package/dist/components/kemet-select/kemet-select.js +179 -265
  350. package/dist/components/kemet-select/kemet-select.js.map +1 -0
  351. package/dist/components/kemet-select/styles.d.ts +1 -0
  352. package/dist/components/kemet-select/styles.js +73 -0
  353. package/dist/components/kemet-select/styles.js.map +1 -0
  354. package/dist/components/kemet-select/types.d.ts +20 -0
  355. package/dist/components/kemet-select/types.js +2 -0
  356. package/dist/components/kemet-select/types.js.map +1 -0
  357. package/dist/components/kemet-sortable/docs/stories.d.ts +10 -0
  358. package/dist/components/kemet-sortable/docs/stories.js +34 -0
  359. package/dist/components/kemet-sortable/docs/stories.js.map +1 -0
  360. package/dist/components/kemet-sortable/kemet-sortable-item.d.ts +21 -0
  361. package/dist/components/kemet-sortable/kemet-sortable-item.js +21 -39
  362. package/dist/components/kemet-sortable/kemet-sortable-item.js.map +1 -0
  363. package/dist/components/kemet-sortable/kemet-sortable.d.ts +25 -0
  364. package/dist/components/kemet-sortable/kemet-sortable.js +61 -79
  365. package/dist/components/kemet-sortable/kemet-sortable.js.map +1 -0
  366. package/dist/components/kemet-sortable/styles.d.ts +2 -0
  367. package/dist/components/kemet-sortable/styles.js +22 -0
  368. package/dist/components/kemet-sortable/styles.js.map +1 -0
  369. package/dist/components/kemet-sortable/types.d.ts +3 -0
  370. package/dist/components/kemet-sortable/types.js +2 -0
  371. package/dist/components/kemet-sortable/types.js.map +1 -0
  372. package/dist/components/kemet-svgs/docs/stories.d.ts +10 -0
  373. package/dist/components/kemet-svgs/docs/stories.js +67 -0
  374. package/dist/components/kemet-svgs/docs/stories.js.map +1 -0
  375. package/dist/components/kemet-svgs/kemet-svg.d.ts +38 -0
  376. package/dist/components/kemet-svgs/kemet-svg.js +76 -90
  377. package/dist/components/kemet-svgs/kemet-svg.js.map +1 -0
  378. package/dist/components/kemet-svgs/kemet-svgs.d.ts +27 -0
  379. package/dist/components/kemet-svgs/kemet-svgs.js +39 -48
  380. package/dist/components/kemet-svgs/kemet-svgs.js.map +1 -0
  381. package/dist/components/kemet-svgs/types.d.ts +10 -0
  382. package/dist/components/kemet-svgs/types.js +2 -0
  383. package/dist/components/kemet-svgs/types.js.map +1 -0
  384. package/dist/components/kemet-tabs/docs/stories.d.ts +9 -0
  385. package/dist/components/kemet-tabs/docs/stories.js +142 -0
  386. package/dist/components/kemet-tabs/docs/stories.js.map +1 -0
  387. package/dist/components/kemet-tabs/kemet-tab-panel.d.ts +27 -0
  388. package/dist/components/kemet-tabs/kemet-tab-panel.js +36 -76
  389. package/dist/components/kemet-tabs/kemet-tab-panel.js.map +1 -0
  390. package/dist/components/kemet-tabs/kemet-tab.d.ts +37 -0
  391. package/dist/components/kemet-tabs/kemet-tab.js +57 -92
  392. package/dist/components/kemet-tabs/kemet-tab.js.map +1 -0
  393. package/dist/components/kemet-tabs/kemet-tabs.d.ts +91 -0
  394. package/dist/components/kemet-tabs/kemet-tabs.js +438 -473
  395. package/dist/components/kemet-tabs/kemet-tabs.js.map +1 -0
  396. package/dist/components/kemet-tabs/styles.d.ts +3 -0
  397. package/dist/components/kemet-tabs/styles.js +71 -3
  398. package/dist/components/kemet-tabs/styles.js.map +1 -0
  399. package/dist/components/kemet-tabs/types.d.ts +27 -0
  400. package/dist/components/kemet-tabs/types.js +2 -0
  401. package/dist/components/kemet-tabs/types.js.map +1 -0
  402. package/dist/components/kemet-textarea/docs/stories.d.ts +9 -0
  403. package/dist/components/kemet-textarea/docs/stories.js +88 -0
  404. package/dist/components/kemet-textarea/docs/stories.js.map +1 -0
  405. package/dist/components/kemet-textarea/kemet-textarea.d.ts +123 -0
  406. package/dist/components/kemet-textarea/kemet-textarea.js +235 -308
  407. package/dist/components/kemet-textarea/kemet-textarea.js.map +1 -0
  408. package/dist/components/kemet-textarea/styles.d.ts +1 -0
  409. package/dist/components/kemet-textarea/styles.js +69 -0
  410. package/dist/components/kemet-textarea/styles.js.map +1 -0
  411. package/dist/components/kemet-textarea/types.d.ts +20 -0
  412. package/dist/components/kemet-textarea/types.js +2 -0
  413. package/dist/components/kemet-textarea/types.js.map +1 -0
  414. package/dist/components/kemet-toggle/docs/stories.d.ts +9 -0
  415. package/dist/components/kemet-toggle/docs/stories.js +58 -0
  416. package/dist/components/kemet-toggle/docs/stories.js.map +1 -0
  417. package/dist/components/kemet-toggle/kemet-toggle.d.ts +60 -0
  418. package/dist/components/kemet-toggle/kemet-toggle.js +73 -169
  419. package/dist/components/kemet-toggle/kemet-toggle.js.map +1 -0
  420. package/dist/components/kemet-toggle/styles.d.ts +1 -0
  421. package/dist/components/kemet-toggle/styles.js +84 -0
  422. package/dist/components/kemet-toggle/styles.js.map +1 -0
  423. package/dist/components/kemet-toggle/types.d.ts +10 -0
  424. package/dist/components/kemet-toggle/types.js +2 -0
  425. package/dist/components/kemet-toggle/types.js.map +1 -0
  426. package/dist/components/kemet-tooltip/docs/stories.d.ts +10 -0
  427. package/dist/components/kemet-tooltip/docs/stories.js +72 -0
  428. package/dist/components/kemet-tooltip/docs/stories.js.map +1 -0
  429. package/dist/components/kemet-tooltip/kemet-tooltip.d.ts +33 -0
  430. package/dist/components/kemet-tooltip/kemet-tooltip.js +68 -0
  431. package/dist/components/kemet-tooltip/kemet-tooltip.js.map +1 -0
  432. package/dist/components/kemet-tooltip/styles.d.ts +1 -0
  433. package/dist/components/kemet-tooltip/styles.js +61 -0
  434. package/dist/components/kemet-tooltip/styles.js.map +1 -0
  435. package/dist/components/kemet-tooltip/types.d.ts +3 -0
  436. package/dist/components/kemet-tooltip/types.js +2 -0
  437. package/dist/components/kemet-tooltip/types.js.map +1 -0
  438. package/dist/components/kemet-tracker/docs/stories.d.ts +10 -0
  439. package/dist/components/kemet-tracker/docs/stories.js +46 -0
  440. package/dist/components/kemet-tracker/docs/stories.js.map +1 -0
  441. package/dist/components/kemet-tracker/kemet-tracker-step.d.ts +63 -0
  442. package/dist/components/kemet-tracker/kemet-tracker-step.js +75 -76
  443. package/dist/components/kemet-tracker/kemet-tracker-step.js.map +1 -0
  444. package/dist/components/kemet-tracker/kemet-tracker.d.ts +26 -0
  445. package/dist/components/kemet-tracker/kemet-tracker.js +59 -65
  446. package/dist/components/kemet-tracker/kemet-tracker.js.map +1 -0
  447. package/dist/components/kemet-tracker/styles.d.ts +1 -0
  448. package/dist/components/kemet-tracker/styles.js +2 -2
  449. package/dist/components/kemet-tracker/styles.js.map +1 -0
  450. package/dist/components/kemet-tracker/types.d.ts +13 -0
  451. package/dist/components/kemet-tracker/types.js +2 -0
  452. package/dist/components/kemet-tracker/types.js.map +1 -0
  453. package/dist/components/kemet-upload/docs/stories.d.ts +10 -0
  454. package/dist/components/kemet-upload/docs/stories.js +57 -0
  455. package/dist/components/kemet-upload/docs/stories.js.map +1 -0
  456. package/dist/components/kemet-upload/kemet-upload-file.d.ts +46 -0
  457. package/dist/components/kemet-upload/kemet-upload-file.js +69 -117
  458. package/dist/components/kemet-upload/kemet-upload-file.js.map +1 -0
  459. package/dist/components/kemet-upload/kemet-upload.d.ts +58 -0
  460. package/dist/components/kemet-upload/kemet-upload.js +105 -169
  461. package/dist/components/kemet-upload/kemet-upload.js.map +1 -0
  462. package/dist/components/kemet-upload/styles.d.ts +3 -0
  463. package/dist/components/kemet-upload/styles.js +117 -1
  464. package/dist/components/kemet-upload/styles.js.map +1 -0
  465. package/dist/components/kemet-upload/types.d.ts +21 -0
  466. package/dist/components/kemet-upload/types.js +2 -0
  467. package/dist/components/kemet-upload/types.js.map +1 -0
  468. package/dist/kemet-components.bundle.js +88 -0
  469. package/dist/kemet-components.bundle.js.map +1 -0
  470. package/dist/kemet-components.cjs +8599 -7472
  471. package/dist/kemet-components.js +8602 -7469
  472. package/dist/styles/core/attributes.scss +2 -2
  473. package/dist/styles/core/layout.scss +2 -2
  474. package/dist/styles/kemet.base.css +107 -0
  475. package/dist/styles/kemet.base.css.map +1 -0
  476. package/dist/styles/kemet.base.scss +28 -0
  477. package/dist/styles/kemet.core.css +163 -887
  478. package/dist/styles/kemet.core.css.map +1 -1
  479. package/dist/styles/kemet.core.scss +0 -1
  480. package/dist/styles/{core → shared}/_config.scss +6 -2
  481. package/dist/styles/{core → shared}/_helpers.scss +55 -4
  482. package/dist/tsconfig.tsbuildinfo +1 -0
  483. package/dist/utilities/controllers/forms.d.ts +11 -0
  484. package/dist/utilities/controllers/forms.js +93 -114
  485. package/dist/utilities/controllers/forms.js.map +1 -0
  486. package/dist/utilities/misc/constants.d.ts +5 -0
  487. package/dist/utilities/misc/constants.js +6 -0
  488. package/dist/utilities/misc/constants.js.map +1 -0
  489. package/dist/utilities/misc/events.d.ts +1 -0
  490. package/dist/utilities/misc/events.js +2 -3
  491. package/dist/utilities/misc/events.js.map +1 -0
  492. package/package.json +69 -76
  493. package/dist/components/kemet-popover/kemet-popover-close.js +0 -57
  494. package/dist/components/kemet-popover/kemet-popover.js +0 -418
  495. package/dist/components/kemet-popover/styles.tooltip.js +0 -96
  496. package/dist/kemet-components.min.js +0 -3689
  497. package/dist/styles/core/base.scss +0 -38
@@ -0,0 +1,51 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * @since 1.0.0
4
+ * @status stable
5
+ *
6
+ * @tagname kemet-accordion-panel
7
+ * @summary A blade for an accordion.
8
+ *
9
+ * @prop {boolean} opened - Determines the opened state of the panel
10
+ * @prop {string} maxHeight - Sets the max height of the panel's body
11
+ * @prop {string} slug - Uniquely identifies a panel for accessibility purposes
12
+ *
13
+ * @slot trigger - The trigger button that opens and closes the panel.
14
+ * @slot body - The body content of the panel.
15
+ * @slot icon - The icon for the panel.
16
+ *
17
+ * @cssproperty --kemet-accordion-panel-transition-speed - The speed of the opening and closing effect. Default: 0.3s.
18
+ *
19
+ * @csspart trigger - Contains the trigger for the panel.
20
+ * @csspart body - Contains the body for the panel.
21
+ *
22
+ * @event kemet-accordion-panel-opened - Fires when a panel is opened
23
+ * @event kemet-accordion-panel-closed - Fires when a panel is closed
24
+ *
25
+ */
26
+ export default class KemetAccordionPanel extends LitElement {
27
+ static styles: import("lit").CSSResult[];
28
+ opened: boolean | undefined;
29
+ maxHeight: string;
30
+ slug: string;
31
+ /** @internal */
32
+ focusableSelector: string;
33
+ /** @internal */
34
+ bodyElement: HTMLElement | null;
35
+ /** @internal */
36
+ bodyElementFirst: HTMLElement | null | undefined;
37
+ /** @internal */
38
+ bodyElementLast: HTMLElement | null | undefined;
39
+ firstUpdated(): void;
40
+ updated(prevProps: any): void;
41
+ render(): import("lit-html").TemplateResult<1>;
42
+ toggle(): void;
43
+ focusableBodyElements(): void;
44
+ a11y(): void;
45
+ handleKeyDown(event: any): void;
46
+ }
47
+ declare global {
48
+ interface HTMLElementTagNameMap {
49
+ 'kemet-accordion-panel': KemetAccordionPanel;
50
+ }
51
+ }
@@ -1,7 +1,8 @@
1
- import { html, css, LitElement } from 'lit';
2
- import { emitEvent } from '../../utilities/misc/events.js';
3
- import '../kemet-icon/kemet-icon.js';
4
-
1
+ import { __decorate } from "tslib";
2
+ import { html, LitElement } from 'lit';
3
+ import { customElement, property, state } from 'lit/decorators.js';
4
+ import { emitEvent } from '../../utilities/misc/events';
5
+ import { stylesPanel } from './styles';
5
6
  /**
6
7
  * @since 1.0.0
7
8
  * @status stable
@@ -26,100 +27,39 @@ import '../kemet-icon/kemet-icon.js';
26
27
  * @event kemet-accordion-panel-closed - Fires when a panel is closed
27
28
  *
28
29
  */
29
-
30
- export default class KemetAccordionPanel extends LitElement {
31
- static get styles() {
32
- return [
33
- css`
34
- *,
35
- *::before,
36
- *::after {
37
- box-sizing: border-box;
38
- }
39
-
40
- :host {
41
- display: block;
42
- padding: 1.5rem 1rem;
43
- border-bottom: 1px solid var(--kemet-color-primary);
44
- }
45
-
46
- .trigger {
47
- cursor: pointer;
48
- display: grid;
49
- gap: 1rem;
50
- grid-template-columns: 1fr auto;
51
- width: 100%;
52
- text-align: left;
53
- padding: 0;
54
- border: none;
55
- background: none;
56
- }
57
-
58
- .body {
59
- overflow: hidden;
60
- transition: all var(--kemet-accordion-panel-transition-speed, 300ms) ease;
30
+ let KemetAccordionPanel = class KemetAccordionPanel extends LitElement {
31
+ constructor() {
32
+ super(...arguments);
33
+ this.opened = undefined;
34
+ this.maxHeight = '0px';
35
+ this.slug = 'panel';
36
+ }
37
+ firstUpdated() {
38
+ var _a, _b;
39
+ this.focusableSelector = 'body, a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]';
40
+ this.bodyElement = this.querySelector('[slot="body"]');
41
+ this.bodyElementFirst = (_a = this.bodyElement) === null || _a === void 0 ? void 0 : _a.querySelector(':first-child');
42
+ this.bodyElementLast = (_b = this.bodyElement) === null || _b === void 0 ? void 0 : _b.querySelector(':last-child');
43
+ if (this.bodyElementFirst)
44
+ this.bodyElementFirst.style.marginTop = '0';
45
+ if (this.bodyElementLast)
46
+ this.bodyElementLast.style.marginBottom = '0';
47
+ }
48
+ updated(prevProps) {
49
+ var _a;
50
+ if (!prevProps.get('opened') && this.opened === true) {
51
+ this.maxHeight = `${(_a = this.bodyElement) === null || _a === void 0 ? void 0 : _a.offsetHeight}px`;
52
+ emitEvent(this, 'kemet-accordion-panel-opened', this);
61
53
  }
62
-
63
- ::slotted([slot='body']) {
64
- padding: 1rem 0;
54
+ if (prevProps.get('opened') && this.opened === false) {
55
+ this.maxHeight = '0px';
56
+ emitEvent(this, 'kemet-accordion-panel-closed', this);
65
57
  }
66
- `,
67
- ];
68
- }
69
-
70
- static get properties() {
71
- return {
72
- opened: {
73
- type: Boolean,
74
- reflect: true,
75
- },
76
- maxHeight: {
77
- type: String,
78
- attribute: 'max-height',
79
- },
80
- slug: {
81
- type: String,
82
- },
83
- };
84
- }
85
-
86
- constructor() {
87
- super();
88
-
89
- // managed properties
90
- this.opened = undefined;
91
- this.maxHeight = '0px';
92
- this.slug = 'panel';
93
- }
94
-
95
- firstUpdated() {
96
- /** @internal */
97
- this.focusableSelector = 'body, a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]';
98
- this.bodyElement = this.querySelector('[slot="body"]');
99
- this.bodyElementFirst = this.bodyElement.querySelector(':first-child');
100
- this.bodyElementLast = this.bodyElement.querySelector(':last-child');
101
-
102
- if (this.bodyElementFirst) this.bodyElementFirst.style.marginTop = 0;
103
- if (this.bodyELementLast) this.bodyElementLast.style.marginBottom = 0;
104
- }
105
-
106
- updated(prevProps) {
107
- if (!prevProps.get('opened') && this.opened === true) {
108
- this.maxHeight = `${this.bodyElement.offsetHeight}px`;
109
- emitEvent(this, 'kemet-accordion-panel-opened', this);
110
- }
111
-
112
- if (prevProps.get('opened') && this.opened === false) {
113
- this.maxHeight = '0px';
114
- emitEvent(this, 'kemet-accordion-panel-closed', this);
58
+ this.a11y();
59
+ this.focusableBodyElements();
115
60
  }
116
-
117
- this.a11y();
118
- this.focusableBodyElements();
119
- }
120
-
121
- render() {
122
- return html`
61
+ render() {
62
+ return html `
123
63
  <button
124
64
  class="trigger"
125
65
  part="trigger"
@@ -133,44 +73,64 @@ export default class KemetAccordionPanel extends LitElement {
133
73
  <slot name="body"></slot>
134
74
  </section>
135
75
  `;
136
- }
137
-
138
- toggle() {
139
- this.opened = !this.opened;
140
- }
141
-
142
- focusableBodyElements() {
143
- const focusableElements = this.bodyElement.querySelectorAll(this.focusableSelector);
144
-
145
- if (this.opened) {
146
- focusableElements.forEach((element) => {
147
- element.removeAttribute('tabindex');
148
- });
149
- } else {
150
- focusableElements.forEach((element) => {
151
- element.setAttribute('tabindex', '-1');
152
- });
153
76
  }
154
- }
155
-
156
- a11y() {
157
- const trigger = this.shadowRoot.querySelector('.trigger');
158
- const body = this.shadowRoot.querySelector('.body');
159
-
160
- trigger.setAttribute('id', `${this.slug}-button`);
161
- trigger.setAttribute('aria-controls', `${this.slug}-content`);
162
-
163
- body.setAttribute('id', `${this.slug}-content`);
164
- body.setAttribute('aria-labelledby', `${this.slug}-button`);
165
- body.setAttribute('aria-hidden', `${!this.opened}`);
166
- }
167
-
168
- handleKeyDown(event) {
169
- if (event.key === 'Space' || event.key === 'Enter') {
170
- this.toggle();
77
+ toggle() {
78
+ this.opened = !this.opened;
79
+ }
80
+ focusableBodyElements() {
81
+ var _a;
82
+ const focusableElements = (_a = this.bodyElement) === null || _a === void 0 ? void 0 : _a.querySelectorAll(this.focusableSelector);
83
+ if (this.opened) {
84
+ focusableElements === null || focusableElements === void 0 ? void 0 : focusableElements.forEach((element) => {
85
+ element.removeAttribute('tabindex');
86
+ });
87
+ }
88
+ else {
89
+ focusableElements === null || focusableElements === void 0 ? void 0 : focusableElements.forEach((element) => {
90
+ element.setAttribute('tabindex', '-1');
91
+ });
92
+ }
93
+ }
94
+ a11y() {
95
+ var _a, _b;
96
+ const trigger = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.trigger');
97
+ const body = (_b = this.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.body');
98
+ trigger === null || trigger === void 0 ? void 0 : trigger.setAttribute('id', `${this.slug}-button`);
99
+ trigger === null || trigger === void 0 ? void 0 : trigger.setAttribute('aria-controls', `${this.slug}-content`);
100
+ body === null || body === void 0 ? void 0 : body.setAttribute('id', `${this.slug}-content`);
101
+ body === null || body === void 0 ? void 0 : body.setAttribute('aria-labelledby', `${this.slug}-button`);
102
+ body === null || body === void 0 ? void 0 : body.setAttribute('aria-hidden', `${!this.opened}`);
103
+ }
104
+ handleKeyDown(event) {
105
+ if (event.key === 'Space' || event.key === 'Enter') {
106
+ this.toggle();
107
+ }
171
108
  }
172
- }
173
- }
174
-
175
- // eslint-disable-next-line no-unused-expressions
176
- customElements.get('kemet-accordion-panel') || customElements.define('kemet-accordion-panel', KemetAccordionPanel);
109
+ };
110
+ KemetAccordionPanel.styles = [stylesPanel];
111
+ __decorate([
112
+ property({ type: Boolean, reflect: true })
113
+ ], KemetAccordionPanel.prototype, "opened", void 0);
114
+ __decorate([
115
+ property({ type: String, attribute: 'max-height' })
116
+ ], KemetAccordionPanel.prototype, "maxHeight", void 0);
117
+ __decorate([
118
+ property({ type: String })
119
+ ], KemetAccordionPanel.prototype, "slug", void 0);
120
+ __decorate([
121
+ state()
122
+ ], KemetAccordionPanel.prototype, "focusableSelector", void 0);
123
+ __decorate([
124
+ state()
125
+ ], KemetAccordionPanel.prototype, "bodyElement", void 0);
126
+ __decorate([
127
+ state()
128
+ ], KemetAccordionPanel.prototype, "bodyElementFirst", void 0);
129
+ __decorate([
130
+ state()
131
+ ], KemetAccordionPanel.prototype, "bodyElementLast", void 0);
132
+ KemetAccordionPanel = __decorate([
133
+ customElement('kemet-accordion-panel')
134
+ ], KemetAccordionPanel);
135
+ export default KemetAccordionPanel;
136
+ //# sourceMappingURL=kemet-accordion-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kemet-accordion-panel.js","sourceRoot":"","sources":["../../../src/components/kemet-accordion/kemet-accordion-panel.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { emitEvent } from '../../utilities/misc/events';\nimport { stylesPanel } from './styles';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-accordion-panel\n * @summary A blade for an accordion.\n *\n * @prop {boolean} opened - Determines the opened state of the panel\n * @prop {string} maxHeight - Sets the max height of the panel's body\n * @prop {string} slug - Uniquely identifies a panel for accessibility purposes\n *\n * @slot trigger - The trigger button that opens and closes the panel.\n * @slot body - The body content of the panel.\n * @slot icon - The icon for the panel.\n *\n * @cssproperty --kemet-accordion-panel-transition-speed - The speed of the opening and closing effect. Default: 0.3s.\n *\n * @csspart trigger - Contains the trigger for the panel.\n * @csspart body - Contains the body for the panel.\n *\n * @event kemet-accordion-panel-opened - Fires when a panel is opened\n * @event kemet-accordion-panel-closed - Fires when a panel is closed\n *\n */\n\n@customElement('kemet-accordion-panel')\nexport default class KemetAccordionPanel extends LitElement {\n static styles = [stylesPanel];\n\n @property({ type: Boolean, reflect: true })\n opened: boolean | undefined = undefined;\n\n @property({ type: String, attribute: 'max-height'})\n maxHeight: string = '0px';\n\n @property({ type: String })\n slug: string = 'panel';\n\n /** @internal */\n @state()\n focusableSelector: string;\n\n /** @internal */\n @state()\n bodyElement: HTMLElement | null;\n\n /** @internal */\n @state()\n bodyElementFirst: HTMLElement | null | undefined;\n\n /** @internal */\n @state()\n bodyElementLast: HTMLElement | null | undefined;\n\n firstUpdated() {\n this.focusableSelector = 'body, a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]';\n this.bodyElement = this.querySelector('[slot=\"body\"]');\n this.bodyElementFirst = this.bodyElement?.querySelector(':first-child');\n this.bodyElementLast = this.bodyElement?.querySelector(':last-child');\n\n if (this.bodyElementFirst) this.bodyElementFirst.style.marginTop = '0';\n if (this.bodyElementLast) this.bodyElementLast.style.marginBottom = '0';\n }\n\n updated(prevProps) {\n if (!prevProps.get('opened') && this.opened === true) {\n this.maxHeight = `${this.bodyElement?.offsetHeight}px`;\n emitEvent(this, 'kemet-accordion-panel-opened', this);\n }\n\n if (prevProps.get('opened') && this.opened === false) {\n this.maxHeight = '0px';\n emitEvent(this, 'kemet-accordion-panel-closed', this);\n }\n\n this.a11y();\n this.focusableBodyElements();\n }\n\n render() {\n return html`\n <button\n class=\"trigger\"\n part=\"trigger\"\n @click=${() => this.toggle()}\n @keydown=${event => this.handleKeyDown(event)}\n >\n <slot name=\"trigger\"></slot>\n <slot name=\"icon\"></slot>\n </button>\n <section class=\"body\" part=\"body\" style=\"max-height:${this.maxHeight};\">\n <slot name=\"body\"></slot>\n </section>\n `;\n }\n\n toggle() {\n this.opened = !this.opened;\n }\n\n focusableBodyElements() {\n const focusableElements = this.bodyElement?.querySelectorAll(this.focusableSelector);\n\n if (this.opened) {\n focusableElements?.forEach((element) => {\n element.removeAttribute('tabindex');\n });\n } else {\n focusableElements?.forEach((element) => {\n element.setAttribute('tabindex', '-1');\n });\n }\n }\n\n a11y() {\n const trigger = this.shadowRoot?.querySelector('.trigger');\n const body = this.shadowRoot?.querySelector('.body');\n\n trigger?.setAttribute('id', `${this.slug}-button`);\n trigger?.setAttribute('aria-controls', `${this.slug}-content`);\n\n body?.setAttribute('id', `${this.slug}-content`);\n body?.setAttribute('aria-labelledby', `${this.slug}-button`);\n body?.setAttribute('aria-hidden', `${!this.opened}`);\n }\n\n handleKeyDown(event) {\n if (event.key === 'Space' || event.key === 'Enter') {\n this.toggle();\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-accordion-panel': KemetAccordionPanel\n }\n}\n"]}
@@ -0,0 +1,37 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * @since 1.0.0
4
+ * @status stable
5
+ *
6
+ * @tagname kemet-accordion
7
+ * @summary A component that acts like a standard accordion.
8
+ *
9
+ * @prop {number} currentPanel - The index value for the most recently opened panel
10
+ * @prop {boolean} togglePanels - Support for closing all inactive panels when one is opened
11
+ *
12
+ */
13
+ export default class KemetAccordion extends LitElement {
14
+ static styles: import("lit").CSSResult[];
15
+ currentPanel: number;
16
+ togglePanels: boolean;
17
+ /** @internal */
18
+ panels: any;
19
+ /** @internal */
20
+ onKeyDown: (event: any) => any;
21
+ /** @internal */
22
+ currentPanelFocus: number;
23
+ constructor();
24
+ firstUpdated(): void;
25
+ render(): import("lit-html").TemplateResult<1>;
26
+ handleSlotChange(): void;
27
+ handlePanelOpened(event: any): void;
28
+ navigatePanels(direction: any): void;
29
+ handleKeyDown(event: any): void;
30
+ expandAll(): void;
31
+ collapseAll(): void;
32
+ }
33
+ declare global {
34
+ interface HTMLElementTagNameMap {
35
+ 'kemet-accordion': KemetAccordion;
36
+ }
37
+ }
@@ -1,5 +1,7 @@
1
- import { html, css, LitElement } from 'lit';
2
-
1
+ import { __decorate } from "tslib";
2
+ import { html, LitElement } from 'lit';
3
+ import { customElement, property, state } from 'lit/decorators.js';
4
+ import { stylesBase } from './styles';
3
5
  /**
4
6
  * @since 1.0.0
5
7
  * @status stable
@@ -11,135 +13,117 @@ import { html, css, LitElement } from 'lit';
11
13
  * @prop {boolean} togglePanels - Support for closing all inactive panels when one is opened
12
14
  *
13
15
  */
14
-
15
- export default class KemetAccordion extends LitElement {
16
- static get styles() {
17
- return [
18
- css`
19
- :host {
20
- display: block;
16
+ let KemetAccordion = class KemetAccordion extends LitElement {
17
+ constructor() {
18
+ super();
19
+ this.togglePanels = false;
20
+ // bindings
21
+ this.addEventListener('kemet-accordion-panel-opened', this.handlePanelOpened.bind(this));
22
+ }
23
+ firstUpdated() {
24
+ this.onKeyDown = event => this.handleKeyDown(event);
25
+ }
26
+ render() {
27
+ return html `<slot @slotchange=${() => this.handleSlotChange()}></slot>`;
28
+ }
29
+ handleSlotChange() {
30
+ this.panels = this.querySelectorAll('kemet-accordion-panel');
31
+ this.panels.forEach((panel) => {
32
+ panel.removeEventListener('keydown', this.onKeyDown);
33
+ panel.addEventListener('keydown', this.onKeyDown);
34
+ });
35
+ }
36
+ handlePanelOpened(event) {
37
+ if (this.togglePanels) {
38
+ this.panels.forEach((panel) => {
39
+ if (panel !== event.detail) {
40
+ panel.opened = false;
41
+ }
42
+ });
21
43
  }
22
- `,
23
- ];
24
- }
25
-
26
- static get properties() {
27
- return {
28
- currentPanel: {
29
- type: Number,
30
- },
31
- togglePanels: {
32
- type: Boolean,
33
- attribute: 'toggle-panels',
34
- },
35
- };
36
- }
37
-
38
- constructor() {
39
- super();
40
-
41
- // managed properties
42
- this.togglePanels = false;
43
- this.currentPanel = undefined;
44
-
45
- // bindings
46
- this.addEventListener('kemet-accordion-panel-opened', this.handlePanelOpened.bind(this));
47
- }
48
-
49
- firstUpdated() {
50
- this.onKeyDown = event => this.handleKeyDown(event);
51
- }
52
-
53
- render() {
54
- return html`<slot @slotchange=${event => this.handleSlotChange(event)}></slot>`;
55
- }
56
-
57
- handleSlotChange() {
58
- this.panels = this.querySelectorAll('kemet-accordion-panel');
59
-
60
- this.panels.forEach((panel) => {
61
- panel.removeEventListener('keydown', this.onKeyDown);
62
- panel.addEventListener('keydown', this.onKeyDown);
63
- });
64
- }
65
-
66
- handlePanelOpened(event) {
67
- if (this.togglePanels) {
68
- this.panels.forEach((panel) => {
69
- if (panel !== event.detail) {
70
- panel.opened = false;
44
+ }
45
+ navigatePanels(direction) {
46
+ switch (direction) {
47
+ case 'home':
48
+ this.currentPanel = 0;
49
+ break;
50
+ case 'end':
51
+ this.currentPanel = this.panels.length - 1;
52
+ break;
53
+ case 'next':
54
+ this.currentPanel += 1;
55
+ break;
56
+ case 'prev':
57
+ this.currentPanel -= 1;
58
+ break;
59
+ default:
60
+ this.currentPanelFocus = 0;
61
+ break;
62
+ }
63
+ if (this.currentPanel > this.panels.length - 1)
64
+ this.currentPanel = 0;
65
+ if (this.currentPanel < 0)
66
+ this.currentPanel = this.panels.length - 1;
67
+ this.panels[this.currentPanel].shadowRoot.querySelector('button').focus();
68
+ }
69
+ handleKeyDown(event) {
70
+ switch (event.key) {
71
+ case 'Enter':
72
+ case 'Space':
73
+ event.preventDefault();
74
+ event.target.click();
75
+ break;
76
+ case 'ArrowLeft':
77
+ case 'ArrowUp':
78
+ event.preventDefault();
79
+ this.navigatePanels('prev');
80
+ break;
81
+ case 'ArrowRight':
82
+ case 'ArrowDown':
83
+ event.preventDefault();
84
+ this.navigatePanels('next');
85
+ break;
86
+ case 'End':
87
+ event.preventDefault();
88
+ this.navigatePanels('end');
89
+ break;
90
+ case 'Home':
91
+ event.preventDefault();
92
+ this.navigatePanels('home');
93
+ break;
94
+ default:
95
+ break;
71
96
  }
72
- });
73
97
  }
74
- }
75
-
76
- navigatePanels(direction) {
77
- switch (direction) {
78
- case 'home':
79
- this.currentPanel = 0;
80
- break;
81
- case 'end':
82
- this.currentPanel = this.panels.length - 1;
83
- break;
84
- case 'next':
85
- this.currentPanel += 1;
86
- break;
87
- case 'prev':
88
- this.currentPanel -= 1;
89
- break;
90
- default:
91
- this.currentPanelFocus = 0;
92
- break;
98
+ expandAll() {
99
+ this.panels.forEach((panel) => {
100
+ panel.opened = true;
101
+ });
93
102
  }
94
-
95
- if (this.currentPanel > this.panels.length - 1) this.currentPanel = 0;
96
- if (this.currentPanel < 0) this.currentPanel = this.panels.length - 1;
97
-
98
- this.panels[this.currentPanel].shadowRoot.querySelector('button').focus();
99
- }
100
-
101
- handleKeyDown(event) {
102
- switch (event.key) {
103
- case 'Enter':
104
- case 'Space':
105
- event.preventDefault();
106
- event.target.click();
107
- break;
108
- case 'ArrowLeft':
109
- case 'ArrowUp':
110
- event.preventDefault();
111
- this.navigatePanels('prev');
112
- break;
113
- case 'ArrowRight':
114
- case 'ArrowDown':
115
- event.preventDefault();
116
- this.navigatePanels('next');
117
- break;
118
- case 'End':
119
- event.preventDefault();
120
- this.navigatePanels('end');
121
- break;
122
- case 'Home':
123
- event.preventDefault();
124
- this.navigatePanels('home');
125
- break;
126
- default:
127
- break;
103
+ collapseAll() {
104
+ this.panels.forEach((panel) => {
105
+ panel.opened = false;
106
+ });
128
107
  }
129
- }
130
-
131
- expandAll() {
132
- this.panels.forEach((panel) => {
133
- panel.opened = true;
134
- });
135
- }
136
-
137
- collapseAll() {
138
- this.panels.forEach((panel) => {
139
- panel.opened = false;
140
- });
141
- }
142
- }
143
-
144
- // eslint-disable-next-line no-unused-expressions
145
- customElements.get('kemet-accordion') || customElements.define('kemet-accordion', KemetAccordion);
108
+ };
109
+ KemetAccordion.styles = [stylesBase];
110
+ __decorate([
111
+ property({ type: Number })
112
+ ], KemetAccordion.prototype, "currentPanel", void 0);
113
+ __decorate([
114
+ property({ type: Boolean, attribute: 'toggle-panels ' })
115
+ ], KemetAccordion.prototype, "togglePanels", void 0);
116
+ __decorate([
117
+ state()
118
+ ], KemetAccordion.prototype, "panels", void 0);
119
+ __decorate([
120
+ state()
121
+ ], KemetAccordion.prototype, "onKeyDown", void 0);
122
+ __decorate([
123
+ state()
124
+ ], KemetAccordion.prototype, "currentPanelFocus", void 0);
125
+ KemetAccordion = __decorate([
126
+ customElement('kemet-accordion')
127
+ ], KemetAccordion);
128
+ export default KemetAccordion;
129
+ //# sourceMappingURL=kemet-accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kemet-accordion.js","sourceRoot":"","sources":["../../../src/components/kemet-accordion/kemet-accordion.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { stylesBase } from './styles';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-accordion\n * @summary A component that acts like a standard accordion.\n *\n * @prop {number} currentPanel - The index value for the most recently opened panel\n * @prop {boolean} togglePanels - Support for closing all inactive panels when one is opened\n *\n */\n\n@customElement('kemet-accordion')\nexport default class KemetAccordion extends LitElement {\n static styles = [stylesBase];\n\n @property({ type: Number })\n currentPanel: number;\n\n @property({ type: Boolean, attribute: 'toggle-panels '})\n togglePanels: boolean = false;\n\n /** @internal */\n @state()\n panels: any;\n\n /** @internal */\n @state()\n onKeyDown: (event: any) => any;\n\n /** @internal */\n @state()\n currentPanelFocus: number;\n\n constructor() {\n super();\n\n // bindings\n this.addEventListener('kemet-accordion-panel-opened', this.handlePanelOpened.bind(this));\n }\n\n firstUpdated() {\n this.onKeyDown = event => this.handleKeyDown(event);\n }\n\n render() {\n return html`<slot @slotchange=${() => this.handleSlotChange()}></slot>`;\n }\n\n handleSlotChange() {\n this.panels = this.querySelectorAll('kemet-accordion-panel');\n\n this.panels.forEach((panel) => {\n panel.removeEventListener('keydown', this.onKeyDown);\n panel.addEventListener('keydown', this.onKeyDown);\n });\n }\n\n handlePanelOpened(event) {\n if (this.togglePanels) {\n this.panels.forEach((panel: any) => {\n if (panel !== event.detail) {\n panel.opened = false;\n }\n });\n }\n }\n\n navigatePanels(direction) {\n switch (direction) {\n case 'home':\n this.currentPanel = 0;\n break;\n case 'end':\n this.currentPanel = this.panels.length - 1;\n break;\n case 'next':\n this.currentPanel += 1;\n break;\n case 'prev':\n this.currentPanel -= 1;\n break;\n default:\n this.currentPanelFocus = 0;\n break;\n }\n\n if (this.currentPanel > this.panels.length - 1) this.currentPanel = 0;\n if (this.currentPanel < 0) this.currentPanel = this.panels.length - 1;\n\n this.panels[this.currentPanel].shadowRoot.querySelector('button').focus();\n }\n\n handleKeyDown(event) {\n switch (event.key) {\n case 'Enter':\n case 'Space':\n event.preventDefault();\n event.target.click();\n break;\n case 'ArrowLeft':\n case 'ArrowUp':\n event.preventDefault();\n this.navigatePanels('prev');\n break;\n case 'ArrowRight':\n case 'ArrowDown':\n event.preventDefault();\n this.navigatePanels('next');\n break;\n case 'End':\n event.preventDefault();\n this.navigatePanels('end');\n break;\n case 'Home':\n event.preventDefault();\n this.navigatePanels('home');\n break;\n default:\n break;\n }\n }\n\n expandAll() {\n this.panels.forEach((panel) => {\n panel.opened = true;\n });\n }\n\n collapseAll() {\n this.panels.forEach((panel) => {\n panel.opened = false;\n });\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-accordion': KemetAccordion\n }\n}\n"]}
@@ -0,0 +1,10 @@
1
+ import type { Meta, StoryObj } from '@storybook/web-components';
2
+ import './kemet-accordion';
3
+ import './kemet-accordion-panel';
4
+ import '../kemet-tabs/kemet-tabs';
5
+ import '../kemet-tabs/kemet-tab';
6
+ import '../kemet-tabs/kemet-tab-panel';
7
+ declare const meta: Meta;
8
+ export default meta;
9
+ declare type Story = StoryObj;
10
+ export declare const Standard: Story;