kemet-ui 3.0.0 → 3.1.0

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 (326) hide show
  1. package/custom-elements.json +1588 -871
  2. package/dist/components/kemet-accordion/docs/stories.d.ts +12 -0
  3. package/dist/components/kemet-accordion/docs/stories.js +99 -0
  4. package/dist/components/kemet-accordion/docs/stories.js.map +1 -0
  5. package/dist/components/kemet-accordion/kemet-accordion-panel.d.ts +2 -2
  6. package/dist/components/kemet-accordion/kemet-accordion-panel.js +1 -1
  7. package/dist/components/kemet-accordion/kemet-accordion-panel.js.map +1 -1
  8. package/dist/components/kemet-accordion/kemet-accordion.d.ts +3 -3
  9. package/dist/components/kemet-accordion/kemet-accordion.js +2 -1
  10. package/dist/components/kemet-accordion/kemet-accordion.js.map +1 -1
  11. package/dist/components/kemet-accordion/spec.d.ts +2 -0
  12. package/dist/components/kemet-accordion/spec.js +132 -0
  13. package/dist/components/kemet-accordion/spec.js.map +1 -0
  14. package/dist/components/kemet-alert/docs/stories.d.ts +1 -1
  15. package/dist/components/kemet-alert/docs/stories.js +20 -19
  16. package/dist/components/kemet-alert/docs/stories.js.map +1 -1
  17. package/dist/components/kemet-alert/kemet-alert.d.ts +2 -2
  18. package/dist/components/kemet-alert/kemet-alert.js.map +1 -1
  19. package/dist/components/kemet-alert/spec.d.ts +1 -0
  20. package/dist/components/kemet-alert/spec.js +35 -0
  21. package/dist/components/kemet-alert/spec.js.map +1 -0
  22. package/dist/components/kemet-alert/types.d.ts +1 -1
  23. package/dist/components/kemet-avatar/docs/stories.d.ts +1 -1
  24. package/dist/components/kemet-avatar/docs/stories.js.map +1 -1
  25. package/dist/components/kemet-avatar/kemet-avatar.js.map +1 -1
  26. package/dist/components/kemet-avatar/kemet-avatars.js.map +1 -1
  27. package/dist/components/kemet-avatar/spec.d.ts +1 -0
  28. package/dist/components/kemet-avatar/spec.js +26 -0
  29. package/dist/components/kemet-avatar/spec.js.map +1 -0
  30. package/dist/components/kemet-badge/docs/stories.d.ts +1 -1
  31. package/dist/components/kemet-badge/kemet-badge.js.map +1 -1
  32. package/dist/components/kemet-badge/spec.d.ts +1 -0
  33. package/dist/components/kemet-badge/spec.js +21 -0
  34. package/dist/components/kemet-badge/spec.js.map +1 -0
  35. package/dist/components/kemet-badge/types.d.ts +1 -1
  36. package/dist/components/kemet-button/docs/stories.d.ts +1 -1
  37. package/dist/components/kemet-button/kemet-button.d.ts +2 -2
  38. package/dist/components/kemet-button/kemet-button.js +10 -8
  39. package/dist/components/kemet-button/kemet-button.js.map +1 -1
  40. package/dist/components/kemet-button/spec.d.ts +1 -0
  41. package/dist/components/kemet-button/spec.js +49 -0
  42. package/dist/components/kemet-button/spec.js.map +1 -0
  43. package/dist/components/kemet-button/types.d.ts +1 -1
  44. package/dist/components/kemet-card/docs/stories.d.ts +1 -1
  45. package/dist/components/kemet-card/docs/stories.js.map +1 -1
  46. package/dist/components/kemet-card/kemet-card.d.ts +1 -1
  47. package/dist/components/kemet-card/kemet-card.js +1 -1
  48. package/dist/components/kemet-card/kemet-card.js.map +1 -1
  49. package/dist/components/kemet-card/spec.d.ts +1 -0
  50. package/dist/components/kemet-card/spec.js +31 -0
  51. package/dist/components/kemet-card/spec.js.map +1 -0
  52. package/dist/components/kemet-carousel/docs/stories.d.ts +1 -1
  53. package/dist/components/kemet-carousel/docs/stories.js.map +1 -1
  54. package/dist/components/kemet-carousel/kemet-carousel-current.d.ts +1 -1
  55. package/dist/components/kemet-carousel/kemet-carousel-current.js.map +1 -1
  56. package/dist/components/kemet-carousel/kemet-carousel-first.d.ts +1 -0
  57. package/dist/components/kemet-carousel/kemet-carousel-first.js +11 -4
  58. package/dist/components/kemet-carousel/kemet-carousel-first.js.map +1 -1
  59. package/dist/components/kemet-carousel/kemet-carousel-last.d.ts +2 -1
  60. package/dist/components/kemet-carousel/kemet-carousel-last.js +12 -5
  61. package/dist/components/kemet-carousel/kemet-carousel-last.js.map +1 -1
  62. package/dist/components/kemet-carousel/kemet-carousel-link.d.ts +1 -0
  63. package/dist/components/kemet-carousel/kemet-carousel-link.js +14 -4
  64. package/dist/components/kemet-carousel/kemet-carousel-link.js.map +1 -1
  65. package/dist/components/kemet-carousel/kemet-carousel-next.d.ts +1 -0
  66. package/dist/components/kemet-carousel/kemet-carousel-next.js +11 -4
  67. package/dist/components/kemet-carousel/kemet-carousel-next.js.map +1 -1
  68. package/dist/components/kemet-carousel/kemet-carousel-prev.d.ts +1 -0
  69. package/dist/components/kemet-carousel/kemet-carousel-prev.js +11 -4
  70. package/dist/components/kemet-carousel/kemet-carousel-prev.js.map +1 -1
  71. package/dist/components/kemet-carousel/kemet-carousel-slide.js +5 -5
  72. package/dist/components/kemet-carousel/kemet-carousel-slide.js.map +1 -1
  73. package/dist/components/kemet-carousel/kemet-carousel-total.js.map +1 -1
  74. package/dist/components/kemet-carousel/kemet-carousel.d.ts +18 -14
  75. package/dist/components/kemet-carousel/kemet-carousel.js +32 -13
  76. package/dist/components/kemet-carousel/kemet-carousel.js.map +1 -1
  77. package/dist/components/kemet-carousel/spec.d.ts +10 -0
  78. package/dist/components/kemet-carousel/spec.js +168 -0
  79. package/dist/components/kemet-carousel/spec.js.map +1 -0
  80. package/dist/components/kemet-checkbox/docs/stories.d.ts +1 -1
  81. package/dist/components/kemet-checkbox/kemet-checkbox.d.ts +4 -4
  82. package/dist/components/kemet-checkbox/kemet-checkbox.js +4 -4
  83. package/dist/components/kemet-checkbox/kemet-checkbox.js.map +1 -1
  84. package/dist/components/kemet-checkbox/spec.d.ts +1 -0
  85. package/dist/components/kemet-checkbox/spec.js +33 -0
  86. package/dist/components/kemet-checkbox/spec.js.map +1 -0
  87. package/dist/components/kemet-checkbox/types.d.ts +1 -1
  88. package/dist/components/kemet-combo/docs/stories.d.ts +1 -1
  89. package/dist/components/kemet-combo/kemet-combo.d.ts +9 -8
  90. package/dist/components/kemet-combo/kemet-combo.js +18 -17
  91. package/dist/components/kemet-combo/kemet-combo.js.map +1 -1
  92. package/dist/components/kemet-combo/spec.d.ts +3 -0
  93. package/dist/components/kemet-combo/spec.js +46 -0
  94. package/dist/components/kemet-combo/spec.js.map +1 -0
  95. package/dist/components/kemet-count/docs/stories.d.ts +1 -1
  96. package/dist/components/kemet-count/kemet-count.d.ts +1 -1
  97. package/dist/components/kemet-count/kemet-count.js +1 -1
  98. package/dist/components/kemet-count/kemet-count.js.map +1 -1
  99. package/dist/components/kemet-count/spec.d.ts +4 -0
  100. package/dist/components/kemet-count/spec.js +45 -0
  101. package/dist/components/kemet-count/spec.js.map +1 -0
  102. package/dist/components/kemet-draggable/docs/stories.d.ts +1 -1
  103. package/dist/components/kemet-draggable/kemet-draggable.d.ts +3 -3
  104. package/dist/components/kemet-draggable/kemet-draggable.js +6 -5
  105. package/dist/components/kemet-draggable/kemet-draggable.js.map +1 -1
  106. package/dist/components/kemet-draggable/spec.d.ts +1 -0
  107. package/dist/components/kemet-draggable/spec.js +30 -0
  108. package/dist/components/kemet-draggable/spec.js.map +1 -0
  109. package/dist/components/kemet-drawer/docs/stories.d.ts +1 -1
  110. package/dist/components/kemet-drawer/kemet-drawer.d.ts +2 -2
  111. package/dist/components/kemet-drawer/kemet-drawer.js +2 -2
  112. package/dist/components/kemet-drawer/kemet-drawer.js.map +1 -1
  113. package/dist/components/kemet-drawer/spec.d.ts +1 -0
  114. package/dist/components/kemet-drawer/spec.js +21 -0
  115. package/dist/components/kemet-drawer/spec.js.map +1 -0
  116. package/dist/components/kemet-drawer/styles.js +1 -0
  117. package/dist/components/kemet-drawer/styles.js.map +1 -1
  118. package/dist/components/kemet-drawer/types.d.ts +2 -2
  119. package/dist/components/kemet-fab/docs/stories.d.ts +1 -1
  120. package/dist/components/kemet-fab/kemet-fab.d.ts +1 -1
  121. package/dist/components/kemet-fab/kemet-fab.js +4 -10
  122. package/dist/components/kemet-fab/kemet-fab.js.map +1 -1
  123. package/dist/components/kemet-fab/spec.d.ts +2 -0
  124. package/dist/components/kemet-fab/spec.js +43 -0
  125. package/dist/components/kemet-fab/spec.js.map +1 -0
  126. package/dist/components/kemet-field/docs/stories.d.ts +1 -1
  127. package/dist/components/kemet-field/kemet-field.d.ts +7 -7
  128. package/dist/components/kemet-field/kemet-field.js +9 -14
  129. package/dist/components/kemet-field/kemet-field.js.map +1 -1
  130. package/dist/components/kemet-field/spec.d.ts +2 -0
  131. package/dist/components/kemet-field/spec.js +38 -0
  132. package/dist/components/kemet-field/spec.js.map +1 -0
  133. package/dist/components/kemet-field/types.d.ts +1 -1
  134. package/dist/components/kemet-flipcard/docs/stories.d.ts +1 -1
  135. package/dist/components/kemet-flipcard/kemet-flipcard-trigger.d.ts +1 -1
  136. package/dist/components/kemet-flipcard/kemet-flipcard-trigger.js +2 -3
  137. package/dist/components/kemet-flipcard/kemet-flipcard-trigger.js.map +1 -1
  138. package/dist/components/kemet-flipcard/kemet-flipcard.d.ts +2 -2
  139. package/dist/components/kemet-flipcard/kemet-flipcard.js +3 -5
  140. package/dist/components/kemet-flipcard/kemet-flipcard.js.map +1 -1
  141. package/dist/components/kemet-flipcard/spec.d.ts +3 -0
  142. package/dist/components/kemet-flipcard/spec.js +38 -0
  143. package/dist/components/kemet-flipcard/spec.js.map +1 -0
  144. package/dist/components/kemet-icon/docs/stories.d.ts +1 -1
  145. package/dist/components/kemet-icon/kemet-icon.js +1 -1
  146. package/dist/components/kemet-icon/kemet-icon.js.map +1 -1
  147. package/dist/components/kemet-icon/spec.d.ts +1 -0
  148. package/dist/components/kemet-icon/spec.js +69 -0
  149. package/dist/components/kemet-icon/spec.js.map +1 -0
  150. package/dist/components/kemet-input/docs/stories.d.ts +1 -1
  151. package/dist/components/kemet-input/kemet-input.d.ts +3 -22
  152. package/dist/components/kemet-input/kemet-input.js +3 -23
  153. package/dist/components/kemet-input/kemet-input.js.map +1 -1
  154. package/dist/components/kemet-input/spec.d.ts +1 -0
  155. package/dist/components/kemet-input/spec.js +83 -0
  156. package/dist/components/kemet-input/spec.js.map +1 -0
  157. package/dist/components/kemet-input/types.d.ts +3 -3
  158. package/dist/components/kemet-modal/docs/stories.d.ts +1 -1
  159. package/dist/components/kemet-modal/docs/stories.js.map +1 -1
  160. package/dist/components/kemet-modal/kemet-modal-close.js.map +1 -1
  161. package/dist/components/kemet-modal/kemet-modal.d.ts +4 -4
  162. package/dist/components/kemet-modal/kemet-modal.js +3 -3
  163. package/dist/components/kemet-modal/kemet-modal.js.map +1 -1
  164. package/dist/components/kemet-modal/types.d.ts +1 -1
  165. package/dist/components/kemet-multi-input/docs/stories.d.ts +8 -0
  166. package/dist/components/kemet-multi-input/docs/stories.js +33 -0
  167. package/dist/components/kemet-multi-input/docs/stories.js.map +1 -0
  168. package/dist/components/kemet-multi-input/kemet-multi-input.d.ts +116 -0
  169. package/dist/components/kemet-multi-input/kemet-multi-input.js +193 -0
  170. package/dist/components/kemet-multi-input/kemet-multi-input.js.map +1 -0
  171. package/dist/components/kemet-multi-input/styles.d.ts +1 -0
  172. package/dist/components/kemet-multi-input/styles.js +87 -0
  173. package/dist/components/kemet-multi-input/styles.js.map +1 -0
  174. package/dist/components/kemet-multi-input/types.d.ts +5 -0
  175. package/dist/components/kemet-multi-input/types.js +2 -0
  176. package/dist/components/kemet-multi-input/types.js.map +1 -0
  177. package/dist/components/kemet-password/docs/stories.d.ts +1 -1
  178. package/dist/components/kemet-password/kemet-password.d.ts +14 -8
  179. package/dist/components/kemet-password/kemet-password.js +4 -33
  180. package/dist/components/kemet-password/kemet-password.js.map +1 -1
  181. package/dist/components/kemet-password/types.d.ts +1 -1
  182. package/dist/components/kemet-popper/docs/stories.d.ts +1 -1
  183. package/dist/components/kemet-popper/kemet-popper-close.d.ts +1 -1
  184. package/dist/components/kemet-popper/kemet-popper-close.js +2 -3
  185. package/dist/components/kemet-popper/kemet-popper-close.js.map +1 -1
  186. package/dist/components/kemet-popper/kemet-popper.d.ts +18 -7
  187. package/dist/components/kemet-popper/kemet-popper.js +21 -25
  188. package/dist/components/kemet-popper/kemet-popper.js.map +1 -1
  189. package/dist/components/kemet-popper/types.d.ts +3 -3
  190. package/dist/components/kemet-radio/docs/stories.d.ts +1 -1
  191. package/dist/components/kemet-radio/kemet-radio.js.map +1 -1
  192. package/dist/components/kemet-radio/kemet-radios.d.ts +5 -4
  193. package/dist/components/kemet-radio/kemet-radios.js +10 -4
  194. package/dist/components/kemet-radio/kemet-radios.js.map +1 -1
  195. package/dist/components/kemet-radio/spec.d.ts +3 -0
  196. package/dist/components/kemet-radio/spec.js +67 -0
  197. package/dist/components/kemet-radio/spec.js.map +1 -0
  198. package/dist/components/kemet-radio/types.d.ts +2 -2
  199. package/dist/components/kemet-rotator/docs/stories.d.ts +1 -1
  200. package/dist/components/kemet-rotator/kemet-rotator.d.ts +1 -1
  201. package/dist/components/kemet-rotator/kemet-rotator.js +1 -2
  202. package/dist/components/kemet-rotator/kemet-rotator.js.map +1 -1
  203. package/dist/components/kemet-rotator/types.d.ts +1 -1
  204. package/dist/components/kemet-scroll-link/docs/stories.d.ts +1 -1
  205. package/dist/components/kemet-scroll-link/kemet-scroll-link.d.ts +2 -2
  206. package/dist/components/kemet-scroll-link/kemet-scroll-link.js +11 -10
  207. package/dist/components/kemet-scroll-link/kemet-scroll-link.js.map +1 -1
  208. package/dist/components/kemet-scroll-nav/docs/stories.d.ts +1 -1
  209. package/dist/components/kemet-scroll-nav/kemet-scroll-nav.d.ts +2 -2
  210. package/dist/components/kemet-scroll-nav/kemet-scroll-nav.js +2 -7
  211. package/dist/components/kemet-scroll-nav/kemet-scroll-nav.js.map +1 -1
  212. package/dist/components/kemet-scroll-nav/types.d.ts +1 -1
  213. package/dist/components/kemet-scroll-snap/docs/stories.d.ts +1 -1
  214. package/dist/components/kemet-scroll-snap/docs/stories.js.map +1 -1
  215. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.d.ts +5 -4
  216. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.js +1 -1
  217. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.js.map +1 -1
  218. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-slide.d.ts +1 -1
  219. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-slide.js +1 -1
  220. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-slide.js.map +1 -1
  221. package/dist/components/kemet-scroll-snap/kemet-scroll-snap.d.ts +3 -2
  222. package/dist/components/kemet-scroll-snap/kemet-scroll-snap.js +2 -7
  223. package/dist/components/kemet-scroll-snap/kemet-scroll-snap.js.map +1 -1
  224. package/dist/components/kemet-scroll-snap/types.d.ts +2 -2
  225. package/dist/components/kemet-select/docs/stories.d.ts +1 -1
  226. package/dist/components/kemet-select/kemet-option.d.ts +1 -1
  227. package/dist/components/kemet-select/kemet-option.js +1 -1
  228. package/dist/components/kemet-select/kemet-option.js.map +1 -1
  229. package/dist/components/kemet-select/kemet-select.d.ts +19 -10
  230. package/dist/components/kemet-select/kemet-select.js +3 -44
  231. package/dist/components/kemet-select/kemet-select.js.map +1 -1
  232. package/dist/components/kemet-select/spec.d.ts +3 -0
  233. package/dist/components/kemet-select/spec.js +53 -0
  234. package/dist/components/kemet-select/spec.js.map +1 -0
  235. package/dist/components/kemet-sortable/docs/stories.d.ts +1 -1
  236. package/dist/components/kemet-sortable/docs/stories.js.map +1 -1
  237. package/dist/components/kemet-sortable/kemet-sortable-item.js.map +1 -1
  238. package/dist/components/kemet-sortable/kemet-sortable.d.ts +5 -5
  239. package/dist/components/kemet-sortable/kemet-sortable.js +5 -5
  240. package/dist/components/kemet-sortable/kemet-sortable.js.map +1 -1
  241. package/dist/components/kemet-svgs/docs/stories.d.ts +1 -1
  242. package/dist/components/kemet-svgs/docs/stories.js.map +1 -1
  243. package/dist/components/kemet-svgs/kemet-svg.js.map +1 -1
  244. package/dist/components/kemet-svgs/kemet-svgs.d.ts +1 -1
  245. package/dist/components/kemet-svgs/kemet-svgs.js +1 -1
  246. package/dist/components/kemet-svgs/kemet-svgs.js.map +1 -1
  247. package/dist/components/kemet-tabs/docs/stories.d.ts +1 -1
  248. package/dist/components/kemet-tabs/docs/stories.js.map +1 -1
  249. package/dist/components/kemet-tabs/kemet-tab-panel.d.ts +1 -0
  250. package/dist/components/kemet-tabs/kemet-tab-panel.js +3 -0
  251. package/dist/components/kemet-tabs/kemet-tab-panel.js.map +1 -1
  252. package/dist/components/kemet-tabs/kemet-tab.d.ts +1 -0
  253. package/dist/components/kemet-tabs/kemet-tab.js +4 -1
  254. package/dist/components/kemet-tabs/kemet-tab.js.map +1 -1
  255. package/dist/components/kemet-tabs/kemet-tabs.d.ts +23 -14
  256. package/dist/components/kemet-tabs/kemet-tabs.js +3 -47
  257. package/dist/components/kemet-tabs/kemet-tabs.js.map +1 -1
  258. package/dist/components/kemet-tabs/types.d.ts +3 -3
  259. package/dist/components/kemet-textarea/docs/stories.d.ts +1 -1
  260. package/dist/components/kemet-textarea/kemet-textarea.js.map +1 -1
  261. package/dist/components/kemet-textarea/spec.d.ts +3 -0
  262. package/dist/components/kemet-textarea/spec.js +69 -0
  263. package/dist/components/kemet-textarea/spec.js.map +1 -0
  264. package/dist/components/kemet-textarea/types.d.ts +1 -1
  265. package/dist/components/kemet-timer/docs/stories.d.ts +10 -0
  266. package/dist/components/kemet-timer/docs/stories.js +40 -0
  267. package/dist/components/kemet-timer/docs/stories.js.map +1 -0
  268. package/dist/components/kemet-timer/kemet-timer-display.d.ts +25 -0
  269. package/dist/components/kemet-timer/kemet-timer-display.js +65 -0
  270. package/dist/components/kemet-timer/kemet-timer-display.js.map +1 -0
  271. package/dist/components/kemet-timer/kemet-timer.d.ts +36 -0
  272. package/dist/components/kemet-timer/kemet-timer.js +103 -0
  273. package/dist/components/kemet-timer/kemet-timer.js.map +1 -0
  274. package/dist/components/kemet-timer/styles.d.ts +2 -0
  275. package/dist/components/kemet-timer/styles.js +12 -0
  276. package/dist/components/kemet-timer/styles.js.map +1 -0
  277. package/dist/components/kemet-timer/types.d.ts +1 -0
  278. package/dist/components/kemet-timer/types.js +2 -0
  279. package/dist/components/kemet-timer/types.js.map +1 -0
  280. package/dist/components/kemet-toggle/docs/stories.d.ts +1 -1
  281. package/dist/components/kemet-toggle/kemet-toggle.d.ts +3 -3
  282. package/dist/components/kemet-toggle/kemet-toggle.js +3 -3
  283. package/dist/components/kemet-toggle/kemet-toggle.js.map +1 -1
  284. package/dist/components/kemet-toggle/spec.d.ts +1 -0
  285. package/dist/components/kemet-toggle/spec.js +46 -0
  286. package/dist/components/kemet-toggle/spec.js.map +1 -0
  287. package/dist/components/kemet-tooltip/docs/stories.d.ts +1 -1
  288. package/dist/components/kemet-tooltip/kemet-tooltip.d.ts +2 -2
  289. package/dist/components/kemet-tooltip/kemet-tooltip.js +13 -12
  290. package/dist/components/kemet-tooltip/kemet-tooltip.js.map +1 -1
  291. package/dist/components/kemet-tooltip/types.d.ts +3 -3
  292. package/dist/components/kemet-tracker/docs/stories.d.ts +1 -1
  293. package/dist/components/kemet-tracker/docs/stories.js.map +1 -1
  294. package/dist/components/kemet-tracker/kemet-tracker-step.d.ts +2 -2
  295. package/dist/components/kemet-tracker/kemet-tracker-step.js +2 -2
  296. package/dist/components/kemet-tracker/kemet-tracker-step.js.map +1 -1
  297. package/dist/components/kemet-tracker/kemet-tracker.d.ts +2 -1
  298. package/dist/components/kemet-tracker/kemet-tracker.js.map +1 -1
  299. package/dist/components/kemet-upload/docs/stories.d.ts +1 -1
  300. package/dist/components/kemet-upload/kemet-upload-file.js +1 -2
  301. package/dist/components/kemet-upload/kemet-upload-file.js.map +1 -1
  302. package/dist/components/kemet-upload/kemet-upload.d.ts +3 -3
  303. package/dist/components/kemet-upload/kemet-upload.js +3 -8
  304. package/dist/components/kemet-upload/kemet-upload.js.map +1 -1
  305. package/dist/kemet-components.bundle.js +82 -86
  306. package/dist/kemet-components.bundle.js.map +1 -1
  307. package/dist/kemet-components.cjs +3320 -2985
  308. package/dist/kemet-components.js +3320 -2985
  309. package/dist/styles/kemet.base.css +24 -2
  310. package/dist/styles/kemet.base.css.map +1 -1
  311. package/dist/styles/kemet.core.css +266 -562
  312. package/dist/styles/kemet.core.css.map +1 -1
  313. package/dist/styles/shared/_config.scss +25 -1
  314. package/dist/tsconfig.tsbuildinfo +1 -1
  315. package/dist/utilities/controllers/forms.js +16 -18
  316. package/dist/utilities/controllers/forms.js.map +1 -1
  317. package/dist/utilities/controllers/forms.spec.d.ts +2 -0
  318. package/dist/utilities/controllers/forms.spec.js +36 -0
  319. package/dist/utilities/controllers/forms.spec.js.map +1 -0
  320. package/dist/utilities/misc/drag.d.ts +6 -0
  321. package/dist/utilities/misc/drag.js +63 -0
  322. package/dist/utilities/misc/drag.js.map +1 -0
  323. package/package.json +50 -35
  324. package/dist/components/kemet-accordion/stories.d.ts +0 -12
  325. package/dist/components/kemet-accordion/stories.js +0 -47
  326. package/dist/components/kemet-accordion/stories.js.map +0 -1
