kemet-ui 2.0.0 → 2.0.2

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 (601) hide show
  1. package/custom-elements.json +305 -305
  2. package/dist/components/kemet-alert/docs/stories.js.map +1 -1
  3. package/dist/components/kemet-avatar/docs/stories.d.ts +1 -0
  4. package/dist/components/kemet-avatar/docs/stories.js +5 -4
  5. package/dist/components/kemet-avatar/docs/stories.js.map +1 -1
  6. package/dist/components/kemet-card/docs/stories.js.map +1 -0
  7. package/dist/components/kemet-carousel/docs/stories.js.map +1 -0
  8. package/dist/components/kemet-carousel/kemet-carousel.d.ts +13 -0
  9. package/dist/components/kemet-carousel/kemet-carousel.js +2 -0
  10. package/dist/components/kemet-carousel/kemet-carousel.js.map +1 -1
  11. package/dist/components/kemet-checkbox/docs/stories.js.map +1 -0
  12. package/dist/components/kemet-combo/docs/stories.js.map +1 -0
  13. package/dist/components/kemet-count/docs/stories.js.map +1 -0
  14. package/dist/components/kemet-draggable/docs/stories.js.map +1 -0
  15. package/dist/components/kemet-draggable/kemet-draggable.d.ts +7 -0
  16. package/dist/components/kemet-draggable/kemet-draggable.js.map +1 -1
  17. package/dist/components/kemet-drawer/docs/stories.js.map +1 -0
  18. package/dist/components/kemet-fab/docs/stories.js.map +1 -0
  19. package/dist/components/kemet-field/docs/stories.js.map +1 -0
  20. package/dist/components/kemet-flipcard/docs/stories.js.map +1 -0
  21. package/dist/components/kemet-icon/docs/stories.js.map +1 -0
  22. package/dist/components/kemet-input/docs/stories.js.map +1 -0
  23. package/dist/components/kemet-modal/docs/stories.js.map +1 -0
  24. package/dist/components/kemet-password/docs/stories.js.map +1 -0
  25. package/dist/components/kemet-popper/docs/stories.js.map +1 -0
  26. package/dist/components/kemet-radio/docs/stories.js.map +1 -0
  27. package/dist/components/kemet-rotator/docs/stories.js.map +1 -0
  28. package/dist/components/kemet-scroll-link/docs/stories.js.map +1 -0
  29. package/dist/components/kemet-scroll-nav/docs/stories.js.map +1 -0
  30. package/dist/components/kemet-scroll-nav/styles.js +1 -0
  31. package/dist/components/kemet-scroll-nav/styles.js.map +1 -1
  32. package/dist/components/kemet-scroll-snap/docs/stories.js.map +1 -0
  33. package/dist/components/kemet-select/docs/stories.js.map +1 -0
  34. package/dist/components/kemet-sortable/docs/stories.js.map +1 -0
  35. package/dist/components/kemet-svgs/docs/stories.js.map +1 -0
  36. package/dist/components/kemet-tabs/docs/stories.js.map +1 -0
  37. package/dist/components/kemet-tabs/kemet-tab-panel.js.map +1 -1
  38. package/dist/components/kemet-tabs/kemet-tabs.d.ts +1 -5
  39. package/dist/components/kemet-tabs/kemet-tabs.js +8 -27
  40. package/dist/components/kemet-tabs/kemet-tabs.js.map +1 -1
  41. package/dist/components/kemet-tabs/styles.js +14 -0
  42. package/dist/components/kemet-tabs/styles.js.map +1 -1
  43. package/dist/components/kemet-tabs/types.d.ts +1 -3
  44. package/dist/components/kemet-tabs/types.js.map +1 -1
  45. package/dist/components/kemet-textarea/docs/stories.js.map +1 -0
  46. package/dist/components/kemet-toggle/docs/stories.js.map +1 -0
  47. package/dist/components/kemet-tooltip/docs/stories.js.map +1 -0
  48. package/dist/components/kemet-tracker/docs/stories.js.map +1 -0
  49. package/dist/components/kemet-upload/docs/stories.js.map +1 -0
  50. package/dist/kemet-components.bundle.js +7 -7
  51. package/dist/kemet-components.bundle.js.map +1 -1
  52. package/dist/kemet-components.cjs +1802 -1804
  53. package/dist/kemet-components.js +1802 -1804
  54. package/dist/styles/components/_config.scss +4 -0
  55. package/dist/styles/components/accordion.scss +9 -0
  56. package/dist/styles/components/drawer.scss +11 -0
  57. package/dist/styles/components/modal.scss +8 -0
  58. package/dist/styles/components/scrollsnap.scss +11 -0
  59. package/dist/styles/core/attributes.scss +38 -0
  60. package/dist/styles/core/layout.scss +169 -0
  61. package/dist/styles/kemet.base.css +1 -0
  62. package/dist/styles/kemet.base.scss +28 -0
  63. package/dist/styles/kemet.components.scss +4 -0
  64. package/dist/styles/kemet.core.css +155 -154
  65. package/dist/styles/kemet.core.css.map +1 -1
  66. package/dist/styles/kemet.core.scss +2 -0
  67. package/dist/styles/shared/_config.scss +358 -0
  68. package/dist/styles/shared/_helpers.scss +458 -0
  69. package/dist/tsconfig.tsbuildinfo +1 -1
  70. package/package.json +2 -2
  71. package/dist/.storybook/decorators.d.ts +0 -2
  72. package/dist/.storybook/decorators.js +0 -28
  73. package/dist/.storybook/decorators.js.map +0 -1
  74. package/dist/components/kemet-alert/stories.d.ts +0 -9
  75. package/dist/components/kemet-alert/stories.js +0 -77
  76. package/dist/components/kemet-alert/stories.js.map +0 -1
  77. package/dist/components/kemet-avatar/stories.d.ts +0 -10
  78. package/dist/components/kemet-avatar/stories.js +0 -85
  79. package/dist/components/kemet-avatar/stories.js.map +0 -1
  80. package/dist/src/components/kemet-accordion/kemet-accordion-panel.d.ts +0 -51
  81. package/dist/src/components/kemet-accordion/kemet-accordion-panel.js +0 -136
  82. package/dist/src/components/kemet-accordion/kemet-accordion-panel.js.map +0 -1
  83. package/dist/src/components/kemet-accordion/kemet-accordion.d.ts +0 -37
  84. package/dist/src/components/kemet-accordion/kemet-accordion.js +0 -129
  85. package/dist/src/components/kemet-accordion/kemet-accordion.js.map +0 -1
  86. package/dist/src/components/kemet-accordion/stories.d.ts +0 -10
  87. package/dist/src/components/kemet-accordion/stories.js +0 -44
  88. package/dist/src/components/kemet-accordion/stories.js.map +0 -1
  89. package/dist/src/components/kemet-accordion/styles.d.ts +0 -2
  90. package/dist/src/components/kemet-accordion/styles.js +0 -42
  91. package/dist/src/components/kemet-accordion/styles.js.map +0 -1
  92. package/dist/src/components/kemet-accordion/types.d.ts +0 -9
  93. package/dist/src/components/kemet-accordion/types.js +0 -2
  94. package/dist/src/components/kemet-accordion/types.js.map +0 -1
  95. package/dist/src/components/kemet-alert/docs/stories.d.ts +0 -9
  96. package/dist/src/components/kemet-alert/docs/stories.js +0 -77
  97. package/dist/src/components/kemet-alert/docs/stories.js.map +0 -1
  98. package/dist/src/components/kemet-alert/kemet-alert.d.ts +0 -52
  99. package/dist/src/components/kemet-alert/kemet-alert.js +0 -108
  100. package/dist/src/components/kemet-alert/kemet-alert.js.map +0 -1
  101. package/dist/src/components/kemet-alert/styles.d.ts +0 -1
  102. package/dist/src/components/kemet-alert/styles.js +0 -104
  103. package/dist/src/components/kemet-alert/styles.js.map +0 -1
  104. package/dist/src/components/kemet-alert/types.d.ts +0 -10
  105. package/dist/src/components/kemet-alert/types.js +0 -2
  106. package/dist/src/components/kemet-alert/types.js.map +0 -1
  107. package/dist/src/components/kemet-avatar/docs/stories.d.ts +0 -11
  108. package/dist/src/components/kemet-avatar/docs/stories.js +0 -86
  109. package/dist/src/components/kemet-avatar/docs/stories.js.map +0 -1
  110. package/dist/src/components/kemet-avatar/kemet-avatar.d.ts +0 -43
  111. package/dist/src/components/kemet-avatar/kemet-avatar.js +0 -78
  112. package/dist/src/components/kemet-avatar/kemet-avatar.js.map +0 -1
  113. package/dist/src/components/kemet-avatar/kemet-avatars.d.ts +0 -20
  114. package/dist/src/components/kemet-avatar/kemet-avatars.js +0 -25
  115. package/dist/src/components/kemet-avatar/kemet-avatars.js.map +0 -1
  116. package/dist/src/components/kemet-avatar/styles.d.ts +0 -2
  117. package/dist/src/components/kemet-avatar/styles.js +0 -58
  118. package/dist/src/components/kemet-avatar/styles.js.map +0 -1
  119. package/dist/src/components/kemet-avatar/types.d.ts +0 -8
  120. package/dist/src/components/kemet-avatar/types.js +0 -2
  121. package/dist/src/components/kemet-avatar/types.js.map +0 -1
  122. package/dist/src/components/kemet-badge/docs/stories.d.ts +0 -9
  123. package/dist/src/components/kemet-badge/docs/stories.js +0 -40
  124. package/dist/src/components/kemet-badge/docs/stories.js.map +0 -1
  125. package/dist/src/components/kemet-badge/kemet-badge.d.ts +0 -30
  126. package/dist/src/components/kemet-badge/kemet-badge.js +0 -55
  127. package/dist/src/components/kemet-badge/kemet-badge.js.map +0 -1
  128. package/dist/src/components/kemet-badge/styles.d.ts +0 -1
  129. package/dist/src/components/kemet-badge/styles.js +0 -40
  130. package/dist/src/components/kemet-badge/styles.js.map +0 -1
  131. package/dist/src/components/kemet-badge/types.d.ts +0 -6
  132. package/dist/src/components/kemet-badge/types.js +0 -2
  133. package/dist/src/components/kemet-badge/types.js.map +0 -1
  134. package/dist/src/components/kemet-button/docs/stories.d.ts +0 -9
  135. package/dist/src/components/kemet-button/docs/stories.js +0 -51
  136. package/dist/src/components/kemet-button/docs/stories.js.map +0 -1
  137. package/dist/src/components/kemet-button/kemet-button.d.ts +0 -89
  138. package/dist/src/components/kemet-button/kemet-button.js +0 -153
  139. package/dist/src/components/kemet-button/kemet-button.js.map +0 -1
  140. package/dist/src/components/kemet-button/styles.d.ts +0 -1
  141. package/dist/src/components/kemet-button/styles.js +0 -73
  142. package/dist/src/components/kemet-button/styles.js.map +0 -1
  143. package/dist/src/components/kemet-button/types.d.ts +0 -10
  144. package/dist/src/components/kemet-button/types.js +0 -2
  145. package/dist/src/components/kemet-button/types.js.map +0 -1
  146. package/dist/src/components/kemet-card/docs/stories.js.map +0 -1
  147. package/dist/src/components/kemet-card/kemet-card.d.ts +0 -47
  148. package/dist/src/components/kemet-card/kemet-card.js +0 -65
  149. package/dist/src/components/kemet-card/kemet-card.js.map +0 -1
  150. package/dist/src/components/kemet-card/styles.d.ts +0 -1
  151. package/dist/src/components/kemet-card/styles.js +0 -63
  152. package/dist/src/components/kemet-card/styles.js.map +0 -1
  153. package/dist/src/components/kemet-card/types.d.ts +0 -3
  154. package/dist/src/components/kemet-card/types.js +0 -2
  155. package/dist/src/components/kemet-card/types.js.map +0 -1
  156. package/dist/src/components/kemet-carousel/docs/stories.js.map +0 -1
  157. package/dist/src/components/kemet-carousel/kemet-carousel-current.d.ts +0 -26
  158. package/dist/src/components/kemet-carousel/kemet-carousel-current.js +0 -44
  159. package/dist/src/components/kemet-carousel/kemet-carousel-current.js.map +0 -1
  160. package/dist/src/components/kemet-carousel/kemet-carousel-first.d.ts +0 -25
  161. package/dist/src/components/kemet-carousel/kemet-carousel-first.js +0 -50
  162. package/dist/src/components/kemet-carousel/kemet-carousel-first.js.map +0 -1
  163. package/dist/src/components/kemet-carousel/kemet-carousel-last.d.ts +0 -25
  164. package/dist/src/components/kemet-carousel/kemet-carousel-last.js +0 -50
  165. package/dist/src/components/kemet-carousel/kemet-carousel-last.js.map +0 -1
  166. package/dist/src/components/kemet-carousel/kemet-carousel-link.d.ts +0 -31
  167. package/dist/src/components/kemet-carousel/kemet-carousel-link.js +0 -64
  168. package/dist/src/components/kemet-carousel/kemet-carousel-link.js.map +0 -1
  169. package/dist/src/components/kemet-carousel/kemet-carousel-next.d.ts +0 -25
  170. package/dist/src/components/kemet-carousel/kemet-carousel-next.js +0 -50
  171. package/dist/src/components/kemet-carousel/kemet-carousel-next.js.map +0 -1
  172. package/dist/src/components/kemet-carousel/kemet-carousel-prev.d.ts +0 -25
  173. package/dist/src/components/kemet-carousel/kemet-carousel-prev.js +0 -50
  174. package/dist/src/components/kemet-carousel/kemet-carousel-prev.js.map +0 -1
  175. package/dist/src/components/kemet-carousel/kemet-carousel-slide.d.ts +0 -29
  176. package/dist/src/components/kemet-carousel/kemet-carousel-slide.js +0 -53
  177. package/dist/src/components/kemet-carousel/kemet-carousel-slide.js.map +0 -1
  178. package/dist/src/components/kemet-carousel/kemet-carousel-total.d.ts +0 -26
  179. package/dist/src/components/kemet-carousel/kemet-carousel-total.js +0 -44
  180. package/dist/src/components/kemet-carousel/kemet-carousel-total.js.map +0 -1
  181. package/dist/src/components/kemet-carousel/kemet-carousel.d.ts +0 -114
  182. package/dist/src/components/kemet-carousel/kemet-carousel.js +0 -410
  183. package/dist/src/components/kemet-carousel/kemet-carousel.js.map +0 -1
  184. package/dist/src/components/kemet-carousel/styles.d.ts +0 -1
  185. package/dist/src/components/kemet-carousel/styles.js +0 -66
  186. package/dist/src/components/kemet-carousel/styles.js.map +0 -1
  187. package/dist/src/components/kemet-carousel/types.d.ts +0 -21
  188. package/dist/src/components/kemet-carousel/types.js +0 -2
  189. package/dist/src/components/kemet-carousel/types.js.map +0 -1
  190. package/dist/src/components/kemet-checkbox/docs/stories.js.map +0 -1
  191. package/dist/src/components/kemet-checkbox/kemet-checkbox.d.ts +0 -71
  192. package/dist/src/components/kemet-checkbox/kemet-checkbox.js +0 -192
  193. package/dist/src/components/kemet-checkbox/kemet-checkbox.js.map +0 -1
  194. package/dist/src/components/kemet-checkbox/styles.d.ts +0 -1
  195. package/dist/src/components/kemet-checkbox/styles.js +0 -83
  196. package/dist/src/components/kemet-checkbox/styles.js.map +0 -1
  197. package/dist/src/components/kemet-checkbox/types.d.ts +0 -15
  198. package/dist/src/components/kemet-checkbox/types.js +0 -2
  199. package/dist/src/components/kemet-checkbox/types.js.map +0 -1
  200. package/dist/src/components/kemet-combo/docs/stories.js.map +0 -1
  201. package/dist/src/components/kemet-combo/kemet-combo.d.ts +0 -50
  202. package/dist/src/components/kemet-combo/kemet-combo.js +0 -162
  203. package/dist/src/components/kemet-combo/kemet-combo.js.map +0 -1
  204. package/dist/src/components/kemet-combo/styles.d.ts +0 -1
  205. package/dist/src/components/kemet-combo/styles.js +0 -44
  206. package/dist/src/components/kemet-combo/styles.js.map +0 -1
  207. package/dist/src/components/kemet-combo/types.d.ts +0 -5
  208. package/dist/src/components/kemet-combo/types.js +0 -2
  209. package/dist/src/components/kemet-combo/types.js.map +0 -1
  210. package/dist/src/components/kemet-count/docs/stories.js.map +0 -1
  211. package/dist/src/components/kemet-count/kemet-count.d.ts +0 -39
  212. package/dist/src/components/kemet-count/kemet-count.js +0 -98
  213. package/dist/src/components/kemet-count/kemet-count.js.map +0 -1
  214. package/dist/src/components/kemet-draggable/docs/stories.js.map +0 -1
  215. package/dist/src/components/kemet-draggable/kemet-draggable.d.ts +0 -49
  216. package/dist/src/components/kemet-draggable/kemet-draggable.js +0 -137
  217. package/dist/src/components/kemet-draggable/kemet-draggable.js.map +0 -1
  218. package/dist/src/components/kemet-draggable/types.d.ts +0 -6
  219. package/dist/src/components/kemet-draggable/types.js +0 -2
  220. package/dist/src/components/kemet-draggable/types.js.map +0 -1
  221. package/dist/src/components/kemet-drawer/docs/stories.js.map +0 -1
  222. package/dist/src/components/kemet-drawer/kemet-drawer.d.ts +0 -48
  223. package/dist/src/components/kemet-drawer/kemet-drawer.js +0 -95
  224. package/dist/src/components/kemet-drawer/kemet-drawer.js.map +0 -1
  225. package/dist/src/components/kemet-drawer/styles.d.ts +0 -2
  226. package/dist/src/components/kemet-drawer/styles.js +0 -314
  227. package/dist/src/components/kemet-drawer/styles.js.map +0 -1
  228. package/dist/src/components/kemet-drawer/types.d.ts +0 -8
  229. package/dist/src/components/kemet-drawer/types.js +0 -2
  230. package/dist/src/components/kemet-drawer/types.js.map +0 -1
  231. package/dist/src/components/kemet-fab/docs/stories.js.map +0 -1
  232. package/dist/src/components/kemet-fab/kemet-fab.d.ts +0 -49
  233. package/dist/src/components/kemet-fab/kemet-fab.js +0 -107
  234. package/dist/src/components/kemet-fab/kemet-fab.js.map +0 -1
  235. package/dist/src/components/kemet-fab/styles.d.ts +0 -1
  236. package/dist/src/components/kemet-fab/styles.js +0 -95
  237. package/dist/src/components/kemet-fab/styles.js.map +0 -1
  238. package/dist/src/components/kemet-fab/types.d.ts +0 -8
  239. package/dist/src/components/kemet-fab/types.js +0 -2
  240. package/dist/src/components/kemet-fab/types.js.map +0 -1
  241. package/dist/src/components/kemet-field/docs/stories.js.map +0 -1
  242. package/dist/src/components/kemet-field/kemet-field.d.ts +0 -61
  243. package/dist/src/components/kemet-field/kemet-field.js +0 -144
  244. package/dist/src/components/kemet-field/kemet-field.js.map +0 -1
  245. package/dist/src/components/kemet-field/styles.d.ts +0 -1
  246. package/dist/src/components/kemet-field/styles.js +0 -61
  247. package/dist/src/components/kemet-field/styles.js.map +0 -1
  248. package/dist/src/components/kemet-field/types.d.ts +0 -13
  249. package/dist/src/components/kemet-field/types.js +0 -2
  250. package/dist/src/components/kemet-field/types.js.map +0 -1
  251. package/dist/src/components/kemet-flipcard/docs/stories.js.map +0 -1
  252. package/dist/src/components/kemet-flipcard/kemet-flipcard-trigger.d.ts +0 -21
  253. package/dist/src/components/kemet-flipcard/kemet-flipcard-trigger.js +0 -42
  254. package/dist/src/components/kemet-flipcard/kemet-flipcard-trigger.js.map +0 -1
  255. package/dist/src/components/kemet-flipcard/kemet-flipcard.d.ts +0 -52
  256. package/dist/src/components/kemet-flipcard/kemet-flipcard.js +0 -131
  257. package/dist/src/components/kemet-flipcard/kemet-flipcard.js.map +0 -1
  258. package/dist/src/components/kemet-flipcard/styles.d.ts +0 -1
  259. package/dist/src/components/kemet-flipcard/styles.js +0 -85
  260. package/dist/src/components/kemet-flipcard/styles.js.map +0 -1
  261. package/dist/src/components/kemet-flipcard/types.d.ts +0 -7
  262. package/dist/src/components/kemet-flipcard/types.js +0 -2
  263. package/dist/src/components/kemet-flipcard/types.js.map +0 -1
  264. package/dist/src/components/kemet-icon/docs/stories.js.map +0 -1
  265. package/dist/src/components/kemet-icon/kemet-icon.d.ts +0 -28
  266. package/dist/src/components/kemet-icon/kemet-icon.js +0 -114
  267. package/dist/src/components/kemet-icon/kemet-icon.js.map +0 -1
  268. package/dist/src/components/kemet-icon/styles.d.ts +0 -1
  269. package/dist/src/components/kemet-icon/styles.js +0 -9
  270. package/dist/src/components/kemet-icon/styles.js.map +0 -1
  271. package/dist/src/components/kemet-icon/types.d.ts +0 -5
  272. package/dist/src/components/kemet-icon/types.js +0 -2
  273. package/dist/src/components/kemet-icon/types.js.map +0 -1
  274. package/dist/src/components/kemet-input/docs/stories.js.map +0 -1
  275. package/dist/src/components/kemet-input/kemet-input.d.ts +0 -193
  276. package/dist/src/components/kemet-input/kemet-input.js +0 -417
  277. package/dist/src/components/kemet-input/kemet-input.js.map +0 -1
  278. package/dist/src/components/kemet-input/styles.d.ts +0 -1
  279. package/dist/src/components/kemet-input/styles.js +0 -115
  280. package/dist/src/components/kemet-input/styles.js.map +0 -1
  281. package/dist/src/components/kemet-input/types.d.ts +0 -35
  282. package/dist/src/components/kemet-input/types.js +0 -2
  283. package/dist/src/components/kemet-input/types.js.map +0 -1
  284. package/dist/src/components/kemet-modal/docs/stories.js.map +0 -1
  285. package/dist/src/components/kemet-modal/kemet-modal-close.d.ts +0 -21
  286. package/dist/src/components/kemet-modal/kemet-modal-close.js +0 -40
  287. package/dist/src/components/kemet-modal/kemet-modal-close.js.map +0 -1
  288. package/dist/src/components/kemet-modal/kemet-modal.d.ts +0 -49
  289. package/dist/src/components/kemet-modal/kemet-modal.js +0 -131
  290. package/dist/src/components/kemet-modal/kemet-modal.js.map +0 -1
  291. package/dist/src/components/kemet-modal/styles.d.ts +0 -2
  292. package/dist/src/components/kemet-modal/styles.js +0 -267
  293. package/dist/src/components/kemet-modal/styles.js.map +0 -1
  294. package/dist/src/components/kemet-modal/types.d.ts +0 -8
  295. package/dist/src/components/kemet-modal/types.js +0 -2
  296. package/dist/src/components/kemet-modal/types.js.map +0 -1
  297. package/dist/src/components/kemet-password/docs/stories.js.map +0 -1
  298. package/dist/src/components/kemet-password/kemet-password.d.ts +0 -77
  299. package/dist/src/components/kemet-password/kemet-password.js +0 -184
  300. package/dist/src/components/kemet-password/kemet-password.js.map +0 -1
  301. package/dist/src/components/kemet-password/styles.d.ts +0 -1
  302. package/dist/src/components/kemet-password/styles.js +0 -80
  303. package/dist/src/components/kemet-password/styles.js.map +0 -1
  304. package/dist/src/components/kemet-password/types.d.ts +0 -10
  305. package/dist/src/components/kemet-password/types.js +0 -2
  306. package/dist/src/components/kemet-password/types.js.map +0 -1
  307. package/dist/src/components/kemet-popper/docs/stories.js.map +0 -1
  308. package/dist/src/components/kemet-popper/kemet-popper-close.d.ts +0 -22
  309. package/dist/src/components/kemet-popper/kemet-popper-close.js +0 -49
  310. package/dist/src/components/kemet-popper/kemet-popper-close.js.map +0 -1
  311. package/dist/src/components/kemet-popper/kemet-popper.d.ts +0 -63
  312. package/dist/src/components/kemet-popper/kemet-popper.js +0 -182
  313. package/dist/src/components/kemet-popper/kemet-popper.js.map +0 -1
  314. package/dist/src/components/kemet-popper/styles.d.ts +0 -1
  315. package/dist/src/components/kemet-popper/styles.effects.d.ts +0 -8
  316. package/dist/src/components/kemet-popper/styles.effects.js +0 -306
  317. package/dist/src/components/kemet-popper/styles.effects.js.map +0 -1
  318. package/dist/src/components/kemet-popper/styles.js +0 -28
  319. package/dist/src/components/kemet-popper/styles.js.map +0 -1
  320. package/dist/src/components/kemet-popper/types.d.ts +0 -3
  321. package/dist/src/components/kemet-popper/types.js +0 -2
  322. package/dist/src/components/kemet-popper/types.js.map +0 -1
  323. package/dist/src/components/kemet-radio/docs/stories.js.map +0 -1
  324. package/dist/src/components/kemet-radio/kemet-radio.d.ts +0 -56
  325. package/dist/src/components/kemet-radio/kemet-radio.js +0 -129
  326. package/dist/src/components/kemet-radio/kemet-radio.js.map +0 -1
  327. package/dist/src/components/kemet-radio/kemet-radios.d.ts +0 -49
  328. package/dist/src/components/kemet-radio/kemet-radios.js +0 -143
  329. package/dist/src/components/kemet-radio/kemet-radios.js.map +0 -1
  330. package/dist/src/components/kemet-radio/styles.d.ts +0 -2
  331. package/dist/src/components/kemet-radio/styles.js +0 -102
  332. package/dist/src/components/kemet-radio/styles.js.map +0 -1
  333. package/dist/src/components/kemet-radio/types.d.ts +0 -20
  334. package/dist/src/components/kemet-radio/types.js +0 -2
  335. package/dist/src/components/kemet-radio/types.js.map +0 -1
  336. package/dist/src/components/kemet-rotator/docs/stories.js.map +0 -1
  337. package/dist/src/components/kemet-rotator/kemet-rotator.d.ts +0 -40
  338. package/dist/src/components/kemet-rotator/kemet-rotator.js +0 -122
  339. package/dist/src/components/kemet-rotator/kemet-rotator.js.map +0 -1
  340. package/dist/src/components/kemet-rotator/styles.d.ts +0 -1
  341. package/dist/src/components/kemet-rotator/styles.js +0 -72
  342. package/dist/src/components/kemet-rotator/styles.js.map +0 -1
  343. package/dist/src/components/kemet-rotator/types.d.ts +0 -9
  344. package/dist/src/components/kemet-rotator/types.js +0 -2
  345. package/dist/src/components/kemet-rotator/types.js.map +0 -1
  346. package/dist/src/components/kemet-scroll-link/docs/stories.js.map +0 -1
  347. package/dist/src/components/kemet-scroll-link/kemet-scroll-link.d.ts +0 -31
  348. package/dist/src/components/kemet-scroll-link/kemet-scroll-link.js +0 -82
  349. package/dist/src/components/kemet-scroll-link/kemet-scroll-link.js.map +0 -1
  350. package/dist/src/components/kemet-scroll-link/types.d.ts +0 -6
  351. package/dist/src/components/kemet-scroll-link/types.js +0 -2
  352. package/dist/src/components/kemet-scroll-link/types.js.map +0 -1
  353. package/dist/src/components/kemet-scroll-nav/docs/stories.js.map +0 -1
  354. package/dist/src/components/kemet-scroll-nav/kemet-scroll-nav.d.ts +0 -34
  355. package/dist/src/components/kemet-scroll-nav/kemet-scroll-nav.js +0 -70
  356. package/dist/src/components/kemet-scroll-nav/kemet-scroll-nav.js.map +0 -1
  357. package/dist/src/components/kemet-scroll-nav/styles.d.ts +0 -1
  358. package/dist/src/components/kemet-scroll-nav/styles.js +0 -27
  359. package/dist/src/components/kemet-scroll-nav/styles.js.map +0 -1
  360. package/dist/src/components/kemet-scroll-nav/types.d.ts +0 -6
  361. package/dist/src/components/kemet-scroll-nav/types.js +0 -2
  362. package/dist/src/components/kemet-scroll-nav/types.js.map +0 -1
  363. package/dist/src/components/kemet-scroll-snap/docs/stories.js.map +0 -1
  364. package/dist/src/components/kemet-scroll-snap/kemet-scroll-snap-paginator.d.ts +0 -44
  365. package/dist/src/components/kemet-scroll-snap/kemet-scroll-snap-paginator.js +0 -120
  366. package/dist/src/components/kemet-scroll-snap/kemet-scroll-snap-paginator.js.map +0 -1
  367. package/dist/src/components/kemet-scroll-snap/kemet-scroll-snap-slide.d.ts +0 -30
  368. package/dist/src/components/kemet-scroll-snap/kemet-scroll-snap-slide.js +0 -53
  369. package/dist/src/components/kemet-scroll-snap/kemet-scroll-snap-slide.js.map +0 -1
  370. package/dist/src/components/kemet-scroll-snap/kemet-scroll-snap.d.ts +0 -46
  371. package/dist/src/components/kemet-scroll-snap/kemet-scroll-snap.js +0 -122
  372. package/dist/src/components/kemet-scroll-snap/kemet-scroll-snap.js.map +0 -1
  373. package/dist/src/components/kemet-scroll-snap/styles.d.ts +0 -2
  374. package/dist/src/components/kemet-scroll-snap/styles.js +0 -74
  375. package/dist/src/components/kemet-scroll-snap/styles.js.map +0 -1
  376. package/dist/src/components/kemet-scroll-snap/types.d.ts +0 -20
  377. package/dist/src/components/kemet-scroll-snap/types.js +0 -2
  378. package/dist/src/components/kemet-scroll-snap/types.js.map +0 -1
  379. package/dist/src/components/kemet-select/docs/stories.js.map +0 -1
  380. package/dist/src/components/kemet-select/kemet-option.d.ts +0 -29
  381. package/dist/src/components/kemet-select/kemet-option.js +0 -45
  382. package/dist/src/components/kemet-select/kemet-option.js.map +0 -1
  383. package/dist/src/components/kemet-select/kemet-select.d.ts +0 -110
  384. package/dist/src/components/kemet-select/kemet-select.js +0 -239
  385. package/dist/src/components/kemet-select/kemet-select.js.map +0 -1
  386. package/dist/src/components/kemet-select/styles.d.ts +0 -1
  387. package/dist/src/components/kemet-select/styles.js +0 -73
  388. package/dist/src/components/kemet-select/styles.js.map +0 -1
  389. package/dist/src/components/kemet-select/types.d.ts +0 -20
  390. package/dist/src/components/kemet-select/types.js +0 -2
  391. package/dist/src/components/kemet-select/types.js.map +0 -1
  392. package/dist/src/components/kemet-sortable/docs/stories.js.map +0 -1
  393. package/dist/src/components/kemet-sortable/kemet-sortable-item.d.ts +0 -21
  394. package/dist/src/components/kemet-sortable/kemet-sortable-item.js +0 -30
  395. package/dist/src/components/kemet-sortable/kemet-sortable-item.js.map +0 -1
  396. package/dist/src/components/kemet-sortable/kemet-sortable.d.ts +0 -25
  397. package/dist/src/components/kemet-sortable/kemet-sortable.js +0 -77
  398. package/dist/src/components/kemet-sortable/kemet-sortable.js.map +0 -1
  399. package/dist/src/components/kemet-sortable/styles.d.ts +0 -2
  400. package/dist/src/components/kemet-sortable/styles.js +0 -22
  401. package/dist/src/components/kemet-sortable/styles.js.map +0 -1
  402. package/dist/src/components/kemet-sortable/types.d.ts +0 -3
  403. package/dist/src/components/kemet-sortable/types.js +0 -2
  404. package/dist/src/components/kemet-sortable/types.js.map +0 -1
  405. package/dist/src/components/kemet-svgs/docs/stories.js.map +0 -1
  406. package/dist/src/components/kemet-svgs/kemet-svg.d.ts +0 -38
  407. package/dist/src/components/kemet-svgs/kemet-svg.js +0 -97
  408. package/dist/src/components/kemet-svgs/kemet-svg.js.map +0 -1
  409. package/dist/src/components/kemet-svgs/kemet-svgs.d.ts +0 -27
  410. package/dist/src/components/kemet-svgs/kemet-svgs.js +0 -51
  411. package/dist/src/components/kemet-svgs/kemet-svgs.js.map +0 -1
  412. package/dist/src/components/kemet-svgs/types.d.ts +0 -10
  413. package/dist/src/components/kemet-svgs/types.js +0 -2
  414. package/dist/src/components/kemet-svgs/types.js.map +0 -1
  415. package/dist/src/components/kemet-tabs/docs/stories.js.map +0 -1
  416. package/dist/src/components/kemet-tabs/kemet-tab-panel.d.ts +0 -27
  417. package/dist/src/components/kemet-tabs/kemet-tab-panel.js +0 -52
  418. package/dist/src/components/kemet-tabs/kemet-tab-panel.js.map +0 -1
  419. package/dist/src/components/kemet-tabs/kemet-tab.d.ts +0 -37
  420. package/dist/src/components/kemet-tabs/kemet-tab.js +0 -79
  421. package/dist/src/components/kemet-tabs/kemet-tab.js.map +0 -1
  422. package/dist/src/components/kemet-tabs/kemet-tabs.d.ts +0 -91
  423. package/dist/src/components/kemet-tabs/kemet-tabs.js +0 -523
  424. package/dist/src/components/kemet-tabs/kemet-tabs.js.map +0 -1
  425. package/dist/src/components/kemet-tabs/styles.d.ts +0 -3
  426. package/dist/src/components/kemet-tabs/styles.js +0 -268
  427. package/dist/src/components/kemet-tabs/styles.js.map +0 -1
  428. package/dist/src/components/kemet-tabs/types.d.ts +0 -27
  429. package/dist/src/components/kemet-tabs/types.js +0 -2
  430. package/dist/src/components/kemet-tabs/types.js.map +0 -1
  431. package/dist/src/components/kemet-textarea/docs/stories.js.map +0 -1
  432. package/dist/src/components/kemet-textarea/kemet-textarea.d.ts +0 -123
  433. package/dist/src/components/kemet-textarea/kemet-textarea.js +0 -293
  434. package/dist/src/components/kemet-textarea/kemet-textarea.js.map +0 -1
  435. package/dist/src/components/kemet-textarea/styles.d.ts +0 -1
  436. package/dist/src/components/kemet-textarea/styles.js +0 -69
  437. package/dist/src/components/kemet-textarea/styles.js.map +0 -1
  438. package/dist/src/components/kemet-textarea/types.d.ts +0 -20
  439. package/dist/src/components/kemet-textarea/types.js +0 -2
  440. package/dist/src/components/kemet-textarea/types.js.map +0 -1
  441. package/dist/src/components/kemet-toggle/docs/stories.js.map +0 -1
  442. package/dist/src/components/kemet-toggle/kemet-toggle.d.ts +0 -60
  443. package/dist/src/components/kemet-toggle/kemet-toggle.js +0 -130
  444. package/dist/src/components/kemet-toggle/kemet-toggle.js.map +0 -1
  445. package/dist/src/components/kemet-toggle/styles.d.ts +0 -1
  446. package/dist/src/components/kemet-toggle/styles.js +0 -84
  447. package/dist/src/components/kemet-toggle/styles.js.map +0 -1
  448. package/dist/src/components/kemet-toggle/types.d.ts +0 -10
  449. package/dist/src/components/kemet-toggle/types.js +0 -2
  450. package/dist/src/components/kemet-toggle/types.js.map +0 -1
  451. package/dist/src/components/kemet-tooltip/docs/stories.js.map +0 -1
  452. package/dist/src/components/kemet-tooltip/kemet-tooltip.d.ts +0 -33
  453. package/dist/src/components/kemet-tooltip/kemet-tooltip.js +0 -68
  454. package/dist/src/components/kemet-tooltip/kemet-tooltip.js.map +0 -1
  455. package/dist/src/components/kemet-tooltip/styles.d.ts +0 -1
  456. package/dist/src/components/kemet-tooltip/styles.js +0 -61
  457. package/dist/src/components/kemet-tooltip/styles.js.map +0 -1
  458. package/dist/src/components/kemet-tooltip/types.d.ts +0 -3
  459. package/dist/src/components/kemet-tooltip/types.js +0 -2
  460. package/dist/src/components/kemet-tooltip/types.js.map +0 -1
  461. package/dist/src/components/kemet-tracker/docs/stories.js.map +0 -1
  462. package/dist/src/components/kemet-tracker/kemet-tracker-step.d.ts +0 -63
  463. package/dist/src/components/kemet-tracker/kemet-tracker-step.js +0 -127
  464. package/dist/src/components/kemet-tracker/kemet-tracker-step.js.map +0 -1
  465. package/dist/src/components/kemet-tracker/kemet-tracker.d.ts +0 -26
  466. package/dist/src/components/kemet-tracker/kemet-tracker.js +0 -70
  467. package/dist/src/components/kemet-tracker/kemet-tracker.js.map +0 -1
  468. package/dist/src/components/kemet-tracker/styles.d.ts +0 -1
  469. package/dist/src/components/kemet-tracker/styles.js +0 -111
  470. package/dist/src/components/kemet-tracker/styles.js.map +0 -1
  471. package/dist/src/components/kemet-tracker/types.d.ts +0 -13
  472. package/dist/src/components/kemet-tracker/types.js +0 -2
  473. package/dist/src/components/kemet-tracker/types.js.map +0 -1
  474. package/dist/src/components/kemet-upload/docs/stories.js.map +0 -1
  475. package/dist/src/components/kemet-upload/kemet-upload-file.d.ts +0 -46
  476. package/dist/src/components/kemet-upload/kemet-upload-file.js +0 -110
  477. package/dist/src/components/kemet-upload/kemet-upload-file.js.map +0 -1
  478. package/dist/src/components/kemet-upload/kemet-upload.d.ts +0 -58
  479. package/dist/src/components/kemet-upload/kemet-upload.js +0 -154
  480. package/dist/src/components/kemet-upload/kemet-upload.js.map +0 -1
  481. package/dist/src/components/kemet-upload/styles.d.ts +0 -3
  482. package/dist/src/components/kemet-upload/styles.js +0 -169
  483. package/dist/src/components/kemet-upload/styles.js.map +0 -1
  484. package/dist/src/components/kemet-upload/types.d.ts +0 -21
  485. package/dist/src/components/kemet-upload/types.js +0 -2
  486. package/dist/src/components/kemet-upload/types.js.map +0 -1
  487. package/dist/src/stories/styles/borders/borders.stories.d.ts +0 -5
  488. package/dist/src/stories/styles/borders/borders.stories.js +0 -46
  489. package/dist/src/stories/styles/borders/borders.stories.js.map +0 -1
  490. package/dist/src/stories/styles/borders/stories.d.ts +0 -5
  491. package/dist/src/stories/styles/borders/stories.js +0 -46
  492. package/dist/src/stories/styles/borders/stories.js.map +0 -1
  493. package/dist/src/stories/styles/borders.stories.d.ts +0 -5
  494. package/dist/src/stories/styles/borders.stories.js +0 -46
  495. package/dist/src/stories/styles/borders.stories.js.map +0 -1
  496. package/dist/src/stories/styles/elevation/elevation.stories.d.ts +0 -1
  497. package/dist/src/stories/styles/elevation/elevation.stories.js +0 -15
  498. package/dist/src/stories/styles/elevation/elevation.stories.js.map +0 -1
  499. package/dist/src/stories/styles/elevation/stories.d.ts +0 -5
  500. package/dist/src/stories/styles/elevation/stories.js +0 -21
  501. package/dist/src/stories/styles/elevation/stories.js.map +0 -1
  502. package/dist/src/stories/styles/flexcolumn/stories.d.ts +0 -6
  503. package/dist/src/stories/styles/flexcolumn/stories.js +0 -44
  504. package/dist/src/stories/styles/flexcolumn/stories.js.map +0 -1
  505. package/dist/src/stories/styles/flexgrid/stories.d.ts +0 -6
  506. package/dist/src/stories/styles/flexgrid/stories.js +0 -44
  507. package/dist/src/stories/styles/flexgrid/stories.js.map +0 -1
  508. package/dist/src/stories/styles/flexlist/stories.d.ts +0 -7
  509. package/dist/src/stories/styles/flexlist/stories.js +0 -45
  510. package/dist/src/stories/styles/flexlist/stories.js.map +0 -1
  511. package/dist/src/stories/styles/flexrow/stories.d.ts +0 -10
  512. package/dist/src/stories/styles/flexrow/stories.js +0 -77
  513. package/dist/src/stories/styles/flexrow/stories.js.map +0 -1
  514. package/dist/src/stories/styles/spacing/stories.d.ts +0 -6
  515. package/dist/src/stories/styles/spacing/stories.js +0 -49
  516. package/dist/src/stories/styles/spacing/stories.js.map +0 -1
  517. package/dist/src/stories/styles/typealignment/stories.d.ts +0 -5
  518. package/dist/src/stories/styles/typealignment/stories.js +0 -14
  519. package/dist/src/stories/styles/typealignment/stories.js.map +0 -1
  520. package/dist/src/stories/styles/typography/stories.d.ts +0 -6
  521. package/dist/src/stories/styles/typography/stories.js +0 -41
  522. package/dist/src/stories/styles/typography/stories.js.map +0 -1
  523. package/dist/src/stories/styles/visibility/stories.d.ts +0 -6
  524. package/dist/src/stories/styles/visibility/stories.js +0 -60
  525. package/dist/src/stories/styles/visibility/stories.js.map +0 -1
  526. package/dist/src/stories/templates/bootstrap/stories.d.ts +0 -6
  527. package/dist/src/stories/templates/bootstrap/stories.js +0 -159
  528. package/dist/src/stories/templates/bootstrap/stories.js.map +0 -1
  529. package/dist/src/stories/templates/foundation/stories.d.ts +0 -8
  530. package/dist/src/stories/templates/foundation/stories.js +0 -911
  531. package/dist/src/stories/templates/foundation/stories.js.map +0 -1
  532. package/dist/src/utilities/controllers/forms.d.ts +0 -11
  533. package/dist/src/utilities/controllers/forms.js +0 -102
  534. package/dist/src/utilities/controllers/forms.js.map +0 -1
  535. package/dist/src/utilities/misc/constants.d.ts +0 -5
  536. package/dist/src/utilities/misc/constants.js +0 -6
  537. package/dist/src/utilities/misc/constants.js.map +0 -1
  538. package/dist/src/utilities/misc/events.d.ts +0 -1
  539. package/dist/src/utilities/misc/events.js +0 -4
  540. package/dist/src/utilities/misc/events.js.map +0 -1
  541. package/dist/utilities/misc/decorators.d.ts +0 -1
  542. package/dist/utilities/misc/decorators.js +0 -5
  543. package/dist/utilities/misc/decorators.js.map +0 -1
  544. /package/dist/{src/components → components}/kemet-card/docs/stories.d.ts +0 -0
  545. /package/dist/{src/components → components}/kemet-card/docs/stories.js +0 -0
  546. /package/dist/{src/components → components}/kemet-carousel/docs/stories.d.ts +0 -0
  547. /package/dist/{src/components → components}/kemet-carousel/docs/stories.js +0 -0
  548. /package/dist/{src/components → components}/kemet-checkbox/docs/stories.d.ts +0 -0
  549. /package/dist/{src/components → components}/kemet-checkbox/docs/stories.js +0 -0
  550. /package/dist/{src/components → components}/kemet-combo/docs/stories.d.ts +0 -0
  551. /package/dist/{src/components → components}/kemet-combo/docs/stories.js +0 -0
  552. /package/dist/{src/components → components}/kemet-count/docs/stories.d.ts +0 -0
  553. /package/dist/{src/components → components}/kemet-count/docs/stories.js +0 -0
  554. /package/dist/{src/components → components}/kemet-draggable/docs/stories.d.ts +0 -0
  555. /package/dist/{src/components → components}/kemet-draggable/docs/stories.js +0 -0
  556. /package/dist/{src/components → components}/kemet-drawer/docs/stories.d.ts +0 -0
  557. /package/dist/{src/components → components}/kemet-drawer/docs/stories.js +0 -0
  558. /package/dist/{src/components → components}/kemet-fab/docs/stories.d.ts +0 -0
  559. /package/dist/{src/components → components}/kemet-fab/docs/stories.js +0 -0
  560. /package/dist/{src/components → components}/kemet-field/docs/stories.d.ts +0 -0
  561. /package/dist/{src/components → components}/kemet-field/docs/stories.js +0 -0
  562. /package/dist/{src/components → components}/kemet-flipcard/docs/stories.d.ts +0 -0
  563. /package/dist/{src/components → components}/kemet-flipcard/docs/stories.js +0 -0
  564. /package/dist/{src/components → components}/kemet-icon/docs/stories.d.ts +0 -0
  565. /package/dist/{src/components → components}/kemet-icon/docs/stories.js +0 -0
  566. /package/dist/{src/components → components}/kemet-input/docs/stories.d.ts +0 -0
  567. /package/dist/{src/components → components}/kemet-input/docs/stories.js +0 -0
  568. /package/dist/{src/components → components}/kemet-modal/docs/stories.d.ts +0 -0
  569. /package/dist/{src/components → components}/kemet-modal/docs/stories.js +0 -0
  570. /package/dist/{src/components → components}/kemet-password/docs/stories.d.ts +0 -0
  571. /package/dist/{src/components → components}/kemet-password/docs/stories.js +0 -0
  572. /package/dist/{src/components → components}/kemet-popper/docs/stories.d.ts +0 -0
  573. /package/dist/{src/components → components}/kemet-popper/docs/stories.js +0 -0
  574. /package/dist/{src/components → components}/kemet-radio/docs/stories.d.ts +0 -0
  575. /package/dist/{src/components → components}/kemet-radio/docs/stories.js +0 -0
  576. /package/dist/{src/components → components}/kemet-rotator/docs/stories.d.ts +0 -0
  577. /package/dist/{src/components → components}/kemet-rotator/docs/stories.js +0 -0
  578. /package/dist/{src/components → components}/kemet-scroll-link/docs/stories.d.ts +0 -0
  579. /package/dist/{src/components → components}/kemet-scroll-link/docs/stories.js +0 -0
  580. /package/dist/{src/components → components}/kemet-scroll-nav/docs/stories.d.ts +0 -0
  581. /package/dist/{src/components → components}/kemet-scroll-nav/docs/stories.js +0 -0
  582. /package/dist/{src/components → components}/kemet-scroll-snap/docs/stories.d.ts +0 -0
  583. /package/dist/{src/components → components}/kemet-scroll-snap/docs/stories.js +0 -0
  584. /package/dist/{src/components → components}/kemet-select/docs/stories.d.ts +0 -0
  585. /package/dist/{src/components → components}/kemet-select/docs/stories.js +0 -0
  586. /package/dist/{src/components → components}/kemet-sortable/docs/stories.d.ts +0 -0
  587. /package/dist/{src/components → components}/kemet-sortable/docs/stories.js +0 -0
  588. /package/dist/{src/components → components}/kemet-svgs/docs/stories.d.ts +0 -0
  589. /package/dist/{src/components → components}/kemet-svgs/docs/stories.js +0 -0
  590. /package/dist/{src/components → components}/kemet-tabs/docs/stories.d.ts +0 -0
  591. /package/dist/{src/components → components}/kemet-tabs/docs/stories.js +0 -0
  592. /package/dist/{src/components → components}/kemet-textarea/docs/stories.d.ts +0 -0
  593. /package/dist/{src/components → components}/kemet-textarea/docs/stories.js +0 -0
  594. /package/dist/{src/components → components}/kemet-toggle/docs/stories.d.ts +0 -0
  595. /package/dist/{src/components → components}/kemet-toggle/docs/stories.js +0 -0
  596. /package/dist/{src/components → components}/kemet-tooltip/docs/stories.d.ts +0 -0
  597. /package/dist/{src/components → components}/kemet-tooltip/docs/stories.js +0 -0
  598. /package/dist/{src/components → components}/kemet-tracker/docs/stories.d.ts +0 -0
  599. /package/dist/{src/components → components}/kemet-tracker/docs/stories.js +0 -0
  600. /package/dist/{src/components → components}/kemet-upload/docs/stories.d.ts +0 -0
  601. /package/dist/{src/components → components}/kemet-upload/docs/stories.js +0 -0
