@onsvisual/svelte-components 1.0.36 → 1.0.38

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 (227) 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 -18
  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 +147 -147
  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 -21
  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/Input.svelte.d.ts +2 -2
  71. package/dist/inputs/Input/docs/component.md +16 -16
  72. package/dist/inputs/Radios/Radio.svelte +90 -90
  73. package/dist/inputs/Radios/Radios.stories.svelte +51 -51
  74. package/dist/inputs/Radios/Radios.svelte +62 -62
  75. package/dist/inputs/Radios/docs/component.md +24 -24
  76. package/dist/inputs/Radios/docs/example.md +21 -21
  77. package/dist/inputs/Select/Select.stories.svelte +63 -63
  78. package/dist/inputs/Select/Select.svelte +326 -326
  79. package/dist/inputs/Select/Select.svelte.d.ts +2 -2
  80. package/dist/inputs/Select/docs/component.md +27 -27
  81. package/dist/inputs/Textarea/Textarea.stories.svelte +40 -40
  82. package/dist/inputs/Textarea/Textarea.svelte +113 -113
  83. package/dist/inputs/Textarea/Textarea.svelte.d.ts +2 -2
  84. package/dist/inputs/Textarea/docs/component.md +16 -16
  85. package/dist/inputs/Toolbar/HelpModal.svelte +234 -234
  86. package/dist/inputs/Toolbar/ToolControl.svelte +23 -23
  87. package/dist/inputs/Toolbar/ToolControls.svelte +9 -9
  88. package/dist/inputs/Toolbar/Toolbar.stories.svelte +148 -148
  89. package/dist/inputs/Toolbar/Toolbar.svelte +70 -70
  90. package/dist/inputs/Toolbar/ToolbarButton.svelte +184 -184
  91. package/dist/inputs/Toolbar/ToolbarDivider.svelte +29 -29
  92. package/dist/inputs/Toolbar/ToolbarIcon.svelte +106 -106
  93. package/dist/inputs/Toolbar/ToolbarsContainer.svelte +69 -69
  94. package/dist/inputs/Toolbar/docs/component.md +101 -99
  95. package/dist/intro.mdx +66 -66
  96. package/dist/js/menuOptions.js +14 -14
  97. package/dist/js/utils.js +133 -133
  98. package/dist/js/withParams.js +43 -43
  99. package/dist/layout/Accordion/Accordion.stories.svelte +30 -30
  100. package/dist/layout/Accordion/Accordion.svelte +55 -55
  101. package/dist/layout/Accordion/AccordionItem.svelte +51 -51
  102. package/dist/layout/Accordion/accordion.js +64 -64
  103. package/dist/layout/Accordion/details.js +83 -83
  104. package/dist/layout/Accordion/docs/component.md +19 -19
  105. package/dist/layout/AnalyticsBanner/AnalyticsBanner.stories.svelte +16 -16
  106. package/dist/layout/AnalyticsBanner/AnalyticsBanner.svelte +314 -314
  107. package/dist/layout/AnalyticsBanner/docs/component.md +44 -44
  108. package/dist/layout/BackLink/BackLink.stories.svelte +16 -16
  109. package/dist/layout/BackLink/BackLink.svelte +30 -30
  110. package/dist/layout/BackLink/docs/component.md +12 -12
  111. package/dist/layout/Breadcrumb/Breadcrumb.stories.svelte +31 -31
  112. package/dist/layout/Breadcrumb/Breadcrumb.svelte +69 -69
  113. package/dist/layout/Breadcrumb/docs/component.md +15 -15
  114. package/dist/layout/Card/Card.stories.svelte +39 -39
  115. package/dist/layout/Card/Card.svelte +127 -127
  116. package/dist/layout/Card/docs/component.md +14 -14
  117. package/dist/layout/Card/docs/eg-images.md +27 -27
  118. package/dist/layout/Card/docs/eg-links.md +12 -12
  119. package/dist/layout/Card/docs/eg-spans.md +12 -12
  120. package/dist/layout/Contents/Contents.stories.svelte +27 -27
  121. package/dist/layout/Contents/Contents.svelte +51 -51
  122. package/dist/layout/Contents/docs/component.md +18 -18
  123. package/dist/layout/DescriptionList/DescriptionList.stories.svelte +22 -22
  124. package/dist/layout/DescriptionList/DescriptionList.svelte +59 -59
  125. package/dist/layout/DescriptionList/docs/component.md +18 -18
  126. package/dist/layout/Details/Details.stories.svelte +32 -32
  127. package/dist/layout/Details/Details.svelte +75 -75
  128. package/dist/layout/Details/docs/component.md +14 -14
  129. package/dist/layout/DocumentList/Document.svelte +103 -103
  130. package/dist/layout/DocumentList/DocumentList.stories.svelte +88 -88
  131. package/dist/layout/DocumentList/DocumentList.svelte +33 -33
  132. package/dist/layout/DocumentList/docs/component.md +28 -28
  133. package/dist/layout/DocumentList/docs/example.md +23 -23
  134. package/dist/layout/ErrorPage/ErrorPage.stories.svelte +18 -18
  135. package/dist/layout/ErrorPage/ErrorPage.svelte +48 -48
  136. package/dist/layout/ErrorPage/docs/component.md +13 -13
  137. package/dist/layout/Footer/Footer.stories.svelte +24 -24
  138. package/dist/layout/Footer/Footer.svelte +366 -366
  139. package/dist/layout/Footer/docs/component.md +10 -10
  140. package/dist/layout/Grid/Grid.stories.svelte +50 -50
  141. package/dist/layout/Grid/Grid.svelte +117 -117
  142. package/dist/layout/Grid/GridCell.svelte +65 -65
  143. package/dist/layout/Grid/docs/component.md +14 -14
  144. package/dist/layout/Header/Header.stories.svelte +26 -26
  145. package/dist/layout/Header/Header.svelte +875 -875
  146. package/dist/layout/Header/docs/component.md +11 -11
  147. package/dist/layout/Hero/Hero.stories.svelte +79 -79
  148. package/dist/layout/Hero/Hero.svelte +364 -364
  149. package/dist/layout/Hero/docs/component.md +14 -14
  150. package/dist/layout/Highlight/Highlight.stories.svelte +29 -29
  151. package/dist/layout/Highlight/Highlight.svelte +77 -77
  152. package/dist/layout/Highlight/docs/component.md +12 -12
  153. package/dist/layout/Image/Image.stories.svelte +23 -23
  154. package/dist/layout/Image/Image.svelte +29 -29
  155. package/dist/layout/Image/docs/component.md +15 -15
  156. package/dist/layout/List/Li.svelte +3 -3
  157. package/dist/layout/List/List.stories.svelte +40 -40
  158. package/dist/layout/List/List.svelte +46 -46
  159. package/dist/layout/List/docs/component.md +14 -14
  160. package/dist/layout/List/docs/example.md +12 -12
  161. package/dist/layout/NavSections/NavSection.svelte +90 -90
  162. package/dist/layout/NavSections/NavSections.stories.svelte +51 -51
  163. package/dist/layout/NavSections/NavSections.svelte +160 -139
  164. package/dist/layout/NavSections/NavSections.svelte.d.ts +4 -4
  165. package/dist/layout/NavSections/docs/component.md +25 -25
  166. package/dist/layout/Notice/Notice.stories.svelte +61 -61
  167. package/dist/layout/Notice/Notice.svelte +56 -56
  168. package/dist/layout/Notice/docs/component.md +14 -14
  169. package/dist/layout/PhaseBanner/PhaseBanner.stories.svelte +24 -24
  170. package/dist/layout/PhaseBanner/PhaseBanner.svelte +66 -66
  171. package/dist/layout/PhaseBanner/docs/component.md +14 -14
  172. package/dist/layout/RelatedContent/RelatedContent.stories.svelte +36 -36
  173. package/dist/layout/RelatedContent/RelatedContent.svelte +54 -54
  174. package/dist/layout/RelatedContent/docs/component.md +16 -16
  175. package/dist/layout/Scroller/Scroller.stories.svelte +60 -60
  176. package/dist/layout/Scroller/Scroller.svelte +368 -368
  177. package/dist/layout/Scroller/ScrollerSection.svelte +70 -70
  178. package/dist/layout/Scroller/docs/component.md +39 -39
  179. package/dist/layout/Section/Section.stories.svelte +33 -33
  180. package/dist/layout/Section/Section.svelte +60 -60
  181. package/dist/layout/Section/docs/component.md +12 -12
  182. package/dist/layout/ShareButtons/ShareButtons.stories.svelte +20 -20
  183. package/dist/layout/ShareButtons/ShareButtons.svelte +131 -131
  184. package/dist/layout/ShareButtons/docs/component.md +14 -14
  185. package/dist/layout/SkipLink/SkipLink.stories.svelte +16 -16
  186. package/dist/layout/SkipLink/SkipLink.svelte +9 -9
  187. package/dist/layout/SkipLink/docs/component.md +11 -11
  188. package/dist/layout/Summary/Summary.stories.svelte +21 -21
  189. package/dist/layout/Summary/Summary.svelte +60 -60
  190. package/dist/layout/Summary/docs/component.md +17 -17
  191. package/dist/layout/Tabs/Tab.svelte +53 -53
  192. package/dist/layout/Tabs/Tabs.stories.svelte +29 -29
  193. package/dist/layout/Tabs/Tabs.svelte +89 -89
  194. package/dist/layout/Tabs/docs/component.md +16 -16
  195. package/dist/layout/Tabs/tabs.js +302 -302
  196. package/dist/layout/Timeline/Timeline.stories.svelte +44 -44
  197. package/dist/layout/Timeline/Timeline.svelte +17 -17
  198. package/dist/layout/Timeline/TimelineItem.svelte +14 -14
  199. package/dist/layout/Timeline/docs/component.md +27 -27
  200. package/dist/layout/Timeline/docs/example.md +20 -20
  201. package/dist/templates/EmbedArticle/EmbedArticle.stories.svelte +72 -72
  202. package/dist/templates/EmbedArticle/docs/component.md +56 -56
  203. package/dist/templates/FeatureArticle/FeatureArticle.stories.svelte +150 -150
  204. package/dist/templates/FeatureArticle/docs/component.md +125 -125
  205. package/dist/templates/StandardArticle/StandardArticle.stories.svelte +86 -86
  206. package/dist/templates/StandardArticle/docs/component.md +76 -76
  207. package/dist/templates/intro.mdx +18 -18
  208. package/dist/wrappers/Container/Container.stories.svelte +38 -38
  209. package/dist/wrappers/Container/Container.svelte +77 -77
  210. package/dist/wrappers/Container/docs/component.md +12 -12
  211. package/dist/wrappers/Embed/Embed.stories.svelte +24 -24
  212. package/dist/wrappers/Embed/Embed.svelte +44 -44
  213. package/dist/wrappers/Embed/docs/component.md +15 -15
  214. package/dist/wrappers/LazyLoad/LazyLoad.stories.svelte +37 -37
  215. package/dist/wrappers/LazyLoad/LazyLoad.svelte +50 -50
  216. package/dist/wrappers/LazyLoad/docs/component.md +29 -29
  217. package/dist/wrappers/Main/Main.stories.svelte +24 -24
  218. package/dist/wrappers/Main/Main.svelte +11 -11
  219. package/dist/wrappers/Main/docs/component.md +16 -16
  220. package/dist/wrappers/Observe/Observe.stories.svelte +29 -29
  221. package/dist/wrappers/Observe/Observe.svelte +35 -35
  222. package/dist/wrappers/Observe/docs/component.md +22 -22
  223. package/dist/wrappers/Theme/Theme.stories.svelte +70 -70
  224. package/dist/wrappers/Theme/Theme.svelte +76 -76
  225. package/dist/wrappers/Theme/docs/component.md +10 -10
  226. package/dist/wrappers/Theme/themes.js +70 -70
  227. package/package.json +89 -89
