kemet-ui 2.0.3 → 3.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 (336) hide show
  1. package/custom-elements.json +621 -692
  2. package/dist/components/kemet-accordion/kemet-accordion-panel.d.ts +3 -4
  3. package/dist/components/kemet-accordion/kemet-accordion-panel.js +4 -3
  4. package/dist/components/kemet-accordion/kemet-accordion-panel.js.map +1 -1
  5. package/dist/components/kemet-accordion/kemet-accordion.d.ts +6 -5
  6. package/dist/components/kemet-accordion/kemet-accordion.js +14 -5
  7. package/dist/components/kemet-accordion/kemet-accordion.js.map +1 -1
  8. package/dist/components/kemet-accordion/stories.d.ts +2 -0
  9. package/dist/components/kemet-accordion/stories.js +6 -3
  10. package/dist/components/kemet-accordion/stories.js.map +1 -1
  11. package/dist/components/kemet-accordion/styles.js +5 -5
  12. package/dist/components/kemet-accordion/styles.js.map +1 -1
  13. package/dist/components/kemet-alert/docs/stories.d.ts +12 -0
  14. package/dist/components/kemet-alert/docs/stories.js +180 -36
  15. package/dist/components/kemet-alert/docs/stories.js.map +1 -1
  16. package/dist/components/kemet-alert/kemet-alert.d.ts +6 -7
  17. package/dist/components/kemet-alert/kemet-alert.js +8 -5
  18. package/dist/components/kemet-alert/kemet-alert.js.map +1 -1
  19. package/dist/components/kemet-alert/styles.js +10 -8
  20. package/dist/components/kemet-alert/styles.js.map +1 -1
  21. package/dist/components/kemet-alert/types.d.ts +0 -9
  22. package/dist/components/kemet-alert/types.js.map +1 -1
  23. package/dist/components/kemet-avatar/docs/stories.d.ts +4 -0
  24. package/dist/components/kemet-avatar/docs/stories.js +57 -35
  25. package/dist/components/kemet-avatar/docs/stories.js.map +1 -1
  26. package/dist/components/kemet-avatar/kemet-avatar.d.ts +4 -4
  27. package/dist/components/kemet-avatar/kemet-avatar.js +4 -4
  28. package/dist/components/kemet-avatar/kemet-avatar.js.map +1 -1
  29. package/dist/components/kemet-avatar/styles.js +16 -9
  30. package/dist/components/kemet-avatar/styles.js.map +1 -1
  31. package/dist/components/kemet-badge/docs/stories.d.ts +6 -0
  32. package/dist/components/kemet-badge/docs/stories.js +52 -16
  33. package/dist/components/kemet-badge/docs/stories.js.map +1 -1
  34. package/dist/components/kemet-badge/kemet-badge.d.ts +2 -1
  35. package/dist/components/kemet-badge/kemet-badge.js +1 -1
  36. package/dist/components/kemet-badge/kemet-badge.js.map +1 -1
  37. package/dist/components/kemet-badge/styles.js +11 -9
  38. package/dist/components/kemet-badge/styles.js.map +1 -1
  39. package/dist/components/kemet-badge/types.d.ts +1 -6
  40. package/dist/components/kemet-badge/types.js.map +1 -1
  41. package/dist/components/kemet-button/docs/stories.d.ts +12 -0
  42. package/dist/components/kemet-button/docs/stories.js +81 -20
  43. package/dist/components/kemet-button/docs/stories.js.map +1 -1
  44. package/dist/components/kemet-button/kemet-button.d.ts +23 -23
  45. package/dist/components/kemet-button/kemet-button.js +23 -23
  46. package/dist/components/kemet-button/kemet-button.js.map +1 -1
  47. package/dist/components/kemet-button/styles.js +46 -26
  48. package/dist/components/kemet-button/styles.js.map +1 -1
  49. package/dist/components/kemet-button/types.d.ts +1 -10
  50. package/dist/components/kemet-button/types.js.map +1 -1
  51. package/dist/components/kemet-card/docs/stories.d.ts +10 -0
  52. package/dist/components/kemet-card/docs/stories.js +78 -66
  53. package/dist/components/kemet-card/docs/stories.js.map +1 -1
  54. package/dist/components/kemet-card/kemet-card.d.ts +16 -16
  55. package/dist/components/kemet-card/kemet-card.js +16 -16
  56. package/dist/components/kemet-card/kemet-card.js.map +1 -1
  57. package/dist/components/kemet-card/styles.js +29 -14
  58. package/dist/components/kemet-card/styles.js.map +1 -1
  59. package/dist/components/kemet-carousel/docs/stories.d.ts +6 -0
  60. package/dist/components/kemet-carousel/docs/stories.js +72 -60
  61. package/dist/components/kemet-carousel/docs/stories.js.map +1 -1
  62. package/dist/components/kemet-carousel/kemet-carousel-current.d.ts +2 -2
  63. package/dist/components/kemet-carousel/kemet-carousel-current.js.map +1 -1
  64. package/dist/components/kemet-carousel/kemet-carousel-last.d.ts +1 -1
  65. package/dist/components/kemet-carousel/kemet-carousel-last.js +1 -1
  66. package/dist/components/kemet-carousel/kemet-carousel-last.js.map +1 -1
  67. package/dist/components/kemet-carousel/kemet-carousel-total.d.ts +2 -2
  68. package/dist/components/kemet-carousel/kemet-carousel-total.js.map +1 -1
  69. package/dist/components/kemet-carousel/kemet-carousel.d.ts +33 -29
  70. package/dist/components/kemet-carousel/kemet-carousel.js +47 -28
  71. package/dist/components/kemet-carousel/kemet-carousel.js.map +1 -1
  72. package/dist/components/kemet-carousel/styles.js +31 -15
  73. package/dist/components/kemet-carousel/styles.js.map +1 -1
  74. package/dist/components/kemet-checkbox/docs/stories.d.ts +4 -0
  75. package/dist/components/kemet-checkbox/docs/stories.js +28 -28
  76. package/dist/components/kemet-checkbox/docs/stories.js.map +1 -1
  77. package/dist/components/kemet-checkbox/kemet-checkbox.d.ts +8 -8
  78. package/dist/components/kemet-checkbox/kemet-checkbox.js +8 -8
  79. package/dist/components/kemet-checkbox/kemet-checkbox.js.map +1 -1
  80. package/dist/components/kemet-checkbox/styles.js +20 -13
  81. package/dist/components/kemet-checkbox/styles.js.map +1 -1
  82. package/dist/components/kemet-combo/docs/stories.js +14 -12
  83. package/dist/components/kemet-combo/docs/stories.js.map +1 -1
  84. package/dist/components/kemet-combo/kemet-combo.d.ts +17 -17
  85. package/dist/components/kemet-combo/kemet-combo.js +22 -26
  86. package/dist/components/kemet-combo/kemet-combo.js.map +1 -1
  87. package/dist/components/kemet-combo/styles.js +21 -9
  88. package/dist/components/kemet-combo/styles.js.map +1 -1
  89. package/dist/components/kemet-count/docs/stories.js +10 -25
  90. package/dist/components/kemet-count/docs/stories.js.map +1 -1
  91. package/dist/components/kemet-count/kemet-count.d.ts +1 -1
  92. package/dist/components/kemet-count/kemet-count.js +1 -1
  93. package/dist/components/kemet-count/kemet-count.js.map +1 -1
  94. package/dist/components/kemet-draggable/docs/stories.d.ts +1 -0
  95. package/dist/components/kemet-draggable/docs/stories.js +8 -15
  96. package/dist/components/kemet-draggable/docs/stories.js.map +1 -1
  97. package/dist/components/kemet-draggable/kemet-draggable.d.ts +3 -3
  98. package/dist/components/kemet-draggable/kemet-draggable.js +6 -5
  99. package/dist/components/kemet-draggable/kemet-draggable.js.map +1 -1
  100. package/dist/components/kemet-drawer/docs/stories.d.ts +6 -0
  101. package/dist/components/kemet-drawer/docs/stories.js +59 -60
  102. package/dist/components/kemet-drawer/docs/stories.js.map +1 -1
  103. package/dist/components/kemet-drawer/kemet-drawer.d.ts +7 -7
  104. package/dist/components/kemet-drawer/kemet-drawer.js +7 -7
  105. package/dist/components/kemet-drawer/kemet-drawer.js.map +1 -1
  106. package/dist/components/kemet-drawer/styles.js +32 -25
  107. package/dist/components/kemet-drawer/styles.js.map +1 -1
  108. package/dist/components/kemet-drawer/types.d.ts +0 -6
  109. package/dist/components/kemet-drawer/types.js.map +1 -1
  110. package/dist/components/kemet-fab/docs/stories.d.ts +3 -0
  111. package/dist/components/kemet-fab/docs/stories.js +23 -32
  112. package/dist/components/kemet-fab/docs/stories.js.map +1 -1
  113. package/dist/components/kemet-fab/kemet-fab.d.ts +7 -7
  114. package/dist/components/kemet-fab/kemet-fab.js +7 -7
  115. package/dist/components/kemet-fab/kemet-fab.js.map +1 -1
  116. package/dist/components/kemet-fab/styles.js +19 -10
  117. package/dist/components/kemet-fab/styles.js.map +1 -1
  118. package/dist/components/kemet-field/docs/stories.d.ts +1 -1
  119. package/dist/components/kemet-field/docs/stories.js +19 -69
  120. package/dist/components/kemet-field/docs/stories.js.map +1 -1
  121. package/dist/components/kemet-field/kemet-field.d.ts +12 -12
  122. package/dist/components/kemet-field/kemet-field.js +9 -14
  123. package/dist/components/kemet-field/kemet-field.js.map +1 -1
  124. package/dist/components/kemet-field/styles.js +6 -6
  125. package/dist/components/kemet-field/styles.js.map +1 -1
  126. package/dist/components/kemet-flipcard/docs/stories.d.ts +3 -0
  127. package/dist/components/kemet-flipcard/docs/stories.js +29 -78
  128. package/dist/components/kemet-flipcard/docs/stories.js.map +1 -1
  129. package/dist/components/kemet-flipcard/kemet-flipcard-trigger.d.ts +1 -1
  130. package/dist/components/kemet-flipcard/kemet-flipcard-trigger.js +2 -3
  131. package/dist/components/kemet-flipcard/kemet-flipcard-trigger.js.map +1 -1
  132. package/dist/components/kemet-flipcard/kemet-flipcard.d.ts +9 -9
  133. package/dist/components/kemet-flipcard/kemet-flipcard.js +10 -12
  134. package/dist/components/kemet-flipcard/kemet-flipcard.js.map +1 -1
  135. package/dist/components/kemet-flipcard/styles.js +20 -10
  136. package/dist/components/kemet-flipcard/styles.js.map +1 -1
  137. package/dist/components/kemet-icon/docs/stories.js +8 -15
  138. package/dist/components/kemet-icon/docs/stories.js.map +1 -1
  139. package/dist/components/kemet-input/docs/stories.d.ts +4 -0
  140. package/dist/components/kemet-input/docs/stories.js +54 -113
  141. package/dist/components/kemet-input/docs/stories.js.map +1 -1
  142. package/dist/components/kemet-input/kemet-input.d.ts +18 -37
  143. package/dist/components/kemet-input/kemet-input.js +18 -38
  144. package/dist/components/kemet-input/kemet-input.js.map +1 -1
  145. package/dist/components/kemet-input/styles.js +38 -21
  146. package/dist/components/kemet-input/styles.js.map +1 -1
  147. package/dist/components/kemet-modal/docs/stories.d.ts +2 -0
  148. package/dist/components/kemet-modal/docs/stories.js +25 -68
  149. package/dist/components/kemet-modal/docs/stories.js.map +1 -1
  150. package/dist/components/kemet-modal/kemet-modal-close.js +1 -1
  151. package/dist/components/kemet-modal/kemet-modal-close.js.map +1 -1
  152. package/dist/components/kemet-modal/kemet-modal.d.ts +20 -10
  153. package/dist/components/kemet-modal/kemet-modal.js +39 -20
  154. package/dist/components/kemet-modal/kemet-modal.js.map +1 -1
  155. package/dist/components/kemet-modal/styles.js +77 -48
  156. package/dist/components/kemet-modal/styles.js.map +1 -1
  157. package/dist/components/kemet-password/docs/stories.js +10 -18
  158. package/dist/components/kemet-password/docs/stories.js.map +1 -1
  159. package/dist/components/kemet-password/kemet-password.d.ts +14 -8
  160. package/dist/components/kemet-password/kemet-password.js +4 -33
  161. package/dist/components/kemet-password/kemet-password.js.map +1 -1
  162. package/dist/components/kemet-password/styles.js +7 -7
  163. package/dist/components/kemet-password/styles.js.map +1 -1
  164. package/dist/components/kemet-popper/docs/stories.d.ts +2 -0
  165. package/dist/components/kemet-popper/docs/stories.js +32 -39
  166. package/dist/components/kemet-popper/docs/stories.js.map +1 -1
  167. package/dist/components/kemet-popper/kemet-popper-close.d.ts +1 -1
  168. package/dist/components/kemet-popper/kemet-popper-close.js +2 -3
  169. package/dist/components/kemet-popper/kemet-popper-close.js.map +1 -1
  170. package/dist/components/kemet-popper/kemet-popper.d.ts +19 -10
  171. package/dist/components/kemet-popper/kemet-popper.js +23 -32
  172. package/dist/components/kemet-popper/kemet-popper.js.map +1 -1
  173. package/dist/components/kemet-popper/styles.js +14 -5
  174. package/dist/components/kemet-popper/styles.js.map +1 -1
  175. package/dist/components/kemet-radio/docs/stories.d.ts +2 -0
  176. package/dist/components/kemet-radio/docs/stories.js +24 -20
  177. package/dist/components/kemet-radio/docs/stories.js.map +1 -1
  178. package/dist/components/kemet-radio/kemet-radio.d.ts +7 -6
  179. package/dist/components/kemet-radio/kemet-radio.js +7 -6
  180. package/dist/components/kemet-radio/kemet-radio.js.map +1 -1
  181. package/dist/components/kemet-radio/kemet-radios.d.ts +6 -5
  182. package/dist/components/kemet-radio/kemet-radios.js +11 -5
  183. package/dist/components/kemet-radio/kemet-radios.js.map +1 -1
  184. package/dist/components/kemet-radio/styles.js +26 -16
  185. package/dist/components/kemet-radio/styles.js.map +1 -1
  186. package/dist/components/kemet-rotator/docs/stories.d.ts +1 -0
  187. package/dist/components/kemet-rotator/docs/stories.js +16 -28
  188. package/dist/components/kemet-rotator/docs/stories.js.map +1 -1
  189. package/dist/components/kemet-rotator/kemet-rotator.d.ts +3 -3
  190. package/dist/components/kemet-rotator/kemet-rotator.js +2 -3
  191. package/dist/components/kemet-rotator/kemet-rotator.js.map +1 -1
  192. package/dist/components/kemet-rotator/styles.js +4 -2
  193. package/dist/components/kemet-rotator/styles.js.map +1 -1
  194. package/dist/components/kemet-scroll-link/docs/stories.js +2 -2
  195. package/dist/components/kemet-scroll-link/docs/stories.js.map +1 -1
  196. package/dist/components/kemet-scroll-link/kemet-scroll-link.d.ts +2 -2
  197. package/dist/components/kemet-scroll-link/kemet-scroll-link.js +11 -10
  198. package/dist/components/kemet-scroll-link/kemet-scroll-link.js.map +1 -1
  199. package/dist/components/kemet-scroll-nav/docs/stories.js +5 -5
  200. package/dist/components/kemet-scroll-nav/docs/stories.js.map +1 -1
  201. package/dist/components/kemet-scroll-nav/kemet-scroll-nav.d.ts +7 -7
  202. package/dist/components/kemet-scroll-nav/kemet-scroll-nav.js +7 -12
  203. package/dist/components/kemet-scroll-nav/kemet-scroll-nav.js.map +1 -1
  204. package/dist/components/kemet-scroll-nav/styles.js +10 -4
  205. package/dist/components/kemet-scroll-nav/styles.js.map +1 -1
  206. package/dist/components/kemet-scroll-snap/docs/stories.d.ts +6 -0
  207. package/dist/components/kemet-scroll-snap/docs/stories.js +72 -82
  208. package/dist/components/kemet-scroll-snap/docs/stories.js.map +1 -1
  209. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.d.ts +8 -7
  210. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.js +4 -4
  211. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.js.map +1 -1
  212. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-slide.d.ts +1 -1
  213. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-slide.js +1 -1
  214. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-slide.js.map +1 -1
  215. package/dist/components/kemet-scroll-snap/kemet-scroll-snap.d.ts +7 -6
  216. package/dist/components/kemet-scroll-snap/kemet-scroll-snap.js +6 -11
  217. package/dist/components/kemet-scroll-snap/kemet-scroll-snap.js.map +1 -1
  218. package/dist/components/kemet-scroll-snap/styles.js +14 -6
  219. package/dist/components/kemet-scroll-snap/styles.js.map +1 -1
  220. package/dist/components/kemet-select/docs/stories.d.ts +3 -0
  221. package/dist/components/kemet-select/docs/stories.js +25 -33
  222. package/dist/components/kemet-select/docs/stories.js.map +1 -1
  223. package/dist/components/kemet-select/kemet-option.d.ts +1 -1
  224. package/dist/components/kemet-select/kemet-option.js +1 -1
  225. package/dist/components/kemet-select/kemet-option.js.map +1 -1
  226. package/dist/components/kemet-select/kemet-select.d.ts +32 -23
  227. package/dist/components/kemet-select/kemet-select.js +3 -44
  228. package/dist/components/kemet-select/kemet-select.js.map +1 -1
  229. package/dist/components/kemet-select/styles.js +32 -16
  230. package/dist/components/kemet-select/styles.js.map +1 -1
  231. package/dist/components/kemet-sortable/docs/stories.js +5 -10
  232. package/dist/components/kemet-sortable/docs/stories.js.map +1 -1
  233. package/dist/components/kemet-sortable/kemet-sortable.d.ts +5 -5
  234. package/dist/components/kemet-sortable/kemet-sortable.js +5 -5
  235. package/dist/components/kemet-sortable/kemet-sortable.js.map +1 -1
  236. package/dist/components/kemet-sortable/styles.js +1 -1
  237. package/dist/components/kemet-sortable/styles.js.map +1 -1
  238. package/dist/components/kemet-svgs/docs/stories.js +11 -11
  239. package/dist/components/kemet-svgs/docs/stories.js.map +1 -1
  240. package/dist/components/kemet-svgs/kemet-svgs.d.ts +1 -1
  241. package/dist/components/kemet-svgs/kemet-svgs.js +1 -1
  242. package/dist/components/kemet-svgs/kemet-svgs.js.map +1 -1
  243. package/dist/components/kemet-tabs/docs/stories.d.ts +9 -0
  244. package/dist/components/kemet-tabs/docs/stories.js +78 -78
  245. package/dist/components/kemet-tabs/docs/stories.js.map +1 -1
  246. package/dist/components/kemet-tabs/kemet-tab-panel.d.ts +2 -1
  247. package/dist/components/kemet-tabs/kemet-tab-panel.js +4 -1
  248. package/dist/components/kemet-tabs/kemet-tab-panel.js.map +1 -1
  249. package/dist/components/kemet-tabs/kemet-tab.d.ts +3 -2
  250. package/dist/components/kemet-tabs/kemet-tab.js +6 -3
  251. package/dist/components/kemet-tabs/kemet-tab.js.map +1 -1
  252. package/dist/components/kemet-tabs/kemet-tabs.d.ts +30 -21
  253. package/dist/components/kemet-tabs/kemet-tabs.js +12 -48
  254. package/dist/components/kemet-tabs/kemet-tabs.js.map +1 -1
  255. package/dist/components/kemet-tabs/styles.js +12 -5
  256. package/dist/components/kemet-tabs/styles.js.map +1 -1
  257. package/dist/components/kemet-textarea/docs/stories.d.ts +3 -0
  258. package/dist/components/kemet-textarea/docs/stories.js +37 -67
  259. package/dist/components/kemet-textarea/docs/stories.js.map +1 -1
  260. package/dist/components/kemet-textarea/kemet-textarea.d.ts +12 -12
  261. package/dist/components/kemet-textarea/kemet-textarea.js +12 -12
  262. package/dist/components/kemet-textarea/kemet-textarea.js.map +1 -1
  263. package/dist/components/kemet-textarea/styles.js +31 -16
  264. package/dist/components/kemet-textarea/styles.js.map +1 -1
  265. package/dist/components/kemet-toggle/docs/stories.d.ts +2 -0
  266. package/dist/components/kemet-toggle/docs/stories.js +21 -36
  267. package/dist/components/kemet-toggle/docs/stories.js.map +1 -1
  268. package/dist/components/kemet-toggle/kemet-toggle.d.ts +12 -12
  269. package/dist/components/kemet-toggle/kemet-toggle.js +12 -12
  270. package/dist/components/kemet-toggle/kemet-toggle.js.map +1 -1
  271. package/dist/components/kemet-toggle/styles.js +12 -6
  272. package/dist/components/kemet-toggle/styles.js.map +1 -1
  273. package/dist/components/kemet-tooltip/docs/stories.d.ts +4 -0
  274. package/dist/components/kemet-tooltip/docs/stories.js +58 -33
  275. package/dist/components/kemet-tooltip/docs/stories.js.map +1 -1
  276. package/dist/components/kemet-tooltip/kemet-tooltip.d.ts +2 -2
  277. package/dist/components/kemet-tooltip/kemet-tooltip.js +13 -12
  278. package/dist/components/kemet-tooltip/kemet-tooltip.js.map +1 -1
  279. package/dist/components/kemet-tooltip/styles.js +2 -2
  280. package/dist/components/kemet-tooltip/styles.js.map +1 -1
  281. package/dist/components/kemet-tracker/docs/stories.d.ts +1 -0
  282. package/dist/components/kemet-tracker/docs/stories.js +18 -22
  283. package/dist/components/kemet-tracker/docs/stories.js.map +1 -1
  284. package/dist/components/kemet-tracker/kemet-tracker-step.d.ts +18 -18
  285. package/dist/components/kemet-tracker/kemet-tracker-step.js +18 -18
  286. package/dist/components/kemet-tracker/kemet-tracker-step.js.map +1 -1
  287. package/dist/components/kemet-tracker/kemet-tracker.d.ts +2 -1
  288. package/dist/components/kemet-tracker/kemet-tracker.js.map +1 -1
  289. package/dist/components/kemet-tracker/styles.js +23 -12
  290. package/dist/components/kemet-tracker/styles.js.map +1 -1
  291. package/dist/components/kemet-upload/docs/stories.js +17 -22
  292. package/dist/components/kemet-upload/docs/stories.js.map +1 -1
  293. package/dist/components/kemet-upload/kemet-upload-file.d.ts +3 -3
  294. package/dist/components/kemet-upload/kemet-upload-file.js +4 -5
  295. package/dist/components/kemet-upload/kemet-upload-file.js.map +1 -1
  296. package/dist/components/kemet-upload/kemet-upload.d.ts +7 -7
  297. package/dist/components/kemet-upload/kemet-upload.js +7 -12
  298. package/dist/components/kemet-upload/kemet-upload.js.map +1 -1
  299. package/dist/components/kemet-upload/styles.js +27 -18
  300. package/dist/components/kemet-upload/styles.js.map +1 -1
  301. package/dist/kemet-components.bundle.js +98 -86
  302. package/dist/kemet-components.bundle.js.map +1 -1
  303. package/dist/kemet-components.cjs +3076 -2910
  304. package/dist/kemet-components.js +3076 -2910
  305. package/dist/styles/kemet.base.css +255 -78
  306. package/dist/styles/kemet.base.css.map +1 -1
  307. package/dist/styles/kemet.base.scss +6 -5
  308. package/dist/styles/kemet.components.css +1 -16
  309. package/dist/styles/kemet.components.css.map +1 -1
  310. package/dist/styles/kemet.components.scss +0 -2
  311. package/dist/styles/kemet.core.css +5554 -2122
  312. package/dist/styles/kemet.core.css.map +1 -1
  313. package/dist/styles/shared/_config.scss +306 -93
  314. package/dist/styles/shared/_helpers.scss +88 -16
  315. package/dist/tsconfig.tsbuildinfo +1 -1
  316. package/package.json +17 -14
  317. package/dist/components/kemet-accordion/types.d.ts +0 -9
  318. package/dist/components/kemet-accordion/types.js +0 -2
  319. package/dist/components/kemet-accordion/types.js.map +0 -1
  320. package/dist/components/kemet-avatar/types.d.ts +0 -8
  321. package/dist/components/kemet-avatar/types.js +0 -2
  322. package/dist/components/kemet-avatar/types.js.map +0 -1
  323. package/dist/components/kemet-card/types.d.ts +0 -3
  324. package/dist/components/kemet-card/types.js +0 -2
  325. package/dist/components/kemet-card/types.js.map +0 -1
  326. package/dist/components/kemet-carousel/types.d.ts +0 -21
  327. package/dist/components/kemet-carousel/types.js +0 -2
  328. package/dist/components/kemet-carousel/types.js.map +0 -1
  329. package/dist/components/kemet-combo/types.d.ts +0 -5
  330. package/dist/components/kemet-combo/types.js +0 -2
  331. package/dist/components/kemet-combo/types.js.map +0 -1
  332. package/dist/components/kemet-draggable/types.d.ts +0 -6
  333. package/dist/components/kemet-draggable/types.js +0 -2
  334. package/dist/components/kemet-draggable/types.js.map +0 -1
  335. package/dist/styles/components/drawer.scss +0 -11
  336. package/dist/styles/components/modal.scss +0 -8