@@ -2,11 +2,10 @@ export class FormSubmitController {
2
2
  constructor(host, options = undefined) {
3
3
  (this.host = host).addController(this);
4
4
  this.options = {
5
- form: (input) => input.closest('form'),
6
- name: (input) => input.name,
7
- value: (input) => input.value,
8
- disabled: (input) => input.disabled,
9
- checkValidity: (input) => (typeof input.checkValidity === 'function' ? input.checkValidity() : true),
5
+ form: input => input.closest('form'),
6
+ name: input => input.name,
7
+ value: input => input.value,
8
+ disabled: input => input.disabled,
10
9
  ...options,
11
10
  };
12
11
  this.handleFormData = this.handleFormData.bind(this);
@@ -32,24 +31,23 @@ export class FormSubmitController {
32
31
  const name = this.options.name(this.host);
33
32
  const value = this.options.value(this.host);
34
33
  if (!disabled && typeof name === 'string' && typeof value !== 'undefined') {
35
- if (Array.isArray(value)) {
36
- value.forEach((val) => {
37
- var _a;
38
- (_a = event.formData) === null || _a === void 0 ? void 0 : _a.append(name, val.toString());
39
- });
40
- }
41
- else {
42
- (_a = event.formData) === null || _a === void 0 ? void 0 : _a.append(name, value.toString());
43
- }
34
+ // TODO recreate a scenario where value will be an array
35
+ // if (Array.isArray(value)) {
36
+ // value.forEach((val) => {
37
+ // event.formData?.append(name, val.toString());
38
+ // });
39
+ // } else {
40
+ // event.formData?.append(name, value.toString());
41
+ // }
42
+ (_a = event.formData) === null || _a === void 0 ? void 0 : _a.append(name, value.toString());
44
43
  }
45
44
  }
46
45
  handleFormSubmit(event) {
46
+ event.preventDefault();
47
+ event.stopImmediatePropagation();
47
48
  const disabled = this.options.disabled(this.host);
48
- const checkValidity = this.options.checkValidity;
49
49
  this.form = this.options.form(this.host);
50
- if (this.form && !this.form.noValidate && !disabled && !checkValidity(this.host)) {
51
- event.preventDefault();
52
- event.stopImmediatePropagation();
50
+ if (this.form && !this.form.noValidate && !disabled) {
53
51
  const components = this.form.querySelectorAll('kemet-input, kemet-textarea, kemet-select, kemet-checkbox, kemet-radios');
54
52
  components.forEach((component) => {
55
53
  component.checkValidity();
@@ -1 +1 @@
1
- {"version":3,"file":"forms.js","sourceRoot":"","sources":["../../../src/utilities/controllers/forms.ts"],"names":[],"mappings":"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","sourcesContent":["export class FormSubmitController {\n host;\n form;\n options;\n\n constructor(host, options = undefined) {\n (this.host = host).addController(this);\n this.options = {\n form: (input) => input.closest('form'),\n name: (input) => input.name,\n value: (input) => input.value,\n disabled: (input) => input.disabled,\n checkValidity: (input) => (typeof input.checkValidity === 'function' ? input.checkValidity() : true),\n ...options,\n };\n\n this.handleFormData = this.handleFormData.bind(this);\n this.handleFormSubmit = this.handleFormSubmit.bind(this);\n }\n\n hostConnected() {\n this.form = this.options.form(this.host);\n\n if (this.form) {\n this.form.addEventListener('formdata', this.handleFormData);\n this.form.addEventListener('submit', this.handleFormSubmit);\n }\n }\n\n hostDisconnected() {\n if (this.form) {\n this.form.removeEventListener('formdata', this.handleFormData);\n this.form.removeEventListener('submit', this.handleFormSubmit);\n this.form = undefined;\n }\n }\n\n handleFormData(event) {\n const disabled = this.options.disabled(this.host);\n const name = this.options.name(this.host);\n const value = this.options.value(this.host);\n\n if (!disabled && typeof name === 'string' && typeof value !== 'undefined') {\n if (Array.isArray(value)) {\n value.forEach((val) => {\n event.formData?.append(name, val.toString());\n });\n } else {\n event.formData?.append(name, value.toString());\n }\n }\n }\n\n handleFormSubmit(event) {\n const disabled = this.options.disabled(this.host);\n const checkValidity = this.options.checkValidity;\n\n this.form = this.options.form(this.host);\n\n if (this.form && !this.form.noValidate && !disabled && !checkValidity(this.host)) {\n event.preventDefault();\n event.stopImmediatePropagation();\n\n const components = this.form.querySelectorAll('kemet-input, kemet-textarea, kemet-select, kemet-checkbox, kemet-radios');\n\n components.forEach((component) => {\n component.checkValidity();\n\n if (!component.checkValidity()) {\n component.status = 'error';\n component.invalid = true;\n\n component.dispatchEvent(\n new CustomEvent('kemet-input-status', {\n bubbles: true,\n composed: true,\n detail: {\n status: 'error',\n validity: component.validity ? component.validity : {},\n element: component,\n },\n })\n );\n }\n\n if (component.checkLimitValidity && !component.checkLimitValidity()) {\n component.status = 'error';\n component.invalid = true;\n\n component.dispatchEvent(\n new CustomEvent('kemet-input-status', {\n bubbles: true,\n composed: true,\n detail: {\n status: 'error',\n validity: { passedLimit: true },\n element: component,\n },\n })\n );\n }\n });\n }\n }\n\n submit() {\n const button = document.createElement('button');\n\n if (this.form) {\n button.type = 'submit';\n button.style.position = 'absolute';\n button.style.width = '0';\n button.style.height = '0';\n button.style.clip = 'rect(0 0 0 0)';\n button.style.clipPath = 'inset(50%)';\n button.style.overflow = 'hidden';\n button.style.whiteSpace = 'nowrap';\n this.form.append(button);\n button.click();\n button.remove();\n }\n }\n}\n"]}
1
+ {"version":3,"file":"forms.js","sourceRoot":"","sources":["../../../src/utilities/controllers/forms.ts"],"names":[],"mappings":"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","sourcesContent":["export class FormSubmitController {\n host;\n\n form;\n\n options;\n\n constructor(host, options = undefined) {\n (this.host = host).addController(this);\n\n this.options = {\n form: input => input.closest('form'),\n name: input => input.name,\n value: input => input.value,\n disabled: input => input.disabled,\n ...options,\n };\n\n this.handleFormData = this.handleFormData.bind(this);\n this.handleFormSubmit = this.handleFormSubmit.bind(this);\n }\n\n hostConnected() {\n this.form = this.options.form(this.host);\n\n if (this.form) {\n this.form.addEventListener('formdata', this.handleFormData);\n this.form.addEventListener('submit', this.handleFormSubmit);\n }\n }\n\n hostDisconnected() {\n if (this.form) {\n this.form.removeEventListener('formdata', this.handleFormData);\n this.form.removeEventListener('submit', this.handleFormSubmit);\n this.form = undefined;\n }\n }\n\n handleFormData(event) {\n const disabled = this.options.disabled(this.host);\n const name = this.options.name(this.host);\n const value = this.options.value(this.host);\n\n if (!disabled && typeof name === 'string' && typeof value !== 'undefined') {\n // TODO recreate a scenario where value will be an array\n // if (Array.isArray(value)) {\n // value.forEach((val) => {\n // event.formData?.append(name, val.toString());\n // });\n // } else {\n // event.formData?.append(name, value.toString());\n // }\n event.formData?.append(name, value.toString());\n }\n }\n\n handleFormSubmit(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n\n const disabled = this.options.disabled(this.host);\n this.form = this.options.form(this.host);\n\n if (this.form && !this.form.noValidate && !disabled) {\n const components = this.form.querySelectorAll('kemet-input, kemet-textarea, kemet-select, kemet-checkbox, kemet-radios');\n\n components.forEach((component) => {\n component.checkValidity();\n\n if (!component.checkValidity()) {\n component.status = 'error';\n component.invalid = true;\n\n component.dispatchEvent(\n new CustomEvent('kemet-input-status', {\n bubbles: true,\n composed: true,\n detail: {\n status: 'error',\n validity: component.validity ? component.validity : {},\n element: component,\n },\n }),\n );\n }\n\n if (component.checkLimitValidity && !component.checkLimitValidity()) {\n component.status = 'error';\n component.invalid = true;\n\n component.dispatchEvent(\n new CustomEvent('kemet-input-status', {\n bubbles: true,\n composed: true,\n detail: {\n status: 'error',\n validity: { passedLimit: true },\n element: component,\n },\n }),\n );\n }\n });\n }\n }\n\n submit() {\n const button = document.createElement('button');\n\n if (this.form) {\n button.type = 'submit';\n button.style.position = 'absolute';\n button.style.width = '0';\n button.style.height = '0';\n button.style.clip = 'rect(0 0 0 0)';\n button.style.clipPath = 'inset(50%)';\n button.style.overflow = 'hidden';\n button.style.whiteSpace = 'nowrap';\n this.form.append(button);\n button.click();\n button.remove();\n }\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import '../../components/kemet-button/kemet-button';
2
+ import '../../components/kemet-input/kemet-input';
@@ -0,0 +1,36 @@
1
+ /* eslint-disable import/no-duplicates */
2
+ import { html, render } from 'lit';
3
+ import { expect } from '@wdio/globals';
4
+ import { userEvent } from '@testing-library/user-event';
5
+ import { fireEvent, waitFor } from '@testing-library/dom';
6
+ import '../../components/kemet-button/kemet-button';
7
+ import '../../components/kemet-input/kemet-input';
8
+ const templates = {
9
+ default: html `
10
+ <form>
11
+ <kemet-input name="input" value="input"></kemet-input>
12
+ <kemet-input name="no-special-characters" required pattern="^[a-zA-Z0-9]*$"></kemet-input>
13
+ <kemet-button>Submit</kemet-button>
14
+ </form>
15
+ `,
16
+ };
17
+ describe('Forms', () => {
18
+ it('simulate submitting a form with errors', async () => {
19
+ render(templates.default, document.body);
20
+ const form = document.querySelector('form');
21
+ const kemetButton = document.querySelector('kemet-button');
22
+ const noSpecialCharactersKemetInput = document.querySelector('[required]');
23
+ await waitFor(async () => {
24
+ var _a;
25
+ const noSpecialCharactersInput = (_a = noSpecialCharactersKemetInput === null || noSpecialCharactersKemetInput === void 0 ? void 0 : noSpecialCharactersKemetInput.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('input');
26
+ await userEvent.type(noSpecialCharactersInput, 'te$t');
27
+ await userEvent.click(kemetButton);
28
+ // TODO figure out why the click doesn't implicitly cover these events
29
+ fireEvent(form, new Event('formdata'));
30
+ fireEvent.submit(form);
31
+ expect(noSpecialCharactersKemetInput.status).toBe('error');
32
+ form.remove();
33
+ });
34
+ });
35
+ });
36
+ //# sourceMappingURL=forms.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forms.spec.js","sourceRoot":"","sources":["../../../src/utilities/controllers/forms.spec.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAI1D,OAAO,4CAA4C,CAAC;AACpD,OAAO,0CAA0C,CAAC;AAElD,MAAM,SAAS,GAAG;IAChB,OAAO,EAAE,IAAI,CAAA;;;;;;GAMZ;CACF,CAAC;AAEF,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEzC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAoB,CAAC;QAC/D,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAgB,CAAC;QAC1E,MAAM,6BAA6B,GAAG,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAe,CAAC;QAEzF,MAAM,OAAO,CAAC,KAAK,IAAI,EAAE;;YACvB,MAAM,wBAAwB,GAAG,MAAA,6BAA6B,aAA7B,6BAA6B,uBAA7B,6BAA6B,CAAE,UAAU,0CAAE,aAAa,CAAC,OAAO,CAAC,CAAC;YACnG,MAAM,SAAS,CAAC,IAAI,CAAC,wBAAyB,EAAE,MAAM,CAAC,CAAC;YACxD,MAAM,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAEnC,sEAAsE;YACtE,SAAS,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YACvC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACvB,MAAM,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/* eslint-disable import/no-duplicates */\nimport { html, render } from 'lit';\nimport { expect } from '@wdio/globals';\nimport { userEvent } from '@testing-library/user-event';\nimport { fireEvent, waitFor } from '@testing-library/dom';\n\nimport KemetButton from '../../components/kemet-button/kemet-button';\nimport KemetInput from '../../components/kemet-input/kemet-input';\nimport '../../components/kemet-button/kemet-button';\nimport '../../components/kemet-input/kemet-input';\n\nconst templates = {\n default: html`\n <form>\n <kemet-input name=\"input\" value=\"input\"></kemet-input>\n <kemet-input name=\"no-special-characters\" required pattern=\"^[a-zA-Z0-9]*$\"></kemet-input>\n <kemet-button>Submit</kemet-button>\n </form>\n `,\n};\n\ndescribe('Forms', () => {\n it('simulate submitting a form with errors', async () => {\n render(templates.default, document.body);\n\n const form = document.querySelector('form') as HTMLFormElement;\n const kemetButton = document.querySelector('kemet-button') as KemetButton;\n const noSpecialCharactersKemetInput = document.querySelector('[required]') as KemetInput;\n\n await waitFor(async () => {\n const noSpecialCharactersInput = noSpecialCharactersKemetInput?.shadowRoot?.querySelector('input');\n await userEvent.type(noSpecialCharactersInput!, 'te$t');\n await userEvent.click(kemetButton);\n\n // TODO figure out why the click doesn't implicitly cover these events\n fireEvent(form, new Event('formdata'));\n fireEvent.submit(form);\n expect(noSpecialCharactersKemetInput.status).toBe('error');\n form.remove();\n });\n });\n});\n"]}
@@ -0,0 +1,6 @@
1
+ export default function drag(element: any, { to: inTo, delta, steps, duration, }: {
2
+ to: any;
3
+ delta: any;
4
+ steps?: number;
5
+ duration?: number;
6
+ }): Promise<void>;
@@ -0,0 +1,63 @@
1
+ /* eslint-disable no-await-in-loop */
2
+ /* eslint-disable no-plusplus */
3
+ import { fireEvent } from '@testing-library/dom';
4
+ function isElement(obj) {
5
+ if (typeof obj !== 'object') {
6
+ return false;
7
+ }
8
+ let prototypeStr;
9
+ let prototype;
10
+ do {
11
+ prototype = Object.getPrototypeOf(obj);
12
+ // to work in iframe
13
+ prototypeStr = Object.prototype.toString.call(prototype);
14
+ // '[object Document]' is used to detect document
15
+ if (prototypeStr === '[object Element]'
16
+ || prototypeStr === '[object Document]') {
17
+ return true;
18
+ }
19
+ obj = prototype;
20
+ // null is the terminal of object
21
+ } while (prototype !== null);
22
+ return false;
23
+ }
24
+ function getElementClientCenter(element) {
25
+ const { left, top, width, height, } = element.getBoundingClientRect();
26
+ return {
27
+ x: left + width / 2,
28
+ y: top + height / 2,
29
+ };
30
+ }
31
+ const getCoords = charlie => (isElement(charlie) ? getElementClientCenter(charlie) : charlie);
32
+ const sleep = ms => new Promise((resolve) => {
33
+ setTimeout(resolve, ms);
34
+ });
35
+ export default async function drag(element, { to: inTo, delta, steps = 20, duration = 500, }) {
36
+ const from = getElementClientCenter(element);
37
+ const to = delta
38
+ ? {
39
+ x: from.x + delta.x,
40
+ y: from.y + delta.y,
41
+ }
42
+ : getCoords(inTo);
43
+ const step = {
44
+ x: (to.x - from.x) / steps,
45
+ y: (to.y - from.y) / steps,
46
+ };
47
+ const current = {
48
+ clientX: from.x,
49
+ clientY: from.y,
50
+ };
51
+ fireEvent.mouseEnter(element, current);
52
+ fireEvent.mouseOver(element, current);
53
+ fireEvent.mouseMove(element, current);
54
+ fireEvent.mouseDown(element, current);
55
+ for (let i = 0; i < steps; i++) {
56
+ current.clientX += step.x;
57
+ current.clientY += step.y;
58
+ await sleep(duration / steps);
59
+ fireEvent.mouseMove(element, current);
60
+ }
61
+ fireEvent.mouseUp(element, current);
62
+ }
63
+ //# sourceMappingURL=drag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drag.js","sourceRoot":"","sources":["../../../src/utilities/misc/drag.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-await-in-loop */\n/* eslint-disable no-plusplus */\nimport { fireEvent } from '@testing-library/dom';\n\nfunction isElement(obj) {\n if (typeof obj !== 'object') {\n return false;\n }\n\n let prototypeStr; let\n prototype;\n\n do {\n prototype = Object.getPrototypeOf(obj);\n // to work in iframe\n prototypeStr = Object.prototype.toString.call(prototype);\n // '[object Document]' is used to detect document\n if (\n prototypeStr === '[object Element]'\n || prototypeStr === '[object Document]'\n ) {\n return true;\n }\n obj = prototype;\n // null is the terminal of object\n } while (prototype !== null);\n return false;\n}\n\nfunction getElementClientCenter(element) {\n const {\n left, top, width, height,\n} = element.getBoundingClientRect();\n return {\n x: left + width / 2,\n y: top + height / 2,\n };\n}\n\nconst getCoords = charlie => (isElement(charlie) ? getElementClientCenter(charlie) : charlie);\n\nconst sleep = ms => new Promise((resolve) => {\n setTimeout(resolve, ms);\n});\n\nexport default async function drag(\n element,\n {\n to: inTo, delta, steps = 20, duration = 500,\n},\n) {\n const from = getElementClientCenter(element);\n const to = delta\n ? {\n x: from.x + delta.x,\n y: from.y + delta.y,\n }\n : getCoords(inTo);\n\n const step = {\n x: (to.x - from.x) / steps,\n y: (to.y - from.y) / steps,\n };\n\n const current = {\n clientX: from.x,\n clientY: from.y,\n };\n\n fireEvent.mouseEnter(element, current);\n fireEvent.mouseOver(element, current);\n fireEvent.mouseMove(element, current);\n fireEvent.mouseDown(element, current);\n for (let i = 0; i < steps; i++) {\n current.clientX += step.x;\n current.clientY += step.y;\n await sleep(duration / steps);\n fireEvent.mouseMove(element, current);\n }\n fireEvent.mouseUp(element, current);\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kemet-ui",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "A flexible blueprint system for UIs.",
5
5
  "main": "index.js",
6
6
  "watch": {
@@ -23,11 +23,15 @@
23
23
  "start": "concurrently npm:storybook npm:watch",
24
24
  "storybook": "storybook dev -p 6006",
25
25
  "storybook:build": "storybook build",
26
- "test": "web-test-runner --coverage --config=config/web-test-runner.mjs",
27
- "test:watch": "web-test-runner --config=config/web-test-runner.mjs --watch",
28
- "watch": "npm-watch"
26
+ "test": "wdio run wdio.conf.js",
27
+ "test:watch": "wdio run wdio.conf.js --watch",
28
+ "watch": "npm-watch",
29
+ "chromatic": "npx chromatic --project-token=chpt_6729a2f8709640a --build-script-name=storybook:build"
30
+ },
31
+ "author": {
32
+ "name": "Hasani Rogers",
33
+ "email": "dev@hasanirogers.me"
29
34
  },
30
- "author": "Hasani Rogers <dev@hasanirogers.me>",
31
35
  "license": "MIT",
32
36
  "keywords": [
33
37
  "web components",
@@ -45,66 +49,77 @@
45
49
  "dependencies": {
46
50
  "@popperjs/core": "^2.11.7",
47
51
  "autoprefixer": "^10.4.14",
48
- "lit": "^2.6.1",
49
- "lit-html": "^2.6.1",
52
+ "lit": "^3.1.2",
50
53
  "mobile-drag-drop": "2.2.0",
51
- "ts-dedent": "^2.2.0"
54
+ "ts-dedent": "^2.2.0",
55
+ "tslib": "^2.7.0"
52
56
  },
53
57
  "devDependencies": {
54
- "@babel/core": "^7.21.0",
55
- "@babel/plugin-proposal-class-properties": "^7.18.6",
56
- "@babel/plugin-proposal-decorators": "^7.21.0",
57
- "@babel/plugin-transform-typescript": "^7.21.0",
58
- "@babel/preset-env": "^7.20.2",
59
- "@babel/preset-react": "^7.18.6",
60
- "@custom-elements-manifest/analyzer": "^0.8.0",
61
- "@open-wc/eslint-config": "^9.2.2",
62
- "@open-wc/testing": "^3.1.7",
58
+ "@chromatic-com/storybook": "^1.9.0",
59
+ "@custom-elements-manifest/analyzer": "^0.10.3",
60
+ "@open-wc/eslint-config": "^12.0.3",
63
61
  "@rollup/plugin-commonjs": "^24.0.1",
62
+ "@rollup/plugin-json": "^6.1.0",
64
63
  "@rollup/plugin-multi-entry": "^6.0.0",
65
64
  "@rollup/plugin-node-resolve": "^15.0.1",
66
65
  "@rollup/plugin-terser": "^0.4.0",
67
- "@storybook/addon-a11y": "^7.4.0",
68
- "@storybook/addon-actions": "^7.4.0",
69
- "@storybook/addon-essentials": "^7.4.0",
70
- "@storybook/addon-links": "^7.4.0",
71
- "@storybook/addon-mdx-gfm": "^7.4.0",
72
- "@storybook/addons": "^7.4.0",
66
+ "@storybook/addon-a11y": "^8.3.1",
67
+ "@storybook/addon-docs": "^8.3.1",
68
+ "@storybook/addon-essentials": "^8.3.1",
69
+ "@storybook/addon-interactions": "^8.3.1",
70
+ "@storybook/addon-links": "^8.3.1",
71
+ "@storybook/addon-mdx-gfm": "^8.3.1",
72
+ "@storybook/blocks": "^8.3.1",
73
+ "@storybook/manager-api": "^8.3.1",
73
74
  "@storybook/preset-scss": "^1.0.3",
74
- "@storybook/theming": "^7.4.0",
75
- "@storybook/web-components": "^7.4.0",
76
- "@storybook/web-components-vite": "^7.4.0",
75
+ "@storybook/test": "^8.3.1",
76
+ "@storybook/theming": "^8.3.1",
77
+ "@storybook/web-components": "^8.3.1",
78
+ "@storybook/web-components-vite": "^8.3.1",
79
+ "@testing-library/dom": "^9.3.4",
80
+ "@testing-library/user-event": "^14.5.2",
81
+ "@typescript-eslint/eslint-plugin": "^6.20.0",
82
+ "@typescript-eslint/parser": "^6.20.0",
83
+ "@vitejs/plugin-react": "^4.3.1",
84
+ "@wdio/browser-runner": "^8.32.3",
85
+ "@wdio/cli": "^8.32.3",
86
+ "@wdio/mocha-framework": "^8.31.1",
87
+ "@wdio/spec-reporter": "^8.31.1",
77
88
  "@web/dev-server-esbuild": "^0.3.3",
78
89
  "@web/test-runner": "^0.15.1",
79
- "@whitespace/storybook-addon-html": "^5.1.4",
90
+ "@whitespace/storybook-addon-html": "^6.1.1",
80
91
  "ajv": "^8.12.0",
81
- "babel-loader": "^9.1.2",
92
+ "chromatic": "^11.5.4",
82
93
  "concurrently": "^7.6.0",
83
- "css-loader": "^6.7.3",
84
94
  "dotenv": "^16.0.3",
95
+ "electron": "^28.2.2",
85
96
  "eslint": "^8.35.0",
97
+ "expect": "^29.7.0",
86
98
  "husky": "^8.0.3",
99
+ "jest": "^29.7.0",
87
100
  "npm-watch": "^0.11.0",
88
101
  "postcss": "^8.4.21",
89
102
  "postcss-cli": "^10.1.0",
90
- "prettier": "^2.8.4",
103
+ "prettier": "^3.3.3",
104
+ "puppeteer": "^22.0.0",
91
105
  "react": "^18.2.0",
92
106
  "react-dom": "^18.2.0",
93
107
  "react-syntax-highlighter": "^15.5.0",
94
- "remark-gfm": "^3.0.1",
108
+ "remark-gfm": "^4.0.0",
95
109
  "rimraf": "^4.3.0",
96
110
  "rollup": "^3.20.2",
97
111
  "rollup-plugin-copy": "^3.4.0",
98
112
  "rollup-plugin-minify-html-literals": "^1.2.6",
99
113
  "rollup-plugin-minify-template-literals": "^1.0.3",
100
114
  "sass": "^1.58.3",
101
- "sass-loader": "^13.2.0",
102
115
  "ssh2-sftp-client": "^8.1.0",
103
- "storybook": "^7.4.0",
104
- "style-loader": "^3.3.1",
116
+ "storybook": "^8.3.1",
105
117
  "stylelint": "^15.4.0",
106
118
  "stylelint-config-sass-guidelines": "^9.0.1",
107
119
  "stylelint-config-standard": "^30.0.1",
120
+ "ts-jest": "^29.1.2",
121
+ "ts-node": "^10.9.2",
122
+ "typescript": "^5.3.3",
108
123
  "vite": "^4.4.9"
109
124
  },
110
125
  "repository": {
@@ -114,6 +129,6 @@
114
129
  "bugs": {
115
130
  "url": "https://github.com/hasanirogers/kemet-ui/issues"
116
131
  },
117
- "homepage": "http://kemet.dev",
132
+ "homepage": "https://kemet.dev",
118
133
  "customElements": "custom-elements.json"
119
134
  }
@@ -1,12 +0,0 @@
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
- import '../kemet-icon/kemet-icon';
8
- declare const meta: Meta;
9
- export default meta;
10
- declare type Story = StoryObj;
11
- export declare const Standard: Story;
12
- export declare const TogglePanels: Story;
@@ -1,47 +0,0 @@
1
- import { html } from 'lit';
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
- import '../kemet-icon/kemet-icon';
8
- const meta = {
9
- title: 'Components / Accordion',
10
- component: 'kemet-accordion',
11
- };
12
- export default meta;
13
- const Template = (args) => html `
14
- <kemet-accordion ?toggle-panels=${args.togglePanels} kemet-elevation="layer-4">
15
- <kemet-accordion-panel>
16
- <h3 slot="trigger">Trigger 1</h3>
17
- <kemet-icon slot="icon" icon="chevron-down" size="18"></kemet-icon>
18
- <div slot="body">
19
- <p>The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.</p>
20
- </div>
21
- </kemet-accordion-panel>
22
- <kemet-accordion-panel>
23
- <h3 slot="trigger">Trigger 2</h3>
24
- <kemet-icon slot="icon" icon="chevron-down" size="18"></kemet-icon>
25
- <div slot="body">
26
- <p>The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.</p>
27
- </div>
28
- </kemet-accordion-panel>
29
- <kemet-accordion-panel>
30
- <h3 slot="trigger">Trigger 3</h3>
31
- <kemet-icon slot="icon" icon="chevron-down" size="18"></kemet-icon>
32
- <div slot="body">
33
- <p>The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.</p>
34
- </div>
35
- </kemet-accordion-panel>
36
- </kemet-accordion>
37
- `;
38
- export const Standard = {
39
- render: args => Template(args),
40
- };
41
- export const TogglePanels = {
42
- render: args => Template(args),
43
- args: {
44
- togglePanels: true,
45
- },
46
- };
47
- //# sourceMappingURL=stories.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stories.js","sourceRoot":"","sources":["../../../src/components/kemet-accordion/stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAG3B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,yBAAyB,CAAC;AAEjC,OAAO,0BAA0B,CAAC;AAClC,OAAO,yBAAyB,CAAC;AACjC,OAAO,+BAA+B,CAAC;AAEvC,OAAO,0BAA0B,CAAC;AAElC,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,wBAAwB;IAC/B,SAAS,EAAE,iBAAiB;CAC7B,CAAC;AACF,eAAe,IAAI,CAAC;AAIpB,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;oCACK,IAAI,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;CAuBpD,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAU;IAC7B,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAU;IACjC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,IAAI,EAAE;QACJ,YAAY,EAAE,IAAI;KACnB;CACF,CAAC","sourcesContent":["import { html } from 'lit';\nimport type { Meta, StoryObj } from '@storybook/web-components';\n\nimport './kemet-accordion';\nimport './kemet-accordion-panel';\n\nimport '../kemet-tabs/kemet-tabs';\nimport '../kemet-tabs/kemet-tab';\nimport '../kemet-tabs/kemet-tab-panel';\n\nimport '../kemet-icon/kemet-icon';\n\nconst meta: Meta = {\n title: 'Components / Accordion',\n component: 'kemet-accordion',\n};\nexport default meta;\n\ntype Story = StoryObj;\n\nconst Template = (args) => html`\n <kemet-accordion ?toggle-panels=${args.togglePanels} kemet-elevation=\"layer-4\">\n <kemet-accordion-panel>\n <h3 slot=\"trigger\">Trigger 1</h3>\n <kemet-icon slot=\"icon\" icon=\"chevron-down\" size=\"18\"></kemet-icon>\n <div slot=\"body\">\n <p>The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.</p>\n </div>\n </kemet-accordion-panel>\n <kemet-accordion-panel>\n <h3 slot=\"trigger\">Trigger 2</h3>\n <kemet-icon slot=\"icon\" icon=\"chevron-down\" size=\"18\"></kemet-icon>\n <div slot=\"body\">\n <p>The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.</p>\n </div>\n </kemet-accordion-panel>\n <kemet-accordion-panel>\n <h3 slot=\"trigger\">Trigger 3</h3>\n <kemet-icon slot=\"icon\" icon=\"chevron-down\" size=\"18\"></kemet-icon>\n <div slot=\"body\">\n <p>The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.</p>\n </div>\n </kemet-accordion-panel>\n </kemet-accordion>\n`;\n\nexport const Standard: Story = {\n render: args => Template(args),\n};\n\nexport const TogglePanels: Story = {\n render: args => Template(args),\n args: {\n togglePanels: true,\n },\n};\n"]}