@uh-design-system/component-library 0.5.2 → 0.6.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 (243) hide show
  1. package/dist/cjs/{utils-3412cbed.js → attributes-BMbXzbwU.js} +2 -28
  2. package/dist/cjs/component-library.cjs.js +7 -7
  3. package/dist/cjs/controlUtils-ofqiQxRF.js +42 -0
  4. package/dist/cjs/ds-accordion.cjs.entry.js +79 -0
  5. package/dist/cjs/ds-button.cjs.entry.js +107 -0
  6. package/dist/cjs/ds-card.cjs.entry.js +58 -0
  7. package/dist/cjs/ds-checkbox-group.cjs.entry.js +109 -49
  8. package/dist/cjs/ds-checkbox.cjs.entry.js +88 -79
  9. package/dist/cjs/ds-icon.cjs.entry.js +943 -0
  10. package/dist/cjs/ds-input-validity.cjs.entry.js +14 -15
  11. package/dist/cjs/ds-link-with-arrow.cjs.entry.js +21 -20
  12. package/dist/cjs/ds-link.cjs.entry.js +34 -31
  13. package/dist/cjs/ds-radio-button-group.cjs.entry.js +153 -0
  14. package/dist/cjs/ds-radio-button.cjs.entry.js +151 -0
  15. package/dist/cjs/ds-spinner.cjs.entry.js +62 -0
  16. package/dist/cjs/ds-text-input.cjs.entry.js +90 -77
  17. package/dist/cjs/ds-visually-hidden.cjs.entry.js +3 -6
  18. package/dist/cjs/index-Bp6Dd2i1.js +94 -0
  19. package/dist/cjs/{store-9bd20f3c.js → index-DwLFyR5p.js} +6 -2
  20. package/dist/cjs/{index-bf84b124.js → index-Mjp9Y-Sw.js} +701 -55
  21. package/dist/cjs/index.cjs.js +3 -5
  22. package/dist/cjs/{linkUtils-695da37c.js → linkUtils-onlbgKdI.js} +4 -2
  23. package/dist/cjs/loader.cjs.js +3 -5
  24. package/dist/cjs/utils-BjZTECpy.js +29 -0
  25. package/dist/collection/accessibility/stories/naming.stories.js +3 -3
  26. package/dist/collection/collection-manifest.json +78 -3
  27. package/dist/collection/components/01-base-components/ds-accordion/ds-accordion.css +18 -17
  28. package/dist/collection/components/01-base-components/ds-accordion/ds-accordion.js +91 -50
  29. package/dist/collection/components/01-base-components/ds-accordion/stories/ds-accordion.examples.stories.js +6 -6
  30. package/dist/collection/components/01-base-components/ds-accordion/stories/ds-accordion.features.stories.js +14 -14
  31. package/dist/collection/components/01-base-components/ds-accordion/stories/ds-accordion.stories.js +24 -66
  32. package/dist/collection/components/01-base-components/ds-button/ds-button.css +124 -145
  33. package/dist/collection/components/01-base-components/ds-button/ds-button.js +150 -65
  34. package/dist/collection/components/01-base-components/ds-button/stories/ds-button.examples.stories.js +121 -23
  35. package/dist/collection/components/01-base-components/ds-button/stories/ds-button.features.stories.js +49 -42
  36. package/dist/collection/components/01-base-components/ds-button/stories/ds-button.stories.js +16 -72
  37. package/dist/collection/components/01-base-components/ds-card/ds-card.css +127 -0
  38. package/dist/collection/components/01-base-components/ds-card/ds-card.js +303 -0
  39. package/dist/collection/components/01-base-components/ds-card/stories/ds-card.examples.stories.js +92 -0
  40. package/dist/collection/components/01-base-components/ds-card/stories/ds-card.features.stories.js +66 -0
  41. package/dist/collection/components/01-base-components/ds-card/stories/ds-card.stories.js +71 -0
  42. package/dist/collection/components/01-base-components/ds-checkbox/ds-checkbox.css +46 -46
  43. package/dist/collection/components/01-base-components/ds-checkbox/ds-checkbox.js +120 -111
  44. package/dist/collection/components/01-base-components/ds-checkbox/stories/ds-checkbox.features.stories.js +20 -20
  45. package/dist/collection/components/01-base-components/ds-checkbox/stories/ds-checkbox.stories.js +12 -25
  46. package/dist/collection/components/01-base-components/ds-checkbox-group/ds-checkbox-group.css +2 -3
  47. package/dist/collection/components/01-base-components/ds-checkbox-group/ds-checkbox-group.js +214 -63
  48. package/dist/collection/components/01-base-components/ds-checkbox-group/stories/ds-checkbox-group.features.stories.js +215 -50
  49. package/dist/collection/components/01-base-components/ds-checkbox-group/stories/ds-checkbox-group.stories.js +30 -28
  50. package/dist/collection/components/01-base-components/ds-icon/ds-icon.js +36 -31
  51. package/dist/collection/components/01-base-components/ds-icon/stories/ds-icon.stories.js +10 -37
  52. package/dist/collection/components/01-base-components/ds-input-validity/ds-input-validity.css +2 -2
  53. package/dist/collection/components/01-base-components/ds-input-validity/ds-input-validity.js +60 -30
  54. package/dist/collection/components/01-base-components/ds-input-validity/stories/ds-input-validity.features.stories.js +4 -4
  55. package/dist/collection/components/01-base-components/ds-input-validity/stories/ds-input-validity.stories.js +4 -9
  56. package/dist/collection/components/01-base-components/ds-link/ds-link.css +24 -14
  57. package/dist/collection/components/01-base-components/ds-link/ds-link.js +74 -75
  58. package/dist/collection/components/01-base-components/ds-link/stories/ds-link.examples.stories.js +27 -27
  59. package/dist/collection/components/01-base-components/ds-link/stories/ds-link.features.stories.js +38 -21
  60. package/dist/collection/components/01-base-components/ds-link/stories/ds-link.stories.js +8 -67
  61. package/dist/collection/components/01-base-components/ds-link-with-arrow/ds-link-with-arrow.css +10 -12
  62. package/dist/collection/components/01-base-components/ds-link-with-arrow/ds-link-with-arrow.js +30 -52
  63. package/dist/collection/components/01-base-components/ds-link-with-arrow/stories/ds-link-with-arrow.examples.stories.js +4 -4
  64. package/dist/collection/components/01-base-components/ds-link-with-arrow/stories/ds-link-with-arrow.features.stories.js +6 -6
  65. package/dist/collection/components/01-base-components/ds-link-with-arrow/stories/ds-link-with-arrow.stories.js +4 -28
  66. package/dist/collection/components/01-base-components/ds-radio-button/ds-radio-button.css +115 -0
  67. package/dist/collection/components/01-base-components/ds-radio-button/ds-radio-button.js +449 -0
  68. package/dist/collection/components/01-base-components/ds-radio-button/stories/ds-radio-button.features.stories.js +72 -0
  69. package/dist/collection/components/01-base-components/ds-radio-button/stories/ds-radio-button.stories.js +22 -0
  70. package/dist/collection/components/01-base-components/ds-radio-button-group/ds-radio-button-group.css +30 -0
  71. package/dist/collection/components/01-base-components/ds-radio-button-group/ds-radio-button-group.js +360 -0
  72. package/dist/collection/components/01-base-components/ds-radio-button-group/stories/ds-radio-button-group.examples.stories.js +42 -0
  73. package/dist/collection/components/01-base-components/ds-radio-button-group/stories/ds-radio-button-group.features.stories.js +71 -0
  74. package/dist/collection/components/01-base-components/ds-radio-button-group/stories/ds-radio-button-group.stories.js +60 -0
  75. package/dist/collection/components/01-base-components/ds-spinner/ds-spinner.css +279 -0
  76. package/dist/collection/components/01-base-components/ds-spinner/ds-spinner.js +221 -0
  77. package/dist/collection/components/01-base-components/ds-spinner/stories/ds-spinner.examples.stories.js +120 -0
  78. package/dist/collection/components/01-base-components/ds-spinner/stories/ds-spinner.features.stories.js +107 -0
  79. package/dist/collection/components/01-base-components/ds-spinner/stories/ds-spinner.stories.js +14 -0
  80. package/dist/collection/components/01-base-components/ds-text-input/ds-text-input.css +85 -118
  81. package/dist/collection/components/01-base-components/ds-text-input/ds-text-input.js +230 -155
  82. package/dist/collection/components/01-base-components/ds-text-input/stories/ds-text-input.examples.stories.js +26 -21
  83. package/dist/collection/components/01-base-components/ds-text-input/stories/ds-text-input.features.stories.js +40 -40
  84. package/dist/collection/components/01-base-components/ds-text-input/stories/ds-text-input.stories.js +30 -56
  85. package/dist/collection/components/01-base-components/ds-visually-hidden/ds-visually-hidden.js +1 -1
  86. package/dist/collection/store.js +7 -1
  87. package/dist/collection/utils/attributes/attributes.js +2 -2
  88. package/dist/collection/utils/button/buttonUtils.js +14 -0
  89. package/dist/collection/utils/colours/colourTypes.js +3 -3
  90. package/dist/collection/utils/colours/colourUtils.js +5 -3
  91. package/dist/collection/utils/controls/controlUtils.js +35 -1
  92. package/dist/collection/utils/link/linkUtils.js +3 -2
  93. package/dist/collection/utils/spinner/spinnerUtils.js +20 -0
  94. package/dist/collection/utils/tests/testUtils.js +1 -0
  95. package/dist/collection/utils/typography/typographyUtils.js +3 -3
  96. package/dist/collection/utils/utils.js +10 -9
  97. package/dist/component-library/{utils-cfc536bc.js → attributes-BD_lNRxn.js} +1 -1
  98. package/dist/component-library/component-library.css +1 -1
  99. package/dist/component-library/component-library.esm.js +1 -1
  100. package/dist/component-library/controlUtils-CNER0MvM.js +1 -0
  101. package/dist/component-library/ds-accordion.entry.js +1 -0
  102. package/dist/component-library/ds-button.entry.js +1 -0
  103. package/dist/component-library/ds-card.entry.js +1 -0
  104. package/dist/component-library/ds-checkbox-group.entry.js +1 -1
  105. package/dist/component-library/ds-checkbox.entry.js +1 -1
  106. package/dist/component-library/ds-icon.entry.js +1 -0
  107. package/dist/component-library/ds-input-validity.entry.js +1 -1
  108. package/dist/component-library/ds-link-with-arrow.entry.js +1 -1
  109. package/dist/component-library/ds-link.entry.js +1 -1
  110. package/dist/component-library/ds-radio-button-group.entry.js +1 -0
  111. package/dist/component-library/ds-radio-button.entry.js +1 -0
  112. package/dist/component-library/ds-spinner.entry.js +1 -0
  113. package/dist/component-library/ds-text-input.entry.js +1 -1
  114. package/dist/component-library/ds-visually-hidden.entry.js +1 -1
  115. package/dist/component-library/index-BfTCfPZ1.js +6 -0
  116. package/dist/component-library/index-Cm7V4EAn.js +2 -0
  117. package/dist/component-library/index-DuYjhvTn.js +1 -0
  118. package/dist/component-library/index.esm.js +1 -1
  119. package/dist/component-library/linkUtils-02nCfO0F.js +1 -0
  120. package/dist/component-library/utils-CqaqnfY4.js +1 -0
  121. package/dist/components/attributes.js +3 -3
  122. package/dist/components/controlUtils.js +35 -2
  123. package/dist/components/ds-accordion.js +58 -42
  124. package/dist/components/ds-button2.js +78 -39
  125. package/dist/components/ds-card.d.ts +11 -0
  126. package/dist/components/ds-card.js +91 -0
  127. package/dist/components/ds-checkbox-group.js +116 -56
  128. package/dist/components/ds-checkbox2.js +93 -80
  129. package/dist/components/ds-icon2.js +292 -292
  130. package/dist/components/ds-input-validity2.js +17 -14
  131. package/dist/components/ds-link-with-arrow.js +22 -22
  132. package/dist/components/ds-link.js +43 -40
  133. package/dist/components/ds-radio-button-group.d.ts +11 -0
  134. package/dist/components/ds-radio-button-group.js +185 -0
  135. package/dist/components/ds-radio-button.d.ts +11 -0
  136. package/dist/components/ds-radio-button.js +198 -0
  137. package/dist/components/ds-spinner.d.ts +11 -0
  138. package/dist/components/ds-spinner.js +6 -0
  139. package/dist/components/ds-spinner2.js +89 -0
  140. package/dist/components/ds-text-input.js +126 -104
  141. package/dist/components/ds-visually-hidden2.js +2 -3
  142. package/dist/components/index.js +208 -2
  143. package/dist/components/index2.js +713 -39
  144. package/dist/components/index3.js +69 -57
  145. package/dist/components/linkUtils.js +4 -2
  146. package/dist/docs.d.ts +443 -0
  147. package/dist/docs.json +4790 -0
  148. package/dist/esm/{utils-cfc536bc.js → attributes-BD_lNRxn.js} +3 -26
  149. package/dist/esm/component-library.js +6 -5
  150. package/dist/esm/controlUtils-CNER0MvM.js +37 -0
  151. package/dist/esm/ds-accordion.entry.js +77 -0
  152. package/dist/esm/ds-button.entry.js +105 -0
  153. package/dist/esm/ds-card.entry.js +56 -0
  154. package/dist/esm/ds-checkbox-group.entry.js +108 -46
  155. package/dist/esm/ds-checkbox.entry.js +78 -67
  156. package/dist/esm/ds-icon.entry.js +941 -0
  157. package/dist/esm/ds-input-validity.entry.js +14 -13
  158. package/dist/esm/ds-link-with-arrow.entry.js +21 -18
  159. package/dist/esm/ds-link.entry.js +34 -29
  160. package/dist/esm/ds-radio-button-group.entry.js +151 -0
  161. package/dist/esm/ds-radio-button.entry.js +149 -0
  162. package/dist/esm/ds-spinner.entry.js +60 -0
  163. package/dist/esm/ds-text-input.entry.js +88 -73
  164. package/dist/esm/ds-visually-hidden.entry.js +3 -4
  165. package/dist/esm/index-BfTCfPZ1.js +92 -0
  166. package/dist/esm/{index-434995e1.js → index-Cm7V4EAn.js} +699 -34
  167. package/dist/{components/store.js → esm/index-DuYjhvTn.js} +6 -3
  168. package/dist/esm/index.js +2 -2
  169. package/dist/esm/{linkUtils-3d1b28cf.js → linkUtils-02nCfO0F.js} +4 -2
  170. package/dist/esm/loader.js +4 -4
  171. package/dist/esm/utils-CqaqnfY4.js +25 -0
  172. package/dist/hydrate/index.d.ts +271 -0
  173. package/dist/hydrate/index.js +22280 -0
  174. package/dist/hydrate/index.mjs +22272 -0
  175. package/dist/hydrate/package.json +12 -0
  176. package/dist/styles/helpers.css +15 -0
  177. package/dist/styles/helpers.css.map +1 -0
  178. package/dist/styles/mixins/_breakpoints.scss +13 -0
  179. package/dist/styles/mixins/_focus.scss +26 -0
  180. package/dist/styles/mixins/_wrapper.scss +5 -0
  181. package/dist/styles/mixins/imports-default/_imports.scss +2 -0
  182. package/dist/styles/mixins/tokens/_breakpoints.scss +13 -0
  183. package/dist/styles/mixins/tokens/_semantic-colours.scss +75 -0
  184. package/dist/styles/mixins.scss +12 -0
  185. package/dist/styles/variables.css +176 -0
  186. package/dist/styles/variables.css.map +1 -0
  187. package/dist/types/components/01-base-components/ds-accordion/ds-accordion.d.ts +11 -8
  188. package/dist/types/components/01-base-components/ds-button/ds-button.d.ts +16 -11
  189. package/dist/types/components/01-base-components/ds-button/stories/ds-button.examples.stories.d.ts +1 -0
  190. package/dist/types/components/01-base-components/ds-button/stories/ds-button.features.stories.d.ts +1 -0
  191. package/dist/types/components/01-base-components/ds-card/ds-card.d.ts +20 -0
  192. package/dist/types/components/01-base-components/ds-card/stories/ds-card.examples.stories.d.ts +8 -0
  193. package/dist/types/components/01-base-components/ds-card/stories/ds-card.features.stories.d.ts +8 -0
  194. package/dist/types/components/01-base-components/ds-card/stories/ds-card.stories.d.ts +7 -0
  195. package/dist/types/components/01-base-components/ds-checkbox/ds-checkbox.d.ts +21 -22
  196. package/dist/types/components/01-base-components/ds-checkbox-group/ds-checkbox-group.d.ts +21 -11
  197. package/dist/types/components/01-base-components/ds-checkbox-group/stories/ds-checkbox-group.features.stories.d.ts +3 -0
  198. package/dist/types/components/01-base-components/ds-icon/ds-icon.d.ts +7 -5
  199. package/dist/types/components/01-base-components/ds-input-validity/ds-input-validity.d.ts +5 -6
  200. package/dist/types/components/01-base-components/ds-link/ds-link.d.ts +13 -14
  201. package/dist/types/components/01-base-components/ds-link/stories/ds-link.features.stories.d.ts +2 -0
  202. package/dist/types/components/01-base-components/ds-link-with-arrow/ds-link-with-arrow.d.ts +5 -7
  203. package/dist/types/components/01-base-components/ds-radio-button/ds-radio-button.d.ts +44 -0
  204. package/dist/types/components/01-base-components/ds-radio-button/stories/ds-radio-button.features.stories.d.ts +15 -0
  205. package/dist/types/components/01-base-components/ds-radio-button/stories/ds-radio-button.stories.d.ts +7 -0
  206. package/dist/types/components/01-base-components/ds-radio-button-group/ds-radio-button-group.d.ts +34 -0
  207. package/dist/types/components/01-base-components/ds-radio-button-group/stories/ds-radio-button-group.examples.stories.d.ts +6 -0
  208. package/dist/types/components/01-base-components/ds-radio-button-group/stories/ds-radio-button-group.features.stories.d.ts +11 -0
  209. package/dist/types/components/01-base-components/ds-radio-button-group/stories/ds-radio-button-group.stories.d.ts +7 -0
  210. package/dist/types/components/01-base-components/ds-spinner/ds-spinner.d.ts +17 -0
  211. package/dist/types/components/01-base-components/ds-spinner/stories/ds-spinner.examples.stories.d.ts +7 -0
  212. package/dist/types/components/01-base-components/ds-spinner/stories/ds-spinner.features.stories.d.ts +7 -0
  213. package/dist/types/components/01-base-components/ds-spinner/stories/ds-spinner.stories.d.ts +7 -0
  214. package/dist/types/components/01-base-components/ds-text-input/ds-text-input.d.ts +37 -32
  215. package/dist/types/components.d.ts +1287 -228
  216. package/dist/types/stencil-public-runtime.d.ts +22 -0
  217. package/dist/types/store.d.ts +6 -1
  218. package/dist/types/utils/attributes/attributes.d.ts +1 -1
  219. package/dist/types/utils/button/buttonUtils.d.ts +1 -0
  220. package/dist/types/utils/colours/colourTypes.d.ts +3 -3
  221. package/dist/types/utils/controls/controlUtils.d.ts +2 -0
  222. package/dist/types/utils/link/linkUtils.d.ts +1 -1
  223. package/dist/types/utils/spinner/spinnerUtils.d.ts +1 -0
  224. package/dist/types/utils/tests/testUtils.d.ts +1 -0
  225. package/dist/types/utils/utils.d.ts +2 -1
  226. package/package.json +40 -36
  227. package/dist/cjs/controlUtils-041de0fd.js +0 -7
  228. package/dist/cjs/ds-accordion_3.cjs.entry.js +0 -1095
  229. package/dist/cjs/index-5b0b9d4c.js +0 -82
  230. package/dist/component-library/controlUtils-9ca4087b.js +0 -1
  231. package/dist/component-library/ds-accordion_3.entry.js +0 -1
  232. package/dist/component-library/index-434995e1.js +0 -2
  233. package/dist/component-library/index-72ac5051.js +0 -6
  234. package/dist/component-library/linkUtils-3d1b28cf.js +0 -1
  235. package/dist/component-library/store-b8d17c10.js +0 -1
  236. package/dist/esm/controlUtils-9ca4087b.js +0 -4
  237. package/dist/esm/ds-accordion_3.entry.js +0 -1089
  238. package/dist/esm/index-72ac5051.js +0 -80
  239. package/dist/esm/store-b8d17c10.js +0 -204
  240. package/dist/loader/package.json +0 -11
  241. /package/dist/cjs/{app-globals-3a1e7e63.js → app-globals-V2Kpy_OQ.js} +0 -0
  242. /package/dist/component-library/{app-globals-0f993ce5.js → app-globals-DQuL1Twl.js} +0 -0
  243. /package/dist/esm/{app-globals-0f993ce5.js → app-globals-DQuL1Twl.js} +0 -0