@@ -1,4 +1,5 @@
1
1
  import { LitElement } from 'lit';
2
+ import KemetScrollSnapSlide from './kemet-scroll-snap-slide';
2
3
  /**
3
4
  * @since 1.0.0
4
5
  * @status stable
@@ -14,16 +15,16 @@ import { LitElement } from 'lit';
14
15
  * @prop {boolean} useNumberPages - If set to true, the pages in the pagination iterator will appear as a set of numbers.
15
16
  * @prop {boolean} useLabelPages - If set to true, the pages in the pagination iterator will appear as the label set on the slide.
16
17
  *
17
- * @cssproperty --kemet-scroll-snap-paginator-padding - The padding on the container. Default: 1rem 0.
18
- * @cssproperty --kemet-scroll-snap-paginator-gap - The space between pagination items. Default: 0.5rem.
19
- * @cssproperty --kemet-scroll-snap-paginator-link-color - The color of a linkable pagination item. Default: var(--kemet-color-primary).
18
+ * @cssproperty --kemet-scroll-snap-paginator-padding - The padding on the container.
19
+ * @cssproperty --kemet-scroll-snap-paginator-gap - The space between pagination items.
20
+ * @cssproperty --kemet-scroll-snap-paginator-link-color - The color of a linkable pagination item.
20
21
  *
21
22
  * @event kemet-scroll-snap-focus - Fires when a set of slides are focused on.
22
23
  *
23
24
  */
