@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,10 +1,10 @@
1
- A footer component with compact mode and theming options.
2
-
3
- <!-- prettier-ignore -->
4
- ```html
5
- <script>
6
- import { Footer } from "@onsvisual/svelte-components";
7
- </script>
8
-
9
- <Footer />
10
- ```
1
+ A footer component with compact mode and theming options.
2
+
3
+ <!-- prettier-ignore -->
4
+ ```html
5
+ <script>
6
+ import { Footer } from "@onsvisual/svelte-components";
7
+ </script>
8
+
9
+ <Footer />
10
+ ```
@@ -1,50 +1,50 @@
1
- <script module>
2
- import { defineMeta } from "@storybook/addon-svelte-csf";
3
- import { withComponentDocs } from "../../js/withParams.js";
4
- import Grid from "./Grid.svelte";
5
- import GridCell from "./GridCell.svelte";
6
- import componentDocs from "./docs/component.md?raw";
7
-
8
- const { Story } = defineMeta({
9
- title: "Layout/Grid",
10
- component: Grid,
11
- tags: ["autodocs"],
12
- argTypes: {
13
- width: {
14
- control: { type: "select" }
15
- },
16
- colWidth: {
17
- control: { type: "select" }
18
- },
19
- gridGap: {
20
- control: { type: "select" }
21
- }
22
- },
23
- parameters: withComponentDocs(componentDocs)
24
- });
25
- </script>
26
-
27
- {#snippet template(args)}
28
- <Grid {...args}>
29
- <GridCell><div class="grid-cell">Grid cell one</div></GridCell>
30
- <GridCell><div class="grid-cell">Grid cell two</div></GridCell>
31
- <GridCell><div class="grid-cell">Grid cell three</div></GridCell>
32
- <GridCell><div class="grid-cell">Grid cell four</div></GridCell>
33
- </Grid>
34
- {/snippet}
35
-
36
- <Story name="Default" args={{}} {template} />
37
-
38
- <Story name="Wide columns" args={{ colWidth: "wide" }} {template} />
39
-
40
- <Story name="Narrow columns" args={{ colWidth: "narrow" }} {template} />
41
-
42
- <Story name="Full width columns" args={{ colWidth: "full" }} {template} />
43
-
44
- <style>
45
- .grid-cell {
46
- background: var(--ons-color-grey-10);
47
- padding: 12px;
48
- height: 100px;
49
- }
50
- </style>
1
+ <script module>
2
+ import { defineMeta } from "@storybook/addon-svelte-csf";
3
+ import { withComponentDocs } from "../../js/withParams.js";
4
+ import Grid from "./Grid.svelte";
5
+ import GridCell from "./GridCell.svelte";
6
+ import componentDocs from "./docs/component.md?raw";
7
+
8
+ const { Story } = defineMeta({
9
+ title: "Layout/Grid",
10
+ component: Grid,
11
+ tags: ["autodocs"],
12
+ argTypes: {
13
+ width: {
14
+ control: { type: "select" }
15
+ },
16
+ colWidth: {
17
+ control: { type: "select" }
18
+ },
19
+ gridGap: {
20
+ control: { type: "select" }
21
+ }
22
+ },
23
+ parameters: withComponentDocs(componentDocs)
24
+ });
25
+ </script>
26
+
27
+ {#snippet template(args)}
28
+ <Grid {...args}>
29
+ <GridCell><div class="grid-cell">Grid cell one</div></GridCell>
30
+ <GridCell><div class="grid-cell">Grid cell two</div></GridCell>
31
+ <GridCell><div class="grid-cell">Grid cell three</div></GridCell>
32
+ <GridCell><div class="grid-cell">Grid cell four</div></GridCell>
33
+ </Grid>
34
+ {/snippet}
35
+
36
+ <Story name="Default" args={{}} {template} />
37
+
38
+ <Story name="Wide columns" args={{ colWidth: "wide" }} {template} />
39
+
40
+ <Story name="Narrow columns" args={{ colWidth: "narrow" }} {template} />
41
+
42
+ <Story name="Full width columns" args={{ colWidth: "full" }} {template} />
43
+
44
+ <style>
45
+ .grid-cell {
46
+ background: var(--ons-color-grey-10);
47
+ padding: 12px;
48
+ height: 100px;
49
+ }
50
+ </style>
@@ -1,117 +1,117 @@
1
- <script>
2
- import { setContext } from "svelte";
3
- import Container from "../../wrappers/Container/Container.svelte";
4
-
5
- /**
6
- * Optional: Sets the unique ID of the section
7
- * @type {string|null}
8
- */
9
- export let id = null;
10
- /**
11
- * Optional: Set an additional CSS class for the component
12
- * @type {string|null}
13
- */
14
- export let cls = null;
15
- /**
16
- * Sets the width of the section
17
- * @type {"narrow"|"medium"|"wide"|"wider"|"full"}
18
- */
19
- export let width = "wide";
20
- /**
21
- * Sets the title of the section
22
- * @type {string|null}
23
- */
24
- export let title = null;
25
- /**
26
- * Allows the h2 title tag for the section to be visually hidden
27
- * @type {boolean}
28
- */
29
- export let hideTitle = false;
30
- /**
31
- * Optional: Caption for the grid (if used as a media container, eg. for an image)
32
- * @type {string|null}
33
- */
34
- export let caption = null;
35
- /**
36
- * Adds margin above section
37
- * @type {boolean}
38
- */
39
- export let marginTop = false;
40
- /**
41
- * Adds margin below section
42
- * @type {boolean}
43
- */
44
- export let marginBottom = true;
45
- /**
46
- * Sets the width of the columns
47
- * @type {"narrow"|"medium"|"wide"|"full"}
48
- */
49
- export let colWidth = "medium";
50
- /**
51
- * Set the minimum height of a grid row (can be a number in pixels, or a valid CSS height)
52
- * @type {number|string|null}
53
- */
54
- export let rowHeight = null;
55
- /**
56
- * Stretch the height of grid cells to match their siblings
57
- * @type {boolean}
58
- */
59
- export let rowStretch = true;
60
- /**
61
- * Set the grid gap, in pixels
62
- * @type {"narrow"|"medium"|"wide"|"none"}
63
- */
64
- export let gridGap = "medium";
65
-
66
- setContext("width", width);
67
- setContext("colWidth", colWidth);
68
- setContext("rowHeight", rowHeight);
69
- setContext("gridGap", gridGap);
70
- </script>
71
-
72
- <Container {id} {cls} {width} {marginTop} {marginBottom}>
73
- {#if title}
74
- <h2 class="section-title" class:ons-u-vh={hideTitle}>{title}</h2>
75
- {/if}
76
- {#if caption}
77
- <figure class="ons-svelte-grid-container">
78
- <div
79
- class="ons-grid ons-grid--spaced"
80
- class:ons-grid--gutterless={gridGap === "none"}
81
- class:ons-grid--tight={gridGap === "narrow"}
82
- class:ons-grid--loose={gridGap === "wide"}
83
- class:ons-grid--stretch={rowStretch}
84
- >
85
- <slot />
86
- </div>
87
- <figcaption class="ons-image__caption">{caption}</figcaption>
88
- </figure>
89
- {:else}
90
- <div
91
- class="ons-grid ons-grid--spaced"
92
- class:ons-grid--gutterless={gridGap === "none"}
93
- class:ons-grid--tight={gridGap === "narrow"}
94
- class:ons-grid--loose={gridGap === "wide"}
95
- class:ons-grid--stretch={rowStretch}
96
- >
97
- <slot />
98
- </div>
99
- {/if}
100
- </Container>
101
-
102
- <style>
103
- /* This removes the default margins of the <figure> element */
104
- .ons-svelte-grid-container {
105
- margin: 0;
106
- }
107
- /* This is to allow this flex property without ons-grid--flex which breaks other things */
108
- .ons-grid--stretch {
109
- display: flex;
110
- flex-wrap: wrap;
111
- align-items: stretch;
112
- }
113
- /* This allows the grid to be used as a media container without any columns */
114
- .ons-grid > :global(*:not(.ons-grid__col)) {
115
- margin-left: 1rem;
116
- }
117
- </style>
1
+ <script>
2
+ import { setContext } from "svelte";
3
+ import Container from "../../wrappers/Container/Container.svelte";
4
+
5
+ /**
6
+ * Optional: Sets the unique ID of the section
7
+ * @type {string|null}
8
+ */
9
+ export let id = null;
10
+ /**
11
+ * Optional: Set an additional CSS class for the component
12
+ * @type {string|null}
13
+ */
14
+ export let cls = null;
15
+ /**
16
+ * Sets the width of the section
17
+ * @type {"narrow"|"medium"|"wide"|"wider"|"full"}
18
+ */
19
+ export let width = "wide";
20
+ /**
21
+ * Sets the title of the section
22
+ * @type {string|null}
23
+ */
24
+ export let title = null;
25
+ /**
26
+ * Allows the h2 title tag for the section to be visually hidden
27
+ * @type {boolean}
28
+ */
29
+ export let hideTitle = false;
30
+ /**
31
+ * Optional: Caption for the grid (if used as a media container, eg. for an image)
32
+ * @type {string|null}
33
+ */
34
+ export let caption = null;
35
+ /**
36
+ * Adds margin above section
37
+ * @type {boolean}
38
+ */
39
+ export let marginTop = false;
40
+ /**
41
+ * Adds margin below section
42
+ * @type {boolean}
43
+ */
44
+ export let marginBottom = true;
45
+ /**
46
+ * Sets the width of the columns
47
+ * @type {"narrow"|"medium"|"wide"|"full"}
48
+ */
49
+ export let colWidth = "medium";
50
+ /**
51
+ * Set the minimum height of a grid row (can be a number in pixels, or a valid CSS height)
52
+ * @type {number|string|null}
53
+ */
54
+ export let rowHeight = null;
55
+ /**
56
+ * Stretch the height of grid cells to match their siblings
57
+ * @type {boolean}
58
+ */
59
+ export let rowStretch = true;
60
+ /**
61
+ * Set the grid gap, in pixels
62
+ * @type {"narrow"|"medium"|"wide"|"none"}
63
+ */
64
+ export let gridGap = "medium";
65
+
66
+ setContext("width", width);
67
+ setContext("colWidth", colWidth);
68
+ setContext("rowHeight", rowHeight);
69
+ setContext("gridGap", gridGap);
70
+ </script>
71
+
72
+ <Container {id} {cls} {width} {marginTop} {marginBottom}>
73
+ {#if title}
74
+ <h2 class="section-title" class:ons-u-vh={hideTitle}>{title}</h2>
75
+ {/if}
76
+ {#if caption}
77
+ <figure class="ons-svelte-grid-container">
78
+ <div
79
+ class="ons-grid ons-grid--spaced"
80
+ class:ons-grid--gutterless={gridGap === "none"}
81
+ class:ons-grid--tight={gridGap === "narrow"}
82
+ class:ons-grid--loose={gridGap === "wide"}
83
+ class:ons-grid--stretch={rowStretch}
84
+ >
85
+ <slot />
86
+ </div>
87
+ <figcaption class="ons-image__caption">{caption}</figcaption>
88
+ </figure>
89
+ {:else}
90
+ <div
91
+ class="ons-grid ons-grid--spaced"
92
+ class:ons-grid--gutterless={gridGap === "none"}
93
+ class:ons-grid--tight={gridGap === "narrow"}
94
+ class:ons-grid--loose={gridGap === "wide"}
95
+ class:ons-grid--stretch={rowStretch}
96
+ >
97
+ <slot />
98
+ </div>
99
+ {/if}
100
+ </Container>
101
+
102
+ <style>
103
+ /* This removes the default margins of the <figure> element */
104
+ .ons-svelte-grid-container {
105
+ margin: 0;
106
+ }
107
+ /* This is to allow this flex property without ons-grid--flex which breaks other things */
108
+ .ons-grid--stretch {
109
+ display: flex;
110
+ flex-wrap: wrap;
111
+ align-items: stretch;
112
+ }
113
+ /* This allows the grid to be used as a media container without any columns */
114
+ .ons-grid > :global(*:not(.ons-grid__col)) {
115
+ margin-left: 1rem;
116
+ }
117
+ </style>
@@ -1,65 +1,65 @@
1
- <script>
2
- import { getContext } from "svelte";
3
-
4
- /**
5
- * (If used in grid) How many columns the card should span across
6
- * @type {number}
7
- */
8
- export let colspan = 1;
9
-
10
- const classes = {
11
- narrow: {
12
- narrow: ["6@xs", "4@l"],
13
- medium: ["6@l"],
14
- wide: []
15
- },
16
- medium: {
17
- narrow: ["6@xs", "4@m", "3@l"],
18
- medium: ["6@m"],
19
- wide: ["6@xl"]
20
- },
21
- wide: {
22
- narrow: ["6@xs", "3@m"],
23
- medium: ["6@m", "4@l"],
24
- wide: ["6@l"]
25
- },
26
- wider: {
27
- narrow: ["6@xs", "3@m", "2@xl"],
28
- medium: ["6@m", "4@l", "3@xl"],
29
- wide: ["6@l", "4@xl"]
30
- },
31
- full: {
32
- narrow: ["6@xs", "3@m", "2@xl"],
33
- medium: ["6@m", "4@l", "3@xl"],
34
- wide: ["6@l", "4@xl", "3@xxl"]
35
- }
36
- };
37
-
38
- function calcSpans(cls, colspan) {
39
- if (colspan === 1 || !Number.isInteger(colspan)) return cls;
40
- return cls
41
- .map((c) => [+c.slice(0, 1) * colspan, c.slice(1)])
42
- .filter((c) => c[0] < 12)
43
- .map((c) => `${c[0]}${c[1]}`);
44
- }
45
-
46
- const width = getContext("width") || "wide";
47
- const colWidth = getContext("colWidth") || null;
48
- const rowHeight = getContext("rowHeight") || null;
49
- const colClass = colWidth
50
- ? calcSpans(classes?.[width]?.[colWidth] || [], colspan)
51
- .map((c) => `ons-col-${c}`)
52
- .join(" ")
53
- : "";
54
- </script>
55
-
56
- {#if colWidth}
57
- <div
58
- class="ons-grid__col {colClass}"
59
- style:height={typeof rowHeight === "number" ? `${rowHeight}px` : rowHeight}
60
- >
61
- <slot />
62
- </div>
63
- {:else}
64
- <slot />
65
- {/if}
1
+ <script>
2
+ import { getContext } from "svelte";
3
+
4
+ /**
5
+ * (If used in grid) How many columns the card should span across
6
+ * @type {number}
7
+ */
8
+ export let colspan = 1;
9
+
10
+ const classes = {
11
+ narrow: {
12
+ narrow: ["6@xs", "4@l"],
13
+ medium: ["6@l"],
14
+ wide: []
15
+ },
16
+ medium: {
17
+ narrow: ["6@xs", "4@m", "3@l"],
18
+ medium: ["6@m"],
19
+ wide: ["6@xl"]
20
+ },
21
+ wide: {
22
+ narrow: ["6@xs", "3@m"],
23
+ medium: ["6@m", "4@l"],
24
+ wide: ["6@l"]
25
+ },
26
+ wider: {
27
+ narrow: ["6@xs", "3@m", "2@xl"],
28
+ medium: ["6@m", "4@l", "3@xl"],
29
+ wide: ["6@l", "4@xl"]
30
+ },
31
+ full: {
32
+ narrow: ["6@xs", "3@m", "2@xl"],
33
+ medium: ["6@m", "4@l", "3@xl"],
34
+ wide: ["6@l", "4@xl", "3@xxl"]
35
+ }
36
+ };
37
+
38
+ function calcSpans(cls, colspan) {
39
+ if (colspan === 1 || !Number.isInteger(colspan)) return cls;
40
+ return cls
41
+ .map((c) => [+c.slice(0, 1) * colspan, c.slice(1)])
42
+ .filter((c) => c[0] < 12)
43
+ .map((c) => `${c[0]}${c[1]}`);
44
+ }
45
+
46
+ const width = getContext("width") || "wide";
47
+ const colWidth = getContext("colWidth") || null;
48
+ const rowHeight = getContext("rowHeight") || null;
49
+ const colClass = colWidth
50
+ ? calcSpans(classes?.[width]?.[colWidth] || [], colspan)
51
+ .map((c) => `ons-col-${c}`)
52
+ .join(" ")
53
+ : "";
54
+ </script>
55
+
56
+ {#if colWidth}
57
+ <div
58
+ class="ons-grid__col {colClass}"
59
+ style:height={typeof rowHeight === "number" ? `${rowHeight}px` : rowHeight}
60
+ >
61
+ <slot />
62
+ </div>
63
+ {:else}
64
+ <slot />
65
+ {/if}
@@ -1,14 +1,14 @@
1
- A media grid component, useful for images and small multiple charts. Setting `colwidth` to **full** allows for a single cell/image/chart with an optional caption.
2
-
3
- <!-- prettier-ignore -->
4
- ```html
5
- <script>
6
- import { Grid, GridCell } from "@onsvisual/svelte-components";
7
- </script>
8
-
9
- <Grid>
10
- <GridCell>{grid_cell_content}</GridCell>
11
- <GridCell>{grid_cell_content}</GridCell>
12
- <GridCell>{grid_cell_content}</GridCell>
13
- </Grid>
14
- ```
1
+ A media grid component, useful for images and small multiple charts. Setting `colwidth` to **full** allows for a single cell/image/chart with an optional caption.
2
+
3
+ <!-- prettier-ignore -->
4
+ ```html
5
+ <script>
6
+ import { Grid, GridCell } from "@onsvisual/svelte-components";
7
+ </script>
8
+
9
+ <Grid>
10
+ <GridCell>{grid_cell_content}</GridCell>
11
+ <GridCell>{grid_cell_content}</GridCell>
12
+ <GridCell>{grid_cell_content}</GridCell>
13
+ </Grid>
14
+ ```
@@ -1,26 +1,26 @@
1
- <script module>
2
- import { defineMeta } from "@storybook/addon-svelte-csf";
3
- import { withComponentDocs } from "../../js/withParams.js";
4
- import Header from "./Header.svelte";
5
- import componentDocs from "./docs/component.md?raw";
6
-
7
- const { Story } = defineMeta({
8
- title: "Layout/Header",
9
- component: Header,
10
- tags: ["autodocs"],
11
- argTypes: {
12
- theme: {
13
- control: { type: "select" }
14
- }
15
- },
16
- parameters: { ...withComponentDocs(componentDocs), layout: "fullscreen" }
17
- });
18
- </script>
19
-
20
- <Story name="Default" args={{}} />
21
-
22
- <Story name="Compact" args={{ compact: true }} />
23
-
24
- <Story name="Compact with page title" args={{ compact: true, title: "Page title" }} />
25
-
26
- <Story name="Compact dark theme" args={{ compact: true, title: "Page title", theme: "dark" }} />
1
+ <script module>
2
+ import { defineMeta } from "@storybook/addon-svelte-csf";
3
+ import { withComponentDocs } from "../../js/withParams.js";
4
+ import Header from "./Header.svelte";
5
+ import componentDocs from "./docs/component.md?raw";
6
+
7
+ const { Story } = defineMeta({
8
+ title: "Layout/Header",
9
+ component: Header,
10
+ tags: ["autodocs"],
11
+ argTypes: {
12
+ theme: {
13
+ control: { type: "select" }
14
+ }
15
+ },
16
+ parameters: { ...withComponentDocs(componentDocs), layout: "fullscreen" }
17
+ });
18
+ </script>
19
+
20
+ <Story name="Default" args={{}} />
21
+
22
+ <Story name="Compact" args={{ compact: true }} />
23
+
24
+ <Story name="Compact with page title" args={{ compact: true, title: "Page title" }} />
25
+
26
+ <Story name="Compact dark theme" args={{ compact: true, title: "Page title", theme: "dark" }} />