@@ -1,151 +1,151 @@
1
- <script>
2
- import { createEventDispatcher } from "svelte";
3
-
4
- const dispatch = createEventDispatcher();
5
-
6
- /**
7
- * ID for &lt;input&gt; element
8
- * @type {string|null}
9
- */
10
- export let id = null;
11
- /**
12
- * Name attribute for &lt;input&gt; element
13
- * @type {string|null}
14
- */
15
- export let name = id;
16
- /**
17
- * A prop to bind to for the entered value
18
- * @type {string|null}
19
- */
20
- export let value = null;
21
- /**
22
- * A label to describe the &lt;input&gt; element (expected for accessibility)
23
- * @type {string}
24
- */
25
- export let label = "Enter some text";
26
- /**
27
- * Visually hide the label
28
- * @type {boolean}
29
- */
30
- export let hideLabel = false;
31
- /**
32
- * An optional description to help users know what to enter
33
- * @type {string|null}
34
- */
35
- export let description = null;
36
- /**
37
- * The maximum number of characters that can be entered (optional)
38
- * @type {number}
39
- */
40
- export let charLimit = null;
41
- /**
42
- * The width of the &lt;input&gt; in characters
43
- * @type {number}
44
- */
45
- export let width = null;
46
- /**
47
- * An optional prefix (eg. £) to appear on the left of the input
48
- * @type {string|null}
49
- */
50
- export let prefix = null;
51
- /**
52
- * An optional suffix (eg. %) to appear on the right of the input
53
- * @type {string|null}
54
- */
55
- export let suffix = null;
56
- /**
57
- * An optional hidden description of the prefix (for accessibility)
58
- * @type {string}
59
- */
60
- export let unitLabel = prefix || suffix || "";
61
- /**
62
- * An optional regex pattern foto limit the input (not currently used)
63
- * @type {string|null}
64
- */
65
- export let pattern = null;
66
- /**
67
- * Set to `true` if the value should be a number
68
- * @type {boolean}
69
- */
70
- export let numeric = false;
71
- /**
72
- * Set to `true` to give the input a disabled state
73
- * @type {boolean}
74
- */
75
- export let disabled = false;
76
- /**
77
- * Set to `true` to highlight border in red
78
- * @type {boolean}
79
- */
80
- export let error = false;
81
- /**
82
- * Optional: Set an additional CSS class for the component
83
- * @type {string|null}
84
- */
85
- export let cls = null;
86
- </script>
87
-
88
- <div class="ons-field {cls}">
89
- {#if label}
90
- <label
91
- class="ons-label"
92
- class:ons-label--with-description={description}
93
- class:ons-u-vh={hideLabel}
94
- aria-describedby={description ? `${id}-description-hint` : null}
95
- for={id}
96
- >
97
- {label}
98
- </label>
99
- {/if}
100
- {#if description}
101
- <span id="{id}-description-hint" class="ons-label__description ons-input--with-description">
102
- {description}
103
- </span>
104
- {/if}
105
- {#if prefix || suffix}
106
- <span class="ons-input-type" class:ons-input-type--prefix={prefix}>
107
- <span class="ons-input-type__inner">
108
- <input
109
- type="text"
110
- {id}
111
- {name}
112
- bind:value
113
- maxlength={charLimit}
114
- pattern={pattern ? pattern : numeric ? "[0-9]*" : null}
115
- inputmode={numeric ? "numeric" : null}
116
- class="ons-input ons-input--text ons-input-type__input {Number.isInteger(width)
117
- ? `ons-input--w-${width}`
118
- : ''}"
119
- class:ons-input--error={error}
120
- aria-labelledby="{id} {id}-unit"
121
- aria-describedby={description ? `${id}-description-hint` : null}
122
- {disabled}
123
- on:change={(e) => dispatch("change", e)}
124
- />
125
- <abbr
126
- id="{id}-unit"
127
- class="ons-input-type__type ons-js-input-abbr"
128
- aria-label={unitLabel}
129
- role="figure"
130
- title={unitLabel}>{prefix || suffix}</abbr
131
- >
132
- </span>
133
- </span>
134
- {:else}
135
- <input
136
- type="text"
137
- {id}
138
- {name}
139
- bind:value
140
- pattern={pattern ? pattern : numeric ? "[0-9]*" : null}
141
- inputmode={numeric ? "numeric" : null}
142
- class="ons-input ons-input--text ons-input-type__input {Number.isInteger(width)
143
- ? `ons-input--w-${width}`
144
- : ''}"
145
- class:ons-input--error={error}
146
- aria-describedby={description ? `${id}-description-hint` : null}
147
- {disabled}
148
- on:change={(e) => dispatch("change", e)}
149
- />
150
- {/if}
151
- </div>
1
+ <script>
2
+ import { createEventDispatcher } from "svelte";
3
+
4
+ const dispatch = createEventDispatcher();
5
+
6
+ /**
7
+ * ID for &lt;input&gt; element
8
+ * @type {string|null}
9
+ */
10
+ export let id = null;
11
+ /**
12
+ * Name attribute for &lt;input&gt; element
13
+ * @type {string|null}
14
+ */
15
+ export let name = id;
16
+ /**
17
+ * A prop to bind to for the entered value
18
+ * @type {string|null}
19
+ */
20
+ export let value = null;
21
+ /**
22
+ * A label to describe the &lt;input&gt; element (expected for accessibility)
23
+ * @type {string|null}
24
+ */
25
+ export let label = null;
26
+ /**
27
+ * Visually hide the label
28
+ * @type {boolean}
29
+ */
30
+ export let hideLabel = false;
31
+ /**
32
+ * An optional description to help users know what to enter
33
+ * @type {string|null}
34
+ */
35
+ export let description = null;
36
+ /**
37
+ * The maximum number of characters that can be entered (optional)
38
+ * @type {number}
39
+ */
40
+ export let charLimit = null;
41
+ /**
42
+ * The width of the &lt;input&gt; in characters
43
+ * @type {number}
44
+ */
45
+ export let width = null;
46
+ /**
47
+ * An optional prefix (eg. £) to appear on the left of the input
48
+ * @type {string|null}
49
+ */
50
+ export let prefix = null;
51
+ /**
52
+ * An optional suffix (eg. %) to appear on the right of the input
53
+ * @type {string|null}
54
+ */
55
+ export let suffix = null;
56
+ /**
57
+ * An optional hidden description of the prefix (for accessibility)
58
+ * @type {string}
59
+ */
60
+ export let unitLabel = prefix || suffix || "";
61
+ /**
62
+ * An optional regex pattern foto limit the input (not currently used)
63
+ * @type {string|null}
64
+ */
65
+ export let pattern = null;
66
+ /**
67
+ * Set to `true` if the value should be a number
68
+ * @type {boolean}
69
+ */
70
+ export let numeric = false;
71
+ /**
72
+ * Set to `true` to give the input a disabled state
73
+ * @type {boolean}
74
+ */
75
+ export let disabled = false;
76
+ /**
77
+ * Set to `true` to highlight border in red
78
+ * @type {boolean}
79
+ */
80
+ export let error = false;
81
+ /**
82
+ * Optional: Set an additional CSS class for the component
83
+ * @type {string|null}
84
+ */
85
+ export let cls = null;
86
+ </script>
87
+
88
+ <div class="ons-field {cls}">
89
+ {#if label}
90
+ <label
91
+ class="ons-label"
92
+ class:ons-label--with-description={description}
93
+ class:ons-u-vh={hideLabel}
94
+ aria-describedby={description ? `${id}-description-hint` : null}
95
+ for={id}
96
+ >
97
+ {label}
98
+ </label>
99
+ {/if}
100
+ {#if description}
101
+ <span id="{id}-description-hint" class="ons-label__description ons-input--with-description">
102
+ {description}
103
+ </span>
104
+ {/if}
105
+ {#if prefix || suffix}
106
+ <span class="ons-input-type" class:ons-input-type--prefix={prefix}>
107
+ <span class="ons-input-type__inner">
108
+ <input
109
+ type="text"
110
+ {id}
111
+ {name}
112
+ bind:value
113
+ maxlength={charLimit}
114
+ pattern={pattern ? pattern : numeric ? "[0-9]*" : null}
115
+ inputmode={numeric ? "numeric" : null}
116
+ class="ons-input ons-input--text ons-input-type__input {Number.isInteger(width)
117
+ ? `ons-input--w-${width}`
118
+ : ''}"
119
+ class:ons-input--error={error}
120
+ aria-labelledby="{id} {id}-unit"
121
+ aria-describedby={description ? `${id}-description-hint` : null}
122
+ {disabled}
123
+ on:change={(e) => dispatch("change", e)}
124
+ />
125
+ <abbr
126
+ id="{id}-unit"
127
+ class="ons-input-type__type ons-js-input-abbr"
128
+ aria-label={unitLabel}
129
+ role="figure"
130
+ title={unitLabel}>{prefix || suffix}</abbr
131
+ >
132
+ </span>
133
+ </span>
134
+ {:else}
135
+ <input
136
+ type="text"
137
+ {id}
138
+ {name}
139
+ bind:value
140
+ pattern={pattern ? pattern : numeric ? "[0-9]*" : null}
141
+ inputmode={numeric ? "numeric" : null}
142
+ class="ons-input ons-input--text ons-input-type__input {Number.isInteger(width)
143
+ ? `ons-input--w-${width}`
144
+ : ''}"
145
+ class:ons-input--error={error}
146
+ aria-describedby={description ? `${id}-description-hint` : null}
147
+ {disabled}
148
+ on:change={(e) => dispatch("change", e)}
149
+ />
150
+ {/if}
151
+ </div>
@@ -5,7 +5,7 @@ export default class Input extends SvelteComponentTyped<{
5
5
  cls?: string | null | undefined;
6
6
  id?: string | null | undefined;
7
7
  width?: number | undefined;
8
- label?: string | undefined;
8
+ label?: string | null | undefined;
9
9
  pattern?: string | null | undefined;
10
10
  name?: string | null | undefined;
11
11
  error?: boolean | undefined;
@@ -33,7 +33,7 @@ declare const __propDef: {
33
33
  cls?: string | null | undefined;
34
34
  id?: string | null | undefined;
35
35
  width?: number | undefined;
36
- label?: string | undefined;
36
+ label?: string | null | undefined;
37
37
  pattern?: string | null | undefined;
38
38
  name?: string | null | undefined;
39
39
  error?: boolean | undefined;
@@ -1,16 +1,16 @@
1
- A standard `<input>` element with Svelte bindings and events.
2
-
3
- <!-- prettier-ignore -->
4
- ```html
5
- <script>
6
- import { Input } from "@onsvisual/svelte-components";
7
-
8
- // Bind the <input> value to a variable (reactive)
9
- let value;
10
-
11
- // Define your own function on change
12
- const handleChange = (e) => console.log(e);
13
- </script>
14
-
15
- <Input bind:value on:change="{handleChange}" />
16
- ```
1
+ A standard `<input>` element with Svelte bindings and events.
2
+
3
+ <!-- prettier-ignore -->
4
+ ```html
5
+ <script>
6
+ import { Input } from "@onsvisual/svelte-components";
7
+
8
+ // Bind the <input> value to a variable (reactive)
9
+ let value;
10
+
11
+ // Define your own function on change
12
+ const handleChange = (e) => console.log(e);
13
+ </script>
14
+
15
+ <Input bind:value on:change="{handleChange}" />
16
+ ```
@@ -1,90 +1,90 @@
1
- <script>
2
- import { onMount, createEventDispatcher } from "svelte";
3
-
4
- const dispatch = createEventDispatcher();
5
-
6
- /**
7
- * Unique ID input
8
- * @type {string|null}
9
- */
10
- export let id = null;
11
- /**
12
- * Label for input
13
- * @type {string|null}
14
- */
15
- export let label = null;
16
- /**
17
- * Optional: Extended description for element
18
- * @type {string|null}
19
- */
20
- export let description = null;
21
- /**
22
- * Optional: Define the item as an object in the form {id, label, description?}
23
- * @type {object}
24
- */
25
- export let item = { id, label, description };
26
- /**
27
- * ID/name for radio group (required)
28
- * @type {string}
29
- */
30
- export let groupId;
31
- /**
32
- * Binding selected option
33
- * @type {object|null}
34
- */
35
- export let value = null;
36
- /**
37
- * Compact mode (no border)
38
- * @type {boolean}
39
- */
40
- export let compact = false;
41
-
42
- let el;
43
-
44
- onMount(() => {
45
- if (value?.id === item.id) el.checked = true;
46
- });
47
- </script>
48
-
49
- <span class="ons-radios__item" class:ons-radios__item--no-border={compact}>
50
- <span class="ons-radio" class:ons-radio--no-border={compact}>
51
- <input
52
- type="radio"
53
- id={item.id}
54
- value={item}
55
- name={groupId}
56
- class="ons-radio__input ons-js-radio"
57
- on:change={(e) => {
58
- if (e?.target?.checked) {
59
- value = item;
60
- dispatch("change", { value, e });
61
- }
62
- }}
63
- bind:this={el}
64
- />
65
- <label
66
- class="ons-radio__label"
67
- class:ons-label--with-description={description}
68
- for={item.id}
69
- id="{item.id}-label"
70
- aria-describedby={item.description ? `${item.id}-label-description-hint` : null}
71
- >
72
- {item.label}
73
- {#if item.description}
74
- <span class="ons-label__aria-hidden-description" aria-hidden="true"
75
- ><span class="ons-label__description ons-radio__label--with-description">
76
- {item.description}
77
- </span></span
78
- >
79
- {/if}
80
- </label>
81
- {#if item.description}
82
- <span
83
- class="ons-label__visually-hidden-description ons-u-vh"
84
- id="{id}-label-description-hint"
85
- >
86
- {item.description}
87
- </span>
88
- {/if}
89
- </span>
90
- </span>
1
+ <script>
2
+ import { onMount, createEventDispatcher } from "svelte";
3
+
4
+ const dispatch = createEventDispatcher();
5
+
6
+ /**
7
+ * Unique ID input
8
+ * @type {string|null}
9
+ */
10
+ export let id = null;
11
+ /**
12
+ * Label for input
13
+ * @type {string|null}
14
+ */
15
+ export let label = null;
16
+ /**
17
+ * Optional: Extended description for element
18
+ * @type {string|null}
19
+ */
20
+ export let description = null;
21
+ /**
22
+ * Optional: Define the item as an object in the form {id, label, description?}
23
+ * @type {object}
24
+ */
25
+ export let item = { id, label, description };
26
+ /**
27
+ * ID/name for radio group (required)
28
+ * @type {string}
29
+ */
30
+ export let groupId;
31
+ /**
32
+ * Binding selected option
33
+ * @type {object|null}
34
+ */
35
+ export let value = null;
36
+ /**
37
+ * Compact mode (no border)
38
+ * @type {boolean}
39
+ */
40
+ export let compact = false;
41
+
42
+ let el;
43
+
44
+ onMount(() => {
45
+ if (value?.id === item.id) el.checked = true;
46
+ });
47
+ </script>
48
+
49
+ <span class="ons-radios__item" class:ons-radios__item--no-border={compact}>
50
+ <span class="ons-radio" class:ons-radio--no-border={compact}>
51
+ <input
52
+ type="radio"
53
+ id={item.id}
54
+ value={item}
55
+ name={groupId}
56
+ class="ons-radio__input ons-js-radio"
57
+ on:change={(e) => {
58
+ if (e?.target?.checked) {
59
+ value = item;
60
+ dispatch("change", { value, e });
61
+ }
62
+ }}
63
+ bind:this={el}
64
+ />
65
+ <label
66
+ class="ons-radio__label"
67
+ class:ons-label--with-description={description}
68
+ for={item.id}
69
+ id="{item.id}-label"
70
+ aria-describedby={item.description ? `${item.id}-label-description-hint` : null}
71
+ >
72
+ {item.label}
73
+ {#if item.description}
74
+ <span class="ons-label__aria-hidden-description" aria-hidden="true"
75
+ ><span class="ons-label__description ons-radio__label--with-description">
76
+ {item.description}
77
+ </span></span
78
+ >
79
+ {/if}
80
+ </label>
81
+ {#if item.description}
82
+ <span
83
+ class="ons-label__visually-hidden-description ons-u-vh"
84
+ id="{id}-label-description-hint"
85
+ >
86
+ {item.description}
87
+ </span>
88
+ {/if}
89
+ </span>
90
+ </span>
@@ -1,51 +1,51 @@
1
- <script module>
2
- import { defineMeta } from "@storybook/addon-svelte-csf";
3
- import { withComponentDocs, withStoryDocs } from "../../js/withParams.js";
4
- import Radio from "./Radio.svelte";
5
- import Radios from "./Radios.svelte";
6
- import componentDocs from "./docs/component.md?raw";
7
- import exampleDocs from "./docs/example.md?raw";
8
-
9
- const { Story } = defineMeta({
10
- title: "Inputs/Radios",
11
- component: Radios,
12
- tags: ["autodocs"],
13
- argTypes: {},
14
- parameters: withComponentDocs(componentDocs)
15
- });
16
-
17
- let items = [
18
- {
19
- id: "house",
20
- label: "House or bungalow",
21
- description: "Includes terraced, semi-detached and detached homes."
22
- },
23
- { id: "flat", label: "Flat, maisonette or apartment" },
24
- { id: "mobile", label: "Caravan or other mobile or temporary structure" }
25
- ];
26
- </script>
27
-
28
- {#snippet template(args)}
29
- <div style:padding="12px">
30
- <Radios {...args} />
31
- </div>
32
- {/snippet}
33
-
34
- <Story name="Default" args={{ label: "Select one", id: "radios", items }} {template} />
35
-
36
- <Story name="Compact without label" args={{ id: "radios", items, compact: true }} {template} />
37
-
38
- <Story name="Individually defined radios" asChild parameters={withStoryDocs(exampleDocs)}>
39
- <div style:padding="12px">
40
- <Radios label="Select one">
41
- <Radio
42
- groupId="radios"
43
- id="house"
44
- label="House or bungalow"
45
- description="Includes terraced, semi-detached and detached homes."
46
- />
47
- <Radio groupId="radios" id="flat" label="Flat, maisonette or apartment" />
48
- <Radio groupId="radios" id="mobile" label="Caravan or other mobile or temporary structure" />
49
- </Radios>
50
- </div>
51
- </Story>
1
+ <script module>
2
+ import { defineMeta } from "@storybook/addon-svelte-csf";
3
+ import { withComponentDocs, withStoryDocs } from "../../js/withParams.js";
4
+ import Radio from "./Radio.svelte";
5
+ import Radios from "./Radios.svelte";
6
+ import componentDocs from "./docs/component.md?raw";
7
+ import exampleDocs from "./docs/example.md?raw";
8
+
9
+ const { Story } = defineMeta({
10
+ title: "Inputs/Radios",
11
+ component: Radios,
12
+ tags: ["autodocs"],
13
+ argTypes: {},
14
+ parameters: withComponentDocs(componentDocs)
15
+ });
16
+
17
+ let items = [
18
+ {
19
+ id: "house",
20
+ label: "House or bungalow",
21
+ description: "Includes terraced, semi-detached and detached homes."
22
+ },
23
+ { id: "flat", label: "Flat, maisonette or apartment" },
24
+ { id: "mobile", label: "Caravan or other mobile or temporary structure" }
25
+ ];
26
+ </script>
27
+
28
+ {#snippet template(args)}
29
+ <div style:padding="12px">
30
+ <Radios {...args} />
31
+ </div>
32
+ {/snippet}
33
+
34
+ <Story name="Default" args={{ label: "Select one", id: "radios", items }} {template} />
35
+
36
+ <Story name="Compact without label" args={{ id: "radios", items, compact: true }} {template} />
37
+
38
+ <Story name="Individually defined radios" asChild parameters={withStoryDocs(exampleDocs)}>
39
+ <div style:padding="12px">
40
+ <Radios label="Select one">
41
+ <Radio
42
+ groupId="radios"
43
+ id="house"
44
+ label="House or bungalow"
45
+ description="Includes terraced, semi-detached and detached homes."
46
+ />
47
+ <Radio groupId="radios" id="flat" label="Flat, maisonette or apartment" />
48
+ <Radio groupId="radios" id="mobile" label="Caravan or other mobile or temporary structure" />
49
+ </Radios>
50
+ </div>
51
+ </Story>