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