@onsvisual/svelte-components 1.0.40 → 1.0.42

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 (223) hide show
  1. package/README.md +24 -24
  2. package/dist/css/main.css +513 -513
  3. package/dist/datavis/BarChart/BarChart.stories.svelte +84 -84
  4. package/dist/datavis/BarChart/docs/component.md +19 -19
  5. package/dist/datavis/Chart/Chart.stories.svelte +128 -128
  6. package/dist/datavis/Chart/docs/component.md +31 -31
  7. package/dist/datavis/Chart/docs/example.md +28 -28
  8. package/dist/datavis/ColumnChart/ColumnChart.stories.svelte +84 -84
  9. package/dist/datavis/ColumnChart/docs/component.md +19 -19
  10. package/dist/datavis/DataCard/DataCard.stories.svelte +45 -45
  11. package/dist/datavis/DataCard/DataCard.svelte +70 -70
  12. package/dist/datavis/DataCard/Sparkline.svelte +117 -117
  13. package/dist/datavis/DataCard/docs/component.md +20 -20
  14. package/dist/datavis/DataCard/docs/example.md +25 -25
  15. package/dist/datavis/DotPlotChart/DotPlotChart.stories.svelte +40 -40
  16. package/dist/datavis/DotPlotChart/docs/component.md +19 -19
  17. package/dist/datavis/LineChart/LineChart.stories.svelte +64 -64
  18. package/dist/datavis/LineChart/docs/component.md +31 -31
  19. package/dist/datavis/ScatterChart/ScatterChart.stories.svelte +55 -55
  20. package/dist/datavis/ScatterChart/docs/component.md +53 -53
  21. package/dist/datavis/Table/Table.stories.svelte +48 -48
  22. package/dist/datavis/Table/Table.svelte +161 -161
  23. package/dist/datavis/Table/docs/component.md +20 -20
  24. package/dist/datavis/demo-data/data-scatter.js +40 -40
  25. package/dist/datavis/demo-data/data.js +18 -18
  26. package/dist/datavis/intro.mdx +21 -21
  27. package/dist/decorators/Blockquote/Blockquote.stories.svelte +25 -25
  28. package/dist/decorators/Blockquote/Blockquote.svelte +27 -27
  29. package/dist/decorators/Blockquote/docs/component.md +10 -10
  30. package/dist/decorators/Divider/Divider.stories.svelte +29 -29
  31. package/dist/decorators/Divider/Divider.svelte +52 -52
  32. package/dist/decorators/Divider/docs/component.md +12 -12
  33. package/dist/decorators/Em/Em.stories.svelte +30 -30
  34. package/dist/decorators/Em/Em.svelte +58 -58
  35. package/dist/decorators/Em/docs/component.md +12 -12
  36. package/dist/decorators/Icon/Icon.stories.svelte +27 -27
  37. package/dist/decorators/Icon/Icon.svelte +93 -93
  38. package/dist/decorators/Icon/docs/component.md +10 -10
  39. package/dist/decorators/Indent/Indent.stories.svelte +22 -22
  40. package/dist/decorators/Indent/Indent.svelte +3 -3
  41. package/dist/decorators/Indent/docs/component.md +10 -10
  42. package/dist/index.js +86 -86
  43. package/dist/inputs/Button/Button.stories.svelte +70 -70
  44. package/dist/inputs/Button/Button.svelte +152 -152
  45. package/dist/inputs/Button/Button.svelte.d.ts +2 -2
  46. package/dist/inputs/Button/docs/component.md +17 -17
  47. package/dist/inputs/ButtonGroup/ButtonGroup.stories.svelte +40 -40
  48. package/dist/inputs/ButtonGroup/ButtonGroup.svelte +57 -57
  49. package/dist/inputs/ButtonGroup/ButtonGroupItem.svelte +101 -101
  50. package/dist/inputs/ButtonGroup/docs/component.md +23 -23
  51. package/dist/inputs/Checkbox/Checkbox.stories.svelte +34 -34
  52. package/dist/inputs/Checkbox/Checkbox.svelte +180 -180
  53. package/dist/inputs/Checkbox/docs/component.md +14 -14
  54. package/dist/inputs/Checkboxes/Checkboxes.stories.svelte +34 -34
  55. package/dist/inputs/Checkboxes/Checkboxes.svelte +62 -62
  56. package/dist/inputs/Checkboxes/docs/component.md +20 -20
  57. package/dist/inputs/Checkboxes/docs/example.md +16 -16
  58. package/dist/inputs/Dropdown/Dropdown.stories.svelte +54 -54
  59. package/dist/inputs/Dropdown/Dropdown.svelte +66 -66
  60. package/dist/inputs/Dropdown/docs/component.md +22 -22
  61. package/dist/inputs/ErrorPanel/ErrorPanel.stories.svelte +25 -25
  62. package/dist/inputs/ErrorPanel/ErrorPanel.svelte +24 -24
  63. package/dist/inputs/ErrorPanel/docs/component.md +14 -14
  64. package/dist/inputs/ErrorSummary/ErrorSummary.stories.svelte +34 -34
  65. package/dist/inputs/ErrorSummary/ErrorSummary.svelte +47 -47
  66. package/dist/inputs/ErrorSummary/docs/component.md +17 -17
  67. package/dist/inputs/ErrorSummary/docs/example.md +12 -12
  68. package/dist/inputs/Input/Input.stories.svelte +73 -73
  69. package/dist/inputs/Input/Input.svelte +151 -151
  70. package/dist/inputs/Input/docs/component.md +16 -16
  71. package/dist/inputs/Radios/Radio.svelte +90 -90
  72. package/dist/inputs/Radios/Radios.stories.svelte +51 -51
  73. package/dist/inputs/Radios/Radios.svelte +62 -62
  74. package/dist/inputs/Radios/docs/component.md +24 -24
  75. package/dist/inputs/Radios/docs/example.md +21 -21
  76. package/dist/inputs/Select/Select.stories.svelte +63 -63
  77. package/dist/inputs/Select/Select.svelte +326 -326
  78. package/dist/inputs/Select/docs/component.md +27 -27
  79. package/dist/inputs/Textarea/Textarea.stories.svelte +40 -40
  80. package/dist/inputs/Textarea/Textarea.svelte +113 -113
  81. package/dist/inputs/Textarea/docs/component.md +16 -16
  82. package/dist/inputs/Toolbar/HelpModal.svelte +234 -234
  83. package/dist/inputs/Toolbar/ToolControl.svelte +23 -23
  84. package/dist/inputs/Toolbar/ToolControls.svelte +9 -9
  85. package/dist/inputs/Toolbar/Toolbar.stories.svelte +148 -148
  86. package/dist/inputs/Toolbar/Toolbar.svelte +70 -70
  87. package/dist/inputs/Toolbar/ToolbarButton.svelte +184 -184
  88. package/dist/inputs/Toolbar/ToolbarDivider.svelte +29 -29
  89. package/dist/inputs/Toolbar/ToolbarIcon.svelte +106 -106
  90. package/dist/inputs/Toolbar/ToolbarsContainer.svelte +69 -69
  91. package/dist/inputs/Toolbar/docs/component.md +101 -101
  92. package/dist/intro.mdx +66 -66
  93. package/dist/js/menuOptions.js +14 -14
  94. package/dist/js/utils.js +133 -133
  95. package/dist/js/withParams.js +43 -43
  96. package/dist/layout/Accordion/Accordion.stories.svelte +30 -30
  97. package/dist/layout/Accordion/Accordion.svelte +55 -55
  98. package/dist/layout/Accordion/AccordionItem.svelte +51 -51
  99. package/dist/layout/Accordion/accordion.js +64 -64
  100. package/dist/layout/Accordion/details.js +83 -83
  101. package/dist/layout/Accordion/docs/component.md +19 -19
  102. package/dist/layout/AnalyticsBanner/AnalyticsBanner.stories.svelte +16 -16
  103. package/dist/layout/AnalyticsBanner/AnalyticsBanner.svelte +314 -314
  104. package/dist/layout/AnalyticsBanner/docs/component.md +44 -44
  105. package/dist/layout/BackLink/BackLink.stories.svelte +16 -16
  106. package/dist/layout/BackLink/BackLink.svelte +30 -30
  107. package/dist/layout/BackLink/docs/component.md +12 -12
  108. package/dist/layout/Breadcrumb/Breadcrumb.stories.svelte +31 -31
  109. package/dist/layout/Breadcrumb/Breadcrumb.svelte +69 -69
  110. package/dist/layout/Breadcrumb/docs/component.md +15 -15
  111. package/dist/layout/Card/Card.stories.svelte +39 -39
  112. package/dist/layout/Card/Card.svelte +127 -127
  113. package/dist/layout/Card/docs/component.md +14 -14
  114. package/dist/layout/Card/docs/eg-images.md +27 -27
  115. package/dist/layout/Card/docs/eg-links.md +12 -12
  116. package/dist/layout/Card/docs/eg-spans.md +12 -12
  117. package/dist/layout/Contents/Contents.stories.svelte +27 -27
  118. package/dist/layout/Contents/Contents.svelte +51 -51
  119. package/dist/layout/Contents/docs/component.md +18 -18
  120. package/dist/layout/DescriptionList/DescriptionList.stories.svelte +22 -22
  121. package/dist/layout/DescriptionList/DescriptionList.svelte +59 -59
  122. package/dist/layout/DescriptionList/docs/component.md +18 -18
  123. package/dist/layout/Details/Details.stories.svelte +32 -32
  124. package/dist/layout/Details/Details.svelte +75 -75
  125. package/dist/layout/Details/docs/component.md +14 -14
  126. package/dist/layout/DocumentList/Document.svelte +103 -103
  127. package/dist/layout/DocumentList/DocumentList.stories.svelte +88 -88
  128. package/dist/layout/DocumentList/DocumentList.svelte +33 -33
  129. package/dist/layout/DocumentList/docs/component.md +28 -28
  130. package/dist/layout/DocumentList/docs/example.md +23 -23
  131. package/dist/layout/ErrorPage/ErrorPage.stories.svelte +18 -18
  132. package/dist/layout/ErrorPage/ErrorPage.svelte +48 -48
  133. package/dist/layout/ErrorPage/docs/component.md +13 -13
  134. package/dist/layout/Footer/Footer.stories.svelte +24 -24
  135. package/dist/layout/Footer/Footer.svelte +366 -366
  136. package/dist/layout/Footer/docs/component.md +10 -10
  137. package/dist/layout/Grid/Grid.stories.svelte +50 -50
  138. package/dist/layout/Grid/Grid.svelte +117 -117
  139. package/dist/layout/Grid/GridCell.svelte +65 -65
  140. package/dist/layout/Grid/docs/component.md +14 -14
  141. package/dist/layout/Header/Header.stories.svelte +26 -26
  142. package/dist/layout/Header/Header.svelte +875 -875
  143. package/dist/layout/Header/docs/component.md +11 -11
  144. package/dist/layout/Hero/Hero.stories.svelte +79 -79
  145. package/dist/layout/Hero/Hero.svelte +364 -364
  146. package/dist/layout/Hero/docs/component.md +14 -14
  147. package/dist/layout/Highlight/Highlight.stories.svelte +29 -29
  148. package/dist/layout/Highlight/Highlight.svelte +77 -77
  149. package/dist/layout/Highlight/docs/component.md +12 -12
  150. package/dist/layout/Image/Image.stories.svelte +23 -23
  151. package/dist/layout/Image/Image.svelte +29 -29
  152. package/dist/layout/Image/docs/component.md +15 -15
  153. package/dist/layout/List/Li.svelte +3 -3
  154. package/dist/layout/List/List.stories.svelte +40 -40
  155. package/dist/layout/List/List.svelte +46 -46
  156. package/dist/layout/List/docs/component.md +14 -14
  157. package/dist/layout/List/docs/example.md +12 -12
  158. package/dist/layout/NavSections/NavSection.svelte +90 -90
  159. package/dist/layout/NavSections/NavSections.stories.svelte +51 -51
  160. package/dist/layout/NavSections/NavSections.svelte +160 -160
  161. package/dist/layout/NavSections/docs/component.md +25 -25
  162. package/dist/layout/Notice/Notice.stories.svelte +61 -61
  163. package/dist/layout/Notice/Notice.svelte +56 -56
  164. package/dist/layout/Notice/docs/component.md +14 -14
  165. package/dist/layout/PhaseBanner/PhaseBanner.stories.svelte +24 -24
  166. package/dist/layout/PhaseBanner/PhaseBanner.svelte +66 -66
  167. package/dist/layout/PhaseBanner/docs/component.md +14 -14
  168. package/dist/layout/RelatedContent/RelatedContent.stories.svelte +36 -36
  169. package/dist/layout/RelatedContent/RelatedContent.svelte +54 -54
  170. package/dist/layout/RelatedContent/docs/component.md +16 -16
  171. package/dist/layout/Scroller/Scroller.stories.svelte +60 -60
  172. package/dist/layout/Scroller/Scroller.svelte +368 -368
  173. package/dist/layout/Scroller/ScrollerSection.svelte +70 -70
  174. package/dist/layout/Scroller/docs/component.md +39 -39
  175. package/dist/layout/Section/Section.stories.svelte +33 -33
  176. package/dist/layout/Section/Section.svelte +60 -60
  177. package/dist/layout/Section/docs/component.md +12 -12
  178. package/dist/layout/ShareButtons/ShareButtons.stories.svelte +20 -20
  179. package/dist/layout/ShareButtons/ShareButtons.svelte +131 -131
  180. package/dist/layout/ShareButtons/docs/component.md +14 -14
  181. package/dist/layout/SkipLink/SkipLink.stories.svelte +16 -16
  182. package/dist/layout/SkipLink/SkipLink.svelte +9 -9
  183. package/dist/layout/SkipLink/docs/component.md +11 -11
  184. package/dist/layout/Summary/Summary.stories.svelte +21 -21
  185. package/dist/layout/Summary/Summary.svelte +60 -60
  186. package/dist/layout/Summary/docs/component.md +17 -17
  187. package/dist/layout/Tabs/Tab.svelte +53 -53
  188. package/dist/layout/Tabs/Tabs.stories.svelte +29 -29
  189. package/dist/layout/Tabs/Tabs.svelte +89 -89
  190. package/dist/layout/Tabs/docs/component.md +16 -16
  191. package/dist/layout/Tabs/tabs.js +302 -302
  192. package/dist/layout/Timeline/Timeline.stories.svelte +44 -44
  193. package/dist/layout/Timeline/Timeline.svelte +17 -17
  194. package/dist/layout/Timeline/TimelineItem.svelte +14 -14
  195. package/dist/layout/Timeline/docs/component.md +27 -27
  196. package/dist/layout/Timeline/docs/example.md +20 -20
  197. package/dist/templates/EmbedArticle/EmbedArticle.stories.svelte +72 -72
  198. package/dist/templates/EmbedArticle/docs/component.md +56 -56
  199. package/dist/templates/FeatureArticle/FeatureArticle.stories.svelte +150 -150
  200. package/dist/templates/FeatureArticle/docs/component.md +125 -125
  201. package/dist/templates/StandardArticle/StandardArticle.stories.svelte +86 -86
  202. package/dist/templates/StandardArticle/docs/component.md +76 -76
  203. package/dist/templates/intro.mdx +18 -18
  204. package/dist/wrappers/Container/Container.stories.svelte +38 -38
  205. package/dist/wrappers/Container/Container.svelte +77 -77
  206. package/dist/wrappers/Container/docs/component.md +12 -12
  207. package/dist/wrappers/Embed/Embed.stories.svelte +24 -24
  208. package/dist/wrappers/Embed/Embed.svelte +44 -44
  209. package/dist/wrappers/Embed/docs/component.md +15 -15
  210. package/dist/wrappers/LazyLoad/LazyLoad.stories.svelte +37 -37
  211. package/dist/wrappers/LazyLoad/LazyLoad.svelte +50 -50
  212. package/dist/wrappers/LazyLoad/docs/component.md +29 -29
  213. package/dist/wrappers/Main/Main.stories.svelte +24 -24
  214. package/dist/wrappers/Main/Main.svelte +11 -11
  215. package/dist/wrappers/Main/docs/component.md +16 -16
  216. package/dist/wrappers/Observe/Observe.stories.svelte +29 -29
  217. package/dist/wrappers/Observe/Observe.svelte +35 -35
  218. package/dist/wrappers/Observe/docs/component.md +22 -22
  219. package/dist/wrappers/Theme/Theme.stories.svelte +70 -70
  220. package/dist/wrappers/Theme/Theme.svelte +76 -76
  221. package/dist/wrappers/Theme/docs/component.md +10 -10
  222. package/dist/wrappers/Theme/themes.js +70 -70
  223. package/package.json +88 -88
