@onsvisual/svelte-components 1.0.44 → 1.0.45
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.
- package/README.md +24 -24
- package/dist/css/main.css +513 -2
- package/dist/datavis/BarChart/BarChart.stories.svelte +84 -84
- package/dist/datavis/BarChart/docs/component.md +19 -19
- package/dist/datavis/Chart/Chart.stories.svelte +128 -128
- package/dist/datavis/Chart/docs/component.md +31 -31
- package/dist/datavis/Chart/docs/example.md +28 -28
- package/dist/datavis/ColumnChart/ColumnChart.stories.svelte +84 -84
- package/dist/datavis/ColumnChart/docs/component.md +19 -19
- package/dist/datavis/DataCard/DataCard.stories.svelte +45 -45
- package/dist/datavis/DataCard/DataCard.svelte +70 -70
- package/dist/datavis/DataCard/Sparkline.svelte +117 -117
- package/dist/datavis/DataCard/docs/component.md +20 -20
- package/dist/datavis/DataCard/docs/example.md +25 -25
- package/dist/datavis/DotPlotChart/DotPlotChart.stories.svelte +40 -40
- package/dist/datavis/DotPlotChart/docs/component.md +19 -19
- package/dist/datavis/LineChart/LineChart.stories.svelte +64 -64
- package/dist/datavis/LineChart/docs/component.md +31 -31
- package/dist/datavis/ScatterChart/ScatterChart.stories.svelte +55 -55
- package/dist/datavis/ScatterChart/docs/component.md +53 -53
- package/dist/datavis/Table/Table.stories.svelte +48 -48
- package/dist/datavis/Table/Table.svelte +161 -161
- package/dist/datavis/Table/docs/component.md +20 -20
- package/dist/datavis/demo-data/data-scatter.js +40 -40
- package/dist/datavis/demo-data/data.js +18 -18
- package/dist/datavis/intro.mdx +21 -21
- package/dist/decorators/Blockquote/Blockquote.stories.svelte +25 -25
- package/dist/decorators/Blockquote/Blockquote.svelte +27 -27
- package/dist/decorators/Blockquote/docs/component.md +10 -10
- package/dist/decorators/Divider/Divider.stories.svelte +29 -29
- package/dist/decorators/Divider/Divider.svelte +52 -52
- package/dist/decorators/Divider/docs/component.md +12 -12
- package/dist/decorators/Em/Em.stories.svelte +30 -30
- package/dist/decorators/Em/Em.svelte +58 -58
- package/dist/decorators/Em/docs/component.md +12 -12
- package/dist/decorators/Icon/Icon.stories.svelte +27 -27
- package/dist/decorators/Icon/Icon.svelte +101 -93
- package/dist/decorators/Icon/Icon.svelte.d.ts +2 -2
- package/dist/decorators/Icon/docs/component.md +10 -10
- package/dist/decorators/Indent/Indent.stories.svelte +22 -22
- package/dist/decorators/Indent/Indent.svelte +3 -3
- package/dist/decorators/Indent/docs/component.md +10 -10
- package/dist/index.js +86 -86
- package/dist/inputs/Button/Button.stories.svelte +70 -70
- package/dist/inputs/Button/Button.svelte +152 -152
- package/dist/inputs/Button/Button.svelte.d.ts +2 -2
- package/dist/inputs/Button/docs/component.md +17 -17
- package/dist/inputs/ButtonGroup/ButtonGroup.stories.svelte +40 -40
- package/dist/inputs/ButtonGroup/ButtonGroup.svelte +57 -57
- package/dist/inputs/ButtonGroup/ButtonGroupItem.svelte +101 -101
- package/dist/inputs/ButtonGroup/docs/component.md +23 -23
- package/dist/inputs/Checkbox/Checkbox.stories.svelte +34 -34
- package/dist/inputs/Checkbox/Checkbox.svelte +180 -180
- package/dist/inputs/Checkbox/docs/component.md +14 -14
- package/dist/inputs/Checkboxes/Checkboxes.stories.svelte +34 -34
- package/dist/inputs/Checkboxes/Checkboxes.svelte +62 -62
- package/dist/inputs/Checkboxes/docs/component.md +20 -20
- package/dist/inputs/Checkboxes/docs/example.md +16 -16
- package/dist/inputs/Dropdown/Dropdown.stories.svelte +54 -54
- package/dist/inputs/Dropdown/Dropdown.svelte +66 -66
- package/dist/inputs/Dropdown/docs/component.md +22 -22
- package/dist/inputs/ErrorPanel/ErrorPanel.stories.svelte +25 -25
- package/dist/inputs/ErrorPanel/ErrorPanel.svelte +24 -24
- package/dist/inputs/ErrorPanel/docs/component.md +14 -14
- package/dist/inputs/ErrorSummary/ErrorSummary.stories.svelte +34 -34
- package/dist/inputs/ErrorSummary/ErrorSummary.svelte +47 -47
- package/dist/inputs/ErrorSummary/docs/component.md +17 -17
- package/dist/inputs/ErrorSummary/docs/example.md +12 -12
- package/dist/inputs/Input/Input.stories.svelte +73 -73
- package/dist/inputs/Input/Input.svelte +151 -151
- package/dist/inputs/Input/docs/component.md +16 -16
- package/dist/inputs/Radios/Radio.svelte +90 -90
- package/dist/inputs/Radios/Radios.stories.svelte +51 -51
- package/dist/inputs/Radios/Radios.svelte +62 -62
- package/dist/inputs/Radios/docs/component.md +24 -24
- package/dist/inputs/Radios/docs/example.md +21 -21
- package/dist/inputs/Select/Select.stories.svelte +63 -63
- package/dist/inputs/Select/Select.svelte +326 -326
- package/dist/inputs/Select/docs/component.md +27 -27
- package/dist/inputs/Textarea/Textarea.stories.svelte +40 -40
- package/dist/inputs/Textarea/Textarea.svelte +113 -113
- package/dist/inputs/Textarea/docs/component.md +16 -16
- package/dist/inputs/Toolbar/HelpModal.svelte +234 -234
- package/dist/inputs/Toolbar/ToolControl.svelte +23 -23
- package/dist/inputs/Toolbar/ToolControls.svelte +9 -9
- package/dist/inputs/Toolbar/Toolbar.stories.svelte +148 -148
- package/dist/inputs/Toolbar/Toolbar.svelte +70 -70
- package/dist/inputs/Toolbar/ToolbarButton.svelte +184 -184
- package/dist/inputs/Toolbar/ToolbarDivider.svelte +29 -29
- package/dist/inputs/Toolbar/ToolbarIcon.svelte +106 -106
- package/dist/inputs/Toolbar/ToolbarsContainer.svelte +69 -69
- package/dist/inputs/Toolbar/docs/component.md +101 -101
- package/dist/intro.mdx +66 -66
- package/dist/js/menuOptions.js +14 -14
- package/dist/js/utils.js +133 -133
- package/dist/js/withParams.js +43 -43
- package/dist/layout/Accordion/Accordion.stories.svelte +30 -30
- package/dist/layout/Accordion/Accordion.svelte +55 -55
- package/dist/layout/Accordion/AccordionItem.svelte +51 -51
- package/dist/layout/Accordion/accordion.js +64 -64
- package/dist/layout/Accordion/details.js +83 -83
- package/dist/layout/Accordion/docs/component.md +19 -19
- package/dist/layout/AnalyticsBanner/AnalyticsBanner.stories.svelte +16 -16
- package/dist/layout/AnalyticsBanner/AnalyticsBanner.svelte +314 -314
- package/dist/layout/AnalyticsBanner/docs/component.md +44 -44
- package/dist/layout/BackLink/BackLink.stories.svelte +16 -16
- package/dist/layout/BackLink/BackLink.svelte +30 -30
- package/dist/layout/BackLink/docs/component.md +12 -12
- package/dist/layout/Breadcrumb/Breadcrumb.stories.svelte +31 -31
- package/dist/layout/Breadcrumb/Breadcrumb.svelte +69 -69
- package/dist/layout/Breadcrumb/docs/component.md +15 -15
- package/dist/layout/Card/Card.stories.svelte +39 -39
- package/dist/layout/Card/Card.svelte +127 -127
- package/dist/layout/Card/docs/component.md +14 -14
- package/dist/layout/Card/docs/eg-images.md +27 -27
- package/dist/layout/Card/docs/eg-links.md +12 -12
- package/dist/layout/Card/docs/eg-spans.md +12 -12
- package/dist/layout/Contents/Contents.stories.svelte +27 -27
- package/dist/layout/Contents/Contents.svelte +51 -51
- package/dist/layout/Contents/docs/component.md +18 -18
- package/dist/layout/DescriptionList/DescriptionList.stories.svelte +22 -22
- package/dist/layout/DescriptionList/DescriptionList.svelte +59 -59
- package/dist/layout/DescriptionList/docs/component.md +18 -18
- package/dist/layout/Details/Details.stories.svelte +32 -32
- package/dist/layout/Details/Details.svelte +75 -75
- package/dist/layout/Details/docs/component.md +14 -14
- package/dist/layout/DocumentList/Document.svelte +103 -103
- package/dist/layout/DocumentList/DocumentList.stories.svelte +88 -88
- package/dist/layout/DocumentList/DocumentList.svelte +33 -33
- package/dist/layout/DocumentList/docs/component.md +28 -28
- package/dist/layout/DocumentList/docs/example.md +23 -23
- package/dist/layout/ErrorPage/ErrorPage.stories.svelte +18 -18
- package/dist/layout/ErrorPage/ErrorPage.svelte +48 -48
- package/dist/layout/ErrorPage/docs/component.md +13 -13
- package/dist/layout/Footer/Footer.stories.svelte +24 -24
- package/dist/layout/Footer/Footer.svelte +366 -366
- package/dist/layout/Footer/docs/component.md +10 -10
- package/dist/layout/Grid/Grid.stories.svelte +50 -50
- package/dist/layout/Grid/Grid.svelte +117 -117
- package/dist/layout/Grid/GridCell.svelte +65 -65
- package/dist/layout/Grid/docs/component.md +14 -14
- package/dist/layout/Header/Header.stories.svelte +26 -26
- package/dist/layout/Header/Header.svelte +875 -875
- package/dist/layout/Header/docs/component.md +11 -11
- package/dist/layout/Hero/Hero.stories.svelte +79 -79
- package/dist/layout/Hero/Hero.svelte +364 -364
- package/dist/layout/Hero/docs/component.md +14 -14
- package/dist/layout/Highlight/Highlight.stories.svelte +29 -29
- package/dist/layout/Highlight/Highlight.svelte +77 -77
- package/dist/layout/Highlight/docs/component.md +12 -12
- package/dist/layout/Image/Image.stories.svelte +23 -23
- package/dist/layout/Image/Image.svelte +29 -29
- package/dist/layout/Image/docs/component.md +15 -15
- package/dist/layout/List/Li.svelte +3 -3
- package/dist/layout/List/List.stories.svelte +40 -40
- package/dist/layout/List/List.svelte +46 -46
- package/dist/layout/List/docs/component.md +14 -14
- package/dist/layout/List/docs/example.md +12 -12
- package/dist/layout/NavSections/NavSection.svelte +90 -90
- package/dist/layout/NavSections/NavSections.stories.svelte +51 -51
- package/dist/layout/NavSections/NavSections.svelte +160 -160
- package/dist/layout/NavSections/docs/component.md +25 -25
- package/dist/layout/Notice/Notice.stories.svelte +61 -61
- package/dist/layout/Notice/Notice.svelte +56 -56
- package/dist/layout/Notice/docs/component.md +14 -14
- package/dist/layout/PhaseBanner/PhaseBanner.stories.svelte +24 -24
- package/dist/layout/PhaseBanner/PhaseBanner.svelte +66 -66
- package/dist/layout/PhaseBanner/docs/component.md +14 -14
- package/dist/layout/RelatedContent/RelatedContent.stories.svelte +36 -36
- package/dist/layout/RelatedContent/RelatedContent.svelte +54 -54
- package/dist/layout/RelatedContent/docs/component.md +16 -16
- package/dist/layout/Scroller/Scroller.stories.svelte +60 -60
- package/dist/layout/Scroller/Scroller.svelte +368 -368
- package/dist/layout/Scroller/ScrollerSection.svelte +70 -70
- package/dist/layout/Scroller/docs/component.md +39 -39
- package/dist/layout/Section/Section.stories.svelte +33 -33
- package/dist/layout/Section/Section.svelte +60 -60
- package/dist/layout/Section/docs/component.md +12 -12
- package/dist/layout/ShareButtons/ShareButtons.stories.svelte +20 -20
- package/dist/layout/ShareButtons/ShareButtons.svelte +131 -131
- package/dist/layout/ShareButtons/docs/component.md +14 -14
- package/dist/layout/SkipLink/SkipLink.stories.svelte +16 -16
- package/dist/layout/SkipLink/SkipLink.svelte +9 -9
- package/dist/layout/SkipLink/docs/component.md +11 -11
- package/dist/layout/Summary/Summary.stories.svelte +21 -21
- package/dist/layout/Summary/Summary.svelte +60 -60
- package/dist/layout/Summary/docs/component.md +17 -17
- package/dist/layout/Tabs/Tab.svelte +53 -53
- package/dist/layout/Tabs/Tabs.stories.svelte +29 -29
- package/dist/layout/Tabs/Tabs.svelte +89 -89
- package/dist/layout/Tabs/docs/component.md +16 -16
- package/dist/layout/Tabs/tabs.js +302 -302
- package/dist/layout/Timeline/Timeline.stories.svelte +44 -44
- package/dist/layout/Timeline/Timeline.svelte +17 -17
- package/dist/layout/Timeline/TimelineItem.svelte +14 -14
- package/dist/layout/Timeline/docs/component.md +27 -27
- package/dist/layout/Timeline/docs/example.md +20 -20
- package/dist/templates/EmbedArticle/EmbedArticle.stories.svelte +72 -72
- package/dist/templates/EmbedArticle/docs/component.md +56 -56
- package/dist/templates/FeatureArticle/FeatureArticle.stories.svelte +150 -150
- package/dist/templates/FeatureArticle/docs/component.md +125 -125
- package/dist/templates/StandardArticle/StandardArticle.stories.svelte +86 -86
- package/dist/templates/StandardArticle/docs/component.md +76 -76
- package/dist/templates/intro.mdx +18 -18
- package/dist/wrappers/Container/Container.stories.svelte +38 -38
- package/dist/wrappers/Container/Container.svelte +77 -77
- package/dist/wrappers/Container/docs/component.md +12 -12
- package/dist/wrappers/Embed/Embed.stories.svelte +24 -24
- package/dist/wrappers/Embed/Embed.svelte +44 -44
- package/dist/wrappers/Embed/docs/component.md +15 -15
- package/dist/wrappers/LazyLoad/LazyLoad.stories.svelte +37 -37
- package/dist/wrappers/LazyLoad/LazyLoad.svelte +50 -50
- package/dist/wrappers/LazyLoad/docs/component.md +29 -29
- package/dist/wrappers/Main/Main.stories.svelte +24 -24
- package/dist/wrappers/Main/Main.svelte +11 -11
- package/dist/wrappers/Main/docs/component.md +16 -16
- package/dist/wrappers/Observe/Observe.stories.svelte +29 -29
- package/dist/wrappers/Observe/Observe.svelte +40 -40
- package/dist/wrappers/Observe/docs/component.md +22 -22
- package/dist/wrappers/Theme/Theme.stories.svelte +70 -70
- package/dist/wrappers/Theme/Theme.svelte +76 -76
- package/dist/wrappers/Theme/docs/component.md +10 -10
- package/dist/wrappers/Theme/themes.js +70 -70
- package/package.json +88 -88
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
<script module>
|
|
2
|
-
import { defineMeta } from "@storybook/addon-svelte-csf";
|
|
3
|
-
import { withComponentDocs } from "../../js/withParams.js";
|
|
4
|
-
import Input from "./Input.svelte";
|
|
5
|
-
import componentDocs from "./docs/component.md?raw";
|
|
6
|
-
|
|
7
|
-
const { Story } = defineMeta({
|
|
8
|
-
title: "Inputs/Input",
|
|
9
|
-
component: Input,
|
|
10
|
-
tags: ["autodocs"],
|
|
11
|
-
argTypes: {},
|
|
12
|
-
parameters: withComponentDocs(componentDocs)
|
|
13
|
-
});
|
|
14
|
-
</script>
|
|
15
|
-
|
|
16
|
-
{#snippet template(args)}
|
|
17
|
-
<div style:padding="12px">
|
|
18
|
-
<Input {...args} />
|
|
19
|
-
</div>
|
|
20
|
-
{/snippet}
|
|
21
|
-
|
|
22
|
-
<Story
|
|
23
|
-
name="Default"
|
|
24
|
-
args={{
|
|
25
|
-
id: "text",
|
|
26
|
-
label: "Enter some text"
|
|
27
|
-
}}
|
|
28
|
-
{template}
|
|
29
|
-
/>
|
|
30
|
-
|
|
31
|
-
<Story
|
|
32
|
-
name="With hidden label"
|
|
33
|
-
args={{
|
|
34
|
-
id: "text",
|
|
35
|
-
label: "Enter some text",
|
|
36
|
-
hideLabel: true
|
|
37
|
-
}}
|
|
38
|
-
{template}
|
|
39
|
-
/>
|
|
40
|
-
|
|
41
|
-
<Story
|
|
42
|
-
name="With description"
|
|
43
|
-
args={{
|
|
44
|
-
id: "text",
|
|
45
|
-
label: "Enter some text",
|
|
46
|
-
description: "This is a hint on what to enter"
|
|
47
|
-
}}
|
|
48
|
-
{template}
|
|
49
|
-
/>
|
|
50
|
-
|
|
51
|
-
<Story
|
|
52
|
-
name="Numeric with prefix"
|
|
53
|
-
args={{
|
|
54
|
-
id: "text",
|
|
55
|
-
label: "Enter some text",
|
|
56
|
-
prefix: "£",
|
|
57
|
-
unitLabel: "British pounds sterling",
|
|
58
|
-
numeric: true,
|
|
59
|
-
width: 5,
|
|
60
|
-
charLimit: 8
|
|
61
|
-
}}
|
|
62
|
-
{template}
|
|
63
|
-
/>
|
|
64
|
-
|
|
65
|
-
<Story
|
|
66
|
-
name="Input error"
|
|
67
|
-
args={{
|
|
68
|
-
id: "text",
|
|
69
|
-
label: "Enter some text",
|
|
70
|
-
error: true
|
|
71
|
-
}}
|
|
72
|
-
{template}
|
|
73
|
-
/>
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from "@storybook/addon-svelte-csf";
|
|
3
|
+
import { withComponentDocs } from "../../js/withParams.js";
|
|
4
|
+
import Input from "./Input.svelte";
|
|
5
|
+
import componentDocs from "./docs/component.md?raw";
|
|
6
|
+
|
|
7
|
+
const { Story } = defineMeta({
|
|
8
|
+
title: "Inputs/Input",
|
|
9
|
+
component: Input,
|
|
10
|
+
tags: ["autodocs"],
|
|
11
|
+
argTypes: {},
|
|
12
|
+
parameters: withComponentDocs(componentDocs)
|
|
13
|
+
});
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
{#snippet template(args)}
|
|
17
|
+
<div style:padding="12px">
|
|
18
|
+
<Input {...args} />
|
|
19
|
+
</div>
|
|
20
|
+
{/snippet}
|
|
21
|
+
|
|
22
|
+
<Story
|
|
23
|
+
name="Default"
|
|
24
|
+
args={{
|
|
25
|
+
id: "text",
|
|
26
|
+
label: "Enter some text"
|
|
27
|
+
}}
|
|
28
|
+
{template}
|
|
29
|
+
/>
|
|
30
|
+
|
|
31
|
+
<Story
|
|
32
|
+
name="With hidden label"
|
|
33
|
+
args={{
|
|
34
|
+
id: "text",
|
|
35
|
+
label: "Enter some text",
|
|
36
|
+
hideLabel: true
|
|
37
|
+
}}
|
|
38
|
+
{template}
|
|
39
|
+
/>
|
|
40
|
+
|
|
41
|
+
<Story
|
|
42
|
+
name="With description"
|
|
43
|
+
args={{
|
|
44
|
+
id: "text",
|
|
45
|
+
label: "Enter some text",
|
|
46
|
+
description: "This is a hint on what to enter"
|
|
47
|
+
}}
|
|
48
|
+
{template}
|
|
49
|
+
/>
|
|
50
|
+
|
|
51
|
+
<Story
|
|
52
|
+
name="Numeric with prefix"
|
|
53
|
+
args={{
|
|
54
|
+
id: "text",
|
|
55
|
+
label: "Enter some text",
|
|
56
|
+
prefix: "£",
|
|
57
|
+
unitLabel: "British pounds sterling",
|
|
58
|
+
numeric: true,
|
|
59
|
+
width: 5,
|
|
60
|
+
charLimit: 8
|
|
61
|
+
}}
|
|
62
|
+
{template}
|
|
63
|
+
/>
|
|
64
|
+
|
|
65
|
+
<Story
|
|
66
|
+
name="Input error"
|
|
67
|
+
args={{
|
|
68
|
+
id: "text",
|
|
69
|
+
label: "Enter some text",
|
|
70
|
+
error: true
|
|
71
|
+
}}
|
|
72
|
+
{template}
|
|
73
|
+
/>
|
|
@@ -1,151 +1,151 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import { createEventDispatcher } from "svelte";
|
|
3
|
-
|
|
4
|
-
const dispatch = createEventDispatcher();
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* ID for <input> element
|
|
8
|
-
* @type {string|null}
|
|
9
|
-
*/
|
|
10
|
-
export let id = null;
|
|
11
|
-
/**
|
|
12
|
-
* Name attribute for <input> 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 <input> 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 <input> 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 <input> element
|
|
8
|
+
* @type {string|null}
|
|
9
|
+
*/
|
|
10
|
+
export let id = null;
|
|
11
|
+
/**
|
|
12
|
+
* Name attribute for <input> 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 <input> 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 <input> 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,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>
|