kemet-ui 2.0.2 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/custom-elements.json +540 -553
  2. package/dist/components/kemet-accordion/kemet-accordion-panel.d.ts +1 -2
  3. package/dist/components/kemet-accordion/kemet-accordion-panel.js +3 -2
  4. package/dist/components/kemet-accordion/kemet-accordion-panel.js.map +1 -1
  5. package/dist/components/kemet-accordion/kemet-accordion.d.ts +3 -2
  6. package/dist/components/kemet-accordion/kemet-accordion.js +12 -4
  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 +4 -5
  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 +21 -21
  45. package/dist/components/kemet-button/kemet-button.js +22 -22
  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 +15 -15
  55. package/dist/components/kemet-card/kemet-card.js +15 -15
  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-total.d.ts +2 -2
  65. package/dist/components/kemet-carousel/kemet-carousel-total.js.map +1 -1
  66. package/dist/components/kemet-carousel/kemet-carousel.d.ts +15 -15
  67. package/dist/components/kemet-carousel/kemet-carousel.js +15 -15
  68. package/dist/components/kemet-carousel/kemet-carousel.js.map +1 -1
  69. package/dist/components/kemet-carousel/styles.js +31 -15
  70. package/dist/components/kemet-carousel/styles.js.map +1 -1
  71. package/dist/components/kemet-checkbox/docs/stories.d.ts +4 -0
  72. package/dist/components/kemet-checkbox/docs/stories.js +28 -28
  73. package/dist/components/kemet-checkbox/docs/stories.js.map +1 -1
  74. package/dist/components/kemet-checkbox/kemet-checkbox.d.ts +6 -6
  75. package/dist/components/kemet-checkbox/kemet-checkbox.js +6 -6
  76. package/dist/components/kemet-checkbox/kemet-checkbox.js.map +1 -1
  77. package/dist/components/kemet-checkbox/styles.js +20 -13
  78. package/dist/components/kemet-checkbox/styles.js.map +1 -1
  79. package/dist/components/kemet-combo/docs/stories.js +14 -12
  80. package/dist/components/kemet-combo/docs/stories.js.map +1 -1
  81. package/dist/components/kemet-combo/kemet-combo.d.ts +9 -9
  82. package/dist/components/kemet-combo/kemet-combo.js +9 -9
  83. package/dist/components/kemet-combo/kemet-combo.js.map +1 -1
  84. package/dist/components/kemet-combo/styles.js +21 -9
  85. package/dist/components/kemet-combo/styles.js.map +1 -1
  86. package/dist/components/kemet-count/docs/stories.js +10 -25
  87. package/dist/components/kemet-count/docs/stories.js.map +1 -1
  88. package/dist/components/kemet-draggable/docs/stories.d.ts +1 -0
  89. package/dist/components/kemet-draggable/docs/stories.js +8 -15
  90. package/dist/components/kemet-draggable/docs/stories.js.map +1 -1
  91. package/dist/components/kemet-drawer/docs/stories.d.ts +6 -0
  92. package/dist/components/kemet-drawer/docs/stories.js +59 -60
  93. package/dist/components/kemet-drawer/docs/stories.js.map +1 -1
  94. package/dist/components/kemet-drawer/kemet-drawer.d.ts +5 -5
  95. package/dist/components/kemet-drawer/kemet-drawer.js +5 -5
  96. package/dist/components/kemet-drawer/kemet-drawer.js.map +1 -1
  97. package/dist/components/kemet-drawer/styles.js +31 -25
  98. package/dist/components/kemet-drawer/styles.js.map +1 -1
  99. package/dist/components/kemet-drawer/types.d.ts +0 -6
  100. package/dist/components/kemet-drawer/types.js.map +1 -1
  101. package/dist/components/kemet-fab/docs/stories.d.ts +3 -0
  102. package/dist/components/kemet-fab/docs/stories.js +23 -32
  103. package/dist/components/kemet-fab/docs/stories.js.map +1 -1
  104. package/dist/components/kemet-fab/kemet-fab.d.ts +6 -6
  105. package/dist/components/kemet-fab/kemet-fab.js +6 -6
  106. package/dist/components/kemet-fab/kemet-fab.js.map +1 -1
  107. package/dist/components/kemet-fab/styles.js +19 -10
  108. package/dist/components/kemet-fab/styles.js.map +1 -1
  109. package/dist/components/kemet-field/docs/stories.d.ts +1 -1
  110. package/dist/components/kemet-field/docs/stories.js +19 -69
  111. package/dist/components/kemet-field/docs/stories.js.map +1 -1
  112. package/dist/components/kemet-field/kemet-field.d.ts +5 -5
  113. package/dist/components/kemet-field/kemet-field.js.map +1 -1
  114. package/dist/components/kemet-field/styles.js +6 -6
  115. package/dist/components/kemet-field/styles.js.map +1 -1
  116. package/dist/components/kemet-flipcard/docs/stories.d.ts +3 -0
  117. package/dist/components/kemet-flipcard/docs/stories.js +29 -78
  118. package/dist/components/kemet-flipcard/docs/stories.js.map +1 -1
  119. package/dist/components/kemet-flipcard/kemet-flipcard.d.ts +7 -7
  120. package/dist/components/kemet-flipcard/kemet-flipcard.js +7 -7
  121. package/dist/components/kemet-flipcard/kemet-flipcard.js.map +1 -1
  122. package/dist/components/kemet-flipcard/styles.js +20 -10
  123. package/dist/components/kemet-flipcard/styles.js.map +1 -1
  124. package/dist/components/kemet-icon/docs/stories.js +8 -15
  125. package/dist/components/kemet-icon/docs/stories.js.map +1 -1
  126. package/dist/components/kemet-input/docs/stories.d.ts +4 -0
  127. package/dist/components/kemet-input/docs/stories.js +54 -113
  128. package/dist/components/kemet-input/docs/stories.js.map +1 -1
  129. package/dist/components/kemet-input/kemet-input.d.ts +15 -15
  130. package/dist/components/kemet-input/kemet-input.js +15 -15
  131. package/dist/components/kemet-input/kemet-input.js.map +1 -1
  132. package/dist/components/kemet-input/styles.js +38 -21
  133. package/dist/components/kemet-input/styles.js.map +1 -1
  134. package/dist/components/kemet-modal/docs/stories.d.ts +2 -0
  135. package/dist/components/kemet-modal/docs/stories.js +25 -68
  136. package/dist/components/kemet-modal/docs/stories.js.map +1 -1
  137. package/dist/components/kemet-modal/kemet-modal-close.js +1 -1
  138. package/dist/components/kemet-modal/kemet-modal-close.js.map +1 -1
  139. package/dist/components/kemet-modal/kemet-modal.d.ts +16 -6
  140. package/dist/components/kemet-modal/kemet-modal.js +37 -18
  141. package/dist/components/kemet-modal/kemet-modal.js.map +1 -1
  142. package/dist/components/kemet-modal/styles.js +77 -48
  143. package/dist/components/kemet-modal/styles.js.map +1 -1
  144. package/dist/components/kemet-password/docs/stories.js +10 -18
  145. package/dist/components/kemet-password/docs/stories.js.map +1 -1
  146. package/dist/components/kemet-password/styles.js +7 -7
  147. package/dist/components/kemet-password/styles.js.map +1 -1
  148. package/dist/components/kemet-popper/docs/stories.d.ts +2 -0
  149. package/dist/components/kemet-popper/docs/stories.js +32 -39
  150. package/dist/components/kemet-popper/docs/stories.js.map +1 -1
  151. package/dist/components/kemet-popper/kemet-popper.d.ts +1 -3
  152. package/dist/components/kemet-popper/kemet-popper.js +3 -8
  153. package/dist/components/kemet-popper/kemet-popper.js.map +1 -1
  154. package/dist/components/kemet-popper/styles.js +14 -5
  155. package/dist/components/kemet-popper/styles.js.map +1 -1
  156. package/dist/components/kemet-radio/docs/stories.d.ts +2 -0
  157. package/dist/components/kemet-radio/docs/stories.js +24 -20
  158. package/dist/components/kemet-radio/docs/stories.js.map +1 -1
  159. package/dist/components/kemet-radio/kemet-radio.d.ts +7 -6
  160. package/dist/components/kemet-radio/kemet-radio.js +7 -6
  161. package/dist/components/kemet-radio/kemet-radio.js.map +1 -1
  162. package/dist/components/kemet-radio/kemet-radios.d.ts +1 -1
  163. package/dist/components/kemet-radio/kemet-radios.js +1 -1
  164. package/dist/components/kemet-radio/kemet-radios.js.map +1 -1
  165. package/dist/components/kemet-radio/styles.js +26 -16
  166. package/dist/components/kemet-radio/styles.js.map +1 -1
  167. package/dist/components/kemet-rotator/docs/stories.d.ts +1 -0
  168. package/dist/components/kemet-rotator/docs/stories.js +16 -28
  169. package/dist/components/kemet-rotator/docs/stories.js.map +1 -1
  170. package/dist/components/kemet-rotator/kemet-rotator.d.ts +2 -2
  171. package/dist/components/kemet-rotator/kemet-rotator.js +1 -1
  172. package/dist/components/kemet-rotator/kemet-rotator.js.map +1 -1
  173. package/dist/components/kemet-rotator/styles.js +4 -2
  174. package/dist/components/kemet-rotator/styles.js.map +1 -1
  175. package/dist/components/kemet-scroll-link/docs/stories.js +2 -2
  176. package/dist/components/kemet-scroll-link/docs/stories.js.map +1 -1
  177. package/dist/components/kemet-scroll-nav/docs/stories.js +5 -5
  178. package/dist/components/kemet-scroll-nav/docs/stories.js.map +1 -1
  179. package/dist/components/kemet-scroll-nav/kemet-scroll-nav.d.ts +5 -5
  180. package/dist/components/kemet-scroll-nav/kemet-scroll-nav.js +5 -5
  181. package/dist/components/kemet-scroll-nav/kemet-scroll-nav.js.map +1 -1
  182. package/dist/components/kemet-scroll-nav/styles.js +10 -4
  183. package/dist/components/kemet-scroll-nav/styles.js.map +1 -1
  184. package/dist/components/kemet-scroll-snap/docs/stories.d.ts +6 -0
  185. package/dist/components/kemet-scroll-snap/docs/stories.js +72 -82
  186. package/dist/components/kemet-scroll-snap/docs/stories.js.map +1 -1
  187. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.d.ts +3 -3
  188. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.js +3 -3
  189. package/dist/components/kemet-scroll-snap/kemet-scroll-snap-paginator.js.map +1 -1
  190. package/dist/components/kemet-scroll-snap/kemet-scroll-snap.d.ts +4 -4
  191. package/dist/components/kemet-scroll-snap/kemet-scroll-snap.js +4 -4
  192. package/dist/components/kemet-scroll-snap/kemet-scroll-snap.js.map +1 -1
  193. package/dist/components/kemet-scroll-snap/styles.js +14 -6
  194. package/dist/components/kemet-scroll-snap/styles.js.map +1 -1
  195. package/dist/components/kemet-select/docs/stories.d.ts +3 -0
  196. package/dist/components/kemet-select/docs/stories.js +25 -33
  197. package/dist/components/kemet-select/docs/stories.js.map +1 -1
  198. package/dist/components/kemet-select/kemet-select.d.ts +13 -13
  199. package/dist/components/kemet-select/kemet-select.js +13 -13
  200. package/dist/components/kemet-select/kemet-select.js.map +1 -1
  201. package/dist/components/kemet-select/styles.js +32 -16
  202. package/dist/components/kemet-select/styles.js.map +1 -1
  203. package/dist/components/kemet-sortable/docs/stories.js +5 -10
  204. package/dist/components/kemet-sortable/docs/stories.js.map +1 -1
  205. package/dist/components/kemet-sortable/styles.js +1 -1
  206. package/dist/components/kemet-sortable/styles.js.map +1 -1
  207. package/dist/components/kemet-svgs/docs/stories.js +11 -11
  208. package/dist/components/kemet-svgs/docs/stories.js.map +1 -1
  209. package/dist/components/kemet-tabs/docs/stories.d.ts +9 -0
  210. package/dist/components/kemet-tabs/docs/stories.js +78 -78
  211. package/dist/components/kemet-tabs/docs/stories.js.map +1 -1
  212. package/dist/components/kemet-tabs/kemet-tab-panel.d.ts +1 -1
  213. package/dist/components/kemet-tabs/kemet-tab-panel.js +1 -1
  214. package/dist/components/kemet-tabs/kemet-tab-panel.js.map +1 -1
  215. package/dist/components/kemet-tabs/kemet-tab.d.ts +2 -2
  216. package/dist/components/kemet-tabs/kemet-tab.js +2 -2
  217. package/dist/components/kemet-tabs/kemet-tab.js.map +1 -1
  218. package/dist/components/kemet-tabs/kemet-tabs.d.ts +8 -8
  219. package/dist/components/kemet-tabs/kemet-tabs.js +16 -8
  220. package/dist/components/kemet-tabs/kemet-tabs.js.map +1 -1
  221. package/dist/components/kemet-tabs/styles.js +12 -5
  222. package/dist/components/kemet-tabs/styles.js.map +1 -1
  223. package/dist/components/kemet-textarea/docs/stories.d.ts +3 -0
  224. package/dist/components/kemet-textarea/docs/stories.js +37 -67
  225. package/dist/components/kemet-textarea/docs/stories.js.map +1 -1
  226. package/dist/components/kemet-textarea/kemet-textarea.d.ts +12 -12
  227. package/dist/components/kemet-textarea/kemet-textarea.js +12 -12
  228. package/dist/components/kemet-textarea/kemet-textarea.js.map +1 -1
  229. package/dist/components/kemet-textarea/styles.js +31 -16
  230. package/dist/components/kemet-textarea/styles.js.map +1 -1
  231. package/dist/components/kemet-toggle/docs/stories.d.ts +2 -0
  232. package/dist/components/kemet-toggle/docs/stories.js +21 -36
  233. package/dist/components/kemet-toggle/docs/stories.js.map +1 -1
  234. package/dist/components/kemet-toggle/kemet-toggle.d.ts +9 -9
  235. package/dist/components/kemet-toggle/kemet-toggle.js +9 -9
  236. package/dist/components/kemet-toggle/kemet-toggle.js.map +1 -1
  237. package/dist/components/kemet-toggle/styles.js +12 -6
  238. package/dist/components/kemet-toggle/styles.js.map +1 -1
  239. package/dist/components/kemet-tooltip/docs/stories.d.ts +4 -0
  240. package/dist/components/kemet-tooltip/docs/stories.js +58 -33
  241. package/dist/components/kemet-tooltip/docs/stories.js.map +1 -1
  242. package/dist/components/kemet-tooltip/styles.js +2 -2
  243. package/dist/components/kemet-tooltip/styles.js.map +1 -1
  244. package/dist/components/kemet-tracker/docs/stories.d.ts +1 -0
  245. package/dist/components/kemet-tracker/docs/stories.js +18 -22
  246. package/dist/components/kemet-tracker/docs/stories.js.map +1 -1
  247. package/dist/components/kemet-tracker/kemet-tracker-step.d.ts +16 -16
  248. package/dist/components/kemet-tracker/kemet-tracker-step.js +16 -16
  249. package/dist/components/kemet-tracker/kemet-tracker-step.js.map +1 -1
  250. package/dist/components/kemet-tracker/styles.js +23 -12
  251. package/dist/components/kemet-tracker/styles.js.map +1 -1
  252. package/dist/components/kemet-upload/docs/stories.js +17 -22
  253. package/dist/components/kemet-upload/docs/stories.js.map +1 -1
  254. package/dist/components/kemet-upload/kemet-upload-file.d.ts +3 -3
  255. package/dist/components/kemet-upload/kemet-upload-file.js +3 -3
  256. package/dist/components/kemet-upload/kemet-upload-file.js.map +1 -1
  257. package/dist/components/kemet-upload/kemet-upload.d.ts +4 -4
  258. package/dist/components/kemet-upload/kemet-upload.js +4 -4
  259. package/dist/components/kemet-upload/kemet-upload.js.map +1 -1
  260. package/dist/components/kemet-upload/styles.js +27 -18
  261. package/dist/components/kemet-upload/styles.js.map +1 -1
  262. package/dist/kemet-components.bundle.js +16 -17
  263. package/dist/kemet-components.bundle.js.map +1 -1
  264. package/dist/kemet-components.cjs +6866 -6753
  265. package/dist/kemet-components.js +6866 -6753
  266. package/dist/styles/kemet.base.css +255 -78
  267. package/dist/styles/kemet.base.css.map +1 -1
  268. package/dist/styles/kemet.base.scss +6 -5
  269. package/dist/styles/kemet.components.css +1 -16
  270. package/dist/styles/kemet.components.css.map +1 -1
  271. package/dist/styles/kemet.components.scss +0 -2
  272. package/dist/styles/kemet.core.css +5729 -1737
  273. package/dist/styles/kemet.core.css.map +1 -1
  274. package/dist/styles/shared/_config.scss +306 -93
  275. package/dist/styles/shared/_helpers.scss +88 -16
  276. package/dist/tsconfig.tsbuildinfo +1 -1
  277. package/package.json +13 -12
  278. package/dist/components/kemet-accordion/types.d.ts +0 -9
  279. package/dist/components/kemet-accordion/types.js +0 -2
  280. package/dist/components/kemet-accordion/types.js.map +0 -1
  281. package/dist/components/kemet-avatar/types.d.ts +0 -8
  282. package/dist/components/kemet-avatar/types.js +0 -2
  283. package/dist/components/kemet-avatar/types.js.map +0 -1
  284. package/dist/components/kemet-card/types.d.ts +0 -3
  285. package/dist/components/kemet-card/types.js +0 -2
  286. package/dist/components/kemet-card/types.js.map +0 -1
  287. package/dist/components/kemet-carousel/types.d.ts +0 -21
  288. package/dist/components/kemet-carousel/types.js +0 -2
  289. package/dist/components/kemet-carousel/types.js.map +0 -1
  290. package/dist/components/kemet-combo/types.d.ts +0 -5
  291. package/dist/components/kemet-combo/types.js +0 -2
  292. package/dist/components/kemet-combo/types.js.map +0 -1
  293. package/dist/components/kemet-draggable/types.d.ts +0 -6
  294. package/dist/components/kemet-draggable/types.js +0 -2
  295. package/dist/components/kemet-draggable/types.js.map +0 -1
  296. package/dist/styles/components/drawer.scss +0 -11
  297. package/dist/styles/components/modal.scss +0 -8
