@onsvisual/svelte-components 1.0.40 → 1.0.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/README.md +24 -24
  2. package/dist/css/main.css +513 -513
  3. package/dist/datavis/BarChart/BarChart.stories.svelte +84 -84
  4. package/dist/datavis/BarChart/docs/component.md +19 -19
  5. package/dist/datavis/Chart/Chart.stories.svelte +128 -128
  6. package/dist/datavis/Chart/docs/component.md +31 -31
  7. package/dist/datavis/Chart/docs/example.md +28 -28
  8. package/dist/datavis/ColumnChart/ColumnChart.stories.svelte +84 -84
  9. package/dist/datavis/ColumnChart/docs/component.md +19 -19
  10. package/dist/datavis/DataCard/DataCard.stories.svelte +45 -45
  11. package/dist/datavis/DataCard/DataCard.svelte +70 -70
  12. package/dist/datavis/DataCard/Sparkline.svelte +117 -117
  13. package/dist/datavis/DataCard/docs/component.md +20 -20
  14. package/dist/datavis/DataCard/docs/example.md +25 -25
  15. package/dist/datavis/DotPlotChart/DotPlotChart.stories.svelte +40 -40
  16. package/dist/datavis/DotPlotChart/docs/component.md +19 -19
  17. package/dist/datavis/LineChart/LineChart.stories.svelte +64 -64
  18. package/dist/datavis/LineChart/docs/component.md +31 -31
  19. package/dist/datavis/ScatterChart/ScatterChart.stories.svelte +55 -55
  20. package/dist/datavis/ScatterChart/docs/component.md +53 -53
  21. package/dist/datavis/Table/Table.stories.svelte +48 -48
  22. package/dist/datavis/Table/Table.svelte +161 -161
  23. package/dist/datavis/Table/docs/component.md +20 -20
  24. package/dist/datavis/demo-data/data-scatter.js +40 -40
  25. package/dist/datavis/demo-data/data.js +18 -18
  26. package/dist/datavis/intro.mdx +21 -21
  27. package/dist/decorators/Blockquote/Blockquote.stories.svelte +25 -25
  28. package/dist/decorators/Blockquote/Blockquote.svelte +27 -27
  29. package/dist/decorators/Blockquote/docs/component.md +10 -10
  30. package/dist/decorators/Divider/Divider.stories.svelte +29 -29
  31. package/dist/decorators/Divider/Divider.svelte +52 -52
  32. package/dist/decorators/Divider/docs/component.md +12 -12
  33. package/dist/decorators/Em/Em.stories.svelte +30 -30
  34. package/dist/decorators/Em/Em.svelte +58 -58
  35. package/dist/decorators/Em/docs/component.md +12 -12
  36. package/dist/decorators/Icon/Icon.stories.svelte +27 -27
  37. package/dist/decorators/Icon/Icon.svelte +93 -93
  38. package/dist/decorators/Icon/docs/component.md +10 -10
  39. package/dist/decorators/Indent/Indent.stories.svelte +22 -22
  40. package/dist/decorators/Indent/Indent.svelte +3 -3
  41. package/dist/decorators/Indent/docs/component.md +10 -10
  42. package/dist/index.js +86 -86
  43. package/dist/inputs/Button/Button.stories.svelte +70 -70
  44. package/dist/inputs/Button/Button.svelte +152 -152
  45. package/dist/inputs/Button/Button.svelte.d.ts +2 -2
  46. package/dist/inputs/Button/docs/component.md +17 -17
  47. package/dist/inputs/ButtonGroup/ButtonGroup.stories.svelte +40 -40
  48. package/dist/inputs/ButtonGroup/ButtonGroup.svelte +57 -57
  49. package/dist/inputs/ButtonGroup/ButtonGroupItem.svelte +101 -101
  50. package/dist/inputs/ButtonGroup/docs/component.md +23 -23
  51. package/dist/inputs/Checkbox/Checkbox.stories.svelte +34 -34
  52. package/dist/inputs/Checkbox/Checkbox.svelte +180 -180
  53. package/dist/inputs/Checkbox/docs/component.md +14 -14
  54. package/dist/inputs/Checkboxes/Checkboxes.stories.svelte +34 -34
  55. package/dist/inputs/Checkboxes/Checkboxes.svelte +62 -62
  56. package/dist/inputs/Checkboxes/docs/component.md +20 -20
  57. package/dist/inputs/Checkboxes/docs/example.md +16 -16
  58. package/dist/inputs/Dropdown/Dropdown.stories.svelte +54 -54
  59. package/dist/inputs/Dropdown/Dropdown.svelte +66 -66
  60. package/dist/inputs/Dropdown/docs/component.md +22 -22
  61. package/dist/inputs/ErrorPanel/ErrorPanel.stories.svelte +25 -25
  62. package/dist/inputs/ErrorPanel/ErrorPanel.svelte +24 -24
  63. package/dist/inputs/ErrorPanel/docs/component.md +14 -14
  64. package/dist/inputs/ErrorSummary/ErrorSummary.stories.svelte +34 -34
  65. package/dist/inputs/ErrorSummary/ErrorSummary.svelte +47 -47
  66. package/dist/inputs/ErrorSummary/docs/component.md +17 -17
  67. package/dist/inputs/ErrorSummary/docs/example.md +12 -12
  68. package/dist/inputs/Input/Input.stories.svelte +73 -73
  69. package/dist/inputs/Input/Input.svelte +151 -151
  70. package/dist/inputs/Input/docs/component.md +16 -16
  71. package/dist/inputs/Radios/Radio.svelte +90 -90
  72. package/dist/inputs/Radios/Radios.stories.svelte +51 -51
  73. package/dist/inputs/Radios/Radios.svelte +62 -62
  74. package/dist/inputs/Radios/docs/component.md +24 -24
  75. package/dist/inputs/Radios/docs/example.md +21 -21
  76. package/dist/inputs/Select/Select.stories.svelte +63 -63
  77. package/dist/inputs/Select/Select.svelte +326 -326
  78. package/dist/inputs/Select/docs/component.md +27 -27
  79. package/dist/inputs/Textarea/Textarea.stories.svelte +40 -40
  80. package/dist/inputs/Textarea/Textarea.svelte +113 -113
  81. package/dist/inputs/Textarea/docs/component.md +16 -16
  82. package/dist/inputs/Toolbar/HelpModal.svelte +234 -234
  83. package/dist/inputs/Toolbar/ToolControl.svelte +23 -23
  84. package/dist/inputs/Toolbar/ToolControls.svelte +9 -9
  85. package/dist/inputs/Toolbar/Toolbar.stories.svelte +148 -148
  86. package/dist/inputs/Toolbar/Toolbar.svelte +70 -70
  87. package/dist/inputs/Toolbar/ToolbarButton.svelte +184 -184
  88. package/dist/inputs/Toolbar/ToolbarDivider.svelte +29 -29
  89. package/dist/inputs/Toolbar/ToolbarIcon.svelte +106 -106
  90. package/dist/inputs/Toolbar/ToolbarsContainer.svelte +69 -69
  91. package/dist/inputs/Toolbar/docs/component.md +101 -101
  92. package/dist/intro.mdx +66 -66
  93. package/dist/js/menuOptions.js +14 -14
  94. package/dist/js/utils.js +133 -133
  95. package/dist/js/withParams.js +43 -43
  96. package/dist/layout/Accordion/Accordion.stories.svelte +30 -30
  97. package/dist/layout/Accordion/Accordion.svelte +55 -55
  98. package/dist/layout/Accordion/AccordionItem.svelte +51 -51
  99. package/dist/layout/Accordion/accordion.js +64 -64
  100. package/dist/layout/Accordion/details.js +83 -83
  101. package/dist/layout/Accordion/docs/component.md +19 -19
  102. package/dist/layout/AnalyticsBanner/AnalyticsBanner.stories.svelte +16 -16
  103. package/dist/layout/AnalyticsBanner/AnalyticsBanner.svelte +314 -314
  104. package/dist/layout/AnalyticsBanner/docs/component.md +44 -44
  105. package/dist/layout/BackLink/BackLink.stories.svelte +16 -16
  106. package/dist/layout/BackLink/BackLink.svelte +30 -30
  107. package/dist/layout/BackLink/docs/component.md +12 -12
  108. package/dist/layout/Breadcrumb/Breadcrumb.stories.svelte +31 -31
  109. package/dist/layout/Breadcrumb/Breadcrumb.svelte +69 -69
  110. package/dist/layout/Breadcrumb/docs/component.md +15 -15
  111. package/dist/layout/Card/Card.stories.svelte +39 -39
  112. package/dist/layout/Card/Card.svelte +127 -127
  113. package/dist/layout/Card/docs/component.md +14 -14
  114. package/dist/layout/Card/docs/eg-images.md +27 -27
  115. package/dist/layout/Card/docs/eg-links.md +12 -12
  116. package/dist/layout/Card/docs/eg-spans.md +12 -12
  117. package/dist/layout/Contents/Contents.stories.svelte +27 -27
  118. package/dist/layout/Contents/Contents.svelte +51 -51
  119. package/dist/layout/Contents/docs/component.md +18 -18
  120. package/dist/layout/DescriptionList/DescriptionList.stories.svelte +22 -22
  121. package/dist/layout/DescriptionList/DescriptionList.svelte +59 -59
  122. package/dist/layout/DescriptionList/docs/component.md +18 -18
  123. package/dist/layout/Details/Details.stories.svelte +32 -32
  124. package/dist/layout/Details/Details.svelte +75 -75
  125. package/dist/layout/Details/docs/component.md +14 -14
  126. package/dist/layout/DocumentList/Document.svelte +103 -103
  127. package/dist/layout/DocumentList/DocumentList.stories.svelte +88 -88
  128. package/dist/layout/DocumentList/DocumentList.svelte +33 -33
  129. package/dist/layout/DocumentList/docs/component.md +28 -28
  130. package/dist/layout/DocumentList/docs/example.md +23 -23
  131. package/dist/layout/ErrorPage/ErrorPage.stories.svelte +18 -18
  132. package/dist/layout/ErrorPage/ErrorPage.svelte +48 -48
  133. package/dist/layout/ErrorPage/docs/component.md +13 -13
  134. package/dist/layout/Footer/Footer.stories.svelte +24 -24
  135. package/dist/layout/Footer/Footer.svelte +366 -366
  136. package/dist/layout/Footer/docs/component.md +10 -10
  137. package/dist/layout/Grid/Grid.stories.svelte +50 -50
  138. package/dist/layout/Grid/Grid.svelte +117 -117
  139. package/dist/layout/Grid/GridCell.svelte +65 -65
  140. package/dist/layout/Grid/docs/component.md +14 -14
  141. package/dist/layout/Header/Header.stories.svelte +26 -26
  142. package/dist/layout/Header/Header.svelte +875 -875
  143. package/dist/layout/Header/docs/component.md +11 -11
  144. package/dist/layout/Hero/Hero.stories.svelte +79 -79
  145. package/dist/layout/Hero/Hero.svelte +364 -364
  146. package/dist/layout/Hero/docs/component.md +14 -14
  147. package/dist/layout/Highlight/Highlight.stories.svelte +29 -29
  148. package/dist/layout/Highlight/Highlight.svelte +77 -77
  149. package/dist/layout/Highlight/docs/component.md +12 -12
  150. package/dist/layout/Image/Image.stories.svelte +23 -23
  151. package/dist/layout/Image/Image.svelte +29 -29
  152. package/dist/layout/Image/docs/component.md +15 -15
  153. package/dist/layout/List/Li.svelte +3 -3
  154. package/dist/layout/List/List.stories.svelte +40 -40
  155. package/dist/layout/List/List.svelte +46 -46
  156. package/dist/layout/List/docs/component.md +14 -14
  157. package/dist/layout/List/docs/example.md +12 -12
  158. package/dist/layout/NavSections/NavSection.svelte +90 -90
  159. package/dist/layout/NavSections/NavSections.stories.svelte +51 -51
  160. package/dist/layout/NavSections/NavSections.svelte +160 -160
  161. package/dist/layout/NavSections/docs/component.md +25 -25
  162. package/dist/layout/Notice/Notice.stories.svelte +61 -61
  163. package/dist/layout/Notice/Notice.svelte +56 -56
  164. package/dist/layout/Notice/docs/component.md +14 -14
  165. package/dist/layout/PhaseBanner/PhaseBanner.stories.svelte +24 -24
  166. package/dist/layout/PhaseBanner/PhaseBanner.svelte +66 -66
  167. package/dist/layout/PhaseBanner/docs/component.md +14 -14
  168. package/dist/layout/RelatedContent/RelatedContent.stories.svelte +36 -36
  169. package/dist/layout/RelatedContent/RelatedContent.svelte +54 -54
  170. package/dist/layout/RelatedContent/docs/component.md +16 -16
  171. package/dist/layout/Scroller/Scroller.stories.svelte +60 -60
  172. package/dist/layout/Scroller/Scroller.svelte +368 -368
  173. package/dist/layout/Scroller/ScrollerSection.svelte +70 -70
  174. package/dist/layout/Scroller/docs/component.md +39 -39
  175. package/dist/layout/Section/Section.stories.svelte +33 -33
  176. package/dist/layout/Section/Section.svelte +60 -60
  177. package/dist/layout/Section/docs/component.md +12 -12
  178. package/dist/layout/ShareButtons/ShareButtons.stories.svelte +20 -20
  179. package/dist/layout/ShareButtons/ShareButtons.svelte +131 -131
  180. package/dist/layout/ShareButtons/docs/component.md +14 -14
  181. package/dist/layout/SkipLink/SkipLink.stories.svelte +16 -16
  182. package/dist/layout/SkipLink/SkipLink.svelte +9 -9
  183. package/dist/layout/SkipLink/docs/component.md +11 -11
  184. package/dist/layout/Summary/Summary.stories.svelte +21 -21
  185. package/dist/layout/Summary/Summary.svelte +60 -60
  186. package/dist/layout/Summary/docs/component.md +17 -17
  187. package/dist/layout/Tabs/Tab.svelte +53 -53
  188. package/dist/layout/Tabs/Tabs.stories.svelte +29 -29
  189. package/dist/layout/Tabs/Tabs.svelte +89 -89
  190. package/dist/layout/Tabs/docs/component.md +16 -16
  191. package/dist/layout/Tabs/tabs.js +302 -302
  192. package/dist/layout/Timeline/Timeline.stories.svelte +44 -44
  193. package/dist/layout/Timeline/Timeline.svelte +17 -17
  194. package/dist/layout/Timeline/TimelineItem.svelte +14 -14
  195. package/dist/layout/Timeline/docs/component.md +27 -27
  196. package/dist/layout/Timeline/docs/example.md +20 -20
  197. package/dist/templates/EmbedArticle/EmbedArticle.stories.svelte +72 -72
  198. package/dist/templates/EmbedArticle/docs/component.md +56 -56
  199. package/dist/templates/FeatureArticle/FeatureArticle.stories.svelte +150 -150
  200. package/dist/templates/FeatureArticle/docs/component.md +125 -125
  201. package/dist/templates/StandardArticle/StandardArticle.stories.svelte +86 -86
  202. package/dist/templates/StandardArticle/docs/component.md +76 -76
  203. package/dist/templates/intro.mdx +18 -18
  204. package/dist/wrappers/Container/Container.stories.svelte +38 -38
  205. package/dist/wrappers/Container/Container.svelte +77 -77
  206. package/dist/wrappers/Container/docs/component.md +12 -12
  207. package/dist/wrappers/Embed/Embed.stories.svelte +24 -24
  208. package/dist/wrappers/Embed/Embed.svelte +44 -44
  209. package/dist/wrappers/Embed/docs/component.md +15 -15
  210. package/dist/wrappers/LazyLoad/LazyLoad.stories.svelte +37 -37
  211. package/dist/wrappers/LazyLoad/LazyLoad.svelte +50 -50
  212. package/dist/wrappers/LazyLoad/docs/component.md +29 -29
  213. package/dist/wrappers/Main/Main.stories.svelte +24 -24
  214. package/dist/wrappers/Main/Main.svelte +11 -11
  215. package/dist/wrappers/Main/docs/component.md +16 -16
  216. package/dist/wrappers/Observe/Observe.stories.svelte +29 -29
  217. package/dist/wrappers/Observe/Observe.svelte +35 -35
  218. package/dist/wrappers/Observe/docs/component.md +22 -22
  219. package/dist/wrappers/Theme/Theme.stories.svelte +70 -70
  220. package/dist/wrappers/Theme/Theme.svelte +76 -76
  221. package/dist/wrappers/Theme/docs/component.md +10 -10
  222. package/dist/wrappers/Theme/themes.js +70 -70
  223. package/package.json +88 -88
