@onsvisual/svelte-components 0.1.105 → 1.0.0-next.2

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 (360) hide show
  1. package/dist/css/main.css +500 -4
  2. package/dist/datavis/BarChart/BarChart.stories.svelte +84 -0
  3. package/dist/datavis/BarChart/BarChart.stories.svelte.d.ts +23 -0
  4. package/dist/datavis/BarChart/docs/component.md +19 -0
  5. package/dist/datavis/Chart/Chart.stories.svelte +128 -0
  6. package/dist/datavis/Chart/Chart.stories.svelte.d.ts +23 -0
  7. package/dist/datavis/Chart/docs/component.md +31 -0
  8. package/dist/datavis/Chart/docs/example.md +28 -0
  9. package/dist/datavis/ColumnChart/ColumnChart.stories.svelte +84 -0
  10. package/dist/datavis/ColumnChart/ColumnChart.stories.svelte.d.ts +23 -0
  11. package/dist/datavis/ColumnChart/docs/component.md +19 -0
  12. package/dist/datavis/DotPlotChart/DotPlotChart.stories.svelte +40 -0
  13. package/dist/datavis/DotPlotChart/DotPlotChart.stories.svelte.d.ts +23 -0
  14. package/dist/datavis/DotPlotChart/docs/component.md +19 -0
  15. package/dist/datavis/LineChart/LineChart.stories.svelte +64 -0
  16. package/dist/datavis/LineChart/LineChart.stories.svelte.d.ts +23 -0
  17. package/dist/datavis/LineChart/docs/component.md +31 -0
  18. package/dist/datavis/ScatterChart/ScatterChart.stories.svelte +55 -0
  19. package/dist/datavis/ScatterChart/ScatterChart.stories.svelte.d.ts +23 -0
  20. package/dist/datavis/ScatterChart/docs/component.md +53 -0
  21. package/dist/datavis/Table/Table.stories.svelte +32 -0
  22. package/dist/{@types/datavis/Table/Table.svelte.d.ts → datavis/Table/Table.stories.svelte.d.ts} +2 -16
  23. package/dist/datavis/Table/Table.svelte +141 -149
  24. package/dist/datavis/Table/Table.svelte.d.ts +35 -0
  25. package/dist/datavis/Table/docs/component.md +20 -0
  26. package/dist/datavis/intro.mdx +22 -0
  27. package/dist/decorators/Blockquote/Blockquote.stories.svelte +25 -0
  28. package/dist/decorators/Blockquote/Blockquote.stories.svelte.d.ts +23 -0
  29. package/dist/decorators/Blockquote/Blockquote.svelte +22 -22
  30. package/dist/{@types/decorators → decorators}/Blockquote/Blockquote.svelte.d.ts +2 -2
  31. package/dist/decorators/Blockquote/docs/component.md +10 -0
  32. package/dist/decorators/Divider/Divider.stories.svelte +29 -0
  33. package/dist/decorators/Divider/Divider.stories.svelte.d.ts +23 -0
  34. package/dist/decorators/Divider/Divider.svelte +40 -59
  35. package/dist/{@types/decorators → decorators}/Divider/Divider.svelte.d.ts +10 -14
  36. package/dist/decorators/Divider/docs/component.md +12 -0
  37. package/dist/decorators/Em/Em.stories.svelte +30 -0
  38. package/dist/{@types/decorators/Em/Em.svelte.d.ts → decorators/Em/Em.stories.svelte.d.ts} +4 -10
  39. package/dist/decorators/Em/Em.svelte +42 -25
  40. package/dist/decorators/Em/Em.svelte.d.ts +33 -0
  41. package/dist/decorators/Em/docs/component.md +12 -0
  42. package/dist/decorators/Indent/Indent.stories.svelte +22 -0
  43. package/dist/decorators/Indent/Indent.stories.svelte.d.ts +23 -0
  44. package/dist/decorators/Indent/Indent.svelte +3 -0
  45. package/dist/decorators/Indent/Indent.svelte.d.ts +27 -0
  46. package/dist/decorators/Indent/docs/component.md +10 -0
  47. package/dist/{@types/index.d.ts → index.d.ts} +10 -10
  48. package/dist/index.js +13 -8
  49. package/dist/inputs/Button/Button.stories.svelte +65 -0
  50. package/dist/inputs/Button/Button.stories.svelte.d.ts +23 -0
  51. package/dist/inputs/Button/Button.svelte +113 -113
  52. package/dist/inputs/Button/Button.svelte.d.ts +51 -0
  53. package/dist/inputs/Button/Icon.svelte +44 -44
  54. package/dist/{@types/inputs → inputs}/Button/Icon.svelte.d.ts +6 -6
  55. package/dist/inputs/Button/docs/component.md +17 -0
  56. package/dist/inputs/Checkbox/Checkbox.stories.svelte +34 -0
  57. package/dist/inputs/Checkbox/Checkbox.stories.svelte.d.ts +23 -0
  58. package/dist/inputs/Checkbox/Checkbox.svelte +145 -152
  59. package/dist/{@types/inputs → inputs}/Checkbox/Checkbox.svelte.d.ts +16 -16
  60. package/dist/inputs/Checkbox/docs/component.md +14 -0
  61. package/dist/inputs/Checkboxes/Checkboxes.stories.svelte +42 -0
  62. package/dist/inputs/Checkboxes/Checkboxes.stories.svelte.d.ts +23 -0
  63. package/dist/inputs/Checkboxes/Checkboxes.svelte +29 -29
  64. package/dist/{@types/inputs → inputs}/Checkboxes/Checkboxes.svelte.d.ts +8 -8
  65. package/dist/inputs/Checkboxes/docs/component.md +20 -0
  66. package/dist/inputs/Checkboxes/docs/example.md +16 -0
  67. package/dist/inputs/Dropdown/Dropdown.stories.svelte +54 -0
  68. package/dist/{@types/inputs/Dropdown/Dropdown.svelte.d.ts → inputs/Dropdown/Dropdown.stories.svelte.d.ts} +2 -16
  69. package/dist/inputs/Dropdown/Dropdown.svelte +49 -55
  70. package/dist/inputs/Dropdown/Dropdown.svelte.d.ts +37 -0
  71. package/dist/inputs/Dropdown/docs/component.md +22 -0
  72. package/dist/inputs/ErrorPanel/ErrorPanel.stories.svelte +25 -0
  73. package/dist/inputs/ErrorPanel/ErrorPanel.stories.svelte.d.ts +23 -0
  74. package/dist/inputs/ErrorPanel/ErrorPanel.svelte +14 -30
  75. package/dist/{@types/inputs → inputs}/ErrorPanel/ErrorPanel.svelte.d.ts +2 -2
  76. package/dist/inputs/ErrorPanel/docs/component.md +14 -0
  77. package/dist/inputs/ErrorSummary/ErrorSummary.stories.svelte +34 -0
  78. package/dist/inputs/ErrorSummary/ErrorSummary.stories.svelte.d.ts +23 -0
  79. package/dist/inputs/ErrorSummary/ErrorSummary.svelte +34 -32
  80. package/dist/{@types/inputs → inputs}/ErrorSummary/ErrorSummary.svelte.d.ts +4 -4
  81. package/dist/inputs/ErrorSummary/docs/component.md +17 -0
  82. package/dist/inputs/ErrorSummary/docs/example.md +12 -0
  83. package/dist/inputs/Input/Input.stories.svelte +73 -0
  84. package/dist/inputs/Input/Input.stories.svelte.d.ts +23 -0
  85. package/dist/inputs/Input/Input.svelte +125 -156
  86. package/dist/inputs/Input/Input.svelte.d.ts +51 -0
  87. package/dist/inputs/Input/docs/component.md +16 -0
  88. package/dist/inputs/Radios/Radio.svelte +68 -102
  89. package/dist/{@types/inputs → inputs}/Radios/Radio.svelte.d.ts +6 -6
  90. package/dist/inputs/Radios/Radios.stories.svelte +51 -0
  91. package/dist/inputs/Radios/Radios.stories.svelte.d.ts +23 -0
  92. package/dist/inputs/Radios/Radios.svelte +38 -38
  93. package/dist/{@types/inputs → inputs}/Radios/Radios.svelte.d.ts +10 -10
  94. package/dist/inputs/Radios/docs/component.md +24 -0
  95. package/dist/inputs/Radios/docs/example.md +21 -0
  96. package/dist/inputs/Select/Select.stories.svelte +61 -0
  97. package/dist/inputs/Select/Select.stories.svelte.d.ts +23 -0
  98. package/dist/inputs/Select/Select.svelte +271 -289
  99. package/dist/inputs/Select/Select.svelte.d.ts +58 -0
  100. package/dist/inputs/Select/docs/component.md +27 -0
  101. package/dist/inputs/Textarea/Textarea.stories.svelte +40 -0
  102. package/dist/{@types/inputs/Textarea/Textarea.svelte.d.ts → inputs/Textarea/Textarea.stories.svelte.d.ts} +2 -16
  103. package/dist/inputs/Textarea/Textarea.svelte +93 -89
  104. package/dist/inputs/Textarea/Textarea.svelte.d.ts +37 -0
  105. package/dist/inputs/Textarea/docs/component.md +16 -0
  106. package/dist/intro.mdx +60 -0
  107. package/dist/js/menuOptions.js +14 -0
  108. package/dist/{@types/js → js}/utils.d.ts +8 -2
  109. package/dist/js/utils.js +61 -44
  110. package/dist/{@types/js → js}/withParams.d.ts +3 -9
  111. package/dist/js/withParams.js +17 -20
  112. package/dist/layout/Accordion/Accordion.stories.svelte +30 -0
  113. package/dist/{@types/layout/Accordion/Accordion.svelte.d.ts → layout/Accordion/Accordion.stories.svelte.d.ts} +4 -8
  114. package/dist/layout/Accordion/Accordion.svelte +49 -29
  115. package/dist/layout/Accordion/Accordion.svelte.d.ts +31 -0
  116. package/dist/layout/Accordion/AccordionItem.svelte +46 -81
  117. package/dist/{@types/layout → layout}/Accordion/AccordionItem.svelte.d.ts +6 -6
  118. package/dist/layout/Accordion/accordion.d.ts +18 -0
  119. package/dist/layout/Accordion/accordion.js +64 -0
  120. package/dist/layout/Accordion/details.d.ts +14 -0
  121. package/dist/layout/Accordion/details.js +83 -0
  122. package/dist/layout/Accordion/docs/component.md +19 -0
  123. package/dist/layout/AnalyticsBanner/AnalyticsBanner.stories.svelte +16 -0
  124. package/dist/{@types/layout/AnalyticsBanner/AnalyticsBanner.svelte.d.ts → layout/AnalyticsBanner/AnalyticsBanner.stories.svelte.d.ts} +2 -13
  125. package/dist/layout/AnalyticsBanner/AnalyticsBanner.svelte +284 -273
  126. package/dist/layout/AnalyticsBanner/AnalyticsBanner.svelte.d.ts +36 -0
  127. package/dist/layout/AnalyticsBanner/docs/component.md +17 -0
  128. package/dist/layout/BackLink/BackLink.stories.svelte +16 -0
  129. package/dist/layout/BackLink/BackLink.stories.svelte.d.ts +23 -0
  130. package/dist/layout/BackLink/BackLink.svelte +30 -0
  131. package/dist/layout/BackLink/BackLink.svelte.d.ts +25 -0
  132. package/dist/layout/BackLink/docs/component.md +12 -0
  133. package/dist/layout/Breadcrumb/Breadcrumb.stories.svelte +31 -0
  134. package/dist/layout/Breadcrumb/Breadcrumb.stories.svelte.d.ts +23 -0
  135. package/dist/layout/Breadcrumb/Breadcrumb.svelte +44 -67
  136. package/dist/{@types/layout → layout}/Breadcrumb/Breadcrumb.svelte.d.ts +6 -12
  137. package/dist/layout/Breadcrumb/docs/component.md +15 -0
  138. package/dist/layout/Card/Card.stories.svelte +39 -0
  139. package/dist/layout/Card/Card.stories.svelte.d.ts +23 -0
  140. package/dist/layout/Card/Card.svelte +120 -0
  141. package/dist/layout/Card/Card.svelte.d.ts +49 -0
  142. package/dist/layout/Card/docs/component.md +14 -0
  143. package/dist/layout/Card/docs/eg-images.md +27 -0
  144. package/dist/layout/Card/docs/eg-links.md +12 -0
  145. package/dist/layout/Card/docs/eg-spans.md +12 -0
  146. package/dist/layout/Contents/Contents.stories.svelte +27 -0
  147. package/dist/{@types/layout/Contents/Contents.svelte.d.ts → layout/Contents/Contents.stories.svelte.d.ts} +2 -8
  148. package/dist/layout/Contents/Contents.svelte +42 -40
  149. package/dist/layout/Contents/Contents.svelte.d.ts +29 -0
  150. package/dist/layout/Contents/docs/component.md +18 -0
  151. package/dist/layout/DescriptionList/DescriptionList.stories.svelte +22 -0
  152. package/dist/layout/DescriptionList/DescriptionList.stories.svelte.d.ts +23 -0
  153. package/dist/layout/DescriptionList/DescriptionList.svelte +48 -0
  154. package/dist/layout/DescriptionList/DescriptionList.svelte.d.ts +27 -0
  155. package/dist/layout/DescriptionList/docs/component.md +18 -0
  156. package/dist/layout/Details/Details.stories.svelte +32 -0
  157. package/dist/layout/Details/Details.stories.svelte.d.ts +23 -0
  158. package/dist/layout/Details/Details.svelte +70 -0
  159. package/dist/layout/Details/Details.svelte.d.ts +35 -0
  160. package/dist/layout/Details/docs/component.md +14 -0
  161. package/dist/layout/DocumentList/Document.svelte +103 -0
  162. package/dist/layout/DocumentList/Document.svelte.d.ts +39 -0
  163. package/dist/layout/DocumentList/DocumentList.stories.svelte +73 -0
  164. package/dist/layout/DocumentList/DocumentList.stories.svelte.d.ts +23 -0
  165. package/dist/layout/DocumentList/DocumentList.svelte +17 -0
  166. package/dist/layout/DocumentList/DocumentList.svelte.d.ts +27 -0
  167. package/dist/layout/DocumentList/docs/component.md +28 -0
  168. package/dist/layout/DocumentList/docs/example.md +23 -0
  169. package/dist/layout/ErrorPage/ErrorPage.stories.svelte +18 -0
  170. package/dist/{@types/layout/ErrorPage/ErrorPage.svelte.d.ts → layout/ErrorPage/ErrorPage.stories.svelte.d.ts} +2 -6
  171. package/dist/layout/ErrorPage/ErrorPage.svelte +45 -40
  172. package/dist/layout/ErrorPage/ErrorPage.svelte.d.ts +29 -0
  173. package/dist/layout/ErrorPage/docs/component.md +13 -0
  174. package/dist/layout/Footer/Footer.stories.svelte +24 -0
  175. package/dist/{@types/layout/Footer/Footer.svelte.d.ts → layout/Footer/Footer.stories.svelte.d.ts} +4 -12
  176. package/dist/layout/Footer/Footer.svelte +372 -257
  177. package/dist/layout/Footer/Footer.svelte.d.ts +27 -0
  178. package/dist/layout/Footer/docs/component.md +10 -0
  179. package/dist/layout/Grid/Grid.stories.svelte +50 -0
  180. package/dist/layout/Grid/Grid.stories.svelte.d.ts +23 -0
  181. package/dist/layout/Grid/Grid.svelte +110 -160
  182. package/dist/layout/Grid/Grid.svelte.d.ts +49 -0
  183. package/dist/layout/Grid/GridCell.svelte +65 -0
  184. package/dist/layout/Grid/GridCell.svelte.d.ts +27 -0
  185. package/dist/layout/Grid/docs/component.md +14 -0
  186. package/dist/layout/Header/Header.stories.svelte +26 -0
  187. package/dist/{@types/layout/Header/Header.svelte.d.ts → layout/Header/Header.stories.svelte.d.ts} +4 -20
  188. package/dist/layout/Header/Header.svelte +842 -612
  189. package/dist/layout/Header/Header.svelte.d.ts +39 -0
  190. package/dist/layout/Header/docs/component.md +11 -0
  191. package/dist/layout/Hero/Hero.stories.svelte +77 -0
  192. package/dist/layout/Hero/Hero.stories.svelte.d.ts +23 -0
  193. package/dist/layout/Hero/Hero.svelte +350 -80
  194. package/dist/layout/Hero/Hero.svelte.d.ts +55 -0
  195. package/dist/layout/Hero/docs/component.md +14 -0
  196. package/dist/layout/Highlight/Highlight.stories.svelte +29 -0
  197. package/dist/layout/Highlight/Highlight.stories.svelte.d.ts +23 -0
  198. package/dist/layout/Highlight/Highlight.svelte +78 -66
  199. package/dist/layout/Highlight/Highlight.svelte.d.ts +45 -0
  200. package/dist/layout/Highlight/docs/component.md +12 -0
  201. package/dist/layout/Image/Image.stories.svelte +23 -0
  202. package/dist/layout/Image/Image.stories.svelte.d.ts +23 -0
  203. package/dist/layout/Image/Image.svelte +24 -0
  204. package/dist/layout/Image/Image.svelte.d.ts +27 -0
  205. package/dist/layout/Image/docs/component.md +15 -0
  206. package/dist/layout/List/Li.svelte +3 -0
  207. package/dist/layout/List/Li.svelte.d.ts +27 -0
  208. package/dist/layout/List/List.stories.svelte +40 -0
  209. package/dist/{@types/layout/List/List.svelte.d.ts → layout/List/List.stories.svelte.d.ts} +4 -8
  210. package/dist/layout/List/List.svelte +34 -25
  211. package/dist/layout/List/List.svelte.d.ts +29 -0
  212. package/dist/layout/List/docs/component.md +14 -0
  213. package/dist/layout/List/docs/example.md +12 -0
  214. package/dist/layout/NavSections/NavSection.svelte +66 -66
  215. package/dist/{@types/layout → layout}/NavSections/NavSection.svelte.d.ts +10 -10
  216. package/dist/layout/NavSections/NavSections.stories.svelte +48 -0
  217. package/dist/layout/NavSections/NavSections.stories.svelte.d.ts +23 -0
  218. package/dist/layout/NavSections/NavSections.svelte +135 -183
  219. package/dist/{@types/layout → layout}/NavSections/NavSections.svelte.d.ts +14 -24
  220. package/dist/layout/NavSections/docs/component.md +27 -0
  221. package/dist/layout/Notice/Notice.stories.svelte +61 -0
  222. package/dist/layout/Notice/Notice.stories.svelte.d.ts +23 -0
  223. package/dist/layout/Notice/Notice.svelte +45 -54
  224. package/dist/{@types/layout → layout}/Notice/Notice.svelte.d.ts +2 -6
  225. package/dist/layout/Notice/docs/component.md +14 -0
  226. package/dist/layout/PhaseBanner/PhaseBanner.stories.svelte +24 -0
  227. package/dist/{@types/layout/PhaseBanner/PhaseBanner.svelte.d.ts → layout/PhaseBanner/PhaseBanner.stories.svelte.d.ts} +2 -4
  228. package/dist/layout/PhaseBanner/PhaseBanner.svelte +56 -35
  229. package/dist/layout/PhaseBanner/PhaseBanner.svelte.d.ts +25 -0
  230. package/dist/layout/PhaseBanner/docs/component.md +14 -0
  231. package/dist/layout/RelatedContent/RelatedContent.stories.svelte +36 -0
  232. package/dist/{@types/layout/RelatedContent/RelatedContent.svelte.d.ts → layout/RelatedContent/RelatedContent.stories.svelte.d.ts} +2 -2
  233. package/dist/layout/RelatedContent/RelatedContent.svelte +44 -54
  234. package/dist/layout/RelatedContent/RelatedContent.svelte.d.ts +31 -0
  235. package/dist/layout/RelatedContent/docs/component.md +16 -0
  236. package/dist/layout/Scroller/Scroller.stories.svelte +61 -0
  237. package/dist/layout/Scroller/Scroller.stories.svelte.d.ts +23 -0
  238. package/dist/layout/Scroller/Scroller.svelte +341 -331
  239. package/dist/{@types/layout → layout}/Scroller/Scroller.svelte.d.ts +22 -20
  240. package/dist/layout/Scroller/ScrollerSection.svelte +54 -73
  241. package/dist/{@types/layout → layout}/Scroller/ScrollerSection.svelte.d.ts +6 -12
  242. package/dist/layout/Scroller/docs/component.md +41 -0
  243. package/dist/layout/Section/Section.stories.svelte +33 -0
  244. package/dist/layout/Section/Section.stories.svelte.d.ts +23 -0
  245. package/dist/layout/Section/Section.svelte +53 -77
  246. package/dist/layout/Section/Section.svelte.d.ts +41 -0
  247. package/dist/layout/Section/docs/component.md +12 -0
  248. package/dist/layout/ShareButtons/ShareButtons.stories.svelte +20 -0
  249. package/dist/layout/ShareButtons/ShareButtons.stories.svelte.d.ts +23 -0
  250. package/dist/layout/ShareButtons/ShareButtons.svelte +118 -175
  251. package/dist/{@types/layout → layout}/ShareButtons/ShareButtons.svelte.d.ts +6 -14
  252. package/dist/layout/ShareButtons/docs/component.md +14 -0
  253. package/dist/layout/SkipLink/SkipLink.stories.svelte +16 -0
  254. package/dist/{@types/layout/SkipLink/SkipLink.svelte.d.ts → layout/SkipLink/SkipLink.stories.svelte.d.ts} +2 -2
  255. package/dist/layout/SkipLink/SkipLink.svelte +6 -6
  256. package/dist/layout/SkipLink/SkipLink.svelte.d.ts +23 -0
  257. package/dist/layout/SkipLink/docs/component.md +11 -0
  258. package/dist/layout/Summary/Summary.stories.svelte +21 -0
  259. package/dist/{@types/layout/Summary/Summary.svelte.d.ts → layout/Summary/Summary.stories.svelte.d.ts} +2 -4
  260. package/dist/layout/Summary/Summary.svelte +50 -46
  261. package/dist/layout/Summary/Summary.svelte.d.ts +31 -0
  262. package/dist/layout/Summary/docs/component.md +17 -0
  263. package/dist/layout/Tabs/Tab.svelte +42 -42
  264. package/dist/{@types/layout → layout}/Tabs/Tab.svelte.d.ts +6 -6
  265. package/dist/layout/Tabs/Tabs.stories.svelte +29 -0
  266. package/dist/layout/Tabs/Tabs.stories.svelte.d.ts +23 -0
  267. package/dist/layout/Tabs/Tabs.svelte +71 -97
  268. package/dist/{@types/layout → layout}/Tabs/Tabs.svelte.d.ts +6 -6
  269. package/dist/layout/Tabs/docs/component.md +16 -0
  270. package/dist/layout/Tabs/tabs.d.ts +43 -0
  271. package/dist/layout/Tabs/tabs.js +302 -0
  272. package/dist/templates/EmbedArticle/EmbedArticle.stories.svelte +72 -0
  273. package/dist/templates/EmbedArticle/EmbedArticle.stories.svelte.d.ts +23 -0
  274. package/dist/templates/EmbedArticle/docs/component.md +56 -0
  275. package/dist/templates/FeatureArticle/FeatureArticle.stories.svelte +151 -0
  276. package/dist/templates/FeatureArticle/FeatureArticle.stories.svelte.d.ts +23 -0
  277. package/dist/templates/FeatureArticle/docs/component.md +125 -0
  278. package/dist/templates/StandardArticle/StandardArticle.stories.svelte +86 -0
  279. package/dist/templates/StandardArticle/StandardArticle.stories.svelte.d.ts +23 -0
  280. package/dist/templates/StandardArticle/docs/component.md +76 -0
  281. package/dist/templates/intro.mdx +19 -0
  282. package/dist/wrappers/Container/Container.stories.svelte +38 -0
  283. package/dist/wrappers/Container/Container.stories.svelte.d.ts +23 -0
  284. package/dist/wrappers/Container/Container.svelte +61 -140
  285. package/dist/wrappers/Container/Container.svelte.d.ts +39 -0
  286. package/dist/wrappers/Container/docs/component.md +10 -0
  287. package/dist/wrappers/Embed/Embed.stories.svelte +24 -0
  288. package/dist/wrappers/Embed/Embed.stories.svelte.d.ts +23 -0
  289. package/dist/wrappers/Embed/Embed.svelte +33 -32
  290. package/dist/{@types/wrappers → wrappers}/Embed/Embed.svelte.d.ts +4 -4
  291. package/dist/wrappers/Embed/docs/component.md +15 -0
  292. package/dist/wrappers/LazyLoad/LazyLoad.stories.svelte +37 -0
  293. package/dist/wrappers/LazyLoad/LazyLoad.stories.svelte.d.ts +23 -0
  294. package/dist/wrappers/LazyLoad/LazyLoad.svelte +34 -35
  295. package/dist/{@types/wrappers → wrappers}/LazyLoad/LazyLoad.svelte.d.ts +6 -6
  296. package/dist/wrappers/LazyLoad/docs/component.md +29 -0
  297. package/dist/wrappers/Main/Main.stories.svelte +24 -0
  298. package/dist/wrappers/Main/Main.stories.svelte.d.ts +23 -0
  299. package/dist/wrappers/Main/Main.svelte +10 -3
  300. package/dist/{@types/wrappers → wrappers}/Main/Main.svelte.d.ts +2 -4
  301. package/dist/wrappers/Main/docs/component.md +16 -0
  302. package/dist/wrappers/Observe/Observe.stories.svelte +29 -0
  303. package/dist/wrappers/Observe/Observe.stories.svelte.d.ts +23 -0
  304. package/dist/wrappers/Observe/Observe.svelte +24 -24
  305. package/dist/{@types/wrappers → wrappers}/Observe/Observe.svelte.d.ts +2 -2
  306. package/dist/wrappers/Observe/docs/component.md +22 -0
  307. package/dist/wrappers/Theme/Theme.stories.svelte +70 -0
  308. package/dist/{@types/wrappers/Theme/Theme.svelte.d.ts → wrappers/Theme/Theme.stories.svelte.d.ts} +4 -20
  309. package/dist/wrappers/Theme/Theme.svelte +64 -101
  310. package/dist/wrappers/Theme/Theme.svelte.d.ts +37 -0
  311. package/dist/wrappers/Theme/docs/component.md +10 -0
  312. package/dist/wrappers/Theme/themes.d.ts +143 -0
  313. package/dist/wrappers/Theme/themes.js +68 -27
  314. package/package.json +82 -195
  315. package/dist/@types/actions/cssVariables/index.d.ts +0 -4
  316. package/dist/@types/actions/resizeObserver/index.d.ts +0 -4
  317. package/dist/@types/inputs/AccessibleSelect/AccessibleSelect.svelte.d.ts +0 -58
  318. package/dist/@types/inputs/Button/Button.svelte.d.ts +0 -51
  319. package/dist/@types/inputs/Input/Input.svelte.d.ts +0 -51
  320. package/dist/@types/inputs/Select/Select.svelte.d.ts +0 -77
  321. package/dist/@types/js/docsPage.d.ts +0 -25
  322. package/dist/@types/layout/Backlink/Backlink.svelte.d.ts +0 -23
  323. package/dist/@types/layout/Cards/Card.svelte.d.ts +0 -49
  324. package/dist/@types/layout/Cards/Cards.svelte.d.ts +0 -51
  325. package/dist/@types/layout/Footer/ONSLogo.svelte.d.ts +0 -29
  326. package/dist/@types/layout/Grid/Grid.svelte.d.ts +0 -53
  327. package/dist/@types/layout/Header/ONSLogo.svelte.d.ts +0 -31
  328. package/dist/@types/layout/Hero/Hero.svelte.d.ts +0 -47
  329. package/dist/@types/layout/Highlight/Highlight.svelte.d.ts +0 -43
  330. package/dist/@types/layout/NavSections/SectionBacklink.svelte.d.ts +0 -23
  331. package/dist/@types/layout/Section/Section.svelte.d.ts +0 -47
  332. package/dist/@types/layout/Survey/Survey.svelte.d.ts +0 -23
  333. package/dist/@types/layout/Survey/init-survey.d.ts +0 -1
  334. package/dist/@types/layout/Titleblock/Meta.svelte.d.ts +0 -23
  335. package/dist/@types/layout/Titleblock/Titleblock.svelte.d.ts +0 -53
  336. package/dist/@types/layout/Twisty/Twisty.svelte.d.ts +0 -33
  337. package/dist/@types/wrappers/Container/Container.svelte.d.ts +0 -45
  338. package/dist/@types/wrappers/Theme/themes.d.ts +0 -29
  339. package/dist/actions/cssVariables/index.js +0 -20
  340. package/dist/actions/resizeObserver/index.js +0 -25
  341. package/dist/globals.d.ts +0 -23
  342. package/dist/inputs/AccessibleSelect/AccessibleSelect.svelte +0 -280
  343. package/dist/inputs/AccessibleSelect/options.js +0 -263
  344. package/dist/js/docsPage.js +0 -13
  345. package/dist/layout/Backlink/Backlink.svelte +0 -32
  346. package/dist/layout/Cards/Card.svelte +0 -99
  347. package/dist/layout/Cards/Cards.svelte +0 -95
  348. package/dist/layout/Footer/ONSLogo.svelte +0 -150
  349. package/dist/layout/Header/ONSLogo.svelte +0 -148
  350. package/dist/layout/NavSections/SectionBacklink.svelte +0 -31
  351. package/dist/layout/Survey/Survey.svelte +0 -96
  352. package/dist/layout/Survey/init-survey.js +0 -230
  353. package/dist/layout/Titleblock/Meta.svelte +0 -26
  354. package/dist/layout/Titleblock/Titleblock.svelte +0 -147
  355. package/dist/layout/Twisty/Twisty.svelte +0 -56
  356. /package/dist/{@types/datavis/shared → datavis/demo-data}/data-scatter.d.ts +0 -0
  357. /package/dist/datavis/{shared → demo-data}/data-scatter.js +0 -0
  358. /package/dist/{@types/datavis/shared → datavis/demo-data}/data.d.ts +0 -0
  359. /package/dist/datavis/{shared → demo-data}/data.js +0 -0
  360. /package/dist/{@types/inputs/AccessibleSelect/options.d.ts → js/menuOptions.d.ts} +0 -0
