@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.
- package/README.md +24 -24
- package/dist/css/main.css +513 -513
- 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 +93 -93
- 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 +35 -35
- 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,14 +1,14 @@
|
|
|
1
|
-
A checkbox element with various styling and labelling options. Its "checked" attribute can be bound to a Svelte boolean (true/false) variable.
|
|
2
|
-
|
|
3
|
-
Based on [this ONS Design System component](https://service-manual.ons.gov.uk/design-system/components/checkboxes).
|
|
4
|
-
|
|
5
|
-
<!-- prettier-ignore -->
|
|
6
|
-
```html
|
|
7
|
-
<script>
|
|
8
|
-
import { Checkbox } from "@onsvisual/svelte-components";
|
|
9
|
-
|
|
10
|
-
let checked = false;
|
|
11
|
-
</script>
|
|
12
|
-
|
|
13
|
-
<Checkbox id="checkbox" label="Select this" bind:checked />
|
|
14
|
-
```
|
|
1
|
+
A checkbox element with various styling and labelling options. Its "checked" attribute can be bound to a Svelte boolean (true/false) variable.
|
|
2
|
+
|
|
3
|
+
Based on [this ONS Design System component](https://service-manual.ons.gov.uk/design-system/components/checkboxes).
|
|
4
|
+
|
|
5
|
+
<!-- prettier-ignore -->
|
|
6
|
+
```html
|
|
7
|
+
<script>
|
|
8
|
+
import { Checkbox } from "@onsvisual/svelte-components";
|
|
9
|
+
|
|
10
|
+
let checked = false;
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<Checkbox id="checkbox" label="Select this" bind:checked />
|
|
14
|
+
```
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
<script module>
|
|
2
|
-
import { defineMeta } from "@storybook/addon-svelte-csf";
|
|
3
|
-
import { withComponentDocs, withStoryDocs } from "../../js/withParams.js";
|
|
4
|
-
import Checkbox from "../Checkbox/Checkbox.svelte";
|
|
5
|
-
import Checkboxes from "./Checkboxes.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/Checkboxes",
|
|
11
|
-
component: Checkboxes,
|
|
12
|
-
tags: ["autodocs"],
|
|
13
|
-
argTypes: {},
|
|
14
|
-
parameters: withComponentDocs(componentDocs)
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
const items = [
|
|
18
|
-
{ id: "ice-cream", label: "Ice cream", checked: true },
|
|
19
|
-
{ id: "sprinkles", label: "Sprinkles", description: "Highly recommended!", checked: false },
|
|
20
|
-
{ id: "disabled", label: "Disabled option", checked: false, disabled: true }
|
|
21
|
-
];
|
|
22
|
-
</script>
|
|
23
|
-
|
|
24
|
-
<Story name="Default" args={{ label: "Select items", items }} />
|
|
25
|
-
|
|
26
|
-
<Story name="Compact without label" args={{ items, compact: true }} />
|
|
27
|
-
|
|
28
|
-
<Story name="Individually defined checkboxes" asChild parameters={withStoryDocs(exampleDocs)}>
|
|
29
|
-
<Checkboxes label="Select items">
|
|
30
|
-
<Checkbox id="ice-cream" label="Ice cream" />
|
|
31
|
-
<Checkbox id="sprinkles" label="Sprinkles" description="Highly recommended!" />
|
|
32
|
-
<Checkbox id="disabled" label="Disabled option" disabled />
|
|
33
|
-
</Checkboxes>
|
|
34
|
-
</Story>
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from "@storybook/addon-svelte-csf";
|
|
3
|
+
import { withComponentDocs, withStoryDocs } from "../../js/withParams.js";
|
|
4
|
+
import Checkbox from "../Checkbox/Checkbox.svelte";
|
|
5
|
+
import Checkboxes from "./Checkboxes.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/Checkboxes",
|
|
11
|
+
component: Checkboxes,
|
|
12
|
+
tags: ["autodocs"],
|
|
13
|
+
argTypes: {},
|
|
14
|
+
parameters: withComponentDocs(componentDocs)
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
const items = [
|
|
18
|
+
{ id: "ice-cream", label: "Ice cream", checked: true },
|
|
19
|
+
{ id: "sprinkles", label: "Sprinkles", description: "Highly recommended!", checked: false },
|
|
20
|
+
{ id: "disabled", label: "Disabled option", checked: false, disabled: true }
|
|
21
|
+
];
|
|
22
|
+
</script>
|
|
23
|
+
|
|
24
|
+
<Story name="Default" args={{ label: "Select items", items }} />
|
|
25
|
+
|
|
26
|
+
<Story name="Compact without label" args={{ items, compact: true }} />
|
|
27
|
+
|
|
28
|
+
<Story name="Individually defined checkboxes" asChild parameters={withStoryDocs(exampleDocs)}>
|
|
29
|
+
<Checkboxes label="Select items">
|
|
30
|
+
<Checkbox id="ice-cream" label="Ice cream" />
|
|
31
|
+
<Checkbox id="sprinkles" label="Sprinkles" description="Highly recommended!" />
|
|
32
|
+
<Checkbox id="disabled" label="Disabled option" disabled />
|
|
33
|
+
</Checkboxes>
|
|
34
|
+
</Story>
|
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import { setContext } from "svelte";
|
|
3
|
-
import { writable } from "svelte/store";
|
|
4
|
-
import Checkbox from "../Checkbox/Checkbox.svelte";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Title/legend for parent <fieldset>
|
|
8
|
-
* @type {string|null}
|
|
9
|
-
*/
|
|
10
|
-
export let title = null;
|
|
11
|
-
/**
|
|
12
|
-
* Visually hide the title/legend
|
|
13
|
-
* @type {boolean}
|
|
14
|
-
*/
|
|
15
|
-
export let hideTitle = false;
|
|
16
|
-
/**
|
|
17
|
-
* Descriptive "how to" label for inputs
|
|
18
|
-
* @type {string|null}
|
|
19
|
-
*/
|
|
20
|
-
export let label = null;
|
|
21
|
-
/** Optional: Define the checkboxes as an array of {id, label, checked, description?}
|
|
22
|
-
* @type {object[]|null}
|
|
23
|
-
*/
|
|
24
|
-
export let items = null;
|
|
25
|
-
/** Compact mode (no borders)
|
|
26
|
-
* @type {boolean}
|
|
27
|
-
*/
|
|
28
|
-
export let compact = false;
|
|
29
|
-
/** Binding for selected checkboxes (if checkboxes are defined as "items")
|
|
30
|
-
* @type {object[]}
|
|
31
|
-
*/
|
|
32
|
-
export let value = [];
|
|
33
|
-
/**
|
|
34
|
-
* Optional: Set an additional CSS class for the component
|
|
35
|
-
* @type {string|null}
|
|
36
|
-
*/
|
|
37
|
-
export let cls = null;
|
|
38
|
-
|
|
39
|
-
const checkboxes = writable([]);
|
|
40
|
-
setContext("checkboxes", checkboxes);
|
|
41
|
-
</script>
|
|
42
|
-
|
|
43
|
-
<fieldset class="ons-fieldset {cls}">
|
|
44
|
-
{#if title}
|
|
45
|
-
<legend class="ons-fieldset__legend ons-u-mb-no">
|
|
46
|
-
<span class="ons-fieldset__legend-title ons-u-pb-no" class:ons-u-vh={hideTitle}>{title}</span>
|
|
47
|
-
</legend>
|
|
48
|
-
{/if}
|
|
49
|
-
<div class="ons-input-items">
|
|
50
|
-
{#if label}
|
|
51
|
-
<p class="ons-checkboxes__label">{label}</p>
|
|
52
|
-
{/if}
|
|
53
|
-
<div class="ons-checkboxes__items">
|
|
54
|
-
<slot />
|
|
55
|
-
{#if Array.isArray(items)}
|
|
56
|
-
{#each items as item}
|
|
57
|
-
<Checkbox {item} bind:group={value} {compact} on:change />
|
|
58
|
-
{/each}
|
|
59
|
-
{/if}
|
|
60
|
-
</div>
|
|
61
|
-
</div>
|
|
62
|
-
</fieldset>
|
|
1
|
+
<script>
|
|
2
|
+
import { setContext } from "svelte";
|
|
3
|
+
import { writable } from "svelte/store";
|
|
4
|
+
import Checkbox from "../Checkbox/Checkbox.svelte";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Title/legend for parent <fieldset>
|
|
8
|
+
* @type {string|null}
|
|
9
|
+
*/
|
|
10
|
+
export let title = null;
|
|
11
|
+
/**
|
|
12
|
+
* Visually hide the title/legend
|
|
13
|
+
* @type {boolean}
|
|
14
|
+
*/
|
|
15
|
+
export let hideTitle = false;
|
|
16
|
+
/**
|
|
17
|
+
* Descriptive "how to" label for inputs
|
|
18
|
+
* @type {string|null}
|
|
19
|
+
*/
|
|
20
|
+
export let label = null;
|
|
21
|
+
/** Optional: Define the checkboxes as an array of {id, label, checked, description?}
|
|
22
|
+
* @type {object[]|null}
|
|
23
|
+
*/
|
|
24
|
+
export let items = null;
|
|
25
|
+
/** Compact mode (no borders)
|
|
26
|
+
* @type {boolean}
|
|
27
|
+
*/
|
|
28
|
+
export let compact = false;
|
|
29
|
+
/** Binding for selected checkboxes (if checkboxes are defined as "items")
|
|
30
|
+
* @type {object[]}
|
|
31
|
+
*/
|
|
32
|
+
export let value = [];
|
|
33
|
+
/**
|
|
34
|
+
* Optional: Set an additional CSS class for the component
|
|
35
|
+
* @type {string|null}
|
|
36
|
+
*/
|
|
37
|
+
export let cls = null;
|
|
38
|
+
|
|
39
|
+
const checkboxes = writable([]);
|
|
40
|
+
setContext("checkboxes", checkboxes);
|
|
41
|
+
</script>
|
|
42
|
+
|
|
43
|
+
<fieldset class="ons-fieldset {cls}">
|
|
44
|
+
{#if title}
|
|
45
|
+
<legend class="ons-fieldset__legend ons-u-mb-no">
|
|
46
|
+
<span class="ons-fieldset__legend-title ons-u-pb-no" class:ons-u-vh={hideTitle}>{title}</span>
|
|
47
|
+
</legend>
|
|
48
|
+
{/if}
|
|
49
|
+
<div class="ons-input-items">
|
|
50
|
+
{#if label}
|
|
51
|
+
<p class="ons-checkboxes__label">{label}</p>
|
|
52
|
+
{/if}
|
|
53
|
+
<div class="ons-checkboxes__items">
|
|
54
|
+
<slot />
|
|
55
|
+
{#if Array.isArray(items)}
|
|
56
|
+
{#each items as item}
|
|
57
|
+
<Checkbox {item} bind:group={value} {compact} on:change />
|
|
58
|
+
{/each}
|
|
59
|
+
{/if}
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
</fieldset>
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
A component for defining a group of [checkbox](/docs/inputs-checkbox--docs) elements, whose checked values can be bound to Svelte variables, or grouped in an array.
|
|
2
|
-
|
|
3
|
-
Based on [this ONS Design System component](https://service-manual.ons.gov.uk/design-system/components/checkboxes). (Note: In some use cases, it may be preferable to use raw HTML `<input type="checkbox">` components and style these using CSS.)
|
|
4
|
-
|
|
5
|
-
<!-- prettier-ignore -->
|
|
6
|
-
```html
|
|
7
|
-
<script>
|
|
8
|
-
import { Checkboxes } from "@onsvisual/svelte-components";
|
|
9
|
-
|
|
10
|
-
let items = [
|
|
11
|
-
{ id: "ice-cream", label: "Ice cream", checked: true },
|
|
12
|
-
{ id: "sprinkles", label: "Sprinkles", description: "Highly recommended!", checked: false },
|
|
13
|
-
{ id: "disabled", label: "Disabled option", checked: false, disabled: true },
|
|
14
|
-
];
|
|
15
|
-
|
|
16
|
-
let selected = []; // An array of the selected items
|
|
17
|
-
</script>
|
|
18
|
-
|
|
19
|
-
<Checkboxes {items} bind:value={selected} label="Select items">
|
|
20
|
-
```
|
|
1
|
+
A component for defining a group of [checkbox](/docs/inputs-checkbox--docs) elements, whose checked values can be bound to Svelte variables, or grouped in an array.
|
|
2
|
+
|
|
3
|
+
Based on [this ONS Design System component](https://service-manual.ons.gov.uk/design-system/components/checkboxes). (Note: In some use cases, it may be preferable to use raw HTML `<input type="checkbox">` components and style these using CSS.)
|
|
4
|
+
|
|
5
|
+
<!-- prettier-ignore -->
|
|
6
|
+
```html
|
|
7
|
+
<script>
|
|
8
|
+
import { Checkboxes } from "@onsvisual/svelte-components";
|
|
9
|
+
|
|
10
|
+
let items = [
|
|
11
|
+
{ id: "ice-cream", label: "Ice cream", checked: true },
|
|
12
|
+
{ id: "sprinkles", label: "Sprinkles", description: "Highly recommended!", checked: false },
|
|
13
|
+
{ id: "disabled", label: "Disabled option", checked: false, disabled: true },
|
|
14
|
+
];
|
|
15
|
+
|
|
16
|
+
let selected = []; // An array of the selected items
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<Checkboxes {items} bind:value={selected} label="Select items">
|
|
20
|
+
```
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
In this example, the child textboxes are defined explicitly.
|
|
2
|
-
|
|
3
|
-
<!-- prettier-ignore -->
|
|
4
|
-
```html
|
|
5
|
-
<script>
|
|
6
|
-
import { Checkbox, Checkboxes } from "@onsvisual/svelte-components";
|
|
7
|
-
|
|
8
|
-
let selected = []; // An array of the selected items
|
|
9
|
-
</script>
|
|
10
|
-
|
|
11
|
-
<Checkboxes label="Select items">
|
|
12
|
-
<Checkbox id="ice-cream" label="Ice cream" bind:group={selected} />
|
|
13
|
-
<Checkbox id="sprinkles" label="Sprinkles" description="Highly recommended!" bind:group={selected} />
|
|
14
|
-
<Checkbox id="disabled" label="Disabled option" bind:group={selected} />
|
|
15
|
-
</Checkboxes>
|
|
16
|
-
```
|
|
1
|
+
In this example, the child textboxes are defined explicitly.
|
|
2
|
+
|
|
3
|
+
<!-- prettier-ignore -->
|
|
4
|
+
```html
|
|
5
|
+
<script>
|
|
6
|
+
import { Checkbox, Checkboxes } from "@onsvisual/svelte-components";
|
|
7
|
+
|
|
8
|
+
let selected = []; // An array of the selected items
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<Checkboxes label="Select items">
|
|
12
|
+
<Checkbox id="ice-cream" label="Ice cream" bind:group={selected} />
|
|
13
|
+
<Checkbox id="sprinkles" label="Sprinkles" description="Highly recommended!" bind:group={selected} />
|
|
14
|
+
<Checkbox id="disabled" label="Disabled option" bind:group={selected} />
|
|
15
|
+
</Checkboxes>
|
|
16
|
+
```
|
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
<script module>
|
|
2
|
-
import { defineMeta } from "@storybook/addon-svelte-csf";
|
|
3
|
-
import { withComponentDocs } from "../../js/withParams.js";
|
|
4
|
-
import Dropdown from "./Dropdown.svelte";
|
|
5
|
-
import componentDocs from "./docs/component.md?raw";
|
|
6
|
-
import options from "../../js/menuOptions.js";
|
|
7
|
-
|
|
8
|
-
const { Story } = defineMeta({
|
|
9
|
-
title: "Inputs/Dropdown",
|
|
10
|
-
component: Dropdown,
|
|
11
|
-
tags: ["autodocs"],
|
|
12
|
-
argTypes: {},
|
|
13
|
-
parameters: withComponentDocs(componentDocs)
|
|
14
|
-
});
|
|
15
|
-
</script>
|
|
16
|
-
|
|
17
|
-
{#snippet template(args)}
|
|
18
|
-
<div style:padding="12px">
|
|
19
|
-
<Dropdown {...args} />
|
|
20
|
-
</div>
|
|
21
|
-
{/snippet}
|
|
22
|
-
|
|
23
|
-
<Story
|
|
24
|
-
name="Default"
|
|
25
|
-
args={{
|
|
26
|
-
id: "topic",
|
|
27
|
-
label: "Question topic",
|
|
28
|
-
options
|
|
29
|
-
}}
|
|
30
|
-
{template}
|
|
31
|
-
/>
|
|
32
|
-
|
|
33
|
-
<Story
|
|
34
|
-
name="Hidden label"
|
|
35
|
-
args={{
|
|
36
|
-
id: "topic",
|
|
37
|
-
label: "Question topic",
|
|
38
|
-
hideLabel: true,
|
|
39
|
-
options
|
|
40
|
-
}}
|
|
41
|
-
{template}
|
|
42
|
-
/>
|
|
43
|
-
|
|
44
|
-
<Story
|
|
45
|
-
name="Custom placeholder text"
|
|
46
|
-
args={{
|
|
47
|
-
id: "topic",
|
|
48
|
-
label: "Question topic",
|
|
49
|
-
hideLabel: true,
|
|
50
|
-
placeholder: "Some custom text",
|
|
51
|
-
options
|
|
52
|
-
}}
|
|
53
|
-
{template}
|
|
54
|
-
/>
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from "@storybook/addon-svelte-csf";
|
|
3
|
+
import { withComponentDocs } from "../../js/withParams.js";
|
|
4
|
+
import Dropdown from "./Dropdown.svelte";
|
|
5
|
+
import componentDocs from "./docs/component.md?raw";
|
|
6
|
+
import options from "../../js/menuOptions.js";
|
|
7
|
+
|
|
8
|
+
const { Story } = defineMeta({
|
|
9
|
+
title: "Inputs/Dropdown",
|
|
10
|
+
component: Dropdown,
|
|
11
|
+
tags: ["autodocs"],
|
|
12
|
+
argTypes: {},
|
|
13
|
+
parameters: withComponentDocs(componentDocs)
|
|
14
|
+
});
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
{#snippet template(args)}
|
|
18
|
+
<div style:padding="12px">
|
|
19
|
+
<Dropdown {...args} />
|
|
20
|
+
</div>
|
|
21
|
+
{/snippet}
|
|
22
|
+
|
|
23
|
+
<Story
|
|
24
|
+
name="Default"
|
|
25
|
+
args={{
|
|
26
|
+
id: "topic",
|
|
27
|
+
label: "Question topic",
|
|
28
|
+
options
|
|
29
|
+
}}
|
|
30
|
+
{template}
|
|
31
|
+
/>
|
|
32
|
+
|
|
33
|
+
<Story
|
|
34
|
+
name="Hidden label"
|
|
35
|
+
args={{
|
|
36
|
+
id: "topic",
|
|
37
|
+
label: "Question topic",
|
|
38
|
+
hideLabel: true,
|
|
39
|
+
options
|
|
40
|
+
}}
|
|
41
|
+
{template}
|
|
42
|
+
/>
|
|
43
|
+
|
|
44
|
+
<Story
|
|
45
|
+
name="Custom placeholder text"
|
|
46
|
+
args={{
|
|
47
|
+
id: "topic",
|
|
48
|
+
label: "Question topic",
|
|
49
|
+
hideLabel: true,
|
|
50
|
+
placeholder: "Some custom text",
|
|
51
|
+
options
|
|
52
|
+
}}
|
|
53
|
+
{template}
|
|
54
|
+
/>
|
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import { createEventDispatcher } from "svelte";
|
|
3
|
-
|
|
4
|
-
const dispatch = createEventDispatcher();
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Unique id for the <select> element
|
|
8
|
-
* @type {string|null}
|
|
9
|
-
*/
|
|
10
|
-
export let id = null;
|
|
11
|
-
/**
|
|
12
|
-
* Name for the <select> element
|
|
13
|
-
* @type {string|null}
|
|
14
|
-
*/
|
|
15
|
-
export let name = id;
|
|
16
|
-
/**
|
|
17
|
-
* A label to describe the <select> element (expected for accessibility)
|
|
18
|
-
* @type {string|null}
|
|
19
|
-
*/
|
|
20
|
-
export let label = null;
|
|
21
|
-
/**
|
|
22
|
-
* Visually hide the label
|
|
23
|
-
* @type {boolean}
|
|
24
|
-
*/
|
|
25
|
-
export let hideLabel = false;
|
|
26
|
-
/**
|
|
27
|
-
* An optional placeholder text
|
|
28
|
-
* @type {string}
|
|
29
|
-
*/
|
|
30
|
-
export let placeholder = "Select an option";
|
|
31
|
-
/**
|
|
32
|
-
* A prop to bind to for the selected value
|
|
33
|
-
* @type {object|null}
|
|
34
|
-
*/
|
|
35
|
-
export let value = null;
|
|
36
|
-
/**
|
|
37
|
-
* An array of options, formatted {id, label}
|
|
38
|
-
* @type {object[]}
|
|
39
|
-
*/
|
|
40
|
-
export let options = [];
|
|
41
|
-
/**
|
|
42
|
-
* Optional: Set an additional CSS class for the component
|
|
43
|
-
* @type {string|null}
|
|
44
|
-
*/
|
|
45
|
-
export let cls = null;
|
|
46
|
-
</script>
|
|
47
|
-
|
|
48
|
-
<div class="ons-field {cls}">
|
|
49
|
-
{#if label}
|
|
50
|
-
<label class="ons-label" for={id} class:ons-u-vh={hideLabel}>{label}</label>
|
|
51
|
-
{/if}
|
|
52
|
-
<select
|
|
53
|
-
{id}
|
|
54
|
-
{name}
|
|
55
|
-
class="ons-input ons-input--select"
|
|
56
|
-
bind:value
|
|
57
|
-
on:change={(e) => dispatch("change", e)}
|
|
58
|
-
>
|
|
59
|
-
{#if placeholder}
|
|
60
|
-
<option value={null} selected disabled>{placeholder}</option>
|
|
61
|
-
{/if}
|
|
62
|
-
{#each options as option}
|
|
63
|
-
<option value={option}>{option?.label || option}</option>
|
|
64
|
-
{/each}
|
|
65
|
-
</select>
|
|
66
|
-
</div>
|
|
1
|
+
<script>
|
|
2
|
+
import { createEventDispatcher } from "svelte";
|
|
3
|
+
|
|
4
|
+
const dispatch = createEventDispatcher();
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Unique id for the <select> element
|
|
8
|
+
* @type {string|null}
|
|
9
|
+
*/
|
|
10
|
+
export let id = null;
|
|
11
|
+
/**
|
|
12
|
+
* Name for the <select> element
|
|
13
|
+
* @type {string|null}
|
|
14
|
+
*/
|
|
15
|
+
export let name = id;
|
|
16
|
+
/**
|
|
17
|
+
* A label to describe the <select> element (expected for accessibility)
|
|
18
|
+
* @type {string|null}
|
|
19
|
+
*/
|
|
20
|
+
export let label = null;
|
|
21
|
+
/**
|
|
22
|
+
* Visually hide the label
|
|
23
|
+
* @type {boolean}
|
|
24
|
+
*/
|
|
25
|
+
export let hideLabel = false;
|
|
26
|
+
/**
|
|
27
|
+
* An optional placeholder text
|
|
28
|
+
* @type {string}
|
|
29
|
+
*/
|
|
30
|
+
export let placeholder = "Select an option";
|
|
31
|
+
/**
|
|
32
|
+
* A prop to bind to for the selected value
|
|
33
|
+
* @type {object|null}
|
|
34
|
+
*/
|
|
35
|
+
export let value = null;
|
|
36
|
+
/**
|
|
37
|
+
* An array of options, formatted {id, label}
|
|
38
|
+
* @type {object[]}
|
|
39
|
+
*/
|
|
40
|
+
export let options = [];
|
|
41
|
+
/**
|
|
42
|
+
* Optional: Set an additional CSS class for the component
|
|
43
|
+
* @type {string|null}
|
|
44
|
+
*/
|
|
45
|
+
export let cls = null;
|
|
46
|
+
</script>
|
|
47
|
+
|
|
48
|
+
<div class="ons-field {cls}">
|
|
49
|
+
{#if label}
|
|
50
|
+
<label class="ons-label" for={id} class:ons-u-vh={hideLabel}>{label}</label>
|
|
51
|
+
{/if}
|
|
52
|
+
<select
|
|
53
|
+
{id}
|
|
54
|
+
{name}
|
|
55
|
+
class="ons-input ons-input--select"
|
|
56
|
+
bind:value
|
|
57
|
+
on:change={(e) => dispatch("change", e)}
|
|
58
|
+
>
|
|
59
|
+
{#if placeholder}
|
|
60
|
+
<option value={null} selected disabled>{placeholder}</option>
|
|
61
|
+
{/if}
|
|
62
|
+
{#each options as option}
|
|
63
|
+
<option value={option}>{option?.label || option}</option>
|
|
64
|
+
{/each}
|
|
65
|
+
</select>
|
|
66
|
+
</div>
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
A standard `<select>` component with Svelte bindings and events.
|
|
2
|
-
|
|
3
|
-
<!-- prettier-ignore -->
|
|
4
|
-
```html
|
|
5
|
-
<script>
|
|
6
|
-
import { Dropdown } from "@onsvisual/svelte-components";
|
|
7
|
-
|
|
8
|
-
const values = [
|
|
9
|
-
{ id: "1", label: "one" },
|
|
10
|
-
{ id: "2", label: "two" },
|
|
11
|
-
{ id: "3", label: "three" },
|
|
12
|
-
];
|
|
13
|
-
|
|
14
|
-
// Bind the <select> value to a variable (reactive)
|
|
15
|
-
let value;
|
|
16
|
-
|
|
17
|
-
// Define your own function on change
|
|
18
|
-
const handleChange = (e) => console.log(e);
|
|
19
|
-
</script>
|
|
20
|
-
|
|
21
|
-
<Dropdown {options} bind:value on:change="{handleChange}" />
|
|
22
|
-
```
|
|
1
|
+
A standard `<select>` component with Svelte bindings and events.
|
|
2
|
+
|
|
3
|
+
<!-- prettier-ignore -->
|
|
4
|
+
```html
|
|
5
|
+
<script>
|
|
6
|
+
import { Dropdown } from "@onsvisual/svelte-components";
|
|
7
|
+
|
|
8
|
+
const values = [
|
|
9
|
+
{ id: "1", label: "one" },
|
|
10
|
+
{ id: "2", label: "two" },
|
|
11
|
+
{ id: "3", label: "three" },
|
|
12
|
+
];
|
|
13
|
+
|
|
14
|
+
// Bind the <select> value to a variable (reactive)
|
|
15
|
+
let value;
|
|
16
|
+
|
|
17
|
+
// Define your own function on change
|
|
18
|
+
const handleChange = (e) => console.log(e);
|
|
19
|
+
</script>
|
|
20
|
+
|
|
21
|
+
<Dropdown {options} bind:value on:change="{handleChange}" />
|
|
22
|
+
```
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
<script module>
|
|
2
|
-
import { defineMeta } from "@storybook/addon-svelte-csf";
|
|
3
|
-
import { withComponentDocs } from "../../js/withParams.js";
|
|
4
|
-
import ErrorPanel from "./ErrorPanel.svelte";
|
|
5
|
-
import Input from "../Input/Input.svelte";
|
|
6
|
-
import componentDocs from "./docs/component.md?raw";
|
|
7
|
-
|
|
8
|
-
const { Story } = defineMeta({
|
|
9
|
-
title: "Inputs/ErrorPanel",
|
|
10
|
-
component: ErrorPanel,
|
|
11
|
-
tags: ["autodocs"],
|
|
12
|
-
argTypes: {},
|
|
13
|
-
parameters: withComponentDocs(componentDocs)
|
|
14
|
-
});
|
|
15
|
-
</script>
|
|
16
|
-
|
|
17
|
-
{#snippet template(args)}
|
|
18
|
-
<div style:padding="12px">
|
|
19
|
-
<ErrorPanel {...args}>
|
|
20
|
-
<Input />
|
|
21
|
-
</ErrorPanel>
|
|
22
|
-
</div>
|
|
23
|
-
{/snippet}
|
|
24
|
-
|
|
25
|
-
<Story name="Default" args={{ message: "You entered the wrong text" }} {template} />
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from "@storybook/addon-svelte-csf";
|
|
3
|
+
import { withComponentDocs } from "../../js/withParams.js";
|
|
4
|
+
import ErrorPanel from "./ErrorPanel.svelte";
|
|
5
|
+
import Input from "../Input/Input.svelte";
|
|
6
|
+
import componentDocs from "./docs/component.md?raw";
|
|
7
|
+
|
|
8
|
+
const { Story } = defineMeta({
|
|
9
|
+
title: "Inputs/ErrorPanel",
|
|
10
|
+
component: ErrorPanel,
|
|
11
|
+
tags: ["autodocs"],
|
|
12
|
+
argTypes: {},
|
|
13
|
+
parameters: withComponentDocs(componentDocs)
|
|
14
|
+
});
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
{#snippet template(args)}
|
|
18
|
+
<div style:padding="12px">
|
|
19
|
+
<ErrorPanel {...args}>
|
|
20
|
+
<Input />
|
|
21
|
+
</ErrorPanel>
|
|
22
|
+
</div>
|
|
23
|
+
{/snippet}
|
|
24
|
+
|
|
25
|
+
<Story name="Default" args={{ message: "You entered the wrong text" }} {template} />
|