@@ -1267,128 +1267,6 @@ KemetButton = __decorate([
1267
1267
  e$5('kemet-button')
1268
1268
  ], KemetButton);
1269
1269
 
1270
- const stylesBase$9 = i$4 `
1271
- *,
1272
- *::before,
1273
- *::after {
1274
- box-sizing: border-box;
1275
- }
1276
-
1277
- :host {
1278
- --kemet-card-padding: 1rem;
1279
- --kemet-card-border-color: var(--kemet-color-gray4);
1280
-
1281
- color: var(--kemet-card-color, var(--kemet-color-black));
1282
- display: inline-flex;
1283
- flex-direction: column;
1284
- max-width: var(--kemet-card-max-width, 360px);
1285
- border: var(--kemet-card-border, 1px solid var(--kemet-card-border-color));
1286
- border-radius: var(--kemet-card-border-radius, 0);
1287
- background-color: var(--kemet-card-background-color, var(--kemet-color-white));
1288
- }
1289
-
1290
- :host([center]) {
1291
- align-items: center;
1292
- text-align: center;
1293
- }
1294
-
1295
- .body {
1296
- padding: var(--kemet-card-body-padding, var(--kemet-card-padding));
1297
- }
1298
-
1299
- .media {
1300
- position: relative;
1301
- }
1302
-
1303
- ::slotted(*) {
1304
- max-width: 100%;
1305
- }
1306
-
1307
- ::slotted(img) {
1308
- display: flex;
1309
- max-width: 100%;
1310
- }
1311
-
1312
- ::slotted([slot="header"]) {
1313
- padding: var(--kemet-card-header-padding, var(--kemet-card-padding));
1314
- border-bottom: var(--kemet-card-header-border-bottom, 1px solid var(--kemet-card-border-color));
1315
- }
1316
-
1317
- ::slotted([slot="caption"]) {
1318
- color: var(--kemet-card-caption-color, var(--kemet-color-white));
1319
- position: absolute;
1320
- bottom: 0;
1321
- width: 100%;
1322
- padding: var(--kemet-card-caption-padding, calc(var(--kemet-card-padding) / 2) var(--kemet-card-padding));
1323
- background-color: var(--kemet-card-caption-background-color, rgba(0,0,0,0.35));
1324
- }
1325
-
1326
- ::slotted([slot="footer"]) {
1327
- padding: var(--kemet-card-footer-padding, var(--kemet-card-padding));
1328
- border-top: var(--kemet-card-footer-border-top, 1px solid var(--kemet-card-border-color));
1329
- }
1330
- `;
1331
-
1332
- /**
1333
- * @since 1.4.0
1334
- * @status stable
1335
- *
1336
- * @tagname kemet-card
1337
- * @summary A highly configurable panel design to display media and information.
1338
- *
1339
- * @prop {boolean} center - Centers the elements in the card.
1340
- *
1341
- * @slot default - The contents of the alert.
1342
- * @slot header - The cards's header.
1343
- * @slot media - A slot for images, videos, or embeds.
1344
- * @slot caption - Text for the media slot.
1345
- * @slot footer - The card's footer.
1346
- *
1347
- *
1348
- * @csspart media - The media area of the card.
1349
- * @csspart body - The main contents of the card.
1350
- *
1351
- * @cssproperty --kemet-card-padding - The space around elements. Default: 1rem.
1352
- * @cssproperty --kemet-card-border-color - The color of the borders. Default: var(--kemet-color-gray4).
1353
- * @cssproperty --kemet-card-color - The color of the text. Default: var(--kemet-color-black).
1354
- * @cssproperty --kemet-card-max-width - The max width of the card. Default: 360px.
1355
- * @cssproperty --kemet-card-border - The border around the card. Default: 1px solid var(--kemet-card-border-color).
1356
- * @cssproperty --kemet-card-border-radius - The border radius of the card. Default: 0.
1357
- * @cssproperty --kemet-card-background-color - The background color. Default: var(--kemet-color-white).
1358
- * @cssproperty --kemet-card-body-padding - The body spacing. Default: var(--kemet-card-padding).
1359
- * @cssproperty --kemet-card-header-padding - The header spacing. Default: var(--kemet-card-padding).
1360
- * @cssproperty --kemet-card-header-border-bottom - The header border. Default: 1px solid var(--kemet-card-border-color).
1361
- * @cssproperty --kemet-card-caption-color - The caption text color. Default: var(--kemet-color-white).
1362
- * @cssproperty --kemet-card-caption-padding - The caption spacing. Default: calc(var(--kemet-card-padding) / 2) var(--kemet-card-padding).
1363
- * @cssproperty --kemet-card-caption-background-color - The caption background color. Default: rgba(0,0,0,0.5).
1364
- * @cssproperty --kemet-card-footer-padding - The footer spacing. Default: var(--kemet-card-padding).
1365
- * @cssproperty --kemet-card-footer-border-top - The footer border. Default: 1px solid var(--kemet-card-border-color).
1366
- *
1367
- */
1368
- let KemetCard = class KemetCard extends s$1 {
1369
- render() {
1370
- return x `
1371
- <slot name="header"></slot>
1372
- <div class="media" part="media">
1373
- <slot name="media"></slot>
1374
- <slot name="caption"></slot>
1375
- </div>
1376
- <div class="body" part="body">
1377
- <slot></slot>
1378
- </div>
1379
- </div>
1380
- <slot name="footer"></slot>
1381
- `;
1382
- }
1383
- };
1384
- KemetCard.styles = [stylesBase$9];
1385
- __decorate([
1386
- e$4({ type: Boolean, reflect: true })
1387
- ], KemetCard.prototype, "center", void 0);
1388
- KemetCard = __decorate([
1389
- e$5('kemet-card')
1390
- ], KemetCard);
1391
-
1392
1270
  /**
1393
1271
  *
1394
1272
  * @since 1.1.0
@@ -1434,29 +1312,29 @@ KemetCarouselCurrent = __decorate([
1434
1312
  * @since 1.1.0
1435
1313
  * @status stable
1436
1314
  *
1437
- * @tagname kemet-carousel-first
1438
- * @summary A link to the first slide in the carousel.
1315
+ * @tagname kemet-carousel-last
1316
+ * @summary A link to the last slide in the carousel..
1439
1317
  *
1440
1318
  * @prop {boolean} disabled - Deactivates the button.
1441
1319
  *
1442
- * @event kemet-carousel-first
1320
+ * @event kemet-carousel-last
1443
1321
  *
1444
1322
  */
