@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,24 +1,24 @@
1
- <script module>
2
- import { defineMeta } from "@storybook/addon-svelte-csf";
3
- import { withComponentDocs } from "../../js/withParams.js";
4
- import Embed from "./Embed.svelte";
5
- import componentDocs from "./docs/component.md?raw";
6
-
7
- const { Story } = defineMeta({
8
- title: "Wrappers/Embed",
9
- component: Embed,
10
- tags: ["autodocs"],
11
- argTypes: {},
12
- parameters: withComponentDocs(componentDocs)
13
- });
14
- </script>
15
-
16
- {#snippet template(args)}
17
- <Embed {...args}>
18
- <div style:padding="24px 0" style:background="var(--ons-color-grey-10)">
19
- <p style:margin="0">Embedded content.</p>
20
- </div>
21
- </Embed>
22
- {/snippet}
23
-
24
- <Story name="Default" args={{}} {template} />
1
+ <script module>
2
+ import { defineMeta } from "@storybook/addon-svelte-csf";
3
+ import { withComponentDocs } from "../../js/withParams.js";
4
+ import Embed from "./Embed.svelte";
5
+ import componentDocs from "./docs/component.md?raw";
6
+
7
+ const { Story } = defineMeta({
8
+ title: "Wrappers/Embed",
9
+ component: Embed,
10
+ tags: ["autodocs"],
11
+ argTypes: {},
12
+ parameters: withComponentDocs(componentDocs)
13
+ });
14
+ </script>
15
+
16
+ {#snippet template(args)}
17
+ <Embed {...args}>
18
+ <div style:padding="24px 0" style:background="var(--ons-color-grey-10)">
19
+ <p style:margin="0">Embedded content.</p>
20
+ </div>
21
+ </Embed>
22
+ {/snippet}
23
+
24
+ <Story name="Default" args={{}} {template} />
@@ -1,44 +1,44 @@
1
- <script>
2
- import { onMount, createEventDispatcher } from "svelte";
3
- import pym from "pym.js";
4
-
5
- /**
6
- * Binding for pymChild element (can be used to send messages to parent of iframe)
7
- * @type {object}
8
- */
9
- export let pymChild = null;
10
- /**
11
- * Frequency (in milliseconds) of iframe height updates. Set as "false" to disable polling.
12
- * @type {number|false}
13
- */
14
- export let polling = 500;
15
-
16
- const dispatch = createEventDispatcher();
17
-
18
- onMount(() => {
19
- pymChild = new pym.Child();
20
-
21
- if (polling) {
22
- setInterval(() => {
23
- pymChild.sendMessage(
24
- "height",
25
- Math.max(document.body.scrollHeight, document.body.offsetHeight)
26
- );
27
- }, polling);
28
- }
29
-
30
- const href = document.location.href;
31
- const parentUrl = new URLSearchParams(document.location.search).get("parentUrl");
32
- dispatch("load", { href, parentUrl, pymChild });
33
- });
34
- </script>
35
-
36
- <div class="ons-svelte-embed-container" style:display="contents">
37
- <slot />
38
- </div>
39
-
40
- <style>
41
- .ons-svelte-embed-container :global(.ons-container) {
42
- padding: 0 !important;
43
- }
44
- </style>
1
+ <script>
2
+ import { onMount, createEventDispatcher } from "svelte";
3
+ import pym from "pym.js";
4
+
5
+ /**
6
+ * Binding for pymChild element (can be used to send messages to parent of iframe)
7
+ * @type {object}
8
+ */
9
+ export let pymChild = null;
10
+ /**
11
+ * Frequency (in milliseconds) of iframe height updates. Set as "false" to disable polling.
12
+ * @type {number|false}
13
+ */
14
+ export let polling = 500;
15
+
16
+ const dispatch = createEventDispatcher();
17
+
18
+ onMount(() => {
19
+ pymChild = new pym.Child();
20
+
21
+ if (polling) {
22
+ setInterval(() => {
23
+ pymChild.sendMessage(
24
+ "height",
25
+ Math.max(document.body.scrollHeight, document.body.offsetHeight)
26
+ );
27
+ }, polling);
28
+ }
29
+
30
+ const href = document.location.href;
31
+ const parentUrl = new URLSearchParams(document.location.search).get("parentUrl");
32
+ dispatch("load", { href, parentUrl, pymChild });
33
+ });
34
+ </script>
35
+
36
+ <div class="ons-svelte-embed-container" style:display="contents">
37
+ <slot />
38
+ </div>
39
+
40
+ <style>
41
+ .ons-svelte-embed-container :global(.ons-container) {
42
+ padding: 0 !important;
43
+ }
44
+ </style>
@@ -1,15 +1,15 @@
1
- A container for content designed to appear within an `<iframe>`. The component does two things:
2
-
3
- 1. Overrides padding, so that content can fill the full width of its iframe.
4
- 2. Initialises a Pym.js child for the iframe, so that it can communicate its height with its parent page.
5
-
6
- <!-- prettier-ignore -->
7
- ```html
8
- <script>
9
- import { Embed } from "@onsvisual/svelte-components";
10
- </script>
11
-
12
- <Embed>
13
- {child_components}
14
- </Embed>
15
- ```
1
+ A container for content designed to appear within an `<iframe>`. The component does two things:
2
+
3
+ 1. Overrides padding, so that content can fill the full width of its iframe.
4
+ 2. Initialises a Pym.js child for the iframe, so that it can communicate its height with its parent page.
5
+
6
+ <!-- prettier-ignore -->
7
+ ```html
8
+ <script>
9
+ import { Embed } from "@onsvisual/svelte-components";
10
+ </script>
11
+
12
+ <Embed>
13
+ {child_components}
14
+ </Embed>
15
+ ```
@@ -1,37 +1,37 @@
1
- <script module>
2
- import { defineMeta } from "@storybook/addon-svelte-csf";
3
- import { withComponentDocs } from "../../js/withParams.js";
4
- import LazyLoad from "./LazyLoad.svelte";
5
- import componentDocs from "./docs/component.md?raw";
6
-
7
- const { Story } = defineMeta({
8
- title: "Wrappers/LazyLoad",
9
- component: LazyLoad,
10
- tags: ["autodocs"],
11
- argTypes: {},
12
- parameters: withComponentDocs(componentDocs)
13
- });
14
- </script>
15
-
16
- {#snippet template(args)}
17
- {#each Array.from(Array(15).keys()) as i}
18
- <LazyLoad {...args}>
19
- <div class="img-container">
20
- <img src="https://picsum.photos/400/300?random={i}" alt="" />
21
- </div>
22
- </LazyLoad>
23
- {/each}
24
- {/snippet}
25
-
26
- <Story name="Default" args={{}} {template} />
27
-
28
- <style>
29
- .img-container {
30
- display: flex;
31
- justify-content: center;
32
- align-items: center;
33
- height: 500px;
34
- background: #eee;
35
- margin-bottom: 10px;
36
- }
37
- </style>
1
+ <script module>
2
+ import { defineMeta } from "@storybook/addon-svelte-csf";
3
+ import { withComponentDocs } from "../../js/withParams.js";
4
+ import LazyLoad from "./LazyLoad.svelte";
5
+ import componentDocs from "./docs/component.md?raw";
6
+
7
+ const { Story } = defineMeta({
8
+ title: "Wrappers/LazyLoad",
9
+ component: LazyLoad,
10
+ tags: ["autodocs"],
11
+ argTypes: {},
12
+ parameters: withComponentDocs(componentDocs)
13
+ });
14
+ </script>
15
+
16
+ {#snippet template(args)}
17
+ {#each Array.from(Array(15).keys()) as i}
18
+ <LazyLoad {...args}>
19
+ <div class="img-container">
20
+ <img src="https://picsum.photos/400/300?random={i}" alt="" />
21
+ </div>
22
+ </LazyLoad>
23
+ {/each}
24
+ {/snippet}
25
+
26
+ <Story name="Default" args={{}} {template} />
27
+
28
+ <style>
29
+ .img-container {
30
+ display: flex;
31
+ justify-content: center;
32
+ align-items: center;
33
+ height: 500px;
34
+ background: #eee;
35
+ margin-bottom: 10px;
36
+ }
37
+ </style>
@@ -1,50 +1,50 @@
1
- <script>
2
- import { onMount, onDestroy } from "svelte";
3
-
4
- /**
5
- * Bind to this variable to monitor whether the component has entered the viewport (boolean true/false).
6
- * @type {boolean}
7
- */
8
- export let entered = false;
9
- /**
10
- * Set the initial "placeholder" height of the component in pixels.
11
- * @type {number}
12
- */
13
- export let initialHeight = 400;
14
- /**
15
- * Set how many pixels from the viewport you want lazy loading to kick in.
16
- * @type {number}
17
- */
18
- export let rootMargin = 200;
19
-
20
- let el, observer;
21
-
22
- const callback = (entries, observer) => {
23
- entries.forEach((entry) => {
24
- let intersecting = entry.isIntersecting;
25
- if (!entered && intersecting) {
26
- observer.unobserve(el);
27
- entered = true;
28
- }
29
- });
30
- };
31
-
32
- onMount(() => {
33
- let options = { root: document, rootMargin: `${rootMargin}px` };
34
-
35
- observer = new IntersectionObserver(callback, options);
36
- observer.observe(el);
37
- });
38
-
39
- onDestroy(() => {
40
- if (el && observer) {
41
- observer.unobserve(el);
42
- }
43
- });
44
- </script>
45
-
46
- {#if entered}
47
- <slot />
48
- {:else}
49
- <div bind:this={el} style:height="{+initialHeight || 100}px"></div>
50
- {/if}
1
+ <script>
2
+ import { onMount, onDestroy } from "svelte";
3
+
4
+ /**
5
+ * Bind to this variable to monitor whether the component has entered the viewport (boolean true/false).
6
+ * @type {boolean}
7
+ */
8
+ export let entered = false;
9
+ /**
10
+ * Set the initial "placeholder" height of the component in pixels.
11
+ * @type {number}
12
+ */
13
+ export let initialHeight = 400;
14
+ /**
15
+ * Set how many pixels from the viewport you want lazy loading to kick in.
16
+ * @type {number}
17
+ */
18
+ export let rootMargin = 200;
19
+
20
+ let el, observer;
21
+
22
+ const callback = (entries, observer) => {
23
+ entries.forEach((entry) => {
24
+ let intersecting = entry.isIntersecting;
25
+ if (!entered && intersecting) {
26
+ observer.unobserve(el);
27
+ entered = true;
28
+ }
29
+ });
30
+ };
31
+
32
+ onMount(() => {
33
+ let options = { root: document, rootMargin: `${rootMargin}px` };
34
+
35
+ observer = new IntersectionObserver(callback, options);
36
+ observer.observe(el);
37
+ });
38
+
39
+ onDestroy(() => {
40
+ if (el && observer) {
41
+ observer.unobserve(el);
42
+ }
43
+ });
44
+ </script>
45
+
46
+ {#if entered}
47
+ <slot />
48
+ {:else}
49
+ <div bind:this={el} style:height="{+initialHeight || 100}px"></div>
50
+ {/if}
@@ -1,29 +1,29 @@
1
- A wrapper component that uses IntersectionObserver to allow the elements it contains to be lazy loaded, ie. to be initialised/mounted only when they enter the viewport (or come close to it).
2
-
3
- Optionally, you can use the **initialHeight** to set a placeholder height in pixels (default 400), and you can use **rootMargin** to set how many pixels from the viewport you want lazy loading to kick in (default 200).
4
-
5
- <!-- prettier-ignore -->
6
- ```html
7
- <script>
8
- import { LazyLoad } from "@onsvisual/svelte-components";
9
- </script>
10
-
11
- {#each Array.from(Array(20).keys()) as i}
12
- <LazyLoad>
13
- <div class="img-container">
14
- <img src="https://picsum.photos/400/300?random={i}" alt="" />
15
- </div>
16
- </LazyLoad>
17
- {/each}
18
-
19
- <style>
20
- .img-container {
21
- display: flex;
22
- justify-content: center;
23
- align-items: center;
24
- height: 400px;
25
- background: #eee;
26
- margin-bottom: 10px;
27
- }
28
- </style>
29
- ```
1
+ A wrapper component that uses IntersectionObserver to allow the elements it contains to be lazy loaded, ie. to be initialised/mounted only when they enter the viewport (or come close to it).
2
+
3
+ Optionally, you can use the **initialHeight** to set a placeholder height in pixels (default 400), and you can use **rootMargin** to set how many pixels from the viewport you want lazy loading to kick in (default 200).
4
+
5
+ <!-- prettier-ignore -->
6
+ ```html
7
+ <script>
8
+ import { LazyLoad } from "@onsvisual/svelte-components";
9
+ </script>
10
+
11
+ {#each Array.from(Array(20).keys()) as i}
12
+ <LazyLoad>
13
+ <div class="img-container">
14
+ <img src="https://picsum.photos/400/300?random={i}" alt="" />
15
+ </div>
16
+ </LazyLoad>
17
+ {/each}
18
+
19
+ <style>
20
+ .img-container {
21
+ display: flex;
22
+ justify-content: center;
23
+ align-items: center;
24
+ height: 400px;
25
+ background: #eee;
26
+ margin-bottom: 10px;
27
+ }
28
+ </style>
29
+ ```
@@ -1,24 +1,24 @@
1
- <script module>
2
- import { defineMeta } from "@storybook/addon-svelte-csf";
3
- import { withComponentDocs } from "../../js/withParams.js";
4
- import Main from "./Main.svelte";
5
- import componentDocs from "./docs/component.md?raw";
6
-
7
- const { Story } = defineMeta({
8
- title: "Wrappers/Main",
9
- component: Main,
10
- tags: ["autodocs"],
11
- argTypes: {},
12
- parameters: withComponentDocs(componentDocs)
13
- });
14
- </script>
15
-
16
- {#snippet template(args)}
17
- <Main {...args}>
18
- <div style:padding="24px 12px" style:background="var(--ons-color-grey-10)">
19
- <p style:margin="0">Child components go here.</p>
20
- </div>
21
- </Main>
22
- {/snippet}
23
-
24
- <Story name="Default" args={{}} {template} />
1
+ <script module>
2
+ import { defineMeta } from "@storybook/addon-svelte-csf";
3
+ import { withComponentDocs } from "../../js/withParams.js";
4
+ import Main from "./Main.svelte";
5
+ import componentDocs from "./docs/component.md?raw";
6
+
7
+ const { Story } = defineMeta({
8
+ title: "Wrappers/Main",
9
+ component: Main,
10
+ tags: ["autodocs"],
11
+ argTypes: {},
12
+ parameters: withComponentDocs(componentDocs)
13
+ });
14
+ </script>
15
+
16
+ {#snippet template(args)}
17
+ <Main {...args}>
18
+ <div style:padding="24px 12px" style:background="var(--ons-color-grey-10)">
19
+ <p style:margin="0">Child components go here.</p>
20
+ </div>
21
+ </Main>
22
+ {/snippet}
23
+
24
+ <Story name="Default" args={{}} {template} />
@@ -1,11 +1,11 @@
1
- <script>
2
- /**
3
- * Sets the unique ID that can be targetted by hyperlinks
4
- * @type {string}
5
- */
6
- export let id = "main";
7
- </script>
8
-
9
- <main {id}>
10
- <slot />
11
- </main>
1
+ <script>
2
+ /**
3
+ * Sets the unique ID that can be targetted by hyperlinks
4
+ * @type {string}
5
+ */
6
+ export let id = "main";
7
+ </script>
8
+
9
+ <main {id}>
10
+ <slot />
11
+ </main>
@@ -1,16 +1,16 @@
1
- This component creates a styled `<main>` element to wrap the primary contents of a page (generally everything between the page header and footer).
2
-
3
- This component is useful for screen readers to identify the primary content of the page. The standard header component also contains a visually hidden "Skip to content" link that will bring users to it.
4
-
5
- <!-- prettier-ignore -->
6
- ```html
7
- <script>
8
- import { Main } from "@onsvisual/svelte-components";
9
- </script>
10
-
11
- <!-- Header goes here -->
12
- <Main>
13
- {child_components}
14
- </Main>
15
- <!-- Footer goes here -->
16
- ```
1
+ This component creates a styled `<main>` element to wrap the primary contents of a page (generally everything between the page header and footer).
2
+
3
+ This component is useful for screen readers to identify the primary content of the page. The standard header component also contains a visually hidden "Skip to content" link that will bring users to it.
4
+
5
+ <!-- prettier-ignore -->
6
+ ```html
7
+ <script>
8
+ import { Main } from "@onsvisual/svelte-components";
9
+ </script>
10
+
11
+ <!-- Header goes here -->
12
+ <Main>
13
+ {child_components}
14
+ </Main>
15
+ <!-- Footer goes here -->
16
+ ```
@@ -1,29 +1,29 @@
1
- <script module>
2
- import { defineMeta } from "@storybook/addon-svelte-csf";
3
- import { withComponentDocs } from "../../js/withParams.js";
4
- import Observe from "./Observe.svelte";
5
- import componentDocs from "./docs/component.md?raw";
6
-
7
- const colors = ["yellow", "green", "blue", "purple", "red", "orange"];
8
-
9
- const { Story } = defineMeta({
10
- title: "Wrappers/Observe",
11
- component: Observe,
12
- tags: ["autodocs"],
13
- argTypes: {},
14
- parameters: withComponentDocs(componentDocs)
15
- });
16
- </script>
17
-
18
- {#snippet template(args)}
19
- {#each colors as color}
20
- <Observe
21
- on:enter={() => console.log(`${color} entered`)}
22
- on:exit={() => console.log(`${color} exited`)}
23
- >
24
- <div style:background={color} style:height="400px"></div>
25
- </Observe>
26
- {/each}
27
- {/snippet}
28
-
29
- <Story name="Default" args={{}} {template} />
1
+ <script module>
2
+ import { defineMeta } from "@storybook/addon-svelte-csf";
3
+ import { withComponentDocs } from "../../js/withParams.js";
4
+ import Observe from "./Observe.svelte";
5
+ import componentDocs from "./docs/component.md?raw";
6
+
7
+ const colors = ["yellow", "green", "blue", "purple", "red", "orange"];
8
+
9
+ const { Story } = defineMeta({
10
+ title: "Wrappers/Observe",
11
+ component: Observe,
12
+ tags: ["autodocs"],
13
+ argTypes: {},
14
+ parameters: withComponentDocs(componentDocs)
15
+ });
16
+ </script>
17
+
18
+ {#snippet template(args)}
19
+ {#each colors as color}
20
+ <Observe
21
+ on:enter={() => console.log(`${color} entered`)}
22
+ on:exit={() => console.log(`${color} exited`)}
23
+ >
24
+ <div style:background={color} style:height="400px"></div>
25
+ </Observe>
26
+ {/each}
27
+ {/snippet}
28
+
29
+ <Story name="Default" args={{}} {template} />
@@ -1,40 +1,40 @@
1
- <script>
2
- import { onMount, onDestroy, createEventDispatcher } from "svelte";
3
-
4
- const dispatch = createEventDispatcher();
5
-
6
- /**
7
- * Bind to this variable to monitor visiblity (boolean true/false).
8
- * @type {boolean}
9
- */
10
- export let visible = false;
11
- /**
12
- * Number of pixels before/after the viewport that component is considered "visible" (default = 0).
13
- * @type {number}
14
- */
15
- export let rootMargin = 0;
16
-
17
- let el, observer;
18
-
19
- const callback = (entries) => {
20
- entries.forEach((entry) => {
21
- let intersecting = entry.isIntersecting;
22
- if (!visible && intersecting) dispatch("enter", entry);
23
- if (visible && !intersecting) dispatch("exit", entry);
24
- visible = intersecting;
25
- });
26
- };
27
-
28
- onMount(() => {
29
- let options = { root: document, rootMargin: `${rootMargin}px` };
30
-
31
- observer = new IntersectionObserver(callback, options);
32
- observer.observe(el);
33
- });
34
-
35
- onDestroy(() => observer?.unobserve?.(el));
36
- </script>
37
-
38
- <div bind:this={el}>
39
- <slot />
40
- </div>
1
+ <script>
2
+ import { onMount, onDestroy, createEventDispatcher } from "svelte";
3
+
4
+ const dispatch = createEventDispatcher();
5
+
6
+ /**
7
+ * Bind to this variable to monitor visiblity (boolean true/false).
8
+ * @type {boolean}
9
+ */
10
+ export let visible = false;
11
+ /**
12
+ * Number of pixels before/after the viewport that component is considered "visible" (default = 0).
13
+ * @type {number}
14
+ */
15
+ export let rootMargin = 0;
16
+
17
+ let el, observer;
18
+
19
+ const callback = (entries) => {
20
+ entries.forEach((entry) => {
21
+ let intersecting = entry.isIntersecting;
22
+ if (!visible && intersecting) dispatch("enter", entry);
23
+ if (visible && !intersecting) dispatch("exit", entry);
24
+ visible = intersecting;
25
+ });
26
+ };
27
+
28
+ onMount(() => {
29
+ let options = { root: document, rootMargin: `${rootMargin}px` };
30
+
31
+ observer = new IntersectionObserver(callback, options);
32
+ observer.observe(el);
33
+ });
34
+
35
+ onDestroy(() => observer?.unobserve?.(el));
36
+ </script>
37
+
38
+ <div bind:this={el}>
39
+ <slot />
40
+ </div>