@onsvisual/svelte-components 1.0.44 → 1.0.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/README.md +24 -24
  2. package/dist/css/main.css +513 -2
  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 +101 -93
  38. package/dist/decorators/Icon/Icon.svelte.d.ts +2 -2
  39. package/dist/decorators/Icon/docs/component.md +10 -10
  40. package/dist/decorators/Indent/Indent.stories.svelte +22 -22
  41. package/dist/decorators/Indent/Indent.svelte +3 -3
  42. package/dist/decorators/Indent/docs/component.md +10 -10
  43. package/dist/index.js +86 -86
  44. package/dist/inputs/Button/Button.stories.svelte +70 -70
  45. package/dist/inputs/Button/Button.svelte +152 -152
  46. package/dist/inputs/Button/Button.svelte.d.ts +2 -2
  47. package/dist/inputs/Button/docs/component.md +17 -17
  48. package/dist/inputs/ButtonGroup/ButtonGroup.stories.svelte +40 -40
  49. package/dist/inputs/ButtonGroup/ButtonGroup.svelte +57 -57
  50. package/dist/inputs/ButtonGroup/ButtonGroupItem.svelte +101 -101
  51. package/dist/inputs/ButtonGroup/docs/component.md +23 -23
  52. package/dist/inputs/Checkbox/Checkbox.stories.svelte +34 -34
  53. package/dist/inputs/Checkbox/Checkbox.svelte +180 -180
  54. package/dist/inputs/Checkbox/docs/component.md +14 -14
  55. package/dist/inputs/Checkboxes/Checkboxes.stories.svelte +34 -34
  56. package/dist/inputs/Checkboxes/Checkboxes.svelte +62 -62
  57. package/dist/inputs/Checkboxes/docs/component.md +20 -20
  58. package/dist/inputs/Checkboxes/docs/example.md +16 -16
  59. package/dist/inputs/Dropdown/Dropdown.stories.svelte +54 -54
  60. package/dist/inputs/Dropdown/Dropdown.svelte +66 -66
  61. package/dist/inputs/Dropdown/docs/component.md +22 -22
  62. package/dist/inputs/ErrorPanel/ErrorPanel.stories.svelte +25 -25
  63. package/dist/inputs/ErrorPanel/ErrorPanel.svelte +24 -24
  64. package/dist/inputs/ErrorPanel/docs/component.md +14 -14
  65. package/dist/inputs/ErrorSummary/ErrorSummary.stories.svelte +34 -34
  66. package/dist/inputs/ErrorSummary/ErrorSummary.svelte +47 -47
  67. package/dist/inputs/ErrorSummary/docs/component.md +17 -17
  68. package/dist/inputs/ErrorSummary/docs/example.md +12 -12
  69. package/dist/inputs/Input/Input.stories.svelte +73 -73
  70. package/dist/inputs/Input/Input.svelte +151 -151
  71. package/dist/inputs/Input/docs/component.md +16 -16
  72. package/dist/inputs/Radios/Radio.svelte +90 -90
  73. package/dist/inputs/Radios/Radios.stories.svelte +51 -51
  74. package/dist/inputs/Radios/Radios.svelte +62 -62
  75. package/dist/inputs/Radios/docs/component.md +24 -24
  76. package/dist/inputs/Radios/docs/example.md +21 -21
  77. package/dist/inputs/Select/Select.stories.svelte +63 -63
  78. package/dist/inputs/Select/Select.svelte +326 -326
  79. package/dist/inputs/Select/docs/component.md +27 -27
  80. package/dist/inputs/Textarea/Textarea.stories.svelte +40 -40
  81. package/dist/inputs/Textarea/Textarea.svelte +113 -113
  82. package/dist/inputs/Textarea/docs/component.md +16 -16
  83. package/dist/inputs/Toolbar/HelpModal.svelte +234 -234
  84. package/dist/inputs/Toolbar/ToolControl.svelte +23 -23
  85. package/dist/inputs/Toolbar/ToolControls.svelte +9 -9
  86. package/dist/inputs/Toolbar/Toolbar.stories.svelte +148 -148
  87. package/dist/inputs/Toolbar/Toolbar.svelte +70 -70
  88. package/dist/inputs/Toolbar/ToolbarButton.svelte +184 -184
  89. package/dist/inputs/Toolbar/ToolbarDivider.svelte +29 -29
  90. package/dist/inputs/Toolbar/ToolbarIcon.svelte +106 -106
  91. package/dist/inputs/Toolbar/ToolbarsContainer.svelte +69 -69
  92. package/dist/inputs/Toolbar/docs/component.md +101 -101
  93. package/dist/intro.mdx +66 -66
  94. package/dist/js/menuOptions.js +14 -14
  95. package/dist/js/utils.js +133 -133
  96. package/dist/js/withParams.js +43 -43
  97. package/dist/layout/Accordion/Accordion.stories.svelte +30 -30
  98. package/dist/layout/Accordion/Accordion.svelte +55 -55
  99. package/dist/layout/Accordion/AccordionItem.svelte +51 -51
  100. package/dist/layout/Accordion/accordion.js +64 -64
  101. package/dist/layout/Accordion/details.js +83 -83
  102. package/dist/layout/Accordion/docs/component.md +19 -19
  103. package/dist/layout/AnalyticsBanner/AnalyticsBanner.stories.svelte +16 -16
  104. package/dist/layout/AnalyticsBanner/AnalyticsBanner.svelte +314 -314
  105. package/dist/layout/AnalyticsBanner/docs/component.md +44 -44
  106. package/dist/layout/BackLink/BackLink.stories.svelte +16 -16
  107. package/dist/layout/BackLink/BackLink.svelte +30 -30
  108. package/dist/layout/BackLink/docs/component.md +12 -12
  109. package/dist/layout/Breadcrumb/Breadcrumb.stories.svelte +31 -31
  110. package/dist/layout/Breadcrumb/Breadcrumb.svelte +69 -69
  111. package/dist/layout/Breadcrumb/docs/component.md +15 -15
  112. package/dist/layout/Card/Card.stories.svelte +39 -39
  113. package/dist/layout/Card/Card.svelte +127 -127
  114. package/dist/layout/Card/docs/component.md +14 -14
  115. package/dist/layout/Card/docs/eg-images.md +27 -27
  116. package/dist/layout/Card/docs/eg-links.md +12 -12
  117. package/dist/layout/Card/docs/eg-spans.md +12 -12
  118. package/dist/layout/Contents/Contents.stories.svelte +27 -27
  119. package/dist/layout/Contents/Contents.svelte +51 -51
  120. package/dist/layout/Contents/docs/component.md +18 -18
  121. package/dist/layout/DescriptionList/DescriptionList.stories.svelte +22 -22
  122. package/dist/layout/DescriptionList/DescriptionList.svelte +59 -59
  123. package/dist/layout/DescriptionList/docs/component.md +18 -18
  124. package/dist/layout/Details/Details.stories.svelte +32 -32
  125. package/dist/layout/Details/Details.svelte +75 -75
  126. package/dist/layout/Details/docs/component.md +14 -14
  127. package/dist/layout/DocumentList/Document.svelte +103 -103
  128. package/dist/layout/DocumentList/DocumentList.stories.svelte +88 -88
  129. package/dist/layout/DocumentList/DocumentList.svelte +33 -33
  130. package/dist/layout/DocumentList/docs/component.md +28 -28
  131. package/dist/layout/DocumentList/docs/example.md +23 -23
  132. package/dist/layout/ErrorPage/ErrorPage.stories.svelte +18 -18
  133. package/dist/layout/ErrorPage/ErrorPage.svelte +48 -48
  134. package/dist/layout/ErrorPage/docs/component.md +13 -13
  135. package/dist/layout/Footer/Footer.stories.svelte +24 -24
  136. package/dist/layout/Footer/Footer.svelte +366 -366
  137. package/dist/layout/Footer/docs/component.md +10 -10
  138. package/dist/layout/Grid/Grid.stories.svelte +50 -50
  139. package/dist/layout/Grid/Grid.svelte +117 -117
  140. package/dist/layout/Grid/GridCell.svelte +65 -65
  141. package/dist/layout/Grid/docs/component.md +14 -14
  142. package/dist/layout/Header/Header.stories.svelte +26 -26
  143. package/dist/layout/Header/Header.svelte +875 -875
  144. package/dist/layout/Header/docs/component.md +11 -11
  145. package/dist/layout/Hero/Hero.stories.svelte +79 -79
  146. package/dist/layout/Hero/Hero.svelte +364 -364
  147. package/dist/layout/Hero/docs/component.md +14 -14
  148. package/dist/layout/Highlight/Highlight.stories.svelte +29 -29
  149. package/dist/layout/Highlight/Highlight.svelte +77 -77
  150. package/dist/layout/Highlight/docs/component.md +12 -12
  151. package/dist/layout/Image/Image.stories.svelte +23 -23
  152. package/dist/layout/Image/Image.svelte +29 -29
  153. package/dist/layout/Image/docs/component.md +15 -15
  154. package/dist/layout/List/Li.svelte +3 -3
  155. package/dist/layout/List/List.stories.svelte +40 -40
  156. package/dist/layout/List/List.svelte +46 -46
  157. package/dist/layout/List/docs/component.md +14 -14
  158. package/dist/layout/List/docs/example.md +12 -12
  159. package/dist/layout/NavSections/NavSection.svelte +90 -90
  160. package/dist/layout/NavSections/NavSections.stories.svelte +51 -51
  161. package/dist/layout/NavSections/NavSections.svelte +160 -160
  162. package/dist/layout/NavSections/docs/component.md +25 -25
  163. package/dist/layout/Notice/Notice.stories.svelte +61 -61
  164. package/dist/layout/Notice/Notice.svelte +56 -56
  165. package/dist/layout/Notice/docs/component.md +14 -14
  166. package/dist/layout/PhaseBanner/PhaseBanner.stories.svelte +24 -24
  167. package/dist/layout/PhaseBanner/PhaseBanner.svelte +66 -66
  168. package/dist/layout/PhaseBanner/docs/component.md +14 -14
  169. package/dist/layout/RelatedContent/RelatedContent.stories.svelte +36 -36
  170. package/dist/layout/RelatedContent/RelatedContent.svelte +54 -54
  171. package/dist/layout/RelatedContent/docs/component.md +16 -16
  172. package/dist/layout/Scroller/Scroller.stories.svelte +60 -60
  173. package/dist/layout/Scroller/Scroller.svelte +368 -368
  174. package/dist/layout/Scroller/ScrollerSection.svelte +70 -70
  175. package/dist/layout/Scroller/docs/component.md +39 -39
  176. package/dist/layout/Section/Section.stories.svelte +33 -33
  177. package/dist/layout/Section/Section.svelte +60 -60
  178. package/dist/layout/Section/docs/component.md +12 -12
  179. package/dist/layout/ShareButtons/ShareButtons.stories.svelte +20 -20
  180. package/dist/layout/ShareButtons/ShareButtons.svelte +131 -131
  181. package/dist/layout/ShareButtons/docs/component.md +14 -14
  182. package/dist/layout/SkipLink/SkipLink.stories.svelte +16 -16
  183. package/dist/layout/SkipLink/SkipLink.svelte +9 -9
  184. package/dist/layout/SkipLink/docs/component.md +11 -11
  185. package/dist/layout/Summary/Summary.stories.svelte +21 -21
  186. package/dist/layout/Summary/Summary.svelte +60 -60
  187. package/dist/layout/Summary/docs/component.md +17 -17
  188. package/dist/layout/Tabs/Tab.svelte +53 -53
  189. package/dist/layout/Tabs/Tabs.stories.svelte +29 -29
  190. package/dist/layout/Tabs/Tabs.svelte +89 -89
  191. package/dist/layout/Tabs/docs/component.md +16 -16
  192. package/dist/layout/Tabs/tabs.js +302 -302
  193. package/dist/layout/Timeline/Timeline.stories.svelte +44 -44
  194. package/dist/layout/Timeline/Timeline.svelte +17 -17
  195. package/dist/layout/Timeline/TimelineItem.svelte +14 -14
  196. package/dist/layout/Timeline/docs/component.md +27 -27
  197. package/dist/layout/Timeline/docs/example.md +20 -20
  198. package/dist/templates/EmbedArticle/EmbedArticle.stories.svelte +72 -72
  199. package/dist/templates/EmbedArticle/docs/component.md +56 -56
  200. package/dist/templates/FeatureArticle/FeatureArticle.stories.svelte +150 -150
  201. package/dist/templates/FeatureArticle/docs/component.md +125 -125
  202. package/dist/templates/StandardArticle/StandardArticle.stories.svelte +86 -86
  203. package/dist/templates/StandardArticle/docs/component.md +76 -76
  204. package/dist/templates/intro.mdx +18 -18
  205. package/dist/wrappers/Container/Container.stories.svelte +38 -38
  206. package/dist/wrappers/Container/Container.svelte +77 -77
  207. package/dist/wrappers/Container/docs/component.md +12 -12
  208. package/dist/wrappers/Embed/Embed.stories.svelte +24 -24
  209. package/dist/wrappers/Embed/Embed.svelte +44 -44
  210. package/dist/wrappers/Embed/docs/component.md +15 -15
  211. package/dist/wrappers/LazyLoad/LazyLoad.stories.svelte +37 -37
  212. package/dist/wrappers/LazyLoad/LazyLoad.svelte +50 -50
  213. package/dist/wrappers/LazyLoad/docs/component.md +29 -29
  214. package/dist/wrappers/Main/Main.stories.svelte +24 -24
  215. package/dist/wrappers/Main/Main.svelte +11 -11
  216. package/dist/wrappers/Main/docs/component.md +16 -16
  217. package/dist/wrappers/Observe/Observe.stories.svelte +29 -29
  218. package/dist/wrappers/Observe/Observe.svelte +40 -40
  219. package/dist/wrappers/Observe/docs/component.md +22 -22
  220. package/dist/wrappers/Theme/Theme.stories.svelte +70 -70
  221. package/dist/wrappers/Theme/Theme.svelte +76 -76
  222. package/dist/wrappers/Theme/docs/component.md +10 -10
  223. package/dist/wrappers/Theme/themes.js +70 -70
  224. package/package.json +88 -88