@@ -0,0 +1,40 @@
1
+ <script module>
2
+ import { defineMeta } from "@storybook/addon-svelte-csf";
3
+ import { withComponentDocs } from "../../js/withParams.js";
4
+ import Textarea from "./Textarea.svelte";
5
+ import componentDocs from "./docs/component.md?raw";
6
+
7
+ const { Story } = defineMeta({
8
+ title: "Inputs/Textarea",
9
+ component: Textarea,
10
+ tags: ["autodocs"],
11
+ argTypes: {},
12
+ parameters: withComponentDocs(componentDocs)
13
+ });
14
+ </script>
15
+
16
+ {#snippet template(args)}
17
+ <div style:padding="12px">
18
+ <Textarea {...args} />
19
+ </div>
20
+ {/snippet}
21
+
22
+ <Story
23
+ name="Default"
24
+ args={{
25
+ id: "text",
26
+ label: "Enter some text"
27
+ }}
28
+ {template}
29
+ />
30
+
31
+ <Story
32
+ name="Hidden label and character limit"
33
+ args={{
34
+ id: "text",
35
+ label: "Enter some text",
36
+ hideLabel: true,
37
+ charLimit: 200
38
+ }}
39
+ {template}
40
+ />
@@ -2,14 +2,7 @@
2
2
  /** @typedef {typeof __propDef.events} TextareaEvents */
3
3
  /** @typedef {typeof __propDef.slots} TextareaSlots */
4
4
  export default class Textarea extends SvelteComponentTyped<{
5
- id?: string;
6
- width?: number;
7
- label?: string;
8
- value?: string;
9
- description?: string;
10
- hideLabel?: boolean;
11
- charLimit?: number;
12
- rows?: number;
5
+ [x: string]: never;
13
6
  }, {
14
7
  [evt: string]: CustomEvent<any>;
15
8
  }, {}> {
@@ -20,14 +13,7 @@ export type TextareaSlots = typeof __propDef.slots;
20
13
  import { SvelteComponentTyped } from "svelte";
21
14
  declare const __propDef: {
22
15
  props: {
23
- id?: string;
24
- width?: number;
25
- label?: string;
26
- value?: string;
27
- description?: string;
28
- hideLabel?: boolean;
29
- charLimit?: number;
30
- rows?: number;
16
+ [x: string]: never;
31
17
  };
32
18
  events: {
33
19
  [evt: string]: CustomEvent<any>;
@@ -1,99 +1,103 @@
1
1
  <script>
2
- import { createEventDispatcher } from "svelte";
2
+ import { createEventDispatcher } from "svelte";
3
3
 
4
- const dispatch = createEventDispatcher();
4
+ const dispatch = createEventDispatcher();
5
5
 
6
- /**
7
- * ID for &lt;textarea&gt; element
8
- * @type {string}
9
- */
10
- export let id = "";
11
- /**
12
- * A prop to bind to for the entered value
13
- * @type {string}
14
- */
15
- export let value = "";
16
- /**
17
- * A label to describe the &lt;textarea&gt; element (expected for accessibility)
18
- * @type {string}
19
- */
20
- export let label = "Enter some text";
21
- /**
22
- * Visually hide the label
23
- * @type {boolean}
24
- */
25
- export let hideLabel = false;
26
- /**
27
- * An optional description to help users know what to enter
28
- * @type {string}
29
- */
30
- export let description = "";
31
- /**
32
- * The maximum number of characters that can be entered (optional)
33
- * @type {number}
34
- */
35
- export let charLimit = null;
36
- /**
37
- * The height of the &lt;textarea&gt; element in rows
38
- * @type {number}
39
- */
40
- export let rows = 8;
41
- /**
42
- * The width of the &lt;textarea&gt; element in characters
43
- * @type {number}
44
- */
45
- export let width = 30;
6
+ /**
7
+ * ID for &lt;textarea&gt; element
8
+ * @type {string}
9
+ */
10
+ export let id = "";
11
+ /**
12
+ * A prop to bind to for the entered value
13
+ * @type {string}
14
+ */
15
+ export let value = "";
16
+ /**
17
+ * A label to describe the &lt;textarea&gt; element (expected for accessibility)
18
+ * @type {string}
19
+ */
20
+ export let label = "Enter some text";
21
+ /**
22
+ * Visually hide the label
23
+ * @type {boolean}
24
+ */
25
+ export let hideLabel = false;
26
+ /**
27
+ * An optional description to help users know what to enter
28
+ * @type {string}
29
+ */
30
+ export let description = "";
31
+ /**
32
+ * The maximum number of characters that can be entered (optional)
33
+ * @type {number|null}
34
+ */
35
+ export let charLimit = null;
36
+ /**
37
+ * The height of the &lt;textarea&gt; element in rows
38
+ * @type {number}
39
+ */
40
+ export let rows = 8;
41
+ /**
42
+ * The width of the &lt;textarea&gt; element in characters
43
+ * @type {number}
44
+ */
45
+ export let width = 30;
46
46
 
47
- $: remaining = charLimit && value.length ? charLimit - value.length : charLimit || null;
47
+ $: remaining = charLimit && value.length ? charLimit - value.length : charLimit || null;
48
48
  </script>
49
49
 
50
50
  <div class="ons-field">
51
- {#if label}
52
- <label
53
- class="ons-label ons-label--with-description"
54
- class:ons-u-vh="{hideLabel}"
55
- aria-describedby="{description ? `${id}-description-hint` : null}"
56
- for="{id}">{label}</label
57
- >
58
- {/if}
59
- {#if description}
60
- <span id="{id}-description-hint" class="ons-label__description ons-input--with-description"
61
- >{description}</span
62
- >
63
- {/if}
64
- <textarea
65
- id="{id}"
66
- bind:value="{value}"
67
- class="ons-input ons-input--textarea {Number.isInteger(width) ? `ons-input--w-${width}` : null}"
68
- class:ons-js-char-limit-input="{charLimit}"
69
- class:ons-input--limit-reached="{remaining === 0}"
70
- name="{id}"
71
- rows="{rows}"
72
- maxlength="{charLimit}"
73
- data-char-limit-ref="{id}-lim"
74
- aria-describedby="textarea-char-limit-lim"></textarea>
75
- {#if Number.isInteger(remaining)}
76
- <span
77
- id="textarea-char-limit-lim"
78
- class="ons-input__limit ons-u-fs-s--b ons-u-mt-xs"
79
- class:ons-input__limit--reached="{remaining === 0}"
80
- data-charcount-singular="You have {remaining} character remaining"
81
- data-charcount-plural="You have {remaining} characters remaining"
82
- data-charcount-limit-singular=""
83
- data-charcount-limit-plural=""
84
- aria-live="{remaining === 0 ? 'assertive' : 'polite'}"
85
- >
86
- You have {remaining}
87
- {remaining === 1 ? "character" : "characters"} remaining
88
- </span>
89
- {/if}
51
+ {#if label}
52
+ <label
53
+ class="ons-label ons-label--with-description"
54
+ class:ons-u-vh={hideLabel}
55
+ aria-describedby={description ? `${id}-description-hint` : null}
56
+ for={id}>{label}</label
57
+ >
58
+ {/if}
59
+ {#if description}
60
+ <span id="{id}-description-hint" class="ons-label__description ons-input--with-description"
61
+ >{description}</span
62
+ >
63
+ {/if}
64
+ <textarea
65
+ {id}
66
+ bind:value
67
+ class="ons-input ons-input--textarea {Number.isInteger(width) ? `ons-input--w-${width}` : null}"
68
+ class:ons-js-char-limit-input={charLimit}
69
+ class:ons-input--limit-reached={remaining === 0}
70
+ name={id}
71
+ {rows}
72
+ maxlength={charLimit}
73
+ data-char-limit-ref="{id}-lim"
74
+ aria-describedby="textarea-char-limit-lim"
75
+ ></textarea>
76
+ {#if Number.isInteger(remaining)}
77
+ <span
78
+ id="textarea-char-limit-lim"
79
+ class="ons-input__limit ons-u-fs-s--b ons-u-mt-xs"
80
+ class:ons-input__limit--reached={remaining === 0}
81
+ data-charcount-singular="You have {remaining} character remaining"
82
+ data-charcount-plural="You have {remaining} characters remaining"
83
+ data-charcount-limit-singular=""
84
+ data-charcount-limit-plural=""
85
+ aria-live={remaining === 0 ? "assertive" : "polite"}
86
+ >
87
+ You have {remaining}
88
+ {remaining === 1 ? "character" : "characters"} remaining
89
+ </span>
90
+ {/if}
90
91
  </div>
91
92
 
92
93
  <style>
93
- .ons-input--textarea {
94
- background: var(--background, white);
95
- border-color: currentColor;
96
- }
97
- .ons-input--textarea:focus {
98
- box-shadow: 0 0 0 1px currentColor, 0 0 0 4px #fbc900;
99
- }</style>
94
+ .ons-input--textarea {
95
+ background: var(--background, white);
96
+ border-color: currentColor;
97
+ }
98
+ .ons-input--textarea:focus {
99
+ box-shadow:
100
+ 0 0 0 1px currentColor,
101
+ 0 0 0 4px #fbc900;
102
+ }
103
+ </style>
@@ -0,0 +1,37 @@
1
+ /** @typedef {typeof __propDef.props} TextareaProps */
2
+ /** @typedef {typeof __propDef.events} TextareaEvents */
3
+ /** @typedef {typeof __propDef.slots} TextareaSlots */
4
+ export default class Textarea extends SvelteComponentTyped<{
5
+ id?: string | undefined;
6
+ width?: number | undefined;
7
+ label?: string | undefined;
8
+ value?: string | undefined;
9
+ hideLabel?: boolean | undefined;
10
+ description?: string | undefined;
11
+ charLimit?: number | null | undefined;
12
+ rows?: number | undefined;
13
+ }, {
14
+ [evt: string]: CustomEvent<any>;
15
+ }, {}> {
16
+ }
17
+ export type TextareaProps = typeof __propDef.props;
18
+ export type TextareaEvents = typeof __propDef.events;
19
+ export type TextareaSlots = typeof __propDef.slots;
20
+ import { SvelteComponentTyped } from "svelte";
21
+ declare const __propDef: {
22
+ props: {
23
+ id?: string | undefined;
24
+ width?: number | undefined;
25
+ label?: string | undefined;
26
+ value?: string | undefined;
27
+ hideLabel?: boolean | undefined;
28
+ description?: string | undefined;
29
+ charLimit?: number | null | undefined;
30
+ rows?: number | undefined;
31
+ };
32
+ events: {
33
+ [evt: string]: CustomEvent<any>;
34
+ };
35
+ slots: {};
36
+ };
37
+ export {};
@@ -0,0 +1,16 @@
1
+ A standard `<input>` element with Svelte bindings and events.
2
+
3
+ <!-- prettier-ignore -->
4
+ ```html
5
+ <script>
6
+ import { Input } from "@onsvisual/svelte-components";
7
+
8
+ // Bind the <input> value to a variable (reactive)
9
+ let value;
10
+
11
+ // Define your own function on change
12
+ const handleChange = (e) => console.log(e);
13
+ </script>
14
+
15
+ <Input bind:value on:change="{handleChange}" />
16
+ ```
package/dist/intro.mdx ADDED
@@ -0,0 +1,60 @@
1
+ import { Meta } from "@storybook/addon-docs/blocks";
2
+
3
+ <Meta title="Introduction" />
4
+
5
+ # @onsvisual/svelte-components
6
+
7
+ <p>
8
+ <a href="https://www.npmjs.com/package/@onsvisual/svelte-components">
9
+ <img
10
+ src="https://badge.fury.io/js/@onsvisual%2Fsvelte-components.svg"
11
+ alt="npm version"
12
+ style={{ display: "inline-block", margin: "0 5px 0 0" }}
13
+ />
14
+ </a>
15
+ <a href="https://github.com/onsvisual/svelte-components">
16
+ <img
17
+ src="https://badgen.net/badge/icon/GitHub?icon=github&label"
18
+ alt="GitHub"
19
+ style={{ display: "inline-block", margin: "0 5px 0 0" }}
20
+ />
21
+ </a>
22
+ </p>
23
+
24
+ A library of ONS-branded Svelte components for projects large and small.
25
+
26
+ The components and styles in this library based on the [ONS Design System](https://service-manual.ons.gov.uk/design-system/), but with a number of tweaks and additions to make them suitable for a range of interactive data visualisation and data journalism projects.
27
+
28
+ ## Installing the components
29
+
30
+ There are two ways to start a new project using these components.
31
+
32
+ ### 1. Use a ready-made template
33
+
34
+ When you start a project from one of the following templates, @onsvisual/svelte-components will already be installed:
35
+
36
+ - [sveltekit-starter](https://github.com/ONSvisual/sveltekit-starter)
37
+ - [robo-article](https://github.com/ONSvisual/robo-article)
38
+ - [robo-embed](https://github.com/ONSvisual/robo-embed)
39
+
40
+ ### 2. Start a new Svelte Kit project from scratch
41
+
42
+ If you want to start from scratch, you can set up a [new Svelte Kit project](https://kit.svelte.dev/docs/creating-a-project), then run the following command.
43
+
44
+ ```bash
45
+ npm install @onsvisual/svelte-components --save-dev
46
+ ```
47
+
48
+ ## Using the components
49
+
50
+ Checkout the [guides](?path=/docs/guides-using-these-docs--page), or dive straight into the docs to start using components.
51
+
52
+ {/* prettier-ignore */}
53
+ ```html
54
+ <script>
55
+ import "@onsvisual/svelte-components/css/main.css";
56
+ import { Section } from "@onsvisual/svelte-components";
57
+ </script>
58
+
59
+ <Section title="Hello world!">This is my first ONS Svelte component.</Section>
60
+ ```
@@ -0,0 +1,14 @@
1
+ export default [
2
+ { id: "E12000001", label: "North East", group: "England" },
3
+ { id: "E12000002", label: "North West", group: "England" },
4
+ { id: "E12000003", label: "Yorkshire and The Humber", group: "England" },
5
+ { id: "E12000004", label: "East Midlands", group: "England" },
6
+ { id: "E12000005", label: "West Midlands", group: "England" },
7
+ { id: "E12000006", label: "East of England", group: "England" },
8
+ { id: "E12000007", label: "London", group: "England" },
9
+ { id: "E12000008", label: "South East", group: "England" },
10
+ { id: "E12000009", label: "South West", group: "England" },
11
+ { id: "N92000002", label: "Northern Ireland", group: "Northern Ireland" },
12
+ { id: "S92000003", label: "Scotland", group: "Scotland" },
13
+ { id: "W92000004", label: "Wales", group: "Wales" }
14
+ ];
@@ -6,12 +6,18 @@ export function formatDate(str: any, locale?: string, opts?: {
6
6
  month: string;
7
7
  day: string;
8
8
  }): string;
9
- export function format(val: any, dp?: any): any;
10
- export function formatter(dp?: any): {
9
+ export function format(val: any, dp?: null): any;
10
+ export function formatter(dp?: null): {
11
11
  (value: number): string;
12
12
  (value: number | bigint): string;
13
+ (value: number | bigint | Intl.StringNumericLiteral): string;
13
14
  };
14
15
  export function ascending(a: any, b: any): number;
15
16
  export function descending(a: any, b: any): number;
16
17
  export function sleep(ms?: number): Promise<any>;
17
18
  export function contrastColor(color: any): "black" | "white";
19
+ export function lipsum(sentences?: number, offset?: number): string;
20
+ export function matchMedia(query: any): MediaQueryList;
21
+ export namespace matchMedia {
22
+ function hasMatchMedia(): boolean;
23
+ }
package/dist/js/utils.js CHANGED
@@ -1,74 +1,91 @@
1
1
  import parse from "parse-color";
2
2
 
3
3
  const randomString = () => {
4
- return Math.random().toString(16).slice(2, 8);
4
+ return Math.random().toString(16).slice(2, 8);
5
5
  };
6
6
 
7
7
  export const slugify = (str, suffix = false) =>
8
- typeof str === "string"
9
- ? str
10
- .toString()
11
- .normalize("NFD")
12
- .replace(/[\u0300-\u036f]/g, "")
13
- .toLowerCase()
14
- .trim()
15
- .replace(/\s+/g, "-")
16
- .replace(/[^\w-]+/g, "")
17
- .replace(/--+/g, "-")
18
- .concat(suffix ? `-${randomString()}` : "")
19
- : randomString();
8
+ typeof str === "string"
9
+ ? str
10
+ .toString()
11
+ .normalize("NFD")
12
+ .replace(/[\u0300-\u036f]/g, "")
13
+ .toLowerCase()
14
+ .trim()
15
+ .replace(/\s+/g, "-")
16
+ .replace(/[^\w-]+/g, "")
17
+ .replace(/--+/g, "-")
18
+ .concat(suffix ? `-${randomString()}` : "")
19
+ : randomString();
20
20
 
21
21
  export const isNumeric = (val) => isFinite(val) && val !== null;
22
22
 
23
23
  export const validDate = (str) => {
24
- if (!str) return false;
25
- const date = new Date(str);
26
- // @ts-ignore
27
- return !isNaN(date);
24
+ if (!str) return false;
25
+ const date = new Date(str);
26
+ // @ts-ignore
27
+ return !isNaN(date);
28
28
  };
29
29
 
30
30
  export const formatDate = (
31
- str,
32
- locale = "en-GB",
33
- opts = { year: "numeric", month: "long", day: "2-digit" }
31
+ str,
32
+ locale = "en-GB",
33
+ opts = { year: "numeric", month: "long", day: "2-digit" }
34
34
  ) => {
35
- const date = new Date(str);
36
- // @ts-ignore
37
- return date.toLocaleDateString(locale, opts);
35
+ const date = new Date(str);
36
+ // @ts-ignore
37
+ return date.toLocaleDateString(locale, opts);
38
38
  };
39
39
 
40
40
  export const format = (val, dp = null) => {
41
- return Number.isInteger(dp)
42
- ? val.toLocaleString("en-GB", {
43
- minimumFractionDigits: dp,
44
- maximumFractionDigits: dp,
45
- })
46
- : val.toLocaleString("en-GB");
41
+ return Number.isInteger(dp)
42
+ ? val.toLocaleString("en-GB", {
43
+ minimumFractionDigits: dp,
44
+ maximumFractionDigits: dp
45
+ })
46
+ : val.toLocaleString("en-GB");
47
47
  };
48
48
 
49
49
  export const formatter = (dp = null) => {
50
- return Number.isInteger(dp)
51
- ? new Intl.NumberFormat("en-GB", {
52
- minimumFractionDigits: dp,
53
- maximumFractionDigits: dp,
54
- }).format
55
- : new Intl.NumberFormat("en-GB").format;
50
+ return Number.isInteger(dp)
51
+ ? new Intl.NumberFormat("en-GB", {
52
+ minimumFractionDigits: dp,
53
+ maximumFractionDigits: dp
54
+ }).format
55
+ : new Intl.NumberFormat("en-GB").format;
56
56
  };
57
57
 
58
58
  export const ascending = (a, b) =>
59
- a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
59
+ a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
60
60
 
61
61
  export const descending = (a, b) =>
62
- a == null || b == null ? NaN : b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
62
+ a == null || b == null ? NaN : b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
63
63
 
64
64
  export const sleep = (ms = 1000) => new Promise((resolve) => setTimeout(resolve, ms));
65
65
 
66
66
  export const contrastColor = (color) => {
67
- if (!color || typeof color !== "string") return "black";
68
- const rgb = parse(color).rgb;
69
- if (rgb) {
70
- const brightness = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;
71
- return brightness > 125 ? "black" : "white";
72
- }
73
- return "black";
67
+ if (!color || typeof color !== "string") return "black";
68
+ const rgb = parse(color).rgb;
69
+ if (rgb) {
70
+ const brightness = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;
71
+ return brightness > 125 ? "black" : "white";
72
+ }
73
+ return "black";
74
74
  };
75
+
76
+ export const lipsum = (sentences = 4, offset = 0) => {
77
+ const texts = [
78
+ "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
79
+ "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
80
+ "Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.",
81
+ "Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
82
+ ];
83
+ const passage = [];
84
+ for (let i = 0; i < sentences; i++) {
85
+ passage.push(texts[(i + offset) % 4]);
86
+ }
87
+ return passage.join(" ");
88
+ };
89
+
90
+ export const matchMedia = (query) => window.matchMedia(query);
91
+ matchMedia.hasMatchMedia = () => typeof window.matchMedia === "function";
@@ -1,15 +1,9 @@
1
1
  export function withSource(source: object, otherOptions?: object): {
2
- parameters: {
3
- docs: any;
4
- };
2
+ docs: any;
5
3
  };
6
4
  export function withStoryDocs(storyDocs: string, otherOptions?: object): {
7
- parameters: {
8
- docs: any;
9
- };
5
+ docs: any;
10
6
  };
11
7
  export function withComponentDocs(componentDocs: string, otherOptions?: object): {
12
- parameters: {
13
- docs: any;
14
- };
8
+ docs: any;
15
9
  };
@@ -5,14 +5,13 @@
5
5
  * @returns props object including parameters
6
6
  */
7
7
  export const withSource = (source, otherOptions = {}) => {
8
- const language = Object.keys(source)[0];
9
- const code = source[language];
10
- const docs = {
11
- ...otherOptions?.parameters?.docs,
12
- source: { code, language },
13
- };
14
- const parameters = { docs };
15
- return { parameters };
8
+ const language = Object.keys(source)[0];
9
+ const code = source[language];
10
+ const docs = {
11
+ ...otherOptions?.parameters?.docs,
12
+ source: { code, language }
13
+ };
14
+ return { docs };
16
15
  };
17
16
 
18
17
  /**
@@ -22,12 +21,11 @@ export const withSource = (source, otherOptions = {}) => {
22
21
  * @returns props object including parameters
23
22
  */
24
23
  export const withStoryDocs = (storyDocs, otherOptions = {}) => {
25
- const docs = {
26
- ...otherOptions?.parameters?.docs,
27
- description: { story: storyDocs },
28
- };
29
- const parameters = { docs };
30
- return { parameters };
24
+ const docs = {
25
+ ...otherOptions?.parameters?.docs,
26
+ description: { story: storyDocs }
27
+ };
28
+ return { docs };
31
29
  };
32
30
 
33
31
  /**
@@ -37,10 +35,9 @@ export const withStoryDocs = (storyDocs, otherOptions = {}) => {
37
35
  * @returns props object including parameters
38
36
  */
39
37
  export const withComponentDocs = (componentDocs, otherOptions = {}) => {
40
- const docs = {
41
- ...otherOptions?.parameters?.docs,
42
- description: { component: componentDocs },
43
- };
44
- const parameters = { docs };
45
- return { parameters };
38
+ const docs = {
39
+ ...otherOptions?.parameters?.docs,
40
+ description: { component: componentDocs }
41
+ };
42
+ return { docs };
46
43
  };
@@ -0,0 +1,30 @@
1
+ <script module>
2
+ import { defineMeta } from "@storybook/addon-svelte-csf";
3
+ import { withComponentDocs } from "../../js/withParams.js";
4
+ import Accordion from "./Accordion.svelte";
5
+ import AccordionItem from "./AccordionItem.svelte";
6
+ import componentDocs from "./docs/component.md?raw";
7
+
8
+ const { Story } = defineMeta({
9
+ title: "Layout/Accordion",
10
+ component: Accordion,
11
+ tags: ["autodocs"],
12
+ argTypes: {},
13
+ parameters: withComponentDocs(componentDocs)
14
+ });
15
+ </script>
16
+
17
+ {#snippet template(args)}
18
+ <Accordion {...args}>
19
+ <AccordionItem title="First item">
20
+ <p>Contents of first item.</p>
21
+ </AccordionItem>
22
+ <AccordionItem title="Second item">
23
+ <p>Contents of second item.</p>
24
+ </AccordionItem>
25
+ </Accordion>
26
+ {/snippet}
27
+
28
+ <Story name="Default" args={{}} {template} />
29
+
30
+ <Story name="With 'show all' toggle" args={{ showToggle: true }} {template} />