@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,148 +1,148 @@
|
|
|
1
|
-
<script module>
|
|
2
|
-
import { defineMeta } from "@storybook/addon-svelte-csf";
|
|
3
|
-
import { withComponentDocs } from "../../js/withParams.js";
|
|
4
|
-
import ToolbarsContainer from "./ToolbarsContainer.svelte";
|
|
5
|
-
import Toolbar from "./Toolbar.svelte";
|
|
6
|
-
import ToolbarButton from "./ToolbarButton.svelte";
|
|
7
|
-
import ToolbarDivider from "./ToolbarDivider.svelte";
|
|
8
|
-
import movepanimg from "./img/movepan.png";
|
|
9
|
-
import Button from "../Button/Button.svelte";
|
|
10
|
-
import ToolControls from "./ToolControls.svelte";
|
|
11
|
-
import ToolControl from "./ToolControl.svelte";
|
|
12
|
-
import componentDocs from "./docs/component.md?raw";
|
|
13
|
-
|
|
14
|
-
let container;
|
|
15
|
-
|
|
16
|
-
const toolbarContent = [
|
|
17
|
-
{
|
|
18
|
-
type: "button",
|
|
19
|
-
id: "move",
|
|
20
|
-
icon: "move",
|
|
21
|
-
label: "Move and Pan",
|
|
22
|
-
helpContent: `<h3>Move and pan</h3><p>Left-click anywhere on the map and hold the button down while dragging the mouse to move the map in the desired direction.</p><img src='${movepanimg}' alt='Move and pan' />`
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
type: "button",
|
|
26
|
-
id: "polygon",
|
|
27
|
-
icon: "polygon",
|
|
28
|
-
label: "Draw a polygon",
|
|
29
|
-
helpContent:
|
|
30
|
-
"<h3>Draw a polygon</h3><p>Left-click to add a point to the polygon. Double-click to finish drawing.</p>",
|
|
31
|
-
hasAriaControls: true
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
type: "button",
|
|
35
|
-
id: "circle",
|
|
36
|
-
icon: "radius",
|
|
37
|
-
label: "Draw a circle",
|
|
38
|
-
helpContent:
|
|
39
|
-
"<h3>Draw a circle</h3><p>Left-click anywhere on the map and hold the button down while dragging the mouse to move the map in the desired direction.</p>"
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
type: "divider"
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
type: "button",
|
|
46
|
-
id: "zoomin",
|
|
47
|
-
icon: "zoomin",
|
|
48
|
-
label: "Zoom in",
|
|
49
|
-
helpContent:
|
|
50
|
-
"<h3>Zoom in</h3><p>Left-click anywhere on the map and hold the button down while dragging the mouse to move the map in the desired direction.</p>"
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
type: "button",
|
|
54
|
-
id: "zoomout",
|
|
55
|
-
icon: "zoomout",
|
|
56
|
-
label: "Zoom out",
|
|
57
|
-
helpContent:
|
|
58
|
-
"<h3>Zoom out</h3><p>Left-click anywhere on the map and hold the button down while dragging the mouse to move the map in the desired direction.</p>"
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
type: "divider"
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
type: "button",
|
|
65
|
-
id: "undo",
|
|
66
|
-
icon: "undo",
|
|
67
|
-
label: "Undo last step",
|
|
68
|
-
helpContent:
|
|
69
|
-
"<h3>Undo last step</h3><p>Left-click anywhere on the map and hold the button down while dragging the mouse to move the map in the desired direction.</p>"
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
type: "button",
|
|
73
|
-
id: "redo",
|
|
74
|
-
icon: "redo",
|
|
75
|
-
label: "Redo last step",
|
|
76
|
-
helpContent:
|
|
77
|
-
"<h3>Redo last step</h3><p>Left-click anywhere on the map and hold the button down while dragging the mouse to move the map in the desired direction.</p>",
|
|
78
|
-
disabled: true
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
type: "divider"
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
type: "button",
|
|
85
|
-
id: "search",
|
|
86
|
-
icon: "search",
|
|
87
|
-
label: "Search for an area",
|
|
88
|
-
helpContent: "<h3>Search</h3><p>Search for an area by name or postcode.</p>"
|
|
89
|
-
}
|
|
90
|
-
];
|
|
91
|
-
|
|
92
|
-
const { Story } = defineMeta({
|
|
93
|
-
title: "Inputs/Toolbar",
|
|
94
|
-
component: ToolbarsContainer,
|
|
95
|
-
tags: ["autodocs"],
|
|
96
|
-
argTypes: {
|
|
97
|
-
orientation: {
|
|
98
|
-
options: ["horizontal", "vertical"],
|
|
99
|
-
control: { type: "select" }
|
|
100
|
-
}
|
|
101
|
-
},
|
|
102
|
-
parameters: withComponentDocs(componentDocs)
|
|
103
|
-
});
|
|
104
|
-
</script>
|
|
105
|
-
|
|
106
|
-
{#snippet template(args)}
|
|
107
|
-
<ToolbarsContainer bind:this={container}>
|
|
108
|
-
<Toolbar orientation={args.orientation} ariaLabel={args.ariaLabel}>
|
|
109
|
-
{#each toolbarContent as { type, id, icon, label, helpContent, disabled, hasAriaControls }}
|
|
110
|
-
{#if type === "button"}
|
|
111
|
-
<ToolbarButton {id} {icon} {label} {disabled} {hasAriaControls}>
|
|
112
|
-
{@html helpContent}
|
|
113
|
-
</ToolbarButton>
|
|
114
|
-
{:else}
|
|
115
|
-
<ToolbarDivider />
|
|
116
|
-
{/if}
|
|
117
|
-
{/each}
|
|
118
|
-
<ToolControls slot="controls">
|
|
119
|
-
<ToolControl id="polygon">
|
|
120
|
-
<p>
|
|
121
|
-
Click or tap an area on the map to add a node to the shape. To apply a shape, close it
|
|
122
|
-
by clicking or tapping on the starting node.
|
|
123
|
-
</p>
|
|
124
|
-
<Button variant="secondary" disabled>Clear shape</Button>
|
|
125
|
-
<Button variant="primary">Apply shape</Button>
|
|
126
|
-
</ToolControl>
|
|
127
|
-
</ToolControls>
|
|
128
|
-
</Toolbar>
|
|
129
|
-
<Toolbar orientation={args.orientation}>
|
|
130
|
-
<ToolbarButton id="download" icon="download" label="Download area" />
|
|
131
|
-
<ToolbarButton id="upload" icon="upload" label="Upload a geometry" />
|
|
132
|
-
<ToolbarDivider />
|
|
133
|
-
<ToolbarButton id="help" icon="help" label="Help" on:click={container.resetHelp} />
|
|
134
|
-
<ToolbarDivider />
|
|
135
|
-
<ToolbarButton id="getstarted" custom label="Get started">
|
|
136
|
-
<div slot="custom">
|
|
137
|
-
<Button disabled small>Build profile</Button>
|
|
138
|
-
</div>
|
|
139
|
-
</ToolbarButton>
|
|
140
|
-
</Toolbar>
|
|
141
|
-
</ToolbarsContainer>
|
|
142
|
-
{/snippet}
|
|
143
|
-
|
|
144
|
-
{#snippet transient(args)}{/snippet}
|
|
145
|
-
|
|
146
|
-
<Story name="Default" args={{ ariaLabel: "Toolbar" }} {template} />
|
|
147
|
-
|
|
148
|
-
<Story name="Vertical" args={{ orientation: "vertical" }} {template} />
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from "@storybook/addon-svelte-csf";
|
|
3
|
+
import { withComponentDocs } from "../../js/withParams.js";
|
|
4
|
+
import ToolbarsContainer from "./ToolbarsContainer.svelte";
|
|
5
|
+
import Toolbar from "./Toolbar.svelte";
|
|
6
|
+
import ToolbarButton from "./ToolbarButton.svelte";
|
|
7
|
+
import ToolbarDivider from "./ToolbarDivider.svelte";
|
|
8
|
+
import movepanimg from "./img/movepan.png";
|
|
9
|
+
import Button from "../Button/Button.svelte";
|
|
10
|
+
import ToolControls from "./ToolControls.svelte";
|
|
11
|
+
import ToolControl from "./ToolControl.svelte";
|
|
12
|
+
import componentDocs from "./docs/component.md?raw";
|
|
13
|
+
|
|
14
|
+
let container;
|
|
15
|
+
|
|
16
|
+
const toolbarContent = [
|
|
17
|
+
{
|
|
18
|
+
type: "button",
|
|
19
|
+
id: "move",
|
|
20
|
+
icon: "move",
|
|
21
|
+
label: "Move and Pan",
|
|
22
|
+
helpContent: `<h3>Move and pan</h3><p>Left-click anywhere on the map and hold the button down while dragging the mouse to move the map in the desired direction.</p><img src='${movepanimg}' alt='Move and pan' />`
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
type: "button",
|
|
26
|
+
id: "polygon",
|
|
27
|
+
icon: "polygon",
|
|
28
|
+
label: "Draw a polygon",
|
|
29
|
+
helpContent:
|
|
30
|
+
"<h3>Draw a polygon</h3><p>Left-click to add a point to the polygon. Double-click to finish drawing.</p>",
|
|
31
|
+
hasAriaControls: true
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
type: "button",
|
|
35
|
+
id: "circle",
|
|
36
|
+
icon: "radius",
|
|
37
|
+
label: "Draw a circle",
|
|
38
|
+
helpContent:
|
|
39
|
+
"<h3>Draw a circle</h3><p>Left-click anywhere on the map and hold the button down while dragging the mouse to move the map in the desired direction.</p>"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
type: "divider"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
type: "button",
|
|
46
|
+
id: "zoomin",
|
|
47
|
+
icon: "zoomin",
|
|
48
|
+
label: "Zoom in",
|
|
49
|
+
helpContent:
|
|
50
|
+
"<h3>Zoom in</h3><p>Left-click anywhere on the map and hold the button down while dragging the mouse to move the map in the desired direction.</p>"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
type: "button",
|
|
54
|
+
id: "zoomout",
|
|
55
|
+
icon: "zoomout",
|
|
56
|
+
label: "Zoom out",
|
|
57
|
+
helpContent:
|
|
58
|
+
"<h3>Zoom out</h3><p>Left-click anywhere on the map and hold the button down while dragging the mouse to move the map in the desired direction.</p>"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
type: "divider"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
type: "button",
|
|
65
|
+
id: "undo",
|
|
66
|
+
icon: "undo",
|
|
67
|
+
label: "Undo last step",
|
|
68
|
+
helpContent:
|
|
69
|
+
"<h3>Undo last step</h3><p>Left-click anywhere on the map and hold the button down while dragging the mouse to move the map in the desired direction.</p>"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: "button",
|
|
73
|
+
id: "redo",
|
|
74
|
+
icon: "redo",
|
|
75
|
+
label: "Redo last step",
|
|
76
|
+
helpContent:
|
|
77
|
+
"<h3>Redo last step</h3><p>Left-click anywhere on the map and hold the button down while dragging the mouse to move the map in the desired direction.</p>",
|
|
78
|
+
disabled: true
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: "divider"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
type: "button",
|
|
85
|
+
id: "search",
|
|
86
|
+
icon: "search",
|
|
87
|
+
label: "Search for an area",
|
|
88
|
+
helpContent: "<h3>Search</h3><p>Search for an area by name or postcode.</p>"
|
|
89
|
+
}
|
|
90
|
+
];
|
|
91
|
+
|
|
92
|
+
const { Story } = defineMeta({
|
|
93
|
+
title: "Inputs/Toolbar",
|
|
94
|
+
component: ToolbarsContainer,
|
|
95
|
+
tags: ["autodocs"],
|
|
96
|
+
argTypes: {
|
|
97
|
+
orientation: {
|
|
98
|
+
options: ["horizontal", "vertical"],
|
|
99
|
+
control: { type: "select" }
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
parameters: withComponentDocs(componentDocs)
|
|
103
|
+
});
|
|
104
|
+
</script>
|
|
105
|
+
|
|
106
|
+
{#snippet template(args)}
|
|
107
|
+
<ToolbarsContainer bind:this={container}>
|
|
108
|
+
<Toolbar orientation={args.orientation} ariaLabel={args.ariaLabel}>
|
|
109
|
+
{#each toolbarContent as { type, id, icon, label, helpContent, disabled, hasAriaControls }}
|
|
110
|
+
{#if type === "button"}
|
|
111
|
+
<ToolbarButton {id} {icon} {label} {disabled} {hasAriaControls}>
|
|
112
|
+
{@html helpContent}
|
|
113
|
+
</ToolbarButton>
|
|
114
|
+
{:else}
|
|
115
|
+
<ToolbarDivider />
|
|
116
|
+
{/if}
|
|
117
|
+
{/each}
|
|
118
|
+
<ToolControls slot="controls">
|
|
119
|
+
<ToolControl id="polygon">
|
|
120
|
+
<p>
|
|
121
|
+
Click or tap an area on the map to add a node to the shape. To apply a shape, close it
|
|
122
|
+
by clicking or tapping on the starting node.
|
|
123
|
+
</p>
|
|
124
|
+
<Button variant="secondary" disabled>Clear shape</Button>
|
|
125
|
+
<Button variant="primary">Apply shape</Button>
|
|
126
|
+
</ToolControl>
|
|
127
|
+
</ToolControls>
|
|
128
|
+
</Toolbar>
|
|
129
|
+
<Toolbar orientation={args.orientation}>
|
|
130
|
+
<ToolbarButton id="download" icon="download" label="Download area" />
|
|
131
|
+
<ToolbarButton id="upload" icon="upload" label="Upload a geometry" />
|
|
132
|
+
<ToolbarDivider />
|
|
133
|
+
<ToolbarButton id="help" icon="help" label="Help" on:click={container.resetHelp} />
|
|
134
|
+
<ToolbarDivider />
|
|
135
|
+
<ToolbarButton id="getstarted" custom label="Get started">
|
|
136
|
+
<div slot="custom">
|
|
137
|
+
<Button disabled small>Build profile</Button>
|
|
138
|
+
</div>
|
|
139
|
+
</ToolbarButton>
|
|
140
|
+
</Toolbar>
|
|
141
|
+
</ToolbarsContainer>
|
|
142
|
+
{/snippet}
|
|
143
|
+
|
|
144
|
+
{#snippet transient(args)}{/snippet}
|
|
145
|
+
|
|
146
|
+
<Story name="Default" args={{ ariaLabel: "Toolbar" }} {template} />
|
|
147
|
+
|
|
148
|
+
<Story name="Vertical" args={{ orientation: "vertical" }} {template} />
|
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
import { getContext, setContext } from "svelte";
|
|
3
|
-
import { writable } from "svelte/store";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* @typedef {object} ToolbarProps
|
|
7
|
-
* @property {string | null} [classes=null] - Additional classes for the button
|
|
8
|
-
* @property {string | null} [ariaLabel=null] - aria label for button
|
|
9
|
-
* @property {'horizontal' | 'vertical'} [orientation='horizontal'] - Orientation of the toolbar
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
/** @type {ToolbarProps} */
|
|
13
|
-
let { classes = null, ariaLabel = null, orientation = "horizontal" } = $props();
|
|
14
|
-
|
|
15
|
-
// Set context for child components
|
|
16
|
-
const orientationStore = writable(orientation);
|
|
17
|
-
setContext("orientation", orientationStore);
|
|
18
|
-
|
|
19
|
-
$effect(() => {
|
|
20
|
-
orientationStore.set(orientation);
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
// Get the showHelpModals state from context
|
|
24
|
-
const showHelpModals = getContext("showHelpModals");
|
|
25
|
-
const showHelp = $derived(showHelpModals);
|
|
26
|
-
</script>
|
|
27
|
-
|
|
28
|
-
<!-- Toolbar container -->
|
|
29
|
-
<div
|
|
30
|
-
role="toolbar"
|
|
31
|
-
aria-label={ariaLabel}
|
|
32
|
-
class={`toolbar ${orientation === "vertical" ? "" : "flex-col"} ${classes}`}
|
|
33
|
-
>
|
|
34
|
-
<!-- slot for helpModal -->
|
|
35
|
-
<div class={`grid--flex ${orientation === "vertical" ? "flex-col" : ""}`}>
|
|
36
|
-
<slot />
|
|
37
|
-
</div>
|
|
38
|
-
|
|
39
|
-
{#if !$showHelp}
|
|
40
|
-
<slot name="controls" />
|
|
41
|
-
{/if}
|
|
42
|
-
</div>
|
|
43
|
-
|
|
44
|
-
<style>
|
|
45
|
-
.grid--flex {
|
|
46
|
-
display: flex;
|
|
47
|
-
gap: 4px;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
.toolbar {
|
|
51
|
-
display: flex;
|
|
52
|
-
align-items: center;
|
|
53
|
-
box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.25);
|
|
54
|
-
border-radius: 8px;
|
|
55
|
-
padding: 8px;
|
|
56
|
-
justify-content: flex-start;
|
|
57
|
-
align-content: flex-start;
|
|
58
|
-
flex-wrap: nowrap;
|
|
59
|
-
width: auto;
|
|
60
|
-
max-width: fit-content;
|
|
61
|
-
height: 100%;
|
|
62
|
-
margin: 8px;
|
|
63
|
-
background: white;
|
|
64
|
-
pointer-events: all;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.flex-col {
|
|
68
|
-
flex-direction: column;
|
|
69
|
-
}
|
|
70
|
-
</style>
|
|
1
|
+
<script>
|
|
2
|
+
import { getContext, setContext } from "svelte";
|
|
3
|
+
import { writable } from "svelte/store";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @typedef {object} ToolbarProps
|
|
7
|
+
* @property {string | null} [classes=null] - Additional classes for the button
|
|
8
|
+
* @property {string | null} [ariaLabel=null] - aria label for button
|
|
9
|
+
* @property {'horizontal' | 'vertical'} [orientation='horizontal'] - Orientation of the toolbar
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/** @type {ToolbarProps} */
|
|
13
|
+
let { classes = null, ariaLabel = null, orientation = "horizontal" } = $props();
|
|
14
|
+
|
|
15
|
+
// Set context for child components
|
|
16
|
+
const orientationStore = writable(orientation);
|
|
17
|
+
setContext("orientation", orientationStore);
|
|
18
|
+
|
|
19
|
+
$effect(() => {
|
|
20
|
+
orientationStore.set(orientation);
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
// Get the showHelpModals state from context
|
|
24
|
+
const showHelpModals = getContext("showHelpModals");
|
|
25
|
+
const showHelp = $derived(showHelpModals);
|
|
26
|
+
</script>
|
|
27
|
+
|
|
28
|
+
<!-- Toolbar container -->
|
|
29
|
+
<div
|
|
30
|
+
role="toolbar"
|
|
31
|
+
aria-label={ariaLabel}
|
|
32
|
+
class={`toolbar ${orientation === "vertical" ? "" : "flex-col"} ${classes}`}
|
|
33
|
+
>
|
|
34
|
+
<!-- slot for helpModal -->
|
|
35
|
+
<div class={`grid--flex ${orientation === "vertical" ? "flex-col" : ""}`}>
|
|
36
|
+
<slot />
|
|
37
|
+
</div>
|
|
38
|
+
|
|
39
|
+
{#if !$showHelp}
|
|
40
|
+
<slot name="controls" />
|
|
41
|
+
{/if}
|
|
42
|
+
</div>
|
|
43
|
+
|
|
44
|
+
<style>
|
|
45
|
+
.grid--flex {
|
|
46
|
+
display: flex;
|
|
47
|
+
gap: 4px;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.toolbar {
|
|
51
|
+
display: flex;
|
|
52
|
+
align-items: center;
|
|
53
|
+
box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.25);
|
|
54
|
+
border-radius: 8px;
|
|
55
|
+
padding: 8px;
|
|
56
|
+
justify-content: flex-start;
|
|
57
|
+
align-content: flex-start;
|
|
58
|
+
flex-wrap: nowrap;
|
|
59
|
+
width: auto;
|
|
60
|
+
max-width: fit-content;
|
|
61
|
+
height: 100%;
|
|
62
|
+
margin: 8px;
|
|
63
|
+
background: white;
|
|
64
|
+
pointer-events: all;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.flex-col {
|
|
68
|
+
flex-direction: column;
|
|
69
|
+
}
|
|
70
|
+
</style>
|