@@ -1,55 +1,48 @@
1
1
  import { html } from "lit";
2
+ import { getDsElem } from "../../../../utils/tests/testUtils";
3
+ import { expect } from "@storybook/test";
2
4
  const meta = {
3
5
  title: 'Base Components/Button/Features',
4
6
  component: 'ds-button',
5
7
  args: {
6
- value: 'Button',
7
- },
8
- argTypes: {
9
- value: { table: { disable: true } },
10
- variant: { name: 'Variant', table: { disable: true } },
11
- colour: { name: 'Colour', table: { disable: true } },
12
- size: { name: 'Size', table: { disable: true } },
13
- disabled: { name: 'Disabled', table: { disable: true } },
14
- icon: { name: 'Icon', table: { disable: true } },
15
- iconPosition: { name: 'Icon Position', table: { disable: true } },
8
+ dsValue: 'Button',
16
9
  },
17
10
  };
18
11
  export default meta;
19
12
  export const Primary = {
20
13
  args: {
21
- value: 'Primary',
22
- variant: 'primary',
14
+ dsValue: 'Primary',
15
+ dsVariant: 'primary',
23
16
  }
24
17
  };
25
18
  export const Secondary = {
26
19
  args: {
27
- value: 'Secondary',
28
- variant: 'secondary',
20
+ dsValue: 'Secondary',
21
+ dsVariant: 'secondary',
29
22
  }
30
23
  };
