@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,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 };