@@ -1,69 +1,69 @@
1
- <script lang="ts">
2
- import { setContext, onMount } from "svelte";
3
- import { writable } from "svelte/store";
4
-
5
- // Initialize a store for button IDs
6
- const buttonIds = writable([]);
7
- setContext("buttonIds", {
8
- register: (id: string) => {
9
- buttonIds.update((ids) => [...ids, id]);
10
- },
11
- unregister: (id: string) => {
12
- buttonIds.update((ids) => ids.filter((btnId) => btnId !== id));
13
- },
14
- buttonIds
15
- });
16
-
17
- let showHelpState = $state(true);
18
-
19
- $effect(() => {
20
- const sessionValue = sessionStorage.getItem("showHelpModals");
21
- const localValue = localStorage.getItem("showHelpModals");
22
- showHelpState = sessionValue === "false" ? false : localValue === "false" ? false : true;
23
- });
24
-
25
- const showHelpModals = writable(showHelpState);
26
- // Set context for showHelpModals
27
- setContext("showHelpModals", showHelpModals);
28
-
29
- // Reactively update the initial state
30
- $effect(() => {
31
- showHelpModals.set(showHelpState);
32
- });
33
-
34
- const activeModalStore = writable(null); // Tracks the ID of the active modal
35
- setContext("activeModalId", activeModalStore);
36
-
37
- onMount(() => {
38
- window.addEventListener("beforeunload", () => {
39
- sessionStorage.removeItem("showHelpModals");
40
- });
41
- let unsubscribe = buttonIds.subscribe((ids) => {
42
- if (ids.length > 0) {
43
- activeModalStore.set(ids[0]); // Set first button as active
44
- }
45
- });
46
-
47
- return unsubscribe;
48
- });
49
-
50
- export function resetHelp() {
51
- sessionStorage.setItem("showHelpModals", "true");
52
- showHelpModals.set(true);
53
- }
54
- </script>
55
-
56
- <div class="multi-toolbar-container">
57
- <slot />
58
- </div>
59
-
60
- <style>
61
- .multi-toolbar-container {
62
- display: flex;
63
- flex-direction: row;
64
- gap: 1rem;
65
- justify-content: space-between;
66
- pointer-events: none;
67
- flex-wrap: wrap;
68
- }
69
- </style>
1
+ <script lang="ts">
2
+ import { setContext, onMount } from "svelte";
3
+ import { writable } from "svelte/store";
4
+
5
+ // Initialize a store for button IDs
6
+ const buttonIds = writable([]);
7
+ setContext("buttonIds", {
8
+ register: (id: string) => {
9
+ buttonIds.update((ids) => [...ids, id]);
10
+ },
11
+ unregister: (id: string) => {
12
+ buttonIds.update((ids) => ids.filter((btnId) => btnId !== id));
13
+ },
14
+ buttonIds
15
+ });
16
+
17
+ let showHelpState = $state(true);
18
+
19
+ $effect(() => {
20
+ const sessionValue = sessionStorage.getItem("showHelpModals");
21
+ const localValue = localStorage.getItem("showHelpModals");
22
+ showHelpState = sessionValue === "false" ? false : localValue === "false" ? false : true;
23
+ });
24
+
25
+ const showHelpModals = writable(showHelpState);
26
+ // Set context for showHelpModals
27
+ setContext("showHelpModals", showHelpModals);
28
+
29
+ // Reactively update the initial state
30
+ $effect(() => {
31
+ showHelpModals.set(showHelpState);
32
+ });
33
+
34
+ const activeModalStore = writable(null); // Tracks the ID of the active modal
35
+ setContext("activeModalId", activeModalStore);
36
+
37
+ onMount(() => {
38
+ window.addEventListener("beforeunload", () => {
39
+ sessionStorage.removeItem("showHelpModals");
40
+ });
41
+ let unsubscribe = buttonIds.subscribe((ids) => {
42
+ if (ids.length > 0) {
43
+ activeModalStore.set(ids[0]); // Set first button as active
44
+ }
45
+ });
46
+
47
+ return unsubscribe;
48
+ });
49
+
50
+ export function resetHelp() {
51
+ sessionStorage.setItem("showHelpModals", "true");
52
+ showHelpModals.set(true);
53
+ }
54
+ </script>
55
+
56
+ <div class="multi-toolbar-container">
57
+ <slot />
58
+ </div>
59
+
60
+ <style>
61
+ .multi-toolbar-container {
62
+ display: flex;
63
+ flex-direction: row;
64
+ gap: 1rem;
65
+ justify-content: space-between;
66
+ pointer-events: none;
67
+ flex-wrap: wrap;
68
+ }
69
+ </style>
@@ -1,101 +1,101 @@
1
- <span class="ons-warning">This component is experimental</span>
2
-
3
- A toolbar component. Use `ToolbarsContainer` even if using one toolbar as it contains a store for all the IDs and the activeID.
4
-
5
- There's a slot on ToolbarButton if you want to put in custom help text otherwise, there's the prop `helpText`.
6
-
7
- Each `ToolControl` will display content underneath the row of buttons. The `id` needs to match the `id` of the button.
8
-
9
- Use the prop `hasAriaControls` on a button to link the controls to the button.
10
-
11
- <!-- prettier-ignore -->
12
- ```html
13
- <script>
14
- import { ToolbarsContainer,Toolbar,ToolbarButton, ToolbarDivider,ToolControls,ToolControl, HelpModal } from "@onsvisual/svelte-components";
15
- </script>
16
-
17
- <ToolbarsContainer>
18
-
19
- <Toolbar orientation="horizontal">
20
- <ToolbarButton icon="polygon" label="Draw a polygon" helpText="Draw a polygon on the map" hasAriaControls>
21
- <HelpModal>
22
- <h3>Detailed Help</h3>
23
- <p>More complex help text or even HTML content</p>
24
- <ul>
25
- <li>With lists</li>
26
- <li>Or other elements</li>
27
- </ul>
28
- </HelpModal>
29
- </ToolbarButton>
30
- <ToolbarButton
31
- icon="radius"
32
- label="Draw a circle"
33
- helpText="Draw a circle using this tool"
34
- />
35
- <ToolbarDivider />
36
- <ToolbarButton
37
- icon="zoomin"
38
- label="Zoom in"
39
- />
40
- <ToolbarButton icon="zoomout" label="Zoom out" />
41
- <ToolControls>
42
- <ToolControl id="polygon">
43
- <p>Text to display when polygon tool is selected, or even an input</p>
44
- </ToolControl>
45
- </Toolbar>
46
-
47
-
48
- // Second toolbar
49
- <Toolbar>
50
- <ToolbarButton id="upload" icon="upload"/>
51
- <ToolbarButton id="download" icon="download"/>
52
- </Toolbar>
53
- </ToolbarsContainer>
54
- ```
55
-
56
- ## Sticky buttons
57
-
58
- ```html
59
- <ToolbarsContainer>
60
- <Toolbar>
61
- <ToolbarButton id="move" icon="move" label="Move and Pan" sticky />
62
- <ToolbarButton id="polygon" icon="polygon" label="Draw a polygon" sticky />
63
- <ToolbarButton id="circle" icon="radius" label="Draw a circle" sticky />
64
- </Toolbar>
65
- </ToolbarsContainer>
66
- ```
67
-
68
- ## Transient buttons
69
-
70
- ```html
71
- <ToolbarsContainer>
72
- <Toolbar>
73
- <ToolbarButton
74
- id="zoomin"
75
- icon="zoomin"
76
- label="Zoom in"
77
- transient="{true}"
78
- selected="{false}"
79
- />
80
- <ToolbarButton id="zoomout" icon="zoomout" label="zoom out" transient />
81
- </Toolbar>
82
- </ToolbarsContainer>
83
- ```
84
-
85
- ## No help modal
86
-
87
- ```html
88
- <ToolbarsContainer>
89
- <Toolbar>
90
- <ToolbarButton
91
- id="zoomin"
92
- icon="zoomin"
93
- label="Zoom in"
94
- transient="{true}"
95
- selected="{false}"
96
- disableHelp="{true}"
97
- />
98
- <ToolbarButton id="zoomout" icon="zoomout" label="zoom out" disableHelp="{true}" transient />
99
- </Toolbar>
100
- </ToolbarsContainer>
101
- ```
1
+ <span class="ons-warning">This component is experimental</span>
2
+
3
+ A toolbar component. Use `ToolbarsContainer` even if using one toolbar as it contains a store for all the IDs and the activeID.
4
+
5
+ There's a slot on ToolbarButton if you want to put in custom help text otherwise, there's the prop `helpText`.
6
+
7
+ Each `ToolControl` will display content underneath the row of buttons. The `id` needs to match the `id` of the button.
8
+
9
+ Use the prop `hasAriaControls` on a button to link the controls to the button.
10
+
11
+ <!-- prettier-ignore -->
12
+ ```html
13
+ <script>
14
+ import { ToolbarsContainer,Toolbar,ToolbarButton, ToolbarDivider,ToolControls,ToolControl, HelpModal } from "@onsvisual/svelte-components";
15
+ </script>
16
+
17
+ <ToolbarsContainer>
18
+
19
+ <Toolbar orientation="horizontal">
20
+ <ToolbarButton icon="polygon" label="Draw a polygon" helpText="Draw a polygon on the map" hasAriaControls>
21
+ <HelpModal>
22
+ <h3>Detailed Help</h3>
23
+ <p>More complex help text or even HTML content</p>
24
+ <ul>
25
+ <li>With lists</li>
26
+ <li>Or other elements</li>
27
+ </ul>
28
+ </HelpModal>
29
+ </ToolbarButton>
30
+ <ToolbarButton
31
+ icon="radius"
32
+ label="Draw a circle"
33
+ helpText="Draw a circle using this tool"
34
+ />
35
+ <ToolbarDivider />
36
+ <ToolbarButton
37
+ icon="zoomin"
38
+ label="Zoom in"
39
+ />
40
+ <ToolbarButton icon="zoomout" label="Zoom out" />
41
+ <ToolControls>
42
+ <ToolControl id="polygon">
43
+ <p>Text to display when polygon tool is selected, or even an input</p>
44
+ </ToolControl>
45
+ </Toolbar>
46
+
47
+
48
+ // Second toolbar
49
+ <Toolbar>
50
+ <ToolbarButton id="upload" icon="upload"/>
51
+ <ToolbarButton id="download" icon="download"/>
52
+ </Toolbar>
53
+ </ToolbarsContainer>
54
+ ```
55
+
56
+ ## Sticky buttons
57
+
58
+ ```html
59
+ <ToolbarsContainer>
60
+ <Toolbar>
61
+ <ToolbarButton id="move" icon="move" label="Move and Pan" sticky />
62
+ <ToolbarButton id="polygon" icon="polygon" label="Draw a polygon" sticky />
63
+ <ToolbarButton id="circle" icon="radius" label="Draw a circle" sticky />
64
+ </Toolbar>
65
+ </ToolbarsContainer>
66
+ ```
67
+
68
+ ## Transient buttons
69
+
70
+ ```html
71
+ <ToolbarsContainer>
72
+ <Toolbar>
73
+ <ToolbarButton
74
+ id="zoomin"
75
+ icon="zoomin"
76
+ label="Zoom in"
77
+ transient="{true}"
78
+ selected="{false}"
79
+ />
80
+ <ToolbarButton id="zoomout" icon="zoomout" label="zoom out" transient />
81
+ </Toolbar>
82
+ </ToolbarsContainer>
83
+ ```
84
+
85
+ ## No help modal
86
+
87
+ ```html
88
+ <ToolbarsContainer>
89
+ <Toolbar>
90
+ <ToolbarButton
91
+ id="zoomin"
92
+ icon="zoomin"
93
+ label="Zoom in"
94
+ transient="{true}"
95
+ selected="{false}"
96
+ disableHelp="{true}"
97
+ />
98
+ <ToolbarButton id="zoomout" icon="zoomout" label="zoom out" disableHelp="{true}" transient />
99
+ </Toolbar>
100
+ </ToolbarsContainer>
101
+ ```
package/dist/intro.mdx CHANGED
@@ -1,67 +1,67 @@
1
- import { Meta } from "@storybook/addon-docs/blocks";
2
-
3
- <Meta title="Introduction" />
4
-
5
- # @onsvisual/svelte-components
6
-
7
- <p>
8
- <a href="https://www.npmjs.com/package/@onsvisual/svelte-components">
9
- <img
10
- src="https://badge.fury.io/js/@onsvisual%2Fsvelte-components.svg"
11
- alt="npm version"
12
- style={{ display: "inline-block", margin: "0 5px 0 0" }}
13
- />
14
- </a>
15
- <a href="https://github.com/onsvisual/svelte-components">
16
- <img
17
- src="https://badgen.net/badge/icon/GitHub?icon=github&label"
18
- alt="GitHub"
19
- style={{ display: "inline-block", margin: "0 5px 0 0" }}
20
- />
21
- </a>
22
- </p>
23
-
24
- A library of ONS-branded components for any Svelte or SvelteKit project.
25
-
26
- The components and styles in this library are built on the HTML and CSS of the [ONS Design System](https://service-manual.ons.gov.uk/design-system/), but with a number of tweaks and additions to make them suitable for a range of interactive data visualisation and data journalism projects.
27
-
28
- ## Installing the components
29
-
30
- There are two ways to start a new project using these components.
31
-
32
- ### 1. Use a ready-made template
33
-
34
- When you start a project with one of the following templates, @onsvisual/svelte-components will already be installed:
35
-
36
- - [sveltekit-starter](https://github.com/ONSvisual/sveltekit-starter)
37
- - [robo-article](https://github.com/ONSvisual/robo-article)
38
- - [robo-embed](https://github.com/ONSvisual/robo-embed)
39
-
40
- ### 2. Start a new Svelte Kit project from scratch
41
-
42
- If you want to start from scratch, you can set up a [new Svelte Kit project](https://kit.svelte.dev/docs/creating-a-project), then run the following command.
43
-
44
- ```bash
45
- npm install @onsvisual/svelte-components --save-dev
46
- ```
47
-
48
- ## Using the components
49
-
50
- When using the components, you need to import both the desired component and the global CSS styles. In a SvelteKit project it is best to import the CSS in the top-level **+layout.svelte** file in your **src/routes** folder, which will apply it to all pages/components in the project.
51
-
52
- {/* prettier-ignore */}
53
- ```html
54
- <!-- +layout.svelte -->
55
- <script>
56
- import "@onsvisual/svelte-components/css/main.css";
57
- </script>
58
-
59
- <slot/>
60
-
61
- <!-- +page.svelte / Component.svelte -->
62
- <script>
63
- import { Section } from "@onsvisual/svelte-components";
64
- </script>
65
-
66
- <Section title="Hello world!">I am using an ONS Svelte component.</Section>
1
+ import { Meta } from "@storybook/addon-docs/blocks";
2
+
3
+ <Meta title="Introduction" />
4
+
5
+ # @onsvisual/svelte-components
6
+
7
+ <p>
8
+ <a href="https://www.npmjs.com/package/@onsvisual/svelte-components">
9
+ <img
10
+ src="https://badge.fury.io/js/@onsvisual%2Fsvelte-components.svg"
11
+ alt="npm version"
12
+ style={{ display: "inline-block", margin: "0 5px 0 0" }}
13
+ />
14
+ </a>
15
+ <a href="https://github.com/onsvisual/svelte-components">
16
+ <img
17
+ src="https://badgen.net/badge/icon/GitHub?icon=github&label"
18
+ alt="GitHub"
19
+ style={{ display: "inline-block", margin: "0 5px 0 0" }}
20
+ />
21
+ </a>
22
+ </p>
23
+
24
+ A library of ONS-branded components for any Svelte or SvelteKit project.
25
+
26
+ The components and styles in this library are built on the HTML and CSS of the [ONS Design System](https://service-manual.ons.gov.uk/design-system/), but with a number of tweaks and additions to make them suitable for a range of interactive data visualisation and data journalism projects.
27
+
28
+ ## Installing the components
29
+
30
+ There are two ways to start a new project using these components.
31
+
32
+ ### 1. Use a ready-made template
33
+
34
+ When you start a project with one of the following templates, @onsvisual/svelte-components will already be installed:
35
+
36
+ - [sveltekit-starter](https://github.com/ONSvisual/sveltekit-starter)
37
+ - [robo-article](https://github.com/ONSvisual/robo-article)
38
+ - [robo-embed](https://github.com/ONSvisual/robo-embed)
39
+
40
+ ### 2. Start a new Svelte Kit project from scratch
41
+
42
+ If you want to start from scratch, you can set up a [new Svelte Kit project](https://kit.svelte.dev/docs/creating-a-project), then run the following command.
43
+
44
+ ```bash
45
+ npm install @onsvisual/svelte-components --save-dev
46
+ ```
47
+
48
+ ## Using the components
49
+
50
+ When using the components, you need to import both the desired component and the global CSS styles. In a SvelteKit project it is best to import the CSS in the top-level **+layout.svelte** file in your **src/routes** folder, which will apply it to all pages/components in the project.
51
+
52
+ {/* prettier-ignore */}
53
+ ```html
54
+ <!-- +layout.svelte -->
55
+ <script>
56
+ import "@onsvisual/svelte-components/css/main.css";
57
+ </script>
58
+
59
+ <slot/>
60
+
61
+ <!-- +page.svelte / Component.svelte -->
62
+ <script>
63
+ import { Section } from "@onsvisual/svelte-components";
64
+ </script>
65
+
66
+ <Section title="Hello world!">I am using an ONS Svelte component.</Section>
67
67
  ```
@@ -1,14 +1,14 @@
1
- export default [
2
- { id: "E12000001", label: "North East", group: "England" },
3
- { id: "E12000002", label: "North West", group: "England" },
4
- { id: "E12000003", label: "Yorkshire and The Humber", group: "England" },
5
- { id: "E12000004", label: "East Midlands", group: "England" },
6
- { id: "E12000005", label: "West Midlands", group: "England" },
7
- { id: "E12000006", label: "East of England", group: "England" },
8
- { id: "E12000007", label: "London", group: "England" },
9
- { id: "E12000008", label: "South East", group: "England" },
10
- { id: "E12000009", label: "South West", group: "England" },
11
- { id: "N92000002", label: "Northern Ireland", group: "Northern Ireland" },
12
- { id: "S92000003", label: "Scotland", group: "Scotland" },
13
- { id: "W92000004", label: "Wales", group: "Wales" }
14
- ];
1
+ export default [
2
+ { id: "E12000001", label: "North East", group: "England" },
3
+ { id: "E12000002", label: "North West", group: "England" },
4
+ { id: "E12000003", label: "Yorkshire and The Humber", group: "England" },
5
+ { id: "E12000004", label: "East Midlands", group: "England" },
6
+ { id: "E12000005", label: "West Midlands", group: "England" },
7
+ { id: "E12000006", label: "East of England", group: "England" },
8
+ { id: "E12000007", label: "London", group: "England" },
9
+ { id: "E12000008", label: "South East", group: "England" },
10
+ { id: "E12000009", label: "South West", group: "England" },
11
+ { id: "N92000002", label: "Northern Ireland", group: "Northern Ireland" },
12
+ { id: "S92000003", label: "Scotland", group: "Scotland" },
13
+ { id: "W92000004", label: "Wales", group: "Wales" }
14
+ ];