@@ -1,25 +1,40 @@
1
1
  import { html } from 'lit';
2
+ import { ifDefined } from 'lit/directives/if-defined.js';
2
3
  import '../kemet-scroll-snap';
3
4
  import '../kemet-scroll-snap-slide';
4
5
  import '../kemet-scroll-snap-paginator';
5
6
  import '../../kemet-tabs/kemet-tabs';
6
7
  import '../../kemet-tabs/kemet-tab';
7
8
  import '../../kemet-tabs/kemet-tab-panel';
9
+ import '../../kemet-icon/kemet-icon';
8
10
  const meta = {
9
11
  title: 'Components / Scroll Snap',
10
12
  component: 'kemet-scroll-snap',
13
+ args: {
14
+ numberOfSlides: 5,
15
+ },
16
+ argTypes: {
17
+ axis: {
18
+ control: { type: 'select' },
19
+ options: ['horizontal', 'vertical'],
20
+ },
21
+ pagination: {
22
+ control: { type: 'select' },
23
+ options: ['top', 'right', 'bottom', 'left'],
24
+ },
25
+ }
11
26
  };
12
27
  export default meta;
13
- const Template = ({ showPagination = true, numberOfSlides = 5, gap = '1.5rem', axis = 'horizontal', pagination = 'bottom', paginationIcon = 'circle-fill', paginationSize = 16, paginationUseNumbers = false, paginationUseLabels = false, paginationCenter = true, paginationGap = '0.5rem', slideWidth = '44vw', horizontalMaxWidth = '90%', }) => {
28
+ const Template = (args) => {
14
29
  const makeSlides = (numberOfSlides) => {
15
30
  const slides = [];
16
31
  // eslint-disable-next-line no-plusplus
17
32
  for (let i = 0; i < numberOfSlides; i++) {
18
33
  slides.push(html `
19
- <kemet-scroll-snap-slide label="Heading ${i + 1}" kemet-margin-top="tiny:normal">
20
- <h3 kemet-type-size="plus-6">Heading ${i + 1}</h3>
34
+ <kemet-scroll-snap-slide label="Heading ${i + 1}" kemet-margin-top="2xl" style=${ifDefined(args.slideWidth ? `--kemet-scroll-snap-slide-width: ${args.slideWidth};` : undefined)}>
35
+ <h3 kemet-type-size="3xl">Heading ${i + 1}</h3>
21
36
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
22
- <img src="https://via.placeholder.com/1920x1080" alt="A placeholder" />
37
+ <img src="https://via.placeholder.com/1920x1080" alt="A placeholder" style="max-width:100%" />
23
38
  </kemet-scroll-snap-slide>
24
39
  `);
25
40
  }
@@ -30,8 +45,8 @@ const Template = ({ showPagination = true, numberOfSlides = 5, gap = '1.5rem', a
30
45
  return html `
31
46
  <kemet-scroll-snap-paginator
32
47
  slot="pagination"
33
- icon="${icon}"
34
- size="${size}"
48
+ icon="${ifDefined(icon)}"
49
+ size="${ifDefined(size)}"
35
50
  ?use-number-pages=${useNumbers}
36
51
  ?use-label-pages=${useLabels}
37
52
  ?center=${center}>
@@ -41,91 +56,66 @@ const Template = ({ showPagination = true, numberOfSlides = 5, gap = '1.5rem', a
41
56
  return null;
42
57
  };
43
58
  return html `
44
- <style>
45
- img {
46
- max-width: 100%;
47
- }
48
-
49
- kemet-scroll-snap {
50
- --kemet-scroll-snap-gap: ${gap};
51
- --kemet-scroll-snap-horizontal-max-width: ${horizontalMaxWidth};
52
- }
53
-
54
- kemet-scroll-snap-slide {
55
- --kemet-scroll-snap-slide-width: ${slideWidth};
56
- }
57
-
58
- kemet-scroll-snap-paginator {
59
- --kemet-scroll-snap-paginator-gap: ${paginationGap};
60
- }
61
- </style>
62
- <kemet-scroll-snap axis="${axis}" pagination="${pagination}">
59
+ <kemet-scroll-snap axis="${ifDefined(args.axis)}" pagination="${ifDefined(args.pagination)}">
63
60
  <div slot="slides">
64
- ${makeSlides(numberOfSlides)}
61
+ ${makeSlides(args.numberOfSlides)}
65
62
  </div>
66
- ${makePagination(showPagination, paginationIcon, paginationSize, paginationUseNumbers, paginationUseLabels, paginationCenter)}
63
+ ${makePagination(args.showPagination, args.paginationIcon, args.paginationSize, args.paginationUseNumbers, args.paginationUseLabels, args.paginationCenter)}
67
64
  </kemet-scroll-snap>
68
65
  `;
69
66
  };
67
+ // export const Standard: Story = {
68
+ // render: args => Template(args),
69
+ // args: {
70
+ // showPagination: true,
71
+ // numberOfSlides: 5,
72
+ // gap: '1.5rem',
73
+ // axis: 'horizontal',
74
+ // pagination: 'bottom',
75
+ // paginationIcon: 'circle-fill',
76
+ // paginationSize: 16,
77
+ // paginationUseNumbers: false,
78
+ // paginationUseLabels: false,
79
+ // paginationCenter: true,
80
+ // paginationGap: '0.5rem',
81
+ // slideWidth: '44vw',
82
+ // horizontalMaxWidth: '90%',
83
+ // },
84
+ // };
70
85
  export const Standard = {
71
86
  render: args => Template(args),
87
+ };
88
+ export const Vertical = {
89
+ render: args => Template(args),
90
+ args: {
91
+ axis: 'vertical',
92
+ },
93
+ };
94
+ export const Pagination = {
95
+ render: args => Template(args),
72
96
  args: {
73
97
  showPagination: true,
74
- numberOfSlides: 5,
75
- gap: '1.5rem',
76
- axis: 'horizontal',
77
- pagination: 'bottom',
78
- paginationIcon: 'circle-fill',
79
- paginationSize: 16,
80
- paginationUseNumbers: false,
81
- paginationUseLabels: false,
82
- paginationCenter: true,
83
- paginationGap: '0.5rem',
84
- slideWidth: '44vw',
85
- horizontalMaxWidth: '90%',
86
98
  },
87
- argTypes: {
88
- showPagination: {
89
- control: { type: 'boolean' },
90
- },
91
- numberOfSlides: {
92
- control: { type: 'number' },
93
- },
94
- gap: {
95
- control: { type: 'text' },
96
- },
97
- axis: {
98
- control: { type: 'select' },
99
- options: ['horizontal', 'vertical'],
100
- },
101
- pagination: {
102
- control: { type: 'select' },
103
- options: ['top', 'right', 'bottom', 'left'],
104
- },
105
- paginationIcon: {
106
- control: { type: 'text' },
107
- },
108
- paginationSize: {
109
- control: { type: 'number' },
110
- },
111
- paginationUseNumbers: {
112
- control: { type: 'boolean' },
113
- },
114
- paginationUseLabels: {
115
- control: { type: 'boolean' },
116
- },
117
- paginationCenter: {
118
- control: { type: 'boolean' },
119
- },
120
- paginationGap: {
121
- control: { type: 'text' },
122
- },
123
- slideWidth: {
124
- control: { type: 'text' },
125
- },
126
- horizontalMaxWidth: {
127
- control: { type: 'text' },
128
- },
129
- }
99
+ };
100
+ export const PaginationLabels = {
101
+ render: args => Template(args),
102
+ args: {
103
+ showPagination: true,
104
+ paginationUseLabels: true,
105
+ },
106
+ };
107
+ export const PaginationNumbers = {
108
+ render: args => Template(args),
109
+ args: {
110
+ showPagination: true,
111
+ paginationUseNumbers: true,
112
+ },
113
+ };
114
+ export const MultipleSlides = {
115
+ render: args => Template(args),
116
+ args: {
117
+ showPagination: true,
118
+ slideWidth: '33vw',
119
+ },
130
120
  };
131
121
  //# sourceMappingURL=stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stories.js","sourceRoot":"","sources":["../../../../src/components/kemet-scroll-snap/docs/stories.ts"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit';\nimport type { Meta, StoryObj } from '@storybook/web-components';\n\nimport '../kemet-scroll-snap';\nimport '../kemet-scroll-snap-slide';\nimport '../kemet-scroll-snap-paginator';\n\nimport '../../kemet-tabs/kemet-tabs';\nimport '../../kemet-tabs/kemet-tab';\nimport '../../kemet-tabs/kemet-tab-panel';\n\nconst meta: Meta = {\n title: 'Components / Scroll Snap',\n component: 'kemet-scroll-snap',\n};\nexport default meta;\n\ntype Story = StoryObj;\n\nconst Template = ({\n showPagination = true,\n numberOfSlides = 5,\n gap = '1.5rem',\n axis = 'horizontal',\n pagination = 'bottom',\n paginationIcon = 'circle-fill',\n paginationSize = 16,\n paginationUseNumbers = false,\n paginationUseLabels = false,\n paginationCenter = true,\n paginationGap = '0.5rem',\n slideWidth = '44vw',\n horizontalMaxWidth = '90%',\n}) => {\n const makeSlides = (numberOfSlides) => {\n const slides = [];\n\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i < numberOfSlides; i++) {\n slides.push(html`\n <kemet-scroll-snap-slide label=\"Heading ${i + 1}\" kemet-margin-top=\"tiny:normal\">\n <h3 kemet-type-size=\"plus-6\">Heading ${i + 1}</h3>\n <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>\n <img src=\"https://via.placeholder.com/1920x1080\" alt=\"A placeholder\" />\n </kemet-scroll-snap-slide>\n `);\n }\n\n return slides;\n };\n\n const makePagination = (display, icon, size, useNumbers, useLabels, center) => {\n if (display) {\n return html`\n <kemet-scroll-snap-paginator\n slot=\"pagination\"\n icon=\"${icon}\"\n size=\"${size}\"\n ?use-number-pages=${useNumbers}\n ?use-label-pages=${useLabels}\n ?center=${center}>\n </kemet-scroll-snap-paginator>\n `;\n }\n\n return null;\n };\n\n return html`\n <style>\n img {\n max-width: 100%;\n }\n\n kemet-scroll-snap {\n --kemet-scroll-snap-gap: ${gap};\n --kemet-scroll-snap-horizontal-max-width: ${horizontalMaxWidth};\n }\n\n kemet-scroll-snap-slide {\n --kemet-scroll-snap-slide-width: ${slideWidth};\n }\n\n kemet-scroll-snap-paginator {\n --kemet-scroll-snap-paginator-gap: ${paginationGap};\n }\n </style>\n <kemet-scroll-snap axis=\"${axis}\" pagination=\"${pagination}\">\n <div slot=\"slides\">\n ${makeSlides(numberOfSlides)}\n </div>\n ${makePagination(showPagination, paginationIcon, paginationSize, paginationUseNumbers, paginationUseLabels, paginationCenter)}\n </kemet-scroll-snap>\n `;\n}\n\nexport const Standard: Story = {\n render: args => Template(args),\n args: {\n showPagination: true,\n numberOfSlides: 5,\n gap: '1.5rem',\n axis: 'horizontal',\n pagination: 'bottom',\n paginationIcon: 'circle-fill',\n paginationSize: 16,\n paginationUseNumbers: false,\n paginationUseLabels: false,\n paginationCenter: true,\n paginationGap: '0.5rem',\n slideWidth: '44vw',\n horizontalMaxWidth: '90%',\n },\n argTypes: {\n showPagination: {\n control: { type: 'boolean' },\n },\n numberOfSlides: {\n control: { type: 'number' },\n },\n gap: {\n control: { type: 'text' },\n },\n axis: {\n control: { type: 'select' },\n options: ['horizontal', 'vertical'],\n },\n pagination: {\n control: { type: 'select' },\n options: ['top', 'right', 'bottom', 'left'],\n },\n paginationIcon: {\n control: { type: 'text' },\n },\n paginationSize: {\n control: { type: 'number' },\n },\n paginationUseNumbers: {\n control: { type: 'boolean' },\n },\n paginationUseLabels: {\n control: { type: 'boolean' },\n },\n paginationCenter: {\n control: { type: 'boolean' },\n },\n paginationGap: {\n control: { type: 'text' },\n },\n slideWidth: {\n control: { type: 'text' },\n },\n horizontalMaxWidth: {\n control: { type: 'text' },\n },\n }\n};\n"]}
1
+ {"version":3,"file":"stories.js","sourceRoot":"","sources":["../../../../src/components/kemet-scroll-snap/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-scroll-snap';\nimport '../kemet-scroll-snap-slide';\nimport '../kemet-scroll-snap-paginator';\n\nimport '../../kemet-tabs/kemet-tabs';\nimport '../../kemet-tabs/kemet-tab';\nimport '../../kemet-tabs/kemet-tab-panel';\nimport '../../kemet-icon/kemet-icon';\n\nconst meta: Meta = {\n title: 'Components / Scroll Snap',\n component: 'kemet-scroll-snap',\n args: {\n numberOfSlides: 5,\n },\n argTypes: {\n axis: {\n control: { type: 'select' },\n options: ['horizontal', 'vertical'],\n },\n pagination: {\n control: { type: 'select' },\n options: ['top', 'right', 'bottom', 'left'],\n },\n }\n};\nexport default meta;\n\ntype Story = StoryObj;\n\nconst Template = (args) => {\n const makeSlides = (numberOfSlides) => {\n const slides = [];\n\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i < numberOfSlides; i++) {\n slides.push(html`\n <kemet-scroll-snap-slide label=\"Heading ${i + 1}\" kemet-margin-top=\"2xl\" style=${ifDefined(args.slideWidth ? `--kemet-scroll-snap-slide-width: ${args.slideWidth};` : undefined)}>\n <h3 kemet-type-size=\"3xl\">Heading ${i + 1}</h3>\n <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>\n <img src=\"https://via.placeholder.com/1920x1080\" alt=\"A placeholder\" style=\"max-width:100%\" />\n </kemet-scroll-snap-slide>\n `);\n }\n\n return slides;\n };\n\n const makePagination = (display, icon, size, useNumbers, useLabels, center) => {\n if (display) {\n return html`\n <kemet-scroll-snap-paginator\n slot=\"pagination\"\n icon=\"${ifDefined(icon)}\"\n size=\"${ifDefined(size)}\"\n ?use-number-pages=${useNumbers}\n ?use-label-pages=${useLabels}\n ?center=${center}>\n </kemet-scroll-snap-paginator>\n `;\n }\n\n return null;\n };\n\n return html`\n <kemet-scroll-snap axis=\"${ifDefined(args.axis)}\" pagination=\"${ifDefined(args.pagination)}\">\n <div slot=\"slides\">\n ${makeSlides(args.numberOfSlides)}\n </div>\n ${makePagination(args.showPagination, args.paginationIcon, args.paginationSize, args.paginationUseNumbers, args.paginationUseLabels, args.paginationCenter)}\n </kemet-scroll-snap>\n `;\n}\n\n\n// export const Standard: Story = {\n// render: args => Template(args),\n// args: {\n// showPagination: true,\n// numberOfSlides: 5,\n// gap: '1.5rem',\n// axis: 'horizontal',\n// pagination: 'bottom',\n// paginationIcon: 'circle-fill',\n// paginationSize: 16,\n// paginationUseNumbers: false,\n// paginationUseLabels: false,\n// paginationCenter: true,\n// paginationGap: '0.5rem',\n// slideWidth: '44vw',\n// horizontalMaxWidth: '90%',\n// },\n// };\n\nexport const Standard: Story = {\n render: args => Template(args),\n};\n\nexport const Vertical: Story = {\n render: args => Template(args),\n args: {\n axis: 'vertical',\n },\n};\n\nexport const Pagination: Story = {\n render: args => Template(args),\n args: {\n showPagination: true,\n },\n};\n\nexport const PaginationLabels: Story = {\n render: args => Template(args),\n args: {\n showPagination: true,\n paginationUseLabels: true,\n },\n};\n\nexport const PaginationNumbers: Story = {\n render: args => Template(args),\n args: {\n showPagination: true,\n paginationUseNumbers: true,\n },\n};\n\nexport const MultipleSlides: Story = {\n render: args => Template(args),\n args: {\n showPagination: true,\n slideWidth: '33vw',\n },\n}\n"]}
@@ -14,9 +14,9 @@ import { LitElement } from 'lit';
14
14
  * @prop {boolean} useNumberPages - If set to true, the pages in the pagination iterator will appear as a set of numbers.
15
15
  * @prop {boolean} useLabelPages - If set to true, the pages in the pagination iterator will appear as the label set on the slide.
16
16
  *
17
- * @cssproperty --kemet-scroll-snap-paginator-padding - The padding on the container. Default: 1rem 0.
18
- * @cssproperty --kemet-scroll-snap-paginator-gap - The space between pagination items. Default: 0.5rem.
19
- * @cssproperty --kemet-scroll-snap-paginator-link-color - The color of a linkable pagination item. Default: var(--kemet-color-primary).
17
+ * @cssproperty --kemet-scroll-snap-paginator-padding - The padding on the container.
18
+ * @cssproperty --kemet-scroll-snap-paginator-gap - The space between pagination items.
19
+ * @cssproperty --kemet-scroll-snap-paginator-link-color - The color of a linkable pagination item.
20
20
  *
21
21
  * @event kemet-scroll-snap-focus - Fires when a set of slides are focused on.
22
22
  *
@@ -18,9 +18,9 @@ import { stylesScrollSnapPaginator } from './styles';
18
18
  * @prop {boolean} useNumberPages - If set to true, the pages in the pagination iterator will appear as a set of numbers.
19
19
  * @prop {boolean} useLabelPages - If set to true, the pages in the pagination iterator will appear as the label set on the slide.
20
20
  *
21
- * @cssproperty --kemet-scroll-snap-paginator-padding - The padding on the container. Default: 1rem 0.
22
- * @cssproperty --kemet-scroll-snap-paginator-gap - The space between pagination items. Default: 0.5rem.
23
- * @cssproperty --kemet-scroll-snap-paginator-link-color - The color of a linkable pagination item. Default: var(--kemet-color-primary).
21
+ * @cssproperty --kemet-scroll-snap-paginator-padding - The padding on the container.
22
+ * @cssproperty --kemet-scroll-snap-paginator-gap - The space between pagination items.
23
+ * @cssproperty --kemet-scroll-snap-paginator-link-color - The color of a linkable pagination item.
24
24
  *
25
25
  * @event kemet-scroll-snap-focus - Fires when a set of slides are focused on.
26
26
  *
@@ -1 +1 @@
1
- {"version":3,"file":"kemet-scroll-snap-paginator.js","sourceRoot":"","sources":["../../../src/components/kemet-scroll-snap/kemet-scroll-snap-paginator.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { emitEvent } from '../../utilities/misc/events';\nimport { stylesScrollSnapPaginator } from './styles';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-scroll-snap-paginator\n * @summary The scroll snap's pagination.\n *\n * @prop {array} slides - Information about each slide.\n * @prop {string} icon - A string representing which icon to use for pagination. Supports icons used in kemet-icon.\n * @prop {number} size - The size in pixels of the icons.\n * @prop {boolean} center - Determines whether to center the pagination items.\n * @prop {boolean} hideFocusedLinks - Will hide inactive pagination items if set to true.\n * @prop {boolean} useNumberPages - If set to true, the pages in the pagination iterator will appear as a set of numbers.\n * @prop {boolean} useLabelPages - If set to true, the pages in the pagination iterator will appear as the label set on the slide.\n *\n * @cssproperty --kemet-scroll-snap-paginator-padding - The padding on the container. Default: 1rem 0.\n * @cssproperty --kemet-scroll-snap-paginator-gap - The space between pagination items. Default: 0.5rem.\n * @cssproperty --kemet-scroll-snap-paginator-link-color - The color of a linkable pagination item. Default: var(--kemet-color-primary).\n *\n * @event kemet-scroll-snap-focus - Fires when a set of slides are focused on.\n *\n */\n\n@customElement('kemet-scroll-snap-paginator')\nexport default class KemetScrollSnapPaginator extends LitElement {\n static styles = [stylesScrollSnapPaginator];\n\n @property({ type: Array })\n slides: any[] = [];\n\n @property({ type: String })\n icon: string = 'circle-fill';\n\n @property({ type: Number })\n size: number = 16;\n\n @property({ type: Boolean, reflect: true })\n center: boolean;\n\n @property({ type: Boolean, attribute: 'hide-focused-links' })\n hideFocusedLinks: boolean = false;\n\n @property({ type: Boolean, reflect: true, attribute: 'use-number-pages' })\n useNumberPages: boolean = false;\n\n @property({ type: Boolean, reflect: true, attribute: 'use-label-pages' })\n useLabelPages: boolean = false;\n\n\n updated() {\n const scrollSnapElement = this.closest('kemet-scroll-snap');\n\n if (scrollSnapElement) {\n scrollSnapElement.addEventListener('kemet-scroll-snap-make-slides', (event: CustomEvent) => {\n this.slides = event.detail;\n });\n }\n }\n\n render() {\n return html`\n <nav part=\"nav\">${this.makePagination()}</nav>\n `;\n }\n\n makePagination() {\n let counter = 0;\n\n if (this.slides) {\n return this.slides.map((slide) => {\n counter = counter += 1;\n\n if (slide.focused) {\n return html`\n <span part=\"span\">${this.pageDisplay(slide, counter)}</span>\n `;\n }\n\n return html`\n <span\n class=\"link\"\n tabindex=\"0\"\n role=\"button\"\n @keyup=\"${event => this.handleKeyboardInput(event, slide.id)}\"\n @click=${() => this.slideLink(slide.id)}\n aria-label=\"${slide.label}\">\n ${this.pageDisplay(slide, counter)}\n </span>\n `;\n });\n }\n\n return null;\n }\n\n pageDisplay(slide, visibleIndex) {\n if (this.useNumberPages) {\n return visibleIndex;\n }\n\n if (this.useLabelPages) {\n return slide.label;\n }\n\n return html`<kemet-icon icon=${this.icon} size=${this.size}></kemet-icon>`;\n }\n\n slideLink(index) {\n emitEvent(this, 'kemet-scroll-snap-focus', index);\n }\n\n handleKeyboardInput(event, id) {\n if (event.code === 'Enter' || event.code === 'Space') {\n this.slideLink(id);\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-scroll-snap-paginator': KemetScrollSnapPaginator\n }\n}\n"]}
1
+ {"version":3,"file":"kemet-scroll-snap-paginator.js","sourceRoot":"","sources":["../../../src/components/kemet-scroll-snap/kemet-scroll-snap-paginator.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { emitEvent } from '../../utilities/misc/events';\nimport { stylesScrollSnapPaginator } from './styles';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-scroll-snap-paginator\n * @summary The scroll snap's pagination.\n *\n * @prop {array} slides - Information about each slide.\n * @prop {string} icon - A string representing which icon to use for pagination. Supports icons used in kemet-icon.\n * @prop {number} size - The size in pixels of the icons.\n * @prop {boolean} center - Determines whether to center the pagination items.\n * @prop {boolean} hideFocusedLinks - Will hide inactive pagination items if set to true.\n * @prop {boolean} useNumberPages - If set to true, the pages in the pagination iterator will appear as a set of numbers.\n * @prop {boolean} useLabelPages - If set to true, the pages in the pagination iterator will appear as the label set on the slide.\n *\n * @cssproperty --kemet-scroll-snap-paginator-padding - The padding on the container.\n * @cssproperty --kemet-scroll-snap-paginator-gap - The space between pagination items.\n * @cssproperty --kemet-scroll-snap-paginator-link-color - The color of a linkable pagination item.\n *\n * @event kemet-scroll-snap-focus - Fires when a set of slides are focused on.\n *\n */\n\n@customElement('kemet-scroll-snap-paginator')\nexport default class KemetScrollSnapPaginator extends LitElement {\n static styles = [stylesScrollSnapPaginator];\n\n @property({ type: Array })\n slides: any[] = [];\n\n @property({ type: String })\n icon: string = 'circle-fill';\n\n @property({ type: Number })\n size: number = 16;\n\n @property({ type: Boolean, reflect: true })\n center: boolean;\n\n @property({ type: Boolean, attribute: 'hide-focused-links' })\n hideFocusedLinks: boolean = false;\n\n @property({ type: Boolean, reflect: true, attribute: 'use-number-pages' })\n useNumberPages: boolean = false;\n\n @property({ type: Boolean, reflect: true, attribute: 'use-label-pages' })\n useLabelPages: boolean = false;\n\n\n updated() {\n const scrollSnapElement = this.closest('kemet-scroll-snap');\n\n if (scrollSnapElement) {\n scrollSnapElement.addEventListener('kemet-scroll-snap-make-slides', (event: CustomEvent) => {\n this.slides = event.detail;\n });\n }\n }\n\n render() {\n return html`\n <nav part=\"nav\">${this.makePagination()}</nav>\n `;\n }\n\n makePagination() {\n let counter = 0;\n\n if (this.slides) {\n return this.slides.map((slide) => {\n counter = counter += 1;\n\n if (slide.focused) {\n return html`\n <span part=\"span\">${this.pageDisplay(slide, counter)}</span>\n `;\n }\n\n return html`\n <span\n class=\"link\"\n tabindex=\"0\"\n role=\"button\"\n @keyup=\"${event => this.handleKeyboardInput(event, slide.id)}\"\n @click=${() => this.slideLink(slide.id)}\n aria-label=\"${slide.label}\">\n ${this.pageDisplay(slide, counter)}\n </span>\n `;\n });\n }\n\n return null;\n }\n\n pageDisplay(slide, visibleIndex) {\n if (this.useNumberPages) {\n return visibleIndex;\n }\n\n if (this.useLabelPages) {\n return slide.label;\n }\n\n return html`<kemet-icon icon=${this.icon} size=${this.size}></kemet-icon>`;\n }\n\n slideLink(index) {\n emitEvent(this, 'kemet-scroll-snap-focus', index);\n }\n\n handleKeyboardInput(event, id) {\n if (event.code === 'Enter' || event.code === 'Space') {\n this.slideLink(id);\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-scroll-snap-paginator': KemetScrollSnapPaginator\n }\n}\n"]}
@@ -16,10 +16,10 @@ import { TypeAxis, TypePagination } from './types';
16
16
  * @csspart slides - The slides container.
17
17
  * @csspart pagination - The pagination element.
18
18
  *
19
- * @cssproperty --kemet-scroll-snap-gap - Space between the slides. Default: 1.5rem.
20
- * @cssproperty --kemet-scroll-snap-horizontal-max-width - The horizontal max width of the container. Default: 1024px.
21
- * @cssproperty --kemet-scroll-snap-vertical-height - The vertical height of the container. Default: 100vh.
22
- * @cssproperty --kemet-scroll-snap-slides-vertical-padding - Padding on the vertical axis. Default: 0 2rem.
19
+ * @cssproperty --kemet-scroll-snap-gap - Space between the slides.
20
+ * @cssproperty --kemet-scroll-snap-horizontal-max-width - The horizontal max width of the container.
21
+ * @cssproperty --kemet-scroll-snap-vertical-height - The vertical height of the container.
22
+ * @cssproperty --kemet-scroll-snap-slides-vertical-padding - Padding on the vertical axis.
23
23
  *
24
24
  * @event kemet-scroll-snap-make-slides - Fires when slide data has been created.
25
25
  *
@@ -19,10 +19,10 @@ import { stylesScrollSnap } from './styles';
19
19
  * @csspart slides - The slides container.
20
20
  * @csspart pagination - The pagination element.
21
21
  *
22
- * @cssproperty --kemet-scroll-snap-gap - Space between the slides. Default: 1.5rem.
23
- * @cssproperty --kemet-scroll-snap-horizontal-max-width - The horizontal max width of the container. Default: 1024px.
24
- * @cssproperty --kemet-scroll-snap-vertical-height - The vertical height of the container. Default: 100vh.
25
- * @cssproperty --kemet-scroll-snap-slides-vertical-padding - Padding on the vertical axis. Default: 0 2rem.
22
+ * @cssproperty --kemet-scroll-snap-gap - Space between the slides.
23
+ * @cssproperty --kemet-scroll-snap-horizontal-max-width - The horizontal max width of the container.
24
+ * @cssproperty --kemet-scroll-snap-vertical-height - The vertical height of the container.
25
+ * @cssproperty --kemet-scroll-snap-slides-vertical-padding - Padding on the vertical axis.
26
26
  *
27
27
  * @event kemet-scroll-snap-make-slides - Fires when slide data has been created.
28
28
  *
@@ -1 +1 @@
1
- {"version":3,"file":"kemet-scroll-snap.js","sourceRoot":"","sources":["../../../src/components/kemet-scroll-snap/kemet-scroll-snap.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { emitEvent } from '../../utilities/misc/events';\nimport { stylesScrollSnap } from './styles';\nimport { KemetScrollSnapSlideInterface, TypeAxis, TypePagination } from './types';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-scroll-snap\n * @summary A scroll-snap implementation for responsive sliders.\n *\n * @prop {string} axis - Determines the direction the component flows. Values include: (horizontal | vertical)\n * @prop {string} pagination - Determines where to display the paginator. Values include: (top | right | bottom | left)\n *\n * @slot slides - Place your slides here.\n * @slot pagination - Place the paginator component here if you want one.\n *\n * @csspart slides - The slides container.\n * @csspart pagination - The pagination element.\n *\n * @cssproperty --kemet-scroll-snap-gap - Space between the slides. Default: 1.5rem.\n * @cssproperty --kemet-scroll-snap-horizontal-max-width - The horizontal max width of the container. Default: 1024px.\n * @cssproperty --kemet-scroll-snap-vertical-height - The vertical height of the container. Default: 100vh.\n * @cssproperty --kemet-scroll-snap-slides-vertical-padding - Padding on the vertical axis. Default: 0 2rem.\n *\n * @event kemet-scroll-snap-make-slides - Fires when slide data has been created.\n *\n */\n\n@customElement('kemet-scroll-snap')\nexport default class KemetScrollSnap extends LitElement {\n static styles = [stylesScrollSnap];\n\n @property({ type: String, reflect: true })\n axis: TypeAxis = 'horizontal';\n\n @property({ type: String, reflect: true })\n pagination: TypePagination = 'bottom';\n\n @state()\n isTouchDevice: boolean;\n\n @state()\n slides: any[];\n\n constructor() {\n super();\n\n this.addEventListener('kemet-scroll-snap-focus', (event: CustomEvent) => {\n this.focusSlide(event.detail);\n });\n }\n\n firstUpdated() {\n // standard properties\n this.isTouchDevice = 'ontouchstart' in document.documentElement;\n this.slides = [];\n\n this.setFocusedSlides();\n }\n\n updated() {\n this.setVerticalAttribute();\n }\n\n render() {\n return html`\n <slot name=\"slides\"></slot>\n <slot name=\"pagination\"></slot>\n `;\n }\n\n setFocusedSlides() {\n // reference: https://24ways.org/2019/beautiful-scrolling-experiences-without-libraries/\n // reference: https://css-tricks.com/an-explanation-of-how-the-intersection-observer-watches/\n const slides = this.querySelectorAll('kemet-scroll-snap-slide');\n const container = this.querySelector('[slot=\"slides\"]');\n\n const options = {\n root: container,\n rootMargin: '0px',\n threshold: 0.5,\n };\n\n const callback = (entries) => {\n entries.forEach((entry) => {\n const { target } = entry;\n\n if (entry.intersectionRatio >= 0.5) {\n target.focused = true;\n } else {\n target.focused = false;\n }\n });\n\n this.makeSlides();\n };\n\n const observer = new IntersectionObserver(callback, options);\n\n slides.forEach((slide) => {\n observer.observe(slide);\n });\n }\n\n makeSlides() {\n const slides = [];\n\n this.querySelectorAll('kemet-scroll-snap-slide').forEach((element, index) => {\n const slide = element as KemetScrollSnapSlideInterface;\n\n slide.index = index;\n slides.push({\n id: index,\n focused: slide.focused,\n label: slide.label,\n });\n });\n\n this.slides = slides;\n emitEvent(this, 'kemet-scroll-snap-make-slides', this.slides);\n }\n\n focusSlide(index) {\n const activeSlide = this.querySelector(`kemet-scroll-snap-slide[index=\"${index}\"]`);\n activeSlide.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n\n setVerticalAttribute() {\n if (this.axis === 'vertical') {\n document.querySelector('html').setAttribute('kemet-scroll-snap-axis', 'vertical');\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-scroll-snap': KemetScrollSnap\n }\n}\n"]}
1
+ {"version":3,"file":"kemet-scroll-snap.js","sourceRoot":"","sources":["../../../src/components/kemet-scroll-snap/kemet-scroll-snap.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { emitEvent } from '../../utilities/misc/events';\nimport { stylesScrollSnap } from './styles';\nimport { KemetScrollSnapSlideInterface, TypeAxis, TypePagination } from './types';\n\n/**\n * @since 1.0.0\n * @status stable\n *\n * @tagname kemet-scroll-snap\n * @summary A scroll-snap implementation for responsive sliders.\n *\n * @prop {string} axis - Determines the direction the component flows. Values include: (horizontal | vertical)\n * @prop {string} pagination - Determines where to display the paginator. Values include: (top | right | bottom | left)\n *\n * @slot slides - Place your slides here.\n * @slot pagination - Place the paginator component here if you want one.\n *\n * @csspart slides - The slides container.\n * @csspart pagination - The pagination element.\n *\n * @cssproperty --kemet-scroll-snap-gap - Space between the slides.\n * @cssproperty --kemet-scroll-snap-horizontal-max-width - The horizontal max width of the container.\n * @cssproperty --kemet-scroll-snap-vertical-height - The vertical height of the container.\n * @cssproperty --kemet-scroll-snap-slides-vertical-padding - Padding on the vertical axis.\n *\n * @event kemet-scroll-snap-make-slides - Fires when slide data has been created.\n *\n */\n\n@customElement('kemet-scroll-snap')\nexport default class KemetScrollSnap extends LitElement {\n static styles = [stylesScrollSnap];\n\n @property({ type: String, reflect: true })\n axis: TypeAxis = 'horizontal';\n\n @property({ type: String, reflect: true })\n pagination: TypePagination = 'bottom';\n\n @state()\n isTouchDevice: boolean;\n\n @state()\n slides: any[];\n\n constructor() {\n super();\n\n this.addEventListener('kemet-scroll-snap-focus', (event: CustomEvent) => {\n this.focusSlide(event.detail);\n });\n }\n\n firstUpdated() {\n // standard properties\n this.isTouchDevice = 'ontouchstart' in document.documentElement;\n this.slides = [];\n\n this.setFocusedSlides();\n }\n\n updated() {\n this.setVerticalAttribute();\n }\n\n render() {\n return html`\n <slot name=\"slides\"></slot>\n <slot name=\"pagination\"></slot>\n `;\n }\n\n setFocusedSlides() {\n // reference: https://24ways.org/2019/beautiful-scrolling-experiences-without-libraries/\n // reference: https://css-tricks.com/an-explanation-of-how-the-intersection-observer-watches/\n const slides = this.querySelectorAll('kemet-scroll-snap-slide');\n const container = this.querySelector('[slot=\"slides\"]');\n\n const options = {\n root: container,\n rootMargin: '0px',\n threshold: 0.5,\n };\n\n const callback = (entries) => {\n entries.forEach((entry) => {\n const { target } = entry;\n\n if (entry.intersectionRatio >= 0.5) {\n target.focused = true;\n } else {\n target.focused = false;\n }\n });\n\n this.makeSlides();\n };\n\n const observer = new IntersectionObserver(callback, options);\n\n slides.forEach((slide) => {\n observer.observe(slide);\n });\n }\n\n makeSlides() {\n const slides = [];\n\n this.querySelectorAll('kemet-scroll-snap-slide').forEach((element, index) => {\n const slide = element as KemetScrollSnapSlideInterface;\n\n slide.index = index;\n slides.push({\n id: index,\n focused: slide.focused,\n label: slide.label,\n });\n });\n\n this.slides = slides;\n emitEvent(this, 'kemet-scroll-snap-make-slides', this.slides);\n }\n\n focusSlide(index) {\n const activeSlide = this.querySelector(`kemet-scroll-snap-slide[index=\"${index}\"]`);\n activeSlide.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n\n setVerticalAttribute() {\n if (this.axis === 'vertical') {\n document.querySelector('html').setAttribute('kemet-scroll-snap-axis', 'vertical');\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'kemet-scroll-snap': KemetScrollSnap\n }\n}\n"]}
@@ -7,6 +7,10 @@ export const stylesScrollSnap = css `
7
7
  }
8
8
 
9
9
  :host {
10
+ --kemet-scroll-snap-horizontal-max-width: 1024px;
11
+ --kemet-scroll-snap-vertical-height: 100vh;
12
+ --kemet-scroll-snap-slides-vertical-padding: 0 2rem;
13
+
10
14
  display: flex;
11
15
  flex-direction: column;
12
16
  width: 100%;
@@ -14,7 +18,7 @@ export const stylesScrollSnap = css `
14
18
 
15
19
  :host([axis='horizontal']) {
16
20
  margin: auto;
17
- max-width: var(--kemet-scroll-snap-horizontal-max-width, 1024px);
21
+ max-width: var(--kemet-scroll-snap-horizontal-max-width);
18
22
  }
19
23
 
20
24
  :host([pagination="left"]),
@@ -41,25 +45,29 @@ export const stylesScrollSnap = css `
41
45
 
42
46
  /* vertical */
43
47
  :host([axis="vertical"]) {
44
- height: var(--kemet-scroll-snap-vertical-height, 100vh);
48
+ height: var(--kemet-scroll-snap-vertical-height);
45
49
  }
46
50
 
47
51
  :host([axis="vertical"]) ::slotted([slot="slides"]) {
48
52
  flex-direction: column;
49
53
  overflow-x: hidden;
50
54
  scroll-snap-type: y mandatory;
51
- padding: var(--kemet-scroll-snap-slides-vertical-padding, 0 2rem);
55
+ padding: var(--kemet-scroll-snap-slides-vertical-padding);
52
56
  }
53
57
  `;
54
58
  export const stylesScrollSnapPaginator = css `
55
59
  :host {
60
+ --kemet-scroll-snap-paginator-padding: 1rem 0;
61
+ --kemet-scroll-snap-paginator-gap: 0.5rem;
62
+ --kemet-scroll-snap-paginator-link-color: rgb(var(--kemet-color-primary));
63
+
56
64
  margin: auto;
57
- padding: var(--kemet-scroll-snap-paginator-padding, 1rem 0);
65
+ padding: var(--kemet-scroll-snap-paginator-padding);
58
66
  }
59
67
 
60
68
  nav {
61
69
  display: flex;
62
- gap: var(--kemet-scroll-snap-paginator-gap, 0.5rem);
70
+ gap: var(--kemet-scroll-snap-paginator-gap);
63
71
  }
64
72
 
65
73
  :host([center]) nav {
@@ -68,7 +76,7 @@ export const stylesScrollSnapPaginator = css `
68
76
 
69
77
  .link {
70
78
  cursor: pointer;
71
- color: var(--kemet-scroll-snap-paginator-link-color, var(--kemet-color-primary));
79
+ color: var(--kemet-scroll-snap-paginator-link-color);
72
80
  }
73
81
  `;
74
82
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/components/kemet-scroll-snap/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDlC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;CAmB3C,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const stylesScrollSnap = css`\n *,\n *::after,\n *::before {\n box-sizing: border-box;\n }\n\n :host {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n :host([axis='horizontal']) {\n margin: auto;\n max-width: var(--kemet-scroll-snap-horizontal-max-width, 1024px);\n }\n\n :host([pagination=\"left\"]),\n :host([pagination=\"right\"]) {\n flex-direction: row;\n }\n\n :host([pagination=\"none\"]) ::slotted([slot=\"pagination\"]) {\n display: none;\n }\n\n :host([pagination=\"top\"]) ::slotted([slot=\"pagination\"]),\n :host([pagination=\"left\"]) ::slotted([slot=\"pagination\"]) {\n order: -1;\n }\n\n\n ::slotted([slot=\"slides\"]) {\n display: flex;\n gap: var(--kemet-scroll-snap-gap, 1.5rem);\n scroll-snap-type: x mandatory;\n overflow-x: scroll;\n }\n\n /* vertical */\n :host([axis=\"vertical\"]) {\n height: var(--kemet-scroll-snap-vertical-height, 100vh);\n }\n\n :host([axis=\"vertical\"]) ::slotted([slot=\"slides\"]) {\n flex-direction: column;\n overflow-x: hidden;\n scroll-snap-type: y mandatory;\n padding: var(--kemet-scroll-snap-slides-vertical-padding, 0 2rem);\n }\n`;\n\nexport const stylesScrollSnapPaginator = css`\n :host {\n margin: auto;\n padding: var(--kemet-scroll-snap-paginator-padding, 1rem 0);\n }\n\n nav {\n display: flex;\n gap: var(--kemet-scroll-snap-paginator-gap, 0.5rem);\n }\n\n :host([center]) nav {\n justify-content: center;\n }\n\n .link {\n cursor: pointer;\n color: var(--kemet-scroll-snap-paginator-link-color, var(--kemet-color-primary));\n }\n`;\n"]}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/components/kemet-scroll-snap/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDlC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;CAuB3C,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const stylesScrollSnap = css`\n *,\n *::after,\n *::before {\n box-sizing: border-box;\n }\n\n :host {\n --kemet-scroll-snap-horizontal-max-width: 1024px;\n --kemet-scroll-snap-vertical-height: 100vh;\n --kemet-scroll-snap-slides-vertical-padding: 0 2rem;\n\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n :host([axis='horizontal']) {\n margin: auto;\n max-width: var(--kemet-scroll-snap-horizontal-max-width);\n }\n\n :host([pagination=\"left\"]),\n :host([pagination=\"right\"]) {\n flex-direction: row;\n }\n\n :host([pagination=\"none\"]) ::slotted([slot=\"pagination\"]) {\n display: none;\n }\n\n :host([pagination=\"top\"]) ::slotted([slot=\"pagination\"]),\n :host([pagination=\"left\"]) ::slotted([slot=\"pagination\"]) {\n order: -1;\n }\n\n\n ::slotted([slot=\"slides\"]) {\n display: flex;\n gap: var(--kemet-scroll-snap-gap, 1.5rem);\n scroll-snap-type: x mandatory;\n overflow-x: scroll;\n }\n\n /* vertical */\n :host([axis=\"vertical\"]) {\n height: var(--kemet-scroll-snap-vertical-height);\n }\n\n :host([axis=\"vertical\"]) ::slotted([slot=\"slides\"]) {\n flex-direction: column;\n overflow-x: hidden;\n scroll-snap-type: y mandatory;\n padding: var(--kemet-scroll-snap-slides-vertical-padding);\n }\n`;\n\nexport const stylesScrollSnapPaginator = css`\n :host {\n --kemet-scroll-snap-paginator-padding: 1rem 0;\n --kemet-scroll-snap-paginator-gap: 0.5rem;\n --kemet-scroll-snap-paginator-link-color: rgb(var(--kemet-color-primary));\n\n margin: auto;\n padding: var(--kemet-scroll-snap-paginator-padding);\n }\n\n nav {\n display: flex;\n gap: var(--kemet-scroll-snap-paginator-gap);\n }\n\n :host([center]) nav {\n justify-content: center;\n }\n\n .link {\n cursor: pointer;\n color: var(--kemet-scroll-snap-paginator-link-color);\n }\n`;\n"]}
@@ -8,3 +8,6 @@ declare const meta: Meta;
8
8
  export default meta;
9
9
  declare type Story = StoryObj;
10
10
  export declare const Standard: Story;
11
+ export declare const Disabled: Story;
12
+ export declare const Filled: Story;
13
+ export declare const Rounded: Story;
@@ -1,4 +1,5 @@
1
1
  import { html } from 'lit';
2
+ import { ifDefined } from 'lit/directives/if-defined.js';
2
3
  import '../kemet-select';
3
4
  import '../kemet-option';
4
5
  import '../../kemet-tabs/kemet-tabs';
@@ -7,10 +8,16 @@ import '../../kemet-tabs/kemet-tab-panel';
7
8
  const meta = {
8
9
  title: 'Components / Select',
9
10
  component: 'kemet-select',
11
+ argTypes: {
12
+ status: {
13
+ control: { type: 'radio' },
14
+ options: ['standard', 'error', 'success', 'warning'],
15
+ },
16
+ }
10
17
  };
11
18
  export default meta;
12
- const Template = ({ status = 'standard', required = true, disabled = false, icon = 'chevron-down', iconSize = 16, filled = false, rounded = false, }) => html `
13
- <kemet-select status="${status}" ?required=${required} ?disabled=${disabled} icon=${icon} icon-size=${iconSize} ?filled=${filled} ?rounded=${rounded}>
19
+ const Template = (args) => html `
20
+ <kemet-select status="${ifDefined(args.status)}" ?required=${args.required} ?disabled=${args.disabled} icon=${ifDefined(args.icon)} icon-size=${ifDefined(args.iconSize)} ?filled=${args.filled} ?rounded=${args.rounded}>
14
21
  <kemet-option label="Choose an Item" value=""></kemet-option>
15
22
  <kemet-option label="Item 1" value="1"></kemet-option>
16
23
  <kemet-option label="Item 2" value="2" selected></kemet-option>
@@ -20,38 +27,23 @@ const Template = ({ status = 'standard', required = true, disabled = false, icon
20
27
  `;
21
28
  export const Standard = {
22
29
  render: args => Template(args),
30
+ };
31
+ export const Disabled = {
32
+ render: args => Template(args),
23
33
  args: {
24
- status: 'standard',
25
- required: true,
26
- disabled: false,
27
- icon: 'chevron-down',
28
- iconSize: 16,
29
- filled: false,
30
- rounded: false,
34
+ disabled: true,
35
+ },
36
+ };
37
+ export const Filled = {
38
+ render: args => Template(args),
39
+ args: {
40
+ filled: true,
41
+ },
42
+ };
43
+ export const Rounded = {
44
+ render: args => Template(args),
45
+ args: {
46
+ rounded: true,
31
47
  },
32
- argTypes: {
33
- status: {
34
- control: { type: 'radio' },
35
- options: ['standard', 'error', 'success', 'warning'],
36
- },
37
- required: {
38
- control: { type: 'boolean' },
39
- },
40
- disabled: {
41
- control: { type: 'boolean' },
42
- },
43
- icon: {
44
- control: { type: 'text' },
45
- },
46
- iconSize: {
47
- control: { type: 'number' },
48
- },
49
- filled: {
50
- control: { type: 'boolean' },
51
- },
52
- rounded: {
53
- control: { type: 'boolean' },
54
- },
55
- }
56
48
  };
57
49
  //# sourceMappingURL=stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stories.js","sourceRoot":"","sources":["../../../../src/components/kemet-select/docs/stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAG3B,OAAO,iBAAiB,CAAC;AACzB,OAAO,iBAAiB,CAAC;AAEzB,OAAO,6BAA6B,CAAC;AACrC,OAAO,4BAA4B,CAAC;AACpC,OAAO,kCAAkC,CAAC;AAE1C,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,qBAAqB;IAC5B,SAAS,EAAE,cAAc;CAC1B,CAAC;AACF,eAAe,IAAI,CAAC;AAKpB,MAAM,QAAQ,GAAG,CAAC,EAChB,MAAM,GAAG,UAAU,EACnB,QAAQ,GAAG,IAAI,EACf,QAAQ,GAAG,KAAK,EAChB,IAAI,GAAG,cAAc,EACrB,QAAQ,GAAG,EAAE,EACb,MAAM,GAAG,KAAK,EACd,OAAO,GAAG,KAAK,GAChB,EAAE,EAAE,CAAC,IAAI,CAAA;wBACc,MAAM,eAAe,QAAQ,cAAc,QAAQ,SAAS,IAAI,cAAc,QAAQ,YAAY,MAAM,aAAa,OAAO;;;;;;;CAOnJ,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAU;IAC7B,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,IAAI,EAAE;QACJ,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,KAAK;KACf;IACD,QAAQ,EAAE;QACR,MAAM,EAAE;YACN,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YAC1B,OAAO,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;SACrD;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SAC7B;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SAC7B;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SAC1B;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC5B;QACD,MAAM,EAAE;YACN,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SAC7B;QACD,OAAO,EAAE;YACP,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SAC7B;KACF;CACF,CAAC","sourcesContent":["import { html } from 'lit';\nimport type { Meta, StoryObj } from '@storybook/web-components';\n\nimport '../kemet-select';\nimport '../kemet-option';\n\nimport '../../kemet-tabs/kemet-tabs';\nimport '../../kemet-tabs/kemet-tab';\nimport '../../kemet-tabs/kemet-tab-panel';\n\nconst meta: Meta = {\n title: 'Components / Select',\n component: 'kemet-select',\n};\nexport default meta;\n\ntype Story = StoryObj;\n\n\nconst Template = ({\n status = 'standard',\n required = true,\n disabled = false,\n icon = 'chevron-down',\n iconSize = 16,\n filled = false,\n rounded = false,\n}) => html`\n<kemet-select status=\"${status}\" ?required=${required} ?disabled=${disabled} icon=${icon} icon-size=${iconSize} ?filled=${filled} ?rounded=${rounded}>\n <kemet-option label=\"Choose an Item\" value=\"\"></kemet-option>\n <kemet-option label=\"Item 1\" value=\"1\"></kemet-option>\n <kemet-option label=\"Item 2\" value=\"2\" selected></kemet-option>\n <kemet-option label=\"Item 3\" value=\"3\"></kemet-option>\n <kemet-option label=\"Item 4\" value=\"4\" disabled></kemet-option>\n</kemet-select>\n`;\n\nexport const Standard: Story = {\n render: args => Template(args),\n args: {\n status: 'standard',\n required: true,\n disabled: false,\n icon: 'chevron-down',\n iconSize: 16,\n filled: false,\n rounded: false,\n },\n argTypes: {\n status: {\n control: { type: 'radio' },\n options: ['standard', 'error', 'success', 'warning'],\n },\n required: {\n control: { type: 'boolean' },\n },\n disabled: {\n control: { type: 'boolean' },\n },\n icon: {\n control: { type: 'text' },\n },\n iconSize: {\n control: { type: 'number' },\n },\n filled: {\n control: { type: 'boolean' },\n },\n rounded: {\n control: { type: 'boolean' },\n },\n }\n};\n"]}
1
+ {"version":3,"file":"stories.js","sourceRoot":"","sources":["../../../../src/components/kemet-select/docs/stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAGzD,OAAO,iBAAiB,CAAC;AACzB,OAAO,iBAAiB,CAAC;AAEzB,OAAO,6BAA6B,CAAC;AACrC,OAAO,4BAA4B,CAAC;AACpC,OAAO,kCAAkC,CAAC;AAE1C,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,qBAAqB;IAC5B,SAAS,EAAE,cAAc;IACzB,QAAQ,EAAE;QACR,MAAM,EAAE;YACN,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YAC1B,OAAO,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;SACrD;KACF;CACF,CAAC;AACF,eAAe,IAAI,CAAC;AAKpB,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;wBACP,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,QAAQ,cAAc,IAAI,CAAC,QAAQ,SAAS,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,MAAM,aAAa,IAAI,CAAC,OAAO;;;;;;;CAOvN,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAU;IAC7B,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAU;IAC7B,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,IAAI,EAAE;QACJ,QAAQ,EAAE,IAAI;KACf;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAU;IAC3B,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,IAAI,EAAE;QACJ,MAAM,EAAE,IAAI;KACb;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,IAAI,EAAE;QACJ,OAAO,EAAE,IAAI;KACd;CACF,CAAC","sourcesContent":["import { html } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport type { Meta, StoryObj } from '@storybook/web-components';\n\nimport '../kemet-select';\nimport '../kemet-option';\n\nimport '../../kemet-tabs/kemet-tabs';\nimport '../../kemet-tabs/kemet-tab';\nimport '../../kemet-tabs/kemet-tab-panel';\n\nconst meta: Meta = {\n title: 'Components / Select',\n component: 'kemet-select',\n argTypes: {\n status: {\n control: { type: 'radio' },\n options: ['standard', 'error', 'success', 'warning'],\n },\n }\n};\nexport default meta;\n\ntype Story = StoryObj;\n\n\nconst Template = (args) => html`\n<kemet-select status=\"${ifDefined(args.status)}\" ?required=${args.required} ?disabled=${args.disabled} icon=${ifDefined(args.icon)} icon-size=${ifDefined(args.iconSize)} ?filled=${args.filled} ?rounded=${args.rounded}>\n <kemet-option label=\"Choose an Item\" value=\"\"></kemet-option>\n <kemet-option label=\"Item 1\" value=\"1\"></kemet-option>\n <kemet-option label=\"Item 2\" value=\"2\" selected></kemet-option>\n <kemet-option label=\"Item 3\" value=\"3\"></kemet-option>\n <kemet-option label=\"Item 4\" value=\"4\" disabled></kemet-option>\n</kemet-select>\n`;\n\nexport const Standard: Story = {\n render: args => Template(args),\n};\n\nexport const Disabled: Story = {\n render: args => Template(args),\n args: {\n disabled: true,\n },\n};\n\nexport const Filled: Story = {\n render: args => Template(args),\n args: {\n filled: true,\n },\n};\n\nexport const Rounded: Story = {\n render: args => Template(args),\n args: {\n rounded: true,\n },\n};\n"]}
@@ -23,19 +23,19 @@ import { KemetFieldInterface } from '../kemet-field/types';
23
23
  *
24
24
  * @csspart select
25
25
  *
26
- * @cssproperty --kemet-select-padding - The padding on the textarea. Default: 1rem.
27
- * @cssproperty --kemet-select-border - The border of the textarea. Default: 1px solid var(--kemet-color-background).
28
- * @cssproperty --kemet-select-border-color-error - The border of the error state. Default: 1px solid var(--kemet-color-error).
29
- * @cssproperty --kemet-select-border-color-success - The border of the success state. Default: 1px solid var(--kemet-color-success).
30
- * @cssproperty --kemet-select-border-color-warning - The border of the warning state. Default: 1px solid var(--kemet-color-warning).
31
- * @cssproperty --kemet-select-border-radius-rounded - The border radius on rounded. Default: var(--kemet-border-radius).
32
- * @cssproperty --kemet-select-border-filled - The border on filled. Default: none.
33
- * @cssproperty --kemet-select-color-filled - The color on filled. Default: var(--kemet-color-white).
34
- * @cssproperty --kemet-select-background-color-filled - The background-color on filled. Default: var(--kemet-color-primary).
35
- * @cssproperty --kemet-select-background-color-error - The error state background color. Default: var(--kemet-color-error).
36
- * @cssproperty --kemet-select-background-color-success - The success state background color. Default: var(--kemet-color-success).
37
- * @cssproperty --kemet-select-background-color-warning - The warning state background color. Default: var(--kemet-color-warning).
38
- * @cssproperty --kemet-select-icon-right - The space on the right of the icon. Default: 1rem.
26
+ * @cssproperty --kemet-select-padding - The padding on the textarea.
27
+ * @cssproperty --kemet-select-border - The border of the textarea.
28
+ * @cssproperty --kemet-select-border-color-error - The border of the error state.
29
+ * @cssproperty --kemet-select-border-color-success - The border of the success state.
30
+ * @cssproperty --kemet-select-border-color-warning - The border of the warning state.
31
+ * @cssproperty --kemet-select-border-radius-rounded - The border radius on rounded.
32
+ * @cssproperty --kemet-select-border-filled - The border on filled.
33
+ * @cssproperty --kemet-select-color-filled - The color on filled.
34
+ * @cssproperty --kemet-select-background-color-filled - The background-color on filled.
35
+ * @cssproperty --kemet-select-background-color-error - The error state background color.
36
+ * @cssproperty --kemet-select-background-color-success - The success state background color.
37
+ * @cssproperty --kemet-select-background-color-warning - The warning state background color.
38
+ * @cssproperty --kemet-select-icon-right - The space on the right of the icon.
39
39
  *
40
40
  * @event kemet-input-focused - Fires when the input receives and loses focus
41
41
  * @event kemet-input-status - Fires when there's a change in status