kemet-ui 2.0.3 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (336) hide show
  1. package/custom-elements.json +621 -692
  2. package/dist/components/kemet-accordion/kemet-accordion-panel.d.ts +3 -4
  3. package/dist/components/kemet-accordion/kemet-accordion-panel.js +4 -3
  4. package/dist/components/kemet-accordion/kemet-accordion-panel.js.map +1 -1
  5. package/dist/components/kemet-accordion/kemet-accordion.d.ts +6 -5
  6. package/dist/components/kemet-accordion/kemet-accordion.js +14 -5
  7. package/dist/components/kemet-accordion/kemet-accordion.js.map +1 -1
  8. package/dist/components/kemet-accordion/stories.d.ts +2 -0
  9. package/dist/components/kemet-accordion/stories.js +6 -3
  10. package/dist/components/kemet-accordion/stories.js.map +1 -1
  11. package/dist/components/kemet-accordion/styles.js +5 -5
  12. package/dist/components/kemet-accordion/styles.js.map +1 -1
  13. package/dist/components/kemet-alert/docs/stories.d.ts +12 -0
  14. package/dist/components/kemet-alert/docs/stories.js +180 -36
  15. package/dist/components/kemet-alert/docs/stories.js.map +1 -1
  16. package/dist/components/kemet-alert/kemet-alert.d.ts +6 -7
  17. package/dist/components/kemet-alert/kemet-alert.js +8 -5
  18. package/dist/components/kemet-alert/kemet-alert.js.map +1 -1
  19. package/dist/components/kemet-alert/styles.js +10 -8
  20. package/dist/components/kemet-alert/styles.js.map +1 -1
  21. package/dist/components/kemet-alert/types.d.ts +0 -9
  22. package/dist/components/kemet-alert/types.js.map +1 -1
  23. package/dist/components/kemet-avatar/docs/stories.d.ts +4 -0
  24. package/dist/components/kemet-avatar/docs/stories.js +57 -35
  25. package/dist/components/kemet-avatar/docs/stories.js.map +1 -1
  26. package/dist/components/kemet-avatar/kemet-avatar.d.ts +4 -4
  27. package/dist/components/kemet-avatar/kemet-avatar.js +4 -4
  28. package/dist/components/kemet-avatar/kemet-avatar.js.map +1 -1
  29. package/dist/components/kemet-avatar/styles.js +16 -9
  30. package/dist/components/kemet-avatar/styles.js.map +1 -1
  31. package/dist/components/kemet-badge/docs/stories.d.ts +6 -0
  32. package/dist/components/kemet-badge/docs/stories.js +52 -16
  33. package/dist/components/kemet-badge/docs/stories.js.map +1 -1
  34. package/dist/components/kemet-badge/kemet-badge.d.ts +2 -1
  35. package/dist/components/kemet-badge/kemet-badge.js +1 -1
  36. package/dist/components/kemet-badge/kemet-badge.js.map +1 -1
  37. package/dist/components/kemet-badge/styles.js +11 -9
  38. package/dist/components/kemet-badge/styles.js.map +1 -1
  39. package/dist/components/kemet-badge/types.d.ts +1 -6
  40. package/dist/components/kemet-badge/types.js.map +1 -1
  41. package/dist/components/kemet-button/docs/stories.d.ts +12 -0
  42. package/dist/components/kemet-button/docs/stories.js +81 -20
  43. package/dist/components/kemet-button/docs/stories.js.map +1 -1
  44. package/dist/components/kemet-button/kemet-button.d.ts +23 -23
  45. package/dist/components/kemet-button/kemet-button.js +23 -23
  46. package/dist/components/kemet-button/kemet-button.js.map +1 -1
  47. package/dist/components/kemet-button/styles.js +46 -26
  48. package/dist/components/kemet-button/styles.js.map +1 -1
  49. package/dist/components/kemet-button/types.d.ts +1 -10
  50. package/dist/components/kemet-button/types.js.map +1 -1
  51. package/dist/components/kemet-card/docs/stories.d.ts +10 -0
  52. package/dist/components/kemet-card/docs/stories.js +78 -66
  53. package/dist/components/kemet-card/docs/stories.js.map +1 -1
  54. package/dist/components/kemet-card/kemet-card.d.ts +16 -16
  55. package/dist/components/kemet-card/kemet-card.js +16 -16
  56. package/dist/components/kemet-card/kemet-card.js.map +1 -1
  57. package/dist/components/kemet-card/styles.js +29 -14
  58. package/dist/components/kemet-card/styles.js.map +1 -1
  59. package/dist/components/kemet-carousel/docs/stories.d.ts +6 -0
  60. package/dist/components/kemet-carousel/docs/stories.js +72 -60
  61. package/dist/components/kemet-carousel/docs/stories.js.map +1 -1
  62. package/dist/components/kemet-carousel/kemet-carousel-current.d.ts +2 -2
  63. package/dist/components/kemet-carousel/kemet-carousel-current.js.map +1 -1
  64. package/dist/components/kemet-carousel/kemet-carousel-last.d.ts +1 -1
  65. package/dist/components/kemet-carousel/kemet-carousel-last.js +1 -1
  66. package/dist/components/kemet-carousel/kemet-carousel-last.js.map +1 -1
  67. package/dist/components/kemet-carousel/kemet-carousel-total.d.ts +2 -2
  68. package/dist/components/kemet-carousel/kemet-carousel-total.js.map +1 -1
  69. package/dist/components/kemet-carousel/kemet-carousel.d.ts +33 -29
  70. package/dist/components/kemet-carousel/kemet-carousel.js +47 -28
  71. package/dist/components/kemet-carousel/kemet-carousel.js.map +1 -1
  72. package/dist/components/kemet-carousel/styles.js +31 -15
  73. package/dist/components/kemet-carousel/styles.js.map +1 -1
  74. package/dist/components/kemet-checkbox/docs/stories.d.ts +4 -0
  75. package/dist/components/kemet-checkbox/docs/stories.js +28 -28
  76. package/dist/components/kemet-checkbox/docs/stories.js.map +1 -1
  77. package/dist/components/kemet-checkbox/kemet-checkbox.d.ts +8 -8
  78. package/dist/components/kemet-checkbox/kemet-checkbox.js +8 -8
  79. package/dist/components/kemet-checkbox/kemet-checkbox.js.map +1 -1
  80. package/dist/components/kemet-checkbox/styles.js +20 -13
  81. package/dist/components/kemet-checkbox/styles.js.map +1 -1
  82. package/dist/components/kemet-combo/docs/stories.js +14 -12
  83. package/dist/components/kemet-combo/docs/stories.js.map +1 -1
  84. package/dist/components/kemet-combo/kemet-combo.d.ts +17 -17
  85. package/dist/components/kemet-combo/kemet-combo.js +22 -26
  86. package/dist/components/kemet-combo/kemet-combo.js.map +1 -1
  87. package/dist/components/kemet-combo/styles.js +21 -9
  88. package/dist/components/kemet-combo/styles.js.map +1 -1
  89. package/dist/components/kemet-count/docs/stories.js +10 -25
  90. package/dist/components/kemet-count/docs/stories.js.map +1 -1
  91. package/dist/components/kemet-count/kemet-count.d.ts +1 -1
  92. package/dist/components/kemet-count/kemet-count.js +1 -1
  93. package/dist/components/kemet-count/kemet-count.js.map +1 -1
  94. package/dist/components/kemet-draggable/docs/stories.d.ts +1 -0
  95. package/dist/components/kemet-draggable/docs/stories.js +8 -15
  96. package/dist/components/kemet-draggable/docs/stories.js.map +1 -1
  97. package/dist/components/kemet-draggable/kemet-draggable.d.ts +3 -3
  98. package/dist/components/kemet-draggable/kemet-draggable.js +6 -5
  99. package/dist/components/kemet-draggable/kemet-draggable.js.map +1 -1
  100. package/dist/components/kemet-drawer/docs/stories.d.ts +6 -0
  101. package/dist/components/kemet-drawer/docs/stories.js +59 -60
  102. package/dist/components/kemet-drawer/docs/stories.js.map +1 -1
  103. package/dist/components/kemet-drawer/kemet-drawer.d.ts +7 -7
  104. package/dist/components/kemet-drawer/kemet-drawer.js +7 -7
  105. package/dist/components/kemet-drawer/kemet-drawer.js.map +1 -1
  106. package/dist/components/kemet-drawer/styles.js +32 -25
  107. package/dist/components/kemet-drawer/styles.js.map +1 -1
  108. package/dist/components/kemet-drawer/types.d.ts +0 -6
  109. package/dist/components/kemet-drawer/types.js.map +1 -1
  110. package/dist/components/kemet-fab/docs/stories.d.ts +3 -0
  111. package/dist/components/kemet-fab/docs/stories.js +23 -32
  112. package/dist/components/kemet-fab/docs/stories.js.map +1 -1
  113. package/dist/components/kemet-fab/kemet-fab.d.ts +7 -7
  114. package/dist/components/kemet-fab/kemet-fab.js +7 -7
  115. package/dist/components/kemet-fab/kemet-fab.js.map +1 -1
  116. package/dist/components/kemet-fab/styles.js +19 -10
  117. package/dist/components/kemet-fab/styles.js.map +1 -1
  118. package/dist/components/kemet-field/docs/stories.d.ts +1 -1
  119. package/dist/components/kemet-field/docs/stories.js +19 -69
  120. package/dist/components/kemet-field/docs/stories.js.map +1 -1
  121. package/dist/components/kemet-field/kemet-field.d.ts +12 -12
  122. package/dist/components/kemet-field/kemet-field.js +9 -14
  123. package/dist/components/kemet-field/kemet-field.js.map +1 -1
  124. package/dist/components/kemet-field/styles.js +6 -6
  125. package/dist/components/kemet-field/styles.js.map +1 -1
  126. package/dist/components/kemet-flipcard/docs/stories.d.ts +3 -0
  127. package/dist/components/kemet-flipcard/docs/stories.js +29 -78
  128. package/dist/components/kemet-flipcard/docs/stories.js.map +1 -1
  129. package/dist/components/kemet-flipcard/kemet-flipcard-trigger.d.ts +1 -1
  130. package/dist/components/kemet-flipcard/kemet-flipcard-trigger.js +2 -3
  131. package/dist/components/kemet-flipcard/kemet-flipcard-trigger.js.map +1 -1
  132. package/dist/components/kemet-flipcard/kemet-flipcard.d.ts +9 -9
  133. package/dist/components/kemet-flipcard/kemet-flipcard.js +10 -12
  134. package/dist/components/kemet-flipcard/kemet-flipcard.js.map +1 -1
  135. package/dist/components/kemet-flipcard/styles.js +20 -10
  136. package/dist/components/kemet-flipcard/styles.js.map +1 -1
  137. package/dist/components/kemet-icon/docs/stories.js +8 -15
  138. package/dist/components/kemet-icon/docs/stories.js.map +1 -1
  139. package/dist/components/kemet-input/docs/stories.d.ts +4 -0
  140. package/dist/components/kemet-input/docs/stories.js +54 -113
  141. package/dist/components/kemet-input/docs/stories.js.map +1 -1
  142. package/dist/components/kemet-input/kemet-input.d.ts +18 -37
  143. package/dist/components/kemet-input/kemet-input.js +18 -38
  144. package/dist/components/kemet-input/kemet-input.js.map +1 -1
  145. package/dist/components/kemet-input/styles.js +38 -21
  146. package/dist/components/kemet-input/styles.js.map +1 -1
  147. package/dist/components/kemet-modal/docs/stories.d.ts +2 -0
  148. package/dist/components/kemet-modal/docs/stories.js +25 -68
  149. package/dist/components/kemet-modal/docs/stories.js.map +1 -1
  150. package/dist/components/kemet-modal/kemet-modal-close.js +1 -1
  151. package/dist/components/kemet-modal/kemet-modal-close.js.map +1 -1
  152. package/dist/components/kemet-modal/kemet-modal.d.ts +20 -10
  153. package/dist/components/kemet-modal/kemet-modal.js +39 -20
  154. package/dist/components/kemet-modal/kemet-modal.js.map +1 -1
  155. package/dist/components/kemet-modal/styles.js +77 -48
  156. package/dist/components/kemet-modal/styles.js.map +1 -1
  157. package/dist/components/kemet-password/docs/stories.js +10 -18
  158. package/dist/components/kemet-password/docs/stories.js.map +1 -1
  159. package/dist/components/kemet-password/kemet-password.d.ts +14 -8
  160. package/dist/components/kemet-password/kemet-password.js +4 -33
  161. package/dist/components/kemet-password/kemet-password.js.map +1 -1
  162. package/dist/components/kemet-password/styles.js +7 -7
  163. package/dist/components/kemet-password/styles.js.map +1 -1
  164. package/dist/components/kemet-popper/docs/stories.d.ts +2 -0
  165. package/dist/components/kemet-popper/docs/stories.js +32 -39
  166. package/dist/components/kemet-popper/docs/stories.js.map +1 -1
  167. package/dist/components/kemet-popper/kemet-popper-close.d.ts +1 -1
  168. package/dist/components/kemet-popper/kemet-popper-close.js +2 -3
  169. package/dist/components/kemet-popper/kemet-popper-close.js.map +1 -1
  170. package/dist/components/kemet-popper/kemet-popper.d.ts +19 -10
  171. package/dist/components/kemet-popper/kemet-popper.js +23 -32
  172. package/dist/components/kemet-popper/kemet-popper.js.map +1 -1
  173. package/dist/components/kemet-popper/styles.js +14 -5
  174. package/dist/components/kemet-popper/styles.js.map +1 -1
  175. package/dist/components/kemet-radio/docs/stories.d.ts +2 -0
  176. package/dist/components/kemet-radio/docs/stories.js +24 -20
  177. package/dist/components/kemet-radio/docs/stories.js.map +1 -1
  178. package/dist/components/kemet-radio/kemet-radio.d.ts +7 -6
  179. package/dist/components/kemet-radio/kemet-radio.js +7 -6
  180. package/dist/components/kemet-radio/kemet-radio.js.map +1 -1
  181. package/dist/components/kemet-radio/kemet-radios.d.ts +6 -5
  182. package/dist/components/kemet-radio/kemet-radios.js +11 -5
  183. package/dist/components/kemet-radio/kemet-radios.js.map +1 -1
  184. package/dist/components/kemet-radio/styles.js +26 -16
  185. package/dist/components/kemet-radio/styles.js.map +1 -1
  186. package/dist/components/kemet-rotator/docs/stories.d.ts +1 -0
  187. package/dist/components/kemet-rotator/docs/stories.js +16 -28
  188. package/dist/components/kemet-rotator/docs/stories.js.map +1 -1
  189. package/dist/components/kemet-rotator/kemet-rotator.d.ts +3 -3
  190. package/dist/components/kemet-rotator/kemet-rotator.js +2 -3
  191. package/dist/components/kemet-rotator/kemet-rotator.js.map +1 -1
  192. package/dist/components/kemet-rotator/styles.js +4 -2
  193. package/dist/components/kemet-rotator/styles.js.map +1 -1
  194. package/dist/components/kemet-scroll-link/docs/stories.js +2 -2
  195. package/dist/components/kemet-scroll-link/docs/stories.js.map +1 -1
  196. package/dist/components/kemet-scroll-link/kemet-scroll-link.d.ts +2 -2
  197. package/dist/components/kemet-scroll-link/kemet-scroll-link.js +11 -10
  198. package/dist/components/kemet-scroll-link/kemet-scroll-link.js.map +1 -1
  199. package/dist/components/kemet-scroll-nav/docs/stories.js +5 -5
  200. package/dist/components/kemet-scroll-nav/docs/stories.js.map +1 -1
  201. package/dist/components/kemet-scroll-nav/kemet-scroll-nav.d.ts +7 -7
  202. package/dist/components/kemet-scroll-nav/kemet-scroll-nav.js +7 -12
  203. package/dist/components/kemet-scroll-nav/kemet-scroll-nav.js.map +1 -1
  204. package/dist/components/kemet-scroll-nav/styles.js +10 -4
  205. package/dist/components/kemet-scroll-nav/styles.js.map +1 -1
  206. package/dist/components/kemet-scroll-snap/docs/stories.d.ts +6 -0
  207. package/dist/components/kemet-scroll-snap/docs/stories.js +72 -82
  208. package/dist/components/kemet-scroll-snap/docs/stories.js.map +1 -1
  209. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.d.ts +8 -7
  210. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.js +4 -4
  211. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.js.map +1 -1
  212. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-slide.d.ts +1 -1
  213. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-slide.js +1 -1
  214. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-slide.js.map +1 -1
  215. package/dist/components/kemet-scroll-snap/kemet-scroll-snap.d.ts +7 -6
  216. package/dist/components/kemet-scroll-snap/kemet-scroll-snap.js +6 -11
  217. package/dist/components/kemet-scroll-snap/kemet-scroll-snap.js.map +1 -1
  218. package/dist/components/kemet-scroll-snap/styles.js +14 -6
  219. package/dist/components/kemet-scroll-snap/styles.js.map +1 -1
  220. package/dist/components/kemet-select/docs/stories.d.ts +3 -0
  221. package/dist/components/kemet-select/docs/stories.js +25 -33
  222. package/dist/components/kemet-select/docs/stories.js.map +1 -1
  223. package/dist/components/kemet-select/kemet-option.d.ts +1 -1
  224. package/dist/components/kemet-select/kemet-option.js +1 -1
  225. package/dist/components/kemet-select/kemet-option.js.map +1 -1
  226. package/dist/components/kemet-select/kemet-select.d.ts +32 -23
  227. package/dist/components/kemet-select/kemet-select.js +3 -44
  228. package/dist/components/kemet-select/kemet-select.js.map +1 -1
  229. package/dist/components/kemet-select/styles.js +32 -16
  230. package/dist/components/kemet-select/styles.js.map +1 -1
  231. package/dist/components/kemet-sortable/docs/stories.js +5 -10
  232. package/dist/components/kemet-sortable/docs/stories.js.map +1 -1
  233. package/dist/components/kemet-sortable/kemet-sortable.d.ts +5 -5
  234. package/dist/components/kemet-sortable/kemet-sortable.js +5 -5
  235. package/dist/components/kemet-sortable/kemet-sortable.js.map +1 -1
  236. package/dist/components/kemet-sortable/styles.js +1 -1
  237. package/dist/components/kemet-sortable/styles.js.map +1 -1
  238. package/dist/components/kemet-svgs/docs/stories.js +11 -11
  239. package/dist/components/kemet-svgs/docs/stories.js.map +1 -1
  240. package/dist/components/kemet-svgs/kemet-svgs.d.ts +1 -1
  241. package/dist/components/kemet-svgs/kemet-svgs.js +1 -1
  242. package/dist/components/kemet-svgs/kemet-svgs.js.map +1 -1
  243. package/dist/components/kemet-tabs/docs/stories.d.ts +9 -0
  244. package/dist/components/kemet-tabs/docs/stories.js +78 -78
  245. package/dist/components/kemet-tabs/docs/stories.js.map +1 -1
  246. package/dist/components/kemet-tabs/kemet-tab-panel.d.ts +2 -1
  247. package/dist/components/kemet-tabs/kemet-tab-panel.js +4 -1
  248. package/dist/components/kemet-tabs/kemet-tab-panel.js.map +1 -1
  249. package/dist/components/kemet-tabs/kemet-tab.d.ts +3 -2
  250. package/dist/components/kemet-tabs/kemet-tab.js +6 -3
  251. package/dist/components/kemet-tabs/kemet-tab.js.map +1 -1
  252. package/dist/components/kemet-tabs/kemet-tabs.d.ts +30 -21
  253. package/dist/components/kemet-tabs/kemet-tabs.js +12 -48
  254. package/dist/components/kemet-tabs/kemet-tabs.js.map +1 -1
  255. package/dist/components/kemet-tabs/styles.js +12 -5
  256. package/dist/components/kemet-tabs/styles.js.map +1 -1
  257. package/dist/components/kemet-textarea/docs/stories.d.ts +3 -0
  258. package/dist/components/kemet-textarea/docs/stories.js +37 -67
  259. package/dist/components/kemet-textarea/docs/stories.js.map +1 -1
  260. package/dist/components/kemet-textarea/kemet-textarea.d.ts +12 -12
  261. package/dist/components/kemet-textarea/kemet-textarea.js +12 -12
  262. package/dist/components/kemet-textarea/kemet-textarea.js.map +1 -1
  263. package/dist/components/kemet-textarea/styles.js +31 -16
  264. package/dist/components/kemet-textarea/styles.js.map +1 -1
  265. package/dist/components/kemet-toggle/docs/stories.d.ts +2 -0
  266. package/dist/components/kemet-toggle/docs/stories.js +21 -36
  267. package/dist/components/kemet-toggle/docs/stories.js.map +1 -1
  268. package/dist/components/kemet-toggle/kemet-toggle.d.ts +12 -12
  269. package/dist/components/kemet-toggle/kemet-toggle.js +12 -12
  270. package/dist/components/kemet-toggle/kemet-toggle.js.map +1 -1
  271. package/dist/components/kemet-toggle/styles.js +12 -6
  272. package/dist/components/kemet-toggle/styles.js.map +1 -1
  273. package/dist/components/kemet-tooltip/docs/stories.d.ts +4 -0
  274. package/dist/components/kemet-tooltip/docs/stories.js +58 -33
  275. package/dist/components/kemet-tooltip/docs/stories.js.map +1 -1
  276. package/dist/components/kemet-tooltip/kemet-tooltip.d.ts +2 -2
  277. package/dist/components/kemet-tooltip/kemet-tooltip.js +13 -12
  278. package/dist/components/kemet-tooltip/kemet-tooltip.js.map +1 -1
  279. package/dist/components/kemet-tooltip/styles.js +2 -2
  280. package/dist/components/kemet-tooltip/styles.js.map +1 -1
  281. package/dist/components/kemet-tracker/docs/stories.d.ts +1 -0
  282. package/dist/components/kemet-tracker/docs/stories.js +18 -22
  283. package/dist/components/kemet-tracker/docs/stories.js.map +1 -1
  284. package/dist/components/kemet-tracker/kemet-tracker-step.d.ts +18 -18
  285. package/dist/components/kemet-tracker/kemet-tracker-step.js +18 -18
  286. package/dist/components/kemet-tracker/kemet-tracker-step.js.map +1 -1
  287. package/dist/components/kemet-tracker/kemet-tracker.d.ts +2 -1
  288. package/dist/components/kemet-tracker/kemet-tracker.js.map +1 -1
  289. package/dist/components/kemet-tracker/styles.js +23 -12
  290. package/dist/components/kemet-tracker/styles.js.map +1 -1
  291. package/dist/components/kemet-upload/docs/stories.js +17 -22
  292. package/dist/components/kemet-upload/docs/stories.js.map +1 -1
  293. package/dist/components/kemet-upload/kemet-upload-file.d.ts +3 -3
  294. package/dist/components/kemet-upload/kemet-upload-file.js +4 -5
  295. package/dist/components/kemet-upload/kemet-upload-file.js.map +1 -1
  296. package/dist/components/kemet-upload/kemet-upload.d.ts +7 -7
  297. package/dist/components/kemet-upload/kemet-upload.js +7 -12
  298. package/dist/components/kemet-upload/kemet-upload.js.map +1 -1
  299. package/dist/components/kemet-upload/styles.js +27 -18
  300. package/dist/components/kemet-upload/styles.js.map +1 -1
  301. package/dist/kemet-components.bundle.js +98 -86
  302. package/dist/kemet-components.bundle.js.map +1 -1
  303. package/dist/kemet-components.cjs +3076 -2910
  304. package/dist/kemet-components.js +3076 -2910
  305. package/dist/styles/kemet.base.css +255 -78
  306. package/dist/styles/kemet.base.css.map +1 -1
  307. package/dist/styles/kemet.base.scss +6 -5
  308. package/dist/styles/kemet.components.css +1 -16
  309. package/dist/styles/kemet.components.css.map +1 -1
  310. package/dist/styles/kemet.components.scss +0 -2
  311. package/dist/styles/kemet.core.css +5554 -2122
  312. package/dist/styles/kemet.core.css.map +1 -1
  313. package/dist/styles/shared/_config.scss +306 -93
  314. package/dist/styles/shared/_helpers.scss +88 -16
  315. package/dist/tsconfig.tsbuildinfo +1 -1
  316. package/package.json +17 -14
  317. package/dist/components/kemet-accordion/types.d.ts +0 -9
  318. package/dist/components/kemet-accordion/types.js +0 -2
  319. package/dist/components/kemet-accordion/types.js.map +0 -1
  320. package/dist/components/kemet-avatar/types.d.ts +0 -8
  321. package/dist/components/kemet-avatar/types.js +0 -2
  322. package/dist/components/kemet-avatar/types.js.map +0 -1
  323. package/dist/components/kemet-card/types.d.ts +0 -3
  324. package/dist/components/kemet-card/types.js +0 -2
  325. package/dist/components/kemet-card/types.js.map +0 -1
  326. package/dist/components/kemet-carousel/types.d.ts +0 -21
  327. package/dist/components/kemet-carousel/types.js +0 -2
  328. package/dist/components/kemet-carousel/types.js.map +0 -1
  329. package/dist/components/kemet-combo/types.d.ts +0 -5
  330. package/dist/components/kemet-combo/types.js +0 -2
  331. package/dist/components/kemet-combo/types.js.map +0 -1
  332. package/dist/components/kemet-draggable/types.d.ts +0 -6
  333. package/dist/components/kemet-draggable/types.js +0 -2
  334. package/dist/components/kemet-draggable/types.js.map +0 -1
  335. package/dist/styles/components/drawer.scss +0 -11
  336. package/dist/styles/components/modal.scss +0 -8
