@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,14 @@
1
+ export function defineDefaultEventHandler(
2
+ event,
3
+ parametersSourceArray,
4
+ parametersValuesArray,
5
+ name,
6
+ ) {
7
+ parametersValuesArray[
8
+ parametersSourceArray.findIndex((el) => el.name === name)
9
+ ][0].counter += 1;
10
+
11
+ parametersValuesArray[
12
+ parametersSourceArray.findIndex((el) => el.name === name)
13
+ ][1] = event.currentTarget.dataset.id;
14
+ }
@@ -0,0 +1 @@
1
+ export function trackVisibleParameters(parametersSourceArray: any, parametersValuesArray: any): any;
@@ -0,0 +1,29 @@
1
+ import { getValueFromParametersArray } from '../data-transformations/getValueFromParametersArray.js';
2
+
3
+ export function trackVisibleParameters(
4
+ parametersSourceArray,
5
+ parametersValuesArray
6
+ ) {
7
+ return parametersSourceArray.map((el) =>
8
+ !('visible' in el)
9
+ ? true
10
+ : typeof el.visible === 'boolean'
11
+ ? el.visible
12
+ : Array.isArray(el.visible)
13
+ ? el.visible
14
+ .map(
15
+ (elm) =>
16
+ getValueFromParametersArray(
17
+ parametersSourceArray,
18
+ parametersValuesArray,
19
+ elm.name
20
+ ) === elm.value
21
+ )
22
+ .every((elm) => elm === true)
23
+ : getValueFromParametersArray(
24
+ parametersSourceArray,
25
+ parametersValuesArray,
26
+ el.visible.name
27
+ ) === el.visible.value
28
+ );
29
+ }
@@ -0,0 +1,7 @@
1
+ export function highlight(node: any, options?: {
2
+ lang: string;
3
+ theme: string;
4
+ }): Promise<{
5
+ destroy(): void;
6
+ update(newOptions: any): void;
7
+ }>;
@@ -0,0 +1,76 @@
1
+ // Singleton highlighter instance
2
+ let highlighter = null;
3
+ let activeNodes = new Set();
4
+ let isInitializing = false;
5
+ let initPromise = null;
6
+
7
+ async function getOrCreateHighlighter(theme) {
8
+ if (highlighter) return highlighter;
9
+
10
+ if (isInitializing) {
11
+ return await initPromise;
12
+ }
13
+
14
+ isInitializing = true;
15
+ initPromise = (async () => {
16
+ const { getHighlighter } = await import("shiki");
17
+ const { default: svelte } = await import("shiki/langs/svelte.mjs");
18
+ highlighter = await getHighlighter({
19
+ langs: [svelte],
20
+ themes: [theme],
21
+ });
22
+ isInitializing = false;
23
+ return highlighter;
24
+ })();
25
+
26
+ return await initPromise;
27
+ }
28
+
29
+ export const highlight = async (
30
+ node,
31
+ options = { lang: "svelte", theme: "vitesse-light" },
32
+ ) => {
33
+ const instance = await getOrCreateHighlighter(options.theme);
34
+ activeNodes.add(node);
35
+
36
+ const renderCode = () => {
37
+ if (!instance) return;
38
+ const html = instance.codeToHtml(node.textContent, {
39
+ lang: options.lang,
40
+ theme: options.theme,
41
+ transformers: [
42
+ {
43
+ pre(node) {
44
+ node.properties["data-language"] = options.lang;
45
+ return node;
46
+ },
47
+ },
48
+ ],
49
+ });
50
+ node.innerHTML = html;
51
+ };
52
+
53
+ renderCode();
54
+
55
+ return {
56
+ destroy() {
57
+ activeNodes.delete(node);
58
+ node.innerHTML = node.textContent;
59
+
60
+ // Only dispose if we've been idle for a while and have no active nodes
61
+ if (activeNodes.size === 0) {
62
+ setTimeout(() => {
63
+ if (activeNodes.size === 0 && highlighter) {
64
+ highlighter.dispose();
65
+ highlighter = null;
66
+ initPromise = null;
67
+ }
68
+ }, 5000); // Wait 5 seconds before disposing
69
+ }
70
+ },
71
+ update(newOptions) {
72
+ options = { ...options, ...newOptions };
73
+ renderCode();
74
+ },
75
+ };
76
+ };
@@ -0,0 +1,9 @@
1
+ export function textStringConversion(text: any, caseType: any): any;
2
+ export function pascalToKebabCase(str: any): any;
3
+ export function kebabToPascalCase(str: any): any;
4
+ /**
5
+ * Forces a line break before the third capital letter in a string
6
+ * @param {string} text - The text to process
7
+ * @returns {string} - The text with <br> inserted before the third capital letter
8
+ */
9
+ export function forceWrapAtThirdCapital(text: string): string;
@@ -0,0 +1,86 @@
1
+ export function textStringConversion(text, caseType) {
2
+ const words = text
3
+ .toLowerCase() // Convert to lowercase
4
+ .trim() // Trim surrounding whitespace
5
+ .replace(/[^\w\s-]/g, "") // Remove special characters except hyphens and whitespace
6
+ .replace(/[_-]/g, " ")
7
+ .split(/\s+/); // Split text into words based on spaces
8
+
9
+ switch (caseType) {
10
+ case "pascal":
11
+ return words
12
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
13
+ .join("");
14
+ case "camel":
15
+ return words
16
+ .map((word, index) =>
17
+ index === 0 ? word : word.charAt(0).toUpperCase() + word.slice(1),
18
+ )
19
+ .join("");
20
+ case "snake":
21
+ return words.join("_");
22
+ case "kebab": // (or skewer-case)
23
+ return words.join("-");
24
+ case "upper-snake":
25
+ return words.map((word) => word.toUpperCase()).join("_");
26
+ case "title":
27
+ return words
28
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
29
+ .join(" ");
30
+ case "title-first-word":
31
+ return words
32
+ .map((word, index) =>
33
+ index === 0 ? word.charAt(0).toUpperCase() + word.slice(1) : word,
34
+ )
35
+ .join(" ");
36
+
37
+ default:
38
+ throw new Error(
39
+ 'Invalid caseType provided. Choose from "pascal", "camel", "snake", "kebab", "upper-snake", "title", or "title-first-word".',
40
+ );
41
+ }
42
+ }
43
+
44
+ export function pascalToKebabCase(str) {
45
+ return str
46
+ .replace(/([a-z])([A-Z])/g, "$1-$2") // Insert hyphen between lowercase & uppercase
47
+ .replace(/([A-Z])([A-Z][a-z])/g, "$1-$2") // Handle consecutive uppercase letters
48
+ .toLowerCase();
49
+ }
50
+
51
+ export function kebabToPascalCase(str) {
52
+ return str
53
+ .split("-") // Split by hyphens
54
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1)) // Capitalize first letter
55
+ .join(""); // Join without spaces
56
+ }
57
+
58
+ /**
59
+ * Forces a line break before the third capital letter in a string
60
+ * @param {string} text - The text to process
61
+ * @returns {string} - The text with <br> inserted before the third capital letter
62
+ */
63
+ export function forceWrapAtThirdCapital(text) {
64
+ if (!text || typeof text !== "string") return text;
65
+
66
+ let capitalCount = 0;
67
+ let result = "";
68
+
69
+ for (let i = 0; i < text.length; i++) {
70
+ const char = text[i];
71
+
72
+ // Check if current character is uppercase
73
+ if (char >= "A" && char <= "Z") {
74
+ capitalCount++;
75
+
76
+ // Insert forced line break before the third capital letter
77
+ if (capitalCount === 3) {
78
+ result += "<br>";
79
+ }
80
+ }
81
+
82
+ result += char;
83
+ }
84
+
85
+ return result;
86
+ }
package/package.json ADDED
@@ -0,0 +1,113 @@
1
+ {
2
+ "name": "@communitiesuk/svelte-component-library",
3
+ "version": "0.1.17",
4
+ "repository": {
5
+ "type": "git",
6
+ "url": "https://github.com/communitiesuk/mhclg_svelte_component_library.git"
7
+ },
8
+ "publishConfig": {
9
+ "registry": "https://registry.npmjs.org/",
10
+ "access": "public"
11
+ },
12
+ "author": "Ibrahim-Haizel",
13
+ "description": "A collection of reusable Svelte components",
14
+ "scripts": {
15
+ "test": "echo \"Error: no test specified\" && exit 1",
16
+ "dev": "vite dev",
17
+ "build": "vite build && npm run package",
18
+ "preview": "vite preview",
19
+ "prepackage": "tsx scripts/generate-index.ts && node scripts/copy-static-assets-to-lib.js",
20
+ "package": "npm run prepackage && svelte-kit sync && svelte-package && publint",
21
+ "prepublishOnly": "npm run package",
22
+ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
23
+ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
24
+ "lint": "eslint . && prettier --check .",
25
+ "format": "prettier --write .",
26
+ "generate-data": "tsx scripts/generateJSONData.cjs",
27
+ "copy-static-assets-to-lib": "node scripts/copy-static-assets-to-lib.js",
28
+ "copy-govuk-assets": "node scripts/copy-govuk-assets-to-static.js",
29
+ "copy-moj-assets": "node scripts/copy-moj-assets-to-static.js",
30
+ "prepare": "",
31
+ "create-component-and-wrapper-pages": "node scripts/create-component-and-wrapper-pages.js"
32
+ },
33
+ "files": [
34
+ "dist",
35
+ "!dist/**/*.test.*",
36
+ "!dist/**/*.spec.*"
37
+ ],
38
+ "sideEffects": [
39
+ "**/*.css"
40
+ ],
41
+ "svelte": "./dist/index.js",
42
+ "types": "./dist/index.d.ts",
43
+ "type": "module",
44
+ "exports": {
45
+ ".": {
46
+ "types": "./dist/index.d.ts",
47
+ "svelte": "./dist/index.js"
48
+ }
49
+ },
50
+ "peerDependencies": {
51
+ "@sveltejs/kit": "^2.0.0",
52
+ "svelte": "^5.0.0"
53
+ },
54
+ "devDependencies": {
55
+ "@sveltejs/adapter-auto": "^3.3.0",
56
+ "@sveltejs/kit": "^2.16.1",
57
+ "@sveltejs/package": "^2.0.0",
58
+ "@sveltejs/vite-plugin-svelte": "^4.0.0",
59
+ "@tailwindcss/aspect-ratio": "^0.4.2",
60
+ "@tailwindcss/forms": "^0.5.9",
61
+ "@tailwindcss/typography": "^0.5.15",
62
+ "@types/eslint": "^9.6.0",
63
+ "autoprefixer": "^10.4.20",
64
+ "eslint": "^9.7.0",
65
+ "eslint-config-prettier": "^9.1.0",
66
+ "eslint-plugin-svelte": "^2.36.0",
67
+ "flowbite": "^2.5.2",
68
+ "flowbite-svelte": "^0.47.3",
69
+ "fs-extra": "^11.3.0",
70
+ "globals": "^15.0.0",
71
+ "mdsvex": "^0.11.2",
72
+ "prettier": "^3.3.2",
73
+ "prettier-plugin-svelte": "^3.3.3",
74
+ "publint": "^0.2.0",
75
+ "shiki": "^1.27.2",
76
+ "svelte": "^5.19.1",
77
+ "svelte-check": "^4.0.0",
78
+ "sveltekit-autoimport": "^1.8.1",
79
+ "tailwindcss": "^3.4.9",
80
+ "tsx": "^4.19.2",
81
+ "typescript": "^5.0.0",
82
+ "typescript-eslint": "^8.0.0",
83
+ "vite": "^5.0.11"
84
+ },
85
+ "dependencies": {
86
+ "@dwp/dwp-frontend": "^3.3.0",
87
+ "@maptiler/sdk": "^3.0.1",
88
+ "@ministryofjustice/frontend": "^4.0.1",
89
+ "@monaco-editor/loader": "^1.4.0",
90
+ "@types/dompurify": "^3.0.5",
91
+ "accessible-autocomplete": "^3.0.1",
92
+ "csv-parser": "^3.0.0",
93
+ "d3": "^7.9.0",
94
+ "decimal.js": "^10.5.0",
95
+ "dompurify": "^3.2.5",
96
+ "flowbite-svelte-icons": "^2.0.3",
97
+ "govuk-frontend": "^5.9.0",
98
+ "labelplacer": "^0.0.0",
99
+ "leaflet": "^1.9.4",
100
+ "mapbox-gl": "^1.13.3",
101
+ "maplibre-gl": "^5.2.0",
102
+ "monaco-editor": "^0.52.2",
103
+ "node": "^18.20.6",
104
+ "npm": "^11.0.0",
105
+ "prism-svelte": "^0.5.0",
106
+ "prismjs": "^1.29.0",
107
+ "shiki": "^1.27.2",
108
+ "sveaflet": "^0.1.4",
109
+ "svelte-maplibre": "^1.0.0-next.12",
110
+ "svelte-preprocess": "^6.0.3",
111
+ "topojson-client": "^3.1.0"
112
+ }
113
+ }