31
24
  export const Supplementary = {
32
25
  args: {
33
- value: 'Supplementary',
34
- variant: 'supplementary',
26
+ dsValue: 'Supplementary',
27
+ dsVariant: 'supplementary',
35
28
  }
36
29
  };
37
30
  export const Blue = {
38
31
  args: {
39
- value: 'Blue',
40
- colour: 'blue',
32
+ dsValue: 'Blue',
33
+ dsColour: 'blue',
41
34
  }
42
35
  };
43
36
  export const Black = {
44
37
  args: {
45
- value: 'Black',
46
- colour: 'black',
38
+ dsValue: 'Black',
39
+ dsColour: 'black',
47
40
  }
48
41
  };
49
42
  export const White = {
50
43
  args: {
51
- value: 'White',
52
- colour: 'white',
44
+ dsValue: 'White',
45
+ dsColour: 'white',
53
46
  },
54
47
  parameters: {
55
48
  backgrounds: { default: 'Black 90%' },
@@ -57,60 +50,74 @@ export const White = {
57
50
  };
58
51
  export const Medium = {
59
52
  args: {
60
- value: 'Medium',
61
- size: 'medium',
53
+ dsValue: 'Medium',
54
+ dsSize: 'medium',
62
55
  }
63
56
  };
64
57
  export const SmallPrimary = {
65
58
  args: {
66
- size: 'small',
67
- variant: 'primary',
59
+ dsSize: 'small',
60
+ dsVariant: 'primary',
68
61
  },
69
62
  };
70
63
  export const SmallSecondary = {
71
64
  args: {
72
- size: 'small',
73
- variant: 'secondary',
65
+ dsSize: 'small',
66
+ dsVariant: 'secondary',
74
67
  },
75
68
  };
76
69
  export const SmallSupplementary = {
77
70
  args: {
78
- size: 'small',
79
- variant: 'supplementary',
71
+ dsSize: 'small',
72
+ dsVariant: 'supplementary',
80
73
  },
81
74
  };
82
75
  export const Disabled = {
83
76
  args: {
84
- value: 'Disabled',
85
- disabled: true,
77
+ dsValue: 'Disabled',
78
+ dsDisabled: true,
86
79
  }
87
80
  };
88
81
  export const IconStart = {
89
82
  args: {
90
- value: 'Icon start',
91
- icon: 'arrow_forward',
83
+ dsValue: 'Icon start',
84
+ dsIcon: 'arrow_forward',
92
85
  }
93
86
  };
94
87
  export const IconEnd = {
95
88
  args: {
96
- value: 'Icon end',
97
- icon: 'arrow_forward',
98
- iconPosition: 'end',
89
+ dsValue: 'Icon end',
90
+ dsIcon: 'arrow_forward',
91
+ dsIconPosition: 'end',
99
92
  }
100
93
  };
101
94
  export const IconOnly = {
102
95
  args: {
103
- value: '',
104
- icon: 'download',
96
+ dsValue: '',
97
+ dsIcon: 'download',
105
98
  ariaLabel: 'Download',
106
99
  }
107
100
  };
108
101
  export const FullWidth = {
109
- render: () => html `<ds-button full-width value="Full width"></ds-button>`
102
+ render: () => html `<ds-button ds-full-width ds-value="Full width"></ds-button>`
110
103
  };
111
104
  export const FullWidthWithStartIcon = {
112
- render: () => html `<ds-button full-width icon="ds_flame" value="Full width"></ds-button>`
105
+ render: () => html `<ds-button ds-full-width ds-icon="ds_flame" ds-value="Full width"></ds-button>`
113
106
  };
114
107
  export const FullWidthWithEndIcon = {
115
- render: () => html `<ds-button full-width icon="ds_flame" icon-position="end" value="Full width"></ds-button>`
108
+ render: () => html `<ds-button ds-full-width ds-icon="ds_flame" ds-icon-position="end" ds-value="Full width"></ds-button>`
109
+ };
110
+ export const ProgrammaticFocus = {
111
+ args: {
112
+ dsValue: 'Primary',
113
+ dsVariant: 'primary',
114
+ },
115
+ play: async ({ canvasElement, step }) => {
116
+ const dsElem = await getDsElem(canvasElement, 'ds-button');
117
+ const buttonElem = dsElem.querySelector('button');
118
+ await step('Calling `dsFocus` should set focus to inner button element', async () => {
119
+ await dsElem.dsFocus();
120
+ expect(buttonElem).toHaveFocus();
121
+ });
122
+ }
116
123
  };
@@ -1,22 +1,4 @@
1
1
  import { icons } from "../../../00-foundations/icons/iconList";
2
- import { getAriaAttributeArgTypes } from "../../../../utils/attributes/attributes";
3
- const buttonAriaAttributes = [
4
- 'aria-busy',
5
- 'aria-live',
6
- 'aria-atomic',
7
- 'aria-disabled',
8
- 'aria-expanded',
9
- 'aria-pressed',
10
- 'aria-hidden',
11
- 'aria-label',
12
- 'aria-labelledby',
13
- 'aria-controls',
14
- 'aria-haspopup',
15
- 'aria-describedby',
16
- 'aria-relevant',
17
- 'aria-details',
18
- ];
19
- const buttonAriaAttributeArgTypes = getAriaAttributeArgTypes(buttonAriaAttributes);
20
2
  const meta = {
21
3
  title: 'Base Components/Button',
22
4
  component: 'ds-button',
@@ -24,71 +6,33 @@ const meta = {
24
6
  export default meta;
25
7
  export const Default = {
26
8
  args: {
27
- value: 'button',
28
- fontWeight: '700',
29
- disabled: false,
9
+ dsValue: 'button',
10
+ dsDisabled: false,
30
11
  },
31
12
  argTypes: {
32
- value: { control: 'text' },
33
- disabled: { control: 'boolean' },
34
- fontWeight: {
35
- control: 'select',
36
- options: [400, 600, 650, 700],
37
- },
13
+ dsValue: { control: 'text' },
14
+ dsDisabled: { control: 'boolean' },
38
15
  },
39
16
  };
40
17
  export const Playground = {
41
18
  argTypes: {
42
- ...Default.argTypes,
43
- variant: {
44
- options: ['primary', 'secondary', 'supplementary'],
45
- control: {
46
- type: 'radio',
47
- },
48
- },
49
- colour: {
50
- options: ['blue', 'black', 'white'],
51
- control: {
52
- type: 'radio',
53
- },
54
- },
55
- size: {
56
- options: ['medium', 'small'],
57
- control: {
58
- type: 'radio',
59
- },
60
- },
61
- fontWeight: {
62
- control: 'select',
63
- options: [400, 600, 650, 700],
64
- },
65
- icon: {
19
+ dsIcon: {
66
20
  control: 'select',
67
21
  options: icons.map(icon => icon.name),
68
22
  },
69
- iconPosition: {
70
- options: ['start', 'end'],
71
- control: {
72
- type: 'radio',
73
- },
74
- },
75
- type: {
76
- options: ['submit', 'reset', 'button'],
77
- control: {
78
- type: 'radio',
79
- },
80
- },
81
- ...buttonAriaAttributeArgTypes,
82
23
  },
83
24
  args: {
84
25
  ...Default.args,
85
- variant: 'primary',
86
- colour: 'blue',
87
- size: 'medium',
88
- disabled: false,
89
- ariaLabel: '',
90
- ariaLabelledby: '',
91
- icon: '',
92
- iconPosition: 'start',
26
+ dsVariant: 'primary',
27
+ dsColour: 'blue',
28
+ dsSize: 'medium',
29
+ dsDisabled: false,
30
+ dsIsLoading: false,
31
+ dsUseSpinner: false,
32
+ dsSpinnerHiddenText: '',
33
+ dsAriaLabel: '',
34
+ dsAriaLabelledby: '',
35
+ dsIcon: '',
36
+ dsIconPosition: 'start',
93
37
  },
94
38
  };
@@ -0,0 +1,127 @@
1
+ :root {
2
+ --ds-breakpoint-xSmall: 20rem;
3
+ --ds-breakpoint-small: 30rem;
4
+ --ds-breakpoint-medium: 60rem;
5
+ --ds-breakpoint-large: 75rem;
6
+ --ds-breakpoint-xLarge: 90rem;
7
+ }
8
+
9
+ :host {
10
+ display: block;
11
+ }
12
+
13
+ .ds-card {
14
+ background-color: var(--ds-palette-white);
15
+ border: 1px solid var(--ds-palette-black-20);
16
+ color: var(--ds-palette-black-95);
17
+ display: flex;
18
+ flex-direction: column;
19
+ hyphens: auto;
20
+ margin-bottom: var(--ds-spacing-2xSmall);
21
+ }
22
+ .ds-card:focus-within {
23
+ box-shadow: false 0 0 0 var(--ds-borderWidth-thick) var(--ds-palette-white);
24
+ outline: var(--ds-borderWidth-thin) solid var(--ds-palette-black-95);
25
+ outline-offset: calc(var(--ds-borderWidth-thin) * -1 * -1);
26
+ }
27
+ .ds-card:focus-within .ds-card__heading {
28
+ text-decoration: underline;
29
+ text-underline-offset: 2px;
30
+ }
31
+ .ds-card.ds-card--link:hover {
32
+ border-color: var(--ds-palette-black-50);
33
+ cursor: pointer;
34
+ }
35
+ .ds-card.ds-card--link:hover ds-icon {
36
+ color: var(--ds-palette-black-80);
37
+ }
38
+ .ds-card.ds-card--link:hover .ds-card__heading {
39
+ text-decoration: underline;
40
+ text-underline-offset: 2px;
41
+ }
42
+ .ds-card.ds-card--link:active {
43
+ border-color: var(--ds-palette-black-95);
44
+ }
45
+ .ds-card.ds-card--link:active ds-icon {
46
+ color: var(--ds-palette-black-80);
47
+ }
48
+ .ds-card.ds-card--link {
49
+ text-decoration: none;
50
+ }
51
+ .ds-card.ds-card--link:focus-within ds-icon {
52
+ color: var(--ds-palette-black-80);
53
+ }
54
+ .ds-card--filled {
55
+ background-color: var(--ds-palette-black-05);
56
+ }
57
+ .ds-card__image-container {
58
+ aspect-ratio: 16/9;
59
+ position: relative;
60
+ width: 100%;
61
+ overflow: hidden;
62
+ }
63
+ .ds-card__image {
64
+ width: 100%;
65
+ height: 100%;
66
+ object-fit: cover;
67
+ }
68
+ .ds-card__content--top {
69
+ align-items: center;
70
+ display: flex;
71
+ gap: var(--ds-spacing-small);
72
+ justify-content: space-between;
73
+ padding: var(--ds-spacing-xSmall) var(--ds-spacing-small);
74
+ }
75
+ .ds-card__content--top__text {
76
+ display: flex;
77
+ flex-direction: column;
78
+ gap: var(--ds-spacing-3xSmall);
79
+ }
80
+ .ds-card__eyebrow {
81
+ color: var(--ds-palette-black-70);
82
+ font-family: var(--ds-fontFamily-body);
83
+ font-size: var(--ds-fontSize-16);
84
+ font-weight: var(--ds-fontWeight-semibold);
85
+ letter-spacing: 1px;
86
+ line-height: var(--ds-lineHeight-large);
87
+ letter-spacing: var(--ds-letterSpacing-wide);
88
+ margin-bottom: var(--ds-spacing-3xSmall);
89
+ order: 1;
90
+ }
91
+ .ds-card__heading {
92
+ align-items: center;
93
+ color: var(--ds-palette-black-95);
94
+ display: flex;
95
+ font-size: var(--ds-fontSize-20);
96
+ font-weight: var(--ds-fontWeight-semibold);
97
+ margin: 0;
98
+ order: 2;
99
+ justify-content: space-between;
100
+ text-wrap: balance;
101
+ }
102
+ .ds-card__heading__link {
103
+ all: unset;
104
+ }
105
+ .ds-card__subtitle {
106
+ font-size: var(--ds-fontSize-16);
107
+ font-family: var(--ds-fontFamily-body);
108
+ color: var(--ds-palette-black-70);
109
+ line-height: var(--ds-lineHeight-large);
110
+ letter-spacing: var(--ds-letterSpacing-wide);
111
+ order: 3;
112
+ }
113
+ .ds-card__description {
114
+ font-family: var(--ds-fontFamily-body);
115
+ font-size: var(--ds-fontSize-16);
116
+ line-height: var(--ds-lineHeight-large);
117
+ letter-spacing: var(--ds-letterSpacing-wide);
118
+ color: var(--ds-palette-black-95);
119
+ padding: 0 var(--ds-spacing-small);
120
+ margin: 0 0 var(--ds-spacing-small) 0;
121
+ text-wrap: pretty;
122
+ }
123
+ .ds-card ds-icon {
124
+ color: var(--ds-palette-mainBlue-70);
125
+ font-size: var(--ds-fontSize-20);
126
+ font-weight: normal;
127
+ }