kemet-ui 1.4.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (497) hide show
  1. package/README.md +1 -1
  2. package/custom-elements.json +3113 -2570
  3. package/dist/components/kemet-accordion/kemet-accordion-panel.d.ts +51 -0
  4. package/dist/components/kemet-accordion/kemet-accordion-panel.js +94 -134
  5. package/dist/components/kemet-accordion/kemet-accordion-panel.js.map +1 -0
  6. package/dist/components/kemet-accordion/kemet-accordion.d.ts +37 -0
  7. package/dist/components/kemet-accordion/kemet-accordion.js +113 -129
  8. package/dist/components/kemet-accordion/kemet-accordion.js.map +1 -0
  9. package/dist/components/kemet-accordion/stories.d.ts +10 -0
  10. package/dist/components/kemet-accordion/stories.js +44 -0
  11. package/dist/components/kemet-accordion/stories.js.map +1 -0
  12. package/dist/components/kemet-accordion/styles.d.ts +2 -0
  13. package/dist/components/kemet-accordion/styles.js +42 -0
  14. package/dist/components/kemet-accordion/styles.js.map +1 -0
  15. package/dist/components/kemet-accordion/types.d.ts +9 -0
  16. package/dist/components/kemet-accordion/types.js +2 -0
  17. package/dist/components/kemet-accordion/types.js.map +1 -0
  18. package/dist/components/kemet-alert/docs/stories.d.ts +9 -0
  19. package/dist/components/kemet-alert/docs/stories.js +77 -0
  20. package/dist/components/kemet-alert/docs/stories.js.map +1 -0
  21. package/dist/components/kemet-alert/kemet-alert.d.ts +52 -0
  22. package/dist/components/kemet-alert/kemet-alert.js +67 -65
  23. package/dist/components/kemet-alert/kemet-alert.js.map +1 -0
  24. package/dist/components/kemet-alert/styles.d.ts +1 -0
  25. package/dist/components/kemet-alert/styles.js +4 -4
  26. package/dist/components/kemet-alert/styles.js.map +1 -0
  27. package/dist/components/kemet-alert/types.d.ts +10 -0
  28. package/dist/components/kemet-alert/types.js +2 -0
  29. package/dist/components/kemet-alert/types.js.map +1 -0
  30. package/dist/components/kemet-avatar/docs/stories.d.ts +11 -0
  31. package/dist/components/kemet-avatar/docs/stories.js +86 -0
  32. package/dist/components/kemet-avatar/docs/stories.js.map +1 -0
  33. package/dist/components/kemet-avatar/kemet-avatar.d.ts +43 -0
  34. package/dist/components/kemet-avatar/kemet-avatar.js +48 -88
  35. package/dist/components/kemet-avatar/kemet-avatar.js.map +1 -0
  36. package/dist/components/kemet-avatar/kemet-avatars.d.ts +20 -0
  37. package/dist/components/kemet-avatar/kemet-avatars.js +15 -31
  38. package/dist/components/kemet-avatar/kemet-avatars.js.map +1 -0
  39. package/dist/components/kemet-avatar/styles.d.ts +2 -0
  40. package/dist/components/kemet-avatar/styles.js +58 -0
  41. package/dist/components/kemet-avatar/styles.js.map +1 -0
  42. package/dist/components/kemet-avatar/types.d.ts +8 -0
  43. package/dist/components/kemet-avatar/types.js +2 -0
  44. package/dist/components/kemet-avatar/types.js.map +1 -0
  45. package/dist/components/kemet-badge/docs/stories.d.ts +9 -0
  46. package/dist/components/kemet-badge/docs/stories.js +40 -0
  47. package/dist/components/kemet-badge/docs/stories.js.map +1 -0
  48. package/dist/components/kemet-badge/kemet-badge.d.ts +30 -0
  49. package/dist/components/kemet-badge/kemet-badge.js +38 -89
  50. package/dist/components/kemet-badge/kemet-badge.js.map +1 -0
  51. package/dist/components/kemet-badge/styles.d.ts +1 -0
  52. package/dist/components/kemet-badge/styles.js +40 -0
  53. package/dist/components/kemet-badge/styles.js.map +1 -0
  54. package/dist/components/kemet-badge/types.d.ts +6 -0
  55. package/dist/components/kemet-badge/types.js +2 -0
  56. package/dist/components/kemet-badge/types.js.map +1 -0
  57. package/dist/components/kemet-button/docs/stories.d.ts +9 -0
  58. package/dist/components/kemet-button/docs/stories.js +51 -0
  59. package/dist/components/kemet-button/docs/stories.js.map +1 -0
  60. package/dist/components/kemet-button/kemet-button.d.ts +89 -0
  61. package/dist/components/kemet-button/kemet-button.js +101 -195
  62. package/dist/components/kemet-button/kemet-button.js.map +1 -0
  63. package/dist/components/kemet-button/styles.d.ts +1 -0
  64. package/dist/components/kemet-button/styles.js +73 -0
  65. package/dist/components/kemet-button/styles.js.map +1 -0
  66. package/dist/components/kemet-button/types.d.ts +10 -0
  67. package/dist/components/kemet-button/types.js +2 -0
  68. package/dist/components/kemet-button/types.js.map +1 -0
  69. package/dist/components/kemet-card/docs/stories.d.ts +9 -0
  70. package/dist/components/kemet-card/docs/stories.js +108 -0
  71. package/dist/components/kemet-card/docs/stories.js.map +1 -0
  72. package/dist/components/kemet-card/kemet-card.d.ts +47 -0
  73. package/dist/components/kemet-card/kemet-card.js +17 -21
  74. package/dist/components/kemet-card/kemet-card.js.map +1 -0
  75. package/dist/components/kemet-card/styles.d.ts +1 -0
  76. package/dist/components/kemet-card/styles.js +2 -2
  77. package/dist/components/kemet-card/styles.js.map +1 -0
  78. package/dist/components/kemet-card/types.d.ts +3 -0
  79. package/dist/components/kemet-card/types.js +2 -0
  80. package/dist/components/kemet-card/types.js.map +1 -0
  81. package/dist/components/kemet-carousel/docs/stories.d.ts +17 -0
  82. package/dist/components/kemet-carousel/docs/stories.js +168 -0
  83. package/dist/components/kemet-carousel/docs/stories.js.map +1 -0
  84. package/dist/components/kemet-carousel/kemet-carousel-current.d.ts +26 -0
  85. package/dist/components/kemet-carousel/kemet-carousel-current.js +32 -34
  86. package/dist/components/kemet-carousel/kemet-carousel-current.js.map +1 -0
  87. package/dist/components/kemet-carousel/kemet-carousel-first.d.ts +25 -0
  88. package/dist/components/kemet-carousel/kemet-carousel-first.js +30 -35
  89. package/dist/components/kemet-carousel/kemet-carousel-first.js.map +1 -0
  90. package/dist/components/kemet-carousel/kemet-carousel-last.d.ts +25 -0
  91. package/dist/components/kemet-carousel/kemet-carousel-last.js +30 -35
  92. package/dist/components/kemet-carousel/kemet-carousel-last.js.map +1 -0
  93. package/dist/components/kemet-carousel/kemet-carousel-link.d.ts +31 -0
  94. package/dist/components/kemet-carousel/kemet-carousel-link.js +40 -41
  95. package/dist/components/kemet-carousel/kemet-carousel-link.js.map +1 -0
  96. package/dist/components/kemet-carousel/kemet-carousel-next.d.ts +25 -0
  97. package/dist/components/kemet-carousel/kemet-carousel-next.js +30 -35
  98. package/dist/components/kemet-carousel/kemet-carousel-next.js.map +1 -0
  99. package/dist/components/kemet-carousel/kemet-carousel-prev.d.ts +25 -0
  100. package/dist/components/kemet-carousel/kemet-carousel-prev.js +30 -35
  101. package/dist/components/kemet-carousel/kemet-carousel-prev.js.map +1 -0
  102. package/dist/components/kemet-carousel/kemet-carousel-slide.d.ts +29 -0
  103. package/dist/components/kemet-carousel/kemet-carousel-slide.js +38 -39
  104. package/dist/components/kemet-carousel/kemet-carousel-slide.js.map +1 -0
  105. package/dist/components/kemet-carousel/kemet-carousel-total.d.ts +26 -0
  106. package/dist/components/kemet-carousel/kemet-carousel-total.js +32 -34
  107. package/dist/components/kemet-carousel/kemet-carousel-total.js.map +1 -0
  108. package/dist/components/kemet-carousel/kemet-carousel.d.ts +114 -0
  109. package/dist/components/kemet-carousel/kemet-carousel.js +328 -340
  110. package/dist/components/kemet-carousel/kemet-carousel.js.map +1 -0
  111. package/dist/components/kemet-carousel/styles.d.ts +1 -0
  112. package/dist/components/kemet-carousel/styles.js +2 -2
  113. package/dist/components/kemet-carousel/styles.js.map +1 -0
  114. package/dist/components/kemet-carousel/types.d.ts +21 -0
  115. package/dist/components/kemet-carousel/types.js +2 -0
  116. package/dist/components/kemet-carousel/types.js.map +1 -0
  117. package/dist/components/kemet-checkbox/docs/stories.d.ts +9 -0
  118. package/dist/components/kemet-checkbox/docs/stories.js +45 -0
  119. package/dist/components/kemet-checkbox/docs/stories.js.map +1 -0
  120. package/dist/components/kemet-checkbox/kemet-checkbox.d.ts +71 -0
  121. package/dist/components/kemet-checkbox/kemet-checkbox.js +118 -217
  122. package/dist/components/kemet-checkbox/kemet-checkbox.js.map +1 -0
  123. package/dist/components/kemet-checkbox/styles.d.ts +1 -0
  124. package/dist/components/kemet-checkbox/styles.js +83 -0
  125. package/dist/components/kemet-checkbox/styles.js.map +1 -0
  126. package/dist/components/kemet-checkbox/types.d.ts +15 -0
  127. package/dist/components/kemet-checkbox/types.js +2 -0
  128. package/dist/components/kemet-checkbox/types.js.map +1 -0
  129. package/dist/components/kemet-combo/docs/stories.d.ts +11 -0
  130. package/dist/components/kemet-combo/docs/stories.js +30 -0
  131. package/dist/components/kemet-combo/docs/stories.js.map +1 -0
  132. package/dist/components/kemet-combo/kemet-combo.d.ts +50 -0
  133. package/dist/components/kemet-combo/kemet-combo.js +111 -175
  134. package/dist/components/kemet-combo/kemet-combo.js.map +1 -0
  135. package/dist/components/kemet-combo/styles.d.ts +1 -0
  136. package/dist/components/kemet-combo/styles.js +44 -0
  137. package/dist/components/kemet-combo/styles.js.map +1 -0
  138. package/dist/components/kemet-combo/types.d.ts +5 -0
  139. package/dist/components/kemet-combo/types.js +2 -0
  140. package/dist/components/kemet-combo/types.js.map +1 -0
  141. package/dist/components/kemet-count/docs/stories.d.ts +11 -0
  142. package/dist/components/kemet-count/docs/stories.js +51 -0
  143. package/dist/components/kemet-count/docs/stories.js.map +1 -0
  144. package/dist/components/kemet-count/kemet-count.d.ts +39 -0
  145. package/dist/components/kemet-count/kemet-count.js +79 -82
  146. package/dist/components/kemet-count/kemet-count.js.map +1 -0
  147. package/dist/components/kemet-draggable/docs/stories.d.ts +9 -0
  148. package/dist/components/kemet-draggable/docs/stories.js +32 -0
  149. package/dist/components/kemet-draggable/docs/stories.js.map +1 -0
  150. package/dist/components/kemet-draggable/kemet-draggable.d.ts +49 -0
  151. package/dist/components/kemet-draggable/kemet-draggable.js +111 -114
  152. package/dist/components/kemet-draggable/kemet-draggable.js.map +1 -0
  153. package/dist/components/kemet-draggable/types.d.ts +6 -0
  154. package/dist/components/kemet-draggable/types.js +2 -0
  155. package/dist/components/kemet-draggable/types.js.map +1 -0
  156. package/dist/components/kemet-drawer/docs/stories.d.ts +10 -0
  157. package/dist/components/kemet-drawer/docs/stories.js +91 -0
  158. package/dist/components/kemet-drawer/docs/stories.js.map +1 -0
  159. package/dist/components/kemet-drawer/kemet-drawer.d.ts +48 -0
  160. package/dist/components/kemet-drawer/kemet-drawer.js +50 -65
  161. package/dist/components/kemet-drawer/kemet-drawer.js.map +1 -0
  162. package/dist/components/kemet-drawer/styles.d.ts +2 -0
  163. package/dist/components/kemet-drawer/styles.js +3 -5
  164. package/dist/components/kemet-drawer/styles.js.map +1 -0
  165. package/dist/components/kemet-drawer/types.d.ts +8 -0
  166. package/dist/components/kemet-drawer/types.js +2 -0
  167. package/dist/components/kemet-drawer/types.js.map +1 -0
  168. package/dist/components/kemet-fab/docs/stories.d.ts +11 -0
  169. package/dist/components/kemet-fab/docs/stories.js +87 -0
  170. package/dist/components/kemet-fab/docs/stories.js.map +1 -0
  171. package/dist/components/kemet-fab/kemet-fab.d.ts +49 -0
  172. package/dist/components/kemet-fab/kemet-fab.js +64 -67
  173. package/dist/components/kemet-fab/kemet-fab.js.map +1 -0
  174. package/dist/components/kemet-fab/styles.d.ts +1 -0
  175. package/dist/components/kemet-fab/styles.js +5 -5
  176. package/dist/components/kemet-fab/styles.js.map +1 -0
  177. package/dist/components/kemet-fab/types.d.ts +8 -0
  178. package/dist/components/kemet-fab/types.js +2 -0
  179. package/dist/components/kemet-fab/types.js.map +1 -0
  180. package/dist/components/kemet-field/docs/stories.d.ts +15 -0
  181. package/dist/components/kemet-field/docs/stories.js +105 -0
  182. package/dist/components/kemet-field/docs/stories.js.map +1 -0
  183. package/dist/components/kemet-field/kemet-field.d.ts +61 -0
  184. package/dist/components/kemet-field/kemet-field.js +102 -182
  185. package/dist/components/kemet-field/kemet-field.js.map +1 -0
  186. package/dist/components/kemet-field/styles.d.ts +1 -0
  187. package/dist/components/kemet-field/styles.js +61 -0
  188. package/dist/components/kemet-field/styles.js.map +1 -0
  189. package/dist/components/kemet-field/types.d.ts +13 -0
  190. package/dist/components/kemet-field/types.js +2 -0
  191. package/dist/components/kemet-field/types.js.map +1 -0
  192. package/dist/components/kemet-flipcard/docs/stories.d.ts +11 -0
  193. package/dist/components/kemet-flipcard/docs/stories.js +109 -0
  194. package/dist/components/kemet-flipcard/docs/stories.js.map +1 -0
  195. package/dist/components/kemet-flipcard/kemet-flipcard-trigger.d.ts +21 -0
  196. package/dist/components/kemet-flipcard/kemet-flipcard-trigger.js +29 -39
  197. package/dist/components/kemet-flipcard/kemet-flipcard-trigger.js.map +1 -0
  198. package/dist/components/kemet-flipcard/kemet-flipcard.d.ts +52 -0
  199. package/dist/components/kemet-flipcard/kemet-flipcard.js +97 -173
  200. package/dist/components/kemet-flipcard/kemet-flipcard.js.map +1 -0
  201. package/dist/components/kemet-flipcard/styles.d.ts +1 -0
  202. package/dist/components/kemet-flipcard/styles.js +85 -0
  203. package/dist/components/kemet-flipcard/styles.js.map +1 -0
  204. package/dist/components/kemet-flipcard/types.d.ts +7 -0
  205. package/dist/components/kemet-flipcard/types.js +2 -0
  206. package/dist/components/kemet-flipcard/types.js.map +1 -0
  207. package/dist/components/kemet-icon/docs/stories.d.ts +9 -0
  208. package/dist/components/kemet-icon/docs/stories.js +34 -0
  209. package/dist/components/kemet-icon/docs/stories.js.map +1 -0
  210. package/dist/components/kemet-icon/kemet-icon.d.ts +28 -0
  211. package/dist/components/kemet-icon/kemet-icon.js +86 -101
  212. package/dist/components/kemet-icon/kemet-icon.js.map +1 -0
  213. package/dist/components/kemet-icon/styles.d.ts +1 -0
  214. package/dist/components/kemet-icon/styles.js +9 -0
  215. package/dist/components/kemet-icon/styles.js.map +1 -0
  216. package/dist/components/kemet-icon/types.d.ts +5 -0
  217. package/dist/components/kemet-icon/types.js +2 -0
  218. package/dist/components/kemet-icon/types.js.map +1 -0
  219. package/dist/components/kemet-input/docs/stories.d.ts +9 -0
  220. package/dist/components/kemet-input/docs/stories.js +142 -0
  221. package/dist/components/kemet-input/docs/stories.js.map +1 -0
  222. package/dist/components/kemet-input/kemet-input.d.ts +193 -0
  223. package/dist/components/kemet-input/kemet-input.js +296 -447
  224. package/dist/components/kemet-input/kemet-input.js.map +1 -0
  225. package/dist/components/kemet-input/styles.d.ts +1 -0
  226. package/dist/components/kemet-input/styles.js +115 -0
  227. package/dist/components/kemet-input/styles.js.map +1 -0
  228. package/dist/components/kemet-input/types.d.ts +35 -0
  229. package/dist/components/kemet-input/types.js +2 -0
  230. package/dist/components/kemet-input/types.js.map +1 -0
  231. package/dist/components/kemet-modal/docs/stories.d.ts +10 -0
  232. package/dist/components/kemet-modal/docs/stories.js +101 -0
  233. package/dist/components/kemet-modal/docs/stories.js.map +1 -0
  234. package/dist/components/kemet-modal/kemet-modal-close.d.ts +21 -0
  235. package/dist/components/kemet-modal/kemet-modal-close.js +27 -30
  236. package/dist/components/kemet-modal/kemet-modal-close.js.map +1 -0
  237. package/dist/components/kemet-modal/kemet-modal.d.ts +49 -0
  238. package/dist/components/kemet-modal/kemet-modal.js +101 -115
  239. package/dist/components/kemet-modal/kemet-modal.js.map +1 -0
  240. package/dist/components/kemet-modal/styles.d.ts +2 -0
  241. package/dist/components/kemet-modal/styles.js +4 -4
  242. package/dist/components/kemet-modal/styles.js.map +1 -0
  243. package/dist/components/kemet-modal/types.d.ts +8 -0
  244. package/dist/components/kemet-modal/types.js +2 -0
  245. package/dist/components/kemet-modal/types.js.map +1 -0
  246. package/dist/components/kemet-password/docs/stories.d.ts +10 -0
  247. package/dist/components/kemet-password/docs/stories.js +37 -0
  248. package/dist/components/kemet-password/docs/stories.js.map +1 -0
  249. package/dist/components/kemet-password/kemet-password.d.ts +77 -0
  250. package/dist/components/kemet-password/kemet-password.js +142 -144
  251. package/dist/components/kemet-password/kemet-password.js.map +1 -0
  252. package/dist/components/kemet-password/styles.d.ts +1 -0
  253. package/dist/components/kemet-password/styles.js +5 -5
  254. package/dist/components/kemet-password/styles.js.map +1 -0
  255. package/dist/components/kemet-password/types.d.ts +10 -0
  256. package/dist/components/kemet-password/types.js +2 -0
  257. package/dist/components/kemet-password/types.js.map +1 -0
  258. package/dist/components/kemet-popper/docs/stories.d.ts +10 -0
  259. package/dist/components/kemet-popper/docs/stories.js +72 -0
  260. package/dist/components/kemet-popper/docs/stories.js.map +1 -0
  261. package/dist/components/kemet-popper/kemet-popper-close.d.ts +22 -0
  262. package/dist/components/kemet-popper/kemet-popper-close.js +49 -0
  263. package/dist/components/kemet-popper/kemet-popper-close.js.map +1 -0
  264. package/dist/components/kemet-popper/kemet-popper.d.ts +63 -0
  265. package/dist/components/kemet-popper/kemet-popper.js +182 -0
  266. package/dist/components/kemet-popper/kemet-popper.js.map +1 -0
  267. package/dist/components/kemet-popper/styles.d.ts +1 -0
  268. package/dist/components/kemet-popper/styles.effects.d.ts +8 -0
  269. package/dist/components/{kemet-popover → kemet-popper}/styles.effects.js +9 -16
  270. package/dist/components/kemet-popper/styles.effects.js.map +1 -0
  271. package/dist/components/kemet-popper/styles.js +28 -0
  272. package/dist/components/kemet-popper/styles.js.map +1 -0
  273. package/dist/components/kemet-popper/types.d.ts +3 -0
  274. package/dist/components/kemet-popper/types.js +2 -0
  275. package/dist/components/kemet-popper/types.js.map +1 -0
  276. package/dist/components/kemet-radio/docs/stories.d.ts +10 -0
  277. package/dist/components/kemet-radio/docs/stories.js +40 -0
  278. package/dist/components/kemet-radio/docs/stories.js.map +1 -0
  279. package/dist/components/kemet-radio/kemet-radio.d.ts +56 -0
  280. package/dist/components/kemet-radio/kemet-radio.js +76 -153
  281. package/dist/components/kemet-radio/kemet-radio.js.map +1 -0
  282. package/dist/components/kemet-radio/kemet-radios.d.ts +49 -0
  283. package/dist/components/kemet-radio/kemet-radios.js +112 -178
  284. package/dist/components/kemet-radio/kemet-radios.js.map +1 -0
  285. package/dist/components/kemet-radio/styles.d.ts +2 -0
  286. package/dist/components/kemet-radio/styles.js +102 -0
  287. package/dist/components/kemet-radio/styles.js.map +1 -0
  288. package/dist/components/kemet-radio/types.d.ts +20 -0
  289. package/dist/components/kemet-radio/types.js +2 -0
  290. package/dist/components/kemet-radio/types.js.map +1 -0
  291. package/dist/components/kemet-rotator/docs/stories.d.ts +9 -0
  292. package/dist/components/kemet-rotator/docs/stories.js +46 -0
  293. package/dist/components/kemet-rotator/docs/stories.js.map +1 -0
  294. package/dist/components/kemet-rotator/kemet-rotator.d.ts +40 -0
  295. package/dist/components/kemet-rotator/kemet-rotator.js +91 -180
  296. package/dist/components/kemet-rotator/kemet-rotator.js.map +1 -0
  297. package/dist/components/kemet-rotator/styles.d.ts +1 -0
  298. package/dist/components/kemet-rotator/styles.js +72 -0
  299. package/dist/components/kemet-rotator/styles.js.map +1 -0
  300. package/dist/components/kemet-rotator/types.d.ts +9 -0
  301. package/dist/components/kemet-rotator/types.js +2 -0
  302. package/dist/components/kemet-rotator/types.js.map +1 -0
  303. package/dist/components/kemet-scroll-link/docs/stories.d.ts +9 -0
  304. package/dist/components/kemet-scroll-link/docs/stories.js +97 -0
  305. package/dist/components/kemet-scroll-link/docs/stories.js.map +1 -0
  306. package/dist/components/kemet-scroll-link/kemet-scroll-link.d.ts +31 -0
  307. package/dist/components/kemet-scroll-link/kemet-scroll-link.js +62 -79
  308. package/dist/components/kemet-scroll-link/kemet-scroll-link.js.map +1 -0
  309. package/dist/components/kemet-scroll-link/types.d.ts +6 -0
  310. package/dist/components/kemet-scroll-link/types.js +2 -0
  311. package/dist/components/kemet-scroll-link/types.js.map +1 -0
  312. package/dist/components/kemet-scroll-nav/docs/stories.d.ts +10 -0
  313. package/dist/components/kemet-scroll-nav/docs/stories.js +162 -0
  314. package/dist/components/kemet-scroll-nav/docs/stories.js.map +1 -0
  315. package/dist/components/kemet-scroll-nav/kemet-scroll-nav.d.ts +34 -0
  316. package/dist/components/kemet-scroll-nav/kemet-scroll-nav.js +49 -86
  317. package/dist/components/kemet-scroll-nav/kemet-scroll-nav.js.map +1 -0
  318. package/dist/components/kemet-scroll-nav/styles.d.ts +1 -0
  319. package/dist/components/kemet-scroll-nav/styles.js +27 -0
  320. package/dist/components/kemet-scroll-nav/styles.js.map +1 -0
  321. package/dist/components/kemet-scroll-nav/types.d.ts +6 -0
  322. package/dist/components/kemet-scroll-nav/types.js +2 -0
  323. package/dist/components/kemet-scroll-nav/types.js.map +1 -0
  324. package/dist/components/kemet-scroll-snap/docs/stories.d.ts +11 -0
  325. package/dist/components/kemet-scroll-snap/docs/stories.js +131 -0
  326. package/dist/components/kemet-scroll-snap/docs/stories.js.map +1 -0
  327. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.d.ts +44 -0
  328. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.js +79 -124
  329. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.js.map +1 -0
  330. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-slide.d.ts +30 -0
  331. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-slide.js +36 -47
  332. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-slide.js.map +1 -0
  333. package/dist/components/kemet-scroll-snap/kemet-scroll-snap.d.ts +46 -0
  334. package/dist/components/kemet-scroll-snap/kemet-scroll-snap.js +93 -164
  335. package/dist/components/kemet-scroll-snap/kemet-scroll-snap.js.map +1 -0
  336. package/dist/components/kemet-scroll-snap/styles.d.ts +2 -0
  337. package/dist/components/kemet-scroll-snap/styles.js +74 -0
  338. package/dist/components/kemet-scroll-snap/styles.js.map +1 -0
  339. package/dist/components/kemet-scroll-snap/types.d.ts +20 -0
  340. package/dist/components/kemet-scroll-snap/types.js +2 -0
  341. package/dist/components/kemet-scroll-snap/types.js.map +1 -0
  342. package/dist/components/kemet-select/docs/stories.d.ts +10 -0
  343. package/dist/components/kemet-select/docs/stories.js +57 -0
  344. package/dist/components/kemet-select/docs/stories.js.map +1 -0
  345. package/dist/components/kemet-select/kemet-option.d.ts +29 -0
  346. package/dist/components/kemet-select/kemet-option.js +28 -33
  347. package/dist/components/kemet-select/kemet-option.js.map +1 -0
  348. package/dist/components/kemet-select/kemet-select.d.ts +110 -0
  349. package/dist/components/kemet-select/kemet-select.js +179 -265
  350. package/dist/components/kemet-select/kemet-select.js.map +1 -0
  351. package/dist/components/kemet-select/styles.d.ts +1 -0
  352. package/dist/components/kemet-select/styles.js +73 -0
  353. package/dist/components/kemet-select/styles.js.map +1 -0
  354. package/dist/components/kemet-select/types.d.ts +20 -0
  355. package/dist/components/kemet-select/types.js +2 -0
  356. package/dist/components/kemet-select/types.js.map +1 -0
  357. package/dist/components/kemet-sortable/docs/stories.d.ts +10 -0
  358. package/dist/components/kemet-sortable/docs/stories.js +34 -0
  359. package/dist/components/kemet-sortable/docs/stories.js.map +1 -0
  360. package/dist/components/kemet-sortable/kemet-sortable-item.d.ts +21 -0
  361. package/dist/components/kemet-sortable/kemet-sortable-item.js +21 -39
  362. package/dist/components/kemet-sortable/kemet-sortable-item.js.map +1 -0
  363. package/dist/components/kemet-sortable/kemet-sortable.d.ts +25 -0
  364. package/dist/components/kemet-sortable/kemet-sortable.js +61 -79
  365. package/dist/components/kemet-sortable/kemet-sortable.js.map +1 -0
  366. package/dist/components/kemet-sortable/styles.d.ts +2 -0
  367. package/dist/components/kemet-sortable/styles.js +22 -0
  368. package/dist/components/kemet-sortable/styles.js.map +1 -0
  369. package/dist/components/kemet-sortable/types.d.ts +3 -0
  370. package/dist/components/kemet-sortable/types.js +2 -0
  371. package/dist/components/kemet-sortable/types.js.map +1 -0
  372. package/dist/components/kemet-svgs/docs/stories.d.ts +10 -0
  373. package/dist/components/kemet-svgs/docs/stories.js +67 -0
  374. package/dist/components/kemet-svgs/docs/stories.js.map +1 -0
  375. package/dist/components/kemet-svgs/kemet-svg.d.ts +38 -0
  376. package/dist/components/kemet-svgs/kemet-svg.js +76 -90
  377. package/dist/components/kemet-svgs/kemet-svg.js.map +1 -0
  378. package/dist/components/kemet-svgs/kemet-svgs.d.ts +27 -0
  379. package/dist/components/kemet-svgs/kemet-svgs.js +39 -48
  380. package/dist/components/kemet-svgs/kemet-svgs.js.map +1 -0
  381. package/dist/components/kemet-svgs/types.d.ts +10 -0
  382. package/dist/components/kemet-svgs/types.js +2 -0
  383. package/dist/components/kemet-svgs/types.js.map +1 -0
  384. package/dist/components/kemet-tabs/docs/stories.d.ts +9 -0
  385. package/dist/components/kemet-tabs/docs/stories.js +142 -0
  386. package/dist/components/kemet-tabs/docs/stories.js.map +1 -0
  387. package/dist/components/kemet-tabs/kemet-tab-panel.d.ts +27 -0
  388. package/dist/components/kemet-tabs/kemet-tab-panel.js +36 -76
  389. package/dist/components/kemet-tabs/kemet-tab-panel.js.map +1 -0
  390. package/dist/components/kemet-tabs/kemet-tab.d.ts +37 -0
  391. package/dist/components/kemet-tabs/kemet-tab.js +57 -92
  392. package/dist/components/kemet-tabs/kemet-tab.js.map +1 -0
  393. package/dist/components/kemet-tabs/kemet-tabs.d.ts +91 -0
  394. package/dist/components/kemet-tabs/kemet-tabs.js +438 -473
  395. package/dist/components/kemet-tabs/kemet-tabs.js.map +1 -0
  396. package/dist/components/kemet-tabs/styles.d.ts +3 -0
  397. package/dist/components/kemet-tabs/styles.js +71 -3
  398. package/dist/components/kemet-tabs/styles.js.map +1 -0
  399. package/dist/components/kemet-tabs/types.d.ts +27 -0
  400. package/dist/components/kemet-tabs/types.js +2 -0
  401. package/dist/components/kemet-tabs/types.js.map +1 -0
  402. package/dist/components/kemet-textarea/docs/stories.d.ts +9 -0
  403. package/dist/components/kemet-textarea/docs/stories.js +88 -0
  404. package/dist/components/kemet-textarea/docs/stories.js.map +1 -0
  405. package/dist/components/kemet-textarea/kemet-textarea.d.ts +123 -0
  406. package/dist/components/kemet-textarea/kemet-textarea.js +235 -308
  407. package/dist/components/kemet-textarea/kemet-textarea.js.map +1 -0
  408. package/dist/components/kemet-textarea/styles.d.ts +1 -0
  409. package/dist/components/kemet-textarea/styles.js +69 -0
  410. package/dist/components/kemet-textarea/styles.js.map +1 -0
  411. package/dist/components/kemet-textarea/types.d.ts +20 -0
  412. package/dist/components/kemet-textarea/types.js +2 -0
  413. package/dist/components/kemet-textarea/types.js.map +1 -0
  414. package/dist/components/kemet-toggle/docs/stories.d.ts +9 -0
  415. package/dist/components/kemet-toggle/docs/stories.js +58 -0
  416. package/dist/components/kemet-toggle/docs/stories.js.map +1 -0
  417. package/dist/components/kemet-toggle/kemet-toggle.d.ts +60 -0
  418. package/dist/components/kemet-toggle/kemet-toggle.js +73 -169
  419. package/dist/components/kemet-toggle/kemet-toggle.js.map +1 -0
  420. package/dist/components/kemet-toggle/styles.d.ts +1 -0
  421. package/dist/components/kemet-toggle/styles.js +84 -0
  422. package/dist/components/kemet-toggle/styles.js.map +1 -0
  423. package/dist/components/kemet-toggle/types.d.ts +10 -0
  424. package/dist/components/kemet-toggle/types.js +2 -0
  425. package/dist/components/kemet-toggle/types.js.map +1 -0
  426. package/dist/components/kemet-tooltip/docs/stories.d.ts +10 -0
  427. package/dist/components/kemet-tooltip/docs/stories.js +72 -0
  428. package/dist/components/kemet-tooltip/docs/stories.js.map +1 -0
  429. package/dist/components/kemet-tooltip/kemet-tooltip.d.ts +33 -0
  430. package/dist/components/kemet-tooltip/kemet-tooltip.js +68 -0
  431. package/dist/components/kemet-tooltip/kemet-tooltip.js.map +1 -0
  432. package/dist/components/kemet-tooltip/styles.d.ts +1 -0
  433. package/dist/components/kemet-tooltip/styles.js +61 -0
  434. package/dist/components/kemet-tooltip/styles.js.map +1 -0
  435. package/dist/components/kemet-tooltip/types.d.ts +3 -0
  436. package/dist/components/kemet-tooltip/types.js +2 -0
  437. package/dist/components/kemet-tooltip/types.js.map +1 -0
  438. package/dist/components/kemet-tracker/docs/stories.d.ts +10 -0
  439. package/dist/components/kemet-tracker/docs/stories.js +46 -0
  440. package/dist/components/kemet-tracker/docs/stories.js.map +1 -0
  441. package/dist/components/kemet-tracker/kemet-tracker-step.d.ts +63 -0
  442. package/dist/components/kemet-tracker/kemet-tracker-step.js +75 -76
  443. package/dist/components/kemet-tracker/kemet-tracker-step.js.map +1 -0
  444. package/dist/components/kemet-tracker/kemet-tracker.d.ts +26 -0
  445. package/dist/components/kemet-tracker/kemet-tracker.js +59 -65
  446. package/dist/components/kemet-tracker/kemet-tracker.js.map +1 -0
  447. package/dist/components/kemet-tracker/styles.d.ts +1 -0
  448. package/dist/components/kemet-tracker/styles.js +2 -2
  449. package/dist/components/kemet-tracker/styles.js.map +1 -0
  450. package/dist/components/kemet-tracker/types.d.ts +13 -0
  451. package/dist/components/kemet-tracker/types.js +2 -0
  452. package/dist/components/kemet-tracker/types.js.map +1 -0
  453. package/dist/components/kemet-upload/docs/stories.d.ts +10 -0
  454. package/dist/components/kemet-upload/docs/stories.js +57 -0
  455. package/dist/components/kemet-upload/docs/stories.js.map +1 -0
  456. package/dist/components/kemet-upload/kemet-upload-file.d.ts +46 -0
  457. package/dist/components/kemet-upload/kemet-upload-file.js +69 -117
  458. package/dist/components/kemet-upload/kemet-upload-file.js.map +1 -0
  459. package/dist/components/kemet-upload/kemet-upload.d.ts +58 -0
  460. package/dist/components/kemet-upload/kemet-upload.js +105 -169
  461. package/dist/components/kemet-upload/kemet-upload.js.map +1 -0
  462. package/dist/components/kemet-upload/styles.d.ts +3 -0
  463. package/dist/components/kemet-upload/styles.js +117 -1
  464. package/dist/components/kemet-upload/styles.js.map +1 -0
  465. package/dist/components/kemet-upload/types.d.ts +21 -0
  466. package/dist/components/kemet-upload/types.js +2 -0
  467. package/dist/components/kemet-upload/types.js.map +1 -0
  468. package/dist/kemet-components.bundle.js +88 -0
  469. package/dist/kemet-components.bundle.js.map +1 -0
  470. package/dist/kemet-components.cjs +8599 -7472
  471. package/dist/kemet-components.js +8602 -7469
  472. package/dist/styles/core/attributes.scss +2 -2
  473. package/dist/styles/core/layout.scss +2 -2
  474. package/dist/styles/kemet.base.css +107 -0
  475. package/dist/styles/kemet.base.css.map +1 -0
  476. package/dist/styles/kemet.base.scss +28 -0
  477. package/dist/styles/kemet.core.css +163 -887
  478. package/dist/styles/kemet.core.css.map +1 -1
  479. package/dist/styles/kemet.core.scss +0 -1
  480. package/dist/styles/{core → shared}/_config.scss +6 -2
  481. package/dist/styles/{core → shared}/_helpers.scss +55 -4
  482. package/dist/tsconfig.tsbuildinfo +1 -0
  483. package/dist/utilities/controllers/forms.d.ts +11 -0
  484. package/dist/utilities/controllers/forms.js +93 -114
  485. package/dist/utilities/controllers/forms.js.map +1 -0
  486. package/dist/utilities/misc/constants.d.ts +5 -0
  487. package/dist/utilities/misc/constants.js +6 -0
  488. package/dist/utilities/misc/constants.js.map +1 -0
  489. package/dist/utilities/misc/events.d.ts +1 -0
  490. package/dist/utilities/misc/events.js +2 -3
  491. package/dist/utilities/misc/events.js.map +1 -0
  492. package/package.json +69 -76
  493. package/dist/components/kemet-popover/kemet-popover-close.js +0 -57
  494. package/dist/components/kemet-popover/kemet-popover.js +0 -418
  495. package/dist/components/kemet-popover/styles.tooltip.js +0 -96
  496. package/dist/kemet-components.min.js +0 -3689
  497. package/dist/styles/core/base.scss +0 -38