1445
- let KemetCarouselFirst = class KemetCarouselFirst extends s$1 {
1323
+ let KemetCarouselLast = class KemetCarouselLast extends s$1 {
1446
1324
  render() {
1447
1325
  return x `
1448
- <span tabindex="0" @keyup=${() => this.first()} @click=${() => this.first()}>
1326
+ <span tabindex="0" @keyup=${() => this.last()} @click=${() => this.last()}>
1449
1327
  <slot></slot>
1450
1328
  </span>
1451
1329
  `;
1452
1330
  }
1453
- first() {
1331
+ last() {
1454
1332
  if (!this.disabled) {
1455
- emitEvent(this, 'kemet-carousel-first', this);
1333
+ emitEvent(this, 'kemet-carousel-last', this);
1456
1334
  }
1457
1335
  }
1458
1336
  };
1459
- KemetCarouselFirst.styles = [
1337
+ KemetCarouselLast.styles = [
1460
1338
  i$4 `
1461
1339
  :host {
1462
1340
  cursor: pointer;
@@ -1469,39 +1347,39 @@ KemetCarouselFirst.styles = [
1469
1347
  ];
1470
1348
  __decorate([
1471
1349
  e$4({ type: Boolean, reflect: true })
1472
- ], KemetCarouselFirst.prototype, "disabled", void 0);
1473
- KemetCarouselFirst = __decorate([
1474
- e$5('kemet-carousel-first')
1475
- ], KemetCarouselFirst);
1350
+ ], KemetCarouselLast.prototype, "disabled", void 0);
1351
+ KemetCarouselLast = __decorate([
1352
+ e$5('kemet-carousel-last')
1353
+ ], KemetCarouselLast);
1476
1354
 
1477
1355
  /**
1478
1356
  *
1479
1357
  * @since 1.1.0
1480
1358
  * @status stable
1481
1359
  *
1482
- * @tagname kemet-carousel-last
1483
- * @summary A link to the last slide in the carousel..
1360
+ * @tagname kemet-carousel-first
1361
+ * @summary A link to the first slide in the carousel.
1484
1362
  *
1485
1363
  * @prop {boolean} disabled - Deactivates the button.
1486
1364
  *
1487
- * @event kemet-carousel-last
1365
+ * @event kemet-carousel-first
1488
1366
  *
1489
1367
  */
1490
- let KemetCarouselLast = class KemetCarouselLast extends s$1 {
1368
+ let KemetCarouselFirst = class KemetCarouselFirst extends s$1 {
1491
1369
  render() {
1492
1370
  return x `
1493
- <span tabindex="0" @keyup=${() => this.last()} @click=${() => this.last()}>
1371
+ <span tabindex="0" @keyup=${() => this.first()} @click=${() => this.first()}>
1494
1372
  <slot></slot>
1495
1373
  </span>
1496
1374
  `;
1497
1375
  }
1498
- last() {
1376
+ first() {
1499
1377
  if (!this.disabled) {
1500
- emitEvent(this, 'kemet-carousel-last', this);
1378
+ emitEvent(this, 'kemet-carousel-first', this);
1501
1379
  }
1502
1380
  }
1503
1381
  };
1504
- KemetCarouselLast.styles = [
1382
+ KemetCarouselFirst.styles = [
1505
1383
  i$4 `
1506
1384
  :host {
1507
1385
  cursor: pointer;
@@ -1514,10 +1392,10 @@ KemetCarouselLast.styles = [
1514
1392
  ];
1515
1393
  __decorate([
1516
1394
  e$4({ type: Boolean, reflect: true })
1517
- ], KemetCarouselLast.prototype, "disabled", void 0);
1518
- KemetCarouselLast = __decorate([
1519
- e$5('kemet-carousel-last')
1520
- ], KemetCarouselLast);
1395
+ ], KemetCarouselFirst.prototype, "disabled", void 0);
1396
+ KemetCarouselFirst = __decorate([
1397
+ e$5('kemet-carousel-first')
1398
+ ], KemetCarouselFirst);
1521
1399
 
1522
1400
  /**
1523
1401
  *
@@ -1898,7 +1776,9 @@ let KemetCarousel = class KemetCarousel extends s$1 {
1898
1776
  center: true,
1899
1777
  },
1900
1778
  };
1779
+ /** @internal */
1901
1780
  this.slides = [];
1781
+ /** @internal */
1902
1782
  this.links = [];
1903
1783
  // bindings
1904
1784
  this.addEventListener('kemet-carousel-first', this.handleFirst.bind(this));
@@ -2224,32 +2104,7 @@ KemetCarousel = __decorate([
2224
2104
  e$5('kemet-carousel')
2225
2105
  ], KemetCarousel);
2226
2106
 
2227
- /**
2228
- * @license
2229
- * Copyright 2018 Google LLC
2230
- * SPDX-License-Identifier: BSD-3-Clause
2231
- */const l$1=l=>null!=l?l:A;
2232
-
2233
- /**
2234
- * @license
2235
- * Copyright 2017 Google LLC
2236
- * SPDX-License-Identifier: BSD-3-Clause
2237
- */
2238
- const t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e$2=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i;}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}
2239
-
2240
- /**
2241
- * @license
2242
- * Copyright 2020 Google LLC
2243
- * SPDX-License-Identifier: BSD-3-Clause
2244
- */const e$1=o=>void 0===o.strings,f={},s=(o,l=f)=>o._$AH=l;
2245
-
2246
- /**
2247
- * @license
2248
- * Copyright 2020 Google LLC
2249
- * SPDX-License-Identifier: BSD-3-Clause
2250
- */const l=e$2(class extends i{constructor(r){if(super(r),r.type!==t.PROPERTY&&r.type!==t.ATTRIBUTE&&r.type!==t.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!e$1(r))throw Error("`live` bindings can only contain a single expression")}render(r){return r}update(i,[t$1]){if(t$1===T||t$1===A)return t$1;const o=i.element,l=i.name;if(i.type===t.PROPERTY){if(t$1===o[l])return T}else if(i.type===t.BOOLEAN_ATTRIBUTE){if(!!t$1===o.hasAttribute(l))return T}else if(i.type===t.ATTRIBUTE&&o.getAttribute(l)===t$1+"")return T;return s(i),t$1}});
2251
-
2252
- const stylesBase$8 = i$4 `
2107
+ const stylesBase$9 = i$4 `
2253
2108
  *,
2254
2109
  *::before,
2255
2110
  *::after {
@@ -2257,56 +2112,203 @@ const stylesBase$8 = i$4 `
2257
2112
  }
2258
2113
 
2259
2114
  :host {
2260
- display: inline-block;
2261
- }
2115
+ --kemet-card-padding: 1rem;
2116
+ --kemet-card-border-color: var(--kemet-color-gray4);
2262
2117
 
2263
- :host([disabled]) {
2264
- opacity: 0.5;
2118
+ color: var(--kemet-card-color, var(--kemet-color-black));
2119
+ display: inline-flex;
2120
+ flex-direction: column;
2121
+ max-width: var(--kemet-card-max-width, 360px);
2122
+ border: var(--kemet-card-border, 1px solid var(--kemet-card-border-color));
2123
+ border-radius: var(--kemet-card-border-radius, 0);
2124
+ background-color: var(--kemet-card-background-color, var(--kemet-color-white));
2265
2125
  }
2266
2126
 
2267
- label {
2268
- display: inline-flex;
2269
- gap: 0.5rem;
2127
+ :host([center]) {
2270
2128
  align-items: center;
2129
+ text-align: center;
2271
2130
  }
2272
2131
 
2273
- input {
2274
- cursor: pointer;
2275
- margin: 0;
2276
- padding: 0;
2277
- width: var(--kemet-checkbox-size, 18px);
2278
- height: var(--kemet-checkbox-size, 18px);
2279
- position: absolute;
2280
- opacity: 0;
2132
+ .body {
2133
+ padding: var(--kemet-card-body-padding, var(--kemet-card-padding));
2281
2134
  }
2282
2135
 
2283
- button {
2284
- margin: 0;
2285
- border: none;
2286
- background: none;
2136
+ .media {
2137
+ position: relative;
2287
2138
  }
2288
2139
 
2289
- [part='checkbox'] {
2290
- color: var(--kemet-checkbox-color, var(--kemet-color-background));
2291
- display: flex;
2292
- align-items: center;
2293
- justify-content: center;
2294
- width: var(--kemet-checkbox-size, 18px);
2295
- height: var(--kemet-checkbox-size, 18px);
2296
- border: var(--kemet-checkbox-border, 1px solid var(--kemet-color-background));
2140
+ ::slotted(*) {
2141
+ max-width: 100%;
2297
2142
  }
2298
2143
 
2299
- :host([rounded]) [part='checkbox'] {
2300
- border-radius: var(--kemet-checkbox-border-radius, 4px);
2144
+ ::slotted(img) {
2145
+ display: flex;
2146
+ max-width: 100%;
2301
2147
  }
2302
2148
 
2303
- :host([filled][checked]) [part='checkbox'],
2304
- :host([filled][indeterminate]) [part='checkbox'] {
2305
- border: none;
2306
- background-color: var(--kemet-checkbox-filled-background-color, var(--kemet-color-primary));
2149
+ ::slotted([slot="header"]) {
2150
+ padding: var(--kemet-card-header-padding, var(--kemet-card-padding));
2151
+ border-bottom: var(--kemet-card-header-border-bottom, 1px solid var(--kemet-card-border-color));
2307
2152
  }
2308
2153
 
2309
- [part='mark'] {
2154
+ ::slotted([slot="caption"]) {
2155
+ color: var(--kemet-card-caption-color, var(--kemet-color-white));
2156
+ position: absolute;
2157
+ bottom: 0;
2158
+ width: 100%;
2159
+ padding: var(--kemet-card-caption-padding, calc(var(--kemet-card-padding) / 2) var(--kemet-card-padding));
2160
+ background-color: var(--kemet-card-caption-background-color, rgba(0,0,0,0.35));
2161
+ }
2162
+
2163
+ ::slotted([slot="footer"]) {
2164
+ padding: var(--kemet-card-footer-padding, var(--kemet-card-padding));
2165
+ border-top: var(--kemet-card-footer-border-top, 1px solid var(--kemet-card-border-color));
2166
+ }
2167
+ `;
2168
+
2169
+ /**
2170
+ * @since 1.4.0
2171
+ * @status stable
2172
+ *
2173
+ * @tagname kemet-card
2174
+ * @summary A highly configurable panel design to display media and information.
2175
+ *
2176
+ * @prop {boolean} center - Centers the elements in the card.
2177
+ *
2178
+ * @slot default - The contents of the alert.
2179
+ * @slot header - The cards's header.
2180
+ * @slot media - A slot for images, videos, or embeds.
2181
+ * @slot caption - Text for the media slot.
2182
+ * @slot footer - The card's footer.
2183
+ *
2184
+ *
2185
+ * @csspart media - The media area of the card.
2186
+ * @csspart body - The main contents of the card.
2187
+ *
2188
+ * @cssproperty --kemet-card-padding - The space around elements. Default: 1rem.
2189
+ * @cssproperty --kemet-card-border-color - The color of the borders. Default: var(--kemet-color-gray4).
2190
+ * @cssproperty --kemet-card-color - The color of the text. Default: var(--kemet-color-black).
2191
+ * @cssproperty --kemet-card-max-width - The max width of the card. Default: 360px.
2192
+ * @cssproperty --kemet-card-border - The border around the card. Default: 1px solid var(--kemet-card-border-color).
2193
+ * @cssproperty --kemet-card-border-radius - The border radius of the card. Default: 0.
2194
+ * @cssproperty --kemet-card-background-color - The background color. Default: var(--kemet-color-white).
2195
+ * @cssproperty --kemet-card-body-padding - The body spacing. Default: var(--kemet-card-padding).
2196
+ * @cssproperty --kemet-card-header-padding - The header spacing. Default: var(--kemet-card-padding).
2197
+ * @cssproperty --kemet-card-header-border-bottom - The header border. Default: 1px solid var(--kemet-card-border-color).
2198
+ * @cssproperty --kemet-card-caption-color - The caption text color. Default: var(--kemet-color-white).
2199
+ * @cssproperty --kemet-card-caption-padding - The caption spacing. Default: calc(var(--kemet-card-padding) / 2) var(--kemet-card-padding).
2200
+ * @cssproperty --kemet-card-caption-background-color - The caption background color. Default: rgba(0,0,0,0.5).
2201
+ * @cssproperty --kemet-card-footer-padding - The footer spacing. Default: var(--kemet-card-padding).
2202
+ * @cssproperty --kemet-card-footer-border-top - The footer border. Default: 1px solid var(--kemet-card-border-color).
2203
+ *
2204
+ */
2205
+ let KemetCard = class KemetCard extends s$1 {
2206
+ render() {
2207
+ return x `
2208
+ <slot name="header"></slot>
2209
+ <div class="media" part="media">
2210
+ <slot name="media"></slot>
2211
+ <slot name="caption"></slot>
2212
+ </div>
2213
+ <div class="body" part="body">
2214
+ <slot></slot>
2215
+ </div>
2216
+ </div>
2217
+ <slot name="footer"></slot>
2218
+ `;
2219
+ }
2220
+ };
2221
+ KemetCard.styles = [stylesBase$9];
2222
+ __decorate([
2223
+ e$4({ type: Boolean, reflect: true })
2224
+ ], KemetCard.prototype, "center", void 0);
2225
+ KemetCard = __decorate([
2226
+ e$5('kemet-card')
2227
+ ], KemetCard);
2228
+
2229
+ /**
2230
+ * @license
2231
+ * Copyright 2018 Google LLC
2232
+ * SPDX-License-Identifier: BSD-3-Clause
2233
+ */const l$1=l=>null!=l?l:A;
2234
+
2235
+ /**
2236
+ * @license
2237
+ * Copyright 2017 Google LLC
2238
+ * SPDX-License-Identifier: BSD-3-Clause
2239
+ */
2240
+ const t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e$2=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i;}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}
2241
+
2242
+ /**
2243
+ * @license
2244
+ * Copyright 2020 Google LLC
2245
+ * SPDX-License-Identifier: BSD-3-Clause
2246
+ */const e$1=o=>void 0===o.strings,f={},s=(o,l=f)=>o._$AH=l;
2247
+
2248
+ /**
2249
+ * @license
2250
+ * Copyright 2020 Google LLC
2251
+ * SPDX-License-Identifier: BSD-3-Clause
2252
+ */const l=e$2(class extends i{constructor(r){if(super(r),r.type!==t.PROPERTY&&r.type!==t.ATTRIBUTE&&r.type!==t.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!e$1(r))throw Error("`live` bindings can only contain a single expression")}render(r){return r}update(i,[t$1]){if(t$1===T||t$1===A)return t$1;const o=i.element,l=i.name;if(i.type===t.PROPERTY){if(t$1===o[l])return T}else if(i.type===t.BOOLEAN_ATTRIBUTE){if(!!t$1===o.hasAttribute(l))return T}else if(i.type===t.ATTRIBUTE&&o.getAttribute(l)===t$1+"")return T;return s(i),t$1}});
2253
+
2254
+ const stylesBase$8 = i$4 `
2255
+ *,
2256
+ *::before,
2257
+ *::after {
2258
+ box-sizing: border-box;
2259
+ }
2260
+
2261
+ :host {
2262
+ display: inline-block;
2263
+ }
2264
+
2265
+ :host([disabled]) {
2266
+ opacity: 0.5;
2267
+ }
2268
+
2269
+ label {
2270
+ display: inline-flex;
2271
+ gap: 0.5rem;
2272
+ align-items: center;
2273
+ }
2274
+
2275
+ input {
2276
+ cursor: pointer;
2277
+ margin: 0;
2278
+ padding: 0;
2279
+ width: var(--kemet-checkbox-size, 18px);
2280
+ height: var(--kemet-checkbox-size, 18px);
2281
+ position: absolute;
2282
+ opacity: 0;
2283
+ }
2284
+
2285
+ button {
2286
+ margin: 0;
2287
+ border: none;
2288
+ background: none;
2289
+ }
2290
+
2291
+ [part='checkbox'] {
2292
+ color: var(--kemet-checkbox-color, var(--kemet-color-background));
2293
+ display: flex;
2294
+ align-items: center;
2295
+ justify-content: center;
2296
+ width: var(--kemet-checkbox-size, 18px);
2297
+ height: var(--kemet-checkbox-size, 18px);
2298
+ border: var(--kemet-checkbox-border, 1px solid var(--kemet-color-background));
2299
+ }
2300
+
2301
+ :host([rounded]) [part='checkbox'] {
2302
+ border-radius: var(--kemet-checkbox-border-radius, 4px);
2303
+ }
2304
+
2305
+ :host([filled][checked]) [part='checkbox'],
2306
+ :host([filled][indeterminate]) [part='checkbox'] {
2307
+ border: none;
2308
+ background-color: var(--kemet-checkbox-filled-background-color, var(--kemet-color-primary));
2309
+ }
2310
+
2311
+ [part='mark'] {
2310
2312
  display: flex;
2311
2313
  width: calc(var(--kemet-checkbox-size, 18px) - 4px);
2312
2314
  height: calc(var(--kemet-checkbox-size, 18px) - 4px);
@@ -3986,117 +3988,304 @@ KemetFlipcard = __decorate([
3986
3988
  e$5('kemet-flipcard')
3987
3989
  ], KemetFlipcard);
3988
3990
 
3991
+ /**
3992
+ * @since 1.0.0
3993
+ * @status stable
3994
+ *
3995
+ * @tagname kemet-modal-close
3996
+ * @summary A close button for a modal.
3997
+ *
3998
+ * @event kemet-modal-close-pressed - Fires when the close button is pressed
3999
+ *
4000
+ */
4001
+ let KemetModalClose = class KemetModalClose extends s$1 {
4002
+ render() {
4003
+ return x `
4004
+ <slot @keyup=${() => this.close()} @click=${() => this.close()}></slot>
4005
+ `;
4006
+ }
4007
+ close() {
4008
+ emitEvent(this, 'kemet-modal-close-pressed', this);
4009
+ }
4010
+ };
4011
+ KemetModalClose.styles = [
4012
+ i$4 `
4013
+ :host {
4014
+ position: absolute;
4015
+ top: 0.5rem;
4016
+ right: 0.5rem;
4017
+ border-radius: 50%;
4018
+ cursor: pointer;
4019
+ }
4020
+ `,
4021
+ ];
4022
+ KemetModalClose = __decorate([
4023
+ e$5('kemet-modal-close')
4024
+ ], KemetModalClose);
4025
+
3989
4026
  const stylesBase$2 = i$4 `
