@communitiesuk/svelte-component-library 0.1.17

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 (217) hide show
  1. package/README.md +188 -0
  2. package/dist/assets/css/govuk-frontend.min.css +2 -0
  3. package/dist/assets/css/govuk-frontend.min.css.map +1 -0
  4. package/dist/assets/fonts/bold-affa96571d-v2.woff +0 -0
  5. package/dist/assets/fonts/bold-b542beb274-v2.woff2 +0 -0
  6. package/dist/assets/fonts/light-94a07e06a1-v2.woff2 +0 -0
  7. package/dist/assets/fonts/light-f591b13f7d-v2.woff +0 -0
  8. package/dist/assets/govuk_publishing_components/images/icon-autocomplete-search-suggestion.svg +4 -0
  9. package/dist/assets/govuk_publishing_components/images/icon-close.svg +1 -0
  10. package/dist/assets/images/favicon.ico +0 -0
  11. package/dist/assets/images/favicon.svg +1 -0
  12. package/dist/assets/images/govuk-crest-2x.png +0 -0
  13. package/dist/assets/images/govuk-crest.png +0 -0
  14. package/dist/assets/images/govuk-crest.svg +1 -0
  15. package/dist/assets/images/govuk-icon-180.png +0 -0
  16. package/dist/assets/images/govuk-icon-192.png +0 -0
  17. package/dist/assets/images/govuk-icon-512.png +0 -0
  18. package/dist/assets/images/govuk-icon-mask.svg +1 -0
  19. package/dist/assets/images/govuk-opengraph-image.png +0 -0
  20. package/dist/assets/images/homepage-illustration.svg +1 -0
  21. package/dist/assets/images/homepage.svg +44 -0
  22. package/dist/assets/images/masthead-illustration.svg +123 -0
  23. package/dist/assets/images/oflog_crest_black.png +0 -0
  24. package/dist/assets/images/oflog_crest_white.png +0 -0
  25. package/dist/assets/images/undraw_approved-wireframe_odf4.svg +1 -0
  26. package/dist/assets/images/undraw_collaborators_rgw4.svg +1 -0
  27. package/dist/assets/images/undraw_content-creator_vuqg.svg +1 -0
  28. package/dist/assets/images/undraw_online-media_opxh.svg +1 -0
  29. package/dist/assets/images/undraw_pull-request_zlsu.svg +1 -0
  30. package/dist/assets/images/undraw_reviewed-docs_g0cg.svg +1 -0
  31. package/dist/components/FilterPanel/codeBlocks.d.ts +3 -0
  32. package/dist/components/FilterPanel/codeBlocks.js +418 -0
  33. package/dist/components/content/InsetText.svelte +21 -0
  34. package/dist/components/content/InsetText.svelte.d.ts +7 -0
  35. package/dist/components/content/WarningText.svelte +27 -0
  36. package/dist/components/content/WarningText.svelte.d.ts +8 -0
  37. package/dist/components/data-vis/axis/Axis.svelte +51 -0
  38. package/dist/components/data-vis/axis/Axis.svelte.d.ts +33 -0
  39. package/dist/components/data-vis/axis/Ticks.svelte +113 -0
  40. package/dist/components/data-vis/axis/Ticks.svelte.d.ts +33 -0
  41. package/dist/components/data-vis/line-chart/Line.svelte +150 -0
  42. package/dist/components/data-vis/line-chart/Line.svelte.d.ts +85 -0
  43. package/dist/components/data-vis/line-chart/LineChart.svelte +249 -0
  44. package/dist/components/data-vis/line-chart/LineChart.svelte.d.ts +73 -0
  45. package/dist/components/data-vis/line-chart/Lines.svelte +138 -0
  46. package/dist/components/data-vis/line-chart/Lines.svelte.d.ts +57 -0
  47. package/dist/components/data-vis/line-chart/Marker.svelte +61 -0
  48. package/dist/components/data-vis/line-chart/Marker.svelte.d.ts +37 -0
  49. package/dist/components/data-vis/line-chart/SeriesLabel.svelte +67 -0
  50. package/dist/components/data-vis/line-chart/SeriesLabel.svelte.d.ts +43 -0
  51. package/dist/components/data-vis/line-chart/ValueLabel.svelte +50 -0
  52. package/dist/components/data-vis/line-chart/ValueLabel.svelte.d.ts +25 -0
  53. package/dist/components/data-vis/map/Map.svelte +392 -0
  54. package/dist/components/data-vis/map/Map.svelte.d.ts +47 -0
  55. package/dist/components/data-vis/map/MapLegend.svelte +41 -0
  56. package/dist/components/data-vis/map/MapLegend.svelte.d.ts +15 -0
  57. package/dist/components/data-vis/map/NonStandardControls.svelte +42 -0
  58. package/dist/components/data-vis/map/NonStandardControls.svelte.d.ts +13 -0
  59. package/dist/components/data-vis/map/Tooltip.svelte +41 -0
  60. package/dist/components/data-vis/map/Tooltip.svelte.d.ts +19 -0
  61. package/dist/components/data-vis/map/colorbrewer.d.ts +337 -0
  62. package/dist/components/data-vis/map/colorbrewer.js +1523 -0
  63. package/dist/components/data-vis/map/colors.d.ts +13 -0
  64. package/dist/components/data-vis/map/colors.js +65 -0
  65. package/dist/components/data-vis/map/dataJoin.d.ts +2 -0
  66. package/dist/components/data-vis/map/dataJoin.js +27 -0
  67. package/dist/components/data-vis/map/fullTopo.json +1 -0
  68. package/dist/components/data-vis/map/jenks.d.ts +1 -0
  69. package/dist/components/data-vis/map/jenks.js +51 -0
  70. package/dist/components/data-vis/map/lad2023.json +1 -0
  71. package/dist/components/data-vis/map/mapUtils.d.ts +5 -0
  72. package/dist/components/data-vis/map/mapUtils.js +86 -0
  73. package/dist/components/data-vis/map/topo.json +1 -0
  74. package/dist/components/data-vis/table/Table.svelte +247 -0
  75. package/dist/components/data-vis/table/Table.svelte.d.ts +19 -0
  76. package/dist/components/layout/Breadcrumbs.svelte +191 -0
  77. package/dist/components/layout/Breadcrumbs.svelte.d.ts +24 -0
  78. package/dist/components/layout/Footer.svelte +171 -0
  79. package/dist/components/layout/Footer.svelte.d.ts +30 -0
  80. package/dist/components/layout/Header.svelte +43 -0
  81. package/dist/components/layout/Header.svelte.d.ts +7 -0
  82. package/dist/components/layout/InternalHeader.svelte +628 -0
  83. package/dist/components/layout/InternalHeader.svelte.d.ts +15 -0
  84. package/dist/components/layout/PhaseBanner.svelte +28 -0
  85. package/dist/components/layout/PhaseBanner.svelte.d.ts +9 -0
  86. package/dist/components/layout/ServiceNavigation.svelte +143 -0
  87. package/dist/components/layout/ServiceNavigation.svelte.d.ts +13 -0
  88. package/dist/components/layout/SideNavigation.svelte +345 -0
  89. package/dist/components/layout/SideNavigation.svelte.d.ts +25 -0
  90. package/dist/components/layout/service-navigation-nested-mobile/HeaderNav.svelte +91 -0
  91. package/dist/components/layout/service-navigation-nested-mobile/HeaderNav.svelte.d.ts +15 -0
  92. package/dist/components/layout/service-navigation-nested-mobile/MobileNav.svelte +233 -0
  93. package/dist/components/layout/service-navigation-nested-mobile/MobileNav.svelte.d.ts +27 -0
  94. package/dist/components/layout/service-navigation-nested-mobile/ServiceNavigationNestedMobile.svelte +70 -0
  95. package/dist/components/layout/service-navigation-nested-mobile/ServiceNavigationNestedMobile.svelte.d.ts +11 -0
  96. package/dist/components/layout/service-navigation-nested-mobile/SideNav.svelte +276 -0
  97. package/dist/components/layout/service-navigation-nested-mobile/SideNav.svelte.d.ts +22 -0
  98. package/dist/components/ui/Accordion.svelte +244 -0
  99. package/dist/components/ui/Accordion.svelte.d.ts +23 -0
  100. package/dist/components/ui/Breadcrumbs.svelte +198 -0
  101. package/dist/components/ui/Breadcrumbs.svelte.d.ts +24 -0
  102. package/dist/components/ui/Button.svelte +96 -0
  103. package/dist/components/ui/Button.svelte.d.ts +17 -0
  104. package/dist/components/ui/CheckBox.svelte +198 -0
  105. package/dist/components/ui/CheckBox.svelte.d.ts +27 -0
  106. package/dist/components/ui/ContentsList.svelte +1117 -0
  107. package/dist/components/ui/ContentsList.svelte.d.ts +25 -0
  108. package/dist/components/ui/DateInput.svelte +255 -0
  109. package/dist/components/ui/DateInput.svelte.d.ts +59 -0
  110. package/dist/components/ui/Details.svelte +12 -0
  111. package/dist/components/ui/Details.svelte.d.ts +13 -0
  112. package/dist/components/ui/FilterPanel.svelte +588 -0
  113. package/dist/components/ui/FilterPanel.svelte.d.ts +74 -0
  114. package/dist/components/ui/Footer.svelte +171 -0
  115. package/dist/components/ui/Footer.svelte.d.ts +30 -0
  116. package/dist/components/ui/Header.svelte +43 -0
  117. package/dist/components/ui/Header.svelte.d.ts +7 -0
  118. package/dist/components/ui/Masthead.svelte +267 -0
  119. package/dist/components/ui/Masthead.svelte.d.ts +12 -0
  120. package/dist/components/ui/NavigationExample.svelte +117 -0
  121. package/dist/components/ui/NavigationExample.svelte.d.ts +3 -0
  122. package/dist/components/ui/NotificationBanner.svelte +93 -0
  123. package/dist/components/ui/NotificationBanner.svelte.d.ts +15 -0
  124. package/dist/components/ui/Radios.svelte +176 -0
  125. package/dist/components/ui/Radios.svelte.d.ts +28 -0
  126. package/dist/components/ui/RelatedContent.svelte +596 -0
  127. package/dist/components/ui/RelatedContent.svelte.d.ts +29 -0
  128. package/dist/components/ui/Search.svelte +499 -0
  129. package/dist/components/ui/Search.svelte.d.ts +32 -0
  130. package/dist/components/ui/SearchAutocomplete.svelte +655 -0
  131. package/dist/components/ui/SearchAutocomplete.svelte.d.ts +37 -0
  132. package/dist/components/ui/Select.svelte +116 -0
  133. package/dist/components/ui/Select.svelte.d.ts +22 -0
  134. package/dist/components/ui/ServiceNavigation.svelte +143 -0
  135. package/dist/components/ui/ServiceNavigation.svelte.d.ts +13 -0
  136. package/dist/components/ui/SideNavigation.svelte +346 -0
  137. package/dist/components/ui/SideNavigation.svelte.d.ts +25 -0
  138. package/dist/components/ui/Tabs.svelte +306 -0
  139. package/dist/components/ui/Tabs.svelte.d.ts +18 -0
  140. package/dist/components/ui/WhatsNew.svelte +155 -0
  141. package/dist/components/ui/WhatsNew.svelte.d.ts +29 -0
  142. package/dist/config.d.ts +51 -0
  143. package/dist/config.js +44 -0
  144. package/dist/icons/DoubleChevronButton.svelte +62 -0
  145. package/dist/icons/DoubleChevronButton.svelte.d.ts +13 -0
  146. package/dist/icons/IconSearch.svelte +42 -0
  147. package/dist/icons/IconSearch.svelte.d.ts +6 -0
  148. package/dist/icons/SingleChevronButtonWithLabel.svelte +132 -0
  149. package/dist/icons/SingleChevronButtonWithLabel.svelte.d.ts +19 -0
  150. package/dist/index.d.ts +44 -0
  151. package/dist/index.js +45 -0
  152. package/dist/main.css +1 -0
  153. package/dist/package-wrapping/BaseInformation.svelte +82 -0
  154. package/dist/package-wrapping/BaseInformation.svelte.d.ts +15 -0
  155. package/dist/package-wrapping/BaseNameAndStatus.svelte +108 -0
  156. package/dist/package-wrapping/BaseNameAndStatus.svelte.d.ts +10 -0
  157. package/dist/package-wrapping/CodeBlock.svelte +62 -0
  158. package/dist/package-wrapping/CodeBlock.svelte.d.ts +12 -0
  159. package/dist/package-wrapping/ComponentDemo.svelte +114 -0
  160. package/dist/package-wrapping/ComponentDemo.svelte.d.ts +25 -0
  161. package/dist/package-wrapping/ComponentDemoTEMP.svelte +305 -0
  162. package/dist/package-wrapping/ComponentDemoTEMP.svelte.d.ts +21 -0
  163. package/dist/package-wrapping/ComponentDetails.svelte +123 -0
  164. package/dist/package-wrapping/ComponentDetails.svelte.d.ts +13 -0
  165. package/dist/package-wrapping/DividerLine.svelte +21 -0
  166. package/dist/package-wrapping/DividerLine.svelte.d.ts +17 -0
  167. package/dist/package-wrapping/InputForParameter.svelte +205 -0
  168. package/dist/package-wrapping/InputForParameter.svelte.d.ts +13 -0
  169. package/dist/package-wrapping/InputForParameterUpdated.svelte +222 -0
  170. package/dist/package-wrapping/InputForParameterUpdated.svelte.d.ts +17 -0
  171. package/dist/package-wrapping/InputForParameterUpdatedTEMP.svelte +203 -0
  172. package/dist/package-wrapping/InputForParameterUpdatedTEMP.svelte.d.ts +17 -0
  173. package/dist/package-wrapping/ListOfComponentStatuses.svelte +19 -0
  174. package/dist/package-wrapping/ListOfComponentStatuses.svelte.d.ts +11 -0
  175. package/dist/package-wrapping/OverlayAndComponentContainer.svelte +426 -0
  176. package/dist/package-wrapping/OverlayAndComponentContainer.svelte.d.ts +33 -0
  177. package/dist/package-wrapping/ParametersSection.svelte +235 -0
  178. package/dist/package-wrapping/ParametersSection.svelte.d.ts +19 -0
  179. package/dist/package-wrapping/ParsingErrorToastsContainer.svelte +50 -0
  180. package/dist/package-wrapping/ParsingErrorToastsContainer.svelte.d.ts +15 -0
  181. package/dist/package-wrapping/Pill.svelte +54 -0
  182. package/dist/package-wrapping/Pill.svelte.d.ts +25 -0
  183. package/dist/package-wrapping/PlaygroundDetails.svelte +106 -0
  184. package/dist/package-wrapping/PlaygroundDetails.svelte.d.ts +13 -0
  185. package/dist/package-wrapping/ScreenSizeRadio.svelte +24 -0
  186. package/dist/package-wrapping/ScreenSizeRadio.svelte.d.ts +11 -0
  187. package/dist/package-wrapping/ScreenSizeRadioUpdated.svelte +23 -0
  188. package/dist/package-wrapping/ScreenSizeRadioUpdated.svelte.d.ts +11 -0
  189. package/dist/package-wrapping/SidebarContainer.svelte +103 -0
  190. package/dist/package-wrapping/SidebarContainer.svelte.d.ts +23 -0
  191. package/dist/package-wrapping/WrapperDetailsUpdate.svelte +40 -0
  192. package/dist/package-wrapping/WrapperDetailsUpdate.svelte.d.ts +15 -0
  193. package/dist/package-wrapping/templates/Template.svelte +100 -0
  194. package/dist/package-wrapping/templates/Template.svelte.d.ts +25 -0
  195. package/dist/templates/ComponentPageTemplate.svelte +1 -0
  196. package/dist/templates/ComponentPageTemplate.svelte.d.ts +26 -0
  197. package/dist/utils/data-transformations/convertCSV.d.ts +2 -0
  198. package/dist/utils/data-transformations/convertCSV.js +22 -0
  199. package/dist/utils/data-transformations/getValueFromParametersArray.d.ts +1 -0
  200. package/dist/utils/data-transformations/getValueFromParametersArray.js +9 -0
  201. package/dist/utils/layoutNavHelpers.d.ts +70 -0
  202. package/dist/utils/layoutNavHelpers.js +129 -0
  203. package/dist/utils/package-wrapping-specific/addIndexAndInitialValue.d.ts +1 -0
  204. package/dist/utils/package-wrapping-specific/addIndexAndInitialValue.js +21 -0
  205. package/dist/utils/package-wrapping-specific/createBindableParametersValuesArray.d.ts +1 -0
  206. package/dist/utils/package-wrapping-specific/createBindableParametersValuesArray.js +12 -0
  207. package/dist/utils/package-wrapping-specific/createParametersObject.d.ts +1 -0
  208. package/dist/utils/package-wrapping-specific/createParametersObject.js +29 -0
  209. package/dist/utils/package-wrapping-specific/defineDefaultEventHandler.d.ts +1 -0
  210. package/dist/utils/package-wrapping-specific/defineDefaultEventHandler.js +14 -0
  211. package/dist/utils/package-wrapping-specific/trackVisibleParameters.d.ts +1 -0
  212. package/dist/utils/package-wrapping-specific/trackVisibleParameters.js +29 -0
  213. package/dist/utils/syntax-highlighting/shikiHighlight.d.ts +7 -0
  214. package/dist/utils/syntax-highlighting/shikiHighlight.js +76 -0
  215. package/dist/utils/text-string-conversion/textStringConversion.d.ts +9 -0
  216. package/dist/utils/text-string-conversion/textStringConversion.js +86 -0
  217. package/package.json +113 -0