@@ -0,0 +1,83 @@
1
+ import { css } from 'lit';
2
+ export const stylesBase = css `
3
+ *,
4
+ *::before,
5
+ *::after {
6
+ box-sizing: border-box;
7
+ }
8
+
9
+ :host {
10
+ display: inline-block;
11
+ }
12
+
13
+ :host([disabled]) {
14
+ opacity: 0.5;
15
+ }
16
+
17
+ label {
18
+ display: inline-flex;
19
+ gap: 0.5rem;
20
+ align-items: center;
21
+ }
22
+
23
+ input {
24
+ cursor: pointer;
25
+ margin: 0;
26
+ padding: 0;
27
+ width: var(--kemet-checkbox-size, 18px);
28
+ height: var(--kemet-checkbox-size, 18px);
29
+ position: absolute;
30
+ opacity: 0;
31
+ }
32
+
33
+ button {
34
+ margin: 0;
35
+ border: none;
36
+ background: none;
37
+ }
38
+
39
+ [part='checkbox'] {
40
+ color: var(--kemet-checkbox-color, var(--kemet-color-background));
41
+ display: flex;
42
+ align-items: center;
43
+ justify-content: center;
44
+ width: var(--kemet-checkbox-size, 18px);
45
+ height: var(--kemet-checkbox-size, 18px);
46
+ border: var(--kemet-checkbox-border, 1px solid var(--kemet-color-background));
47
+ }
48
+
49
+ :host([rounded]) [part='checkbox'] {
50
+ border-radius: var(--kemet-checkbox-border-radius, 4px);
51
+ }
52
+
53
+ :host([filled][checked]) [part='checkbox'],
54
+ :host([filled][indeterminate]) [part='checkbox'] {
55
+ border: none;
56
+ background-color: var(--kemet-checkbox-filled-background-color, var(--kemet-color-primary));
57
+ }
58
+
59
+ [part='mark'] {
60
+ display: flex;
61
+ width: calc(var(--kemet-checkbox-size, 18px) - 4px);
62
+ height: calc(var(--kemet-checkbox-size, 18px) - 4px);
63
+ }
64
+
65
+ :host([filled][checked]) [part='mark'],
66
+ :host([filled][indeterminate]) [part='mark'] {
67
+ color: var(--kemet-checkbox-filled-color, var(--kemet-color-white));
68
+ }
69
+
70
+ [part='message'] {
71
+ display: block;
72
+ margin-top: 0.5rem;
73
+ }
74
+
75
+ :host([status='error']) [part='message'] {
76
+ color: var(--kemet-color-error);
77
+ }
78
+
79
+ :host([status='warning']) [part='message'] {
80
+ color: var(--kemet-color-error);
81
+ }
82
+ `;
83
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/components/kemet-checkbox/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgF5B,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const stylesBase = css`\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n :host {\n display: inline-block;\n }\n\n :host([disabled]) {\n opacity: 0.5;\n }\n\n label {\n display: inline-flex;\n gap: 0.5rem;\n align-items: center;\n }\n\n input {\n cursor: pointer;\n margin: 0;\n padding: 0;\n width: var(--kemet-checkbox-size, 18px);\n height: var(--kemet-checkbox-size, 18px);\n position: absolute;\n opacity: 0;\n }\n\n button {\n margin: 0;\n border: none;\n background: none;\n }\n\n [part='checkbox'] {\n color: var(--kemet-checkbox-color, var(--kemet-color-background));\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--kemet-checkbox-size, 18px);\n height: var(--kemet-checkbox-size, 18px);\n border: var(--kemet-checkbox-border, 1px solid var(--kemet-color-background));\n }\n\n :host([rounded]) [part='checkbox'] {\n border-radius: var(--kemet-checkbox-border-radius, 4px);\n }\n\n :host([filled][checked]) [part='checkbox'],\n :host([filled][indeterminate]) [part='checkbox'] {\n border: none;\n background-color: var(--kemet-checkbox-filled-background-color, var(--kemet-color-primary));\n }\n\n [part='mark'] {\n display: flex;\n width: calc(var(--kemet-checkbox-size, 18px) - 4px);\n height: calc(var(--kemet-checkbox-size, 18px) - 4px);\n }\n\n :host([filled][checked]) [part='mark'],\n :host([filled][indeterminate]) [part='mark'] {\n color: var(--kemet-checkbox-filled-color, var(--kemet-color-white));\n }\n\n [part='message'] {\n display: block;\n margin-top: 0.5rem;\n }\n\n :host([status='error']) [part='message'] {\n color: var(--kemet-color-error);\n }\n\n :host([status='warning']) [part='message'] {\n color: var(--kemet-color-error);\n }\n`;\n"]}
@@ -0,0 +1,15 @@
1
+ export declare type TypeStatus = 'standard' | 'error' | 'success' | 'warning';
2
+ export interface KemetCheckboxInterface extends HTMLElement {
3
+ label?: string;
4
+ checked?: boolean;
5
+ indeterminate?: boolean;
6
+ name?: string;
7
+ value?: string;
8
+ disabled?: boolean;
9
+ required?: boolean;
10
+ focused?: boolean;
11
+ rounded?: boolean;
12
+ filled?: boolean;
13
+ status?: string;
14
+ message?: string;
15
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/kemet-checkbox/types.ts"],"names":[],"mappings":"","sourcesContent":["export type TypeStatus = 'standard' | 'error' | 'success' | 'warning';\n\nexport interface KemetCheckboxInterface extends HTMLElement {\n label?: string,\n checked?: boolean,\n indeterminate?: boolean,\n name?: string,\n value?: string,\n disabled?: boolean,\n required?: boolean,\n focused?: boolean,\n rounded?: boolean,\n filled?: boolean,\n status?: string,\n message?: string,\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import type { Meta, StoryObj } from '@storybook/web-components';
2
+ import '../kemet-combo';
3
+ import '../../kemet-field/kemet-field';
4
+ import '../../kemet-input/kemet-input';
5
+ import '../../kemet-tabs/kemet-tabs';
6
+ import '../../kemet-tabs/kemet-tab';
7
+ import '../../kemet-tabs/kemet-tab-panel';
8
+ declare const meta: Meta;
9
+ export default meta;
10
+ declare type Story = StoryObj;
11
+ export declare const Standard: Story;
@@ -0,0 +1,30 @@
1
+ import { html } from 'lit';
2
+ import '../kemet-combo';
3
+ import '../../kemet-field/kemet-field';
4
+ import '../../kemet-input/kemet-input';
5
+ import '../../kemet-tabs/kemet-tabs';
6
+ import '../../kemet-tabs/kemet-tab';
7
+ import '../../kemet-tabs/kemet-tab-panel';
8
+ const meta = {
9
+ title: 'Components / Combo',
10
+ component: 'kemet-combo',
11
+ };
12
+ export default meta;
13
+ const faqs = [
14
+ 'How do use Kemet UI?',
15
+ 'What is a Blueprint System?',
16
+ 'Are there going to be more components?',
17
+ 'Is it good to use attribute for styles?',
18
+ 'Does Kemet UI work with React?',
19
+ 'Does Kemet UI work with Angular?',
20
+ ];
21
+ const Template = () => html `
22
+ <kemet-field slug="unique-identifier" label="Frequently asked questions." kemet-margin="tiny:smallest">
23
+ <kemet-input slot="input" name="input" placeholder="Start typing to see the FAQs"></kemet-input>
24
+ <kemet-combo slot="component" .options=${faqs}></kemet-combo>
25
+ </kemet-field>
26
+ `;
27
+ export const Standard = {
28
+ render: () => Template(),
29
+ };
30
+ //# sourceMappingURL=stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stories.js","sourceRoot":"","sources":["../../../../src/components/kemet-combo/docs/stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAG3B,OAAO,gBAAgB,CAAC;AAExB,OAAO,+BAA+B,CAAC;AACvC,OAAO,+BAA+B,CAAC;AACvC,OAAO,6BAA6B,CAAC;AACrC,OAAO,4BAA4B,CAAC;AACpC,OAAO,kCAAkC,CAAC;AAE1C,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,oBAAoB;IAC3B,SAAS,EAAE,aAAa;CACzB,CAAC;AACF,eAAe,IAAI,CAAC;AAIpB,MAAM,IAAI,GAAG;IACX,sBAAsB;IACtB,6BAA6B;IAC7B,wCAAwC;IACxC,yCAAyC;IACzC,gCAAgC;IAChC,kCAAkC;CACnC,CAAC;AAEF,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;;;6CAGkB,IAAI;;CAEhD,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAU;IAC7B,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE;CACzB,CAAC","sourcesContent":["import { html } from 'lit';\nimport type { Meta, StoryObj } from '@storybook/web-components';\n\nimport '../kemet-combo';\n\nimport '../../kemet-field/kemet-field';\nimport '../../kemet-input/kemet-input';\nimport '../../kemet-tabs/kemet-tabs';\nimport '../../kemet-tabs/kemet-tab';\nimport '../../kemet-tabs/kemet-tab-panel';\n\nconst meta: Meta = {\n title: 'Components / Combo',\n component: 'kemet-combo',\n};\nexport default meta;\n\ntype Story = StoryObj;\n\nconst faqs = [\n 'How do use Kemet UI?',\n 'What is a Blueprint System?',\n 'Are there going to be more components?',\n 'Is it good to use attribute for styles?',\n 'Does Kemet UI work with React?',\n 'Does Kemet UI work with Angular?',\n];\n\nconst Template = () => html`\n <kemet-field slug=\"unique-identifier\" label=\"Frequently asked questions.\" kemet-margin=\"tiny:smallest\">\n <kemet-input slot=\"input\" name=\"input\" placeholder=\"Start typing to see the FAQs\"></kemet-input>\n <kemet-combo slot=\"component\" .options=${faqs}></kemet-combo>\n </kemet-field>\n`;\n\nexport const Standard: Story = {\n render: () => Template(),\n};\n"]}
@@ -0,0 +1,50 @@
1
+ import { LitElement } from 'lit';
2
+ import { KemetFieldInterface } from '../kemet-field/types';
3
+ /**
4
+ * @since 1.0.0
5
+ * @status stable
6
+ *
7
+ * @tagname kemet-combo
8
+ * @summary Allows the user to select a choice filtered through an Input. May only be used as a component of Field.
9
+ *
10
+ * @prop {string} slug - Uniquely identifies the component. Should match the slug used in a control.
11
+ * @prop {array} options - An array of items listed for the combo box
12
+ * @prop {boolean} show - Controls the display of the combo box
13
+ *
14
+ * @csspart combobox - The combo's container element.
15
+ * @csspart listbox - The list element in the combo.
16
+ *
17
+ * @cssproperty --kemet-combo-width - The width of the combo box. Default: calc(100% - 2px).
18
+ * @cssproperty --kemet-combo-margin - The margins on the combo box. Default: 1rem auto.
19
+ * @cssproperty --kemet-combo-max-height - The max height of the combo box. Default: calc(5 * 3rem).
20
+ * @cssproperty --kemet-combo-border - The border of the combo box. Default: 1px solid var(--kemet-color-primary).
21
+ * @cssproperty --kemet-combo-border-radius - The border radius of the combo box. Default: var(--kemet-border-radius).
22
+ * @cssproperty --kemet-combo-background-color - The background color of the combo box. Default: var(--kemet-color-white-to-black).
23
+ * @cssproperty --kemet-combo-shadow - The shadow of the combo box. Default: var(--kemet-elevation-layer5).
24
+ * @cssproperty --kemet-combo-hover-color - The hover item's text color. Default: var(--kemet-color-white).
25
+ * @cssproperty --kemet-combo-hover-background-color - The hover item's background color. Default: var(--kemet-color-primary).
26
+ *
27
+ * @event kemet-combo-selection - Fires when a selection has been made
28
+ *
29
+ */
30
+ export default class KemetCombo extends LitElement {
31
+ static styles: import("lit").CSSResult[];
32
+ slug: string;
33
+ options: any[];
34
+ show: boolean;
35
+ filteredOptions: any[];
36
+ field: KemetFieldInterface;
37
+ input: HTMLInputElement;
38
+ firstUpdated(): void;
39
+ render(): import("lit-html").TemplateResult<1>;
40
+ makeOptions(): import("lit-html").TemplateResult<1>[];
41
+ handleInput(event: any): void;
42
+ handleSelection(event: any): void;
43
+ handleOptionKeyDown(event: any): void;
44
+ handleInputKeyDown(event: any): void;
45
+ }
46
+ declare global {
47
+ interface HTMLElementTagNameMap {
48
+ 'kemet-combo': KemetCombo;
49
+ }
50
+ }
@@ -1,6 +1,8 @@
1
- import { html, css, LitElement } from 'lit';
2
- import { emitEvent } from '../../utilities/misc/events.js';
3
-
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 { stylesBase } from './styles';
4
6
  /**
5
7
  * @since 1.0.0
6
8
  * @status stable
@@ -20,102 +22,32 @@ import { emitEvent } from '../../utilities/misc/events.js';
20
22
  * @cssproperty --kemet-combo-max-height - The max height of the combo box. Default: calc(5 * 3rem).
21
23
  * @cssproperty --kemet-combo-border - The border of the combo box. Default: 1px solid var(--kemet-color-primary).
22
24
  * @cssproperty --kemet-combo-border-radius - The border radius of the combo box. Default: var(--kemet-border-radius).
23
- * @cssproperty --kemet-combo-background-color - The background color of the combo box. Default: var(--kemet-color-white).
24
- * @cssproperty --kemet-combo-shadow - The shadow of the combo box. Default: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1).
25
+ * @cssproperty --kemet-combo-background-color - The background color of the combo box. Default: var(--kemet-color-white-to-black).
26
+ * @cssproperty --kemet-combo-shadow - The shadow of the combo box. Default: var(--kemet-elevation-layer5).
25
27
  * @cssproperty --kemet-combo-hover-color - The hover item's text color. Default: var(--kemet-color-white).
26
28
  * @cssproperty --kemet-combo-hover-background-color - The hover item's background color. Default: var(--kemet-color-primary).
27
29
  *
28
30
  * @event kemet-combo-selection - Fires when a selection has been made
29
31
  *
30
32
  */
31
-
32
- export default class KemetCombo extends LitElement {
33
- static get styles() {
34
- return [
35
- css`
36
- :host {
37
- opacity: 0;
38
- width: var(--kemet-combo-width, calc(100% - 2px));
39
- margin: var(--kemet-combo-margin, 1rem auto);
40
- pointer-events: none;
41
- display: block;
42
- position: relative;
43
- transition: opacity 0.3s ease-in-out;
44
- }
45
-
46
- :host([show]) {
47
- opacity: 1;
48
- pointer-events: auto;
49
- }
50
-
51
- ul {
52
- width: 100%;
53
- max-height: var(--kemet-combo-max-height, calc(5 * 3rem));
54
- position: absolute;
55
- z-index: 1;
56
- list-style: none;
57
- margin: 0;
58
- padding: 0;
59
- overflow-y: scroll;
60
- border: var(--kemet-combo-border, 1px solid var(--kemet-color-primary));
61
- border-radius: var(--kemet-combo-border-radius, var(--kemet-border-radius));
62
- background-color: var(--kemet-combo-background-color, var(--kemet-color-white));
63
- box-shadow: var(--kemet-combo-shadow, 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1));
64
- }
65
- li {
66
- line-height: 3rem;
67
- padding: 0 1.5rem;
68
- cursor: pointer;
69
- }
70
- li:hover,
71
- li:focus {
72
- color: var(--kemet-combo-hover-color, var(--kemet-color-white));
73
- outline: none;
74
- background-color: var(--kemet-combo-hover-background-color, var(--kemet-color-primary));
75
- }
76
- `,
77
- ];
78
- }
79
-
80
- static get properties() {
81
- return {
82
- slug: {
83
- type: String,
84
- },
85
- options: {
86
- type: Array,
87
- },
88
- /** @internal */
89
- filteredOptions: {
90
- type: Array,
91
- },
92
- show: {
93
- type: Boolean,
94
- reflect: true,
95
- },
96
- };
97
- }
98
-
99
- constructor() {
100
- super();
101
- this.options = [];
102
- }
103
-
104
- firstUpdated() {
105
- // standard properties
106
- this.field = this.closest('kemet-field');
107
- this.input = this.field.querySelector('[slot="input"]');
108
-
109
- // managed properties
110
- this.slug = this.field.slug || 'slug';
111
-
112
- // events listeners
113
- this.input.addEventListener('kemet-input-input', this.handleInput.bind(this));
114
- this.input.addEventListener('keydown', event => this.handleInputKeyDown(event));
115
- }
116
-
117
- render() {
118
- return html`
33
+ let KemetCombo = class KemetCombo extends LitElement {
34
+ constructor() {
35
+ super(...arguments);
36
+ this.options = [];
37
+ }
38
+ firstUpdated() {
39
+ // standard properties
40
+ this.field = this.closest('kemet-field');
41
+ this.input = this.field.querySelector('[slot="input"]');
42
+ // managed properties
43
+ this.slug = this.field.slug || 'slug';
44
+ // events listeners
45
+ this.input.addEventListener('kemet-input-input', this.handleInput.bind(this));
46
+ this.input.addEventListener('keydown', event => this.handleInputKeyDown(event));
47
+ }
48
+ render() {
49
+ var _a;
50
+ return html `
119
51
  <div
120
52
  role="combobox"
121
53
  part="combobox"
@@ -123,23 +55,18 @@ export default class KemetCombo extends LitElement {
123
55
  aria-controls="${this.slug}-listbox"
124
56
  aria-haspopup="listbox"
125
57
  id="${this.slug}-combobox"
126
- aria-label="${this.field?.label}"
58
+ aria-label="${(_a = this.field) === null || _a === void 0 ? void 0 : _a.label}"
127
59
  >
128
60
  <ul role="listbox" aria-labelledby="${this.slug}-label" id="${this.slug}-listbox" part="listbox">
129
61
  ${this.makeOptions()}
130
62
  </ul>
131
63
  </div>
132
64
  `;
133
- }
134
-
135
- makeOptions() {
136
- if (this.input) {
137
- this.filteredOptions = this.options.filter(
138
- option => option.toLowerCase().indexOf(this.input.value?.toLowerCase()) !== -1,
139
- );
140
-
141
- const options = this.filteredOptions.map(
142
- (option, index) => html`<li
65
+ }
66
+ makeOptions() {
67
+ if (this.input) {
68
+ this.filteredOptions = this.options.filter(option => { var _a; return option.toLowerCase().indexOf((_a = this.input.value) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== -1; });
69
+ const options = this.filteredOptions.map((option, index) => html `<li
143
70
  id="${this.slug}-option-${index}"
144
71
  role="option"
145
72
  tabindex="0"
@@ -148,79 +75,88 @@ export default class KemetCombo extends LitElement {
148
75
  @keydown=${event => this.handleOptionKeyDown(event)}
149
76
  >
150
77
  ${option}
151
- </li>`,
152
- );
153
-
154
- return options;
155
- }
156
-
157
- return null;
158
- }
159
-
160
- handleInput(event) {
161
- this.makeOptions();
162
-
163
- if (event.detail.length > 0) {
164
- this.show = true;
165
- } else {
166
- this.show = false;
167
- }
168
- }
169
-
170
- handleSelection(event) {
171
- this.input.value = event.target.innerText;
172
- this.show = false;
173
-
174
- emitEvent(this, 'kemet-combo-section', {
175
- element: event.target,
176
- text: event.target.innerText,
177
- id: event.target.getAttribute('id'),
178
- });
179
- }
180
-
181
- handleOptionKeyDown(event) {
182
- event.preventDefault();
183
-
184
- if (event.code === 'ArrowDown') {
185
- const next = event.target.nextElementSibling;
186
-
187
- if (next) {
188
- next.focus();
189
- } else {
190
- this.shadowRoot.querySelector('li').focus();
191
- }
192
- }
193
-
194
- if (event.code === 'ArrowUp') {
195
- const previous = event.target.previousElementSibling;
196
-
197
- if (previous) {
198
- previous.focus();
199
- } else {
200
- this.shadowRoot.querySelector('li:last-child').focus();
201
- }
78
+ </li>`);
79
+ return options;
80
+ }
81
+ return null;
202
82
  }
203
-
204
- if (event.code === 'Escape' || event.code === 'Tab') {
205
- this.show = false;
206
- this.input.focus();
83
+ handleInput(event) {
84
+ this.makeOptions();
85
+ if (event.detail.length > 0) {
86
+ this.show = true;
87
+ }
88
+ else {
89
+ this.show = false;
90
+ }
207
91
  }
208
-
209
- if (event.code === 'Enter' || event.code === 'Space') {
210
- this.handleSelection(event);
92
+ handleSelection(event) {
93
+ this.input.value = event.target.innerText;
94
+ this.show = false;
95
+ emitEvent(this, 'kemet-combo-section', {
96
+ element: event.target,
97
+ text: event.target.innerText,
98
+ id: event.target.getAttribute('id'),
99
+ });
211
100
  }
212
- }
213
-
214
- handleInputKeyDown(event) {
215
- if (event.code === 'ArrowDown') {
216
- this.shadowRoot.querySelector('li').focus();
101
+ handleOptionKeyDown(event) {
102
+ event.preventDefault();
103
+ if (event.code === 'ArrowDown') {
104
+ const next = event.target.nextElementSibling;
105
+ if (next) {
106
+ next.focus();
107
+ }
108
+ else {
109
+ this.shadowRoot.querySelector('li').focus();
110
+ }
111
+ }
112
+ if (event.code === 'ArrowUp') {
113
+ const previous = event.target.previousElementSibling;
114
+ const lastChild = this.shadowRoot.querySelector('li:last-child');
115
+ if (previous) {
116
+ previous.focus();
117
+ }
118
+ else {
119
+ lastChild.focus();
120
+ }
121
+ }
122
+ if (event.code === 'Escape' || event.code === 'Tab') {
123
+ this.show = false;
124
+ this.input.focus();
125
+ }
126
+ if (event.code === 'Enter' || event.code === 'Space') {
127
+ this.handleSelection(event);
128
+ }
217
129
  }
218
-
219
- if (event.code === 'Escape') {
220
- this.show = false;
130
+ handleInputKeyDown(event) {
131
+ if (event.code === 'ArrowDown') {
132
+ this.shadowRoot.querySelector('li').focus();
133
+ }
134
+ if (event.code === 'Escape') {
135
+ this.show = false;
136
+ }
221
137
  }
222
- }
223
- }
224
-
225
- // eslint-disable-next-line no-unused-expressions
226
- customElements.get('kemet-combo') || customElements.define('kemet-combo', KemetCombo);
138
+ };
139
+ KemetCombo.styles = [stylesBase];
140
+ __decorate([
141
+ property({ type: String })
142
+ ], KemetCombo.prototype, "slug", void 0);
143
+ __decorate([
144
+ property({ type: Array })
145
+ ], KemetCombo.prototype, "options", void 0);
146
+ __decorate([
147
+ property({ type: Boolean, reflect: true })
148
+ ], KemetCombo.prototype, "show", void 0);
149
+ __decorate([
150
+ state()
151
+ ], KemetCombo.prototype, "filteredOptions", void 0);
152
+ __decorate([
153
+ state()
154
+ ], KemetCombo.prototype, "field", void 0);
155
+ __decorate([
156
+ state()
157
+ ], KemetCombo.prototype, "input", void 0);
158
+ KemetCombo = __decorate([
159
+ customElement('kemet-combo')
160
+ ], KemetCombo);
161
+ export default KemetCombo;
162
+ //# sourceMappingURL=kemet-combo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kemet-combo.js","sourceRoot":"","sources":["../../../src/components/kemet-combo/kemet-combo.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, css, LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { emitEvent } from '../../utilities/misc/events';\nimport { KemetFieldInterface } from '../kemet-field/types';\nimport { stylesBase } from './styles';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-combo\n * @summary Allows the user to select a choice filtered through an Input. May only be used as a component of Field.\n *\n * @prop {string} slug - Uniquely identifies the component. Should match the slug used in a control.\n * @prop {array} options - An array of items listed for the combo box\n * @prop {boolean} show - Controls the display of the combo box\n *\n * @csspart combobox - The combo's container element.\n * @csspart listbox - The list element in the combo.\n *\n * @cssproperty --kemet-combo-width - The width of the combo box. Default: calc(100% - 2px).\n * @cssproperty --kemet-combo-margin - The margins on the combo box. Default: 1rem auto.\n * @cssproperty --kemet-combo-max-height - The max height of the combo box. Default: calc(5 * 3rem).\n * @cssproperty --kemet-combo-border - The border of the combo box. Default: 1px solid var(--kemet-color-primary).\n * @cssproperty --kemet-combo-border-radius - The border radius of the combo box. Default: var(--kemet-border-radius).\n * @cssproperty --kemet-combo-background-color - The background color of the combo box. Default: var(--kemet-color-white-to-black).\n * @cssproperty --kemet-combo-shadow - The shadow of the combo box. Default: var(--kemet-elevation-layer5).\n * @cssproperty --kemet-combo-hover-color - The hover item's text color. Default: var(--kemet-color-white).\n * @cssproperty --kemet-combo-hover-background-color - The hover item's background color. Default: var(--kemet-color-primary).\n *\n * @event kemet-combo-selection - Fires when a selection has been made\n *\n */\n\n@customElement('kemet-combo')\nexport default class KemetCombo extends LitElement {\n static styles = [stylesBase];\n\n @property({ type: String })\n slug: string;\n\n @property({ type: Array })\n options: any[] = [];\n\n @property({ type: Boolean, reflect: true })\n show: boolean;\n\n @state()\n filteredOptions: any[];\n\n @state()\n field: KemetFieldInterface;\n\n @state()\n input: HTMLInputElement;\n\n firstUpdated() {\n // standard properties\n this.field = this.closest('kemet-field');\n this.input = this.field.querySelector('[slot=\"input\"]');\n\n // managed properties\n this.slug = this.field.slug || 'slug';\n\n // events listeners\n this.input.addEventListener('kemet-input-input', this.handleInput.bind(this));\n this.input.addEventListener('keydown', event => this.handleInputKeyDown(event));\n }\n\n render() {\n return html`\n <div\n role=\"combobox\"\n part=\"combobox\"\n aria-expanded=${this.show}\n aria-controls=\"${this.slug}-listbox\"\n aria-haspopup=\"listbox\"\n id=\"${this.slug}-combobox\"\n aria-label=\"${this.field?.label}\"\n >\n <ul role=\"listbox\" aria-labelledby=\"${this.slug}-label\" id=\"${this.slug}-listbox\" part=\"listbox\">\n ${this.makeOptions()}\n </ul>\n </div>\n `;\n }\n\n makeOptions() {\n if (this.input) {\n this.filteredOptions = this.options.filter(\n option => option.toLowerCase().indexOf(this.input.value?.toLowerCase()) !== -1,\n );\n\n const options = this.filteredOptions.map(\n (option, index) => html`<li\n id=\"${this.slug}-option-${index}\"\n role=\"option\"\n tabindex=\"0\"\n aria-selected=\"false\"\n @click=${event => this.handleSelection(event)}\n @keydown=${event => this.handleOptionKeyDown(event)}\n >\n ${option}\n </li>`,\n );\n\n return options;\n }\n\n return null;\n }\n\n handleInput(event) {\n this.makeOptions();\n\n if (event.detail.length > 0) {\n this.show = true;\n } else {\n this.show = false;\n }\n }\n\n handleSelection(event) {\n this.input.value = event.target.innerText;\n this.show = false;\n\n emitEvent(this, 'kemet-combo-section', {\n element: event.target,\n text: event.target.innerText,\n id: event.target.getAttribute('id'),\n });\n }\n\n handleOptionKeyDown(event) {\n event.preventDefault();\n\n if (event.code === 'ArrowDown') {\n const next = event.target.nextElementSibling;\n\n if (next) {\n next.focus();\n } else {\n this.shadowRoot.querySelector('li').focus();\n }\n }\n\n if (event.code === 'ArrowUp') {\n const previous = event.target.previousElementSibling;\n const lastChild = this.shadowRoot.querySelector('li:last-child') as HTMLElement;\n\n if (previous) {\n previous.focus();\n } else {\n lastChild.focus();\n }\n }\n\n if (event.code === 'Escape' || event.code === 'Tab') {\n this.show = false;\n this.input.focus();\n }\n\n if (event.code === 'Enter' || event.code === 'Space') {\n this.handleSelection(event);\n }\n }\n\n handleInputKeyDown(event) {\n if (event.code === 'ArrowDown') {\n this.shadowRoot.querySelector('li').focus();\n }\n\n if (event.code === 'Escape') {\n this.show = false;\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-combo': KemetCombo\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ export declare const stylesBase: import("lit").CSSResult;
@@ -0,0 +1,44 @@
1
+ import { css } from 'lit';
2
+ export const stylesBase = css `
3
+ :host {
4
+ opacity: 0;
5
+ width: var(--kemet-combo-width, calc(100% - 2px));
6
+ margin: var(--kemet-combo-margin, 1rem auto);
7
+ pointer-events: none;
8
+ display: block;
9
+ position: relative;
10
+ transition: opacity 0.3s ease-in-out;
11
+ }
12
+
13
+ :host([show]) {
14
+ opacity: 1;
15
+ pointer-events: auto;
16
+ }
17
+
18
+ ul {
19
+ width: 100%;
20
+ max-height: var(--kemet-combo-max-height, calc(5 * 3rem));
21
+ position: absolute;
22
+ z-index: 1;
23
+ list-style: none;
24
+ margin: 0;
25
+ padding: 0;
26
+ overflow-y: scroll;
27
+ border: var(--kemet-combo-border, 1px solid var(--kemet-color-background));
28
+ border-radius: var(--kemet-combo-border-radius, var(--kemet-border-radius));
29
+ background-color: var(--kemet-combo-background-color, var(--kemet-color-white-to-black));
30
+ box-shadow: var(--kemet-combo-shadow, var(--kemet-elevation-layer5));
31
+ }
32
+ li {
33
+ line-height: 3rem;
34
+ padding: 0 1.5rem;
35
+ cursor: pointer;
36
+ }
37
+ li:hover,
38
+ li:focus {
39
+ color: var(--kemet-combo-hover-color, var(--kemet-color-white));
40
+ outline: none;
41
+ background-color: var(--kemet-combo-hover-background-color, var(--kemet-color-primary));
42
+ }
43
+ `;
44
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/components/kemet-combo/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyC5B,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const stylesBase = css`\n :host {\n opacity: 0;\n width: var(--kemet-combo-width, calc(100% - 2px));\n margin: var(--kemet-combo-margin, 1rem auto);\n pointer-events: none;\n display: block;\n position: relative;\n transition: opacity 0.3s ease-in-out;\n }\n\n :host([show]) {\n opacity: 1;\n pointer-events: auto;\n }\n\n ul {\n width: 100%;\n max-height: var(--kemet-combo-max-height, calc(5 * 3rem));\n position: absolute;\n z-index: 1;\n list-style: none;\n margin: 0;\n padding: 0;\n overflow-y: scroll;\n border: var(--kemet-combo-border, 1px solid var(--kemet-color-background));\n border-radius: var(--kemet-combo-border-radius, var(--kemet-border-radius));\n background-color: var(--kemet-combo-background-color, var(--kemet-color-white-to-black));\n box-shadow: var(--kemet-combo-shadow, var(--kemet-elevation-layer5));\n }\n li {\n line-height: 3rem;\n padding: 0 1.5rem;\n cursor: pointer;\n }\n li:hover,\n li:focus {\n color: var(--kemet-combo-hover-color, var(--kemet-color-white));\n outline: none;\n background-color: var(--kemet-combo-hover-background-color, var(--kemet-color-primary));\n }\n`;\n"]}
@@ -0,0 +1,5 @@
1
+ export interface KemetComboInterface extends HTMLElement {
2
+ slug?: string;
3
+ options?: any[];
4
+ show?: boolean;
5
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/kemet-combo/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface KemetComboInterface extends HTMLElement {\n slug?: string,\n options?: any[],\n show?: boolean,\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import type { Meta, StoryObj } from '@storybook/web-components';
2
+ import '../kemet-count';
3
+ import '../../kemet-input/kemet-input';
4
+ import '../../kemet-field/kemet-field';
5
+ import '../../kemet-tabs/kemet-tabs';
6
+ import '../../kemet-tabs/kemet-tab';
7
+ import '../../kemet-tabs/kemet-tab-panel';
8
+ declare const meta: Meta;
9
+ export default meta;
10
+ declare type Story = StoryObj;
11
+ export declare const Standard: Story;