24
25
  export default class KemetScrollSnapPaginator extends LitElement {
25
26
  static styles: import("lit").CSSResult[];
26
- slides: any[];
27
+ slides: KemetScrollSnapSlide[];
27
28
  icon: string;
28
29
  size: number;
29
30
  center: boolean;
@@ -33,9 +34,9 @@ export default class KemetScrollSnapPaginator extends LitElement {
33
34
  updated(): void;
34
35
  render(): import("lit-html").TemplateResult<1>;
35
36
  makePagination(): import("lit-html").TemplateResult<1>[];
36
- pageDisplay(slide: any, visibleIndex: any): any;
37
- slideLink(index: any): void;
38
- handleKeyboardInput(event: any, id: any): void;
37
+ pageDisplay(slide: KemetScrollSnapSlide, visibleIndex: number): string | number | import("lit-html").TemplateResult<1>;
38
+ slideLink(index: string): void;
39
+ handleKeyboardInput(event: KeyboardEvent, id: string): void;
39
40
  }
40
41
  declare global {
41
42
  interface HTMLElementTagNameMap {
@@ -18,9 +18,9 @@ import { stylesScrollSnapPaginator } from './styles';
18
18
  * @prop {boolean} useNumberPages - If set to true, the pages in the pagination iterator will appear as a set of numbers.
19
19
  * @prop {boolean} useLabelPages - If set to true, the pages in the pagination iterator will appear as the label set on the slide.
20
20
  *
21
- * @cssproperty --kemet-scroll-snap-paginator-padding - The padding on the container. Default: 1rem 0.
22
- * @cssproperty --kemet-scroll-snap-paginator-gap - The space between pagination items. Default: 0.5rem.
23
- * @cssproperty --kemet-scroll-snap-paginator-link-color - The color of a linkable pagination item. Default: var(--kemet-color-primary).
21
+ * @cssproperty --kemet-scroll-snap-paginator-padding - The padding on the container.
22
+ * @cssproperty --kemet-scroll-snap-paginator-gap - The space between pagination items.
23
+ * @cssproperty --kemet-scroll-snap-paginator-link-color - The color of a linkable pagination item.
24
24
  *
25
25
  * @event kemet-scroll-snap-focus - Fires when a set of slides are focused on.
26
26
  *
@@ -63,7 +63,7 @@ let KemetScrollSnapPaginator = class KemetScrollSnapPaginator extends LitElement
63
63
  class="link"
64
64
  tabindex="0"
65
65
  role="button"
66
- @keyup="${event => this.handleKeyboardInput(event, slide.id)}"
66
+ @keyup="${(event) => this.handleKeyboardInput(event, slide.id)}"
67
67
  @click=${() => this.slideLink(slide.id)}
68
68
  aria-label="${slide.label}">
69
69
  ${this.pageDisplay(slide, counter)}
@@ -1 +1 @@
1
- {"version":3,"file":"kemet-scroll-snap-paginator.js","sourceRoot":"","sources":["../../../src/components/kemet-scroll-snap/kemet-scroll-snap-paginator.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { emitEvent } from '../../utilities/misc/events';\nimport { stylesScrollSnapPaginator } from './styles';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-scroll-snap-paginator\n * @summary The scroll snap's pagination.\n *\n * @prop {array} slides - Information about each slide.\n * @prop {string} icon - A string representing which icon to use for pagination. Supports icons used in kemet-icon.\n * @prop {number} size - The size in pixels of the icons.\n * @prop {boolean} center - Determines whether to center the pagination items.\n * @prop {boolean} hideFocusedLinks - Will hide inactive pagination items if set to true.\n * @prop {boolean} useNumberPages - If set to true, the pages in the pagination iterator will appear as a set of numbers.\n * @prop {boolean} useLabelPages - If set to true, the pages in the pagination iterator will appear as the label set on the slide.\n *\n * @cssproperty --kemet-scroll-snap-paginator-padding - The padding on the container. Default: 1rem 0.\n * @cssproperty --kemet-scroll-snap-paginator-gap - The space between pagination items. Default: 0.5rem.\n * @cssproperty --kemet-scroll-snap-paginator-link-color - The color of a linkable pagination item. Default: var(--kemet-color-primary).\n *\n * @event kemet-scroll-snap-focus - Fires when a set of slides are focused on.\n *\n */\n\n@customElement('kemet-scroll-snap-paginator')\nexport default class KemetScrollSnapPaginator extends LitElement {\n static styles = [stylesScrollSnapPaginator];\n\n @property({ type: Array })\n slides: any[] = [];\n\n @property({ type: String })\n icon: string = 'circle-fill';\n\n @property({ type: Number })\n size: number = 16;\n\n @property({ type: Boolean, reflect: true })\n center: boolean;\n\n @property({ type: Boolean, attribute: 'hide-focused-links' })\n hideFocusedLinks: boolean = false;\n\n @property({ type: Boolean, reflect: true, attribute: 'use-number-pages' })\n useNumberPages: boolean = false;\n\n @property({ type: Boolean, reflect: true, attribute: 'use-label-pages' })\n useLabelPages: boolean = false;\n\n\n updated() {\n const scrollSnapElement = this.closest('kemet-scroll-snap');\n\n if (scrollSnapElement) {\n scrollSnapElement.addEventListener('kemet-scroll-snap-make-slides', (event: CustomEvent) => {\n this.slides = event.detail;\n });\n }\n }\n\n render() {\n return html`\n <nav part=\"nav\">${this.makePagination()}</nav>\n `;\n }\n\n makePagination() {\n let counter = 0;\n\n if (this.slides) {\n return this.slides.map((slide) => {\n counter = counter += 1;\n\n if (slide.focused) {\n return html`\n <span part=\"span\">${this.pageDisplay(slide, counter)}</span>\n `;\n }\n\n return html`\n <span\n class=\"link\"\n tabindex=\"0\"\n role=\"button\"\n @keyup=\"${event => this.handleKeyboardInput(event, slide.id)}\"\n @click=${() => this.slideLink(slide.id)}\n aria-label=\"${slide.label}\">\n ${this.pageDisplay(slide, counter)}\n </span>\n `;\n });\n }\n\n return null;\n }\n\n pageDisplay(slide, visibleIndex) {\n if (this.useNumberPages) {\n return visibleIndex;\n }\n\n if (this.useLabelPages) {\n return slide.label;\n }\n\n return html`<kemet-icon icon=${this.icon} size=${this.size}></kemet-icon>`;\n }\n\n slideLink(index) {\n emitEvent(this, 'kemet-scroll-snap-focus', index);\n }\n\n handleKeyboardInput(event, id) {\n if (event.code === 'Enter' || event.code === 'Space') {\n this.slideLink(id);\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-scroll-snap-paginator': KemetScrollSnapPaginator\n }\n}\n"]}
1
+ {"version":3,"file":"kemet-scroll-snap-paginator.js","sourceRoot":"","sources":["../../../src/components/kemet-scroll-snap/kemet-scroll-snap-paginator.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAGrD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,IAAqB,wBAAwB,GAA7C,MAAqB,wBAAyB,SAAQ,UAAU;IAAhE;;QAIE,WAAM,GAA2B,EAAE,CAAC;QAGpC,SAAI,GAAW,aAAa,CAAC;QAG7B,SAAI,GAAW,EAAE,CAAC;QAMlB,qBAAgB,GAAY,KAAK,CAAC;QAGlC,mBAAc,GAAY,KAAK,CAAC;QAGhC,kBAAa,GAAY,KAAK,CAAC;IAqEjC,CAAC;IAnEC,OAAO;QACL,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAE5D,IAAI,iBAAiB,EAAE;YACrB,iBAAiB,CAAC,gBAAgB,CAAC,+BAA+B,EAAE,CAAC,KAAkB,EAAE,EAAE;gBACzF,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC7B,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;wBACS,IAAI,CAAC,cAAc,EAAE;KACxC,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC/B,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC;gBAEvB,IAAI,KAAK,CAAC,OAAO,EAAE;oBACjB,OAAO,IAAI,CAAA;gCACW,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC;WACrD,CAAC;iBACH;gBAED,OAAO,IAAI,CAAA;;;;;sBAKG,CAAC,KAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;qBACpE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;0BACzB,KAAK,CAAC,KAAK;cACvB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC;;SAErC,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,KAA2B,EAAE,YAAoB;QAC3D,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,OAAO,YAAY,CAAC;SACrB;QAED,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,OAAO,KAAK,CAAC,KAAK,CAAC;SACpB;QAED,OAAO,IAAI,CAAA,oBAAoB,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,gBAAgB,CAAC;IAC7E,CAAC;IAED,SAAS,CAAC,KAAa;QACrB,SAAS,CAAC,IAAI,EAAE,yBAAyB,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,mBAAmB,CAAC,KAAoB,EAAE,EAAU;QAClD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;YACpD,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;SACpB;IACH,CAAC;CACF,CAAA;AA1FQ,+BAAM,GAAG,CAAC,yBAAyB,CAAC,CAAC;AAG5C;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;wDACU;AAGpC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sDACE;AAG7B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sDACT;AAGlB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wDAC3B;AAGhB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC;kEAC3B;AAGlC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;gEAC1C;AAGhC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;+DAC1C;AAtBZ,wBAAwB;IAD5C,aAAa,CAAC,6BAA6B,CAAC;GACxB,wBAAwB,CA2F5C;eA3FoB,wBAAwB","sourcesContent":["import { html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { emitEvent } from '../../utilities/misc/events';\nimport { stylesScrollSnapPaginator } from './styles';\nimport KemetScrollSnapSlide from './kemet-scroll-snap-slide';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-scroll-snap-paginator\n * @summary The scroll snap's pagination.\n *\n * @prop {array} slides - Information about each slide.\n * @prop {string} icon - A string representing which icon to use for pagination. Supports icons used in kemet-icon.\n * @prop {number} size - The size in pixels of the icons.\n * @prop {boolean} center - Determines whether to center the pagination items.\n * @prop {boolean} hideFocusedLinks - Will hide inactive pagination items if set to true.\n * @prop {boolean} useNumberPages - If set to true, the pages in the pagination iterator will appear as a set of numbers.\n * @prop {boolean} useLabelPages - If set to true, the pages in the pagination iterator will appear as the label set on the slide.\n *\n * @cssproperty --kemet-scroll-snap-paginator-padding - The padding on the container.\n * @cssproperty --kemet-scroll-snap-paginator-gap - The space between pagination items.\n * @cssproperty --kemet-scroll-snap-paginator-link-color - The color of a linkable pagination item.\n *\n * @event kemet-scroll-snap-focus - Fires when a set of slides are focused on.\n *\n */\n\n@customElement('kemet-scroll-snap-paginator')\nexport default class KemetScrollSnapPaginator extends LitElement {\n static styles = [stylesScrollSnapPaginator];\n\n @property({ type: Array })\n slides: KemetScrollSnapSlide[] = [];\n\n @property({ type: String })\n icon: string = 'circle-fill';\n\n @property({ type: Number })\n size: number = 16;\n\n @property({ type: Boolean, reflect: true })\n center: boolean;\n\n @property({ type: Boolean, attribute: 'hide-focused-links' })\n hideFocusedLinks: boolean = false;\n\n @property({ type: Boolean, reflect: true, attribute: 'use-number-pages' })\n useNumberPages: boolean = false;\n\n @property({ type: Boolean, reflect: true, attribute: 'use-label-pages' })\n useLabelPages: boolean = false;\n\n updated() {\n const scrollSnapElement = this.closest('kemet-scroll-snap');\n\n if (scrollSnapElement) {\n scrollSnapElement.addEventListener('kemet-scroll-snap-make-slides', (event: CustomEvent) => {\n this.slides = event.detail;\n });\n }\n }\n\n render() {\n return html`\n <nav part=\"nav\">${this.makePagination()}</nav>\n `;\n }\n\n makePagination() {\n let counter = 0;\n\n if (this.slides) {\n return this.slides.map((slide) => {\n counter = counter += 1;\n\n if (slide.focused) {\n return html`\n <span part=\"span\">${this.pageDisplay(slide, counter)}</span>\n `;\n }\n\n return html`\n <span\n class=\"link\"\n tabindex=\"0\"\n role=\"button\"\n @keyup=\"${(event: KeyboardEvent) => this.handleKeyboardInput(event, slide.id)}\"\n @click=${() => this.slideLink(slide.id)}\n aria-label=\"${slide.label}\">\n ${this.pageDisplay(slide, counter)}\n </span>\n `;\n });\n }\n\n return null;\n }\n\n pageDisplay(slide: KemetScrollSnapSlide, visibleIndex: number) {\n if (this.useNumberPages) {\n return visibleIndex;\n }\n\n if (this.useLabelPages) {\n return slide.label;\n }\n\n return html`<kemet-icon icon=${this.icon} size=${this.size}></kemet-icon>`;\n }\n\n slideLink(index: string) {\n emitEvent(this, 'kemet-scroll-snap-focus', index);\n }\n\n handleKeyboardInput(event: KeyboardEvent, id: string) {\n if (event.code === 'Enter' || event.code === 'Space') {\n this.slideLink(id);\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-scroll-snap-paginator': KemetScrollSnapPaginator\n }\n}\n"]}
@@ -6,7 +6,7 @@ import { LitElement } from 'lit';
6
6
  * @tagname kemet-scroll-snap-slide
7
7
  * @summary A slide in a scroll snap component.
8
8
  *
9
- * @prop {boolean} focused - Is true when the slide is fully visible in it's container.
9
+ * @prop {boolean} focused - Is true when the slide is fully visible in its container.
10
10
  * @prop {number} index - Identifies the slide.
11
11
  * @prop {string} label - Labels the slide.
12
12
  *
@@ -8,7 +8,7 @@ import { customElement, property } from 'lit/decorators.js';
8
8
  * @tagname kemet-scroll-snap-slide
9
9
  * @summary A slide in a scroll snap component.
10
10
  *
11
- * @prop {boolean} focused - Is true when the slide is fully visible in it's container.
11
+ * @prop {boolean} focused - Is true when the slide is fully visible in its container.
12
12
  * @prop {number} index - Identifies the slide.
13
13
  * @prop {string} label - Labels the slide.
14
14
  *
@@ -1 +1 @@
1
- {"version":3,"file":"kemet-scroll-snap-slide.js","sourceRoot":"","sources":["../../../src/components/kemet-scroll-snap/kemet-scroll-snap-slide.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;;;;;;;;;;;;;GAcG;AAGH,IAAqB,oBAAoB,GAAzC,MAAqB,oBAAqB,SAAQ,UAAU;IAmB1D,OAAO;QACL,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;KAEV,CAAC;IACJ,CAAC;IAED,WAAW;QACT,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;CACF,CAAA;AA/BQ,2BAAM,GAAG,CAAC,GAAG,CAAA;;;;;;;GAOnB,CAAC,CAAC;AAGH;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;qDAC1B;AAGjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDAC5B;AAGd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDAC5B;AAjBK,oBAAoB;IADxC,aAAa,CAAC,yBAAyB,CAAC;GACpB,oBAAoB,CAgCxC;eAhCoB,oBAAoB","sourcesContent":["import { html, css, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-scroll-snap-slide\n * @summary A slide in a scroll snap component.\n *\n * @prop {boolean} focused - Is true when the slide is fully visible in it's container.\n * @prop {number} index - Identifies the slide.\n * @prop {string} label - Labels the slide.\n *\n * @cssproperty --kemet-scroll-snap-slide-width - The width of the slide. Default: 100%.\n * @cssproperty --kemet-scroll-snap-slide-align - The slide alignment. Default: center.\n *\n */\n\n@customElement('kemet-scroll-snap-slide')\nexport default class KemetScrollSnapSlide extends LitElement {\n static styles = [css`\n :host {\n display: block;\n flex: 0 0 auto;\n width: var(--kemet-scroll-snap-slide-width, 100%);\n scroll-snap-align: var(--kemet-scroll-snap-slide-align, center);\n }\n `];\n\n @property({ type: Boolean, reflect: true })\n focused: boolean;\n\n @property({ type: Number, reflect: true })\n index: number;\n\n @property({ type: String, reflect: true })\n label: string;\n\n updated() {\n this.addTabIndex();\n }\n\n render() {\n return html`\n <slot></slot>\n `;\n }\n\n addTabIndex() {\n this.setAttribute('tabindex', '0');\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-scroll-snap-slide': KemetScrollSnapSlide\n }\n}\n"]}
1
+ {"version":3,"file":"kemet-scroll-snap-slide.js","sourceRoot":"","sources":["../../../src/components/kemet-scroll-snap/kemet-scroll-snap-slide.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;;;;;;;;;;;;;GAcG;AAGH,IAAqB,oBAAoB,GAAzC,MAAqB,oBAAqB,SAAQ,UAAU;IAmB1D,OAAO;QACL,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;KAEV,CAAC;IACJ,CAAC;IAED,WAAW;QACT,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;CACF,CAAA;AA/BQ,2BAAM,GAAG,CAAC,GAAG,CAAA;;;;;;;GAOnB,CAAC,CAAC;AAGH;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;qDAC1B;AAGjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDAC5B;AAGd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mDAC5B;AAjBK,oBAAoB;IADxC,aAAa,CAAC,yBAAyB,CAAC;GACpB,oBAAoB,CAgCxC;eAhCoB,oBAAoB","sourcesContent":["import { html, css, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-scroll-snap-slide\n * @summary A slide in a scroll snap component.\n *\n * @prop {boolean} focused - Is true when the slide is fully visible in its container.\n * @prop {number} index - Identifies the slide.\n * @prop {string} label - Labels the slide.\n *\n * @cssproperty --kemet-scroll-snap-slide-width - The width of the slide. Default: 100%.\n * @cssproperty --kemet-scroll-snap-slide-align - The slide alignment. Default: center.\n *\n */\n\n@customElement('kemet-scroll-snap-slide')\nexport default class KemetScrollSnapSlide extends LitElement {\n static styles = [css`\n :host {\n display: block;\n flex: 0 0 auto;\n width: var(--kemet-scroll-snap-slide-width, 100%);\n scroll-snap-align: var(--kemet-scroll-snap-slide-align, center);\n }\n `];\n\n @property({ type: Boolean, reflect: true })\n focused: boolean;\n\n @property({ type: Number, reflect: true })\n index: number;\n\n @property({ type: String, reflect: true })\n label: string;\n\n updated() {\n this.addTabIndex();\n }\n\n render() {\n return html`\n <slot></slot>\n `;\n }\n\n addTabIndex() {\n this.setAttribute('tabindex', '0');\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-scroll-snap-slide': KemetScrollSnapSlide\n }\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import { LitElement } from 'lit';
2
2
  import { TypeAxis, TypePagination } from './types';
3
+ import KemetScrollSnapSlide from './kemet-scroll-snap-slide';
3
4
  /**
4
5
  * @since 1.0.0
5
6
  * @status stable
@@ -16,10 +17,10 @@ import { TypeAxis, TypePagination } from './types';
16
17
  * @csspart slides - The slides container.
17
18
  * @csspart pagination - The pagination element.
18
19
  *
19
- * @cssproperty --kemet-scroll-snap-gap - Space between the slides. Default: 1.5rem.
20
- * @cssproperty --kemet-scroll-snap-horizontal-max-width - The horizontal max width of the container. Default: 1024px.
21
- * @cssproperty --kemet-scroll-snap-vertical-height - The vertical height of the container. Default: 100vh.
22
- * @cssproperty --kemet-scroll-snap-slides-vertical-padding - Padding on the vertical axis. Default: 0 2rem.
20
+ * @cssproperty --kemet-scroll-snap-gap - Space between the slides.
21
+ * @cssproperty --kemet-scroll-snap-horizontal-max-width - The horizontal max width of the container.
22
+ * @cssproperty --kemet-scroll-snap-vertical-height - The vertical height of the container.
23
+ * @cssproperty --kemet-scroll-snap-slides-vertical-padding - Padding on the vertical axis.
23
24
  *
24
25
  * @event kemet-scroll-snap-make-slides - Fires when slide data has been created.
25
26
  *
@@ -29,14 +30,14 @@ export default class KemetScrollSnap extends LitElement {
29
30
  axis: TypeAxis;
30
31
  pagination: TypePagination;
31
32
  isTouchDevice: boolean;
32
- slides: any[];
33
+ slides: KemetScrollSnapSlide[];
33
34
  constructor();
34
35
  firstUpdated(): void;
35
36
  updated(): void;
36
37
  render(): import("lit-html").TemplateResult<1>;
37
38
  setFocusedSlides(): void;
38
39
  makeSlides(): void;
39
- focusSlide(index: any): void;
40
+ focusSlide(index: number): void;
40
41
  setVerticalAttribute(): void;
41
42
  }
42
43
  declare global {
@@ -19,10 +19,10 @@ import { stylesScrollSnap } from './styles';
19
19
  * @csspart slides - The slides container.
20
20
  * @csspart pagination - The pagination element.
21
21
  *
22
- * @cssproperty --kemet-scroll-snap-gap - Space between the slides. Default: 1.5rem.
23
- * @cssproperty --kemet-scroll-snap-horizontal-max-width - The horizontal max width of the container. Default: 1024px.
24
- * @cssproperty --kemet-scroll-snap-vertical-height - The vertical height of the container. Default: 100vh.
25
- * @cssproperty --kemet-scroll-snap-slides-vertical-padding - Padding on the vertical axis. Default: 0 2rem.
22
+ * @cssproperty --kemet-scroll-snap-gap - Space between the slides.
23
+ * @cssproperty --kemet-scroll-snap-horizontal-max-width - The horizontal max width of the container.
24
+ * @cssproperty --kemet-scroll-snap-vertical-height - The vertical height of the container.
25
+ * @cssproperty --kemet-scroll-snap-slides-vertical-padding - Padding on the vertical axis.
26
26
  *
27
27
  * @event kemet-scroll-snap-make-slides - Fires when slide data has been created.
28
28
  *
@@ -63,13 +63,8 @@ let KemetScrollSnap = class KemetScrollSnap extends LitElement {
63
63
  };
64
64
  const callback = (entries) => {
65
65
  entries.forEach((entry) => {
66
- const { target } = entry;
67
- if (entry.intersectionRatio >= 0.5) {
68
- target.focused = true;
69
- }
70
- else {
71
- target.focused = false;
72
- }
66
+ const target = entry.target;
67
+ target.focused = entry.intersectionRatio >= 0.5;
73
68
  });
74
69
  this.makeSlides();
75
70
  };
@@ -1 +1 @@
1
- {"version":3,"file":"kemet-scroll-snap.js","sourceRoot":"","sources":["../../../src/components/kemet-scroll-snap/kemet-scroll-snap.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 { stylesScrollSnap } from './styles';\nimport { KemetScrollSnapSlideInterface, TypeAxis, TypePagination } from './types';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-scroll-snap\n * @summary A scroll-snap implementation for responsive sliders.\n *\n * @prop {string} axis - Determines the direction the component flows. Values include: (horizontal | vertical)\n * @prop {string} pagination - Determines where to display the paginator. Values include: (top | right | bottom | left)\n *\n * @slot slides - Place your slides here.\n * @slot pagination - Place the paginator component here if you want one.\n *\n * @csspart slides - The slides container.\n * @csspart pagination - The pagination element.\n *\n * @cssproperty --kemet-scroll-snap-gap - Space between the slides. Default: 1.5rem.\n * @cssproperty --kemet-scroll-snap-horizontal-max-width - The horizontal max width of the container. Default: 1024px.\n * @cssproperty --kemet-scroll-snap-vertical-height - The vertical height of the container. Default: 100vh.\n * @cssproperty --kemet-scroll-snap-slides-vertical-padding - Padding on the vertical axis. Default: 0 2rem.\n *\n * @event kemet-scroll-snap-make-slides - Fires when slide data has been created.\n *\n */\n\n@customElement('kemet-scroll-snap')\nexport default class KemetScrollSnap extends LitElement {\n static styles = [stylesScrollSnap];\n\n @property({ type: String, reflect: true })\n axis: TypeAxis = 'horizontal';\n\n @property({ type: String, reflect: true })\n pagination: TypePagination = 'bottom';\n\n @state()\n isTouchDevice: boolean;\n\n @state()\n slides: any[];\n\n constructor() {\n super();\n\n this.addEventListener('kemet-scroll-snap-focus', (event: CustomEvent) => {\n this.focusSlide(event.detail);\n });\n }\n\n firstUpdated() {\n // standard properties\n this.isTouchDevice = 'ontouchstart' in document.documentElement;\n this.slides = [];\n\n this.setFocusedSlides();\n }\n\n updated() {\n this.setVerticalAttribute();\n }\n\n render() {\n return html`\n <slot name=\"slides\"></slot>\n <slot name=\"pagination\"></slot>\n `;\n }\n\n setFocusedSlides() {\n // reference: https://24ways.org/2019/beautiful-scrolling-experiences-without-libraries/\n // reference: https://css-tricks.com/an-explanation-of-how-the-intersection-observer-watches/\n const slides = this.querySelectorAll('kemet-scroll-snap-slide');\n const container = this.querySelector('[slot=\"slides\"]');\n\n const options = {\n root: container,\n rootMargin: '0px',\n threshold: 0.5,\n };\n\n const callback = (entries) => {\n entries.forEach((entry) => {\n const { target } = entry;\n\n if (entry.intersectionRatio >= 0.5) {\n target.focused = true;\n } else {\n target.focused = false;\n }\n });\n\n this.makeSlides();\n };\n\n const observer = new IntersectionObserver(callback, options);\n\n slides.forEach((slide) => {\n observer.observe(slide);\n });\n }\n\n makeSlides() {\n const slides = [];\n\n this.querySelectorAll('kemet-scroll-snap-slide').forEach((element, index) => {\n const slide = element as KemetScrollSnapSlideInterface;\n\n slide.index = index;\n slides.push({\n id: index,\n focused: slide.focused,\n label: slide.label,\n });\n });\n\n this.slides = slides;\n emitEvent(this, 'kemet-scroll-snap-make-slides', this.slides);\n }\n\n focusSlide(index) {\n const activeSlide = this.querySelector(`kemet-scroll-snap-slide[index=\"${index}\"]`);\n activeSlide.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n\n setVerticalAttribute() {\n if (this.axis === 'vertical') {\n document.querySelector('html').setAttribute('kemet-scroll-snap-axis', 'vertical');\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-scroll-snap': KemetScrollSnap\n }\n}\n"]}
1
+ {"version":3,"file":"kemet-scroll-snap.js","sourceRoot":"","sources":["../../../src/components/kemet-scroll-snap/kemet-scroll-snap.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 { stylesScrollSnap } from './styles';\nimport { KemetScrollSnapSlideInterface, TypeAxis, TypePagination } from './types';\nimport KemetScrollSnapSlide from './kemet-scroll-snap-slide';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-scroll-snap\n * @summary A scroll-snap implementation for responsive sliders.\n *\n * @prop {string} axis - Determines the direction the component flows. Values include: (horizontal | vertical)\n * @prop {string} pagination - Determines where to display the paginator. Values include: (top | right | bottom | left)\n *\n * @slot slides - Place your slides here.\n * @slot pagination - Place the paginator component here if you want one.\n *\n * @csspart slides - The slides container.\n * @csspart pagination - The pagination element.\n *\n * @cssproperty --kemet-scroll-snap-gap - Space between the slides.\n * @cssproperty --kemet-scroll-snap-horizontal-max-width - The horizontal max width of the container.\n * @cssproperty --kemet-scroll-snap-vertical-height - The vertical height of the container.\n * @cssproperty --kemet-scroll-snap-slides-vertical-padding - Padding on the vertical axis.\n *\n * @event kemet-scroll-snap-make-slides - Fires when slide data has been created.\n *\n */\n\n@customElement('kemet-scroll-snap')\nexport default class KemetScrollSnap extends LitElement {\n static styles = [stylesScrollSnap];\n\n @property({ type: String, reflect: true })\n axis: TypeAxis = 'horizontal';\n\n @property({ type: String, reflect: true })\n pagination: TypePagination = 'bottom';\n\n @state()\n isTouchDevice: boolean;\n\n @state()\n slides: KemetScrollSnapSlide[];\n\n constructor() {\n super();\n\n this.addEventListener('kemet-scroll-snap-focus', (event: CustomEvent) => {\n this.focusSlide(event.detail);\n });\n }\n\n firstUpdated() {\n // standard properties\n this.isTouchDevice = 'ontouchstart' in document.documentElement;\n this.slides = [];\n\n this.setFocusedSlides();\n }\n\n updated() {\n this.setVerticalAttribute();\n }\n\n render() {\n return html`\n <slot name=\"slides\"></slot>\n <slot name=\"pagination\"></slot>\n `;\n }\n\n setFocusedSlides() {\n // reference: https://24ways.org/2019/beautiful-scrolling-experiences-without-libraries/\n // reference: https://css-tricks.com/an-explanation-of-how-the-intersection-observer-watches/\n const slides = this.querySelectorAll('kemet-scroll-snap-slide');\n const container = this.querySelector('[slot=\"slides\"]');\n\n const options = {\n root: container,\n rootMargin: '0px',\n threshold: 0.5,\n };\n\n const callback = (entries: IntersectionObserverEntry[]) => {\n entries.forEach((entry: IntersectionObserverEntry) => {\n const target = entry.target as KemetScrollSnapSlide;\n target.focused = entry.intersectionRatio >= 0.5;\n });\n\n this.makeSlides();\n };\n\n const observer = new IntersectionObserver(callback, options);\n\n slides.forEach((slide) => {\n observer.observe(slide);\n });\n }\n\n makeSlides() {\n const slides = [];\n\n this.querySelectorAll('kemet-scroll-snap-slide').forEach((element, index) => {\n const slide = element as KemetScrollSnapSlideInterface;\n\n slide.index = index;\n slides.push({\n id: index,\n focused: slide.focused,\n label: slide.label,\n });\n });\n\n this.slides = slides;\n emitEvent(this, 'kemet-scroll-snap-make-slides', this.slides);\n }\n\n focusSlide(index: number) {\n const activeSlide = this.querySelector(`kemet-scroll-snap-slide[index=\"${index}\"]`);\n activeSlide.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n\n setVerticalAttribute() {\n if (this.axis === 'vertical') {\n document.querySelector('html').setAttribute('kemet-scroll-snap-axis', 'vertical');\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-scroll-snap': KemetScrollSnap\n }\n}\n"]}
@@ -7,6 +7,10 @@ export const stylesScrollSnap = css `
7
7
  }
8
8
 
9
9
  :host {
10
+ --kemet-scroll-snap-horizontal-max-width: 1024px;
11
+ --kemet-scroll-snap-vertical-height: 100vh;
12
+ --kemet-scroll-snap-slides-vertical-padding: 0 2rem;
13
+
10
14
  display: flex;
11
15
  flex-direction: column;
12
16
  width: 100%;
@@ -14,7 +18,7 @@ export const stylesScrollSnap = css `
14
18
 
15
19
  :host([axis='horizontal']) {
16
20
  margin: auto;
17
- max-width: var(--kemet-scroll-snap-horizontal-max-width, 1024px);
21
+ max-width: var(--kemet-scroll-snap-horizontal-max-width);
18
22
  }
19
23
 
20
24
  :host([pagination="left"]),
@@ -41,25 +45,29 @@ export const stylesScrollSnap = css `
41
45
 
42
46
  /* vertical */
43
47
  :host([axis="vertical"]) {
44
- height: var(--kemet-scroll-snap-vertical-height, 100vh);
48
+ height: var(--kemet-scroll-snap-vertical-height);
45
49
  }
46
50
 
47
51
  :host([axis="vertical"]) ::slotted([slot="slides"]) {
48
52
  flex-direction: column;
49
53
  overflow-x: hidden;
50
54
  scroll-snap-type: y mandatory;
51
- padding: var(--kemet-scroll-snap-slides-vertical-padding, 0 2rem);
55
+ padding: var(--kemet-scroll-snap-slides-vertical-padding);
52
56
  }
53
57
  `;
54
58
  export const stylesScrollSnapPaginator = css `
55
59
  :host {
60
+ --kemet-scroll-snap-paginator-padding: 1rem 0;
61
+ --kemet-scroll-snap-paginator-gap: 0.5rem;
62
+ --kemet-scroll-snap-paginator-link-color: rgb(var(--kemet-color-primary));
63
+
56
64
  margin: auto;
57
- padding: var(--kemet-scroll-snap-paginator-padding, 1rem 0);
65
+ padding: var(--kemet-scroll-snap-paginator-padding);
58
66
  }
59
67
 
60
68
  nav {
61
69
  display: flex;
62
- gap: var(--kemet-scroll-snap-paginator-gap, 0.5rem);
70
+ gap: var(--kemet-scroll-snap-paginator-gap);
63
71
  }
64
72
 
65
73
  :host([center]) nav {
@@ -68,7 +76,7 @@ export const stylesScrollSnapPaginator = css `
68
76
 
69
77
  .link {
70
78
  cursor: pointer;
71
- color: var(--kemet-scroll-snap-paginator-link-color, var(--kemet-color-primary));
79
+ color: var(--kemet-scroll-snap-paginator-link-color);
72
80
  }
73
81
  `;
74
82
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/components/kemet-scroll-snap/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDlC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;CAmB3C,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const stylesScrollSnap = css`\n *,\n *::after,\n *::before {\n box-sizing: border-box;\n }\n\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n :host([axis='horizontal']) {\n margin: auto;\n max-width: var(--kemet-scroll-snap-horizontal-max-width, 1024px);\n }\n\n :host([pagination=\"left\"]),\n :host([pagination=\"right\"]) {\n flex-direction: row;\n }\n\n :host([pagination=\"none\"]) ::slotted([slot=\"pagination\"]) {\n display: none;\n }\n\n :host([pagination=\"top\"]) ::slotted([slot=\"pagination\"]),\n :host([pagination=\"left\"]) ::slotted([slot=\"pagination\"]) {\n order: -1;\n }\n\n\n ::slotted([slot=\"slides\"]) {\n display: flex;\n gap: var(--kemet-scroll-snap-gap, 1.5rem);\n scroll-snap-type: x mandatory;\n overflow-x: scroll;\n }\n\n /* vertical */\n :host([axis=\"vertical\"]) {\n height: var(--kemet-scroll-snap-vertical-height, 100vh);\n }\n\n :host([axis=\"vertical\"]) ::slotted([slot=\"slides\"]) {\n flex-direction: column;\n overflow-x: hidden;\n scroll-snap-type: y mandatory;\n padding: var(--kemet-scroll-snap-slides-vertical-padding, 0 2rem);\n }\n`;\n\nexport const stylesScrollSnapPaginator = css`\n :host {\n margin: auto;\n padding: var(--kemet-scroll-snap-paginator-padding, 1rem 0);\n }\n\n nav {\n display: flex;\n gap: var(--kemet-scroll-snap-paginator-gap, 0.5rem);\n }\n\n :host([center]) nav {\n justify-content: center;\n }\n\n .link {\n cursor: pointer;\n color: var(--kemet-scroll-snap-paginator-link-color, var(--kemet-color-primary));\n }\n`;\n"]}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/components/kemet-scroll-snap/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDlC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;CAuB3C,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const stylesScrollSnap = css`\n *,\n *::after,\n *::before {\n box-sizing: border-box;\n }\n\n :host {\n --kemet-scroll-snap-horizontal-max-width: 1024px;\n --kemet-scroll-snap-vertical-height: 100vh;\n --kemet-scroll-snap-slides-vertical-padding: 0 2rem;\n\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n :host([axis='horizontal']) {\n margin: auto;\n max-width: var(--kemet-scroll-snap-horizontal-max-width);\n }\n\n :host([pagination=\"left\"]),\n :host([pagination=\"right\"]) {\n flex-direction: row;\n }\n\n :host([pagination=\"none\"]) ::slotted([slot=\"pagination\"]) {\n display: none;\n }\n\n :host([pagination=\"top\"]) ::slotted([slot=\"pagination\"]),\n :host([pagination=\"left\"]) ::slotted([slot=\"pagination\"]) {\n order: -1;\n }\n\n\n ::slotted([slot=\"slides\"]) {\n display: flex;\n gap: var(--kemet-scroll-snap-gap, 1.5rem);\n scroll-snap-type: x mandatory;\n overflow-x: scroll;\n }\n\n /* vertical */\n :host([axis=\"vertical\"]) {\n height: var(--kemet-scroll-snap-vertical-height);\n }\n\n :host([axis=\"vertical\"]) ::slotted([slot=\"slides\"]) {\n flex-direction: column;\n overflow-x: hidden;\n scroll-snap-type: y mandatory;\n padding: var(--kemet-scroll-snap-slides-vertical-padding);\n }\n`;\n\nexport const stylesScrollSnapPaginator = css`\n :host {\n --kemet-scroll-snap-paginator-padding: 1rem 0;\n --kemet-scroll-snap-paginator-gap: 0.5rem;\n --kemet-scroll-snap-paginator-link-color: rgb(var(--kemet-color-primary));\n\n margin: auto;\n padding: var(--kemet-scroll-snap-paginator-padding);\n }\n\n nav {\n display: flex;\n gap: var(--kemet-scroll-snap-paginator-gap);\n }\n\n :host([center]) nav {\n justify-content: center;\n }\n\n .link {\n cursor: pointer;\n color: var(--kemet-scroll-snap-paginator-link-color);\n }\n`;\n"]}
@@ -8,3 +8,6 @@ declare const meta: Meta;
8
8
  export default meta;
9
9
  declare type Story = StoryObj;
10
10
  export declare const Standard: Story;
11
+ export declare const Disabled: Story;
12
+ export declare const Filled: Story;
13
+ export declare const Rounded: Story;
@@ -1,4 +1,5 @@
1
1
  import { html } from 'lit';
2
+ import { ifDefined } from 'lit/directives/if-defined.js';
2
3
  import '../kemet-select';
3
4
  import '../kemet-option';
4
5
  import '../../kemet-tabs/kemet-tabs';
@@ -7,10 +8,16 @@ import '../../kemet-tabs/kemet-tab-panel';
7
8
  const meta = {
8
9
  title: 'Components / Select',
9
10
  component: 'kemet-select',
11
+ argTypes: {
12
+ status: {
13
+ control: { type: 'radio' },
14
+ options: ['standard', 'error', 'success', 'warning'],
15
+ },
16
+ }
10
17
  };
11
18
  export default meta;
12
- const Template = ({ status = 'standard', required = true, disabled = false, icon = 'chevron-down', iconSize = 16, filled = false, rounded = false, }) => html `
13
- <kemet-select status="${status}" ?required=${required} ?disabled=${disabled} icon=${icon} icon-size=${iconSize} ?filled=${filled} ?rounded=${rounded}>
19
+ const Template = (args) => html `
20
+ <kemet-select status="${ifDefined(args.status)}" ?required=${args.required} ?disabled=${args.disabled} icon=${ifDefined(args.icon)} icon-size=${ifDefined(args.iconSize)} ?filled=${args.filled} ?rounded=${args.rounded}>
14
21
  <kemet-option label="Choose an Item" value=""></kemet-option>
15
22
  <kemet-option label="Item 1" value="1"></kemet-option>
16
23
  <kemet-option label="Item 2" value="2" selected></kemet-option>
@@ -20,38 +27,23 @@ const Template = ({ status = 'standard', required = true, disabled = false, icon
20
27
  `;
21
28
  export const Standard = {
22
29
  render: args => Template(args),
30
+ };
31
+ export const Disabled = {
32
+ render: args => Template(args),
23
33
  args: {
24
- status: 'standard',
25
- required: true,
26
- disabled: false,
27
- icon: 'chevron-down',
28
- iconSize: 16,
29
- filled: false,
30
- rounded: false,
34
+ disabled: true,
35
+ },
36
+ };
37
+ export const Filled = {
38
+ render: args => Template(args),
39
+ args: {
40
+ filled: true,
41
+ },
42
+ };
43
+ export const Rounded = {
44
+ render: args => Template(args),
45
+ args: {
46
+ rounded: true,
31
47
  },
32
- argTypes: {
33
- status: {
34
- control: { type: 'radio' },
35
- options: ['standard', 'error', 'success', 'warning'],
36
- },
37
- required: {
38
- control: { type: 'boolean' },
39
- },
40
- disabled: {
41
- control: { type: 'boolean' },
42
- },
43
- icon: {
44
- control: { type: 'text' },
45
- },
46
- iconSize: {
47
- control: { type: 'number' },
48
- },
49
- filled: {
50
- control: { type: 'boolean' },
51
- },
52
- rounded: {
53
- control: { type: 'boolean' },
54
- },
55
- }
56
48
  };
57
49
  //# sourceMappingURL=stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stories.js","sourceRoot":"","sources":["../../../../src/components/kemet-select/docs/stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAG3B,OAAO,iBAAiB,CAAC;AACzB,OAAO,iBAAiB,CAAC;AAEzB,OAAO,6BAA6B,CAAC;AACrC,OAAO,4BAA4B,CAAC;AACpC,OAAO,kCAAkC,CAAC;AAE1C,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,qBAAqB;IAC5B,SAAS,EAAE,cAAc;CAC1B,CAAC;AACF,eAAe,IAAI,CAAC;AAKpB,MAAM,QAAQ,GAAG,CAAC,EAChB,MAAM,GAAG,UAAU,EACnB,QAAQ,GAAG,IAAI,EACf,QAAQ,GAAG,KAAK,EAChB,IAAI,GAAG,cAAc,EACrB,QAAQ,GAAG,EAAE,EACb,MAAM,GAAG,KAAK,EACd,OAAO,GAAG,KAAK,GAChB,EAAE,EAAE,CAAC,IAAI,CAAA;wBACc,MAAM,eAAe,QAAQ,cAAc,QAAQ,SAAS,IAAI,cAAc,QAAQ,YAAY,MAAM,aAAa,OAAO;;;;;;;CAOnJ,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAU;IAC7B,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,IAAI,EAAE;QACJ,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,KAAK;KACf;IACD,QAAQ,EAAE;QACR,MAAM,EAAE;YACN,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YAC1B,OAAO,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;SACrD;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SAC7B;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SAC7B;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SAC1B;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC5B;QACD,MAAM,EAAE;YACN,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SAC7B;QACD,OAAO,EAAE;YACP,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SAC7B;KACF;CACF,CAAC","sourcesContent":["import { html } from 'lit';\nimport type { Meta, StoryObj } from '@storybook/web-components';\n\nimport '../kemet-select';\nimport '../kemet-option';\n\nimport '../../kemet-tabs/kemet-tabs';\nimport '../../kemet-tabs/kemet-tab';\nimport '../../kemet-tabs/kemet-tab-panel';\n\nconst meta: Meta = {\n title: 'Components / Select',\n component: 'kemet-select',\n};\nexport default meta;\n\ntype Story = StoryObj;\n\n\nconst Template = ({\n status = 'standard',\n required = true,\n disabled = false,\n icon = 'chevron-down',\n iconSize = 16,\n filled = false,\n rounded = false,\n}) => html`\n<kemet-select status=\"${status}\" ?required=${required} ?disabled=${disabled} icon=${icon} icon-size=${iconSize} ?filled=${filled} ?rounded=${rounded}>\n <kemet-option label=\"Choose an Item\" value=\"\"></kemet-option>\n <kemet-option label=\"Item 1\" value=\"1\"></kemet-option>\n <kemet-option label=\"Item 2\" value=\"2\" selected></kemet-option>\n <kemet-option label=\"Item 3\" value=\"3\"></kemet-option>\n <kemet-option label=\"Item 4\" value=\"4\" disabled></kemet-option>\n</kemet-select>\n`;\n\nexport const Standard: Story = {\n render: args => Template(args),\n args: {\n status: 'standard',\n required: true,\n disabled: false,\n icon: 'chevron-down',\n iconSize: 16,\n filled: false,\n rounded: false,\n },\n argTypes: {\n status: {\n control: { type: 'radio' },\n options: ['standard', 'error', 'success', 'warning'],\n },\n required: {\n control: { type: 'boolean' },\n },\n disabled: {\n control: { type: 'boolean' },\n },\n icon: {\n control: { type: 'text' },\n },\n iconSize: {\n control: { type: 'number' },\n },\n filled: {\n control: { type: 'boolean' },\n },\n rounded: {\n control: { type: 'boolean' },\n },\n }\n};\n"]}
1
+ {"version":3,"file":"stories.js","sourceRoot":"","sources":["../../../../src/components/kemet-select/docs/stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAGzD,OAAO,iBAAiB,CAAC;AACzB,OAAO,iBAAiB,CAAC;AAEzB,OAAO,6BAA6B,CAAC;AACrC,OAAO,4BAA4B,CAAC;AACpC,OAAO,kCAAkC,CAAC;AAE1C,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,qBAAqB;IAC5B,SAAS,EAAE,cAAc;IACzB,QAAQ,EAAE;QACR,MAAM,EAAE;YACN,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YAC1B,OAAO,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;SACrD;KACF;CACF,CAAC;AACF,eAAe,IAAI,CAAC;AAKpB,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;wBACP,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,QAAQ,cAAc,IAAI,CAAC,QAAQ,SAAS,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,MAAM,aAAa,IAAI,CAAC,OAAO;;;;;;;CAOvN,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,QAAQ,GAAU;IAC7B,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,IAAI,EAAE;QACJ,QAAQ,EAAE,IAAI;KACf;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAU;IAC3B,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,IAAI,EAAE;QACJ,MAAM,EAAE,IAAI;KACb;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;KACd;CACF,CAAC","sourcesContent":["import { html } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport type { Meta, StoryObj } from '@storybook/web-components';\n\nimport '../kemet-select';\nimport '../kemet-option';\n\nimport '../../kemet-tabs/kemet-tabs';\nimport '../../kemet-tabs/kemet-tab';\nimport '../../kemet-tabs/kemet-tab-panel';\n\nconst meta: Meta = {\n title: 'Components / Select',\n component: 'kemet-select',\n argTypes: {\n status: {\n control: { type: 'radio' },\n options: ['standard', 'error', 'success', 'warning'],\n },\n }\n};\nexport default meta;\n\ntype Story = StoryObj;\n\n\nconst Template = (args) => html`\n<kemet-select status=\"${ifDefined(args.status)}\" ?required=${args.required} ?disabled=${args.disabled} icon=${ifDefined(args.icon)} icon-size=${ifDefined(args.iconSize)} ?filled=${args.filled} ?rounded=${args.rounded}>\n <kemet-option label=\"Choose an Item\" value=\"\"></kemet-option>\n <kemet-option label=\"Item 1\" value=\"1\"></kemet-option>\n <kemet-option label=\"Item 2\" value=\"2\" selected></kemet-option>\n <kemet-option label=\"Item 3\" value=\"3\"></kemet-option>\n <kemet-option label=\"Item 4\" value=\"4\" disabled></kemet-option>\n</kemet-select>\n`;\n\nexport const Standard: Story = {\n render: args => Template(args),\n};\n\nexport const Disabled: Story = {\n render: args => Template(args),\n args: {\n disabled: true,\n },\n};\n\nexport const Filled: Story = {\n render: args => Template(args),\n args: {\n filled: true,\n },\n};\n\nexport const Rounded: Story = {\n render: args => Template(args),\n args: {\n rounded: true,\n },\n};\n"]}
@@ -18,7 +18,7 @@ import { LitElement } from 'lit';
18
18
  export default class KemetOption extends LitElement {
19
19
  label: string;
20
20
  value: string;
21
- disable: boolean;
21
+ disabled: boolean;
22
22
  selected: boolean;
23
23
  render(): import("lit-html").TemplateResult<1>;
24
24
  }
@@ -34,7 +34,7 @@ __decorate([
34
34
  ], KemetOption.prototype, "value", void 0);
35
35
  __decorate([
36
36
  property({ type: Boolean })
37
- ], KemetOption.prototype, "disable", void 0);
37
+ ], KemetOption.prototype, "disabled", void 0);
38
38
  __decorate([
39
39
  property({ type: Boolean })
40
40
  ], KemetOption.prototype, "selected", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"kemet-option.js","sourceRoot":"","sources":["../../../src/components/kemet-select/kemet-option.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;;;;;;;;;;;;;;GAeG;AAGH,IAAqB,WAAW,GAAhC,MAAqB,WAAY,SAAQ,UAAU;IAAnD;;QAKE,UAAK,GAAW,EAAE,CAAC;IAWrB,CAAC;IAHC,MAAM;QACJ,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;CACF,CAAA;AAdC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CACb;AAGd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CACR;AAGnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4CACX;AAGjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;6CACV;AAXC,WAAW;IAD/B,aAAa,CAAC,cAAc,CAAC;GACT,WAAW,CAgB/B;eAhBoB,WAAW","sourcesContent":["import { html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-option\n * @summary An option in a select.\n *\n * @prop {string} label - The label of the option\n * @prop {string} value - The value of the options\n * @prop {boolean} disabled - Determines whether to disable the option\n * @prop {boolean} selected - Selects the option if true\n *\n * @event kemet-input-focused - Fires when the input receives and loses focus\n * @event kemet-input-status - Fires when there's a change in status\n *\n */\n\n@customElement('kemet-option')\nexport default class KemetOption extends LitElement {\n @property({ type: String })\n label: string;\n\n @property({ type: String })\n value: string = '';\n\n @property({ type: Boolean })\n disable: boolean;\n\n @property({ type: Boolean })\n selected: boolean;\n\n render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-option': KemetOption\n }\n}\n"]}
1
+ {"version":3,"file":"kemet-option.js","sourceRoot":"","sources":["../../../src/components/kemet-select/kemet-option.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;;;;;;;;;;;;;;GAeG;AAGH,IAAqB,WAAW,GAAhC,MAAqB,WAAY,SAAQ,UAAU;IAAnD;;QAKE,UAAK,GAAW,EAAE,CAAC;IAWrB,CAAC;IAHC,MAAM;QACJ,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;CACF,CAAA;AAdC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CACb;AAGd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CACR;AAGnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;6CACV;AAGlB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;6CACV;AAXC,WAAW;IAD/B,aAAa,CAAC,cAAc,CAAC;GACT,WAAW,CAgB/B;eAhBoB,WAAW","sourcesContent":["import { html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-option\n * @summary An option in a select.\n *\n * @prop {string} label - The label of the option\n * @prop {string} value - The value of the options\n * @prop {boolean} disabled - Determines whether to disable the option\n * @prop {boolean} selected - Selects the option if true\n *\n * @event kemet-input-focused - Fires when the input receives and loses focus\n * @event kemet-input-status - Fires when there's a change in status\n *\n */\n\n@customElement('kemet-option')\nexport default class KemetOption extends LitElement {\n @property({ type: String })\n label: string;\n\n @property({ type: String })\n value: string = '';\n\n @property({ type: Boolean })\n disabled: boolean;\n\n @property({ type: Boolean })\n selected: boolean;\n\n render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-option': KemetOption\n }\n}\n"]}
@@ -1,6 +1,7 @@
1
- import { LitElement } from 'lit';
1
+ import { LitElement, TemplateResult } from 'lit';
2
2
  import { FormSubmitController } from '../../utilities/controllers/forms';
3
3
  import { KemetFieldInterface } from '../kemet-field/types';
4
+ import type KemetOption from './kemet-option';
4
5
  /**
5
6
  * @since 1.0.0
6
7
  * @status stable
@@ -13,8 +14,8 @@ import { KemetFieldInterface } from '../kemet-field/types';
13
14
  * @prop {string} value - The value of the select
14
15
  * @prop {array} options - The options the select contains
15
16
  * @prop {string} status - The status of the select
16
- * @prop {boolean} required - Determines whether or not the field is required
17
- * @prop {boolean} disabled - Determines whether or not the field is disabled
17
+ * @prop {boolean} required - Determines whether the field is required
18
+ * @prop {boolean} disabled - Determines whether the field is disabled
18
19
  * @prop {boolean} multiple - Support of multiple choice selections
19
20
  * @prop {string} icon - The dropdown icon
20
21
  * @prop {number} iconSize - The dropdown icon size
@@ -23,31 +24,38 @@ import { KemetFieldInterface } from '../kemet-field/types';
23
24
  *
24
25
  * @csspart select
25
26
  *
26
- * @cssproperty --kemet-select-padding - The padding on the textarea. Default: 1rem.
27
- * @cssproperty --kemet-select-border - The border of the textarea. Default: 1px solid var(--kemet-color-background).
28
- * @cssproperty --kemet-select-border-color-error - The border of the error state. Default: 1px solid var(--kemet-color-error).
29
- * @cssproperty --kemet-select-border-color-success - The border of the success state. Default: 1px solid var(--kemet-color-success).
30
- * @cssproperty --kemet-select-border-color-warning - The border of the warning state. Default: 1px solid var(--kemet-color-warning).
31
- * @cssproperty --kemet-select-border-radius-rounded - The border radius on rounded. Default: var(--kemet-border-radius).
32
- * @cssproperty --kemet-select-border-filled - The border on filled. Default: none.
33
- * @cssproperty --kemet-select-color-filled - The color on filled. Default: var(--kemet-color-white).
34
- * @cssproperty --kemet-select-background-color-filled - The background-color on filled. Default: var(--kemet-color-primary).
35
- * @cssproperty --kemet-select-background-color-error - The error state background color. Default: var(--kemet-color-error).
36
- * @cssproperty --kemet-select-background-color-success - The success state background color. Default: var(--kemet-color-success).
37
- * @cssproperty --kemet-select-background-color-warning - The warning state background color. Default: var(--kemet-color-warning).
38
- * @cssproperty --kemet-select-icon-right - The space on the right of the icon. Default: 1rem.
27
+ * @cssproperty --kemet-select-padding - The padding on the textarea.
28
+ * @cssproperty --kemet-select-border - The border of the textarea.
29
+ * @cssproperty --kemet-select-border-color-error - The border of the error state.
30
+ * @cssproperty --kemet-select-border-color-success - The border of the success state.
31
+ * @cssproperty --kemet-select-border-color-warning - The border of the warning state.
32
+ * @cssproperty --kemet-select-border-radius-rounded - The border radius on rounded.
33
+ * @cssproperty --kemet-select-border-filled - The border on filled.
34
+ * @cssproperty --kemet-select-color-filled - The color on filled.
35
+ * @cssproperty --kemet-select-background-color-filled - The background-color on filled.
36
+ * @cssproperty --kemet-select-background-color-error - The error state background color.
37
+ * @cssproperty --kemet-select-background-color-success - The success state background color.
38
+ * @cssproperty --kemet-select-background-color-warning - The warning state background color.
39
+ * @cssproperty --kemet-select-icon-right - The space on the right of the icon.
39
40
  *
40
41
  * @event kemet-input-focused - Fires when the input receives and loses focus
41
42
  * @event kemet-input-status - Fires when there's a change in status
43
+ * @event kemet-input-change - Fires when the select input changes
42
44
  *
43
45
  */
46
+ interface IOptions {
47
+ label: string;
48
+ value: string;
49
+ disabled: boolean;
50
+ selected: boolean;
51
+ }
44
52
  export default class KemetSelect extends LitElement {
45
53
  formSubmitController: FormSubmitController;
46
54
  static styles: import("lit").CSSResult[];
47
55
  slug: string;
48
56
  name: string;
49
57
  value: string;
50
- options: any[];
58
+ options: IOptions[];
51
59
  status: string;
52
60
  required: boolean;
53
61
  disabled: boolean;
@@ -60,22 +68,22 @@ export default class KemetSelect extends LitElement {
60
68
  control: KemetFieldInterface;
61
69
  select: HTMLSelectElement;
62
70
  selectedOption: HTMLOptionElement;
63
- optionElements: any;
71
+ optionElements: NodeListOf<KemetOption>;
64
72
  hasFocus: boolean;
65
73
  constructor();
66
74
  firstUpdated(): void;
67
- render(): import("lit-html").TemplateResult<1>;
75
+ render(): TemplateResult<1>;
68
76
  /**
69
77
  * Generates the option elements
70
78
  * @private
71
79
  * @returns {TemplateResult} An option element
72
80
  */
73
- makeOptions(): import("lit-html").TemplateResult<1>[];
81
+ makeOptions(): TemplateResult<1>[];
74
82
  /**
75
- * Generates an dropdown icon
83
+ * Generates a dropdown icon
76
84
  * @private
77
85
  */
78
- makeIcon(): import("lit-html").TemplateResult<1>;
86
+ makeIcon(): TemplateResult<1>;
79
87
  /**
80
88
  * Handles when the input receives focus
81
89
  * @private
@@ -101,10 +109,11 @@ export default class KemetSelect extends LitElement {
101
109
  * @public
102
110
  * @returns {boolean}
103
111
  */
104
- checkValidity(): void;
112
+ checkValidity(): boolean;
105
113
  }
106
114
  declare global {
107
115
  interface HTMLElementTagNameMap {
108
116
  'kemet-select': KemetSelect;
109
117
  }
110
118
  }
119
+ export {};