@onsvisual/svelte-components 1.0.47 → 1.0.48

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 (222) hide show
  1. package/README.md +24 -24
  2. package/dist/css/main.css +2 -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 +101 -101
  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/docs/component.md +17 -17
  46. package/dist/inputs/ButtonGroup/ButtonGroup.stories.svelte +40 -40
  47. package/dist/inputs/ButtonGroup/ButtonGroup.svelte +57 -57
  48. package/dist/inputs/ButtonGroup/ButtonGroupItem.svelte +101 -101
  49. package/dist/inputs/ButtonGroup/docs/component.md +23 -23
  50. package/dist/inputs/Checkbox/Checkbox.stories.svelte +34 -34
  51. package/dist/inputs/Checkbox/Checkbox.svelte +180 -180
  52. package/dist/inputs/Checkbox/docs/component.md +14 -14
  53. package/dist/inputs/Checkboxes/Checkboxes.stories.svelte +34 -34
  54. package/dist/inputs/Checkboxes/Checkboxes.svelte +62 -62
  55. package/dist/inputs/Checkboxes/docs/component.md +20 -20
  56. package/dist/inputs/Checkboxes/docs/example.md +16 -16
  57. package/dist/inputs/Dropdown/Dropdown.stories.svelte +54 -54
  58. package/dist/inputs/Dropdown/Dropdown.svelte +66 -66
  59. package/dist/inputs/Dropdown/docs/component.md +22 -22
  60. package/dist/inputs/ErrorPanel/ErrorPanel.stories.svelte +25 -25
  61. package/dist/inputs/ErrorPanel/ErrorPanel.svelte +24 -24
  62. package/dist/inputs/ErrorPanel/docs/component.md +14 -14
  63. package/dist/inputs/ErrorSummary/ErrorSummary.stories.svelte +34 -34
  64. package/dist/inputs/ErrorSummary/ErrorSummary.svelte +47 -47
  65. package/dist/inputs/ErrorSummary/docs/component.md +17 -17
  66. package/dist/inputs/ErrorSummary/docs/example.md +12 -12
  67. package/dist/inputs/Input/Input.stories.svelte +73 -73
  68. package/dist/inputs/Input/Input.svelte +151 -151
  69. package/dist/inputs/Input/docs/component.md +16 -16
  70. package/dist/inputs/Radios/Radio.svelte +90 -90
  71. package/dist/inputs/Radios/Radios.stories.svelte +51 -51
  72. package/dist/inputs/Radios/Radios.svelte +62 -62
  73. package/dist/inputs/Radios/docs/component.md +24 -24
  74. package/dist/inputs/Radios/docs/example.md +21 -21
  75. package/dist/inputs/Select/Select.stories.svelte +63 -63
  76. package/dist/inputs/Select/Select.svelte +326 -326
  77. package/dist/inputs/Select/docs/component.md +27 -27
  78. package/dist/inputs/Textarea/Textarea.stories.svelte +40 -40
  79. package/dist/inputs/Textarea/Textarea.svelte +113 -113
  80. package/dist/inputs/Textarea/docs/component.md +16 -16
  81. package/dist/inputs/Toolbar/HelpModal.svelte +234 -234
  82. package/dist/inputs/Toolbar/ToolControl.svelte +23 -23
  83. package/dist/inputs/Toolbar/ToolControls.svelte +9 -9
  84. package/dist/inputs/Toolbar/Toolbar.stories.svelte +148 -148
  85. package/dist/inputs/Toolbar/Toolbar.svelte +70 -70
  86. package/dist/inputs/Toolbar/ToolbarButton.svelte +184 -184
  87. package/dist/inputs/Toolbar/ToolbarDivider.svelte +29 -29
  88. package/dist/inputs/Toolbar/ToolbarIcon.svelte +106 -106
  89. package/dist/inputs/Toolbar/ToolbarsContainer.svelte +69 -69
  90. package/dist/inputs/Toolbar/docs/component.md +101 -101
  91. package/dist/intro.mdx +66 -66
  92. package/dist/js/menuOptions.js +14 -14
  93. package/dist/js/utils.js +133 -133
  94. package/dist/js/withParams.js +43 -43
  95. package/dist/layout/Accordion/Accordion.stories.svelte +30 -30
  96. package/dist/layout/Accordion/Accordion.svelte +55 -55
  97. package/dist/layout/Accordion/AccordionItem.svelte +51 -51
  98. package/dist/layout/Accordion/accordion.js +64 -64
  99. package/dist/layout/Accordion/details.js +83 -83
  100. package/dist/layout/Accordion/docs/component.md +19 -19
  101. package/dist/layout/AnalyticsBanner/AnalyticsBanner.stories.svelte +16 -16
  102. package/dist/layout/AnalyticsBanner/AnalyticsBanner.svelte +314 -314
  103. package/dist/layout/AnalyticsBanner/docs/component.md +44 -44
  104. package/dist/layout/BackLink/BackLink.stories.svelte +16 -16
  105. package/dist/layout/BackLink/BackLink.svelte +30 -30
  106. package/dist/layout/BackLink/docs/component.md +12 -12
  107. package/dist/layout/Breadcrumb/Breadcrumb.stories.svelte +31 -31
  108. package/dist/layout/Breadcrumb/Breadcrumb.svelte +69 -69
  109. package/dist/layout/Breadcrumb/docs/component.md +15 -15
  110. package/dist/layout/Card/Card.stories.svelte +39 -39
  111. package/dist/layout/Card/Card.svelte +127 -127
  112. package/dist/layout/Card/docs/component.md +14 -14
  113. package/dist/layout/Card/docs/eg-images.md +27 -27
  114. package/dist/layout/Card/docs/eg-links.md +12 -12
  115. package/dist/layout/Card/docs/eg-spans.md +12 -12
  116. package/dist/layout/Contents/Contents.stories.svelte +27 -27
  117. package/dist/layout/Contents/Contents.svelte +51 -51
  118. package/dist/layout/Contents/docs/component.md +18 -18
  119. package/dist/layout/DescriptionList/DescriptionList.stories.svelte +22 -22
  120. package/dist/layout/DescriptionList/DescriptionList.svelte +59 -59
  121. package/dist/layout/DescriptionList/docs/component.md +18 -18
  122. package/dist/layout/Details/Details.stories.svelte +32 -32
  123. package/dist/layout/Details/Details.svelte +75 -75
  124. package/dist/layout/Details/docs/component.md +14 -14
  125. package/dist/layout/DocumentList/Document.svelte +103 -103
  126. package/dist/layout/DocumentList/DocumentList.stories.svelte +88 -88
  127. package/dist/layout/DocumentList/DocumentList.svelte +33 -33
  128. package/dist/layout/DocumentList/docs/component.md +28 -28
  129. package/dist/layout/DocumentList/docs/example.md +23 -23
  130. package/dist/layout/ErrorPage/ErrorPage.stories.svelte +18 -18
  131. package/dist/layout/ErrorPage/ErrorPage.svelte +48 -48
  132. package/dist/layout/ErrorPage/docs/component.md +13 -13
  133. package/dist/layout/Footer/Footer.stories.svelte +24 -24
  134. package/dist/layout/Footer/Footer.svelte +366 -366
  135. package/dist/layout/Footer/docs/component.md +10 -10
  136. package/dist/layout/Grid/Grid.stories.svelte +50 -50
  137. package/dist/layout/Grid/Grid.svelte +117 -117
  138. package/dist/layout/Grid/GridCell.svelte +65 -65
  139. package/dist/layout/Grid/docs/component.md +14 -14
  140. package/dist/layout/Header/Header.stories.svelte +26 -26
  141. package/dist/layout/Header/Header.svelte +875 -875
  142. package/dist/layout/Header/docs/component.md +11 -11
  143. package/dist/layout/Hero/Hero.stories.svelte +79 -79
  144. package/dist/layout/Hero/Hero.svelte +364 -364
  145. package/dist/layout/Hero/docs/component.md +14 -14
  146. package/dist/layout/Highlight/Highlight.stories.svelte +29 -29
  147. package/dist/layout/Highlight/Highlight.svelte +77 -77
  148. package/dist/layout/Highlight/docs/component.md +12 -12
  149. package/dist/layout/Image/Image.stories.svelte +23 -23
  150. package/dist/layout/Image/Image.svelte +29 -29
  151. package/dist/layout/Image/docs/component.md +15 -15
  152. package/dist/layout/List/Li.svelte +3 -3
  153. package/dist/layout/List/List.stories.svelte +40 -40
  154. package/dist/layout/List/List.svelte +46 -46
  155. package/dist/layout/List/docs/component.md +14 -14
  156. package/dist/layout/List/docs/example.md +12 -12
  157. package/dist/layout/NavSections/NavSection.svelte +90 -90
  158. package/dist/layout/NavSections/NavSections.stories.svelte +51 -51
  159. package/dist/layout/NavSections/NavSections.svelte +160 -160
  160. package/dist/layout/NavSections/docs/component.md +25 -25
  161. package/dist/layout/Notice/Notice.stories.svelte +61 -61
  162. package/dist/layout/Notice/Notice.svelte +56 -56
  163. package/dist/layout/Notice/docs/component.md +14 -14
  164. package/dist/layout/PhaseBanner/PhaseBanner.stories.svelte +24 -24
  165. package/dist/layout/PhaseBanner/PhaseBanner.svelte +66 -66
  166. package/dist/layout/PhaseBanner/docs/component.md +14 -14
  167. package/dist/layout/RelatedContent/RelatedContent.stories.svelte +36 -36
  168. package/dist/layout/RelatedContent/RelatedContent.svelte +54 -54
  169. package/dist/layout/RelatedContent/docs/component.md +16 -16
  170. package/dist/layout/Scroller/Scroller.stories.svelte +60 -60
  171. package/dist/layout/Scroller/Scroller.svelte +368 -368
  172. package/dist/layout/Scroller/ScrollerSection.svelte +70 -70
  173. package/dist/layout/Scroller/docs/component.md +39 -39
  174. package/dist/layout/Section/Section.stories.svelte +33 -33
  175. package/dist/layout/Section/Section.svelte +60 -60
  176. package/dist/layout/Section/docs/component.md +12 -12
  177. package/dist/layout/ShareButtons/ShareButtons.stories.svelte +20 -20
  178. package/dist/layout/ShareButtons/ShareButtons.svelte +131 -131
  179. package/dist/layout/ShareButtons/docs/component.md +14 -14
  180. package/dist/layout/SkipLink/SkipLink.stories.svelte +16 -16
  181. package/dist/layout/SkipLink/SkipLink.svelte +9 -9
  182. package/dist/layout/SkipLink/docs/component.md +11 -11
  183. package/dist/layout/Summary/Summary.stories.svelte +21 -21
  184. package/dist/layout/Summary/Summary.svelte +60 -60
  185. package/dist/layout/Summary/docs/component.md +17 -17
  186. package/dist/layout/Tabs/Tab.svelte +53 -53
  187. package/dist/layout/Tabs/Tabs.stories.svelte +29 -29
  188. package/dist/layout/Tabs/Tabs.svelte +89 -89
  189. package/dist/layout/Tabs/docs/component.md +16 -16
  190. package/dist/layout/Tabs/tabs.js +302 -302
  191. package/dist/layout/Timeline/Timeline.stories.svelte +44 -44
  192. package/dist/layout/Timeline/Timeline.svelte +17 -17
  193. package/dist/layout/Timeline/TimelineItem.svelte +14 -14
  194. package/dist/layout/Timeline/docs/component.md +27 -27
  195. package/dist/layout/Timeline/docs/example.md +20 -20
  196. package/dist/templates/EmbedArticle/EmbedArticle.stories.svelte +72 -72
  197. package/dist/templates/EmbedArticle/docs/component.md +56 -56
  198. package/dist/templates/FeatureArticle/FeatureArticle.stories.svelte +150 -150
  199. package/dist/templates/FeatureArticle/docs/component.md +125 -125
  200. package/dist/templates/StandardArticle/StandardArticle.stories.svelte +86 -86
  201. package/dist/templates/StandardArticle/docs/component.md +76 -76
  202. package/dist/templates/intro.mdx +18 -18
  203. package/dist/wrappers/Container/Container.stories.svelte +38 -38
  204. package/dist/wrappers/Container/Container.svelte +77 -77
  205. package/dist/wrappers/Container/docs/component.md +12 -12
  206. package/dist/wrappers/Embed/Embed.stories.svelte +24 -24
  207. package/dist/wrappers/Embed/Embed.svelte +44 -44
  208. package/dist/wrappers/Embed/docs/component.md +15 -15
  209. package/dist/wrappers/LazyLoad/LazyLoad.stories.svelte +37 -37
  210. package/dist/wrappers/LazyLoad/LazyLoad.svelte +50 -50
  211. package/dist/wrappers/LazyLoad/docs/component.md +29 -29
  212. package/dist/wrappers/Main/Main.stories.svelte +24 -24
  213. package/dist/wrappers/Main/Main.svelte +11 -11
  214. package/dist/wrappers/Main/docs/component.md +16 -16
  215. package/dist/wrappers/Observe/Observe.stories.svelte +29 -29
  216. package/dist/wrappers/Observe/Observe.svelte +45 -45
  217. package/dist/wrappers/Observe/docs/component.md +22 -22
  218. package/dist/wrappers/Theme/Theme.stories.svelte +70 -70
  219. package/dist/wrappers/Theme/Theme.svelte +76 -76
  220. package/dist/wrappers/Theme/docs/component.md +10 -10
  221. package/dist/wrappers/Theme/themes.js +70 -70
  222. 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 };