3990
- :host {
3991
- position: relative;
3992
- display: block;
4027
+ *,
4028
+ *::before,
4029
+ *::after {
4030
+ box-sizing: border-box;
3993
4031
  }
3994
4032
 
3995
- input {
3996
- color: var(--kemet-color-text);
3997
- display: block;
3998
- font-size: 1rem;
4033
+ :host {
4034
+ position: fixed;
4035
+ display: flex;
4036
+ top: 0;
4037
+ left: 0;
4038
+ z-index: 99;
3999
4039
  width: 100%;
4000
- height: var(--kemet-input-height, 50px);
4001
- padding: var(--kemet-input-padding, 0.5rem 1rem);
4002
- border: var(--kemet-input-border, 1px solid var(--kemet-color-background));
4003
- appearance: none;
4004
- box-sizing: border-box;
4005
- background-color: transparent;
4040
+ height: 100vh;
4041
+ visibility: hidden;
4042
+ backface-visibility: hidden;
4006
4043
  }
4007
4044
 
4008
- input[type='color'] {
4009
- min-width: 10rem;
4045
+ :host([opened]) {
4046
+ visibility: visible;
4010
4047
  }
4011
4048
 
4012
- input[type='search']::-webkit-search-decoration,
4013
- input[type='search']::-webkit-search-cancel-button,
4014
- input[type='search']::-webkit-search-results-button,
4015
- input[type='search']::-webkit-search-results-decoration {
4016
- display: none;
4049
+ .content {
4050
+ position: relative;
4051
+ z-index: 3;
4052
+ margin: auto;
4053
+ min-width: var(--kemet-modal-content-min-width, 0);
4054
+ max-width: var(--kemet-modal-content-max-width, none);
4055
+ background-color: var(--kemet-modal-content-background-color, var(--kemet-color-white-to-primary));
4017
4056
  }
4018
4057
 
4019
- :host([status='error']) input {
4020
- border: var(--kemet-input-border-color-error, 1px solid var(--kemet-color-error));
4058
+ :host([mobile]) .content {
4059
+ min-width: var(--kemet-modal-content-mobile-min-width, 100%);
4060
+ min-height: var(--kemet-modal-content-mobile-min-height, 80vh);
4061
+ padding: var(--kemet-modal-content-mobile-padding, 1rem);
4021
4062
  }
4022
4063
 
4023
- :host([status='success']) input {
4024
- border: var(--kemet-input-border-color-success, 1px solid var(--kemet-color-success));
4064
+ .overlay {
4065
+ position: fixed;
4066
+ width: 100%;
4067
+ height: 100%;
4068
+ visibility: hidden;
4069
+ top: 0;
4070
+ left: 0;
4071
+ z-index: 1;
4072
+ opacity: 0;
4073
+ background: var(--kemet-modal-overlay-background-color, rgba(0,0,0,0.2));
4074
+ transition: all var(--kemet-modal-transition-speed, 0.3s);
4025
4075
  }
4026
4076
 
4027
- :host([status='warning']) input {
4028
- border: var(--kemet-input-border-color-warning, 1px solid var(--kemet-color-warning));
4077
+ :host([opened]) .overlay {
4078
+ opacity: 1;
4079
+ visibility: visible;
4080
+ }
4081
+ `;
4082
+ const stylesEffects = i$4 `
4083
+ /* fadein-scaleup */
4084
+ :host([effect="fadein-scaleup"]) .content {
4085
+ transform: scale(0.7);
4086
+ opacity: 0;
4087
+ transition: all var(--kemet-modal-transition-speed, 0.3s);
4029
4088
  }
4030
4089
 
4031
- :host([disabled]) input {
4032
- opacity: 0.5;
4090
+ :host([effect="fadein-scaleup"][opened]) .content {
4091
+ transform: scale(1);
4092
+ opacity: 1;
4033
4093
  }
4034
4094
 
4035
- :host([icon-left]) input {
4036
- padding-left: var(--kemet-input-icon-left-padding, 3rem);
4095
+ /* slide-right */
4096
+ :host([effect="slide-right"]) .content {
4097
+ transform: translateX(20%);
4098
+ opacity: 0;
4099
+ transition: all var(--kemet-modal-transition-speed, 0.3s) cubic-bezier(0.25, 0.5, 0.5, 0.9);
4037
4100
  }
4038
4101
 
4039
- :host([icon-right]) input {
4040
- padding-right: var(--kemet-input-icon-right-padding, 3rem);
4102
+ :host([effect="slide-right"][opened]) .content {
4103
+ transform: translateX(0);
4104
+ opacity: 1;
4041
4105
  }
4042
4106
 
4043
- :host([rounded]) input {
4044
- border-radius: var(--kemet-input-border-radius-rounded, var(--kemet-border-radius));
4107
+ /* slide-bottom */
4108
+ :host([effect="slide-bottom"]) .content {
4109
+ transform: translateY(20%);
4110
+ opacity: 0;
4111
+ transition: all var(--kemet-modal-transition-speed, 0.3s);
4045
4112
  }
4046
4113
 
4047
- :host([filled]) input {
4048
- border: var(--kemet-input-border-filled, none);
4049
- color: var(--kemet-input-color-filled, var(--kemet-color-white));
4050
- background-color: var(--kemet-input-background-color-filled, var(--kemet-color-primary));
4114
+ :host([effect="slide-bottom"][opened]) .content {
4115
+ transform: translateY(0);
4116
+ opacity: 1;
4051
4117
  }
4052
4118
 
4053
- :host([filled]) kemet-icon,
4054
- :host([filled]) input::placeholder {
4055
- color: var(--kemet-input-color-filled, var(--kemet-color-white));
4119
+ /* newspaper */
4120
+ :host([effect="newspaper"]) .content {
4121
+ transform: scale(0) rotate(720deg);
4122
+ opacity: 0;
4123
+ transition: all var(--kemet-modal-transition-speed, 0.3s);
4056
4124
  }
4057
4125
 
4058
- :host([status='error'][filled]) input {
4059
- background-color: var(--kemet-input-background-color-error, var(--kemet-color-error));
4126
+ :host([effect="newspaper"][opened]) .content {
4127
+ transform: scale(1) rotate(0deg);
4128
+ opacity: 1;
4060
4129
  }
4061
4130
 
4062
- :host([status='success'][filled]) input {
4063
- background-color: var(--kemet-input-background-color-success, var(--kemet-color-success));
4131
+ /* fall */
4132
+ :host([effect="fall"]) {
4133
+ perspective: 1300px;
4064
4134
  }
4065
4135
 
4066
- :host([status='warning'][filled]) input {
4067
- background-color: var(--kemet-input-background-color-warning, var(--kemet-color-warning));
4136
+ :host([effect="fall"]) .content {
4137
+ transform-style: preserve-3d;
4138
+ transform: translateZ(600px) rotateX(20deg);
4139
+ opacity: 0;
4068
4140
  }
4069
4141
 
4070
- kemet-icon {
4071
- color: var(--kemet-color-text);
4072
- position: absolute;
4073
- top: 50%;
4074
- transform: translateY(-50%);
4142
+ :host([effect="fall"][opened]) .content {
4143
+ transition: all var(--kemet-modal-transition-speed, 0.3s) ease-in;
4144
+ transform: translateZ(0px) rotateX(0deg);
4145
+ opacity: 1;
4075
4146
  }
4076
4147
 
4077
- kemet-icon.left {
4078
- left: 1rem;
4148
+ /* side-fall */
4149
+ :host([effect="side-fall"]) {
4150
+ perspective: 1300px;
4079
4151
  }
4080
4152
 
4081
- kemet-icon.right {
4082
- right: 1rem;
4153
+ :host([effect="side-fall"]) .content {
4154
+ transform-style: preserve-3d;
4155
+ transform: translate(30%) translateZ(600px) rotate(10deg);
4156
+ opacity: 0;
4083
4157
  }
4084
4158
 
4085
- kemet-icon.eye,
4086
- kemet-icon.search {
4087
- cursor: pointer;
4159
+ :host([effect="side-fall"][opened]) .content {
4160
+ transition: all var(--kemet-modal-transition-speed, 0.3s) ease-in;
4161
+ transform: translate(0%) translateZ(0) rotate(0deg);
4162
+ opacity: 1;
4088
4163
  }
4089
4164
 
4090
- :host([status='error']) kemet-icon {
4091
- color: var(--kemet-color-error);
4165
+ /* flip-horizontal */
4166
+ :host([effect="flip-horizontal"]) {
4167
+ perspective: 1300px;
4092
4168
  }
4093
4169
 
4094
- :host([status='warning']) kemet-icon {
4095
- color: var(--kemet-color-error);
4170
+ :host([effect="flip-horizontal"]) .content {
4171
+ transform-style: preserve-3d;
4172
+ transform: rotateY(-70deg);
4173
+ transition: all var(--kemet-modal-transition-speed, 0.3s);
4174
+ opacity: 0;
4096
4175
  }
4097
4176
 
4098
- :host([status='success']) kemet-icon {
4099
- color: var(--kemet-color-success);
4177
+ :host([effect="flip-horizontal"][opened]) .content {
4178
+ transform: rotateY(0deg);
4179
+ opacity: 1;
4180
+ }
4181
+
4182
+ /* flip-vertical */
4183
+ :host([effect="flip-vertical"]) {
4184
+ perspective: 1300px;
4185
+ }
4186
+
4187
+ :host([effect="flip-vertical"]) .content {
4188
+ transform-style: preserve-3d;
4189
+ transform: rotateX(-70deg);
4190
+ transition: all var(--kemet-modal-transition-speed, 0.3s);
4191
+ opacity: 0;
4192
+ }
4193
+
4194
+ :host([effect="flip-vertical"][opened]) .content {
4195
+ transform: rotateX(0deg);
4196
+ opacity: 1;
4197
+ }
4198
+
4199
+ /* sign-3d */
4200
+ :host([effect="sign-3d"]) {
4201
+ perspective: 1300px;
4202
+ }
4203
+
4204
+ :host([effect="sign-3d"]) .content {
4205
+ transform-style: preserve-3d;
4206
+ transform: rotateX(-60deg);
4207
+ transform-origin: 50% 0;
4208
+ opacity: 0;
4209
+ transition: all var(--kemet-modal-transition-speed, 0.3s);
4210
+ }
4211
+
4212
+ :host([effect="sign-3d"][opened]) .content {
4213
+ transform: rotateX(0deg);
4214
+ opacity: 1;
4215
+ }
4216
+
4217
+ /* super-scaled */
4218
+ :host([effect="super-scaled"]) .content {
4219
+ transform: scale(2);
4220
+ opacity: 0;
4221
+ transition: all var(--kemet-modal-transition-speed, 0.3s);
4222
+ }
4223
+
4224
+ :host([effect="super-scaled"][opened]) .content {
4225
+ transform: scale(1);
4226
+ opacity: 1;
4227
+ }
4228
+
4229
+ /* slit */
4230
+ :host([effect="slit"]) {
4231
+ perspective: 1300px;
4232
+ }
4233
+
4234
+ :host([effect="slit"]) .content {
4235
+ transform-style: preserve-3d;
4236
+ transform: translateZ(-3000px) rotateY(90deg);
4237
+ opacity: 0;
4238
+ }
4239
+
4240
+ :host([effect="slit"][opened]) .content {
4241
+ animation: slit .7s forwards ease-out;
4242
+ }
4243
+
4244
+ @keyframes slit {
4245
+ 50% {
4246
+ transform: translateZ(-250px) rotateY(89deg);
4247
+ opacity: 1;
4248
+ animation-timing-function: ease-in;}
4249
+ 100% {
4250
+ transform: translateZ(0) rotateY(0deg);
4251
+ opacity: 1;
4252
+ }
4253
+ }
4254
+
4255
+ /* rotate-bottom */
4256
+ :host([effect="rotate-bottom"]) {
4257
+ perspective: 1300px;
4258
+ }
4259
+
4260
+ :host([effect="rotate-bottom"]) .content {
4261
+ transform-style: preserve-3d;
4262
+ transform: translateY(100%) rotateX(90deg);
4263
+ transform-origin: 0 100%;
4264
+ opacity: 0;
4265
+ transition: all var(--kemet-modal-transition-speed, 0.3s) ease-out;
4266
+ }
4267
+
4268
+ :host([effect="rotate-bottom"][opened]) .content {
4269
+ transform: translateY(0%) rotateX(0deg);
4270
+ opacity: 1;
4271
+ }
4272
+
4273
+ /* rotate-left */
4274
+ :host([effect="rotate-left"]) {
4275
+ perspective: 1300px;
4276
+ }
4277
+
4278
+ :host([effect="rotate-left"]) .content {
4279
+ transform-style: preserve-3d;
4280
+ transform: translateZ(100px) translateX(-30%) rotateY(90deg);
4281
+ transform-origin: 0 100%;
4282
+ opacity: 0;
4283
+ transition: all var(--kemet-modal-transition-speed, 0.3s);
4284
+ }
4285
+
4286
+ :host([effect="rotate-left"][opened]) .content {
4287
+ transform: translateZ(0px) translateX(0%) rotateY(0deg);
4288
+ opacity: 1;
4100
4289
  }
4101
4290
  `;
4102
4291
 
@@ -4104,717 +4293,8 @@ const stylesBase$2 = i$4 `
4104
4293
  * @since 1.0.0
4105
4294
  * @status stable
4106
4295
  *
4107
- * @tagname kemet-input
4108
- * @summary An enhanced input element.
4109
- *
4110
- * @prop {string} slug - Used for the id of the input. Should match the slug used in a control if applicable.
4111
- * @prop {string} name - The name of the input
4112
- * @prop {string} placeholder - The placeholder attribute
4113
- * @prop {string} minlength - The minlength attribute
4114
- * @prop {string} maxlength - The maxlength attribute
4115
- * @prop {string} min - The min attribute
4116
- * @prop {string} max - The max attribute
4117
- * @prop {string} step - The step attribute
4118
- * @prop {string} autocomplete - The autocomplete attribute
4119
- * @prop {string} pattern - The pattern attribute
4120
- * @prop {string} inputmode - The input mode attribute
4121
- * @prop {boolean} autofocus - The autofocus attribute
4122
- * @prop {boolean} disabled - The disable attribute
4123
- * @prop {boolean} readonly - The readonly attribute
4124
- * @prop {boolean} required - The required attribute
4125
- * @prop {string} type - The type of input
4126
- * @prop {string} value - The input's value
4127
- * @prop {boolean} invalid - States whether or not the input is invalid
4128
- * @prop {string} status - The status of the input
4129
- * @prop {boolean} validateOnBlur - Activates validation on blur
4130
- * @prop {string} ariaAutoComplete - Aria Autocomplete
4131
- * @prop {string} ariaControls - Aria Controls
4132
- * @prop {string} ariaActiveDescendant - Aria Active Descendant
4133
- * @prop {boolean} rounded - Displays rounded corners
4134
- * @prop {boolean} filled - Displays a filled input box
4135
- * @prop {string} iconRight - Custom Icon to the right of the input
4136
- * @prop {string} iconLeft - Custom Icon to the left of the input
4137
- * @prop {number} iconSize - Size of the icons
4138
- * @prop {object} validity - The HTML5 validity object.
4139
- * @prop {boolean} isPasswordVisible - Manages password visibility
4140
- * @prop {string} inputType - Input Type of keypress handled through handleInput(e)
4141
- * @prop {boolean} focused - Determines if the input is focused
4142
- *
4143
- * @csspart input
4144
- *
4145
- * @cssproperty --kemet-input-height - The height of the input. Default: 50px.
4146
- * @cssproperty -kemet-input-padding - The padding on the input. Default: 0.5rem 1rem.
4147
- * @cssproperty -kemet-input-border - The border of the input. Default: 1px solid var(--kemet-color-primary).
4148
- * @cssproperty -kemet-input-border-color-error - The border of the error state. Default: 1px solid var(--kemet-color-error).
4149
- * @cssproperty -kemet-input-border-color-success - The border of the success state. Default: 1px solid var(--kemet-color-success).
4150
- * @cssproperty -kemet-input-border-color-warning - The border of the warning state. Default: 1px solid var(--kemet-color-warning) |
4151
- * @cssproperty -kemet-input-icon-left-padding - The icon-left padding. Default: 3rem.
4152
- * @cssproperty -kemet-input-icon-right-padding - The icon-right padding. Default: 3rem.
4153
- * @cssproperty -kemet-input-border-radius-rounded - The border radius on rounded. Default: var(--kemet-border-radius).
4154
- * @cssproperty -kemet-input-border-filled - The border on filled. Default: none.
4155
- * @cssproperty -kemet-input-color-filled - The color on filled. Default: var(--kemet-color-white).
4156
- * @cssproperty -kemet-input-background-color-filled - The background-color on filled. Default: var(--kemet-color-primary).
4157
- * @cssproperty -kemet-input-background-color-error - The error state background color. Default: var(--kemet-color-error).
4158
- * @cssproperty -kemet-input-background-color-success - The success state background color. Default: var(--kemet-color-success).
4159
- * @cssproperty -kemet-input-background-color-warning - The warning state background color. Default: var(--kemet-color-warning).
4160
- *
4161
- * @event kemet-input-focused - Fires when the input receives and loses focus
4162
- * @event kemet-input-status Fires when there's a change in status. This event includes an object that reports: 1) the status. 2) HTML5 validity object. 3) the component element.
4163
- * Use the validity object to support custom validation messages.
4164
- * @event kemet-input-input - Fires when the input receives input
4165
- *
4166
- */
4167
- let KemetInput = class KemetInput extends s$1 {
4168
- constructor() {
4169
- super();
4170
- this.name = 'input';
4171
- this.type = 'text';
4172
- this.value = '';
4173
- this.status = 'standard';
4174
- this.validateOnBlur = false;
4175
- this.iconSize = 20;
4176
- this.isPasswordVisible = false;
4177
- this.focused = false;
4178
- /** @internal */
4179
- this.formSubmitController = new FormSubmitController(this);
4180
- }
4181
- ;
4182
- firstUpdated() {
4183
- // elements
4184
- this.input = this.shadowRoot.querySelector('input');
4185
- this.field = this.closest('kemet-field');
4186
- this.form = this.closest('form');
4187
- this.slug = this.field ? this.field.slug : 'input';
4188
- if (this.field) {
4189
- this.field.addEventListener('fmc-password-status', event => this.handleStatus(event));
4190
- }
4191
- }
4192
- render() {
4193
- return x `
4194
- <div>
4195
- ${this.makeIconLeft()}
4196
- <input
4197
- part="input"
4198
- id=${this.slug}
4199
- name=${this.name}
4200
- placeholder=${l$1(this.placeholder)}
4201
- minlength=${l$1(this.minlength)}
4202
- maxlength=${l$1(this.maxlength)}
4203
- min=${l$1(this.min)}
4204
- max=${l$1(this.max)}
4205
- step=${l$1(this.step)}
4206
- autocomplete=${l$1(this.autocomplete)}
4207
- aria-autocomplete=${l$1(this.ariaAutoComplete)}
4208
- aria-controls=${l$1(this.ariaControls)}
4209
- aria-activedescendant=${l$1(this.ariaActiveDescendant)}
4210
- pattern=${l$1(this.pattern)}
4211
- inputmode=${l$1(this.inputmode)}
4212
- aria-invalid=${this.invalid ? 'true' : 'false'}
4213
- ?autofocus=${this.autofocus}
4214
- ?disabled=${this.disabled}
4215
- ?readonly=${this.readonly}
4216
- ?required=${this.required}
4217
- .type="${this.type === 'password' && this.isPasswordVisible ? 'text' : this.type}"
4218
- .value=${l(this.value)}
4219
- @change=${this.handleChange}
4220
- @input=${this.handleInput}
4221
- @invalid=${this.handleInvalid}
4222
- @focus=${this.handleFocus}
4223
- @blur=${this.handleBlur}
4224
- />
4225
- ${this.makeIconRight()} ${this.makeIconClear()} ${this.makeVisibilityToggle()}
4226
- </div>
4227
- `;
4228
- }
4229
- /**
4230
- * Makes the right icon
4231
- * @private
4232
- * @returns {templateResult} A right icon
4233
- */
4234
- makeIconRight() {
4235
- if (this.iconRight) {
4236
- return x `
4237
- <kemet-icon class="right" icon="${this.iconRight}" size="${this.iconSize ? this.iconSize : 20}"></kemet-icon>
4238
- `;
4239
- }
4240
- return null;
4241
- }
4242
- /**
4243
- * Makes the left icon
4244
- * @private
4245
- * @returns {templateResult} A left icon
4246
- */
4247
- makeIconLeft() {
4248
- if (this.iconLeft) {
4249
- return x `
4250
- <kemet-icon class="left" icon="${this.iconLeft}" size="${this.iconSize ? this.iconSize : 16}"></kemet-icon>
4251
- `;
4252
- }
4253
- return null;
4254
- }
4255
- /**
4256
- * Makes a clear icon for search.
4257
- * @private
4258
- * @returns {templateResult} A search icon
4259
- */
4260
- makeIconClear() {
4261
- if (this.type === 'search' && this.value !== '') {
4262
- return x `
4263
- <kemet-icon class="search right" icon="x-lg" size="${this.iconSize}" @click=${() => this.handleClear()}></kemet-icon>
4264
- `;
4265
- }
4266
- return null;
4267
- }
4268
- /**
4269
- * Makes a password visibility toggle button
4270
- * @returns {templateResult} A mask or unmask icon
4271
- */
4272
- makeVisibilityToggle() {
4273
- if (this.type === 'password') {
4274
- return x `<kemet-icon
4275
- class="eye right"
4276
- icon="${this.setPasswordIcon()}"
4277
- @click=${() => this.togglePasswordVisibility()}
4278
- ></kemet-icon>`;
4279
- }
4280
- return null;
4281
- }
4282
- setPasswordIcon() {
4283
- if (this.isPasswordVisible) {
4284
- return 'eye';
4285
- }
4286
- return 'eye-slash';
4287
- }
4288
- /**
4289
- * Handles when the input receives focus
4290
- * @private
4291
- */
4292
- handleFocus() {
4293
- this.focused = true;
4294
- emitEvent(this, 'kemet-input-focused', true);
4295
- }
4296
- /**
4297
- * Handles when the input loses focus
4298
- * @private
4299
- */
4300
- handleBlur() {
4301
- var _a, _b;
4302
- if (this.validateOnBlur && this.form && !this.form.noValidate) {
4303
- (_a = this.input) === null || _a === void 0 ? void 0 : _a.checkValidity();
4304
- this.validity = (_b = this.input) === null || _b === void 0 ? void 0 : _b.validity;
4305
- }
4306
- this.focused = false;
4307
- emitEvent(this, 'kemet-input-focused', false);
4308
- }
4309
- /**
4310
- * Handles when the input changes value
4311
- * @private
4312
- */
4313
- handleChange() {
4314
- this.value = this.input.value;
4315
- if (this.input.checkValidity() && this.checkLimitValidity() && this.status !== 'success') {
4316
- this.invalid = false;
4317
- this.status = 'standard';
4318
- this.validity = this.input.validity;
4319
- emitEvent(this, 'kemet-input-status', {
4320
- status: 'standard',
4321
- validity: this.input.validity,
4322
- element: this,
4323
- });
4324
- }
4325
- }
4326
- /**
4327
- * Handles when the input receives input
4328
- * @private
4329
- */
4330
- handleInput() {
4331
- this.value = this.input.value;
4332
- emitEvent(this, 'kemet-input-input', this.value);
4333
- }
4334
- /**
4335
- * Handles when the input has an error
4336
- * @private
4337
- */
4338
- handleInvalid() {
4339
- var _a, _b;
4340
- this.validity = (_a = this.input) === null || _a === void 0 ? void 0 : _a.validity;
4341
- if (this.validateOnBlur) {
4342
- this.invalid = true;
4343
- this.status = 'error';
4344
- emitEvent(this, 'kemet-input-status', {
4345
- status: 'error',
4346
- validity: (_b = this.input) === null || _b === void 0 ? void 0 : _b.validity,
4347
- element: this,
4348
- });
4349
- }
4350
- }
4351
- handleStatus(event) {
4352
- this.status = event.detail.status;
4353
- }
4354
- /**
4355
- * Toggles password visibility
4356
- * @private
4357
- */
4358
- togglePasswordVisibility() {
4359
- this.isPasswordVisible = !this.isPasswordVisible;
4360
- }
4361
- /**
4362
- * Handles the clear button for search
4363
- * @private
4364
- */
4365
- handleClear() {
4366
- this.value = '';
4367
- emitEvent(this, 'kemet-input-input', this.value);
4368
- }
4369
- /**
4370
- * Checks the validity of the character limit for the count component
4371
- * @private
4372
- * @returns {boolean}
4373
- */
4374
- checkLimitValidity() {
4375
- if (this.field) {
4376
- const count = this.field.querySelector('kemet-count');
4377
- if (count) {
4378
- return this.value.length < count.limit;
4379
- }
4380
- }
4381
- return true;
4382
- }
4383
- /**
4384
- * Checks the validity of the standard input
4385
- * @public
4386
- * @returns {boolean}
4387
- */
4388
- checkValidity() {
4389
- var _a;
4390
- return (_a = this.input) === null || _a === void 0 ? void 0 : _a.checkValidity();
4391
- }
4392
- /**
4393
- * Focuses the standard input
4394
- * @public
4395
- */
4396
- focus() {
4397
- var _a;
4398
- (_a = this.input) === null || _a === void 0 ? void 0 : _a.focus();
4399
- }
4400
- };
4401
- KemetInput.styles = [stylesBase$2];
4402
- __decorate([
4403
- e$4({ type: String })
4404
- ], KemetInput.prototype, "slug", void 0);
4405
- __decorate([
4406
- e$4({ type: String })
4407
- ], KemetInput.prototype, "name", void 0);
4408
- __decorate([
4409
- e$4({ type: String })
4410
- ], KemetInput.prototype, "placeholder", void 0);
4411
- __decorate([
4412
- e$4({ type: Number })
4413
- ], KemetInput.prototype, "minlength", void 0);
4414
- __decorate([
4415
- e$4({ type: Number })
4416
- ], KemetInput.prototype, "maxlength", void 0);
4417
- __decorate([
4418
- e$4({ type: String })
4419
- ], KemetInput.prototype, "min", void 0);
4420
- __decorate([
4421
- e$4({ type: String })
4422
- ], KemetInput.prototype, "max", void 0);
4423
- __decorate([
4424
- e$4({ type: Number })
4425
- ], KemetInput.prototype, "step", void 0);
4426
- __decorate([
4427
- e$4({ type: String })
4428
- ], KemetInput.prototype, "autocomplete", void 0);
4429
- __decorate([
4430
- e$4({ type: String })
4431
- ], KemetInput.prototype, "pattern", void 0);
4432
- __decorate([
4433
- e$4({ type: String })
4434
- ], KemetInput.prototype, "inputmode", void 0);
4435
- __decorate([
4436
- e$4({ type: Boolean })
4437
- ], KemetInput.prototype, "autofocus", void 0);
4438
- __decorate([
4439
- e$4({ type: Boolean, reflect: true })
4440
- ], KemetInput.prototype, "disabled", void 0);
4441
- __decorate([
4442
- e$4({ type: Boolean })
4443
- ], KemetInput.prototype, "readonly", void 0);
4444
- __decorate([
4445
- e$4({ type: Boolean, reflect: true })
4446
- ], KemetInput.prototype, "required", void 0);
4447
- __decorate([
4448
- e$4({ type: String })
4449
- ], KemetInput.prototype, "type", void 0);
4450
- __decorate([
4451
- e$4({ type: String, reflect: true })
4452
- ], KemetInput.prototype, "value", void 0);
4453
- __decorate([
4454
- e$4({ type: Boolean, reflect: true })
4455
- ], KemetInput.prototype, "invalid", void 0);
4456
- __decorate([
4457
- e$4({ type: String, reflect: true })
4458
- ], KemetInput.prototype, "status", void 0);
4459
- __decorate([
4460
- e$4({ type: Boolean, attribute: 'validate-on-blur' })
4461
- ], KemetInput.prototype, "validateOnBlur", void 0);
4462
- __decorate([
4463
- e$4({ type: String, attribute: 'aria-autocomplete' })
4464
- ], KemetInput.prototype, "ariaAutoComplete", void 0);
4465
- __decorate([
4466
- e$4({ type: String, attribute: 'aria-controls' })
4467
- ], KemetInput.prototype, "ariaControls", void 0);
4468
- __decorate([
4469
- e$4({ type: String, attribute: 'aria-activedescendant' })
4470
- ], KemetInput.prototype, "ariaActiveDescendant", void 0);
4471
- __decorate([
4472
- e$4({ type: Boolean, reflect: true })
4473
- ], KemetInput.prototype, "rounded", void 0);
4474
- __decorate([
4475
- e$4({ type: Boolean, reflect: true })
4476
- ], KemetInput.prototype, "filled", void 0);
4477
- __decorate([
4478
- e$4({ type: String, reflect: true, attribute: 'icon-right' })
4479
- ], KemetInput.prototype, "iconRight", void 0);
4480
- __decorate([
4481
- e$4({ type: String, reflect: true, attribute: 'icon-left' })
4482
- ], KemetInput.prototype, "iconLeft", void 0);
4483
- __decorate([
4484
- e$4({ type: Number })
4485
- ], KemetInput.prototype, "iconSize", void 0);
4486
- __decorate([
4487
- e$4({ type: Object })
4488
- ], KemetInput.prototype, "validity", void 0);
4489
- __decorate([
4490
- e$4({ type: Boolean })
4491
- ], KemetInput.prototype, "isPasswordVisible", void 0);
4492
- __decorate([
4493
- e$4({ type: String })
4494
- ], KemetInput.prototype, "inputType", void 0);
4495
- __decorate([
4496
- e$4({ type: Boolean, reflect: true })
4497
- ], KemetInput.prototype, "focused", void 0);
4498
- __decorate([
4499
- t$1()
4500
- ], KemetInput.prototype, "field", void 0);
4501
- __decorate([
4502
- t$1()
4503
- ], KemetInput.prototype, "form", void 0);
4504
- __decorate([
4505
- t$1()
4506
- ], KemetInput.prototype, "input", void 0);
4507
- KemetInput = __decorate([
4508
- e$5('kemet-input')
4509
- ], KemetInput);
4510
-
4511
- /**
4512
- * @since 1.0.0
4513
- * @status stable
4514
- *
4515
- * @tagname kemet-modal-close
4516
- * @summary A close button for a modal.
4517
- *
4518
- * @event kemet-modal-close-pressed - Fires when the close button is pressed
4519
- *
4520
- */
4521
- let KemetModalClose = class KemetModalClose extends s$1 {
4522
- render() {
4523
- return x `
4524
- <slot @keyup=${() => this.close()} @click=${() => this.close()}></slot>
4525
- `;
4526
- }
4527
- close() {
4528
- emitEvent(this, 'kemet-modal-close-pressed', this);
4529
- }
4530
- };
4531
- KemetModalClose.styles = [
4532
- i$4 `
4533
- :host {
4534
- position: absolute;
4535
- top: 0.5rem;
4536
- right: 0.5rem;
4537
- border-radius: 50%;
4538
- cursor: pointer;
4539
- }
4540
- `,
4541
- ];
4542
- KemetModalClose = __decorate([
4543
- e$5('kemet-modal-close')
4544
- ], KemetModalClose);
4545
-
4546
- const stylesBase$1 = i$4 `
4547
- *,
4548
- *::before,
4549
- *::after {
4550
- box-sizing: border-box;
4551
- }
4552
-
4553
- :host {
4554
- position: fixed;
4555
- display: flex;
4556
- top: 0;
4557
- left: 0;
4558
- z-index: 99;
4559
- width: 100%;
4560
- height: 100vh;
4561
- visibility: hidden;
4562
- backface-visibility: hidden;
4563
- }
4564
-
4565
- :host([opened]) {
4566
- visibility: visible;
4567
- }
4568
-
4569
- .content {
4570
- position: relative;
4571
- z-index: 3;
4572
- margin: auto;
4573
- min-width: var(--kemet-modal-content-min-width, 0);
4574
- max-width: var(--kemet-modal-content-max-width, none);
4575
- background-color: var(--kemet-modal-content-background-color, var(--kemet-color-white-to-primary));
4576
- }
4577
-
4578
- :host([mobile]) .content {
4579
- min-width: var(--kemet-modal-content-mobile-min-width, 100%);
4580
- min-height: var(--kemet-modal-content-mobile-min-height, 80vh);
4581
- padding: var(--kemet-modal-content-mobile-padding, 1rem);
4582
- }
4583
-
4584
- .overlay {
4585
- position: fixed;
4586
- width: 100%;
4587
- height: 100%;
4588
- visibility: hidden;
4589
- top: 0;
4590
- left: 0;
4591
- z-index: 1;
4592
- opacity: 0;
4593
- background: var(--kemet-modal-overlay-background-color, rgba(0,0,0,0.2));
4594
- transition: all var(--kemet-modal-transition-speed, 0.3s);
4595
- }
4596
-
4597
- :host([opened]) .overlay {
4598
- opacity: 1;
4599
- visibility: visible;
4600
- }
4601
- `;
4602
- const stylesEffects = i$4 `
4603
- /* fadein-scaleup */
4604
- :host([effect="fadein-scaleup"]) .content {
4605
- transform: scale(0.7);
4606
- opacity: 0;
4607
- transition: all var(--kemet-modal-transition-speed, 0.3s);
4608
- }
4609
-
4610
- :host([effect="fadein-scaleup"][opened]) .content {
4611
- transform: scale(1);
4612
- opacity: 1;
4613
- }
4614
-
4615
- /* slide-right */
4616
- :host([effect="slide-right"]) .content {
4617
- transform: translateX(20%);
4618
- opacity: 0;
4619
- transition: all var(--kemet-modal-transition-speed, 0.3s) cubic-bezier(0.25, 0.5, 0.5, 0.9);
4620
- }
4621
-
4622
- :host([effect="slide-right"][opened]) .content {
4623
- transform: translateX(0);
4624
- opacity: 1;
4625
- }
4626
-
4627
- /* slide-bottom */
4628
- :host([effect="slide-bottom"]) .content {
4629
- transform: translateY(20%);
4630
- opacity: 0;
4631
- transition: all var(--kemet-modal-transition-speed, 0.3s);
4632
- }
4633
-
4634
- :host([effect="slide-bottom"][opened]) .content {
4635
- transform: translateY(0);
4636
- opacity: 1;
4637
- }
4638
-
4639
- /* newspaper */
4640
- :host([effect="newspaper"]) .content {
4641
- transform: scale(0) rotate(720deg);
4642
- opacity: 0;
4643
- transition: all var(--kemet-modal-transition-speed, 0.3s);
4644
- }
4645
-
4646
- :host([effect="newspaper"][opened]) .content {
4647
- transform: scale(1) rotate(0deg);
4648
- opacity: 1;
4649
- }
4650
-
4651
- /* fall */
4652
- :host([effect="fall"]) {
4653
- perspective: 1300px;
4654
- }
4655
-
4656
- :host([effect="fall"]) .content {
4657
- transform-style: preserve-3d;
4658
- transform: translateZ(600px) rotateX(20deg);
4659
- opacity: 0;
4660
- }
4661
-
4662
- :host([effect="fall"][opened]) .content {
4663
- transition: all var(--kemet-modal-transition-speed, 0.3s) ease-in;
4664
- transform: translateZ(0px) rotateX(0deg);
4665
- opacity: 1;
4666
- }
4667
-
4668
- /* side-fall */
4669
- :host([effect="side-fall"]) {
4670
- perspective: 1300px;
4671
- }
4672
-
4673
- :host([effect="side-fall"]) .content {
4674
- transform-style: preserve-3d;
4675
- transform: translate(30%) translateZ(600px) rotate(10deg);
4676
- opacity: 0;
4677
- }
4678
-
4679
- :host([effect="side-fall"][opened]) .content {
4680
- transition: all var(--kemet-modal-transition-speed, 0.3s) ease-in;
4681
- transform: translate(0%) translateZ(0) rotate(0deg);
4682
- opacity: 1;
4683
- }
4684
-
4685
- /* flip-horizontal */
4686
- :host([effect="flip-horizontal"]) {
4687
- perspective: 1300px;
4688
- }
4689
-
4690
- :host([effect="flip-horizontal"]) .content {
4691
- transform-style: preserve-3d;
4692
- transform: rotateY(-70deg);
4693
- transition: all var(--kemet-modal-transition-speed, 0.3s);
4694
- opacity: 0;
4695
- }
4696
-
4697
- :host([effect="flip-horizontal"][opened]) .content {
4698
- transform: rotateY(0deg);
4699
- opacity: 1;
4700
- }
4701
-
4702
- /* flip-vertical */
4703
- :host([effect="flip-vertical"]) {
4704
- perspective: 1300px;
4705
- }
4706
-
4707
- :host([effect="flip-vertical"]) .content {
4708
- transform-style: preserve-3d;
4709
- transform: rotateX(-70deg);
4710
- transition: all var(--kemet-modal-transition-speed, 0.3s);
4711
- opacity: 0;
4712
- }
4713
-
4714
- :host([effect="flip-vertical"][opened]) .content {
4715
- transform: rotateX(0deg);
4716
- opacity: 1;
4717
- }
4718
-
4719
- /* sign-3d */
4720
- :host([effect="sign-3d"]) {
4721
- perspective: 1300px;
4722
- }
4723
-
4724
- :host([effect="sign-3d"]) .content {
4725
- transform-style: preserve-3d;
4726
- transform: rotateX(-60deg);
4727
- transform-origin: 50% 0;
4728
- opacity: 0;
4729
- transition: all var(--kemet-modal-transition-speed, 0.3s);
4730
- }
4731
-
4732
- :host([effect="sign-3d"][opened]) .content {
4733
- transform: rotateX(0deg);
4734
- opacity: 1;
4735
- }
4736
-
4737
- /* super-scaled */
4738
- :host([effect="super-scaled"]) .content {
4739
- transform: scale(2);
4740
- opacity: 0;
4741
- transition: all var(--kemet-modal-transition-speed, 0.3s);
4742
- }
4743
-
4744
- :host([effect="super-scaled"][opened]) .content {
4745
- transform: scale(1);
4746
- opacity: 1;
4747
- }
4748
-
4749
- /* slit */
4750
- :host([effect="slit"]) {
4751
- perspective: 1300px;
4752
- }
4753
-
4754
- :host([effect="slit"]) .content {
4755
- transform-style: preserve-3d;
4756
- transform: translateZ(-3000px) rotateY(90deg);
4757
- opacity: 0;
4758
- }
4759
-
4760
- :host([effect="slit"][opened]) .content {
4761
- animation: slit .7s forwards ease-out;
4762
- }
4763
-
4764
- @keyframes slit {
4765
- 50% {
4766
- transform: translateZ(-250px) rotateY(89deg);
4767
- opacity: 1;
4768
- animation-timing-function: ease-in;}
4769
- 100% {
4770
- transform: translateZ(0) rotateY(0deg);
4771
- opacity: 1;
4772
- }
4773
- }
4774
-
4775
- /* rotate-bottom */
4776
- :host([effect="rotate-bottom"]) {
4777
- perspective: 1300px;
4778
- }
4779
-
4780
- :host([effect="rotate-bottom"]) .content {
4781
- transform-style: preserve-3d;
4782
- transform: translateY(100%) rotateX(90deg);
4783
- transform-origin: 0 100%;
4784
- opacity: 0;
4785
- transition: all var(--kemet-modal-transition-speed, 0.3s) ease-out;
4786
- }
4787
-
4788
- :host([effect="rotate-bottom"][opened]) .content {
4789
- transform: translateY(0%) rotateX(0deg);
4790
- opacity: 1;
4791
- }
4792
-
4793
- /* rotate-left */
4794
- :host([effect="rotate-left"]) {
4795
- perspective: 1300px;
4796
- }
4797
-
4798
- :host([effect="rotate-left"]) .content {
4799
- transform-style: preserve-3d;
4800
- transform: translateZ(100px) translateX(-30%) rotateY(90deg);
4801
- transform-origin: 0 100%;
4802
- opacity: 0;
4803
- transition: all var(--kemet-modal-transition-speed, 0.3s);
4804
- }
4805
-
4806
- :host([effect="rotate-left"][opened]) .content {
4807
- transform: translateZ(0px) translateX(0%) rotateY(0deg);
4808
- opacity: 1;
4809
- }
4810
- `;
4811
-
4812
- /**
4813
- * @since 1.0.0
4814
- * @status stable
4815
- *
4816
- * @tagname kemet-modal
4817
- * @summary A dialog that has many built in effects and flexible styles.
4296
+ * @tagname kemet-modal
4297
+ * @summary A dialog that has many built in effects and flexible styles.
4818
4298
  *
4819
4299
  * @prop {boolean} opened
4820
4300
  * @prop {string} effect
@@ -4908,7 +4388,7 @@ let KemetModal = class KemetModal extends s$1 {
4908
4388
  }
4909
4389
  }
4910
4390
  };
4911
- KemetModal.styles = [stylesBase$1, stylesEffects];
4391
+ KemetModal.styles = [stylesBase$2, stylesEffects];
4912
4392
  __decorate([
4913
4393
  e$4({ type: Boolean, reflect: true })
4914
4394
  ], KemetModal.prototype, "opened", void 0);
@@ -4934,50 +4414,7 @@ KemetModal = __decorate([
4934
4414
  e$5('kemet-modal')
4935
4415
  ], KemetModal);
4936
4416
 
4937
- /**
4938
- * @since 2.0.0
4939
- * @status stable
4940
- *
4941
- * @tagname kemet-popper-close
4942
- * @summary A close button for the popper
4943
- *
4944
- * @event kemet-popper-close-btn
4945
- *
4946
- */
4947
- let KemetPopperClose = class KemetPopperClose extends s$1 {
4948
- render() {
4949
- return x `
4950
- <button @click=${() => this.close()} @keyup=${event => this.handleKeyboard(event)}>
4951
- <slot></slot>
4952
- </button>
4953
- `;
4954
- }
4955
- close() {
4956
- emitEvent(this, 'kemet-popper-close-btn', this);
4957
- }
4958
- handleKeyboard(event) {
4959
- event.preventDefault();
4960
- if (event.keyCode === keyCodes.SPACE || event.keyCode === keyCodes.ENTER) {
4961
- this.close();
4962
- }
4963
- }
4964
- };
4965
- KemetPopperClose.styles = [
4966
- i$4 `
4967
- button {
4968
- font: inherit;
4969
- color: inherit;
4970
- cursor: pointer;
4971
- border: 0;
4972
- background: transparent;
4973
- }
4974
- `,
4975
- ];
4976
- KemetPopperClose = __decorate([
4977
- e$5('kemet-popper-close')
4978
- ], KemetPopperClose);
4979
-
4980
- const stylesBase = i$4 `
4417
+ const stylesBase$1 = i$4 `
4981
4418
  :host {
4982
4419
  color: inherit;
4983
4420
  display: none;
@@ -5199,7 +4636,7 @@ let KemetPassword = class KemetPassword extends s$1 {
5199
4636
  }
5200
4637
  }
5201
4638
  };
5202
- KemetPassword.styles = [stylesBase];
4639
+ KemetPassword.styles = [stylesBase$1];
5203
4640
  __decorate([
5204
4641
  e$4({ type: Array })
5205
4642
  ], KemetPassword.prototype, "rules", void 0);
@@ -5234,6 +4671,49 @@ KemetPassword = __decorate([
5234
4671
  e$5('kemet-password')
5235
4672
  ], KemetPassword);
5236
4673
 
4674
+ /**
4675
+ * @since 2.0.0
4676
+ * @status stable
4677
+ *
4678
+ * @tagname kemet-popper-close
4679
+ * @summary A close button for the popper
4680
+ *
4681
+ * @event kemet-popper-close-btn
4682
+ *
4683
+ */
4684
+ let KemetPopperClose = class KemetPopperClose extends s$1 {
4685
+ render() {
4686
+ return x `
4687
+ <button @click=${() => this.close()} @keyup=${event => this.handleKeyboard(event)}>
4688
+ <slot></slot>
4689
+ </button>
4690
+ `;
4691
+ }
4692
+ close() {
4693
+ emitEvent(this, 'kemet-popper-close-btn', this);
4694
+ }
4695
+ handleKeyboard(event) {
4696
+ event.preventDefault();
4697
+ if (event.keyCode === keyCodes.SPACE || event.keyCode === keyCodes.ENTER) {
4698
+ this.close();
4699
+ }
4700
+ }
4701
+ };
4702
+ KemetPopperClose.styles = [
4703
+ i$4 `
4704
+ button {
4705
+ font: inherit;
4706
+ color: inherit;
4707
+ cursor: pointer;
4708
+ border: 0;
4709
+ background: transparent;
4710
+ }
4711
+ `,
4712
+ ];
4713
+ KemetPopperClose = __decorate([
4714
+ e$5('kemet-popper-close')
4715
+ ], KemetPopperClose);
4716
+
5237
4717
  var top = 'top';
5238
4718
  var bottom = 'bottom';
5239
4719
  var right = 'right';
@@ -7566,422 +7046,152 @@ const stylesPopperSuperScaled = i$4 `
7566
7046
  * @prop {string} strategy - Sets the strategy option in Popper's api
7567
7047
  * @prop {number} skidding - Sets an offset to the Popper from the trigger
7568
7048
  * @prop {number} distance - Sets spacing between the Popper and the trigger
7569
- *
7570
- */
7571
- let KemetPopper = class KemetPopper extends s$1 {
7572
- constructor() {
7573
- super();
7574
- this.placement = 'top';
7575
- this.effect = 'fade';
7576
- this.fireOn = 'hover';
7577
- this.strategy = 'fixed';
7578
- this.skidding = 0;
7579
- this.distance = 0;
7580
- this.addEventListener('kemet-popper-close-btn', () => this.opened = false);
7581
- }
7582
- firstUpdated() {
7583
- if (this.fireOn === 'click') {
7584
- this.focusableElements.forEach((element) => {
7585
- element.addEventListener('keydown', event => this.handleFocusableDown(event));
7586
- });
7587
- }
7588
- }
7589
- updated(prevProps) {
7590
- this.refresh();
7591
- if (!prevProps.get('opened') && this.opened === true) {
7592
- emitEvent(this, 'kemet-popper-opened', this);
7593
- }
7594
- if (prevProps.get('opened') && this.opened === false) {
7595
- emitEvent(this, 'kemet-popper-closed', this);
7596
- }
7597
- }
7598
- render() {
7599
- return x `
7600
- <div
7601
- id="trigger"
7602
- part="trigger"
7603
- tabIndex="0"
7604
- @click=${this.fireOn === 'click' ? event => this.toggle(event) : null}
7605
- @keyup=${this.fireOn === 'click' ? event => this.handleKeyUp(event) : null}
7606
- @mouseover=${this.fireOn !== 'click' ? () => this.opened = true : null}
7607
- @focus=${this.fireOn !== 'click' ? () => this.opened = true : null}
7608
- @mouseout=${this.fireOn !== 'click' ? () => this.opened = false : null}
7609
- @blur=${this.fireOn !== 'click' ? () => this.opened = false : null}
7610
- >
7611
- <slot name="trigger"></slot>
7612
- </div>
7613
- <div
7614
- id="content"
7615
- @mouseover=${this.fireOn !== 'click' ? () => this.opened = true : null}
7616
- @mouseout=${this.fireOn !== 'click' ? () => this.opened = false : null}
7617
- >
7618
- <slot name="content" @slotchange=${() => this.makePopper()}></slot>
7619
- </div>
7620
- `;
7621
- }
7622
- refresh() {
7623
- var _a;
7624
- (_a = this.popperInstance) === null || _a === void 0 ? void 0 : _a.setOptions({
7625
- placement: this.placement,
7626
- strategy: this.strategy,
7627
- modifiers: [
7628
- { name: 'offset', options: { offset: [this.skidding, this.distance] } }
7629
- ],
7630
- });
7631
- }
7632
- makePopper() {
7633
- this.popperInstance = createPopper(this.triggerElement, this.contentElement, {
7634
- placement: this.placement,
7635
- strategy: this.strategy,
7636
- modifiers: [
7637
- { name: 'offset', options: { offset: [this.skidding, this.distance] } }
7638
- ],
7639
- });
7640
- }
7641
- toggle(event) {
7642
- const isSlotTrigger = event.target.getAttribute('slot') === 'trigger';
7643
- const isPartTrigger = event.target.getAttribute('part') === 'trigger';
7644
- if (isSlotTrigger || isPartTrigger) {
7645
- if (this.opened) {
7646
- this.opened = false;
7647
- }
7648
- else {
7649
- this.opened = true;
7650
- }
7651
- }
7652
- }
7653
- handleKeyUp(event) {
7654
- event.preventDefault();
7655
- if (event.keyCode === keyCodes.ESC) {
7656
- this.opened = false;
7657
- }
7658
- if (event.keyCode === keyCodes.ENTER || event.keyCode === keyCodes.SPACE) {
7659
- this.toggle(event);
7660
- }
7661
- }
7662
- handleFocusableDown(event) {
7663
- const firstFocusable = this.focusableElements[0];
7664
- const lastFocusable = this.focusableElements[this.focusableElements.length - 1];
7665
- if (event.key === 'Tab') {
7666
- if (event.shiftKey && document.activeElement === firstFocusable) {
7667
- event.preventDefault();
7668
- lastFocusable.focus();
7669
- }
7670
- else if (!event.shiftKey && document.activeElement === lastFocusable) {
7671
- event.preventDefault();
7672
- firstFocusable.focus();
7673
- }
7674
- }
7675
- }
7676
- };
7677
- KemetPopper.styles = [stylesPopper, stylesPopperFade, stylesPopperScale, stylesPopperSlide, stylesPopperFall, stylesPopperFlipHorizontal, stylesPopperFlipVertical, stylesPopperSign, stylesPopperSuperScaled];
7678
- __decorate([
7679
- e$4({ type: String, reflect: true })
7680
- ], KemetPopper.prototype, "placement", void 0);
7681
- __decorate([
7682
- e$4({ type: Boolean, reflect: true })
7683
- ], KemetPopper.prototype, "opened", void 0);
7684
- __decorate([
7685
- e$4({ type: String, reflect: true })
7686
- ], KemetPopper.prototype, "effect", void 0);
7687
- __decorate([
7688
- e$4({ type: String, attribute: 'fire-on' })
7689
- ], KemetPopper.prototype, "fireOn", void 0);
7690
- __decorate([
7691
- e$4({ type: String })
7692
- ], KemetPopper.prototype, "strategy", void 0);
7693
- __decorate([
7694
- e$4({ type: Number })
7695
- ], KemetPopper.prototype, "skidding", void 0);
7696
- __decorate([
7697
- e$4({ type: Number })
7698
- ], KemetPopper.prototype, "distance", void 0);
7699
- __decorate([
7700
- t$1()
7701
- ], KemetPopper.prototype, "popperInstance", void 0);
7702
- __decorate([
7703
- i$1('#trigger')
7704
- ], KemetPopper.prototype, "triggerElement", void 0);
7705
- __decorate([
7706
- i$1('#content')
7707
- ], KemetPopper.prototype, "contentElement", void 0);
7708
- __decorate([
7709
- e$3('body, a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable], kemet-popper-close')
7710
- ], KemetPopper.prototype, "focusableElements", void 0);
7711
- KemetPopper = __decorate([
7712
- e$5('kemet-popper')
7713
- ], KemetPopper);
7714
- var KemetPopper$1 = KemetPopper;
7715
-
7716
- /**
7717
- * @license
7718
- * Copyright 2017 Google LLC
7719
- * SPDX-License-Identifier: BSD-3-Clause
7720
- */class e extends i{constructor(i){if(super(i),this.et=A,i.type!==t.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(r){if(r===A||null==r)return this.ft=void 0,this.et=r;if(r===T)return r;if("string"!=typeof r)throw Error(this.constructor.directiveName+"() called with a non-string value");if(r===this.et)return this.ft;this.et=r;const s=[r];return s.raw=s,this.ft={_$litType$:this.constructor.resultType,strings:s,values:[]}}}e.directiveName="unsafeHTML",e.resultType=1;const o=e$2(e);
7721
-
7722
- const stylesRotator = i$4 `
7723
- :host {
7724
- display: flex;
7725
- }
7726
-
7727
- .rotator__slide {
7728
- pointer-events: none;
7729
- }
7730
-
7731
- .rotator__slide--active {
7732
- pointer-events: auto;
7733
- }
7734
-
7735
- /* fade effect */
7736
- :host([effect="fade"]) .rotator {
7737
- display: inline-flex;
7738
- flex-wrap: nowrap;
7739
- flex-direction: row;
7740
- }
7741
-
7742
- :host([effect="fade"]) .rotator__slide {
7743
- width: 100%;
7744
- flex: none;
7745
- opacity: 0;
7746
- box-sizing: border-box;
7747
- transition: all var(--kemet-rotator-transition-speed, 500ms) ease;
7748
- }
7749
-
7750
- :host([effect="fade"]) .rotator__slide:not(:first-child) {
7751
- margin-left: -100%; /* this is the bulk of the overlay trick */
7752
- }
7753
-
7754
- :host([effect="fade"]) .rotator__slide--active {
7755
- opacity: 1;
7756
- }
7757
-
7758
- /* flip effect */
7759
- :host([effect="flip"]) .rotator {
7760
- display: flex;
7761
- position: relative;
7762
-
7763
- perspective: 500;
7764
- }
7765
-
7766
- :host([effect="flip"]) .rotator__slide {
7767
- display: block;
7768
- width: auto;
7769
- position: absolute;
7770
- top: -20px;
7771
- left: 0;
7772
-
7773
- opacity: 0;
7774
-
7775
- transform: rotateX(90deg);
7776
- transform-origin: 0% 0%;
7777
- transition: all var(--kemet-rotator-transition-speed, 500ms) ease;
7778
- }
7779
-
7780
- :host([effect="flip"]) .rotator__slide--active {
7781
- top: 0;
7782
- opacity: 1;
7783
-
7784
- transform: rotateX(0deg);
7785
- }
7786
-
7787
- :host([effect="flip"]) .rotator__slide--prev {
7788
- top: 40px;;
7789
- transform: rotateX(-90deg);
7790
- }
7791
- `;
7792
-
7793
- /**
7794
- * @since 1.0.0
7795
- * @status stable
7796
- *
7797
- * @tagname kemet-rotator
7798
- * @summary A component that rotates through an array of text.
7799
- *
7800
- * @prop {number} activeSlide - The index number for the current slide.
7801
- * @prop {string} width - The width of the rotator block.
7802
- * @prop {string} height - The height of the rotator block.
7803
- * @prop {array} messages - Text in the rotator. Supports HTML.
7804
- * @prop {string} effect - The transition effect type.
7805
- * @prop {number} rotationSpeed - How fast, in seconds, each slide lasts. Stop the rotator with 0.
7806
- *
7807
- * @cssproperty --kemet-rotator-transition-speed - How long, in css time units, the transition effect lasts. Default: 500ms.
7808
- *
7809
- */
7810
- let KemetRotator = class KemetRotator extends s$1 {
7811
- constructor() {
7812
- super(...arguments);
7813
- this.activeSlide = 0;
7814
- this.width = 'auto';
7815
- this.height = 'auto';
7816
- this.messages = [];
7049
+ *
7050
+ */
7051
+ let KemetPopper = class KemetPopper extends s$1 {
7052
+ constructor() {
7053
+ super();
7054
+ this.placement = 'top';
7817
7055
  this.effect = 'fade';
7818
- this.rotationSpeed = 3;
7056
+ this.fireOn = 'hover';
7057
+ this.strategy = 'fixed';
7058
+ this.skidding = 0;
7059
+ this.distance = 0;
7060
+ this.addEventListener('kemet-popper-close-btn', () => this.opened = false);
7819
7061
  }
7820
7062
  firstUpdated() {
7821
- // standard properties
7822
- this.prevSlide = null;
7823
- window.addEventListener('resize', this.setDimensions.bind(this));
7063
+ if (this.fireOn === 'click') {
7064
+ this.focusableElements.forEach((element) => {
7065
+ element.addEventListener('keydown', event => this.handleFocusableDown(event));
7066
+ });
7067
+ }
7824
7068
  }
7825
- updated(changed) {
7826
- const widthHasChanged = !!changed.get('width');
7827
- const heightHasChanged = !!changed.get('height');
7828
- this.setDimensions();
7829
- // only trigger slide updates when width and height has not changed
7830
- if (!widthHasChanged && !heightHasChanged) {
7831
- setTimeout(() => {
7832
- if (this.rotationSpeed > 0) {
7833
- this.nextSlide();
7834
- }
7835
- }, this.rotationSpeed * 1000);
7069
+ updated(prevProps) {
7070
+ this.refresh();
7071
+ if (!prevProps.get('opened') && this.opened === true) {
7072
+ emitEvent(this, 'kemet-popper-opened', this);
7073
+ }
7074
+ if (prevProps.get('opened') && this.opened === false) {
7075
+ emitEvent(this, 'kemet-popper-closed', this);
7836
7076
  }
7837
7077
  }
7838
7078
  render() {
7839
- const setWidth = this.effect === 'flip' ? `width:${this.width};` : '';
7840
- const setHeight = this.effect === 'flip' ? `height:${this.height};` : '';
7841
7079
  return x `
7842
- <span class="rotator" style="${setWidth} ${setHeight}">
7843
- ${this.makeMessages()}
7844
- </span>
7080
+ <div
7081
+ id="trigger"
7082
+ part="trigger"
7083
+ tabIndex="0"
7084
+ @click=${this.fireOn === 'click' ? event => this.toggle(event) : null}
7085
+ @keyup=${this.fireOn === 'click' ? event => this.handleKeyUp(event) : null}
7086
+ @mouseover=${this.fireOn !== 'click' ? () => this.opened = true : null}
7087
+ @focus=${this.fireOn !== 'click' ? () => this.opened = true : null}
7088
+ @mouseout=${this.fireOn !== 'click' ? () => this.opened = false : null}
7089
+ @blur=${this.fireOn !== 'click' ? () => this.opened = false : null}
7090
+ >
7091
+ <slot name="trigger"></slot>
7092
+ </div>
7093
+ <div
7094
+ id="content"
7095
+ @mouseover=${this.fireOn !== 'click' ? () => this.opened = true : null}
7096
+ @mouseout=${this.fireOn !== 'click' ? () => this.opened = false : null}
7097
+ >
7098
+ <slot name="content" @slotchange=${() => this.makePopper()}></slot>
7099
+ </div>
7845
7100
  `;
7846
7101
  }
7847
- makeMessages() {
7848
- const messages = this.messages.map((message, index) => {
7849
- const setActiveClass = this.activeSlide === index ? 'rotator__slide--active' : '';
7850
- const setPrevClass = this.prevSlide === index ? 'rotator__slide--prev' : '';
7851
- return x `
7852
- <span class="rotator__slide ${setActiveClass} ${setPrevClass}">
7853
- ${o(message)}
7854
- </span>
7855
- `;
7102
+ refresh() {
7103
+ var _a;
7104
+ (_a = this.popperInstance) === null || _a === void 0 ? void 0 : _a.setOptions({
7105
+ placement: this.placement,
7106
+ strategy: this.strategy,
7107
+ modifiers: [
7108
+ { name: 'offset', options: { offset: [this.skidding, this.distance] } }
7109
+ ],
7856
7110
  });
7857
- return messages;
7858
7111
  }
7859
- setDimensions() {
7860
- if (this.effect === 'flip') {
7861
- this.width = `${this.offsetWidth}px`;
7862
- const slides = this.shadowRoot.querySelectorAll('.rotator__slide');
7863
- let tallest = 0;
7864
- slides.forEach((slide) => {
7865
- if (slide.offsetHeight > tallest) {
7866
- tallest = slide.offsetHeight;
7867
- }
7868
- });
7869
- this.height = `${tallest}px`;
7112
+ makePopper() {
7113
+ this.popperInstance = createPopper(this.triggerElement, this.contentElement, {
7114
+ placement: this.placement,
7115
+ strategy: this.strategy,
7116
+ modifiers: [
7117
+ { name: 'offset', options: { offset: [this.skidding, this.distance] } }
7118
+ ],
7119
+ });
7120
+ }
7121
+ toggle(event) {
7122
+ const isSlotTrigger = event.target.getAttribute('slot') === 'trigger';
7123
+ const isPartTrigger = event.target.getAttribute('part') === 'trigger';
7124
+ if (isSlotTrigger || isPartTrigger) {
7125
+ if (this.opened) {
7126
+ this.opened = false;
7127
+ }
7128
+ else {
7129
+ this.opened = true;
7130
+ }
7870
7131
  }
7871
7132
  }
7872
- nextSlide() {
7873
- if (this.activeSlide < this.messages.length - 1) {
7874
- this.activeSlide += 1;
7875
- this.prevSlide = this.activeSlide - 1;
7133
+ handleKeyUp(event) {
7134
+ event.preventDefault();
7135
+ if (event.keyCode === keyCodes.ESC) {
7136
+ this.opened = false;
7876
7137
  }
7877
- else {
7878
- this.activeSlide = 0;
7879
- this.prevSlide = this.messages.length - 1;
7138
+ if (event.keyCode === keyCodes.ENTER || event.keyCode === keyCodes.SPACE) {
7139
+ this.toggle(event);
7140
+ }
7141
+ }
7142
+ handleFocusableDown(event) {
7143
+ const firstFocusable = this.focusableElements[0];
7144
+ const lastFocusable = this.focusableElements[this.focusableElements.length - 1];
7145
+ if (event.key === 'Tab') {
7146
+ if (event.shiftKey && document.activeElement === firstFocusable) {
7147
+ event.preventDefault();
7148
+ lastFocusable.focus();
7149
+ }
7150
+ else if (!event.shiftKey && document.activeElement === lastFocusable) {
7151
+ event.preventDefault();
7152
+ firstFocusable.focus();
7153
+ }
7880
7154
  }
7881
7155
  }
7882
7156
  };
7883
- KemetRotator.styles = [stylesRotator];
7884
- __decorate([
7885
- e$4({ type: Number })
7886
- ], KemetRotator.prototype, "activeSlide", void 0);
7887
- __decorate([
7888
- e$4({ type: String })
7889
- ], KemetRotator.prototype, "width", void 0);
7157
+ KemetPopper.styles = [stylesPopper, stylesPopperFade, stylesPopperScale, stylesPopperSlide, stylesPopperFall, stylesPopperFlipHorizontal, stylesPopperFlipVertical, stylesPopperSign, stylesPopperSuperScaled];
7890
7158
  __decorate([
7891
- e$4({ type: String })
7892
- ], KemetRotator.prototype, "height", void 0);
7159
+ e$4({ type: String, reflect: true })
7160
+ ], KemetPopper.prototype, "placement", void 0);
7893
7161
  __decorate([
7894
- e$4({ type: Array })
7895
- ], KemetRotator.prototype, "messages", void 0);
7162
+ e$4({ type: Boolean, reflect: true })
7163
+ ], KemetPopper.prototype, "opened", void 0);
7896
7164
  __decorate([
7897
7165
  e$4({ type: String, reflect: true })
7898
- ], KemetRotator.prototype, "effect", void 0);
7166
+ ], KemetPopper.prototype, "effect", void 0);
7899
7167
  __decorate([
7900
- e$4({ type: Number, attribute: 'rotation-speed' })
7901
- ], KemetRotator.prototype, "rotationSpeed", void 0);
7168
+ e$4({ type: String, attribute: 'fire-on' })
7169
+ ], KemetPopper.prototype, "fireOn", void 0);
7902
7170
  __decorate([
7903
- t$1()
7904
- ], KemetRotator.prototype, "prevSlide", void 0);
7905
- KemetRotator = __decorate([
7906
- e$5('kemet-rotator')
7907
- ], KemetRotator);
7908
-
7909
- /**
7910
- * @since 1.0.0
7911
- * @status stable
7912
- *
7913
- * @tagname kemet-scroll-link
7914
- * @summary A component that adds a smooth scrolling link to an target..
7915
- *
7916
- * @prop {object} element - A DOM element that establishes the context of scrolling.
7917
- * @prop {object} target - A DOM element that represents the destination of the scroll link. If no target is specified it will default to the top of the page.
7918
- * @prop {number} xOffset - Allows the horizontal scrolling to stop short of the given value.
7919
- * @prop {number} yOffset - Allows the vertical scrolling to stop short of the given value.
7920
- *
7921
- */
7922
- let KemetScrollLink = class KemetScrollLink extends s$1 {
7923
- constructor() {
7924
- super(...arguments);
7925
- this.element = window;
7926
- this.target = document.querySelector('body');
7927
- this.xOffset = 0;
7928
- this.yOffset = 0;
7929
- }
7930
- firstUpdated() {
7931
- // standard properties
7932
- this.isSmoothSupported = 'scrollBehavior' in document.documentElement.style;
7933
- }
7934
- render() {
7935
- return x `
7936
- <div tabindex="0" @click=${() => this.handleScroll()} @keyup=${event => this.handleKeyup(event)}>
7937
- <slot></slot>
7938
- </div>
7939
- `;
7940
- }
7941
- handleKeyup(event) {
7942
- if (event.keyCode === keyCodes.ENTER || event.keyCode === keyCodes.SPACE) {
7943
- this.handleScroll();
7944
- }
7945
- }
7946
- handleScroll() {
7947
- const scrollTop = this.target.offsetTop + this.yOffset;
7948
- const scrollLeft = this.target.offsetLeft + this.xOffset;
7949
- if (this.isSmoothSupported) {
7950
- this.element.scrollTo({
7951
- top: scrollTop,
7952
- left: scrollLeft,
7953
- behavior: 'smooth',
7954
- });
7955
- }
7956
- else {
7957
- this.element.scrollTo(scrollLeft, scrollTop);
7958
- }
7959
- }
7960
- };
7961
- KemetScrollLink.styles = [i$4 `
7962
- :host {
7963
- cursor: pointer;
7964
- display: inline-block;
7965
- }
7966
- `];
7171
+ e$4({ type: String })
7172
+ ], KemetPopper.prototype, "strategy", void 0);
7967
7173
  __decorate([
7968
- e$4({ type: Object })
7969
- ], KemetScrollLink.prototype, "element", void 0);
7174
+ e$4({ type: Number })
7175
+ ], KemetPopper.prototype, "skidding", void 0);
7970
7176
  __decorate([
7971
- e$4({ type: Object })
7972
- ], KemetScrollLink.prototype, "target", void 0);
7177
+ e$4({ type: Number })
7178
+ ], KemetPopper.prototype, "distance", void 0);
7973
7179
  __decorate([
7974
- e$4({ type: Number, attribute: 'x-offset', reflect: true })
7975
- ], KemetScrollLink.prototype, "xOffset", void 0);
7180
+ t$1()
7181
+ ], KemetPopper.prototype, "popperInstance", void 0);
7976
7182
  __decorate([
7977
- e$4({ type: Number, attribute: 'y-offset', reflect: true })
7978
- ], KemetScrollLink.prototype, "yOffset", void 0);
7183
+ i$1('#trigger')
7184
+ ], KemetPopper.prototype, "triggerElement", void 0);
7979
7185
  __decorate([
7980
- t$1()
7981
- ], KemetScrollLink.prototype, "isSmoothSupported", void 0);
7982
- KemetScrollLink = __decorate([
7983
- e$5('kemet-scroll-link')
7984
- ], KemetScrollLink);
7186
+ i$1('#content')
7187
+ ], KemetPopper.prototype, "contentElement", void 0);
7188
+ __decorate([
7189
+ e$3('body, a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable], kemet-popper-close')
7190
+ ], KemetPopper.prototype, "focusableElements", void 0);
7191
+ KemetPopper = __decorate([
7192
+ e$5('kemet-popper')
7193
+ ], KemetPopper);
7194
+ var KemetPopper$1 = KemetPopper;
7985
7195
 
7986
7196
  const stylesRadio = i$4 `
7987
7197
  *,
@@ -8288,58 +7498,328 @@ let KemetRadios = class KemetRadios extends s$1 {
8288
7498
  this.radios[index].tabIndex = 0;
8289
7499
  }
8290
7500
  }
8291
- handleSlotChange() {
8292
- const radios = Array.from(this.radios);
8293
- const checkedRadio = radios.find((radio) => radio.checked);
8294
- this.radios.forEach((radio) => {
8295
- radio.tabIndex = -1;
8296
- radio.input.tabIndex = -1;
8297
- });
8298
- if (checkedRadio) {
8299
- checkedRadio.tabIndex = 0;
8300
- }
7501
+ handleSlotChange() {
7502
+ const radios = Array.from(this.radios);
7503
+ const checkedRadio = radios.find((radio) => radio.checked);
7504
+ this.radios.forEach((radio) => {
7505
+ radio.tabIndex = -1;
7506
+ radio.input.tabIndex = -1;
7507
+ });
7508
+ if (checkedRadio) {
7509
+ checkedRadio.tabIndex = 0;
7510
+ }
7511
+ }
7512
+ makeMessage() {
7513
+ if (this.status === 'error' || this.status === 'warning') {
7514
+ return x `<span part="message">${this.message}</span>`;
7515
+ }
7516
+ return null;
7517
+ }
7518
+ checkValidity() {
7519
+ if (this.required) {
7520
+ return !!this.value;
7521
+ }
7522
+ return true;
7523
+ }
7524
+ };
7525
+ KemetRadios.styles = [stylesRadios];
7526
+ __decorate([
7527
+ e$4({ type: String })
7528
+ ], KemetRadios.prototype, "legend", void 0);
7529
+ __decorate([
7530
+ e$4({ type: String, reflect: true })
7531
+ ], KemetRadios.prototype, "axis", void 0);
7532
+ __decorate([
7533
+ e$4({ type: String })
7534
+ ], KemetRadios.prototype, "value", void 0);
7535
+ __decorate([
7536
+ e$4({ type: String })
7537
+ ], KemetRadios.prototype, "name", void 0);
7538
+ __decorate([
7539
+ e$4({ type: String, reflect: true })
7540
+ ], KemetRadios.prototype, "status", void 0);
7541
+ __decorate([
7542
+ e$4({ type: String })
7543
+ ], KemetRadios.prototype, "message", void 0);
7544
+ __decorate([
7545
+ e$4({ type: String })
7546
+ ], KemetRadios.prototype, "required", void 0);
7547
+ __decorate([
7548
+ t$1()
7549
+ ], KemetRadios.prototype, "radios", void 0);
7550
+ KemetRadios = __decorate([
7551
+ e$5('kemet-radios')
7552
+ ], KemetRadios);
7553
+
7554
+ /**
7555
+ * @license
7556
+ * Copyright 2017 Google LLC
7557
+ * SPDX-License-Identifier: BSD-3-Clause
7558
+ */class e extends i{constructor(i){if(super(i),this.et=A,i.type!==t.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(r){if(r===A||null==r)return this.ft=void 0,this.et=r;if(r===T)return r;if("string"!=typeof r)throw Error(this.constructor.directiveName+"() called with a non-string value");if(r===this.et)return this.ft;this.et=r;const s=[r];return s.raw=s,this.ft={_$litType$:this.constructor.resultType,strings:s,values:[]}}}e.directiveName="unsafeHTML",e.resultType=1;const o=e$2(e);
7559
+
7560
+ const stylesRotator = i$4 `
7561
+ :host {
7562
+ display: flex;
7563
+ }
7564
+
7565
+ .rotator__slide {
7566
+ pointer-events: none;
7567
+ }
7568
+
7569
+ .rotator__slide--active {
7570
+ pointer-events: auto;
7571
+ }
7572
+
7573
+ /* fade effect */
7574
+ :host([effect="fade"]) .rotator {
7575
+ display: inline-flex;
7576
+ flex-wrap: nowrap;
7577
+ flex-direction: row;
7578
+ }
7579
+
7580
+ :host([effect="fade"]) .rotator__slide {
7581
+ width: 100%;
7582
+ flex: none;
7583
+ opacity: 0;
7584
+ box-sizing: border-box;
7585
+ transition: all var(--kemet-rotator-transition-speed, 500ms) ease;
7586
+ }
7587
+
7588
+ :host([effect="fade"]) .rotator__slide:not(:first-child) {
7589
+ margin-left: -100%; /* this is the bulk of the overlay trick */
7590
+ }
7591
+
7592
+ :host([effect="fade"]) .rotator__slide--active {
7593
+ opacity: 1;
7594
+ }
7595
+
7596
+ /* flip effect */
7597
+ :host([effect="flip"]) .rotator {
7598
+ display: flex;
7599
+ position: relative;
7600
+
7601
+ perspective: 500;
7602
+ }
7603
+
7604
+ :host([effect="flip"]) .rotator__slide {
7605
+ display: block;
7606
+ width: auto;
7607
+ position: absolute;
7608
+ top: -20px;
7609
+ left: 0;
7610
+
7611
+ opacity: 0;
7612
+
7613
+ transform: rotateX(90deg);
7614
+ transform-origin: 0% 0%;
7615
+ transition: all var(--kemet-rotator-transition-speed, 500ms) ease;
7616
+ }
7617
+
7618
+ :host([effect="flip"]) .rotator__slide--active {
7619
+ top: 0;
7620
+ opacity: 1;
7621
+
7622
+ transform: rotateX(0deg);
7623
+ }
7624
+
7625
+ :host([effect="flip"]) .rotator__slide--prev {
7626
+ top: 40px;;
7627
+ transform: rotateX(-90deg);
7628
+ }
7629
+ `;
7630
+
7631
+ /**
7632
+ * @since 1.0.0
7633
+ * @status stable
7634
+ *
7635
+ * @tagname kemet-rotator
7636
+ * @summary A component that rotates through an array of text.
7637
+ *
7638
+ * @prop {number} activeSlide - The index number for the current slide.
7639
+ * @prop {string} width - The width of the rotator block.
7640
+ * @prop {string} height - The height of the rotator block.
7641
+ * @prop {array} messages - Text in the rotator. Supports HTML.
7642
+ * @prop {string} effect - The transition effect type.
7643
+ * @prop {number} rotationSpeed - How fast, in seconds, each slide lasts. Stop the rotator with 0.
7644
+ *
7645
+ * @cssproperty --kemet-rotator-transition-speed - How long, in css time units, the transition effect lasts. Default: 500ms.
7646
+ *
7647
+ */
7648
+ let KemetRotator = class KemetRotator extends s$1 {
7649
+ constructor() {
7650
+ super(...arguments);
7651
+ this.activeSlide = 0;
7652
+ this.width = 'auto';
7653
+ this.height = 'auto';
7654
+ this.messages = [];
7655
+ this.effect = 'fade';
7656
+ this.rotationSpeed = 3;
7657
+ }
7658
+ firstUpdated() {
7659
+ // standard properties
7660
+ this.prevSlide = null;
7661
+ window.addEventListener('resize', this.setDimensions.bind(this));
7662
+ }
7663
+ updated(changed) {
7664
+ const widthHasChanged = !!changed.get('width');
7665
+ const heightHasChanged = !!changed.get('height');
7666
+ this.setDimensions();
7667
+ // only trigger slide updates when width and height has not changed
7668
+ if (!widthHasChanged && !heightHasChanged) {
7669
+ setTimeout(() => {
7670
+ if (this.rotationSpeed > 0) {
7671
+ this.nextSlide();
7672
+ }
7673
+ }, this.rotationSpeed * 1000);
7674
+ }
7675
+ }
7676
+ render() {
7677
+ const setWidth = this.effect === 'flip' ? `width:${this.width};` : '';
7678
+ const setHeight = this.effect === 'flip' ? `height:${this.height};` : '';
7679
+ return x `
7680
+ <span class="rotator" style="${setWidth} ${setHeight}">
7681
+ ${this.makeMessages()}
7682
+ </span>
7683
+ `;
7684
+ }
7685
+ makeMessages() {
7686
+ const messages = this.messages.map((message, index) => {
7687
+ const setActiveClass = this.activeSlide === index ? 'rotator__slide--active' : '';
7688
+ const setPrevClass = this.prevSlide === index ? 'rotator__slide--prev' : '';
7689
+ return x `
7690
+ <span class="rotator__slide ${setActiveClass} ${setPrevClass}">
7691
+ ${o(message)}
7692
+ </span>
7693
+ `;
7694
+ });
7695
+ return messages;
7696
+ }
7697
+ setDimensions() {
7698
+ if (this.effect === 'flip') {
7699
+ this.width = `${this.offsetWidth}px`;
7700
+ const slides = this.shadowRoot.querySelectorAll('.rotator__slide');
7701
+ let tallest = 0;
7702
+ slides.forEach((slide) => {
7703
+ if (slide.offsetHeight > tallest) {
7704
+ tallest = slide.offsetHeight;
7705
+ }
7706
+ });
7707
+ this.height = `${tallest}px`;
7708
+ }
7709
+ }
7710
+ nextSlide() {
7711
+ if (this.activeSlide < this.messages.length - 1) {
7712
+ this.activeSlide += 1;
7713
+ this.prevSlide = this.activeSlide - 1;
7714
+ }
7715
+ else {
7716
+ this.activeSlide = 0;
7717
+ this.prevSlide = this.messages.length - 1;
7718
+ }
7719
+ }
7720
+ };
7721
+ KemetRotator.styles = [stylesRotator];
7722
+ __decorate([
7723
+ e$4({ type: Number })
7724
+ ], KemetRotator.prototype, "activeSlide", void 0);
7725
+ __decorate([
7726
+ e$4({ type: String })
7727
+ ], KemetRotator.prototype, "width", void 0);
7728
+ __decorate([
7729
+ e$4({ type: String })
7730
+ ], KemetRotator.prototype, "height", void 0);
7731
+ __decorate([
7732
+ e$4({ type: Array })
7733
+ ], KemetRotator.prototype, "messages", void 0);
7734
+ __decorate([
7735
+ e$4({ type: String, reflect: true })
7736
+ ], KemetRotator.prototype, "effect", void 0);
7737
+ __decorate([
7738
+ e$4({ type: Number, attribute: 'rotation-speed' })
7739
+ ], KemetRotator.prototype, "rotationSpeed", void 0);
7740
+ __decorate([
7741
+ t$1()
7742
+ ], KemetRotator.prototype, "prevSlide", void 0);
7743
+ KemetRotator = __decorate([
7744
+ e$5('kemet-rotator')
7745
+ ], KemetRotator);
7746
+
7747
+ /**
7748
+ * @since 1.0.0
7749
+ * @status stable
7750
+ *
7751
+ * @tagname kemet-scroll-link
7752
+ * @summary A component that adds a smooth scrolling link to an target..
7753
+ *
7754
+ * @prop {object} element - A DOM element that establishes the context of scrolling.
7755
+ * @prop {object} target - A DOM element that represents the destination of the scroll link. If no target is specified it will default to the top of the page.
7756
+ * @prop {number} xOffset - Allows the horizontal scrolling to stop short of the given value.
7757
+ * @prop {number} yOffset - Allows the vertical scrolling to stop short of the given value.
7758
+ *
7759
+ */
7760
+ let KemetScrollLink = class KemetScrollLink extends s$1 {
7761
+ constructor() {
7762
+ super(...arguments);
7763
+ this.element = window;
7764
+ this.target = document.querySelector('body');
7765
+ this.xOffset = 0;
7766
+ this.yOffset = 0;
7767
+ }
7768
+ firstUpdated() {
7769
+ // standard properties
7770
+ this.isSmoothSupported = 'scrollBehavior' in document.documentElement.style;
8301
7771
  }
8302
- makeMessage() {
8303
- if (this.status === 'error' || this.status === 'warning') {
8304
- return x `<span part="message">${this.message}</span>`;
7772
+ render() {
7773
+ return x `
7774
+ <div tabindex="0" @click=${() => this.handleScroll()} @keyup=${event => this.handleKeyup(event)}>
7775
+ <slot></slot>
7776
+ </div>
7777
+ `;
7778
+ }
7779
+ handleKeyup(event) {
7780
+ if (event.keyCode === keyCodes.ENTER || event.keyCode === keyCodes.SPACE) {
7781
+ this.handleScroll();
8305
7782
  }
8306
- return null;
8307
7783
  }
8308
- checkValidity() {
8309
- if (this.required) {
8310
- return !!this.value;
7784
+ handleScroll() {
7785
+ const scrollTop = this.target.offsetTop + this.yOffset;
7786
+ const scrollLeft = this.target.offsetLeft + this.xOffset;
7787
+ if (this.isSmoothSupported) {
7788
+ this.element.scrollTo({
7789
+ top: scrollTop,
7790
+ left: scrollLeft,
7791
+ behavior: 'smooth',
7792
+ });
7793
+ }
7794
+ else {
7795
+ this.element.scrollTo(scrollLeft, scrollTop);
8311
7796
  }
8312
- return true;
8313
7797
  }
8314
7798
  };
8315
- KemetRadios.styles = [stylesRadios];
8316
- __decorate([
8317
- e$4({ type: String })
8318
- ], KemetRadios.prototype, "legend", void 0);
8319
- __decorate([
8320
- e$4({ type: String, reflect: true })
8321
- ], KemetRadios.prototype, "axis", void 0);
8322
- __decorate([
8323
- e$4({ type: String })
8324
- ], KemetRadios.prototype, "value", void 0);
7799
+ KemetScrollLink.styles = [i$4 `
7800
+ :host {
7801
+ cursor: pointer;
7802
+ display: inline-block;
7803
+ }
7804
+ `];
8325
7805
  __decorate([
8326
- e$4({ type: String })
8327
- ], KemetRadios.prototype, "name", void 0);
7806
+ e$4({ type: Object })
7807
+ ], KemetScrollLink.prototype, "element", void 0);
8328
7808
  __decorate([
8329
- e$4({ type: String, reflect: true })
8330
- ], KemetRadios.prototype, "status", void 0);
7809
+ e$4({ type: Object })
7810
+ ], KemetScrollLink.prototype, "target", void 0);
8331
7811
  __decorate([
8332
- e$4({ type: String })
8333
- ], KemetRadios.prototype, "message", void 0);
7812
+ e$4({ type: Number, attribute: 'x-offset', reflect: true })
7813
+ ], KemetScrollLink.prototype, "xOffset", void 0);
8334
7814
  __decorate([
8335
- e$4({ type: String })
8336
- ], KemetRadios.prototype, "required", void 0);
7815
+ e$4({ type: Number, attribute: 'y-offset', reflect: true })
7816
+ ], KemetScrollLink.prototype, "yOffset", void 0);
8337
7817
  __decorate([
8338
7818
  t$1()
8339
- ], KemetRadios.prototype, "radios", void 0);
8340
- KemetRadios = __decorate([
8341
- e$5('kemet-radios')
8342
- ], KemetRadios);
7819
+ ], KemetScrollLink.prototype, "isSmoothSupported", void 0);
7820
+ KemetScrollLink = __decorate([
7821
+ e$5('kemet-scroll-link')
7822
+ ], KemetScrollLink);
8343
7823
 
8344
7824
  const stylesScrollNav = i$4 `
8345
7825
  :host {
@@ -8354,6 +7834,7 @@ const stylesScrollNav = i$4 `
8354
7834
  :host([effect="resize"]) {
8355
7835
  position: fixed;
8356
7836
  top: 0;
7837
+ left: 0;
8357
7838
  width: 100%;
8358
7839
  }
8359
7840
 
@@ -9650,6 +9131,20 @@ const stylesKemetTabPanel = i$4 `
9650
9131
  :host(.vertical[selected]) {
9651
9132
  display: block;
9652
9133
  }
9134
+
9135
+ :host(.stacked) {
9136
+ position: absolute;
9137
+ z-index: -1;
9138
+ opacity: 0;
9139
+ visibility: hidden;
9140
+ }
9141
+
9142
+ :host(.stacked[selected]) {
9143
+ position: relative;
9144
+ z-index: 1;
9145
+ opacity: 1;
9146
+ visibility: visible;
9147
+ }
9653
9148
  `;
9654
9149
 
9655
9150
  /**
@@ -9790,8 +9285,6 @@ KemetTab = __decorate([
9790
9285
  * @prop {object} ink - An object that contains information about the ink
9791
9286
  * @prop {boolean} hideInk - Determines whether or not to hide the ink
9792
9287
  * @prop {boolean} overflow - Is true when the space of the tabs is larger than it's container
9793
- * @prop {number} measureHeight - If set to anything greater than 1, will measure the height of the panels and dynamically change the height of the tabs given the size
9794
- * @prop {number} measureHeightOffset - Adds spacing to the calculated height from measureHeight
9795
9288
  *
9796
9289
  * @slot tab - Place the tabs here.
9797
9290
  * @slot panel - Place the panels here.
@@ -9822,8 +9315,6 @@ let KemetTabs = class KemetTabs extends s$1 {
9822
9315
  this.placement = 'top';
9823
9316
  this.tabsAlign = 'center';
9824
9317
  this.hideInk = false;
9825
- this.measureHeight = 1;
9826
- this.measureHeightOffset = 48;
9827
9318
  this.addEventListener('kemet-tab-selected', this.tabSelectedChange.bind(this));
9828
9319
  this.addEventListener('kemet-tab-close', this.handleTabClose.bind(this));
9829
9320
  window.addEventListener('resize', this.handleResize.bind(this));
@@ -9835,7 +9326,6 @@ let KemetTabs = class KemetTabs extends s$1 {
9835
9326
  this.xDown = null;
9836
9327
  this.yDown = null;
9837
9328
  this.links = this.shadowRoot.getElementById('links');
9838
- setTimeout(() => this.measure(), this.measureHeight);
9839
9329
  }
9840
9330
  render() {
9841
9331
  return x `
@@ -9858,6 +9348,7 @@ let KemetTabs = class KemetTabs extends s$1 {
9858
9348
  }
9859
9349
  updated() {
9860
9350
  this.determineFade();
9351
+ this.determineStacked();
9861
9352
  }
9862
9353
  handleLinksSlotChange() {
9863
9354
  const tabs = this.querySelectorAll('kemet-tab');
@@ -10072,22 +9563,6 @@ let KemetTabs = class KemetTabs extends s$1 {
10072
9563
  this.selectTab();
10073
9564
  this.selectPanel();
10074
9565
  this.dispatchTabChange();
10075
- setTimeout(() => this.measure());
10076
- }
10077
- measure() {
10078
- if (this.measureHeight > 1) {
10079
- const currentPanel = this.selected ? this.querySelector(`kemet-tab-panel[selected]`) : this.panels[this.selectedIndex];
10080
- const clone = currentPanel.cloneNode(true);
10081
- clone.style.display = 'block';
10082
- clone.style.visibility = 'hidden';
10083
- clone.style.pointerEvents = 'none';
10084
- document.body.appendChild(clone);
10085
- setTimeout(() => {
10086
- const panelHeight = clone.offsetHeight;
10087
- this.panelsElement.style.maxHeight = `${panelHeight + this.measureHeightOffset}px`;
10088
- document.body.removeChild(clone);
10089
- }, 1);
10090
- }
10091
9566
  }
10092
9567
  determineFade() {
10093
9568
  this.panels.forEach((panel) => {
@@ -10096,6 +9571,13 @@ let KemetTabs = class KemetTabs extends s$1 {
10096
9571
  panel.classList.add('fade');
10097
9572
  });
10098
9573
  }
9574
+ determineStacked() {
9575
+ this.panels.forEach((panel) => {
9576
+ // add fade class if panel effect is fade
9577
+ if (this.panelEffect === 'stacked')
9578
+ panel.classList.add('stacked');
9579
+ });
9580
+ }
10099
9581
  determineOverflow() {
10100
9582
  const tabsContainerWidth = this.offsetWidth;
10101
9583
  const tabElements = this.querySelectorAll('kemet-tab');
@@ -10276,12 +9758,6 @@ __decorate([
10276
9758
  __decorate([
10277
9759
  e$4({ type: Boolean, reflect: true })
10278
9760
  ], KemetTabs.prototype, "overflow", void 0);
10279
- __decorate([
10280
- e$4({ type: Number, attribute: 'measure-height' })
10281
- ], KemetTabs.prototype, "measureHeight", void 0);
10282
- __decorate([
10283
- e$4({ type: Number, attribute: 'measure-height-offset' })
10284
- ], KemetTabs.prototype, "measureHeightOffset", void 0);
10285
9761
  __decorate([
10286
9762
  t$1()
10287
9763
  ], KemetTabs.prototype, "tabs", void 0);
@@ -10813,55 +10289,175 @@ let KemetToggle = class KemetToggle extends s$1 {
10813
10289
  </label>
10814
10290
  `;
10815
10291
  }
10816
- handleChange() {
10817
- this.checked = !this.checked;
10818
- this.value = this.checked ? this.optionChecked : this.optionUnchecked;
10819
- emitEvent(this, 'kemet-toggle-change', true);
10820
- }
10821
- makeUncheckedOption() {
10822
- if (this.show) {
10823
- return x `<span class="option" part="unchecked">${this.optionUnchecked}</span>`;
10824
- }
10825
- return null;
10826
- }
10827
- makeCheckedOption() {
10828
- if (this.show) {
10829
- return x `<span class="option" part="checked">${this.optionChecked}</span>`;
10830
- }
10831
- return null;
10292
+ handleChange() {
10293
+ this.checked = !this.checked;
10294
+ this.value = this.checked ? this.optionChecked : this.optionUnchecked;
10295
+ emitEvent(this, 'kemet-toggle-change', true);
10296
+ }
10297
+ makeUncheckedOption() {
10298
+ if (this.show) {
10299
+ return x `<span class="option" part="unchecked">${this.optionUnchecked}</span>`;
10300
+ }
10301
+ return null;
10302
+ }
10303
+ makeCheckedOption() {
10304
+ if (this.show) {
10305
+ return x `<span class="option" part="checked">${this.optionChecked}</span>`;
10306
+ }
10307
+ return null;
10308
+ }
10309
+ };
10310
+ KemetToggle.styles = [stylesToggle];
10311
+ __decorate([
10312
+ e$4({ type: String })
10313
+ ], KemetToggle.prototype, "name", void 0);
10314
+ __decorate([
10315
+ e$4({ type: Boolean, reflect: true })
10316
+ ], KemetToggle.prototype, "checked", void 0);
10317
+ __decorate([
10318
+ e$4({ type: Boolean })
10319
+ ], KemetToggle.prototype, "disabled", void 0);
10320
+ __decorate([
10321
+ e$4({ type: String })
10322
+ ], KemetToggle.prototype, "label", void 0);
10323
+ __decorate([
10324
+ e$4({ type: Boolean })
10325
+ ], KemetToggle.prototype, "show", void 0);
10326
+ __decorate([
10327
+ e$4({ type: Boolean })
10328
+ ], KemetToggle.prototype, "squared", void 0);
10329
+ __decorate([
10330
+ e$4({ type: String, attribute: 'option-checked' })
10331
+ ], KemetToggle.prototype, "optionChecked", void 0);
10332
+ __decorate([
10333
+ e$4({ type: String, attribute: 'option-unchecked' })
10334
+ ], KemetToggle.prototype, "optionUnchecked", void 0);
10335
+ __decorate([
10336
+ t$1()
10337
+ ], KemetToggle.prototype, "value", void 0);
10338
+ KemetToggle = __decorate([
10339
+ e$5('kemet-toggle')
10340
+ ], KemetToggle);
10341
+
10342
+ const stylesTooltip = i$4 `
10343
+ :host {
10344
+ --kemet-tooltip-deg: -45deg;
10345
+ --kemet-tooltip-size: 22px;
10346
+ --kemet-tooltip-border-size: 1px;
10347
+ --kemet-tooltip-rounded-tip: 4px;
10348
+ --kemet-tooltip-background-color: var(--kemet-color-foreground);
10349
+ --kemet-tooltip-border-color: var(--kemet-color-background);
10350
+ --kemet-tooltip-placement-offset: calc(calc(var(--kemet-tooltip-size) / 2) * -1);
10351
+ }
10352
+
10353
+ #arrow {
10354
+ content: '';
10355
+ width: var(--kemet-tooltip-size);
10356
+ height: var(--kemet-tooltip-size);
10357
+ position: relative;
10358
+ display: inline-block;
10359
+ background: linear-gradient(
10360
+ var(--kemet-tooltip-deg),
10361
+ transparent calc(var(--kemet-tooltip-size) / 1.5),
10362
+ var(--kemet-tooltip-background-color) 0
10363
+ )
10364
+ no-repeat;
10365
+ background-repeat: no-repeat;
10366
+ transform-origin: center center;
10367
+ border-top-left-radius: var(--kemet-tooltip-rounded-tip);
10368
+ border-left: var(--kemet-tooltip-border-size) solid var(--kemet-tooltip-border-color);
10369
+ border-top: var(--kemet-tooltip-border-size) solid var(--kemet-tooltip-border-color);
10370
+ }
10371
+
10372
+ [data-popper-placement^="top"] #arrow {
10373
+ top: var(--kemet-tooltip-placement-offset);
10374
+ transform: rotate(225deg);
10375
+
10376
+ }
10377
+
10378
+ [data-popper-placement^="bottom"] #arrow-container {
10379
+ top: 0px;
10380
+ }
10381
+
10382
+ [data-popper-placement^="bottom"] #arrow {
10383
+ top: var(--kemet-tooltip-placement-offset);
10384
+ transform: rotate(45deg);
10385
+ }
10386
+
10387
+ [data-popper-placement^="right"] #arrow {
10388
+ left: var(--kemet-tooltip-placement-offset);
10389
+ transform: rotate(-45deg);
10390
+ }
10391
+
10392
+ [data-popper-placement^="left"] #arrow-container {
10393
+ right: 0;
10394
+ }
10395
+
10396
+ [data-popper-placement^="left"] #arrow {
10397
+ right: var(--kemet-tooltip-placement-offset);
10398
+ transform: rotate(135deg);
10399
+ }
10400
+ `;
10401
+
10402
+ /**
10403
+ * @since 2.0.0
10404
+ * @status stable
10405
+ *
10406
+ * @tagname kemet-tooltip
10407
+ * @summary A tooltip is a Popper component that displays an dynamic arrow pointing to the trigger.
10408
+ *
10409
+ * @slot trigger - Controls opening and closing the tooltip.
10410
+ * @slot content - The contents of the tooltip.
10411
+ *
10412
+ * @csspart trigger - Contains the trigger for the tooltip.
10413
+ * @csspart content - Contains the content for the tooltip.
10414
+ *
10415
+ * @cssproperty --kemet-tooltip-content-height - The height of the content.
10416
+ * @cssproperty --kemet-tooltip-size - The width and height of arrow's container
10417
+ * @cssproperty --kemet-tooltip-border-size - The border size of the arrow
10418
+ * @cssproperty --kemet-tooltip-rounded-tip - How much rounding the tip of the arrow should be. Zero is pointy
10419
+ * @cssproperty --kemet-tooltip-background-color - The background color of the arrow
10420
+ * @cssproperty --kemet-tooltip-border-color - The border color of the the arrow
10421
+ * @cssproperty --kemet-tooltip-placement-offset - The offset of the arrow from the trigger
10422
+ *
10423
+ */
10424
+ let KemetTooltip = class KemetTooltip extends KemetPopper$1 {
10425
+ render() {
10426
+ return x `
10427
+ <div
10428
+ id="trigger"
10429
+ part="trigger"
10430
+ tabIndex="0"
10431
+ @click=${this.fireOn === 'click' ? event => this.toggle(event) : null}
10432
+ @keyup=${this.fireOn === 'click' ? event => this.handleKeyUp(event) : null}
10433
+ @mouseover=${this.fireOn !== 'click' ? () => this.opened = true : null}
10434
+ @focus=${this.fireOn !== 'click' ? () => this.opened = true : null}
10435
+ @mouseout=${this.fireOn !== 'click' ? () => this.opened = false : null}
10436
+ @blur=${this.fireOn !== 'click' ? () => this.opened = false : null}
10437
+ >
10438
+ <slot name="trigger"></slot>
10439
+ </div>
10440
+ <div
10441
+ id="content"
10442
+ @mouseover=${this.fireOn !== 'click' ? () => this.opened = true : null}
10443
+ @mouseout=${this.fireOn !== 'click' ? () => this.opened = false : null}
10444
+ >
10445
+ <slot name="content" @slotchange=${() => { this.makePopper(); this.measureContent(); }}></slot>
10446
+ <div id="arrow-container" part="arrow-container" data-popper-arrow>
10447
+ <div id="arrow" part="arrow"></div>
10448
+ </div>
10449
+ </div>
10450
+ `;
10451
+ }
10452
+ measureContent() {
10453
+ const height = this.contentElement.offsetHeight;
10454
+ this.contentElement.style.setProperty("--kemet-tooltip-content-height", `${height}px`);
10832
10455
  }
10833
10456
  };
10834
- KemetToggle.styles = [stylesToggle];
10835
- __decorate([
10836
- e$4({ type: String })
10837
- ], KemetToggle.prototype, "name", void 0);
10838
- __decorate([
10839
- e$4({ type: Boolean, reflect: true })
10840
- ], KemetToggle.prototype, "checked", void 0);
10841
- __decorate([
10842
- e$4({ type: Boolean })
10843
- ], KemetToggle.prototype, "disabled", void 0);
10844
- __decorate([
10845
- e$4({ type: String })
10846
- ], KemetToggle.prototype, "label", void 0);
10847
- __decorate([
10848
- e$4({ type: Boolean })
10849
- ], KemetToggle.prototype, "show", void 0);
10850
- __decorate([
10851
- e$4({ type: Boolean })
10852
- ], KemetToggle.prototype, "squared", void 0);
10853
- __decorate([
10854
- e$4({ type: String, attribute: 'option-checked' })
10855
- ], KemetToggle.prototype, "optionChecked", void 0);
10856
- __decorate([
10857
- e$4({ type: String, attribute: 'option-unchecked' })
10858
- ], KemetToggle.prototype, "optionUnchecked", void 0);
10859
- __decorate([
10860
- t$1()
10861
- ], KemetToggle.prototype, "value", void 0);
10862
- KemetToggle = __decorate([
10863
- e$5('kemet-toggle')
10864
- ], KemetToggle);
10457
+ KemetTooltip.styles = [stylesTooltip, stylesPopper, stylesPopperFade, stylesPopperScale, stylesPopperSlide, stylesPopperFall, stylesPopperFlipHorizontal, stylesPopperFlipVertical, stylesPopperSign, stylesPopperSuperScaled];
10458
+ KemetTooltip = __decorate([
10459
+ e$5('kemet-tooltip')
10460
+ ], KemetTooltip);
10865
10461
 
10866
10462
  const stylesStep = i$4 `
10867
10463
  :host {
@@ -11161,397 +10757,799 @@ KemetTracker = __decorate([
11161
10757
  e$5('kemet-tracker')
11162
10758
  ], KemetTracker);
11163
10759
 
11164
- const stylesTooltip = i$4 `
10760
+ const stylesUpload = i$4 `
11165
10761
  :host {
11166
- --kemet-tooltip-deg: -45deg;
11167
- --kemet-tooltip-size: 22px;
11168
- --kemet-tooltip-border-size: 1px;
11169
- --kemet-tooltip-rounded-tip: 4px;
11170
- --kemet-tooltip-background-color: var(--kemet-color-foreground);
11171
- --kemet-tooltip-border-color: var(--kemet-color-background);
11172
- --kemet-tooltip-placement-offset: calc(calc(var(--kemet-tooltip-size) / 2) * -1);
10762
+ color: var(--kemet-upload-color, var(--kemet-color-white));
10763
+ display: grid;
10764
+ grid-template-columns: 1fr 1fr;
10765
+ height: var(--kemet-upload-height, 364px);
10766
+ border: var(--kemet-upload-border, 1rem solid var(--kemet-color-gray1-to-transparent));
10767
+ background-color: var(--kemet-upload-background-color, var(--kemet-color-primary-to-transparent));
11173
10768
  }
11174
10769
 
11175
- #arrow {
11176
- content: '';
11177
- width: var(--kemet-tooltip-size);
11178
- height: var(--kemet-tooltip-size);
11179
- position: relative;
11180
- display: inline-block;
11181
- background: linear-gradient(
11182
- var(--kemet-tooltip-deg),
11183
- transparent calc(var(--kemet-tooltip-size) / 1.5),
11184
- var(--kemet-tooltip-background-color) 0
11185
- )
11186
- no-repeat;
11187
- background-repeat: no-repeat;
11188
- transform-origin: center center;
11189
- border-top-left-radius: var(--kemet-tooltip-rounded-tip);
11190
- border-left: var(--kemet-tooltip-border-size) solid var(--kemet-tooltip-border-color);
11191
- border-top: var(--kemet-tooltip-border-size) solid var(--kemet-tooltip-border-color);
10770
+ :host([mobile]) {
10771
+ display: block;
10772
+ height: auto;
11192
10773
  }
11193
10774
 
11194
- [data-popper-placement^="top"] #arrow {
11195
- top: var(--kemet-tooltip-placement-offset);
11196
- transform: rotate(225deg);
10775
+ input {
10776
+ display: none;
10777
+ }
11197
10778
 
10779
+ .button {
10780
+ cursor: pointer;
10781
+ font-size: 1rem;
10782
+ display: block;
10783
+ color: var(--kemet-color-white);
10784
+ padding: 0.5rem 1rem;
10785
+ border: 1px solid var(--kemet-color-white);
10786
+ background-color: transparent;
11198
10787
  }
11199
10788
 
11200
- [data-popper-placement^="bottom"] #arrow-container {
11201
- top: 0px;
10789
+ .upload {
10790
+ display: flex;
10791
+ align-items: center;
10792
+ justify-content: center;
10793
+ margin: var(--kemet-upload-margin);
10794
+ flex-direction: column;
10795
+ border: 2px dashed var(--kemet-color-white);
11202
10796
  }
11203
10797
 
11204
- [data-popper-placement^="bottom"] #arrow {
11205
- top: var(--kemet-tooltip-placement-offset);
11206
- transform: rotate(45deg);
10798
+ :host([over]) .upload {
10799
+ background-color: green;
11207
10800
  }
11208
10801
 
11209
- [data-popper-placement^="right"] #arrow {
11210
- left: var(--kemet-tooltip-placement-offset);
11211
- transform: rotate(-45deg);
10802
+ :host([mobile]) .upload {
10803
+ height: 280px;
11212
10804
  }
11213
10805
 
11214
- [data-popper-placement^="left"] #arrow-container {
11215
- right: 0;
10806
+ .files {
10807
+ display: flex;
10808
+ gap: 1rem;
10809
+ flex-direction: column;
10810
+ padding: 0 1rem;
10811
+ overflow: auto;
10812
+ background-color: var(--kemet-color-gray1-to-transparent);
11216
10813
  }
11217
10814
 
11218
- [data-popper-placement^="left"] #arrow {
11219
- right: var(--kemet-tooltip-placement-offset);
11220
- transform: rotate(135deg);
10815
+ :host([mobile]) .files {
10816
+ padding: 0;
10817
+ max-height: 280px;
10818
+ }
10819
+
10820
+ .heading {
10821
+ font-size: 1.25rem;
10822
+ margin: 0 0 2rem 0;
10823
+ }
10824
+
10825
+ :host([no-drag-drop]) .heading {
10826
+ display: none;
10827
+ }
10828
+ `;
10829
+ const stylesUploadFile = i$4 `
10830
+ :host {
10831
+ --kemet-upload-file-ripple-color: var(--kemet-color-primary);
10832
+
10833
+ color: var(--kemet-upload-file-color, var(--kemet-color-text));
10834
+ display: grid;
10835
+ gap: 1rem;
10836
+ grid-template-columns: auto 1fr auto;
10837
+ align-items: center;
10838
+ height: 100%;
10839
+ max-height: 50%;
10840
+ padding: var(--kemet-upload-file-padding, 0.5rem 1rem);
10841
+ border: var(--kemet-upload-file-border, 1px solid var(--kemet-color-primary));
10842
+ }
10843
+
10844
+ :host([status='error']) {
10845
+ border: 1px solid var(--kemet-color-error);
10846
+ }
10847
+
10848
+ :host([status='complete']) {
10849
+ border: 1px solid var(--kemet-color-success);
10850
+ }
10851
+
10852
+ h3 {
10853
+ margin: 0;
10854
+ }
10855
+
10856
+ .percentage {
10857
+ font-size: clamp(2rem, 3vw, 2.5rem);
10858
+ align-self: center;
10859
+ justify-self: center;
10860
+ }
10861
+
10862
+ .indicator {
10863
+ transform: scale(0.8);
10864
+ }
10865
+
10866
+ :host([status='complete']) .message,
10867
+ :host([status='complete']) .indicator {
10868
+ color: var(--kemet-color-success);
10869
+ }
10870
+
10871
+ :host([status='error']) .message,
10872
+ :host([status='error']) .indicator {
10873
+ color: var(--kemet-color-error);
10874
+ }
10875
+ `;
10876
+ const stylesLoaders = i$4 `
10877
+ .lds-ripple {
10878
+ display: inline-block;
10879
+ position: relative;
10880
+ width: 80px;
10881
+ height: 80px;
10882
+ }
10883
+
10884
+ .lds-ripple div {
10885
+ position: absolute;
10886
+ border: 4px solid var(--kemet-upload-file-ripple-color);
10887
+ opacity: 1;
10888
+ border-radius: 50%;
10889
+ animation: lds-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite;
10890
+ }
10891
+
10892
+ .lds-ripple div:nth-child(2) {
10893
+ animation-delay: -0.5s;
10894
+ }
10895
+
10896
+ @keyframes lds-ripple {
10897
+ 0% {
10898
+ top: 36px;
10899
+ left: 36px;
10900
+ width: 0;
10901
+ height: 0;
10902
+ opacity: 0;
10903
+ }
10904
+ 4.9% {
10905
+ top: 36px;
10906
+ left: 36px;
10907
+ width: 0;
10908
+ height: 0;
10909
+ opacity: 0;
10910
+ }
10911
+ 5% {
10912
+ top: 36px;
10913
+ left: 36px;
10914
+ width: 0;
10915
+ height: 0;
10916
+ opacity: 1;
10917
+ }
10918
+ 100% {
10919
+ top: 0px;
10920
+ left: 0px;
10921
+ width: 72px;
10922
+ height: 72px;
10923
+ opacity: 0;
10924
+ }
11221
10925
  }
11222
10926
  `;
11223
10927
 
10928
+ const formatBytes = (bytes, decimals = 2) => {
10929
+ if (bytes === 0)
10930
+ return '0 Bytes';
10931
+ const k = 1024;
10932
+ const dm = decimals < 0 ? 0 : decimals;
10933
+ const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
10934
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
10935
+ // eslint-disable-next-line no-restricted-properties
10936
+ return `${parseFloat((bytes / k ** i).toFixed(dm))} ${sizes[i]}`;
10937
+ };
11224
10938
  /**
11225
- * @since 2.0.0
10939
+ * @since 1.3.0
11226
10940
  * @status stable
11227
10941
  *
11228
- * @tagname kemet-tooltip
11229
- * @summary A tooltip is a Popper component that displays an dynamic arrow pointing to the trigger.
10942
+ * @tagname kemet-upload-file
10943
+ * @summary A file in the upload.
11230
10944
  *
11231
- * @slot trigger - Controls opening and closing the tooltip.
11232
- * @slot content - The contents of the tooltip.
10945
+ * @prop {string} name - The name of the file
10946
+ * @prop {number} loaded - The number of bytes loaded
10947
+ * @prop {number} size - The file size in bytes
10948
+ * @prop {string} type - The file type
10949
+ * @prop {string} status - The status of the file. Values are complete | uploading | error.
10950
+ * @prop {number} percent - Percentage of file completion that's calculated by the loaded property.
10951
+ * @prop {string} message - An error message to give to users
11233
10952
  *
11234
- * @csspart trigger - Contains the trigger for the tooltip.
11235
- * @csspart content - Contains the content for the tooltip.
10953
+ * @cssproperty --kemet-upload-file-color - The default text color. Default: var(--kemet-color-text).
10954
+ * @cssproperty --kemet-upload-file-padding - The padding around the file. Default: 0.5rem 1rem.
10955
+ * @cssproperty --kemet-upload-file-border - The border around the file. Default: 1px solid var(--kemet-color-primary).
11236
10956
  *
11237
- * @cssproperty --kemet-tooltip-content-height - The height of the content.
11238
- * @cssproperty --kemet-tooltip-size - The width and height of arrow's container
11239
- * @cssproperty --kemet-tooltip-border-size - The border size of the arrow
11240
- * @cssproperty --kemet-tooltip-rounded-tip - How much rounding the tip of the arrow should be. Zero is pointy
11241
- * @cssproperty --kemet-tooltip-background-color - The background color of the arrow
11242
- * @cssproperty --kemet-tooltip-border-color - The border color of the the arrow
11243
- * @cssproperty --kemet-tooltip-placement-offset - The offset of the arrow from the trigger
10957
+ * @csspart percentage - Area that displays the percentage.
10958
+ * @csspart filename - Area that displays file name.
10959
+ * @csspart loaded - Area that displays how much has uploaded.
10960
+ * @csspart message - Area for the error message.
10961
+ * @csspart indicator - Area for status icon.
11244
10962
  *
11245
10963
  */
11246
- let KemetTooltip = class KemetTooltip extends KemetPopper$1 {
10964
+ let KemetUploadFile = class KemetUploadFile extends s$1 {
10965
+ constructor() {
10966
+ super(...arguments);
10967
+ this.loaded = 0;
10968
+ this.size = 0;
10969
+ this.percent = 0;
10970
+ }
10971
+ updated() {
10972
+ this.percent = this.calculatePercent();
10973
+ }
11247
10974
  render() {
11248
10975
  return x `
11249
- <div
11250
- id="trigger"
11251
- part="trigger"
11252
- tabIndex="0"
11253
- @click=${this.fireOn === 'click' ? event => this.toggle(event) : null}
11254
- @keyup=${this.fireOn === 'click' ? event => this.handleKeyUp(event) : null}
11255
- @mouseover=${this.fireOn !== 'click' ? () => this.opened = true : null}
11256
- @focus=${this.fireOn !== 'click' ? () => this.opened = true : null}
11257
- @mouseout=${this.fireOn !== 'click' ? () => this.opened = false : null}
11258
- @blur=${this.fireOn !== 'click' ? () => this.opened = false : null}
11259
- >
11260
- <slot name="trigger"></slot>
10976
+ <div class="percentage" part="percentage">
10977
+ <span>${this.percent}%</span>
11261
10978
  </div>
11262
- <div
11263
- id="content"
11264
- @mouseover=${this.fireOn !== 'click' ? () => this.opened = true : null}
11265
- @mouseout=${this.fireOn !== 'click' ? () => this.opened = false : null}
11266
- >
11267
- <slot name="content" @slotchange=${() => { this.makePopper(); this.measureContent(); }}></slot>
11268
- <div id="arrow-container" part="arrow-container" data-popper-arrow>
11269
- <div id="arrow" part="arrow"></div>
11270
- </div>
10979
+ <div>
10980
+ <h3 part="filename">${this.name}</h3>
10981
+ <span part="loaded">${formatBytes(this.loaded)} / ${formatBytes(this.size)}</span>
10982
+ ${this.message ? x `<div class="message" part="message">${this.message}</div>` : null}
10983
+ </div>
10984
+ <div class="indicator" part="indicator">
10985
+ ${this.getStatusIcon()}
11271
10986
  </div>
11272
10987
  `;
11273
10988
  }
11274
- measureContent() {
11275
- const height = this.contentElement.offsetHeight;
11276
- this.contentElement.style.setProperty("--kemet-tooltip-content-height", `${height}px`);
10989
+ calculatePercent() {
10990
+ const percent = Math.round((this.loaded * 100.0) / this.size);
10991
+ return percent > 100 ? 100 : percent;
10992
+ }
10993
+ getStatusIcon() {
10994
+ if (this.status === 'uploading') {
10995
+ return x `<div class="lds-ripple"><div></div><div></div></div>`;
10996
+ }
10997
+ if (this.status === 'complete') {
10998
+ return x `<kemet-icon icon="check-circle" size="48"></kemet-icon>`;
10999
+ }
11000
+ if (this.status === 'error') {
11001
+ return x `<kemet-icon icon="exclamation-circle" size="48"></kemet-icon>`;
11002
+ }
11003
+ return null;
11277
11004
  }
11278
11005
  };
11279
- KemetTooltip.styles = [stylesTooltip, stylesPopper, stylesPopperFade, stylesPopperScale, stylesPopperSlide, stylesPopperFall, stylesPopperFlipHorizontal, stylesPopperFlipVertical, stylesPopperSign, stylesPopperSuperScaled];
11280
- KemetTooltip = __decorate([
11281
- e$5('kemet-tooltip')
11282
- ], KemetTooltip);
11006
+ KemetUploadFile.styles = [stylesUploadFile, stylesLoaders];
11007
+ __decorate([
11008
+ e$4({ type: String })
11009
+ ], KemetUploadFile.prototype, "name", void 0);
11010
+ __decorate([
11011
+ e$4({ type: Number })
11012
+ ], KemetUploadFile.prototype, "loaded", void 0);
11013
+ __decorate([
11014
+ e$4({ type: Number })
11015
+ ], KemetUploadFile.prototype, "size", void 0);
11016
+ __decorate([
11017
+ e$4({ type: String })
11018
+ ], KemetUploadFile.prototype, "type", void 0);
11019
+ __decorate([
11020
+ e$4({ type: String, reflect: true })
11021
+ ], KemetUploadFile.prototype, "status", void 0);
11022
+ __decorate([
11023
+ e$4({ type: Number })
11024
+ ], KemetUploadFile.prototype, "percent", void 0);
11025
+ __decorate([
11026
+ e$4({ type: String })
11027
+ ], KemetUploadFile.prototype, "message", void 0);
11028
+ KemetUploadFile = __decorate([
11029
+ e$5('kemet-upload-file')
11030
+ ], KemetUploadFile);
11283
11031
 
11284
- const stylesUpload = i$4 `
11032
+ const stylesBase = i$4 `
11285
11033
  :host {
11286
- color: var(--kemet-upload-color, var(--kemet-color-white));
11287
- display: grid;
11288
- grid-template-columns: 1fr 1fr;
11289
- height: var(--kemet-upload-height, 364px);
11290
- border: var(--kemet-upload-border, 1rem solid var(--kemet-color-gray1-to-transparent));
11291
- background-color: var(--kemet-upload-background-color, var(--kemet-color-primary-to-transparent));
11034
+ position: relative;
11035
+ display: block;
11292
11036
  }
11293
11037
 
11294
- :host([mobile]) {
11038
+ input {
11039
+ color: var(--kemet-color-text);
11295
11040
  display: block;
11296
- height: auto;
11041
+ font-size: 1rem;
11042
+ width: 100%;
11043
+ height: var(--kemet-input-height, 50px);
11044
+ padding: var(--kemet-input-padding, 0.5rem 1rem);
11045
+ border: var(--kemet-input-border, 1px solid var(--kemet-color-background));
11046
+ appearance: none;
11047
+ box-sizing: border-box;
11048
+ background-color: transparent;
11297
11049
  }
11298
11050
 
11299
- input {
11051
+ input[type='color'] {
11052
+ min-width: 10rem;
11053
+ }
11054
+
11055
+ input[type='search']::-webkit-search-decoration,
11056
+ input[type='search']::-webkit-search-cancel-button,
11057
+ input[type='search']::-webkit-search-results-button,
11058
+ input[type='search']::-webkit-search-results-decoration {
11300
11059
  display: none;
11301
11060
  }
11302
11061
 
11303
- .button {
11304
- cursor: pointer;
11305
- font-size: 1rem;
11306
- display: block;
11307
- color: var(--kemet-color-white);
11308
- padding: 0.5rem 1rem;
11309
- border: 1px solid var(--kemet-color-white);
11310
- background-color: transparent;
11062
+ :host([status='error']) input {
11063
+ border: var(--kemet-input-border-color-error, 1px solid var(--kemet-color-error));
11311
11064
  }
11312
11065
 
11313
- .upload {
11314
- display: flex;
11315
- align-items: center;
11316
- justify-content: center;
11317
- margin: var(--kemet-upload-margin);
11318
- flex-direction: column;
11319
- border: 2px dashed var(--kemet-color-white);
11066
+ :host([status='success']) input {
11067
+ border: var(--kemet-input-border-color-success, 1px solid var(--kemet-color-success));
11320
11068
  }
11321
11069
 
11322
- :host([over]) .upload {
11323
- background-color: green;
11070
+ :host([status='warning']) input {
11071
+ border: var(--kemet-input-border-color-warning, 1px solid var(--kemet-color-warning));
11324
11072
  }
11325
11073
 
11326
- :host([mobile]) .upload {
11327
- height: 280px;
11074
+ :host([disabled]) input {
11075
+ opacity: 0.5;
11328
11076
  }
11329
11077
 
11330
- .files {
11331
- display: flex;
11332
- gap: 1rem;
11333
- flex-direction: column;
11334
- padding: 0 1rem;
11335
- overflow: auto;
11336
- background-color: var(--kemet-color-gray1-to-transparent);
11078
+ :host([icon-left]) input {
11079
+ padding-left: var(--kemet-input-icon-left-padding, 3rem);
11337
11080
  }
11338
11081
 
11339
- :host([mobile]) .files {
11340
- padding: 0;
11341
- max-height: 280px;
11082
+ :host([icon-right]) input {
11083
+ padding-right: var(--kemet-input-icon-right-padding, 3rem);
11342
11084
  }
11343
11085
 
11344
- .heading {
11345
- font-size: 1.25rem;
11346
- margin: 0 0 2rem 0;
11086
+ :host([rounded]) input {
11087
+ border-radius: var(--kemet-input-border-radius-rounded, var(--kemet-border-radius));
11347
11088
  }
11348
11089
 
11349
- :host([no-drag-drop]) .heading {
11350
- display: none;
11090
+ :host([filled]) input {
11091
+ border: var(--kemet-input-border-filled, none);
11092
+ color: var(--kemet-input-color-filled, var(--kemet-color-white));
11093
+ background-color: var(--kemet-input-background-color-filled, var(--kemet-color-primary));
11351
11094
  }
11352
- `;
11353
- const stylesUploadFile = i$4 `
11354
- :host {
11355
- --kemet-upload-file-ripple-color: var(--kemet-color-primary);
11356
11095
 
11357
- color: var(--kemet-upload-file-color, var(--kemet-color-text));
11358
- display: grid;
11359
- gap: 1rem;
11360
- grid-template-columns: auto 1fr auto;
11361
- align-items: center;
11362
- height: 100%;
11363
- max-height: 50%;
11364
- padding: var(--kemet-upload-file-padding, 0.5rem 1rem);
11365
- border: var(--kemet-upload-file-border, 1px solid var(--kemet-color-primary));
11096
+ :host([filled]) kemet-icon,
11097
+ :host([filled]) input::placeholder {
11098
+ color: var(--kemet-input-color-filled, var(--kemet-color-white));
11366
11099
  }
11367
11100
 
11368
- :host([status='error']) {
11369
- border: 1px solid var(--kemet-color-error);
11101
+ :host([status='error'][filled]) input {
11102
+ background-color: var(--kemet-input-background-color-error, var(--kemet-color-error));
11370
11103
  }
11371
11104
 
11372
- :host([status='complete']) {
11373
- border: 1px solid var(--kemet-color-success);
11105
+ :host([status='success'][filled]) input {
11106
+ background-color: var(--kemet-input-background-color-success, var(--kemet-color-success));
11374
11107
  }
11375
11108
 
11376
- h3 {
11377
- margin: 0;
11109
+ :host([status='warning'][filled]) input {
11110
+ background-color: var(--kemet-input-background-color-warning, var(--kemet-color-warning));
11378
11111
  }
11379
11112
 
11380
- .percentage {
11381
- font-size: clamp(2rem, 3vw, 2.5rem);
11382
- align-self: center;
11383
- justify-self: center;
11113
+ kemet-icon {
11114
+ color: var(--kemet-color-text);
11115
+ position: absolute;
11116
+ top: 50%;
11117
+ transform: translateY(-50%);
11384
11118
  }
11385
11119
 
11386
- .indicator {
11387
- transform: scale(0.8);
11120
+ kemet-icon.left {
11121
+ left: 1rem;
11388
11122
  }
11389
11123
 
11390
- :host([status='complete']) .message,
11391
- :host([status='complete']) .indicator {
11392
- color: var(--kemet-color-success);
11124
+ kemet-icon.right {
11125
+ right: 1rem;
11393
11126
  }
11394
11127
 
11395
- :host([status='error']) .message,
11396
- :host([status='error']) .indicator {
11397
- color: var(--kemet-color-error);
11398
- }
11399
- `;
11400
- const stylesLoaders = i$4 `
11401
- .lds-ripple {
11402
- display: inline-block;
11403
- position: relative;
11404
- width: 80px;
11405
- height: 80px;
11128
+ kemet-icon.eye,
11129
+ kemet-icon.search {
11130
+ cursor: pointer;
11406
11131
  }
11407
11132
 
11408
- .lds-ripple div {
11409
- position: absolute;
11410
- border: 4px solid var(--kemet-upload-file-ripple-color);
11411
- opacity: 1;
11412
- border-radius: 50%;
11413
- animation: lds-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite;
11133
+ :host([status='error']) kemet-icon {
11134
+ color: var(--kemet-color-error);
11414
11135
  }
11415
11136
 
11416
- .lds-ripple div:nth-child(2) {
11417
- animation-delay: -0.5s;
11137
+ :host([status='warning']) kemet-icon {
11138
+ color: var(--kemet-color-error);
11418
11139
  }
11419
11140
 
11420
- @keyframes lds-ripple {
11421
- 0% {
11422
- top: 36px;
11423
- left: 36px;
11424
- width: 0;
11425
- height: 0;
11426
- opacity: 0;
11427
- }
11428
- 4.9% {
11429
- top: 36px;
11430
- left: 36px;
11431
- width: 0;
11432
- height: 0;
11433
- opacity: 0;
11434
- }
11435
- 5% {
11436
- top: 36px;
11437
- left: 36px;
11438
- width: 0;
11439
- height: 0;
11440
- opacity: 1;
11441
- }
11442
- 100% {
11443
- top: 0px;
11444
- left: 0px;
11445
- width: 72px;
11446
- height: 72px;
11447
- opacity: 0;
11448
- }
11141
+ :host([status='success']) kemet-icon {
11142
+ color: var(--kemet-color-success);
11449
11143
  }
11450
11144
  `;
11451
11145
 
11452
- const formatBytes = (bytes, decimals = 2) => {
11453
- if (bytes === 0)
11454
- return '0 Bytes';
11455
- const k = 1024;
11456
- const dm = decimals < 0 ? 0 : decimals;
11457
- const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
11458
- const i = Math.floor(Math.log(bytes) / Math.log(k));
11459
- // eslint-disable-next-line no-restricted-properties
11460
- return `${parseFloat((bytes / k ** i).toFixed(dm))} ${sizes[i]}`;
11461
- };
11462
11146
  /**
11463
- * @since 1.3.0
11147
+ * @since 1.0.0
11464
11148
  * @status stable
11465
11149
  *
11466
- * @tagname kemet-upload-file
11467
- * @summary A file in the upload.
11150
+ * @tagname kemet-input
11151
+ * @summary An enhanced input element.
11468
11152
  *
11469
- * @prop {string} name - The name of the file
11470
- * @prop {number} loaded - The number of bytes loaded
11471
- * @prop {number} size - The file size in bytes
11472
- * @prop {string} type - The file type
11473
- * @prop {string} status - The status of the file. Values are complete | uploading | error.
11474
- * @prop {number} percent - Percentage of file completion that's calculated by the loaded property.
11475
- * @prop {string} message - An error message to give to users
11153
+ * @prop {string} slug - Used for the id of the input. Should match the slug used in a control if applicable.
11154
+ * @prop {string} name - The name of the input
11155
+ * @prop {string} placeholder - The placeholder attribute
11156
+ * @prop {string} minlength - The minlength attribute
11157
+ * @prop {string} maxlength - The maxlength attribute
11158
+ * @prop {string} min - The min attribute
11159
+ * @prop {string} max - The max attribute
11160
+ * @prop {string} step - The step attribute
11161
+ * @prop {string} autocomplete - The autocomplete attribute
11162
+ * @prop {string} pattern - The pattern attribute
11163
+ * @prop {string} inputmode - The input mode attribute
11164
+ * @prop {boolean} autofocus - The autofocus attribute
11165
+ * @prop {boolean} disabled - The disable attribute
11166
+ * @prop {boolean} readonly - The readonly attribute
11167
+ * @prop {boolean} required - The required attribute
11168
+ * @prop {string} type - The type of input
11169
+ * @prop {string} value - The input's value
11170
+ * @prop {boolean} invalid - States whether or not the input is invalid
11171
+ * @prop {string} status - The status of the input
11172
+ * @prop {boolean} validateOnBlur - Activates validation on blur
11173
+ * @prop {string} ariaAutoComplete - Aria Autocomplete
11174
+ * @prop {string} ariaControls - Aria Controls
11175
+ * @prop {string} ariaActiveDescendant - Aria Active Descendant
11176
+ * @prop {boolean} rounded - Displays rounded corners
11177
+ * @prop {boolean} filled - Displays a filled input box
11178
+ * @prop {string} iconRight - Custom Icon to the right of the input
11179
+ * @prop {string} iconLeft - Custom Icon to the left of the input
11180
+ * @prop {number} iconSize - Size of the icons
11181
+ * @prop {object} validity - The HTML5 validity object.
11182
+ * @prop {boolean} isPasswordVisible - Manages password visibility
11183
+ * @prop {string} inputType - Input Type of keypress handled through handleInput(e)
11184
+ * @prop {boolean} focused - Determines if the input is focused
11476
11185
  *
11477
- * @cssproperty --kemet-upload-file-color - The default text color. Default: var(--kemet-color-text).
11478
- * @cssproperty --kemet-upload-file-padding - The padding around the file. Default: 0.5rem 1rem.
11479
- * @cssproperty --kemet-upload-file-border - The border around the file. Default: 1px solid var(--kemet-color-primary).
11186
+ * @csspart input
11480
11187
  *
11481
- * @csspart percentage - Area that displays the percentage.
11482
- * @csspart filename - Area that displays file name.
11483
- * @csspart loaded - Area that displays how much has uploaded.
11484
- * @csspart message - Area for the error message.
11485
- * @csspart indicator - Area for status icon.
11188
+ * @cssproperty --kemet-input-height - The height of the input. Default: 50px.
11189
+ * @cssproperty -kemet-input-padding - The padding on the input. Default: 0.5rem 1rem.
11190
+ * @cssproperty -kemet-input-border - The border of the input. Default: 1px solid var(--kemet-color-primary).
11191
+ * @cssproperty -kemet-input-border-color-error - The border of the error state. Default: 1px solid var(--kemet-color-error).
11192
+ * @cssproperty -kemet-input-border-color-success - The border of the success state. Default: 1px solid var(--kemet-color-success).
11193
+ * @cssproperty -kemet-input-border-color-warning - The border of the warning state. Default: 1px solid var(--kemet-color-warning) |
11194
+ * @cssproperty -kemet-input-icon-left-padding - The icon-left padding. Default: 3rem.
11195
+ * @cssproperty -kemet-input-icon-right-padding - The icon-right padding. Default: 3rem.
11196
+ * @cssproperty -kemet-input-border-radius-rounded - The border radius on rounded. Default: var(--kemet-border-radius).
11197
+ * @cssproperty -kemet-input-border-filled - The border on filled. Default: none.
11198
+ * @cssproperty -kemet-input-color-filled - The color on filled. Default: var(--kemet-color-white).
11199
+ * @cssproperty -kemet-input-background-color-filled - The background-color on filled. Default: var(--kemet-color-primary).
11200
+ * @cssproperty -kemet-input-background-color-error - The error state background color. Default: var(--kemet-color-error).
11201
+ * @cssproperty -kemet-input-background-color-success - The success state background color. Default: var(--kemet-color-success).
11202
+ * @cssproperty -kemet-input-background-color-warning - The warning state background color. Default: var(--kemet-color-warning).
11203
+ *
11204
+ * @event kemet-input-focused - Fires when the input receives and loses focus
11205
+ * @event kemet-input-status Fires when there's a change in status. This event includes an object that reports: 1) the status. 2) HTML5 validity object. 3) the component element.
11206
+ * Use the validity object to support custom validation messages.
11207
+ * @event kemet-input-input - Fires when the input receives input
11486
11208
  *
11487
11209
  */
11488
- let KemetUploadFile = class KemetUploadFile extends s$1 {
11210
+ let KemetInput = class KemetInput extends s$1 {
11489
11211
  constructor() {
11490
- super(...arguments);
11491
- this.loaded = 0;
11492
- this.size = 0;
11493
- this.percent = 0;
11212
+ super();
11213
+ this.name = 'input';
11214
+ this.type = 'text';
11215
+ this.value = '';
11216
+ this.status = 'standard';
11217
+ this.validateOnBlur = false;
11218
+ this.iconSize = 20;
11219
+ this.isPasswordVisible = false;
11220
+ this.focused = false;
11221
+ /** @internal */
11222
+ this.formSubmitController = new FormSubmitController(this);
11223
+ }
11224
+ ;
11225
+ firstUpdated() {
11226
+ // elements
11227
+ this.input = this.shadowRoot.querySelector('input');
11228
+ this.field = this.closest('kemet-field');
11229
+ this.form = this.closest('form');
11230
+ this.slug = this.field ? this.field.slug : 'input';
11231
+ if (this.field) {
11232
+ this.field.addEventListener('fmc-password-status', event => this.handleStatus(event));
11233
+ }
11234
+ }
11235
+ render() {
11236
+ return x `
11237
+ <div>
11238
+ ${this.makeIconLeft()}
11239
+ <input
11240
+ part="input"
11241
+ id=${this.slug}
11242
+ name=${this.name}
11243
+ placeholder=${l$1(this.placeholder)}
11244
+ minlength=${l$1(this.minlength)}
11245
+ maxlength=${l$1(this.maxlength)}
11246
+ min=${l$1(this.min)}
11247
+ max=${l$1(this.max)}
11248
+ step=${l$1(this.step)}
11249
+ autocomplete=${l$1(this.autocomplete)}
11250
+ aria-autocomplete=${l$1(this.ariaAutoComplete)}
11251
+ aria-controls=${l$1(this.ariaControls)}
11252
+ aria-activedescendant=${l$1(this.ariaActiveDescendant)}
11253
+ pattern=${l$1(this.pattern)}
11254
+ inputmode=${l$1(this.inputmode)}
11255
+ aria-invalid=${this.invalid ? 'true' : 'false'}
11256
+ ?autofocus=${this.autofocus}
11257
+ ?disabled=${this.disabled}
11258
+ ?readonly=${this.readonly}
11259
+ ?required=${this.required}
11260
+ .type="${this.type === 'password' && this.isPasswordVisible ? 'text' : this.type}"
11261
+ .value=${l(this.value)}
11262
+ @change=${this.handleChange}
11263
+ @input=${this.handleInput}
11264
+ @invalid=${this.handleInvalid}
11265
+ @focus=${this.handleFocus}
11266
+ @blur=${this.handleBlur}
11267
+ />
11268
+ ${this.makeIconRight()} ${this.makeIconClear()} ${this.makeVisibilityToggle()}
11269
+ </div>
11270
+ `;
11271
+ }
11272
+ /**
11273
+ * Makes the right icon
11274
+ * @private
11275
+ * @returns {templateResult} A right icon
11276
+ */
11277
+ makeIconRight() {
11278
+ if (this.iconRight) {
11279
+ return x `
11280
+ <kemet-icon class="right" icon="${this.iconRight}" size="${this.iconSize ? this.iconSize : 20}"></kemet-icon>
11281
+ `;
11282
+ }
11283
+ return null;
11284
+ }
11285
+ /**
11286
+ * Makes the left icon
11287
+ * @private
11288
+ * @returns {templateResult} A left icon
11289
+ */
11290
+ makeIconLeft() {
11291
+ if (this.iconLeft) {
11292
+ return x `
11293
+ <kemet-icon class="left" icon="${this.iconLeft}" size="${this.iconSize ? this.iconSize : 16}"></kemet-icon>
11294
+ `;
11295
+ }
11296
+ return null;
11297
+ }
11298
+ /**
11299
+ * Makes a clear icon for search.
11300
+ * @private
11301
+ * @returns {templateResult} A search icon
11302
+ */
11303
+ makeIconClear() {
11304
+ if (this.type === 'search' && this.value !== '') {
11305
+ return x `
11306
+ <kemet-icon class="search right" icon="x-lg" size="${this.iconSize}" @click=${() => this.handleClear()}></kemet-icon>
11307
+ `;
11308
+ }
11309
+ return null;
11310
+ }
11311
+ /**
11312
+ * Makes a password visibility toggle button
11313
+ * @returns {templateResult} A mask or unmask icon
11314
+ */
11315
+ makeVisibilityToggle() {
11316
+ if (this.type === 'password') {
11317
+ return x `<kemet-icon
11318
+ class="eye right"
11319
+ icon="${this.setPasswordIcon()}"
11320
+ @click=${() => this.togglePasswordVisibility()}
11321
+ ></kemet-icon>`;
11322
+ }
11323
+ return null;
11494
11324
  }
11495
- updated() {
11496
- this.percent = this.calculatePercent();
11325
+ setPasswordIcon() {
11326
+ if (this.isPasswordVisible) {
11327
+ return 'eye';
11328
+ }
11329
+ return 'eye-slash';
11497
11330
  }
11498
- render() {
11499
- return x `
11500
- <div class="percentage" part="percentage">
11501
- <span>${this.percent}%</span>
11502
- </div>
11503
- <div>
11504
- <h3 part="filename">${this.name}</h3>
11505
- <span part="loaded">${formatBytes(this.loaded)} / ${formatBytes(this.size)}</span>
11506
- ${this.message ? x `<div class="message" part="message">${this.message}</div>` : null}
11507
- </div>
11508
- <div class="indicator" part="indicator">
11509
- ${this.getStatusIcon()}
11510
- </div>
11511
- `;
11331
+ /**
11332
+ * Handles when the input receives focus
11333
+ * @private
11334
+ */
11335
+ handleFocus() {
11336
+ this.focused = true;
11337
+ emitEvent(this, 'kemet-input-focused', true);
11512
11338
  }
11513
- calculatePercent() {
11514
- const percent = Math.round((this.loaded * 100.0) / this.size);
11515
- return percent > 100 ? 100 : percent;
11339
+ /**
11340
+ * Handles when the input loses focus
11341
+ * @private
11342
+ */
11343
+ handleBlur() {
11344
+ var _a, _b;
11345
+ if (this.validateOnBlur && this.form && !this.form.noValidate) {
11346
+ (_a = this.input) === null || _a === void 0 ? void 0 : _a.checkValidity();
11347
+ this.validity = (_b = this.input) === null || _b === void 0 ? void 0 : _b.validity;
11348
+ }
11349
+ this.focused = false;
11350
+ emitEvent(this, 'kemet-input-focused', false);
11516
11351
  }
11517
- getStatusIcon() {
11518
- if (this.status === 'uploading') {
11519
- return x `<div class="lds-ripple"><div></div><div></div></div>`;
11352
+ /**
11353
+ * Handles when the input changes value
11354
+ * @private
11355
+ */
11356
+ handleChange() {
11357
+ this.value = this.input.value;
11358
+ if (this.input.checkValidity() && this.checkLimitValidity() && this.status !== 'success') {
11359
+ this.invalid = false;
11360
+ this.status = 'standard';
11361
+ this.validity = this.input.validity;
11362
+ emitEvent(this, 'kemet-input-status', {
11363
+ status: 'standard',
11364
+ validity: this.input.validity,
11365
+ element: this,
11366
+ });
11520
11367
  }
11521
- if (this.status === 'complete') {
11522
- return x `<kemet-icon icon="check-circle" size="48"></kemet-icon>`;
11368
+ }
11369
+ /**
11370
+ * Handles when the input receives input
11371
+ * @private
11372
+ */
11373
+ handleInput() {
11374
+ this.value = this.input.value;
11375
+ emitEvent(this, 'kemet-input-input', this.value);
11376
+ }
11377
+ /**
11378
+ * Handles when the input has an error
11379
+ * @private
11380
+ */
11381
+ handleInvalid() {
11382
+ var _a, _b;
11383
+ this.validity = (_a = this.input) === null || _a === void 0 ? void 0 : _a.validity;
11384
+ if (this.validateOnBlur) {
11385
+ this.invalid = true;
11386
+ this.status = 'error';
11387
+ emitEvent(this, 'kemet-input-status', {
11388
+ status: 'error',
11389
+ validity: (_b = this.input) === null || _b === void 0 ? void 0 : _b.validity,
11390
+ element: this,
11391
+ });
11523
11392
  }
11524
- if (this.status === 'error') {
11525
- return x `<kemet-icon icon="exclamation-circle" size="48"></kemet-icon>`;
11393
+ }
11394
+ handleStatus(event) {
11395
+ this.status = event.detail.status;
11396
+ }
11397
+ /**
11398
+ * Toggles password visibility
11399
+ * @private
11400
+ */
11401
+ togglePasswordVisibility() {
11402
+ this.isPasswordVisible = !this.isPasswordVisible;
11403
+ }
11404
+ /**
11405
+ * Handles the clear button for search
11406
+ * @private
11407
+ */
11408
+ handleClear() {
11409
+ this.value = '';
11410
+ emitEvent(this, 'kemet-input-input', this.value);
11411
+ }
11412
+ /**
11413
+ * Checks the validity of the character limit for the count component
11414
+ * @private
11415
+ * @returns {boolean}
11416
+ */
11417
+ checkLimitValidity() {
11418
+ if (this.field) {
11419
+ const count = this.field.querySelector('kemet-count');
11420
+ if (count) {
11421
+ return this.value.length < count.limit;
11422
+ }
11526
11423
  }
11527
- return null;
11424
+ return true;
11425
+ }
11426
+ /**
11427
+ * Checks the validity of the standard input
11428
+ * @public
11429
+ * @returns {boolean}
11430
+ */
11431
+ checkValidity() {
11432
+ var _a;
11433
+ return (_a = this.input) === null || _a === void 0 ? void 0 : _a.checkValidity();
11434
+ }
11435
+ /**
11436
+ * Focuses the standard input
11437
+ * @public
11438
+ */
11439
+ focus() {
11440
+ var _a;
11441
+ (_a = this.input) === null || _a === void 0 ? void 0 : _a.focus();
11528
11442
  }
11529
11443
  };
11530
- KemetUploadFile.styles = [stylesUploadFile, stylesLoaders];
11444
+ KemetInput.styles = [stylesBase];
11531
11445
  __decorate([
11532
11446
  e$4({ type: String })
11533
- ], KemetUploadFile.prototype, "name", void 0);
11447
+ ], KemetInput.prototype, "slug", void 0);
11448
+ __decorate([
11449
+ e$4({ type: String })
11450
+ ], KemetInput.prototype, "name", void 0);
11451
+ __decorate([
11452
+ e$4({ type: String })
11453
+ ], KemetInput.prototype, "placeholder", void 0);
11534
11454
  __decorate([
11535
11455
  e$4({ type: Number })
11536
- ], KemetUploadFile.prototype, "loaded", void 0);
11456
+ ], KemetInput.prototype, "minlength", void 0);
11537
11457
  __decorate([
11538
11458
  e$4({ type: Number })
11539
- ], KemetUploadFile.prototype, "size", void 0);
11459
+ ], KemetInput.prototype, "maxlength", void 0);
11540
11460
  __decorate([
11541
11461
  e$4({ type: String })
11542
- ], KemetUploadFile.prototype, "type", void 0);
11462
+ ], KemetInput.prototype, "min", void 0);
11463
+ __decorate([
11464
+ e$4({ type: String })
11465
+ ], KemetInput.prototype, "max", void 0);
11466
+ __decorate([
11467
+ e$4({ type: Number })
11468
+ ], KemetInput.prototype, "step", void 0);
11469
+ __decorate([
11470
+ e$4({ type: String })
11471
+ ], KemetInput.prototype, "autocomplete", void 0);
11472
+ __decorate([
11473
+ e$4({ type: String })
11474
+ ], KemetInput.prototype, "pattern", void 0);
11475
+ __decorate([
11476
+ e$4({ type: String })
11477
+ ], KemetInput.prototype, "inputmode", void 0);
11478
+ __decorate([
11479
+ e$4({ type: Boolean })
11480
+ ], KemetInput.prototype, "autofocus", void 0);
11481
+ __decorate([
11482
+ e$4({ type: Boolean, reflect: true })
11483
+ ], KemetInput.prototype, "disabled", void 0);
11484
+ __decorate([
11485
+ e$4({ type: Boolean })
11486
+ ], KemetInput.prototype, "readonly", void 0);
11487
+ __decorate([
11488
+ e$4({ type: Boolean, reflect: true })
11489
+ ], KemetInput.prototype, "required", void 0);
11490
+ __decorate([
11491
+ e$4({ type: String })
11492
+ ], KemetInput.prototype, "type", void 0);
11543
11493
  __decorate([
11544
11494
  e$4({ type: String, reflect: true })
11545
- ], KemetUploadFile.prototype, "status", void 0);
11495
+ ], KemetInput.prototype, "value", void 0);
11496
+ __decorate([
11497
+ e$4({ type: Boolean, reflect: true })
11498
+ ], KemetInput.prototype, "invalid", void 0);
11499
+ __decorate([
11500
+ e$4({ type: String, reflect: true })
11501
+ ], KemetInput.prototype, "status", void 0);
11502
+ __decorate([
11503
+ e$4({ type: Boolean, attribute: 'validate-on-blur' })
11504
+ ], KemetInput.prototype, "validateOnBlur", void 0);
11505
+ __decorate([
11506
+ e$4({ type: String, attribute: 'aria-autocomplete' })
11507
+ ], KemetInput.prototype, "ariaAutoComplete", void 0);
11508
+ __decorate([
11509
+ e$4({ type: String, attribute: 'aria-controls' })
11510
+ ], KemetInput.prototype, "ariaControls", void 0);
11511
+ __decorate([
11512
+ e$4({ type: String, attribute: 'aria-activedescendant' })
11513
+ ], KemetInput.prototype, "ariaActiveDescendant", void 0);
11514
+ __decorate([
11515
+ e$4({ type: Boolean, reflect: true })
11516
+ ], KemetInput.prototype, "rounded", void 0);
11517
+ __decorate([
11518
+ e$4({ type: Boolean, reflect: true })
11519
+ ], KemetInput.prototype, "filled", void 0);
11520
+ __decorate([
11521
+ e$4({ type: String, reflect: true, attribute: 'icon-right' })
11522
+ ], KemetInput.prototype, "iconRight", void 0);
11523
+ __decorate([
11524
+ e$4({ type: String, reflect: true, attribute: 'icon-left' })
11525
+ ], KemetInput.prototype, "iconLeft", void 0);
11546
11526
  __decorate([
11547
11527
  e$4({ type: Number })
11548
- ], KemetUploadFile.prototype, "percent", void 0);
11528
+ ], KemetInput.prototype, "iconSize", void 0);
11529
+ __decorate([
11530
+ e$4({ type: Object })
11531
+ ], KemetInput.prototype, "validity", void 0);
11532
+ __decorate([
11533
+ e$4({ type: Boolean })
11534
+ ], KemetInput.prototype, "isPasswordVisible", void 0);
11549
11535
  __decorate([
11550
11536
  e$4({ type: String })
11551
- ], KemetUploadFile.prototype, "message", void 0);
11552
- KemetUploadFile = __decorate([
11553
- e$5('kemet-upload-file')
11554
- ], KemetUploadFile);
11537
+ ], KemetInput.prototype, "inputType", void 0);
11538
+ __decorate([
11539
+ e$4({ type: Boolean, reflect: true })
11540
+ ], KemetInput.prototype, "focused", void 0);
11541
+ __decorate([
11542
+ t$1()
11543
+ ], KemetInput.prototype, "field", void 0);
11544
+ __decorate([
11545
+ t$1()
11546
+ ], KemetInput.prototype, "form", void 0);
11547
+ __decorate([
11548
+ t$1()
11549
+ ], KemetInput.prototype, "input", void 0);
11550
+ KemetInput = __decorate([
11551
+ e$5('kemet-input')
11552
+ ], KemetInput);
11555
11553
 
11556
11554
  const preventDefaults = (event) => {
11557
11555
  event.preventDefault();