@@ -1,152 +1,152 @@
1
- <script>
2
- import { createEventDispatcher } from "svelte";
3
- import Icon from "../../decorators/Icon/Icon.svelte";
4
- import { contrastColor, darkenColor } from "../../js/utils";
5
-
6
- const dispatch = createEventDispatcher();
7
-
8
- /**
9
- * Type of button
10
- * @type {"button"|"submit"|"reset"}
11
- */
12
- export let type = "button";
13
- /**
14
- * Style variant of button
15
- * @type {"primary"|"secondary"|"ghost"}
16
- */
17
- export let variant = "primary";
18
- /**
19
- * Href of button (renders button as a link)
20
- * @type {string|null}
21
- */
22
- export let href = null;
23
- /**
24
- * File name if link is used for a file download (only if href is also specified)
25
- * @type {string|null}
26
- */
27
- export let download = null;
28
- /**
29
- * Don't scroll when link is followed (only if href is also specified)
30
- * @type {boolean}
31
- */
32
- export let noScroll = false;
33
- /**
34
- * Make button smaller
35
- * @type {boolean}
36
- */
37
- export let small = false;
38
- /**
39
- * Icon on button, eg. "arrow", "search"
40
- * @type {"arrow"|"carret"|"cross"|"external"|"signout"|"print"|"download"|"tick"|"search"|"pin"|"cog"|null}
41
- */
42
- export let icon = null;
43
- /**
44
- * Position of icon
45
- * @type {"before"|"after"}
46
- */
47
- export let iconPosition = "before";
48
- /**
49
- * Rotation of icon in degrees (clockwise)
50
- * @type {number}
51
- */
52
- export let iconRotation = 0;
53
- /**
54
- * Show button as disabled
55
- * @type {boolean}
56
- */
57
- export let disabled = false;
58
- /**
59
- * Visually hide the button text (for icon-only buttons)
60
- * @type {boolean}
61
- */
62
- export let hideLabel = false;
63
- /**
64
- * Aria label for button
65
- * @type {string|null}
66
- */
67
- export let arialabel = null;
68
- /**
69
- * Set a colour for the button
70
- * @type {string|null}
71
- */
72
- export let color = null;
73
- /**
74
- * Optional: Set an additional CSS class for the component
75
- * @type {string|null}
76
- */
77
- export let cls = null;
78
- </script>
79
-
80
- {#if href}
81
- <a
82
- href={!disabled ? href : null}
83
- role="button"
84
- {download}
85
- class="ons-btn ons-btn--link ons-js-submit-btn {cls}"
86
- class:ons-btn--small={small}
87
- class:ons-btn--secondary={variant === "secondary"}
88
- class:ons-btn--ghost={variant === "ghost"}
89
- class:ons-btn--disabled={disabled}
90
- on:click={(e) => dispatch("click", e)}
91
- aria-label={arialabel}
92
- data-sveltekit-noscroll={noScroll}
93
- >
94
- <span
95
- class="ons-btn__inner"
96
- style:background={color}
97
- style:color={color ? contrastColor(color) : null}
98
- style:box-shadow={color ? `0 0.1875rem 0 ${darkenColor(color)}` : null}
99
- >
100
- {#if iconPosition === "before"}
101
- <slot name="icon">
102
- {#if icon}
103
- <Icon type={icon} marginRight={!hideLabel} rotation={iconRotation} />
104
- {/if}
105
- </slot>
106
- {/if}
107
- <span class="ons-btn__text" class:ons-u-vh={hideLabel}><slot /></span>
108
- {#if iconPosition === "after"}
109
- <slot name="icon">
110
- {#if icon}
111
- <Icon type={icon} marginLeft={!hideLabel} rotation={iconRotation} />
112
- {/if}
113
- </slot>
114
- {/if}
115
- </span>
116
- </a>
117
- {:else}
118
- <button
119
- {type}
120
- class="ons-btn {cls}"
121
- class:ons-btn--small={small}
122
- class:ons-btn--secondary={variant === "secondary"}
123
- class:ons-btn--ghost={variant === "ghost"}
124
- class:ons-btn--disabled={disabled}
125
- {disabled}
126
- on:click={(e) => dispatch("click", e)}
127
- aria-label={arialabel}
128
- >
129
- <span
130
- class="ons-btn__inner"
131
- style:background={color}
132
- style:color={color ? contrastColor(color) : null}
133
- style:box-shadow={color ? `0 0.1875rem 0 ${darkenColor(color)}` : null}
134
- >
135
- {#if iconPosition === "before"}
136
- <slot name="icon">
137
- {#if icon}
138
- <Icon type={icon} marginRight={!hideLabel} />
139
- {/if}
140
- </slot>
141
- {/if}
142
- <span class="ons-btn__text" class:ons-u-vh={hideLabel}><slot /></span>
143
- {#if iconPosition === "after"}
144
- <slot name="icon">
145
- {#if icon}
146
- <Icon type={icon} marginLeft={!hideLabel} />
147
- {/if}
148
- </slot>
149
- {/if}
150
- </span>
151
- </button>
152
- {/if}
1
+ <script>
2
+ import { createEventDispatcher } from "svelte";
3
+ import Icon from "../../decorators/Icon/Icon.svelte";
4
+ import { contrastColor, darkenColor } from "../../js/utils";
5
+
6
+ const dispatch = createEventDispatcher();
7
+
8
+ /**
9
+ * Type of button
10
+ * @type {"button"|"submit"|"reset"}
11
+ */
12
+ export let type = "button";
13
+ /**
14
+ * Style variant of button
15
+ * @type {"primary"|"secondary"|"ghost"}
16
+ */
17
+ export let variant = "primary";
18
+ /**
19
+ * Href of button (renders button as a link)
20
+ * @type {string|null}
21
+ */
22
+ export let href = null;
23
+ /**
24
+ * File name if link is used for a file download (only if href is also specified)
25
+ * @type {string|null}
26
+ */
27
+ export let download = null;
28
+ /**
29
+ * Don't scroll when link is followed (only if href is also specified)
30
+ * @type {boolean}
31
+ */
32
+ export let noScroll = false;
33
+ /**
34
+ * Make button smaller
35
+ * @type {boolean}
36
+ */
37
+ export let small = false;
38
+ /**
39
+ * Icon on button, eg. "arrow", "search"
40
+ * @type {"arrow"|"chevron"|"carret"|"cross"|"external"|"signout"|"print"|"download"|"tick"|"search"|"pin"|"cog"|null}
41
+ */
42
+ export let icon = null;
43
+ /**
44
+ * Position of icon
45
+ * @type {"before"|"after"}
46
+ */
47
+ export let iconPosition = "before";
48
+ /**
49
+ * Rotation of icon in degrees (clockwise)
50
+ * @type {number}
51
+ */
52
+ export let iconRotation = 0;
53
+ /**
54
+ * Show button as disabled
55
+ * @type {boolean}
56
+ */
57
+ export let disabled = false;
58
+ /**
59
+ * Visually hide the button text (for icon-only buttons)
60
+ * @type {boolean}
61
+ */
62
+ export let hideLabel = false;
63
+ /**
64
+ * Aria label for button
65
+ * @type {string|null}
66
+ */
67
+ export let arialabel = null;
68
+ /**
69
+ * Set a colour for the button
70
+ * @type {string|null}
71
+ */
72
+ export let color = null;
73
+ /**
74
+ * Optional: Set an additional CSS class for the component
75
+ * @type {string|null}
76
+ */
77
+ export let cls = null;
78
+ </script>
79
+
80
+ {#if href}
81
+ <a
82
+ href={!disabled ? href : null}
83
+ role="button"
84
+ {download}
85
+ class="ons-btn ons-btn--link ons-js-submit-btn {cls}"
86
+ class:ons-btn--small={small}
87
+ class:ons-btn--secondary={variant === "secondary"}
88
+ class:ons-btn--ghost={variant === "ghost"}
89
+ class:ons-btn--disabled={disabled}
90
+ on:click={(e) => dispatch("click", e)}
91
+ aria-label={arialabel}
92
+ data-sveltekit-noscroll={noScroll}
93
+ >
94
+ <span
95
+ class="ons-btn__inner"
96
+ style:background={color}
97
+ style:color={color ? contrastColor(color) : null}
98
+ style:box-shadow={color ? `0 0.1875rem 0 ${darkenColor(color)}` : null}
99
+ >
100
+ {#if iconPosition === "before"}
101
+ <slot name="icon">
102
+ {#if icon}
103
+ <Icon type={icon} marginRight={!hideLabel} rotation={iconRotation} />
104
+ {/if}
105
+ </slot>
106
+ {/if}
107
+ <span class="ons-btn__text" class:ons-u-vh={hideLabel}><slot /></span>
108
+ {#if iconPosition === "after"}
109
+ <slot name="icon">
110
+ {#if icon}
111
+ <Icon type={icon} marginLeft={!hideLabel} rotation={iconRotation} />
112
+ {/if}
113
+ </slot>
114
+ {/if}
115
+ </span>
116
+ </a>
117
+ {:else}
118
+ <button
119
+ {type}
120
+ class="ons-btn {cls}"
121
+ class:ons-btn--small={small}
122
+ class:ons-btn--secondary={variant === "secondary"}
123
+ class:ons-btn--ghost={variant === "ghost"}
124
+ class:ons-btn--disabled={disabled}
125
+ {disabled}
126
+ on:click={(e) => dispatch("click", e)}
127
+ aria-label={arialabel}
128
+ >
129
+ <span
130
+ class="ons-btn__inner"
131
+ style:background={color}
132
+ style:color={color ? contrastColor(color) : null}
133
+ style:box-shadow={color ? `0 0.1875rem 0 ${darkenColor(color)}` : null}
134
+ >
135
+ {#if iconPosition === "before"}
136
+ <slot name="icon">
137
+ {#if icon}
138
+ <Icon type={icon} marginRight={!hideLabel} rotation={iconRotation} />
139
+ {/if}
140
+ </slot>
141
+ {/if}
142
+ <span class="ons-btn__text" class:ons-u-vh={hideLabel}><slot /></span>
143
+ {#if iconPosition === "after"}
144
+ <slot name="icon">
145
+ {#if icon}
146
+ <Icon type={icon} marginLeft={!hideLabel} rotation={iconRotation} />
147
+ {/if}
148
+ </slot>
149
+ {/if}
150
+ </span>
151
+ </button>
152
+ {/if}
@@ -10,7 +10,7 @@ export default class Button extends SvelteComponentTyped<{
10
10
  type?: "button" | "reset" | "submit" | undefined;
11
11
  variant?: "secondary" | "primary" | "ghost" | undefined;
12
12
  noScroll?: boolean | undefined;
13
- icon?: "search" | "arrow" | "carret" | "cross" | "external" | "signout" | "print" | "download" | "tick" | "pin" | "cog" | null | undefined;
13
+ icon?: "search" | "arrow" | "chevron" | "carret" | "cross" | "external" | "signout" | "print" | "download" | "tick" | "pin" | "cog" | null | undefined;
14
14
  iconPosition?: "before" | "after" | undefined;
15
15
  iconRotation?: number | undefined;
16
16
  disabled?: boolean | undefined;
@@ -39,7 +39,7 @@ declare const __propDef: {
39
39
  type?: "button" | "reset" | "submit" | undefined;
40
40
  variant?: "secondary" | "primary" | "ghost" | undefined;
41
41
  noScroll?: boolean | undefined;
42
- icon?: "search" | "arrow" | "carret" | "cross" | "external" | "signout" | "print" | "download" | "tick" | "pin" | "cog" | null | undefined;
42
+ icon?: "search" | "arrow" | "chevron" | "carret" | "cross" | "external" | "signout" | "print" | "download" | "tick" | "pin" | "cog" | null | undefined;
43
43
  iconPosition?: "before" | "after" | undefined;
44
44
  iconRotation?: number | undefined;
45
45
  disabled?: boolean | undefined;
@@ -1,17 +1,17 @@
1
- A button/link component that can be styled in various ways. It will render as an `<a>` link if it has an `href` property defined.
2
-
3
- <!-- prettier-ignore -->
4
- ```html
5
- <script>
6
- import { Button } from "@onsvisual/svelte-components";
7
-
8
- // Define your own function on click
9
- const handleClick = (e) => console.log(e);
10
- </script>
11
-
12
- <!-- Standard button with on:click function -->
13
- <Button on:click="{handleClick}">Button text</Button>
14
-
15
- <!-- Button-styled link with href -->
16
- <Button href="#">Link text</Button>
17
- ```
1
+ A button/link component that can be styled in various ways. It will render as an `<a>` link if it has an `href` property defined.
2
+
3
+ <!-- prettier-ignore -->
4
+ ```html
5
+ <script>
6
+ import { Button } from "@onsvisual/svelte-components";
7
+
8
+ // Define your own function on click
9
+ const handleClick = (e) => console.log(e);
10
+ </script>
11
+
12
+ <!-- Standard button with on:click function -->
13
+ <Button on:click="{handleClick}">Button text</Button>
14
+
15
+ <!-- Button-styled link with href -->
16
+ <Button href="#">Link text</Button>
17
+ ```
@@ -1,40 +1,40 @@
1
- <script module>
2
- import { defineMeta } from "@storybook/addon-svelte-csf";
3
- import componentDocs from "./docs/component.md?raw";
4
- import ButtonGroup from "./ButtonGroup.svelte";
5
- import ButtonGroupItem from "./ButtonGroupItem.svelte";
6
- import { withComponentDocs } from "../../js/withParams.js";
7
-
8
- const { Story } = defineMeta({
9
- title: "Inputs/ButtonGroup",
10
- component: ButtonGroup,
11
- tags: ["autodocs"],
12
- argTypes: {
13
- legend: { control: "text" },
14
- visuallyHideLegend: { control: "boolean" }
15
- },
16
- parameters: withComponentDocs(componentDocs)
17
- });
18
- </script>
19
-
20
- {#snippet template(args)}
21
- <ButtonGroup {...args}>
22
- <ButtonGroupItem value="1" label="Option 1" />
23
- <ButtonGroupItem value="2" label="Option 2" />
24
- <ButtonGroupItem value="3" label="Option 3" />
25
- </ButtonGroup>
26
- {/snippet}
27
-
28
- <Story name="Default" args={{ name: "primary", legend: "Choose an option" }} {template} />
29
-
30
- <Story
31
- name="With initial value"
32
- args={{ name: "primary", legend: "Choose an option", value: "2" }}
33
- {template}
34
- />
35
-
36
- <Story
37
- name="Visually hide legend"
38
- args={{ name: "primary", legend: "Choose an option", visuallyHideLegend: true }}
39
- {template}
40
- />
1
+ <script module>
2
+ import { defineMeta } from "@storybook/addon-svelte-csf";
3
+ import componentDocs from "./docs/component.md?raw";
4
+ import ButtonGroup from "./ButtonGroup.svelte";
5
+ import ButtonGroupItem from "./ButtonGroupItem.svelte";
6
+ import { withComponentDocs } from "../../js/withParams.js";
7
+
8
+ const { Story } = defineMeta({
9
+ title: "Inputs/ButtonGroup",
10
+ component: ButtonGroup,
11
+ tags: ["autodocs"],
12
+ argTypes: {
13
+ legend: { control: "text" },
14
+ visuallyHideLegend: { control: "boolean" }
15
+ },
16
+ parameters: withComponentDocs(componentDocs)
17
+ });
18
+ </script>
19
+
20
+ {#snippet template(args)}
21
+ <ButtonGroup {...args}>
22
+ <ButtonGroupItem value="1" label="Option 1" />
23
+ <ButtonGroupItem value="2" label="Option 2" />
24
+ <ButtonGroupItem value="3" label="Option 3" />
25
+ </ButtonGroup>
26
+ {/snippet}
27
+
28
+ <Story name="Default" args={{ name: "primary", legend: "Choose an option" }} {template} />
29
+
30
+ <Story
31
+ name="With initial value"
32
+ args={{ name: "primary", legend: "Choose an option", value: "2" }}
33
+ {template}
34
+ />
35
+
36
+ <Story
37
+ name="Visually hide legend"
38
+ args={{ name: "primary", legend: "Choose an option", visuallyHideLegend: true }}
39
+ {template}
40
+ />
@@ -1,57 +1,57 @@
1
- <script>
2
- import { setContext } from "svelte";
3
- import { writable } from "svelte/store";
4
-
5
- let { name = "", legend = "", value, visuallyHideLegend = false } = $props();
6
-
7
- // create the store
8
- const selectedValue = writable(value);
9
-
10
- // When store changes and update prop
11
- $effect(() => {
12
- selectedValue.set(value);
13
- });
14
-
15
- const currentValue = $derived(selectedValue);
16
-
17
- $effect(() => {
18
- if ($currentValue !== value) {
19
- value = $currentValue;
20
- }
21
- });
22
-
23
- // Create a context to share with child Button components
24
- setContext("buttonGroup", {
25
- groupName: name,
26
- selectedValue
27
- });
28
- </script>
29
-
30
- <fieldset class="button-group">
31
- {#if legend}
32
- <legend class:ons-u-vh={visuallyHideLegend}>{legend}</legend>
33
- {/if}
34
- <div class="buttons">
35
- <slot />
36
- </div>
37
- </fieldset>
38
-
39
- <style>
40
- .button-group {
41
- display: inline-block;
42
- }
43
-
44
- legend {
45
- font-weight: bold;
46
- margin-bottom: 0.5rem;
47
- }
48
-
49
- .buttons {
50
- display: flex;
51
- gap: 8px;
52
- background: #f5f5f6;
53
- padding: 4px;
54
- border-radius: 8px;
55
- justify-content: space-between;
56
- }
57
- </style>
1
+ <script>
2
+ import { setContext } from "svelte";
3
+ import { writable } from "svelte/store";
4
+
5
+ let { name = "", legend = "", value, visuallyHideLegend = false } = $props();
6
+
7
+ // create the store
8
+ const selectedValue = writable(value);
9
+
10
+ // When store changes and update prop
11
+ $effect(() => {
12
+ selectedValue.set(value);
13
+ });
14
+
15
+ const currentValue = $derived(selectedValue);
16
+
17
+ $effect(() => {
18
+ if ($currentValue !== value) {
19
+ value = $currentValue;
20
+ }
21
+ });
22
+
23
+ // Create a context to share with child Button components
24
+ setContext("buttonGroup", {
25
+ groupName: name,
26
+ selectedValue
27
+ });
28
+ </script>
29
+
30
+ <fieldset class="button-group">
31
+ {#if legend}
32
+ <legend class:ons-u-vh={visuallyHideLegend}>{legend}</legend>
33
+ {/if}
34
+ <div class="buttons">
35
+ <slot />
36
+ </div>
37
+ </fieldset>
38
+
39
+ <style>
40
+ .button-group {
41
+ display: inline-block;
42
+ }
43
+
44
+ legend {
45
+ font-weight: bold;
46
+ margin-bottom: 0.5rem;
47
+ }
48
+
49
+ .buttons {
50
+ display: flex;
51
+ gap: 8px;
52
+ background: #f5f5f6;
53
+ padding: 4px;
54
+ border-radius: 8px;
55
+ justify-content: space-between;
56
+ }
57
+ </style>