@onsvisual/svelte-components 1.0.37 → 1.0.38

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