@@ -1 +1 @@
1
- {"version":3,"file":"kemet-tabs.js","sourceRoot":"","sources":["../../../src/components/kemet-tabs/kemet-tabs.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-lonely-if */\n/* eslint-disable no-case-declarations */\nimport { LitElement, html } from 'lit';\nimport { stylesKemetTabs } from './styles';\nimport { emitEvent } from '../../utilities/misc/events';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { KemetTabInterface, KemetTabPanelInterface, TypePanelEffect, TypePlacement, TypeTabsAlign } from './types';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-tabs\n * @summary A group of tabs and panels.\n *\n * @prop {string} selected - The selected tab by name\n * @prop {number} selectedIndex - The selected tab by index\n * @prop {number} panelPosition - Positions the current panel\n * @prop {string} panelEffect - The transition effect for panels\n * @prop {boolean} swipe - Determines whether or not to enable swipe behavior\n * @prop {string} placement - Places the tabs to the top, right, bottom, or left\n * @prop {boolean} divider - Determines whether or not to show a divider line\n * @prop {string} tabsAlign - Spacing alignment of the tabs\n * @prop {object} ink - An object that contains information about the ink\n * @prop {boolean} hideInk - Determines whether or not to hide the ink\n * @prop {boolean} overflow - Is true when the space of the tabs is larger than it's container\n *\n * @slot tab - Place the tabs here.\n * @slot panel - Place the panels here.\n *\n * @csspart links - The container for the tablist.\n * @csspart tablist - Contains the tabs.\n * @csspart panels - Contains the panels.\n * @csspart ink - The ink element.\n * @csspart divider - The divider element.\n *\n * @cssproperty --kemet-tabs-ink-size - The thickness of the ink. Default: 6px.\n * @cssproperty --kemet-tabs-ink-radius - The radius on the ink. Default: 6px.\n * @cssproperty --kemet-tabs-ink-color - The color of the ink. Default: var(--kemet-color-background).\n * @cssproperty --kemet-tabs-divider-size - The thickness of the divider. Default: 1px.\n * @cssproperty --kemet-tabs-divider-color - The color of the divider. Default: var(--kemet-color-gray4).\n * @cssproperty --kemet-tabs-transition-speed - The transition speed of the panels. Default: 0.5s.\n * @cssproperty --kemet-tabs-spacer - The space between tabs and panels. Default: 1rem.\n *\n * @event kemet-tab-changed - Fires when a tab is changed\n *\n */\n\n@customElement('kemet-tabs')\nexport default class KemetTabs extends LitElement {\n static styles = [stylesKemetTabs];\n\n @property({ type: String, reflect: true })\n selected: string;\n\n @property({ type: Number })\n selectedIndex: number = 0;\n\n @property({ type: Number })\n panelPosition: number = 0;\n\n @property({ type: String, reflect: true, attribute: 'panel-effect' })\n panelEffect: TypePanelEffect = 'none';\n\n @property({ type: Boolean })\n swipe: boolean;\n\n @property({ type: String, reflect: true })\n placement: TypePlacement = 'top';\n\n @property({ type: Boolean })\n divider: boolean;\n\n @property({ type: String, reflect: true, attribute: 'tabs-align' })\n tabsAlign: TypeTabsAlign = 'center';\n\n @property({ type: Object })\n ink: any;\n\n @property({ type: Boolean, attribute: 'hide-ink' })\n hideInk: boolean = false;\n\n @property({ type: Boolean, reflect: true })\n overflow: boolean;\n\n @state()\n tabs: any[];\n\n @state()\n panels: any[];\n\n @state()\n xDown: number | null;\n\n @state()\n yDown: number | null;\n\n @state()\n links: HTMLElement;\n\n @query('#panels')\n panelsElement: HTMLElement;\n\n\n constructor() {\n super();\n\n this.addEventListener('kemet-tab-selected', this.tabSelectedChange.bind(this));\n this.addEventListener('kemet-tab-close', this.handleTabClose.bind(this));\n window.addEventListener('resize', this.handleResize.bind(this));\n }\n\n firstUpdated() {\n // standard properties\n this.tabs = [];\n this.panels = [];\n this.xDown = null;\n this.yDown = null;\n\n this.links = this.shadowRoot.getElementById('links');\n }\n\n render() {\n return html`\n ${this.makeLeftArrow()}\n ${this.makeRightArrow()}\n <div id=\"links\" part=\"links\">\n <div part='tablist' role=\"tablist\">\n <slot name=\"tab\" @slotchange=${() => this.handleLinksSlotChange()}></slot>\n </div>\n ${this.makeInk('links')}\n </div>\n ${this.makeInk('host')}\n ${this.makeDivider()}\n <section id=\"panels\" part=\"panels\" style=\"transform:translateX(${this.panelPosition}px);\">\n <div>\n <slot name=\"panel\" @slotchange=${() => this.handlePanelsSlotChange()}></slot>\n </div>\n </section>\n `;\n }\n\n updated() {\n this.determineFade();\n this.determineStacked();\n }\n\n handleLinksSlotChange() {\n const tabs = this.querySelectorAll('kemet-tab');\n let index = 0;\n\n tabs.forEach((tab: KemetTabInterface) => {\n // give each tab an index to select by if link/panel is not used\n tab.index = index;\n index += 1;\n\n // store the list of tabs\n this.tabs = this.tabs.concat(tab);\n\n // add keyboard support\n tab.addEventListener('keydown', event => this.handleTabKeydown(event));\n });\n\n // default to the first tab/panel selected\n if (this.tabs.length > 0) this.tabs[0].selected = true;\n\n setTimeout(() => {\n this.selectTab();\n }, 1);\n this.determineOverflow();\n }\n\n handlePanelsSlotChange() {\n const panels = this.querySelectorAll('kemet-tab-panel');\n const panelElement = this.shadowRoot.getElementById('panels');\n let index = 0;\n\n panels.forEach((panel: KemetTabPanelInterface) => {\n // give each panel an index to select by if link/panel is not used\n panel.index = index;\n index += 1;\n\n // store the list of panels\n this.panels = this.panels.concat(panel);\n });\n\n // default to the first tab/panel selected\n if (this.panels.length > 0) this.panels[0].selected = true;\n\n // add swipe support\n if (this.swipe) {\n panelElement.addEventListener('touchstart', event => this.handleTouchStart(event), false);\n panelElement.addEventListener('touchmove', event => this.handleTouchMove(event), false);\n }\n\n this.selectPanel();\n }\n\n handleLeftArrow() {\n const selectedElement = this.tabs.find(tab => tab.selected) || this.tabs[0];\n const previousElement = selectedElement.previousElementSibling;\n const selectedIndex = this.tabs.findIndex(tab => tab.selected);\n\n if (this.selected) {\n this.selected = previousElement ? previousElement.link : selectedElement.link;\n } else {\n this.selectedIndex = selectedIndex > 0 ? selectedIndex - 1 : 0;\n }\n\n if (previousElement) {\n this.links.scrollLeft = previousElement.offsetLeft - 20;\n }\n\n this.selectTab();\n this.selectPanel();\n }\n\n handleRightArrow() {\n const selectedElement = this.tabs.find(tab => tab.selected) || this.tabs[this.tabs.length - 1];\n const nextElement = selectedElement.nextElementSibling;\n const selectedIndex = this.tabs.findIndex(tab => tab.selected);\n\n if (this.selected) {\n this.selected = nextElement ? nextElement.link : selectedElement.link;\n } else {\n this.selectedIndex = selectedIndex < this.tabs.length - 1\n ? selectedIndex + 1\n : this.tabs.length - 1;\n }\n\n if (nextElement) {\n this.links.scrollLeft = nextElement.offsetLeft - 20;\n }\n\n this.selectTab();\n this.selectPanel();\n }\n\n handleTabClose(event) {\n const tab = event.detail;\n const panel = this.panels[tab.index];\n\n this.selected = this.tabs[0].link;\n this.selectedIndex = 0;\n\n panel.remove();\n tab.remove();\n }\n\n makeInk(location) {\n if (this.hideInk) {\n return null;\n }\n\n if ((this.placement === 'top' || this.placement === 'bottom') && this.ink && location === 'links') {\n return html`<div part=\"ink\" style=\"width:${this.ink.width}; transform:translateX(${this.ink.positionX})\"></div>`;\n }\n\n if ((this.placement === 'left' || this.placement === 'right') && this.ink && location === 'host') {\n return html`<div part=\"ink\" style=\"height:${this.ink.height}; transform:translateY(${this.ink.positionY})\"></div>`;\n }\n\n return null;\n }\n\n makeDivider() {\n if (this.divider) {\n return html`<div part=\"divider\"></div>`;\n }\n\n return null;\n }\n\n makeLeftArrow() {\n if (this.overflow) {\n return html`<kemet-icon icon='chevron-left' size=\"20\" @click=${() => this.handleLeftArrow()}></kemet-icon>`;\n }\n\n return null;\n }\n\n makeRightArrow() {\n if (this.overflow) {\n return html`<kemet-icon icon='chevron-right' size=\"20\" @click=${() => this.handleRightArrow()}></kemet-icon>`;\n }\n\n return null;\n }\n\n selectTab() {\n const marginLeft = this.links ? parseInt(window.getComputedStyle(this.links).marginLeft.replace('px', ''), 10) : 0;\n const overflowOffset = this.overflow ? marginLeft : 0;\n\n // if the user uses the selected attribute select by it\n if (this.selected) {\n this.tabs.forEach((tab) => {\n const tabName = tab.getAttribute('link');\n\n if (tabName === this.selected) {\n tab.selected = true;\n this.selected = tabName;\n\n this.ink = {\n width: `${tab.offsetWidth}px`,\n height: `${tab.offsetHeight}px`,\n positionX: `${tab.offsetLeft - overflowOffset}px`,\n positionY: `${tab.offsetTop}px`,\n };\n\n this.links.scrollLeft = tab.offsetLeft - overflowOffset;\n } else {\n tab.selected = false;\n }\n });\n\n // otherwise select by index\n } else {\n this.tabs.forEach((tab) => {\n if (this.selectedIndex === tab.index) {\n tab.selected = true;\n\n this.ink = {\n width: `${tab.offsetWidth}px`,\n height: `${tab.offsetHeight}px`,\n positionX: `${tab.offsetLeft - overflowOffset}px`,\n positionY: `${tab.offsetTop}px`,\n };\n\n this.links.scrollLeft = tab.offsetLeft - overflowOffset;\n } else {\n tab.selected = false;\n }\n });\n }\n }\n\n selectPanel() {\n // if the user uses the selected attribute select by it\n if (this.selected) {\n this.panels.forEach((panel) => {\n const panelName = panel.getAttribute('panel');\n\n if (this.panelEffect === 'fade' && panel.index !== 0) {\n panel.classList.add('push');\n }\n\n if (this.placement === 'left' || this.placement === 'right') {\n panel.classList.add('vertical');\n }\n\n if (panelName === this.selected) {\n panel.selected = true;\n this.animatePanel(panelName, null);\n } else {\n panel.selected = false;\n }\n });\n\n // otherwise select by index\n } else {\n this.panels.forEach((panel) => {\n if (this.panelEffect === 'fade' && panel.index !== 0) {\n panel.classList.add('push');\n }\n\n if (this.placement === 'left' || this.placement === 'right') {\n panel.classList.add('vertical');\n }\n\n if (this.selectedIndex === panel.index) {\n panel.selected = true;\n this.animatePanel(null, panel.index);\n } else {\n panel.selected = false;\n }\n });\n }\n }\n\n dispatchTabChange() {\n const details = {\n currentTabName: this.selected,\n currentTabIndex: this.selectedIndex,\n };\n\n emitEvent(this, 'kemet-tab-changed', details);\n }\n\n tabSelectedChange(event) {\n if (this.selected) {\n // if selected has been set, use the string attribute\n this.selected = event.detail.getAttribute('link');\n } else {\n // otherwise use the generated index\n this.selectedIndex = event.detail.index;\n }\n\n this.selectTab();\n this.selectPanel();\n this.dispatchTabChange();\n }\n\n\n determineFade() {\n this.panels.forEach((panel) => {\n // add fade class if panel effect is fade\n if (this.panelEffect === 'fade') panel.classList.add('fade');\n });\n }\n\n determineStacked() {\n this.panels.forEach((panel) => {\n // add fade class if panel effect is fade\n if (this.panelEffect === 'stacked') panel.classList.add('stacked');\n });\n }\n\n determineOverflow() {\n const tabsContainerWidth = this.offsetWidth;\n const tabElements = this.querySelectorAll('kemet-tab');\n\n let totalTabsWidth = 0;\n\n tabElements.forEach((tab) => {\n totalTabsWidth += tab.offsetWidth;\n });\n\n if (totalTabsWidth > tabsContainerWidth && (this.placement === 'top' || this.placement === 'bottom')) {\n this.overflow = true;\n } else {\n this.overflow = false;\n }\n }\n\n handleResize() {\n if (this.tabs && this.panels) {\n const marginLeft = this.links ? parseInt(window.getComputedStyle(this.links).marginLeft.replace('px', ''), 10) : 0;\n const overflowOffset = this.overflow ? marginLeft : 0;\n const selectedElement = this.tabs.find(tab => tab.selected);\n\n if (selectedElement) {\n this.ink = {\n width: `${selectedElement.offsetWidth}px`,\n height: `${selectedElement.offsetHeight}px`,\n positionX: `${selectedElement.offsetLeft - overflowOffset}px`,\n positionY: `${selectedElement.offsetTop}px`,\n };\n }\n\n this.determineOverflow();\n\n if (this.selected) {\n this.animatePanel(this.selected, null);\n } else {\n this.animatePanel(null, this.selectedIndex);\n }\n }\n }\n\n animatePanel(panelName, panelIndex) {\n if (panelName) {\n const selectedPanel = this.querySelector(`[panel=\"${panelName}\"]`) as KemetTabPanelInterface;\n if (selectedPanel) this.panelPosition = selectedPanel.offsetLeft * -1;\n } else {\n if (this.panels[panelIndex]) this.panelPosition = this.panels[panelIndex].offsetLeft * -1;\n }\n }\n\n handleTabKeydown(event) {\n if (this.selected) {\n switch (event.key) {\n case 'Home':\n this.selected = this.tabs[0].getAttribute('link');\n break;\n case 'End':\n this.selected = this.tabs[this.tabs.length - 1].getAttribute('link');\n break;\n case 'ArrowRight':\n const nextLinkElement = this.querySelector('kemet-tab[selected]').nextElementSibling;\n const nextLink = nextLinkElement ? nextLinkElement.getAttribute('link') : false;\n\n if (nextLink) {\n this.selected = nextLink;\n }\n break;\n case 'ArrowLeft':\n const previousLinkElement = this.querySelector('kemet-tab[selected]').previousElementSibling;\n const previousLink = previousLinkElement ? previousLinkElement.getAttribute('link') : false;\n\n if (previousLink) {\n this.selected = previousLink;\n }\n break;\n default: break;\n }\n\n this.tabs.find(tab => tab.link === this.selected).focus();\n } else {\n switch (event.key) {\n case 'Home':\n this.selectedIndex = 0;\n break;\n case 'End':\n this.selectedIndex = this.tabs.length - 1;\n break;\n case 'ArrowRight':\n if (this.selectedIndex < this.tabs.length - 1) {\n this.selectedIndex += 1;\n } else {\n this.selectedIndex = this.tabs.length - 1;\n }\n break;\n case 'ArrowLeft':\n if (this.selectedIndex < 1) {\n this.selectedIndex = 0;\n } else {\n this.selectedIndex -= 1;\n }\n break;\n default: break;\n }\n\n this.tabs[this.selectedIndex].focus();\n }\n }\n\n handleTouchStart(event) {\n this.xDown = event.touches[0].clientX;\n this.yDown = event.touches[0].clientY;\n }\n\n handleTouchMove(event) {\n if (!this.xDown || !this.yDown) {\n return;\n }\n\n const xUp = event.touches[0].clientX;\n const yUp = event.touches[0].clientY;\n const xDiff = this.xDown - xUp;\n const yDiff = this.yDown - yUp;\n\n const nextElement = this.querySelector('kemet-tab-panel[selected]')?.nextElementSibling;\n const next = nextElement ? nextElement.getAttribute('panel') : false;\n const previousElement = this.querySelector('kemet-tab-panel[selected]')?.previousElementSibling;\n const previous = previousElement ? previousElement.getAttribute('panel') : false;\n\n if (Math.abs(xDiff) > Math.abs(yDiff)) {\n if (xDiff > 0) {\n if (this.selected) {\n if (next) this.selected = next;\n } else {\n if (this.selectedIndex < this.tabs.length) this.selectedIndex += 1;\n }\n } else {\n if (this.selected) {\n if (previous) this.selected = previous;\n } else {\n if (this.selectedIndex > 0) this.selectedIndex -= 1;\n }\n }\n\n this.selectTab();\n this.selectPanel();\n }\n\n this.xDown = null;\n this.yDown = null;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-tabs': KemetTabs\n }\n}\n"]}
1
+ {"version":3,"file":"kemet-tabs.js","sourceRoot":"","sources":["../../../src/components/kemet-tabs/kemet-tabs.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-lonely-if */\n/* eslint-disable no-case-declarations */\nimport { LitElement, html } from 'lit';\nimport {\n customElement, property, query, state,\n} from 'lit/decorators.js';\nimport { emitEvent } from '../../utilities/misc/events';\nimport {\n KemetTabPanelInterface, TypePanelEffect, TypePlacement, TypeTabsAlign,\n} from './types';\nimport { stylesKemetTabs } from './styles';\n\nimport type KemetTab from './kemet-tab';\nimport type KemetTabPanel from './kemet-tab-panel';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-tabs\n * @summary A group of tabs and panels.\n *\n * @prop {string} selected - The selected tab by name\n * @prop {number} selectedIndex - The selected tab by index\n * @prop {number} panelPosition - Positions the current panel\n * @prop {string} panelEffect - The transition effect for panels\n * @prop {boolean} swipe - Determines whether to enable swipe behavior\n * @prop {string} placement - Places the tabs to the top, right, bottom, or left\n * @prop {boolean} divider - Determines whether to show a divider line\n * @prop {string} tabsAlign - Spacing alignment of the tabs\n * @prop {object} ink - An object that contains information about the ink\n * @prop {boolean} hideInk - Determines whether to hide the ink\n * @prop {boolean} overflow - Is true when the space of the tabs is larger than it's container\n *\n * @slot tab - Place the tabs here.\n * @slot panel - Place the panels here.\n *\n * @csspart links - The container for the tablist.\n * @csspart tablist - Contains the tabs.\n * @csspart panels - Contains the panels.\n * @csspart ink - The ink element.\n * @csspart divider - The divider element.\n *\n * @cssproperty --kemet-tabs-ink-size - The thickness of the ink.\n * @cssproperty --kemet-tabs-ink-radius - The radius on the ink.\n * @cssproperty --kemet-tabs-ink-color - The color of the ink.\n * @cssproperty --kemet-tabs-divider-size - The thickness of the divider.\n * @cssproperty --kemet-tabs-divider-color - The color of the divider.\n * @cssproperty --kemet-tabs-transition-speed - The transition speed of the panels.\n * @cssproperty --kemet-tabs-spacer - The space between tabs and panels.\n *\n * @event kemet-tab-changed - Fires when a tab is changed\n *\n */\n\ninterface Iink {\n width: string;\n height: string;\n positionX: string;\n positionY: string;\n}\n\n@customElement('kemet-tabs')\nexport default class KemetTabs extends LitElement {\n static styles = [stylesKemetTabs];\n\n @property({ type: String, reflect: true })\n selected: string;\n\n @property({ type: Number })\n selectedIndex: number = 0;\n\n @property({ type: Number })\n panelPosition: number = 0;\n\n @property({ type: String, reflect: true, attribute: 'panel-effect' })\n panelEffect: TypePanelEffect = 'none';\n\n @property({ type: Boolean })\n swipe: boolean;\n\n @property({ type: String, reflect: true })\n placement: TypePlacement = 'top';\n\n @property({ type: Boolean })\n divider: boolean;\n\n @property({ type: String, reflect: true, attribute: 'tabs-align' })\n tabsAlign: TypeTabsAlign = 'center';\n\n @property({ type: Object })\n ink: Iink;\n\n @property({ type: Boolean, attribute: 'hide-ink' })\n hideInk: boolean = false;\n\n @property({ type: Boolean, reflect: true })\n overflow: boolean;\n\n @state()\n tabs: KemetTab[];\n\n @state()\n panels: KemetTabPanel[];\n\n @state()\n xDown: number | null;\n\n @state()\n yDown: number | null;\n\n @state()\n links: HTMLElement;\n\n @query('#panels')\n panelsElement: HTMLElement;\n\n constructor() {\n super();\n\n this.addEventListener('kemet-tab-selected', this.tabSelectedChange.bind(this));\n this.addEventListener('kemet-tab-close', this.handleTabClose.bind(this));\n window.addEventListener('resize', this.handleResize.bind(this));\n }\n\n firstUpdated() {\n // standard properties\n this.tabs = [];\n this.panels = [];\n this.xDown = null;\n this.yDown = null;\n\n this.links = this.shadowRoot.getElementById('links');\n }\n\n render() {\n return html`\n ${this.makeLeftArrow()}\n ${this.makeRightArrow()}\n <div id=\"links\" part=\"links\">\n <div part='tablist' role=\"tablist\">\n <slot name=\"tab\" @slotchange=${() => this.handleLinksSlotChange()}></slot>\n </div>\n ${this.makeInk('links')}\n </div>\n ${this.makeInk('host')}\n ${this.makeDivider()}\n <section id=\"panels\" part=\"panels\" style=\"transform:translateX(${this.panelPosition}px);\">\n <div>\n <slot name=\"panel\" @slotchange=${() => this.handlePanelsSlotChange()}></slot>\n </div>\n </section>\n `;\n }\n\n updated(prevProps: Map<string, never>) {\n this.determineFade();\n this.determineStacked();\n\n if (prevProps.get('selected') && prevProps.get('selected') !== this.selected) {\n this.selectTab();\n this.selectPanel();\n }\n\n if (typeof prevProps.get('selectedIndex') === 'number' && prevProps.get('selectedIndex') !== this.selected) {\n this.selectTab();\n this.selectPanel();\n }\n }\n\n handleLinksSlotChange() {\n const tabs = this.querySelectorAll('kemet-tab');\n let index = 0;\n\n tabs.forEach((tab: KemetTab) => {\n // give each tab an index to select by if link/panel is not used\n tab.index = index;\n index += 1;\n\n // store the list of tabs\n this.tabs = this.tabs.concat(tab);\n\n // add keyboard support\n tab.addEventListener('keydown', event => this.handleTabKeydown(event));\n });\n\n // default to the first tab/panel selected\n if (this.tabs.length > 0) this.tabs[0].selected = true;\n\n setTimeout(() => {\n this.selectTab();\n }, 1);\n this.determineOverflow();\n }\n\n handlePanelsSlotChange() {\n const panels = this.querySelectorAll('kemet-tab-panel');\n const panelElement = this.shadowRoot.getElementById('panels');\n let index = 0;\n\n panels.forEach((panel: KemetTabPanel) => {\n // give each panel an index to select by if link/panel is not used\n panel.index = index;\n index += 1;\n\n // store the list of panels\n this.panels = this.panels.concat(panel);\n });\n\n // default to the first tab/panel selected\n if (this.panels.length > 0) this.panels[0].selected = true;\n\n // add swipe support\n if (this.swipe) {\n panelElement.addEventListener('touchstart', event => this.handleTouchStart(event), false);\n panelElement.addEventListener('touchmove', event => this.handleTouchMove(event), false);\n }\n\n this.selectPanel();\n }\n\n handleLeftArrow() {\n const selectedElement = this.tabs.find(tab => tab.selected) || this.tabs[0];\n const previousElement = selectedElement.previousElementSibling as KemetTab;\n const selectedIndex = this.tabs.findIndex(tab => tab.selected);\n\n if (this.selected) {\n this.selected = previousElement ? previousElement.link : selectedElement.link;\n } else {\n this.selectedIndex = selectedIndex > 0 ? selectedIndex - 1 : 0;\n }\n\n if (previousElement) {\n this.links.scrollLeft = previousElement.offsetLeft - 20;\n }\n\n this.selectTab();\n this.selectPanel();\n }\n\n handleRightArrow() {\n const selectedElement = this.tabs.find(tab => tab.selected) || this.tabs[this.tabs.length - 1];\n const nextElement = selectedElement.nextElementSibling as KemetTab;\n const selectedIndex = this.tabs.findIndex(tab => tab.selected);\n\n if (this.selected) {\n this.selected = nextElement ? nextElement.link : selectedElement.link;\n } else {\n this.selectedIndex = selectedIndex < this.tabs.length - 1\n ? selectedIndex + 1\n : this.tabs.length - 1;\n }\n\n if (nextElement) {\n this.links.scrollLeft = nextElement.offsetLeft - 20;\n }\n\n this.selectTab();\n this.selectPanel();\n }\n\n handleTabClose(event: CustomEvent) {\n const tab = event.detail;\n const panel = this.panels[tab.index];\n\n this.selected = this.tabs[0].link;\n this.selectedIndex = 0;\n\n panel.remove();\n tab.remove();\n }\n\n makeInk(location: string) {\n if (this.hideInk) {\n return null;\n }\n\n if ((this.placement === 'top' || this.placement === 'bottom') && this.ink && location === 'links') {\n return html`<div part=\"ink\" style=\"width:${this.ink.width}; transform:translateX(${this.ink.positionX})\"></div>`;\n }\n\n if ((this.placement === 'left' || this.placement === 'right') && this.ink && location === 'host') {\n return html`<div part=\"ink\" style=\"height:${this.ink.height}; transform:translateY(${this.ink.positionY})\"></div>`;\n }\n\n return null;\n }\n\n makeDivider() {\n if (this.divider) {\n return html`<div part=\"divider\"></div>`;\n }\n\n return null;\n }\n\n makeLeftArrow() {\n if (this.overflow) {\n return html`<kemet-icon icon='chevron-left' size=\"20\" @click=${() => this.handleLeftArrow()}></kemet-icon>`;\n }\n\n return null;\n }\n\n makeRightArrow() {\n if (this.overflow) {\n return html`<kemet-icon icon='chevron-right' size=\"20\" @click=${() => this.handleRightArrow()}></kemet-icon>`;\n }\n\n return null;\n }\n\n selectTab() {\n const marginLeft = this.links ? parseInt(window.getComputedStyle(this.links).marginLeft.replace('px', ''), 10) : 0;\n const overflowOffset = this.overflow ? marginLeft : 0;\n\n // if the user uses the selected attribute select by it\n if (this.selected) {\n this.tabs.forEach((tab) => {\n const tabName = tab.getAttribute('link');\n\n if (tabName === this.selected) {\n tab.selected = true;\n this.selected = tabName;\n\n this.ink = {\n width: `${tab.offsetWidth}px`,\n height: `${tab.offsetHeight}px`,\n positionX: `${tab.offsetLeft - overflowOffset}px`,\n positionY: `${tab.offsetTop}px`,\n };\n\n this.links.scrollLeft = tab.offsetLeft - overflowOffset;\n } else {\n tab.selected = false;\n }\n });\n\n // otherwise select by index\n } else {\n this.tabs.forEach((tab) => {\n if (this.selectedIndex === tab.index) {\n tab.selected = true;\n\n this.ink = {\n width: `${tab.offsetWidth}px`,\n height: `${tab.offsetHeight}px`,\n positionX: `${tab.offsetLeft - overflowOffset}px`,\n positionY: `${tab.offsetTop}px`,\n };\n\n this.links.scrollLeft = tab.offsetLeft - overflowOffset;\n } else {\n tab.selected = false;\n }\n });\n }\n }\n\n selectPanel() {\n // if the user uses the selected attribute select by it\n if (this.selected) {\n this.panels.forEach((panel) => {\n const panelName = panel.getAttribute('panel');\n\n if (this.panelEffect === 'fade' && panel.index !== 0) {\n panel.classList.add('push');\n }\n\n if (this.placement === 'left' || this.placement === 'right') {\n panel.classList.add('vertical');\n }\n\n if (panelName === this.selected) {\n panel.selected = true;\n this.animatePanel(panelName, null);\n } else {\n panel.selected = false;\n }\n });\n\n // otherwise select by index\n } else {\n this.panels.forEach((panel) => {\n if (this.panelEffect === 'fade' && panel.index !== 0) {\n panel.classList.add('push');\n }\n\n if (this.placement === 'left' || this.placement === 'right') {\n panel.classList.add('vertical');\n }\n\n if (this.selectedIndex === panel.index) {\n panel.selected = true;\n this.animatePanel(null, panel.index);\n } else {\n panel.selected = false;\n }\n });\n }\n }\n\n dispatchTabChange() {\n const details = {\n currentTabName: this.selected,\n currentTabIndex: this.selectedIndex,\n };\n\n emitEvent(this, 'kemet-tab-changed', details);\n }\n\n tabSelectedChange(event: CustomEvent) {\n if (this.selected) {\n // if selected has been set, use the string attribute\n this.selected = event.detail.getAttribute('link');\n } else {\n // otherwise use the generated index\n this.selectedIndex = event.detail.index;\n }\n\n this.selectTab();\n this.selectPanel();\n this.dispatchTabChange();\n }\n\n determineFade() {\n this.panels.forEach((panel) => {\n // add fade class if panel effect is fade\n if (this.panelEffect === 'fade') panel.classList.add('fade');\n });\n }\n\n determineStacked() {\n this.panels.forEach((panel) => {\n // add fade class if panel effect is fade\n if (this.panelEffect === 'stacked') panel.classList.add('stacked');\n });\n }\n\n determineOverflow() {\n const tabsContainerWidth = this.offsetWidth;\n const tabElements = this.querySelectorAll('kemet-tab');\n\n let totalTabsWidth = 0;\n\n tabElements.forEach((tab) => {\n totalTabsWidth += tab.offsetWidth;\n });\n\n this.overflow = totalTabsWidth > tabsContainerWidth && (this.placement === 'top' || this.placement === 'bottom');\n }\n\n handleResize() {\n if (this.tabs && this.panels) {\n const marginLeft = this.links ? parseInt(window.getComputedStyle(this.links).marginLeft.replace('px', ''), 10) : 0;\n const overflowOffset = this.overflow ? marginLeft : 0;\n const selectedElement = this.tabs.find(tab => tab.selected);\n\n if (selectedElement) {\n this.ink = {\n width: `${selectedElement.offsetWidth}px`,\n height: `${selectedElement.offsetHeight}px`,\n positionX: `${selectedElement.offsetLeft - overflowOffset}px`,\n positionY: `${selectedElement.offsetTop}px`,\n };\n }\n\n this.determineOverflow();\n\n if (this.selected) {\n this.animatePanel(this.selected, null);\n } else {\n this.animatePanel(null, this.selectedIndex);\n }\n }\n }\n\n animatePanel(panelName: string, panelIndex: number) {\n if (panelName) {\n const selectedPanel = this.querySelector(`[panel=\"${panelName}\"]`) as KemetTabPanelInterface;\n if (selectedPanel) this.panelPosition = selectedPanel.offsetLeft * -1;\n } else {\n if (this.panels[panelIndex]) this.panelPosition = this.panels[panelIndex].offsetLeft * -1;\n }\n }\n\n handleTabKeydown(event: KeyboardEvent) {\n if (this.selected) {\n switch (event.key) {\n case 'Home':\n this.selected = this.tabs[0].getAttribute('link');\n break;\n case 'End':\n this.selected = this.tabs[this.tabs.length - 1].getAttribute('link');\n break;\n case 'ArrowRight':\n const nextLinkElement = this.querySelector('kemet-tab[selected]').nextElementSibling;\n const nextLink = nextLinkElement ? nextLinkElement.getAttribute('link') : false;\n\n if (nextLink) {\n this.selected = nextLink;\n }\n break;\n case 'ArrowLeft':\n const previousLinkElement = this.querySelector('kemet-tab[selected]').previousElementSibling;\n const previousLink = previousLinkElement ? previousLinkElement.getAttribute('link') : false;\n\n if (previousLink) {\n this.selected = previousLink;\n }\n break;\n default: break;\n }\n\n this.tabs.find(tab => tab.link === this.selected).focus();\n } else {\n switch (event.key) {\n case 'Home':\n this.selectedIndex = 0;\n break;\n case 'End':\n this.selectedIndex = this.tabs.length - 1;\n break;\n case 'ArrowRight':\n if (this.selectedIndex < this.tabs.length - 1) {\n this.selectedIndex += 1;\n } else {\n this.selectedIndex = this.tabs.length - 1;\n }\n break;\n case 'ArrowLeft':\n if (this.selectedIndex < 1) {\n this.selectedIndex = 0;\n } else {\n this.selectedIndex -= 1;\n }\n break;\n default: break;\n }\n\n this.tabs[this.selectedIndex].focus();\n }\n }\n\n handleTouchStart(event: TouchEvent) {\n this.xDown = event.touches[0].clientX;\n this.yDown = event.touches[0].clientY;\n }\n\n handleTouchMove(event: TouchEvent) {\n if (!this.xDown || !this.yDown) {\n return;\n }\n\n const xUp = event.touches[0].clientX;\n const yUp = event.touches[0].clientY;\n const xDiff = this.xDown - xUp;\n const yDiff = this.yDown - yUp;\n\n const nextElement = this.querySelector('kemet-tab-panel[selected]')?.nextElementSibling;\n const next = nextElement ? nextElement.getAttribute('panel') : false;\n const previousElement = this.querySelector('kemet-tab-panel[selected]')?.previousElementSibling;\n const previous = previousElement ? previousElement.getAttribute('panel') : false;\n\n if (Math.abs(xDiff) > Math.abs(yDiff)) {\n if (xDiff > 0) {\n if (this.selected) {\n if (next) this.selected = next;\n } else {\n if (this.selectedIndex < this.tabs.length) this.selectedIndex += 1;\n }\n } else {\n if (this.selected) {\n if (previous) this.selected = previous;\n } else {\n if (this.selectedIndex > 0) this.selectedIndex -= 1;\n }\n }\n\n this.selectTab();\n this.selectPanel();\n }\n\n this.xDown = null;\n this.yDown = null;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-tabs': KemetTabs\n }\n}\n"]}
@@ -5,6 +5,9 @@ export const stylesKemetTabs = css `
5
5
  --kemet-tabs-ink-radius: 6px;
6
6
  --kemet-tabs-divider-size: 1px;
7
7
  --kemet-tabs-spacer: 1rem;
8
+ --kemet-tabs-transition-speed: 0.5s;
9
+ --kemet-tabs-divider-color: rgb(var(--kemet-color-gray-300));
10
+ --kemet-tabs-ink-color: rgb(var(--kemet-color-foreground));
8
11
 
9
12
  display: flex;
10
13
  flex-direction: column;
@@ -36,7 +39,7 @@ export const stylesKemetTabs = css `
36
39
  }