@@ -0,0 +1,42 @@
1
+ <script lang="ts">
2
+ let { class: className = "" }: { class?: string } = $props();
3
+ </script>
4
+
5
+ <svg
6
+ class="gem-c-search__icon"
7
+ width="27"
8
+ height="27"
9
+ viewBox="0 0 27 27"
10
+ fill="none"
11
+ xmlns="http://www.w3.org/2000/svg"
12
+ aria-hidden="true"
13
+ focusable="false"
14
+ >
15
+ <circle
16
+ cx="12.0161"
17
+ cy="11.0161"
18
+ r="8.51613"
19
+ stroke="currentColor"
20
+ stroke-width="3"
21
+ ></circle>
22
+ <line
23
+ x1="17.8668"
24
+ y1="17.3587"
25
+ x2="26.4475"
26
+ y2="25.9393"
27
+ stroke="currentColor"
28
+ stroke-width="3"
29
+ ></line>
30
+ </svg>
31
+
32
+ <style>
33
+ .gem-c-search__icon {
34
+ pointer-events: none;
35
+ position: absolute;
36
+ height: 100%;
37
+ width: 100%;
38
+ top: 0;
39
+ left: 0;
40
+ transform: scale(0.5);
41
+ }
42
+ </style>
@@ -0,0 +1,6 @@
1
+ type $$ComponentProps = {
2
+ class?: string;
3
+ };
4
+ declare const IconSearch: import("svelte").Component<$$ComponentProps, {}, "">;
5
+ type IconSearch = ReturnType<typeof IconSearch>;
6
+ export default IconSearch;
@@ -0,0 +1,132 @@
1
+ <script>
2
+ let {
3
+ open,
4
+ openArray = $bindable(),
5
+ overlayOpen = $bindable(),
6
+ index,
7
+ text,
8
+ } = $props();
9
+
10
+ function onClickFunction() {
11
+ if (openArray[index]) {
12
+ openArray = openArray.map((el) => false);
13
+ overlayOpen = false;
14
+ } else {
15
+ openArray = openArray.map((el, i) => i === index);
16
+ overlayOpen = true;
17
+ }
18
+ }
19
+ </script>
20
+
21
+ <button
22
+ onclick={onClickFunction}
23
+ class="p-2"
24
+ data-role={open ? "button-selected" : "button-unselected"}
25
+ >
26
+ <div class="flex flex-row gap-0 items-center">
27
+ <svg width="30" height="30">
28
+ {#each [12] as xPos}
29
+ <g
30
+ transform="translate({xPos + (open ? 3 : 0)},{15 +
31
+ (open ? -3 : 0)})rotate({open ? -45 : -135})"
32
+ >
33
+ {#each [-5, 5] as cxcy}
34
+ <circle
35
+ data-role={open
36
+ ? "button-circle-selected"
37
+ : "button-circle-unselected"}
38
+ cx={cxcy}
39
+ cy={cxcy}
40
+ ></circle>
41
+ {/each}
42
+ <path
43
+ data-role={open ? "button-path-selected" : "button-path-unselected"}
44
+ d="M -5 -5 l0 9.75 m0.25 0.25 l9.75 0"
45
+ ></path>
46
+ <rect
47
+ data-role={open ? "button-rect-selected" : "button-rect-unselected"}
48
+ transform="translate(-6, 4)"
49
+ width="2"
50
+ height="2"
51
+ rx="4px"
52
+ ></rect>
53
+ </g>
54
+ {/each}
55
+ </svg>
56
+ <span
57
+ class="text-lg text-[#6b7280]"
58
+ data-role={open ? "button-label-selected" : "button-label-unselected"}
59
+ >{text}</span
60
+ >
61
+ </div>
62
+ </button>
63
+
64
+ <style>
65
+ button {
66
+ display: inline-block;
67
+ width: 100%;
68
+ border-radius: 3px;
69
+ }
70
+
71
+ [data-role="button-unselected"]:hover {
72
+ background-color: #f3f3f3;
73
+ }
74
+
75
+ [data-role="button-label-selected"] {
76
+ color: #ea580c;
77
+ text-decoration: underline;
78
+ text-underline-offset: 3px;
79
+ }
80
+
81
+ svg {
82
+ cursor: pointer;
83
+ transition: background-color 0.3s ease;
84
+ }
85
+
86
+ path {
87
+ stroke: #6b7280;
88
+ fill: none;
89
+ stroke-width: 2px;
90
+ }
91
+
92
+ [data-role="button-path-selected"] {
93
+ stroke: #ea580c;
94
+ }
95
+
96
+ button:hover [data-role="button-path-unselected"] {
97
+ stroke: #4b5563;
98
+ }
99
+
100
+ circle {
101
+ fill: #6b7280;
102
+ stroke: none;
103
+ r: 1;
104
+ }
105
+
106
+ [data-role="button-circle-selected"] {
107
+ fill: #ea580c;
108
+ }
109
+
110
+ button:hover [data-role="button-circle-unselected"] {
111
+ fill: #4b5563;
112
+ }
113
+
114
+ rect {
115
+ stroke: none;
116
+ fill: #6b7280;
117
+ }
118
+
119
+ [data-role="button-rect-selected"] {
120
+ fill: #ea580c;
121
+ }
122
+
123
+ button:hover [data-role="button-rect-unselected"] {
124
+ fill: #4b5563;
125
+ }
126
+
127
+ button:hover [data-role="button-label-unselected"] {
128
+ color: #4b5563;
129
+ text-decoration: underline;
130
+ text-underline-offset: 3px;
131
+ }
132
+ </style>
@@ -0,0 +1,19 @@
1
+ export default SingleChevronButtonWithLabel;
2
+ type SingleChevronButtonWithLabel = {
3
+ $on?(type: string, callback: (e: any) => void): () => void;
4
+ $set?(props: Partial<$$ComponentProps>): void;
5
+ };
6
+ declare const SingleChevronButtonWithLabel: import("svelte").Component<{
7
+ open: any;
8
+ openArray?: any;
9
+ overlayOpen?: any;
10
+ index: any;
11
+ text: any;
12
+ }, {}, "openArray" | "overlayOpen">;
13
+ type $$ComponentProps = {
14
+ open: any;
15
+ openArray?: any;
16
+ overlayOpen?: any;
17
+ index: any;
18
+ text: any;
19
+ };
@@ -0,0 +1,44 @@
1
+ import "./main.css";
2
+ export { default as InsetText } from './components/content/InsetText.svelte';
3
+ export { default as WarningText } from './components/content/WarningText.svelte';
4
+ export { default as Axis } from './components/data-vis/axis/Axis.svelte';
5
+ export { default as Ticks } from './components/data-vis/axis/Ticks.svelte';
6
+ export { default as Line } from './components/data-vis/line-chart/Line.svelte';
7
+ export { default as LineChart } from './components/data-vis/line-chart/LineChart.svelte';
8
+ export { default as Lines } from './components/data-vis/line-chart/Lines.svelte';
9
+ export { default as Marker } from './components/data-vis/line-chart/Marker.svelte';
10
+ export { default as SeriesLabel } from './components/data-vis/line-chart/SeriesLabel.svelte';
11
+ export { default as ValueLabel } from './components/data-vis/line-chart/ValueLabel.svelte';
12
+ export { default as Map } from './components/data-vis/map/Map.svelte';
13
+ export { default as MapLegend } from './components/data-vis/map/MapLegend.svelte';
14
+ export { default as NonStandardControls } from './components/data-vis/map/NonStandardControls.svelte';
15
+ export { default as Tooltip } from './components/data-vis/map/Tooltip.svelte';
16
+ export { default as Table } from './components/data-vis/table/Table.svelte';
17
+ export { default as Breadcrumbs } from './components/layout/Breadcrumbs.svelte';
18
+ export { default as Footer } from './components/layout/Footer.svelte';
19
+ export { default as Header } from './components/layout/Header.svelte';
20
+ export { default as InternalHeader } from './components/layout/InternalHeader.svelte';
21
+ export { default as PhaseBanner } from './components/layout/PhaseBanner.svelte';
22
+ export { default as ServiceNavigation } from './components/layout/ServiceNavigation.svelte';
23
+ export { default as SideNavigation } from './components/layout/SideNavigation.svelte';
24
+ export { default as HeaderNav } from './components/layout/service-navigation-nested-mobile/HeaderNav.svelte';
25
+ export { default as MobileNav } from './components/layout/service-navigation-nested-mobile/MobileNav.svelte';
26
+ export { default as ServiceNavigationNestedMobile } from './components/layout/service-navigation-nested-mobile/ServiceNavigationNestedMobile.svelte';
27
+ export { default as SideNav } from './components/layout/service-navigation-nested-mobile/SideNav.svelte';
28
+ export { default as Accordion } from './components/ui/Accordion.svelte';
29
+ export { default as Button } from './components/ui/Button.svelte';
30
+ export { default as CheckBox } from './components/ui/CheckBox.svelte';
31
+ export { default as ContentsList } from './components/ui/ContentsList.svelte';
32
+ export { default as DateInput } from './components/ui/DateInput.svelte';
33
+ export { default as Details } from './components/ui/Details.svelte';
34
+ export { default as FilterPanel } from './components/ui/FilterPanel.svelte';
35
+ export { default as Masthead } from './components/ui/Masthead.svelte';
36
+ export { default as NavigationExample } from './components/ui/NavigationExample.svelte';
37
+ export { default as NotificationBanner } from './components/ui/NotificationBanner.svelte';
38
+ export { default as Radios } from './components/ui/Radios.svelte';
39
+ export { default as RelatedContent } from './components/ui/RelatedContent.svelte';
40
+ export { default as Search } from './components/ui/Search.svelte';
41
+ export { default as SearchAutocomplete } from './components/ui/SearchAutocomplete.svelte';
42
+ export { default as Select } from './components/ui/Select.svelte';
43
+ export { default as Tabs } from './components/ui/Tabs.svelte';
44
+ export { default as WhatsNew } from './components/ui/WhatsNew.svelte';
package/dist/index.js ADDED
@@ -0,0 +1,45 @@
1
+ // this file is auto-generated — do not edit by hand
2
+ import "./main.css";
3
+ export { default as InsetText } from './components/content/InsetText.svelte';
4
+ export { default as WarningText } from './components/content/WarningText.svelte';
5
+ export { default as Axis } from './components/data-vis/axis/Axis.svelte';
6
+ export { default as Ticks } from './components/data-vis/axis/Ticks.svelte';
7
+ export { default as Line } from './components/data-vis/line-chart/Line.svelte';
8
+ export { default as LineChart } from './components/data-vis/line-chart/LineChart.svelte';
9
+ export { default as Lines } from './components/data-vis/line-chart/Lines.svelte';
10
+ export { default as Marker } from './components/data-vis/line-chart/Marker.svelte';
11
+ export { default as SeriesLabel } from './components/data-vis/line-chart/SeriesLabel.svelte';
12
+ export { default as ValueLabel } from './components/data-vis/line-chart/ValueLabel.svelte';
13
+ export { default as Map } from './components/data-vis/map/Map.svelte';
14
+ export { default as MapLegend } from './components/data-vis/map/MapLegend.svelte';
15
+ export { default as NonStandardControls } from './components/data-vis/map/NonStandardControls.svelte';
16
+ export { default as Tooltip } from './components/data-vis/map/Tooltip.svelte';
17
+ export { default as Table } from './components/data-vis/table/Table.svelte';
18
+ export { default as Breadcrumbs } from './components/layout/Breadcrumbs.svelte';
19
+ export { default as Footer } from './components/layout/Footer.svelte';
20
+ export { default as Header } from './components/layout/Header.svelte';
21
+ export { default as InternalHeader } from './components/layout/InternalHeader.svelte';
22
+ export { default as PhaseBanner } from './components/layout/PhaseBanner.svelte';
23
+ export { default as ServiceNavigation } from './components/layout/ServiceNavigation.svelte';
24
+ export { default as SideNavigation } from './components/layout/SideNavigation.svelte';
25
+ export { default as HeaderNav } from './components/layout/service-navigation-nested-mobile/HeaderNav.svelte';
26
+ export { default as MobileNav } from './components/layout/service-navigation-nested-mobile/MobileNav.svelte';
27
+ export { default as ServiceNavigationNestedMobile } from './components/layout/service-navigation-nested-mobile/ServiceNavigationNestedMobile.svelte';
28
+ export { default as SideNav } from './components/layout/service-navigation-nested-mobile/SideNav.svelte';
29
+ export { default as Accordion } from './components/ui/Accordion.svelte';
30
+ export { default as Button } from './components/ui/Button.svelte';
31
+ export { default as CheckBox } from './components/ui/CheckBox.svelte';
32
+ export { default as ContentsList } from './components/ui/ContentsList.svelte';
33
+ export { default as DateInput } from './components/ui/DateInput.svelte';
34
+ export { default as Details } from './components/ui/Details.svelte';
35
+ export { default as FilterPanel } from './components/ui/FilterPanel.svelte';
36
+ export { default as Masthead } from './components/ui/Masthead.svelte';
37
+ export { default as NavigationExample } from './components/ui/NavigationExample.svelte';
38
+ export { default as NotificationBanner } from './components/ui/NotificationBanner.svelte';
39
+ export { default as Radios } from './components/ui/Radios.svelte';
40
+ export { default as RelatedContent } from './components/ui/RelatedContent.svelte';
41
+ export { default as Search } from './components/ui/Search.svelte';
42
+ export { default as SearchAutocomplete } from './components/ui/SearchAutocomplete.svelte';
43
+ export { default as Select } from './components/ui/Select.svelte';
44
+ export { default as Tabs } from './components/ui/Tabs.svelte';
45
+ export { default as WhatsNew } from './components/ui/WhatsNew.svelte';
package/dist/main.css ADDED
@@ -0,0 +1 @@
1
+ @import "./assets/css/govuk-frontend.min.css";
@@ -0,0 +1,82 @@
1
+ <script>
2
+ import DividerLine from "./DividerLine.svelte";
3
+ import { textStringConversion } from "../utils/text-string-conversion/textStringConversion.js";
4
+
5
+ let { homepage, detailsArray, connectedComponentsArray } = $props();
6
+ </script>
7
+
8
+ {#if detailsArray && detailsArray.filter((el) => !homepage || el.visibleOnHomepage).length > 0}
9
+ <DividerLine></DividerLine>
10
+ <div data-role="component-information-array-container">
11
+ {#each detailsArray as detail}
12
+ {#if detail.arr && detail.arr.length > 0 && (!homepage || detail.visibleOnHomepage)}
13
+ <!-- CSS Grid with auto-sizing first column and constrained second column that forces wrapping -->
14
+ <div
15
+ data-role="component-information-detail-grid-container"
16
+ id={detail.label.toLowerCase()}
17
+ class="grid grid-cols-[auto,minmax(0,1fr)] gap-2 items-baseline"
18
+ >
19
+ {#if detail.label}
20
+ <dt>{detail.label}:</dt>
21
+ {/if}
22
+ <dd>
23
+ {#each detail.arr as paragraph}
24
+ {#if detail.markdown}
25
+ <p>{@html paragraph}</p>
26
+ {:else}
27
+ <p>{paragraph}</p>
28
+ {/if}
29
+ {/each}
30
+ </dd>
31
+ </div>
32
+ {/if}
33
+ {/each}
34
+ </div>
35
+ {/if}
36
+
37
+ {#if connectedComponentsArray}
38
+ {#each connectedComponentsArray as connectedComponents}
39
+ {#if (!homepage || connectedComponents?.visibleOnHomepage) && connectedComponents.arr.length > 0}
40
+ <DividerLine></DividerLine>
41
+ <!-- CSS Grid layout for label:content pairs with constrained second column -->
42
+ <div
43
+ data-role="component-information-detail-grid-container"
44
+ class="grid grid-cols-[auto,minmax(0,1fr)] gap-2 items-baseline"
45
+ >
46
+ <dt>{connectedComponents.label}:</dt>
47
+ <dd>
48
+ <!-- flex-wrap allows items to wrap to new lines -->
49
+ <ul class="flex flex-row flex-wrap gap-4 gap-y-2">
50
+ {#each connectedComponents.arr as child}
51
+ <li>
52
+ <a
53
+ class="link-to-other-page"
54
+ href="/components-update/{child.folder}/{textStringConversion(
55
+ child.name,
56
+ 'kebab',
57
+ )}"
58
+ >
59
+ {child.name}
60
+ </a>
61
+ </li>
62
+ {/each}
63
+ </ul>
64
+ </dd>
65
+ </div>
66
+ {/if}
67
+ {/each}
68
+ {/if}
69
+
70
+ <style>
71
+ /* Constrain all grid containers and their content to prevent overflow */
72
+ [data-role="component-information-detail-grid-container"] {
73
+ max-width: 100%;
74
+ }
75
+
76
+ /* Allow all content within grids to shrink and wrap properly */
77
+ [data-role="component-information-detail-grid-container"] dd,
78
+ [data-role="component-information-detail-grid-container"] li {
79
+ min-width: 0;
80
+ overflow-wrap: break-word;
81
+ }
82
+ </style>
@@ -0,0 +1,15 @@
1
+ export default BaseInformation;
2
+ type BaseInformation = {
3
+ $on?(type: string, callback: (e: any) => void): () => void;
4
+ $set?(props: Partial<$$ComponentProps>): void;
5
+ };
6
+ declare const BaseInformation: import("svelte").Component<{
7
+ homepage: any;
8
+ detailsArray: any;
9
+ connectedComponentsArray: any;
10
+ }, {}, "">;
11
+ type $$ComponentProps = {
12
+ homepage: any;
13
+ detailsArray: any;
14
+ connectedComponentsArray: any;
15
+ };
@@ -0,0 +1,108 @@
1
+ <script lang="ts">
2
+ import Pill from "./Pill.svelte";
3
+ import {
4
+ pascalToKebabCase,
5
+ forceWrapAtThirdCapital,
6
+ } from "../utils/text-string-conversion/textStringConversion.js";
7
+ import { componentStatusProgressBackgroundColorLookup } from "../config.js";
8
+
9
+ let { homepage, statusObject, folder, subFolder, name, parentFolder } =
10
+ $props();
11
+ </script>
12
+
13
+ <!-- Main container: horizontal layout with wrapping for component name and status pill -->
14
+ <div
15
+ class="flex flex-row flex-wrap items-center gap-4 min-w-0 {homepage
16
+ ? ''
17
+ : 'mb-6'}"
18
+ >
19
+ {#if homepage}
20
+ <!-- Homepage: component name as clickable link -->
21
+ <a
22
+ class="link-to-other-page"
23
+ href={`/${parentFolder}${(folder ? "/" + folder : "") + (subFolder ? "/" + subFolder : "")}/${pascalToKebabCase(name)}`}
24
+ >
25
+ <h6>{@html forceWrapAtThirdCapital(name)}</h6>
26
+ </a>
27
+ {:else}
28
+ <!-- Detail page: component name as heading -->
29
+ <h2>{@html forceWrapAtThirdCapital(name)}</h2>
30
+ {/if}
31
+ {#if statusObject?.progress}
32
+ <!-- Status pill showing progress state -->
33
+ <Pill
34
+ textContent={statusObject?.progress}
35
+ bgColor={componentStatusProgressBackgroundColorLookup?.[
36
+ statusObject?.progress
37
+ ] ?? "black"}
38
+ textColor="white"
39
+ size={homepage ? "sm" : "md"}
40
+ ></Pill>
41
+ {/if}
42
+ </div>
43
+
44
+ <!-- Status indicators section: checkmarks and X marks for different criteria -->
45
+ {#if statusObject?.statusRows && statusObject?.statusRows.length > 0 && statusObject?.statusRows
46
+ .map((el) => Object.keys(el.obj))
47
+ .flat().length > 0}
48
+ <!-- Vertical stack of status rows -->
49
+ <div class="flex flex-col gap-2">
50
+ {#each statusObject.statusRows as row}
51
+ {#if !homepage || row.visibleOnHomepage}
52
+ <!-- Horizontal row of status indicators that wraps on small screens -->
53
+ <div class="flex flex-wrap gap-2">
54
+ {#each Object.keys(row.obj) as key}
55
+ {@const checked = row.obj[key]}
56
+ {@const color = checked ? "#006B00" : "#BD0000"}
57
+ <!-- Individual status indicator with icon and text -->
58
+ <div
59
+ class="text-base rounded px-1 py-0.5 border-2 border-solid flex flex-row gap-2 items-start"
60
+ style="border-color: {color}; color: {color}"
61
+ >
62
+ <!-- Icon container: prevents icon from shrinking -->
63
+ <div class="flex-shrink-0">
64
+ <svg width="18" height="18">
65
+ <g transform="scale(0.75)">
66
+ <path
67
+ d={checked
68
+ ? "M4 11 l6 6 l12 -12"
69
+ : "M5 4.5 l15 15 M5 19.5 l15 -15"}
70
+ stroke={color}
71
+ fill="none"
72
+ stroke-width="5px"
73
+ ></path>
74
+ </g>
75
+ </svg>
76
+ </div>
77
+ <!-- Status text with tight line height -->
78
+ <span class="leading-tight">{key}</span>
79
+ </div>
80
+ {/each}
81
+ </div>
82
+ {/if}
83
+ {/each}
84
+ </div>
85
+ {/if}
86
+
87
+ <style>
88
+ /* Unified text wrapping strategy for component names and links */
89
+ .link-to-other-page,
90
+ .link-to-other-page h6,
91
+ h2 {
92
+ min-width: 0; /* Allow shrinking below content width */
93
+ white-space: normal; /* Enable text wrapping */
94
+ overflow-wrap: break-word; /* Break long words when needed */
95
+ max-width: 100%; /* Prevent container overflow */
96
+ }
97
+
98
+ /* Additional properties specific to clickable links */
99
+ .link-to-other-page {
100
+ flex-shrink: 1; /* Allow shrinking in flex containers */
101
+ display: inline-block; /* Proper wrapping behavior for links */
102
+ }
103
+
104
+ /* Ensure nested heading inherits block display */
105
+ .link-to-other-page h6 {
106
+ display: block;
107
+ }
108
+ </style>
@@ -0,0 +1,10 @@
1
+ declare const BaseNameAndStatus: import("svelte").Component<{
2
+ homepage: any;
3
+ statusObject: any;
4
+ folder: any;
5
+ subFolder: any;
6
+ name: any;
7
+ parentFolder: any;
8
+ }, {}, "">;
9
+ type BaseNameAndStatus = ReturnType<typeof BaseNameAndStatus>;
10
+ export default BaseNameAndStatus;
@@ -0,0 +1,62 @@
1
+ <script lang="ts">
2
+ import { codeToHtml } from "shiki";
3
+
4
+ let {
5
+ code = "",
6
+ filename = "App",
7
+ extension = ".svelte",
8
+ language = "svelte",
9
+ theme = "vitesse-light",
10
+ size = "sm",
11
+ includeHeader = true,
12
+ }: {
13
+ code: string;
14
+ filename?: string;
15
+ extension?: string;
16
+ language?: string;
17
+ theme?: string;
18
+ size?: string;
19
+ includeHeader?: boolean;
20
+ } = $props();
21
+
22
+ function copyHighlightedCode(event) {
23
+ const block = event.currentTarget.closest(".code-block");
24
+ if (!block) return;
25
+
26
+ const codeElement = block.querySelector("code");
27
+ if (!codeElement) return;
28
+
29
+ const text = codeElement.innerText || codeElement.textContent;
30
+ navigator.clipboard.writeText(text);
31
+ }
32
+
33
+ async function highlight(code, language, theme) {
34
+ const html = codeToHtml(code, {
35
+ lang: language,
36
+ theme: theme,
37
+ });
38
+ const response = await html;
39
+ return response;
40
+ }
41
+
42
+ let content = highlight(code, language, theme);
43
+ </script>
44
+
45
+ <div class="code-block text-{size}">
46
+ {#if includeHeader}
47
+ <div class="controls">
48
+ <span class="filename" data-ext={extension}>{filename}</span>
49
+ <button
50
+ class="copy-to-clipboard raised"
51
+ onclick={copyHighlightedCode}
52
+ title="Copy to clipboard"
53
+ aria-label="Copy to clipboard"
54
+ ></button>
55
+ </div>
56
+ {/if}
57
+ <div>
58
+ {#await content then content}
59
+ {@html content}
60
+ {/await}
61
+ </div>
62
+ </div>
@@ -0,0 +1,12 @@
1
+ type $$ComponentProps = {
2
+ code: string;
3
+ filename?: string;
4
+ extension?: string;
5
+ language?: string;
6
+ theme?: string;
7
+ size?: string;
8
+ includeHeader?: boolean;
9
+ };
10
+ declare const CodeBlock: import("svelte").Component<$$ComponentProps, {}, "">;
11
+ type CodeBlock = ReturnType<typeof CodeBlock>;
12
+ export default CodeBlock;