@@ -1,22 +1,22 @@
1
- A wrapper component that uses IntersectionObserver to monitor whether the elements in contains are within the current viewport.
2
-
3
- This component can be useful for triggering actions such as lazy loading of data/images or scroll-driven interactions.
4
-
5
- This component has **enter** and **exit** events, triggered when it enters or leaves the viewport. It also has a **visible** binding which has a value of **true** when it is within the viewport.
6
-
7
- <!-- prettier-ignore -->
8
- ```html
9
- <script>
10
- import { Observe } from "@onsvisual/svelte-components";
11
-
12
- const colors = ["yellow", "green", "blue", "purple", "red", "orange"];
13
- </script>
14
-
15
- {#each colors as color}
16
- <Observe
17
- on:enter={() => console.log(`${color} entered`)}
18
- on:exit={() => console.log(`${color} exited`)}>
19
- <div class="section" style:background={color} style:height="400px"/>
20
- </Observe>
21
- {/each}
22
- ```
1
+ A wrapper component that uses IntersectionObserver to monitor whether the elements in contains are within the current viewport.
2
+
3
+ This component can be useful for triggering actions such as lazy loading of data/images or scroll-driven interactions.
4
+
5
+ This component has **enter** and **exit** events, triggered when it enters or leaves the viewport. It also has a **visible** binding which has a value of **true** when it is within the viewport.
6
+
7
+ <!-- prettier-ignore -->
8
+ ```html
9
+ <script>
10
+ import { Observe } from "@onsvisual/svelte-components";
11
+
12
+ const colors = ["yellow", "green", "blue", "purple", "red", "orange"];
13
+ </script>
14
+
15
+ {#each colors as color}
16
+ <Observe
17
+ on:enter={() => console.log(`${color} entered`)}
18
+ on:exit={() => console.log(`${color} exited`)}>
19
+ <div class="section" style:background={color} style:height="400px"/>
20
+ </Observe>
21
+ {/each}
22
+ ```
@@ -1,70 +1,70 @@
1
- <script module>
2
- import { defineMeta } from "@storybook/addon-svelte-csf";
3
- import { withComponentDocs } from "../../js/withParams.js";
4
- import Theme from "./Theme.svelte";
5
- import componentDocs from "./docs/component.md?raw";
6
-
7
- const { Story } = defineMeta({
8
- title: "Wrappers/Theme",
9
- component: Theme,
10
- tags: ["autodocs"],
11
- argTypes: {
12
- theme: {
13
- control: { type: "select" }
14
- }
15
- },
16
- parameters: withComponentDocs(componentDocs)
17
- });
18
- </script>
19
-
20
- {#snippet template(args)}
21
- <Theme {...args}>
22
- <div style:padding="12px">
23
- <h2>Title</h2>
24
- <p>Text with a <a href="#0">hyperlink</a>.</p>
25
- </div>
26
- </Theme>
27
- {/snippet}
28
-
29
- <Story name="Default light theme" args={{}} {template} />
30
-
31
- <Story
32
- name="Dark theme"
33
- args={{
34
- theme: "dark"
35
- }}
36
- {template}
37
- />
38
-
39
- <Story
40
- name="Pale blue theme"
41
- args={{
42
- theme: "paleblue"
43
- }}
44
- {template}
45
- />
46
-
47
- <Story
48
- name="Blue theme"
49
- args={{
50
- theme: "blue"
51
- }}
52
- {template}
53
- />
54
-
55
- <Story
56
- name="Navy blue theme"
57
- args={{
58
- theme: "navyblue"
59
- }}
60
- {template}
61
- />
62
-
63
- <Story
64
- name="Dark with background override"
65
- args={{
66
- theme: "dark",
67
- background: "var(--ons-color-aqua-teal)"
68
- }}
69
- {template}
70
- />
1
+ <script module>
2
+ import { defineMeta } from "@storybook/addon-svelte-csf";
3
+ import { withComponentDocs } from "../../js/withParams.js";
4
+ import Theme from "./Theme.svelte";
5
+ import componentDocs from "./docs/component.md?raw";
6
+
7
+ const { Story } = defineMeta({
8
+ title: "Wrappers/Theme",
9
+ component: Theme,
10
+ tags: ["autodocs"],
11
+ argTypes: {
12
+ theme: {
13
+ control: { type: "select" }
14
+ }
15
+ },
16
+ parameters: withComponentDocs(componentDocs)
17
+ });
18
+ </script>
19
+
20
+ {#snippet template(args)}
21
+ <Theme {...args}>
22
+ <div style:padding="12px">
23
+ <h2>Title</h2>
24
+ <p>Text with a <a href="#0">hyperlink</a>.</p>
25
+ </div>
26
+ </Theme>
27
+ {/snippet}
28
+
29
+ <Story name="Default light theme" args={{}} {template} />
30
+
31
+ <Story
32
+ name="Dark theme"
33
+ args={{
34
+ theme: "dark"
35
+ }}
36
+ {template}
37
+ />
38
+
39
+ <Story
40
+ name="Pale blue theme"
41
+ args={{
42
+ theme: "paleblue"
43
+ }}
44
+ {template}
45
+ />
46
+
47
+ <Story
48
+ name="Blue theme"
49
+ args={{
50
+ theme: "blue"
51
+ }}
52
+ {template}
53
+ />
54
+
55
+ <Story
56
+ name="Navy blue theme"
57
+ args={{
58
+ theme: "navyblue"
59
+ }}
60
+ {template}
61
+ />
62
+
63
+ <Story
64
+ name="Dark with background override"
65
+ args={{
66
+ theme: "dark",
67
+ background: "var(--ons-color-aqua-teal)"
68
+ }}
69
+ {template}
70
+ />
@@ -1,76 +1,76 @@
1
- <script>
2
- import themes from "./themes.js";
3
-
4
- /**
5
- * Sets a base theme ("light", "dark" or null for no theme)
6
- * @type {"light"|"dark"|"paleblue"|"blue"|"navyblue"|"grey"|null}
7
- */
8
- export let theme = null;
9
- /**
10
- * Define additional props to override the base theme
11
- * @type {object}
12
- */
13
- export let overrides = {};
14
- /**
15
- * Overrides the base theme background (accepts any valid CSS background value)
16
- * @type {string|null}
17
- */
18
- export let background = null;
19
- /**
20
- * Sets the theme at html body level (only use this at the top level)
21
- * @type {boolean}
22
- */
23
- export let global = false;
24
- /**
25
- * Allows client imported CSS for embeddable content
26
- * @type {boolean}
27
- */
28
- export let allowClientOverrides = false;
29
- /**
30
- * Optional: Set an additional CSS class for the theme container
31
- * @type {string|null}
32
- */
33
- export let cls = null;
34
-
35
- function makeStyle(theme, overrides) {
36
- if (theme) {
37
- const _theme = { ...themes[theme], ...overrides };
38
- return Object.keys(_theme)
39
- .map(
40
- (key) => `${key}:${_theme[key].startsWith("--") ? `var(${_theme[key]})` : _theme[key]};`
41
- )
42
- .join("");
43
- }
44
- return "";
45
- }
46
- $: style = makeStyle(theme, overrides);
47
- </script>
48
-
49
- <svelte:head>
50
- {#if global && (style || background)}
51
- {@html "<st" +
52
- `yle>:root{${style}background:${background || "var(--ons-color-page-light)"};color:var(--ons-color-text);</st` +
53
- "yle>"}
54
- {/if}
55
- </svelte:head>
56
-
57
- {#if global || !(theme || background)}
58
- <slot />
59
- {:else}
60
- <div class="ons-svelte-theme-wrapper {cls}" {style} style:background>
61
- {#if allowClientOverrides}
62
- <div class="client-css-override" style:display="contents">
63
- <slot />
64
- </div>
65
- {:else}
66
- <slot />
67
- {/if}
68
- </div>
69
- {/if}
70
-
71
- <style>
72
- .ons-svelte-theme-wrapper {
73
- background: var(--ons-color-page-light);
74
- color: var(--ons-color-text);
75
- }
76
- </style>
1
+ <script>
2
+ import themes from "./themes.js";
3
+
4
+ /**
5
+ * Sets a base theme ("light", "dark" or null for no theme)
6
+ * @type {"light"|"dark"|"paleblue"|"blue"|"navyblue"|"grey"|null}
7
+ */
8
+ export let theme = null;
9
+ /**
10
+ * Define additional props to override the base theme
11
+ * @type {object}
12
+ */
13
+ export let overrides = {};
14
+ /**
15
+ * Overrides the base theme background (accepts any valid CSS background value)
16
+ * @type {string|null}
17
+ */
18
+ export let background = null;
19
+ /**
20
+ * Sets the theme at html body level (only use this at the top level)
21
+ * @type {boolean}
22
+ */
23
+ export let global = false;
24
+ /**
25
+ * Allows client imported CSS for embeddable content
26
+ * @type {boolean}
27
+ */
28
+ export let allowClientOverrides = false;
29
+ /**
30
+ * Optional: Set an additional CSS class for the theme container
31
+ * @type {string|null}
32
+ */
33
+ export let cls = null;
34
+
35
+ function makeStyle(theme, overrides) {
36
+ if (theme) {
37
+ const _theme = { ...themes[theme], ...overrides };
38
+ return Object.keys(_theme)
39
+ .map(
40
+ (key) => `${key}:${_theme[key].startsWith("--") ? `var(${_theme[key]})` : _theme[key]};`
41
+ )
42
+ .join("");
43
+ }
44
+ return "";
45
+ }
46
+ $: style = makeStyle(theme, overrides);
47
+ </script>
48
+
49
+ <svelte:head>
50
+ {#if global && (style || background)}
51
+ {@html "<st" +
52
+ `yle>:root{${style}background:${background || "var(--ons-color-page-light)"};color:var(--ons-color-text);</st` +
53
+ "yle>"}
54
+ {/if}
55
+ </svelte:head>
56
+
57
+ {#if global || !(theme || background)}
58
+ <slot />
59
+ {:else}
60
+ <div class="ons-svelte-theme-wrapper {cls}" {style} style:background>
61
+ {#if allowClientOverrides}
62
+ <div class="client-css-override" style:display="contents">
63
+ <slot />
64
+ </div>
65
+ {:else}
66
+ <slot />
67
+ {/if}
68
+ </div>
69
+ {/if}
70
+
71
+ <style>
72
+ .ons-svelte-theme-wrapper {
73
+ background: var(--ons-color-page-light);
74
+ color: var(--ons-color-text);
75
+ }
76
+ </style>
@@ -1,10 +1,10 @@
1
- A component that sets the colour scheme of its child components using CSS variables.
2
-
3
- <!-- prettier-ignore -->
4
- ```html
5
- <script>
6
- import { Theme } from "@onsvisual/svelte-components";
7
- </script>
8
-
9
- <Theme theme="{light|dark|paleblue|blue|navyblue|grey}"> {child_components} </Theme>
10
- ```
1
+ A component that sets the colour scheme of its child components using CSS variables.
2
+
3
+ <!-- prettier-ignore -->
4
+ ```html
5
+ <script>
6
+ import { Theme } from "@onsvisual/svelte-components";
7
+ </script>
8
+
9
+ <Theme theme="{light|dark|paleblue|blue|navyblue|grey}"> {child_components} </Theme>
10
+ ```
@@ -1,70 +1,70 @@
1
- const light = {
2
- // Text
3
- "--ons-color-text": "--ons-color-black",
4
- "--ons-color-text-light": "--ons-color-grey-75",
5
- "--ons-color-text-link": "--ons-color-ocean-blue",
6
- "--ons-color-text-link-hover": "--ons-color-night-blue",
7
- "--ons-color-text-link-active": "--ons-color-night-blue",
8
- "--ons-color-text-link-focus": "--ons-color-black",
9
- "--ons-color-text-inverse": "--ons-color-white",
10
- "--ons-color-text-inverse-link": "--ons-color-white",
11
- "--ons-color-text-inverse-link-hover": "--ons-color-grey-5",
12
- "--ons-color-text-banner-link": "--ons-color-grey-100",
13
- "--ons-color-text-banner-link-hover": "--ons-color-black",
14
- "--ons-color-text-metadata": "--ons-color-black",
15
-
16
- // Background
17
- "--ons-color-page-light": "--ons-color-white",
18
- "--ons-color-input-bg": "--ons-color-white",
19
- "--ons-color-hero-bg": "--ons-color-branded-tint",
20
- "--ons-color-hero-bg-dark": "--ons-color-branded",
21
- "--ons-color-banner-bg": "--ons-color-grey-5",
22
- "--ons-color-banner-bg-dark": "--ons-color-grey-15",
23
- "--ons-color-banner-browser-bg:": "--ons-color-black",
24
-
25
- // Other
26
- "--ons-color-focus": "--ons-color-sun-yellow",
27
- "--ons-color-focus-dark": "--ons-color-sun-yellow-dark",
28
- "--ons-color-highlight": "--ons-color-neon-yellow",
29
- "--ons-color-borders": "--ons-color-grey-35",
30
- "--ons-color-borders-indent": "--ons-color-grey-35",
31
- "--ons-color-borders-light": "--ons-color-grey-35"
32
- };
33
- const dark = {
34
- // Text
35
- "--ons-color-text": "--ons-color-white",
36
- "--ons-color-text-light": "--ons-color-grey-35",
37
- "--ons-color-text-link": "--ons-color-white",
38
- "--ons-color-text-link-hover": "--ons-color-grey-5",
39
- "--ons-color-text-link-active": "--ons-color-grey-5",
40
- "--ons-color-text-link-focus": "--ons-color-black",
41
- "--ons-color-text-inverse": "--ons-color-white",
42
- "--ons-color-text-inverse-link": "--ons-color-white",
43
- "--ons-color-text-inverse-link-hover": "--ons-color-grey-5",
44
- "--ons-color-text-banner-link": "--ons-color-grey-5",
45
- "--ons-color-text-banner-link-hover": "--ons-color-white",
46
- "--ons-color-text-metadata": "--ons-color-white",
47
-
48
- // Background
49
- "--ons-color-page-light": "--ons-color-black",
50
- "--ons-color-input-bg": "--ons-color-white",
51
- "--ons-color-hero-bg": "--ons-color-branded-tint",
52
- "--ons-color-hero-bg-dark": "--ons-color-branded",
53
- "--ons-color-banner-bg": "--ons-color-grey-100",
54
- "--ons-color-banner-bg-dark": "--ons-color-grey-75",
55
- "--ons-color-banner-browser-bg:": "--ons-color-white",
56
-
57
- // Other
58
- "--ons-color-focus": "--ons-color-sun-yellow",
59
- "--ons-color-focus-dark": "--ons-color-sun-yellow-dark",
60
- "--ons-color-highlight": "--ons-color-neon-yellow",
61
- "--ons-color-borders": "--ons-color-grey-75",
62
- "--ons-color-borders-indent": "--ons-color-grey-75",
63
- "--ons-color-borders-light": "--ons-color-grey-75"
64
- };
65
- const paleblue = { ...light, "--ons-color-page-light": "--ons-color-ocean-blue-tint" };
66
- const blue = { ...dark, "--ons-color-page-light": "--ons-color-ocean-blue" };
67
- const navyblue = { ...dark, "--ons-color-page-light": "--ons-color-night-blue" };
68
- const grey = { ...light, "--ons-color-page-light": "--ons-color-grey-5" };
69
-
70
- export default { light, dark, paleblue, blue, navyblue, grey };
1
+ const light = {
2
+ // Text
3
+ "--ons-color-text": "--ons-color-black",
4
+ "--ons-color-text-light": "--ons-color-grey-75",
5
+ "--ons-color-text-link": "--ons-color-ocean-blue",
6
+ "--ons-color-text-link-hover": "--ons-color-night-blue",
7
+ "--ons-color-text-link-active": "--ons-color-night-blue",
8
+ "--ons-color-text-link-focus": "--ons-color-black",
9
+ "--ons-color-text-inverse": "--ons-color-white",
10
+ "--ons-color-text-inverse-link": "--ons-color-white",
11
+ "--ons-color-text-inverse-link-hover": "--ons-color-grey-5",
12
+ "--ons-color-text-banner-link": "--ons-color-grey-100",
13
+ "--ons-color-text-banner-link-hover": "--ons-color-black",
14
+ "--ons-color-text-metadata": "--ons-color-black",
15
+
16
+ // Background
17
+ "--ons-color-page-light": "--ons-color-white",
18
+ "--ons-color-input-bg": "--ons-color-white",
19
+ "--ons-color-hero-bg": "--ons-color-branded-tint",
20
+ "--ons-color-hero-bg-dark": "--ons-color-branded",
21
+ "--ons-color-banner-bg": "--ons-color-grey-5",
22
+ "--ons-color-banner-bg-dark": "--ons-color-grey-15",
23
+ "--ons-color-banner-browser-bg:": "--ons-color-black",
24
+
25
+ // Other
26
+ "--ons-color-focus": "--ons-color-sun-yellow",
27
+ "--ons-color-focus-dark": "--ons-color-sun-yellow-dark",
28
+ "--ons-color-highlight": "--ons-color-neon-yellow",
29
+ "--ons-color-borders": "--ons-color-grey-35",
30
+ "--ons-color-borders-indent": "--ons-color-grey-35",
31
+ "--ons-color-borders-light": "--ons-color-grey-35"
32
+ };
33
+ const dark = {
34
+ // Text
35
+ "--ons-color-text": "--ons-color-white",
36
+ "--ons-color-text-light": "--ons-color-grey-35",
37
+ "--ons-color-text-link": "--ons-color-white",
38
+ "--ons-color-text-link-hover": "--ons-color-grey-5",
39
+ "--ons-color-text-link-active": "--ons-color-grey-5",
40
+ "--ons-color-text-link-focus": "--ons-color-black",
41
+ "--ons-color-text-inverse": "--ons-color-white",
42
+ "--ons-color-text-inverse-link": "--ons-color-white",
43
+ "--ons-color-text-inverse-link-hover": "--ons-color-grey-5",
44
+ "--ons-color-text-banner-link": "--ons-color-grey-5",
45
+ "--ons-color-text-banner-link-hover": "--ons-color-white",
46
+ "--ons-color-text-metadata": "--ons-color-white",
47
+
48
+ // Background
49
+ "--ons-color-page-light": "--ons-color-black",
50
+ "--ons-color-input-bg": "--ons-color-white",
51
+ "--ons-color-hero-bg": "--ons-color-branded-tint",
52
+ "--ons-color-hero-bg-dark": "--ons-color-branded",
53
+ "--ons-color-banner-bg": "--ons-color-grey-100",
54
+ "--ons-color-banner-bg-dark": "--ons-color-grey-75",
55
+ "--ons-color-banner-browser-bg:": "--ons-color-white",
56
+
57
+ // Other
58
+ "--ons-color-focus": "--ons-color-sun-yellow",
59
+ "--ons-color-focus-dark": "--ons-color-sun-yellow-dark",
60
+ "--ons-color-highlight": "--ons-color-neon-yellow",
61
+ "--ons-color-borders": "--ons-color-grey-75",
62
+ "--ons-color-borders-indent": "--ons-color-grey-75",
63
+ "--ons-color-borders-light": "--ons-color-grey-75"
64
+ };
65
+ const paleblue = { ...light, "--ons-color-page-light": "--ons-color-ocean-blue-tint" };
66
+ const blue = { ...dark, "--ons-color-page-light": "--ons-color-ocean-blue" };
67
+ const navyblue = { ...dark, "--ons-color-page-light": "--ons-color-night-blue" };
68
+ const grey = { ...light, "--ons-color-page-light": "--ons-color-grey-5" };
69
+
70
+ export default { light, dark, paleblue, blue, navyblue, grey };