37
40
 
38
41
  :host([panel-effect='slide']) [part='panels'] {
39
- transition: transform var(--kemet-tabs-transition-speed, 0.5s) linear;
42
+ transition: transform var(--kemet-tabs-transition-speed) linear;
40
43
  }
41
44
 
42
45
  :host([panel-effect='fade']) [part='panels'] {
@@ -115,7 +118,7 @@ export const stylesKemetTabs = css `
115
118
 
116
119
  [part='divider'] {
117
120
  height: var(--kemet-tabs-divider-size);
118
- background-color: var(--kemet-tabs-divider-color, var(--kemet-color-gray4));
121
+ background-color: var(--kemet-tabs-divider-color);
119
122
  }
120
123
 
121
124
  :host([placement='left']) [part='divider'],
@@ -131,7 +134,7 @@ export const stylesKemetTabs = css `
131
134
  border-top-left-radius: var(--kemet-tabs-ink-radius);
132
135
  border-top-right-radius: var(--kemet-tabs-ink-radius);
133
136
  transition: all 300ms ease;
134
- background-color: var(--kemet-tabs-ink-color, var(--kemet-color-background));
137
+ background-color: var(--kemet-tabs-ink-color);
135
138
  }
136
139
 
137
140
  :host([placement='right']) [part='ink'] {
@@ -199,6 +202,8 @@ export const stylesKemetTabs = css `
199
202
  `;
200
203
  export const stylesKemetTab = css `
201
204
  :host {
205
+ --kemet-tab-color: rgb(var(--kemet-color-foreground));
206
+
202
207
  cursor: pointer;
203
208
  display: inline-flex;
204
209
  flex: 0 0 auto;
@@ -210,7 +215,7 @@ export const stylesKemetTab = css `
210
215
 
211
216
  :host([selected]) {
212
217
  cursor: auto;
213
- color: var(--kemet-tab-color, var(--kemet-color-background));
218
+ color: var(--kemet-tab-color);
214
219
  }
215
220
 
216
221
  kemet-icon {
@@ -220,6 +225,8 @@ export const stylesKemetTab = css `
220
225
  `;
221
226
  export const stylesKemetTabPanel = css `
222
227
  :host {
228
+ --kemet-tab-panel-fade-speed: 0.5s;
229
+
223
230
  width: 100%;
224
231
  flex: 0 0 auto;
225
232
  }
@@ -231,7 +238,7 @@ export const stylesKemetTabPanel = css `
231
238
  :host(.fade) {
232
239
  opacity: 0;
233
240
  pointer-events: none;
234
- transition: opacity var(--kemet-tab-panel-fade-speed, 0.5s) ease;
241
+ transition: opacity var(--kemet-tab-panel-fade-speed) ease;
235
242
  }
236
243
 
237
244
  :host(.fade[selected]) {
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/components/kemet-tabs/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqMjC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;CAoBhC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CrC,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const stylesKemetTabs = css`\n :host {\n --kemet-tabs-ink-size: 6px;\n --kemet-tabs-ink-radius: 6px;\n --kemet-tabs-divider-size: 1px;\n --kemet-tabs-spacer: 1rem;\n\n display: flex;\n flex-direction: column;\n overflow: hidden;\n position: relative;\n }\n\n :host([placement='bottom']) {\n flex-direction: column-reverse;\n }\n\n :host([placement='left']) {\n flex-direction: row;\n }\n\n :host([placement='right']) {\n flex-direction: row-reverse;\n }\n\n :host([placement='left']),\n :host([placement='right']) {\n overflow: unset;\n }\n\n /* panels */\n\n [part='panels'] > div {\n display: flex;\n }\n\n :host([panel-effect='slide']) [part='panels'] {\n transition: transform var(--kemet-tabs-transition-speed, 0.5s) linear;\n }\n\n :host([panel-effect='fade']) [part='panels'] {\n transform: none !important;\n }\n\n :host([panel-effect='fade']) [part='panels'] > div {\n flex-flow: row nowrap;\n }\n\n :host([placement='left']) [part='panels'],\n :host([placement='right']) [part='panels'] {\n transform: none !important;\n position: relative;\n width: 100%;\n }\n\n :host([placement='top']) [part='panels'] > div {\n margin-top: var(--kemet-tabs-spacer);\n }\n\n :host([placement='right']) [part='panels'] > div {\n margin-right: var(--kemet-tabs-spacer);\n }\n\n :host([placement='bottom']) [part='panels'] > div {\n margin-bottom: var(--kemet-tabs-spacer);\n }\n\n :host([placement='left']) [part='panels'] > div {\n margin-left: var(--kemet-tabs-spacer);\n }\n\n /* tablist */\n\n [part='tablist'] {\n display: flex;\n }\n\n :host([placement='left']) [part='tablist'],\n :host([placement='right']) [part='tablist'] {\n display: flex;\n flex-direction: column;\n align-items: start;\n }\n\n :host([tabs-align='center']) [part='tablist'] {\n justify-content: center;\n }\n\n :host([tabs-align='between']) [part='tablist'] {\n justify-content: space-between;\n }\n\n :host([tabs-align='evenly']) [part='tablist'] {\n justify-content: space-evenly;\n }\n\n :host([tabs-align='around']) [part='tablist'] {\n justify-content: space-around\n }\n\n :host([tabs-align='start']) [part='tablist'] {\n justify-content: flex-start;\n }\n\n :host([tabs-align='end']) [part='tablist'] {\n justify-content: flex-end;\n }\n\n :host([overflow]) [part='tablist'] {\n justify-content: start;\n }\n\n /* divider */\n\n [part='divider'] {\n height: var(--kemet-tabs-divider-size);\n background-color: var(--kemet-tabs-divider-color, var(--kemet-color-gray4));\n }\n\n :host([placement='left']) [part='divider'],\n :host([placement='right']) [part='divider'] {\n width: var(--kemet-tabs-divider-size);\n height: auto;\n }\n\n /* ink */\n\n [part='ink'] {\n height: var(--kemet-tabs-ink-size);\n border-top-left-radius: var(--kemet-tabs-ink-radius);\n border-top-right-radius: var(--kemet-tabs-ink-radius);\n transition: all 300ms ease;\n background-color: var(--kemet-tabs-ink-color, var(--kemet-color-background));\n }\n\n :host([placement='right']) [part='ink'] {\n width: var(--kemet-tabs-ink-size);\n border-top-right-radius: var(--kemet-tabs-ink-radius);\n border-bottom-right-radius: var(--kemet-tabs-ink-radius);\n border-top-left-radius: 0px;\n border-bottom-left-radius: 0px;\n }\n\n :host([placement='left']) [part='ink'] {\n width: var(--kemet-tabs-ink-size);\n border-top-right-radius: 0px;\n border-bottom-right-radius: 0px;\n border-top-left-radius: var(--kemet-tabs-ink-radius);\n border-bottom-left-radius: var(--kemet-tabs-ink-radius);\n }\n\n :host([placement='bottom']) [part='ink'] {\n border-top-right-radius: 0px;\n border-bottom-right-radius: var(--kemet-tabs-ink-radius);\n border-top-left-radius: 0px;\n border-bottom-left-radius: var(--kemet-tabs-ink-radius);\n }\n\n /* links */\n\n :host([overflow]) [part='links'] {\n overflow-x: auto;\n margin: 0 2rem;\n scroll-behavior: smooth;\n }\n\n :host([overflow]) [part='links']::-webkit-scrollbar {\n display: none;\n width: 0;\n background: transparent;\n }\n\n :host([placement='bottom']) [part='links'] {\n display: flex;\n flex-direction: column-reverse;\n }\n\n /* icon */\n\n [icon*='chevron'] {\n cursor: pointer;\n position: absolute;\n top: 1rem;\n }\n\n [icon='chevron-left'] {\n left: 0;\n }\n\n [icon='chevron-right'] {\n right: 0;\n }\n\n :host([placement='bottom']) [icon*='chevron'] {\n top: auto;\n bottom: 1rem;\n }\n`;\n\nexport const stylesKemetTab = css`\n :host {\n cursor: pointer;\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n white-space: nowrap;\n padding: var(--kemet-tab-padding, 1rem);\n }\n\n :host([selected]) {\n cursor: auto;\n color: var(--kemet-tab-color, var(--kemet-color-background));\n }\n\n kemet-icon {\n cursor: pointer;\n margin-left: 0.5rem;\n }\n`;\n\nexport const stylesKemetTabPanel = css`\n :host {\n width: 100%;\n flex: 0 0 auto;\n }\n\n ::slotted(img) {\n max-width: 100%;\n }\n\n :host(.fade) {\n opacity: 0;\n pointer-events: none;\n transition: opacity var(--kemet-tab-panel-fade-speed, 0.5s) ease;\n }\n\n :host(.fade[selected]) {\n opacity: 1;\n pointer-events: auto;\n }\n\n :host(.fade.push) {\n margin-left: -100%;\n }\n\n :host(.vertical) {\n display: none;\n }\n\n :host(.vertical[selected]) {\n display: block;\n }\n\n :host(.stacked) {\n position: absolute;\n z-index: -1;\n opacity: 0;\n visibility: hidden;\n }\n\n :host(.stacked[selected]) {\n position: relative;\n z-index: 1;\n opacity: 1;\n visibility: visible;\n }\n`;\n"]}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/components/kemet-tabs/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwMjC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;CAsBhC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDrC,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const stylesKemetTabs = css`\n :host {\n --kemet-tabs-ink-size: 6px;\n --kemet-tabs-ink-radius: 6px;\n --kemet-tabs-divider-size: 1px;\n --kemet-tabs-spacer: 1rem;\n --kemet-tabs-transition-speed: 0.5s;\n --kemet-tabs-divider-color: rgb(var(--kemet-color-gray-300));\n --kemet-tabs-ink-color: rgb(var(--kemet-color-foreground));\n\n display: flex;\n flex-direction: column;\n overflow: hidden;\n position: relative;\n }\n\n :host([placement='bottom']) {\n flex-direction: column-reverse;\n }\n\n :host([placement='left']) {\n flex-direction: row;\n }\n\n :host([placement='right']) {\n flex-direction: row-reverse;\n }\n\n :host([placement='left']),\n :host([placement='right']) {\n overflow: unset;\n }\n\n /* panels */\n\n [part='panels'] > div {\n display: flex;\n }\n\n :host([panel-effect='slide']) [part='panels'] {\n transition: transform var(--kemet-tabs-transition-speed) linear;\n }\n\n :host([panel-effect='fade']) [part='panels'] {\n transform: none !important;\n }\n\n :host([panel-effect='fade']) [part='panels'] > div {\n flex-flow: row nowrap;\n }\n\n :host([placement='left']) [part='panels'],\n :host([placement='right']) [part='panels'] {\n transform: none !important;\n position: relative;\n width: 100%;\n }\n\n :host([placement='top']) [part='panels'] > div {\n margin-top: var(--kemet-tabs-spacer);\n }\n\n :host([placement='right']) [part='panels'] > div {\n margin-right: var(--kemet-tabs-spacer);\n }\n\n :host([placement='bottom']) [part='panels'] > div {\n margin-bottom: var(--kemet-tabs-spacer);\n }\n\n :host([placement='left']) [part='panels'] > div {\n margin-left: var(--kemet-tabs-spacer);\n }\n\n /* tablist */\n\n [part='tablist'] {\n display: flex;\n }\n\n :host([placement='left']) [part='tablist'],\n :host([placement='right']) [part='tablist'] {\n display: flex;\n flex-direction: column;\n align-items: start;\n }\n\n :host([tabs-align='center']) [part='tablist'] {\n justify-content: center;\n }\n\n :host([tabs-align='between']) [part='tablist'] {\n justify-content: space-between;\n }\n\n :host([tabs-align='evenly']) [part='tablist'] {\n justify-content: space-evenly;\n }\n\n :host([tabs-align='around']) [part='tablist'] {\n justify-content: space-around\n }\n\n :host([tabs-align='start']) [part='tablist'] {\n justify-content: flex-start;\n }\n\n :host([tabs-align='end']) [part='tablist'] {\n justify-content: flex-end;\n }\n\n :host([overflow]) [part='tablist'] {\n justify-content: start;\n }\n\n /* divider */\n\n [part='divider'] {\n height: var(--kemet-tabs-divider-size);\n background-color: var(--kemet-tabs-divider-color);\n }\n\n :host([placement='left']) [part='divider'],\n :host([placement='right']) [part='divider'] {\n width: var(--kemet-tabs-divider-size);\n height: auto;\n }\n\n /* ink */\n\n [part='ink'] {\n height: var(--kemet-tabs-ink-size);\n border-top-left-radius: var(--kemet-tabs-ink-radius);\n border-top-right-radius: var(--kemet-tabs-ink-radius);\n transition: all 300ms ease;\n background-color: var(--kemet-tabs-ink-color);\n }\n\n :host([placement='right']) [part='ink'] {\n width: var(--kemet-tabs-ink-size);\n border-top-right-radius: var(--kemet-tabs-ink-radius);\n border-bottom-right-radius: var(--kemet-tabs-ink-radius);\n border-top-left-radius: 0px;\n border-bottom-left-radius: 0px;\n }\n\n :host([placement='left']) [part='ink'] {\n width: var(--kemet-tabs-ink-size);\n border-top-right-radius: 0px;\n border-bottom-right-radius: 0px;\n border-top-left-radius: var(--kemet-tabs-ink-radius);\n border-bottom-left-radius: var(--kemet-tabs-ink-radius);\n }\n\n :host([placement='bottom']) [part='ink'] {\n border-top-right-radius: 0px;\n border-bottom-right-radius: var(--kemet-tabs-ink-radius);\n border-top-left-radius: 0px;\n border-bottom-left-radius: var(--kemet-tabs-ink-radius);\n }\n\n /* links */\n\n :host([overflow]) [part='links'] {\n overflow-x: auto;\n margin: 0 2rem;\n scroll-behavior: smooth;\n }\n\n :host([overflow]) [part='links']::-webkit-scrollbar {\n display: none;\n width: 0;\n background: transparent;\n }\n\n :host([placement='bottom']) [part='links'] {\n display: flex;\n flex-direction: column-reverse;\n }\n\n /* icon */\n\n [icon*='chevron'] {\n cursor: pointer;\n position: absolute;\n top: 1rem;\n }\n\n [icon='chevron-left'] {\n left: 0;\n }\n\n [icon='chevron-right'] {\n right: 0;\n }\n\n :host([placement='bottom']) [icon*='chevron'] {\n top: auto;\n bottom: 1rem;\n }\n`;\n\nexport const stylesKemetTab = css`\n :host {\n --kemet-tab-color: rgb(var(--kemet-color-foreground));\n\n cursor: pointer;\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n white-space: nowrap;\n padding: var(--kemet-tab-padding, 1rem);\n }\n\n :host([selected]) {\n cursor: auto;\n color: var(--kemet-tab-color);\n }\n\n kemet-icon {\n cursor: pointer;\n margin-left: 0.5rem;\n }\n`;\n\nexport const stylesKemetTabPanel = css`\n :host {\n --kemet-tab-panel-fade-speed: 0.5s;\n\n width: 100%;\n flex: 0 0 auto;\n }\n\n ::slotted(img) {\n max-width: 100%;\n }\n\n :host(.fade) {\n opacity: 0;\n pointer-events: none;\n transition: opacity var(--kemet-tab-panel-fade-speed) ease;\n }\n\n :host(.fade[selected]) {\n opacity: 1;\n pointer-events: auto;\n }\n\n :host(.fade.push) {\n margin-left: -100%;\n }\n\n :host(.vertical) {\n display: none;\n }\n\n :host(.vertical[selected]) {\n display: block;\n }\n\n :host(.stacked) {\n position: absolute;\n z-index: -1;\n opacity: 0;\n visibility: hidden;\n }\n\n :host(.stacked[selected]) {\n position: relative;\n z-index: 1;\n opacity: 1;\n visibility: visible;\n }\n`;\n"]}
@@ -7,3 +7,6 @@ declare const meta: Meta;
7
7
  export default meta;
8
8
  declare type Story = StoryObj;
9
9
  export declare const Standard: Story;
10
+ export declare const Disabled: Story;
11
+ export declare const Filled: Story;
12
+ export declare const Rounded: Story;
@@ -7,82 +7,52 @@ import '../../kemet-tabs/kemet-tab-panel';
7
7
  const meta = {
8
8
  title: 'Components / Textarea',
9
9
  component: 'kemet-textarea',
10
- };
11
- export default meta;
12
- const Template = ({ status = 'standard', validateOnBlur = true, required = true, placeholder = 'Placeholder', minlength = null, maxlength = null, inputmode = 'none', autofocus = false, disabled = false, readonly = false, rows = '4', filled = false, rounded = false, }) => html `<kemet-textarea
13
- status=${status}
14
- ?required=${required}
15
- ?validate-on-blur=${validateOnBlur}
16
- placeholder=${ifDefined(placeholder || null)}
17
- minlength=${ifDefined(minlength || null)}
18
- maxlength=${ifDefined(maxlength || null)}
19
- inputmode=${inputmode}
20
- ?autofocus=${autofocus}
21
- ?disabled=${disabled}
22
- ?readonly=${readonly}
23
- rows=${rows}
24
- ?filled=${filled}
25
- ?rounded=${rounded}
26
- ></kemet-textarea>`;
27
- export const Standard = {
28
- render: args => Template(args),
29
- args: {
30
- status: 'standard',
31
- validateOnBlur: true,
32
- required: true,
33
- placeholder: 'Placeholder',
34
- minlength: null,
35
- maxlength: null,
36
- inputmode: 'none',
37
- autofocus: false,
38
- disabled: false,
39
- readonly: false,
40
- rows: 4,
41
- filled: false,
42
- rounded: false,
43
- },
44
10
  argTypes: {
45
11
  status: {
46
12
  control: { type: 'radio' },
47
13
  options: ['standard', 'error', 'success', 'warning'],
48
14
  },
49
- validateOnBlur: {
50
- control: { type: 'boolean' },
51
- },
52
- required: {
53
- control: { type: 'boolean' },
54
- },
55
- placeholder: {
56
- control: { type: 'text' },
57
- },
58
- minlength: {
59
- control: { type: 'number' },
60
- },
61
- maxlength: {
62
- control: { type: 'number' },
63
- },
64
15
  inputmode: {
65
16
  control: { type: 'select' },
66
17
  options: ['none', 'text', 'decimal', 'numeric', 'tel', 'search', 'email', 'url'],
67
18
  },
68
- autofocus: {
69
- control: { type: 'boolean' },
70
- },
71
- disabled: {
72
- control: { type: 'boolean' },
73
- },
74
- readonly: {
75
- control: { type: 'boolean' },
76
- },
77
- rows: {
78
- control: { type: 'number' },
79
- },
80
- filled: {
81
- control: { type: 'boolean' },
82
- },
83
- rounded: {
84
- control: { type: 'boolean' },
85
- },
19
+ }
20
+ };
21
+ export default meta;
22
+ const Template = (args) => html `<kemet-textarea
23
+ status=${ifDefined(args.status)}
24
+ ?required=${args.required}
25
+ ?validate-on-blur=${args.validateOnBlur}
26
+ placeholder=${ifDefined(args.placeholder || null)}
27
+ minlength=${ifDefined(args.minlength || null)}
28
+ maxlength=${ifDefined(args.maxlength || null)}
29
+ inputmode=${args.inputmode}
30
+ ?autofocus=${args.autofocus}
31
+ ?disabled=${args.disabled}
32
+ ?readonly=${args.readonly}
33
+ rows=${ifDefined(args.rows)}
34
+ ?filled=${args.filled}
35
+ ?rounded=${args.rounded}
36
+ ></kemet-textarea>`;
37
+ export const Standard = {
38
+ render: args => Template(args),
39
+ };
40
+ export const Disabled = {
41
+ render: args => Template(args),
42
+ args: {
43
+ disabled: true
44
+ }
45
+ };
46
+ export const Filled = {
47
+ render: args => Template(args),
48
+ args: {
49
+ filled: true
50
+ }
51
+ };
52
+ export const Rounded = {
53
+ render: args => Template(args),
54
+ args: {
55
+ rounded: true
86
56
  }
87
57
  };
88
58
  //# sourceMappingURL=stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stories.js","sourceRoot":"","sources":["../../../../src/components/kemet-textarea/docs/stories.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport type { Meta, StoryObj } from '@storybook/web-components';\n\nimport '../kemet-textarea';\n\nimport '../../kemet-tabs/kemet-tabs';\nimport '../../kemet-tabs/kemet-tab';\nimport '../../kemet-tabs/kemet-tab-panel';\n\nconst meta: Meta = {\n title: 'Components / Textarea',\n component: 'kemet-textarea',\n};\nexport default meta;\n\ntype Story = StoryObj;\n\nconst Template = ({\n status = 'standard',\n validateOnBlur = true,\n required = true,\n placeholder = 'Placeholder',\n minlength = null,\n maxlength = null,\n inputmode = 'none',\n autofocus = false,\n disabled = false,\n readonly = false,\n rows = '4',\n filled = false,\n rounded = false,\n}) => html`<kemet-textarea\n status=${status}\n ?required=${required}\n ?validate-on-blur=${validateOnBlur}\n placeholder=${ifDefined(placeholder || null)}\n minlength=${ifDefined(minlength || null)}\n maxlength=${ifDefined(maxlength || null)}\n inputmode=${inputmode}\n ?autofocus=${autofocus}\n ?disabled=${disabled}\n ?readonly=${readonly}\n rows=${rows}\n ?filled=${filled}\n ?rounded=${rounded}\n></kemet-textarea>`;\n\nexport const Standard: Story = {\n render: args => Template(args),\n args: {\n status: 'standard',\n validateOnBlur: true,\n required: true,\n placeholder: 'Placeholder',\n minlength: null,\n maxlength: null,\n inputmode: 'none',\n autofocus: false,\n disabled: false,\n readonly: false,\n rows: 4,\n filled: false,\n rounded: false,\n },\n argTypes: {\n status: {\n control: { type: 'radio' },\n options: ['standard', 'error', 'success', 'warning'],\n },\n validateOnBlur: {\n control: { type: 'boolean' },\n },\n required: {\n control: { type: 'boolean' },\n },\n placeholder: {\n control: { type: 'text' },\n },\n minlength: {\n control: { type: 'number' },\n },\n maxlength: {\n control: { type: 'number' },\n },\n inputmode: {\n control: { type: 'select' },\n options: ['none', 'text', 'decimal', 'numeric', 'tel', 'search', 'email', 'url'],\n },\n autofocus: {\n control: { type: 'boolean' },\n },\n disabled: {\n control: { type: 'boolean' },\n },\n readonly: {\n control: { type: 'boolean' },\n },\n rows: {\n control: { type: 'number' },\n },\n filled: {\n control: { type: 'boolean' },\n },\n rounded: {\n control: { type: 'boolean' },\n },\n }\n};\n"]}
1
+ {"version":3,"file":"stories.js","sourceRoot":"","sources":["../../../../src/components/kemet-textarea/docs/stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAGzD,OAAO,mBAAmB,CAAC;AAE3B,OAAO,6BAA6B,CAAC;AACrC,OAAO,4BAA4B,CAAC;AACpC,OAAO,kCAAkC,CAAC;AAE1C,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,uBAAuB;IAC9B,SAAS,EAAE,gBAAgB;IAC3B,QAAQ,EAAE;QACR,MAAM,EAAE;YACN,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YAC1B,OAAO,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;SACrD;QACD,SAAS,EAAE;YACT,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3B,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC;SACjF;KACF;CACF,CAAC;AACF,eAAe,IAAI,CAAC;AAIpB,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;WACpB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;cACnB,IAAI,CAAC,QAAQ;sBACL,IAAI,CAAC,cAAc;gBACzB,SAAS,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;cACrC,SAAS,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;cACjC,SAAS,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;cACjC,IAAI,CAAC,SAAS;eACb,IAAI,CAAC,SAAS;cACf,IAAI,CAAC,QAAQ;cACb,IAAI,CAAC,QAAQ;SAClB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;YACjB,IAAI,CAAC,MAAM;aACV,IAAI,CAAC,OAAO;mBACN,CAAC;AAEpB,MAAM,CAAC,MAAM,QAAQ,GAAU;IAC7B,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAU;IAC7B,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,IAAI,EAAE;QACJ,QAAQ,EAAE,IAAI;KACf;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAU;IAC3B,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,IAAI,EAAE;QACJ,MAAM,EAAE,IAAI;KACb;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;KACd;CACF,CAAC","sourcesContent":["import { html } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport type { Meta, StoryObj } from '@storybook/web-components';\n\nimport '../kemet-textarea';\n\nimport '../../kemet-tabs/kemet-tabs';\nimport '../../kemet-tabs/kemet-tab';\nimport '../../kemet-tabs/kemet-tab-panel';\n\nconst meta: Meta = {\n title: 'Components / Textarea',\n component: 'kemet-textarea',\n argTypes: {\n status: {\n control: { type: 'radio' },\n options: ['standard', 'error', 'success', 'warning'],\n },\n inputmode: {\n control: { type: 'select' },\n options: ['none', 'text', 'decimal', 'numeric', 'tel', 'search', 'email', 'url'],\n },\n }\n};\nexport default meta;\n\ntype Story = StoryObj;\n\nconst Template = (args) => html`<kemet-textarea\n status=${ifDefined(args.status)}\n ?required=${args.required}\n ?validate-on-blur=${args.validateOnBlur}\n placeholder=${ifDefined(args.placeholder || null)}\n minlength=${ifDefined(args.minlength || null)}\n maxlength=${ifDefined(args.maxlength || null)}\n inputmode=${args.inputmode}\n ?autofocus=${args.autofocus}\n ?disabled=${args.disabled}\n ?readonly=${args.readonly}\n rows=${ifDefined(args.rows)}\n ?filled=${args.filled}\n ?rounded=${args.rounded}\n></kemet-textarea>`;\n\nexport const Standard: Story = {\n render: args => Template(args),\n};\n\nexport const Disabled: Story = {\n render: args => Template(args),\n args: {\n disabled: true\n }\n};\n\nexport const Filled: Story = {\n render: args => Template(args),\n args: {\n filled: true\n }\n};\n\nexport const Rounded: Story = {\n render: args => Template(args),\n args: {\n rounded: true\n }\n};\n"]}
@@ -30,18 +30,18 @@ import { TypeStatus } from './types';
30
30
  *
31
31
  * @csspart textarea
32
32
  *
33
- * @cssproperty --kemet-textarea-padding - The padding on the textarea. Default: 1rem.
34
- * @cssproperty --kemet-textarea-border - The border of the textarea. Default: 1px solid var(--kemet-color-primary).
35
- * @cssproperty --kemet-textarea-border-color-error - The border of the error state. Default: 1px solid var(--kemet-color-error).
36
- * @cssproperty --kemet-textarea-border-color-success - The border of the success state. Default: 1px solid var(--kemet-color-success).
37
- * @cssproperty --kemet-textarea-border-color-warning - The border of the warning state. Default: 1px solid var(--kemet-color-warning).
38
- * @cssproperty --kemet-textarea-border-radius-rounded - The border radius on rounded. Default: var(--kemet-border-radius).
39
- * @cssproperty --kemet-textarea-border-filled - The border on filled. Default: none.
40
- * @cssproperty --kemet-textarea-color-filled - The color on filled. Default: var(--kemet-color-white).
41
- * @cssproperty --kemet-textarea-background-color-filled - The background-color on filled. Default: var(--kemet-color-primary).
42
- * @cssproperty --kemet-textarea-background-color-error - The error state background color. Default: var(--kemet-color-error).
43
- * @cssproperty --kemet-textarea-background-color-success - The success state background color. Default: var(--kemet-color-success).
44
- * @cssproperty --kemet-textarea-background-color-warning - The warning state background color. Default: var(--kemet-color-warning).
33
+ * @cssproperty --kemet-textarea-padding - The padding on the textarea.
34
+ * @cssproperty --kemet-textarea-border - The border of the textarea.
35
+ * @cssproperty --kemet-textarea-border-color-error - The border of the error state.
36
+ * @cssproperty --kemet-textarea-border-color-success - The border of the success state.
37
+ * @cssproperty --kemet-textarea-border-color-warning - The border of the warning state.
38
+ * @cssproperty --kemet-textarea-border-radius-rounded - The border radius on rounded.
39
+ * @cssproperty --kemet-textarea-border-filled - The border on filled.
40
+ * @cssproperty --kemet-textarea-color-filled - The color on filled.
41
+ * @cssproperty --kemet-textarea-background-color-filled - The background-color on filled.
42
+ * @cssproperty --kemet-textarea-background-color-error - The error state background color.
43
+ * @cssproperty --kemet-textarea-background-color-success - The success state background color.
44
+ * @cssproperty --kemet-textarea-background-color-warning - The warning state background color.
45
45
  *
46
46
  */
47
47
  export default class KemetTextarea extends LitElement {
@@ -33,18 +33,18 @@ import { stylesTextarea } from './styles';
33
33
  *
34
34
  * @csspart textarea
35
35
  *
36
- * @cssproperty --kemet-textarea-padding - The padding on the textarea. Default: 1rem.
37
- * @cssproperty --kemet-textarea-border - The border of the textarea. Default: 1px solid var(--kemet-color-primary).
38
- * @cssproperty --kemet-textarea-border-color-error - The border of the error state. Default: 1px solid var(--kemet-color-error).
39
- * @cssproperty --kemet-textarea-border-color-success - The border of the success state. Default: 1px solid var(--kemet-color-success).
40
- * @cssproperty --kemet-textarea-border-color-warning - The border of the warning state. Default: 1px solid var(--kemet-color-warning).
41
- * @cssproperty --kemet-textarea-border-radius-rounded - The border radius on rounded. Default: var(--kemet-border-radius).
42
- * @cssproperty --kemet-textarea-border-filled - The border on filled. Default: none.
43
- * @cssproperty --kemet-textarea-color-filled - The color on filled. Default: var(--kemet-color-white).
44
- * @cssproperty --kemet-textarea-background-color-filled - The background-color on filled. Default: var(--kemet-color-primary).
45
- * @cssproperty --kemet-textarea-background-color-error - The error state background color. Default: var(--kemet-color-error).
46
- * @cssproperty --kemet-textarea-background-color-success - The success state background color. Default: var(--kemet-color-success).
47
- * @cssproperty --kemet-textarea-background-color-warning - The warning state background color. Default: var(--kemet-color-warning).
36
+ * @cssproperty --kemet-textarea-padding - The padding on the textarea.
37
+ * @cssproperty --kemet-textarea-border - The border of the textarea.
38
+ * @cssproperty --kemet-textarea-border-color-error - The border of the error state.
39
+ * @cssproperty --kemet-textarea-border-color-success - The border of the success state.
40
+ * @cssproperty --kemet-textarea-border-color-warning - The border of the warning state.
41
+ * @cssproperty --kemet-textarea-border-radius-rounded - The border radius on rounded.
42
+ * @cssproperty --kemet-textarea-border-filled - The border on filled.
43
+ * @cssproperty --kemet-textarea-color-filled - The color on filled.
44
+ * @cssproperty --kemet-textarea-background-color-filled - The background-color on filled.
45
+ * @cssproperty --kemet-textarea-background-color-error - The error state background color.
46
+ * @cssproperty --kemet-textarea-background-color-success - The success state background color.
47
+ * @cssproperty --kemet-textarea-background-color-warning - The warning state background color.
48
48
  *
49
49
  */
50
50
  let KemetTextarea = class KemetTextarea extends LitElement {
@@ -1 +1 @@
1
- {"version":3,"file":"kemet-textarea.js","sourceRoot":"","sources":["../../../src/components/kemet-textarea/kemet-textarea.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEzE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAGH,IAAqB,aAAa,GAAlC,MAAqB,aAAc,SAAQ,UAAU;IA0EnD;QACE,KAAK,EAAE,CAAC;QArEV,SAAI,GAAW,UAAU,CAAC;QAG1B,SAAI,GAAW,UAAU,CAAC;QA2B1B,UAAK,GAAW,EAAE,CAAC;QAMnB,WAAM,GAAe,UAAU,CAAC;QAGhC,SAAI,GAAW,CAAC,CAAC;QAgCf,gBAAgB;QAChB,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,YAAY;QACV,WAAW;QACX,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;;aAGF,IAAI,CAAC,IAAI;eACP,IAAI,CAAC,IAAI;iBACP,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;oBACb,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;sBACX,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;eAClC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;oBACf,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;oBACzB,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;sBACvB,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;qBAC5B,IAAI,CAAC,SAAS;qBACd,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;oBAC3B,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;kBAC3B,IAAI,CAAC,YAAY;iBAClB,IAAI,CAAC,WAAW;iBAChB,IAAI,CAAC,WAAW;gBACjB,IAAI,CAAC,UAAU;mBACZ,IAAI,CAAC,aAAa;;KAEhC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,WAAW;QACT,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB;;WAEG;QACH,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,qBAAqB,EAAE;YACrC,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;SACb,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEtB;;WAEG;QACH,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,qBAAqB,EAAE;YACrC,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,KAAK;SACd,CAAC,CACH,CAAC;QAEF,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAC7D,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;SACxC;IACH,CAAC;IAED;;;OAGG;IACH,YAAY;QACV,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAEjC,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,kBAAkB,EAAE,EAAE;YAC9D,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;YACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAEvC;;eAEG;YACH,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,oBAAoB,EAAE;gBACpC,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE;oBACN,MAAM,EAAE,UAAU;oBAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;oBAChC,OAAO,EAAE,IAAI;iBACd;aACF,CAAC,CACH,CAAC;SACH;IACH,CAAC;IAED;;;OAGG;IACH,WAAW;QACT,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAEjC;;WAEG;QACH,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,mBAAmB,EAAE;YACnC,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI,CAAC,KAAK;SACnB,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAEvC,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;YAEtB;;eAEG;YACH,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,oBAAoB,EAAE;gBACpC,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE;oBACN,MAAM,EAAE,OAAO;oBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;oBAChC,OAAO,EAAE,IAAI;iBACd;aACF,CAAC,CACH,CAAC;SACH;IACH,CAAC;IAED;;;;OAIG;IACH,kBAAkB;QAChB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YACxD,IAAI,KAAK,EAAE;gBACT,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;aACxC;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;CACF,CAAA;AAvQQ,oBAAM,GAAG,CAAC,cAAc,CAAC,CAAC;AAGjC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2CACD;AAG1B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2CACD;AAG1B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kDACP;AAGpB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gDACT;AAGlB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gDACT;AAGlB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gDACT;AAGlB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gDACT;AAGnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CACzB;AAGlB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;+CACV;AAGlB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CACzB;AAGlB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CACR;AAGnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;8CAC1B;AAGjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CACV;AAGhC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2CACV;AAGjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;qDACnC;AAGxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CAC3B;AAGhB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;8CAC1B;AAGjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAC,CAAC;kDACN;AAGrB;IADC,KAAK,EAAE;2CACc;AAGtB;IADC,KAAK,EAAE;8CACqB;AAG7B;IADC,KAAK,EAAE;+CACsB;AAG9B;IADC,KAAK,EAAE;+CACU;AAGlB;IADC,KAAK,EAAE;+CACgB;AAxEL,aAAa;IADjC,aAAa,CAAC,gBAAgB,CAAC;GACX,aAAa,CA0QjC;eA1QoB,aAAa","sourcesContent":["import { html, LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { FormSubmitController } from '../../utilities/controllers/forms';\nimport { KemetFieldInterface } from '../kemet-field/types';\nimport { stylesTextarea } from './styles';\nimport { TypeStatus } from './types';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-textarea\n * @summary An enhanced textarea element.\n *\n * @prop {string} slug\n * @prop {string} name\n * @prop {string} placeholder\n * @prop {number} minlength\n * @prop {number} maxlength\n * @prop {string} inputmode\n * @prop {boolean} disabled\n * @prop {boolean} readonly\n * @prop {boolean} required\n * @prop {string} value\n * @prop {boolean} invalid\n * @prop {TypeStatus} status\n * @prop {boolean} validateOnBlur\n * @prop {boolean} rounded\n * @prop {boolean} filled\n * @prop {number} rows\n * @prop {boolean} autocorrect\n *\n *\n * @csspart textarea\n *\n * @cssproperty --kemet-textarea-padding - The padding on the textarea. Default: 1rem.\n * @cssproperty --kemet-textarea-border - The border of the textarea. Default: 1px solid var(--kemet-color-primary).\n * @cssproperty --kemet-textarea-border-color-error - The border of the error state. Default: 1px solid var(--kemet-color-error).\n * @cssproperty --kemet-textarea-border-color-success - The border of the success state. Default: 1px solid var(--kemet-color-success).\n * @cssproperty --kemet-textarea-border-color-warning - The border of the warning state. Default: 1px solid var(--kemet-color-warning).\n * @cssproperty --kemet-textarea-border-radius-rounded - The border radius on rounded. Default: var(--kemet-border-radius).\n * @cssproperty --kemet-textarea-border-filled - The border on filled. Default: none.\n * @cssproperty --kemet-textarea-color-filled - The color on filled. Default: var(--kemet-color-white).\n * @cssproperty --kemet-textarea-background-color-filled - The background-color on filled. Default: var(--kemet-color-primary).\n * @cssproperty --kemet-textarea-background-color-error - The error state background color. Default: var(--kemet-color-error).\n * @cssproperty --kemet-textarea-background-color-success - The success state background color. Default: var(--kemet-color-success).\n * @cssproperty --kemet-textarea-background-color-warning - The warning state background color. Default: var(--kemet-color-warning).\n *\n */\n\n@customElement('kemet-textarea')\nexport default class KemetTextarea extends LitElement {\n formSubmitController: FormSubmitController;\n\n static styles = [stylesTextarea];\n\n @property({ type: String })\n slug: string = 'textarea';\n\n @property({ type: String })\n name: string = 'textarea';\n\n @property({ type: String })\n placeholder: string;\n\n @property({ type: Number })\n minlength: number;\n\n @property({ type: Number })\n maxlength: number;\n\n @property({ type: String })\n inputmode: string;\n\n @property({ type: Boolean })\n autofocus: boolean;\n\n @property({ type: Boolean, reflect: true })\n disabled: boolean;\n\n @property({ type: Boolean })\n readonly: boolean;\n\n @property({ type: Boolean, reflect: true })\n required: boolean;\n\n @property({ type: String })\n value: string = '';\n\n @property({ type: Boolean, reflect: true })\n invalid: boolean;\n\n @property({ type: String, reflect: true })\n status: TypeStatus = 'standard';\n\n @property({ type: Number })\n rows: number = 4;\n\n @property({ type: Boolean, attribute: 'validate-on-blur' })\n validateOnBlur: boolean;\n\n @property({ type: Boolean, reflect: true })\n filled: boolean;\n\n @property({ type: Boolean, reflect: true })\n rounded: boolean;\n\n @property({ type: Boolean})\n autocorrect: boolean;\n\n @state()\n form: HTMLFormElement;\n\n @state()\n control: KemetFieldInterface;\n\n @state()\n textarea: HTMLTextAreaElement;\n\n @state()\n hasFocus: boolean;\n\n @state()\n validity: ValidityState;\n\n constructor() {\n super();\n\n /** @internal */\n this.formSubmitController = new FormSubmitController(this);\n }\n\n firstUpdated() {\n // elements\n this.form = this.closest('form');\n this.control = this.closest('kemet-field');\n this.textarea = this.shadowRoot.querySelector('textarea');\n }\n\n render() {\n return html`\n <textarea\n part=\"textarea\"\n id=${this.slug}\n name=${this.name}\n .value=${live(this.value)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n placeholder=${ifDefined(this.placeholder)}\n rows=${ifDefined(this.rows)}\n minlength=${ifDefined(this.minlength)}\n maxlength=${ifDefined(this.maxlength)}\n autocorrect=${ifDefined(this.autocorrect)}\n ?autofocus=${this.autofocus}\n spellcheck=${ifDefined(this.spellcheck)}\n inputmode=${ifDefined(this.inputmode)}\n @change=${this.handleChange}\n @input=${this.handleInput}\n @focus=${this.handleFocus}\n @blur=${this.handleBlur}\n @invalid=${this.handleInvalid}\n ></textarea>\n `;\n }\n\n /**\n * Handles when the textarea receives focus\n * @private\n */\n handleFocus() {\n this.hasFocus = true;\n\n /**\n * Fires when the input receives and loses focus\n */\n this.dispatchEvent(\n new CustomEvent('kemet-input-focused', {\n bubbles: true,\n composed: true,\n detail: true,\n }),\n );\n }\n\n /**\n * Handles when the textarea loses focus\n * @private\n */\n handleBlur() {\n this.hasFocus = false;\n\n /**\n * Fires when the input receives and loses focus\n */\n this.dispatchEvent(\n new CustomEvent('kemet-input-focused', {\n bubbles: true,\n composed: true,\n detail: false,\n }),\n );\n\n if (this.validateOnBlur && this.form && !this.form.noValidate) {\n this.textarea.checkValidity();\n this.validity = this.textarea.validity;\n }\n }\n\n /**\n * Handles when the textarea changes value\n * @private\n */\n handleChange() {\n this.value = this.textarea.value;\n\n if (this.textarea.checkValidity() && this.checkLimitValidity()) {\n this.invalid = false;\n this.status = 'standard';\n this.validity = this.textarea.validity;\n\n /**\n * Fires when there's a change in status\n */\n this.dispatchEvent(\n new CustomEvent('kemet-input-status', {\n bubbles: true,\n composed: true,\n detail: {\n status: 'standard',\n validity: this.textarea.validity,\n element: this,\n },\n }),\n );\n }\n }\n\n /**\n * Handles when the textarea receives input\n * @private\n */\n handleInput() {\n this.value = this.textarea.value;\n\n /**\n * Fires when the input receives input\n */\n this.dispatchEvent(\n new CustomEvent('kemet-input-input', {\n bubbles: true,\n composed: true,\n detail: this.value,\n }),\n );\n }\n\n /**\n * Handles when the textarea has an error\n * @private\n */\n handleInvalid() {\n this.validity = this.textarea.validity;\n\n if (this.validateOnBlur) {\n this.invalid = true;\n this.status = 'error';\n\n /**\n * Fires when there's a change in status\n */\n this.dispatchEvent(\n new CustomEvent('kemet-input-status', {\n bubbles: true,\n composed: true,\n detail: {\n status: 'error',\n validity: this.textarea.validity,\n element: this,\n },\n }),\n );\n }\n }\n\n /**\n * Checks the validity of the character limit for the count component\n * @private\n * @returns {boolean}\n */\n checkLimitValidity() {\n if (this.control) {\n const count = this.control.querySelector('kemet-count');\n if (count) {\n return this.value.length < count.limit;\n }\n }\n\n return true;\n }\n\n /**\n * Checks the validity of the standard input\n * @public\n * @returns {boolean}\n */\n checkValidity() {\n return this.textarea.checkValidity();\n }\n\n /**\n * Focuses the standard input\n * @public\n */\n focus() {\n return this.textarea.focus();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-textarea': KemetTextarea\n }\n}\n"]}
1
+ {"version":3,"file":"kemet-textarea.js","sourceRoot":"","sources":["../../../src/components/kemet-textarea/kemet-textarea.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { FormSubmitController } from '../../utilities/controllers/forms';\nimport { KemetFieldInterface } from '../kemet-field/types';\nimport { stylesTextarea } from './styles';\nimport { TypeStatus } from './types';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-textarea\n * @summary An enhanced textarea element.\n *\n * @prop {string} slug\n * @prop {string} name\n * @prop {string} placeholder\n * @prop {number} minlength\n * @prop {number} maxlength\n * @prop {string} inputmode\n * @prop {boolean} disabled\n * @prop {boolean} readonly\n * @prop {boolean} required\n * @prop {string} value\n * @prop {boolean} invalid\n * @prop {TypeStatus} status\n * @prop {boolean} validateOnBlur\n * @prop {boolean} rounded\n * @prop {boolean} filled\n * @prop {number} rows\n * @prop {boolean} autocorrect\n *\n *\n * @csspart textarea\n *\n * @cssproperty --kemet-textarea-padding - The padding on the textarea.\n * @cssproperty --kemet-textarea-border - The border of the textarea.\n * @cssproperty --kemet-textarea-border-color-error - The border of the error state.\n * @cssproperty --kemet-textarea-border-color-success - The border of the success state.\n * @cssproperty --kemet-textarea-border-color-warning - The border of the warning state.\n * @cssproperty --kemet-textarea-border-radius-rounded - The border radius on rounded.\n * @cssproperty --kemet-textarea-border-filled - The border on filled.\n * @cssproperty --kemet-textarea-color-filled - The color on filled.\n * @cssproperty --kemet-textarea-background-color-filled - The background-color on filled.\n * @cssproperty --kemet-textarea-background-color-error - The error state background color.\n * @cssproperty --kemet-textarea-background-color-success - The success state background color.\n * @cssproperty --kemet-textarea-background-color-warning - The warning state background color.\n *\n */\n\n@customElement('kemet-textarea')\nexport default class KemetTextarea extends LitElement {\n formSubmitController: FormSubmitController;\n\n static styles = [stylesTextarea];\n\n @property({ type: String })\n slug: string = 'textarea';\n\n @property({ type: String })\n name: string = 'textarea';\n\n @property({ type: String })\n placeholder: string;\n\n @property({ type: Number })\n minlength: number;\n\n @property({ type: Number })\n maxlength: number;\n\n @property({ type: String })\n inputmode: string;\n\n @property({ type: Boolean })\n autofocus: boolean;\n\n @property({ type: Boolean, reflect: true })\n disabled: boolean;\n\n @property({ type: Boolean })\n readonly: boolean;\n\n @property({ type: Boolean, reflect: true })\n required: boolean;\n\n @property({ type: String })\n value: string = '';\n\n @property({ type: Boolean, reflect: true })\n invalid: boolean;\n\n @property({ type: String, reflect: true })\n status: TypeStatus = 'standard';\n\n @property({ type: Number })\n rows: number = 4;\n\n @property({ type: Boolean, attribute: 'validate-on-blur' })\n validateOnBlur: boolean;\n\n @property({ type: Boolean, reflect: true })\n filled: boolean;\n\n @property({ type: Boolean, reflect: true })\n rounded: boolean;\n\n @property({ type: Boolean })\n autocorrect: boolean;\n\n @state()\n form: HTMLFormElement;\n\n @state()\n control: KemetFieldInterface;\n\n @state()\n textarea: HTMLTextAreaElement;\n\n @state()\n hasFocus: boolean;\n\n @state()\n validity: ValidityState;\n\n constructor() {\n super();\n\n /** @internal */\n this.formSubmitController = new FormSubmitController(this);\n }\n\n firstUpdated() {\n // elements\n this.form = this.closest('form');\n this.control = this.closest('kemet-field');\n this.textarea = this.shadowRoot.querySelector('textarea');\n }\n\n render() {\n return html`\n <textarea\n part=\"textarea\"\n id=${this.slug}\n name=${this.name}\n .value=${live(this.value)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?required=${this.required}\n placeholder=${ifDefined(this.placeholder)}\n rows=${ifDefined(this.rows)}\n minlength=${ifDefined(this.minlength)}\n maxlength=${ifDefined(this.maxlength)}\n autocorrect=${ifDefined(this.autocorrect)}\n ?autofocus=${this.autofocus}\n spellcheck=${ifDefined(this.spellcheck)}\n inputmode=${ifDefined(this.inputmode)}\n @change=${this.handleChange}\n @input=${this.handleInput}\n @focus=${this.handleFocus}\n @blur=${this.handleBlur}\n @invalid=${this.handleInvalid}\n ></textarea>\n `;\n }\n\n /**\n * Handles when the textarea receives focus\n * @private\n */\n handleFocus() {\n this.hasFocus = true;\n\n /**\n * Fires when the input receives and loses focus\n */\n this.dispatchEvent(\n new CustomEvent('kemet-input-focused', {\n bubbles: true,\n composed: true,\n detail: true,\n }),\n );\n }\n\n /**\n * Handles when the textarea loses focus\n * @private\n */\n handleBlur() {\n this.hasFocus = false;\n\n /**\n * Fires when the input receives and loses focus\n */\n this.dispatchEvent(\n new CustomEvent('kemet-input-focused', {\n bubbles: true,\n composed: true,\n detail: false,\n }),\n );\n\n if (this.validateOnBlur && this.form && !this.form.noValidate) {\n this.textarea.checkValidity();\n this.validity = this.textarea.validity;\n }\n }\n\n /**\n * Handles when the textarea changes value\n * @private\n */\n handleChange() {\n this.value = this.textarea.value;\n\n if (this.textarea.checkValidity() && this.checkLimitValidity()) {\n this.invalid = false;\n this.status = 'standard';\n this.validity = this.textarea.validity;\n\n /**\n * Fires when there's a change in status\n */\n this.dispatchEvent(\n new CustomEvent('kemet-input-status', {\n bubbles: true,\n composed: true,\n detail: {\n status: 'standard',\n validity: this.textarea.validity,\n element: this,\n },\n }),\n );\n }\n }\n\n /**\n * Handles when the textarea receives input\n * @private\n */\n handleInput() {\n this.value = this.textarea.value;\n\n /**\n * Fires when the input receives input\n */\n this.dispatchEvent(\n new CustomEvent('kemet-input-input', {\n bubbles: true,\n composed: true,\n detail: this.value,\n }),\n );\n }\n\n /**\n * Handles when the textarea has an error\n * @private\n */\n handleInvalid() {\n this.validity = this.textarea.validity;\n\n if (this.validateOnBlur) {\n this.invalid = true;\n this.status = 'error';\n\n /**\n * Fires when there's a change in status\n */\n this.dispatchEvent(\n new CustomEvent('kemet-input-status', {\n bubbles: true,\n composed: true,\n detail: {\n status: 'error',\n validity: this.textarea.validity,\n element: this,\n },\n }),\n );\n }\n }\n\n /**\n * Checks the validity of the character limit for the count component\n * @private\n * @returns {boolean}\n */\n checkLimitValidity(): boolean {\n if (this.control) {\n const count = this.control.querySelector('kemet-count');\n if (count) {\n return this.value.length < count.limit;\n }\n }\n\n return true;\n }\n\n /**\n * Checks the validity of the standard input\n * @public\n * @returns {boolean}\n */\n checkValidity(): boolean {\n return this.textarea.checkValidity();\n }\n\n /**\n * Focuses the standard input\n * @public\n */\n focus() {\n return this.textarea.focus();\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-textarea': KemetTextarea\n }\n}\n"]}