@politiet/sheriff-web-components 2.13.1 → 2.14.1

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 (159) hide show
  1. package/custom-elements.json +3942 -1450
  2. package/dist/controllers/index.d.ts +3 -0
  3. package/dist/controllers/index.d.ts.map +1 -0
  4. package/dist/controllers/index.js +3 -0
  5. package/dist/controllers/index.js.map +1 -0
  6. package/dist/controllers/sds-drag-drop-controller.d.ts +25 -0
  7. package/dist/controllers/sds-drag-drop-controller.d.ts.map +1 -0
  8. package/dist/controllers/sds-drag-drop-controller.js +52 -0
  9. package/dist/controllers/sds-drag-drop-controller.js.map +1 -0
  10. package/dist/controllers/sds-file-preview-controller.d.ts +38 -0
  11. package/dist/controllers/sds-file-preview-controller.d.ts.map +1 -0
  12. package/dist/controllers/sds-file-preview-controller.js +90 -0
  13. package/dist/controllers/sds-file-preview-controller.js.map +1 -0
  14. package/dist/frameworks/preact.d.ts +15 -1
  15. package/dist/frameworks/preact.d.ts.map +1 -1
  16. package/dist/frameworks/react.d.ts +33 -1
  17. package/dist/frameworks/react.d.ts.map +1 -1
  18. package/dist/frameworks/solidjs.d.ts +4 -0
  19. package/dist/frameworks/solidjs.d.ts.map +1 -1
  20. package/dist/frameworks/svelte.d.ts +4 -0
  21. package/dist/frameworks/svelte.d.ts.map +1 -1
  22. package/dist/frameworks/vue.d.ts +24 -1
  23. package/dist/frameworks/vue.d.ts.map +1 -1
  24. package/dist/index.d.ts +8 -0
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +4 -0
  27. package/dist/index.js.map +1 -1
  28. package/dist/react-wrappers/SDSDialogWrapper.d.ts +1 -0
  29. package/dist/react-wrappers/SDSDialogWrapper.d.ts.map +1 -1
  30. package/dist/react-wrappers/SDSDialogWrapper.js +1 -0
  31. package/dist/react-wrappers/SDSDialogWrapper.js.map +1 -1
  32. package/dist/react-wrappers/SDSFileUploadFileListWrapper.d.ts +3 -0
  33. package/dist/react-wrappers/SDSFileUploadFileListWrapper.d.ts.map +1 -0
  34. package/dist/react-wrappers/SDSFileUploadFileListWrapper.js +10 -0
  35. package/dist/react-wrappers/SDSFileUploadFileListWrapper.js.map +1 -0
  36. package/dist/react-wrappers/SDSFileUploadItemWrapper.d.ts +6 -0
  37. package/dist/react-wrappers/SDSFileUploadItemWrapper.d.ts.map +1 -0
  38. package/dist/react-wrappers/SDSFileUploadItemWrapper.js +12 -0
  39. package/dist/react-wrappers/SDSFileUploadItemWrapper.js.map +1 -0
  40. package/dist/react-wrappers/SDSFileUploadWrapper.d.ts +12 -0
  41. package/dist/react-wrappers/SDSFileUploadWrapper.d.ts.map +1 -0
  42. package/dist/react-wrappers/SDSFileUploadWrapper.js +18 -0
  43. package/dist/react-wrappers/SDSFileUploadWrapper.js.map +1 -0
  44. package/dist/react-wrappers/SDSSearchWrapper.d.ts +15 -0
  45. package/dist/react-wrappers/SDSSearchWrapper.d.ts.map +1 -0
  46. package/dist/react-wrappers/SDSSearchWrapper.js +19 -0
  47. package/dist/react-wrappers/SDSSearchWrapper.js.map +1 -0
  48. package/dist/react-wrappers/SDSStepperStepWrapper.d.ts +4 -1
  49. package/dist/react-wrappers/SDSStepperStepWrapper.d.ts.map +1 -1
  50. package/dist/react-wrappers/SDSStepperStepWrapper.js +3 -1
  51. package/dist/react-wrappers/SDSStepperStepWrapper.js.map +1 -1
  52. package/dist/react-wrappers/index.d.ts +4 -0
  53. package/dist/react-wrappers/index.d.ts.map +1 -1
  54. package/dist/react-wrappers/index.js +4 -0
  55. package/dist/react-wrappers/index.js.map +1 -1
  56. package/dist/sds-alert/sds-alert.styles.js +1 -1
  57. package/dist/sds-alert/sds-alert.styles.js.map +1 -1
  58. package/dist/sds-button/sds-button.component.d.ts +0 -1
  59. package/dist/sds-button/sds-button.component.d.ts.map +1 -1
  60. package/dist/sds-button/sds-button.component.js +10 -16
  61. package/dist/sds-button/sds-button.component.js.map +1 -1
  62. package/dist/sds-checkbox/sds-checkbox.styles.d.ts.map +1 -1
  63. package/dist/sds-checkbox/sds-checkbox.styles.js +6 -0
  64. package/dist/sds-checkbox/sds-checkbox.styles.js.map +1 -1
  65. package/dist/sds-dialog/sds-dialog.component.d.ts.map +1 -1
  66. package/dist/sds-dialog/sds-dialog.component.js +11 -1
  67. package/dist/sds-dialog/sds-dialog.component.js.map +1 -1
  68. package/dist/sds-file-upload/sds-file-upload.d.ts +102 -0
  69. package/dist/sds-file-upload/sds-file-upload.d.ts.map +1 -0
  70. package/dist/sds-file-upload/sds-file-upload.js +384 -0
  71. package/dist/sds-file-upload/sds-file-upload.js.map +1 -0
  72. package/dist/sds-file-upload/sds-file-upload.styles.d.ts +2 -0
  73. package/dist/sds-file-upload/sds-file-upload.styles.d.ts.map +1 -0
  74. package/dist/sds-file-upload/sds-file-upload.styles.js +234 -0
  75. package/dist/sds-file-upload/sds-file-upload.styles.js.map +1 -0
  76. package/dist/sds-file-upload-file-list/sds-file-upload-file-list.d.ts +14 -0
  77. package/dist/sds-file-upload-file-list/sds-file-upload-file-list.d.ts.map +1 -0
  78. package/dist/sds-file-upload-file-list/sds-file-upload-file-list.js +26 -0
  79. package/dist/sds-file-upload-file-list/sds-file-upload-file-list.js.map +1 -0
  80. package/dist/sds-file-upload-file-list/sds-file-upload-file-list.styles.d.ts +2 -0
  81. package/dist/sds-file-upload-file-list/sds-file-upload-file-list.styles.d.ts.map +1 -0
  82. package/dist/sds-file-upload-file-list/sds-file-upload-file-list.styles.js +19 -0
  83. package/dist/sds-file-upload-file-list/sds-file-upload-file-list.styles.js.map +1 -0
  84. package/dist/sds-file-upload-item/assets/u-progress.js +2 -0
  85. package/dist/sds-file-upload-item/sds-file-upload-item.d.ts +62 -0
  86. package/dist/sds-file-upload-item/sds-file-upload-item.d.ts.map +1 -0
  87. package/dist/sds-file-upload-item/sds-file-upload-item.js +205 -0
  88. package/dist/sds-file-upload-item/sds-file-upload-item.js.map +1 -0
  89. package/dist/sds-file-upload-item/sds-file-upload-item.styles.d.ts +2 -0
  90. package/dist/sds-file-upload-item/sds-file-upload-item.styles.d.ts.map +1 -0
  91. package/dist/sds-file-upload-item/sds-file-upload-item.styles.js +227 -0
  92. package/dist/sds-file-upload-item/sds-file-upload-item.styles.js.map +1 -0
  93. package/dist/sds-icon/sds-icon.system.js +7 -7
  94. package/dist/sds-icon/sds-icon.system.js.map +1 -1
  95. package/dist/sds-internal-header/sds-internal-header.component.js +1 -1
  96. package/dist/sds-internal-header/sds-internal-header.component.js.map +1 -1
  97. package/dist/sds-internal-header/sds-internal-header.styles.js +1 -1
  98. package/dist/sds-internal-header/sds-internal-header.styles.js.map +1 -1
  99. package/dist/sds-notification/sds-notification.styles.js +1 -1
  100. package/dist/sds-notification/sds-notification.styles.js.map +1 -1
  101. package/dist/sds-popover/assets/popover-styles.d.ts.map +1 -1
  102. package/dist/sds-popover/assets/popover-styles.js +1 -1
  103. package/dist/sds-popover/assets/popover-styles.js.map +1 -1
  104. package/dist/sds-radio/sds-radio.styles.d.ts.map +1 -1
  105. package/dist/sds-radio/sds-radio.styles.js +6 -1
  106. package/dist/sds-radio/sds-radio.styles.js.map +1 -1
  107. package/dist/sds-search/sds-search.component.d.ts +128 -0
  108. package/dist/sds-search/sds-search.component.d.ts.map +1 -0
  109. package/dist/sds-search/sds-search.component.js +345 -0
  110. package/dist/sds-search/sds-search.component.js.map +1 -0
  111. package/dist/sds-search/sds-search.d.ts +13 -0
  112. package/dist/sds-search/sds-search.d.ts.map +1 -0
  113. package/dist/sds-search/sds-search.js +18 -0
  114. package/dist/sds-search/sds-search.js.map +1 -0
  115. package/dist/sds-search/sds-search.styles.d.ts +2 -0
  116. package/dist/sds-search/sds-search.styles.d.ts.map +1 -0
  117. package/dist/sds-search/sds-search.styles.js +74 -0
  118. package/dist/sds-search/sds-search.styles.js.map +1 -0
  119. package/dist/sds-stepper-step/sds-stepper-step.d.ts +3 -0
  120. package/dist/sds-stepper-step/sds-stepper-step.d.ts.map +1 -1
  121. package/dist/sds-stepper-step/sds-stepper-step.js +4 -3
  122. package/dist/sds-stepper-step/sds-stepper-step.js.map +1 -1
  123. package/dist/sds-stepper-step/sds-stepper-step.styles.js +3 -3
  124. package/dist/sds-stepper-step/sds-stepper-step.styles.js.map +1 -1
  125. package/dist/sds-textfield/sds-textfield.component.d.ts +4 -1
  126. package/dist/sds-textfield/sds-textfield.component.d.ts.map +1 -1
  127. package/dist/sds-textfield/sds-textfield.component.js +20 -5
  128. package/dist/sds-textfield/sds-textfield.component.js.map +1 -1
  129. package/dist/sds-textfield/sds-textfield.styles.d.ts.map +1 -1
  130. package/dist/sds-textfield/sds-textfield.styles.js +11 -0
  131. package/dist/sds-textfield/sds-textfield.styles.js.map +1 -1
  132. package/dist/sds-tooltip/assets/tooltip-styles.d.ts.map +1 -1
  133. package/dist/sds-tooltip/assets/tooltip-styles.js +1 -1
  134. package/dist/sds-tooltip/assets/tooltip-styles.js.map +1 -1
  135. package/dist/sds-tooltip/sds-tooltip.d.ts.map +1 -1
  136. package/dist/sds-tooltip/sds-tooltip.js +1 -1
  137. package/dist/sds-tooltip/sds-tooltip.js.map +1 -1
  138. package/dist/shared/assets/positioning.js +1 -1
  139. package/dist/sheriff-web-components.js +1103 -371
  140. package/dist/skill/SKILL.md +61 -50
  141. package/dist/skill/references/components.md +91 -3
  142. package/dist/skill/references/react-wrappers.md +28 -19
  143. package/dist/utils/file-validation.d.ts +31 -0
  144. package/dist/utils/file-validation.d.ts.map +1 -0
  145. package/dist/utils/file-validation.js +57 -0
  146. package/dist/utils/file-validation.js.map +1 -0
  147. package/dist/utils/format-bytes.d.ts +6 -0
  148. package/dist/utils/format-bytes.d.ts.map +1 -0
  149. package/dist/utils/format-bytes.js +13 -0
  150. package/dist/utils/format-bytes.js.map +1 -0
  151. package/dist/utils/video-thumbnail.d.ts +8 -0
  152. package/dist/utils/video-thumbnail.d.ts.map +1 -0
  153. package/dist/utils/video-thumbnail.js +77 -0
  154. package/dist/utils/video-thumbnail.js.map +1 -0
  155. package/dist/version.d.ts +1 -1
  156. package/dist/version.js +1 -1
  157. package/dist/version.js.map +1 -1
  158. package/package.json +27 -7
  159. package/web-types.json +3437 -1120
@@ -0,0 +1,77 @@
1
+ const THUMBNAIL_TIMEOUT_MS = 5000;
2
+ const THUMBNAIL_QUALITY = 0.75;
3
+ let webpSupported;
4
+ function supportsWebpEncoding() {
5
+ if (webpSupported === undefined) {
6
+ const canvas = document.createElement('canvas');
7
+ canvas.width = canvas.height = 1;
8
+ webpSupported = canvas.toDataURL('image/webp').startsWith('data:image/webp');
9
+ }
10
+ return webpSupported;
11
+ }
12
+ /**
13
+ * Generates a square-agnostic still-frame thumbnail for a video file and returns an object URL
14
+ * for the encoded image blob (WebP where supported, otherwise JPEG). The caller owns the URL and
15
+ * must revoke it with `URL.revokeObjectURL` when done. Rejects if the video can't be decoded in
16
+ * time, so callers can fall back to a file icon.
17
+ */
18
+ export function generateVideoThumbnail(file) {
19
+ return new Promise((resolve, reject) => {
20
+ const source = URL.createObjectURL(file);
21
+ const video = document.createElement('video');
22
+ let settled = false;
23
+ const cleanup = () => {
24
+ clearTimeout(timer);
25
+ video.removeAttribute('src');
26
+ video.load();
27
+ URL.revokeObjectURL(source);
28
+ };
29
+ const fail = (error) => {
30
+ if (settled)
31
+ return;
32
+ settled = true;
33
+ cleanup();
34
+ reject(error instanceof Error ? error : new Error(String(error)));
35
+ };
36
+ const succeed = (url) => {
37
+ if (settled) {
38
+ URL.revokeObjectURL(url);
39
+ return;
40
+ }
41
+ settled = true;
42
+ cleanup();
43
+ resolve(url);
44
+ };
45
+ const timer = setTimeout(() => fail(new Error('Video thumbnail generation timed out')), THUMBNAIL_TIMEOUT_MS);
46
+ video.muted = true;
47
+ video.playsInline = true;
48
+ video.preload = 'auto';
49
+ video.addEventListener('error', () => fail(new Error('Video could not be decoded')));
50
+ video.addEventListener('loadeddata', () => {
51
+ // Seek slightly past the start to avoid capturing a black leading frame.
52
+ video.currentTime = Math.min(0.1, (video.duration || 0) / 2);
53
+ }, { once: true });
54
+ video.addEventListener('seeked', () => {
55
+ try {
56
+ const width = video.videoWidth;
57
+ const height = video.videoHeight;
58
+ if (!width || !height)
59
+ throw new Error('Video has no dimensions');
60
+ const canvas = document.createElement('canvas');
61
+ canvas.width = width;
62
+ canvas.height = height;
63
+ const context = canvas.getContext('2d');
64
+ if (!context)
65
+ throw new Error('Canvas 2D context unavailable');
66
+ context.drawImage(video, 0, 0, width, height);
67
+ const type = supportsWebpEncoding() ? 'image/webp' : 'image/jpeg';
68
+ canvas.toBlob((blob) => (blob ? succeed(URL.createObjectURL(blob)) : fail(new Error('Canvas toBlob returned null'))), type, THUMBNAIL_QUALITY);
69
+ }
70
+ catch (error) {
71
+ fail(error);
72
+ }
73
+ }, { once: true });
74
+ video.src = source;
75
+ });
76
+ }
77
+ //# sourceMappingURL=video-thumbnail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video-thumbnail.js","sourceRoot":"","sources":["../../src/utils/video-thumbnail.ts"],"names":[],"mappings":"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","sourcesContent":["const THUMBNAIL_TIMEOUT_MS = 5000;\nconst THUMBNAIL_QUALITY = 0.75;\n\nlet webpSupported: boolean | undefined;\n\nfunction supportsWebpEncoding(): boolean {\n\tif (webpSupported === undefined) {\n\t\tconst canvas = document.createElement('canvas');\n\t\tcanvas.width = canvas.height = 1;\n\t\twebpSupported = canvas.toDataURL('image/webp').startsWith('data:image/webp');\n\t}\n\treturn webpSupported;\n}\n\n/**\n * Generates a square-agnostic still-frame thumbnail for a video file and returns an object URL\n * for the encoded image blob (WebP where supported, otherwise JPEG). The caller owns the URL and\n * must revoke it with `URL.revokeObjectURL` when done. Rejects if the video can't be decoded in\n * time, so callers can fall back to a file icon.\n */\nexport function generateVideoThumbnail(file: File): Promise<string> {\n\treturn new Promise<string>((resolve, reject) => {\n\t\tconst source = URL.createObjectURL(file);\n\t\tconst video = document.createElement('video');\n\t\tlet settled = false;\n\n\t\tconst cleanup = () => {\n\t\t\tclearTimeout(timer);\n\t\t\tvideo.removeAttribute('src');\n\t\t\tvideo.load();\n\t\t\tURL.revokeObjectURL(source);\n\t\t};\n\t\tconst fail = (error: unknown) => {\n\t\t\tif (settled) return;\n\t\t\tsettled = true;\n\t\t\tcleanup();\n\t\t\treject(error instanceof Error ? error : new Error(String(error)));\n\t\t};\n\t\tconst succeed = (url: string) => {\n\t\t\tif (settled) {\n\t\t\t\tURL.revokeObjectURL(url);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsettled = true;\n\t\t\tcleanup();\n\t\t\tresolve(url);\n\t\t};\n\n\t\tconst timer = setTimeout(() => fail(new Error('Video thumbnail generation timed out')), THUMBNAIL_TIMEOUT_MS);\n\n\t\tvideo.muted = true;\n\t\tvideo.playsInline = true;\n\t\tvideo.preload = 'auto';\n\t\tvideo.addEventListener('error', () => fail(new Error('Video could not be decoded')));\n\n\t\tvideo.addEventListener(\n\t\t\t'loadeddata',\n\t\t\t() => {\n\t\t\t\t// Seek slightly past the start to avoid capturing a black leading frame.\n\t\t\t\tvideo.currentTime = Math.min(0.1, (video.duration || 0) / 2);\n\t\t\t},\n\t\t\t{ once: true },\n\t\t);\n\n\t\tvideo.addEventListener(\n\t\t\t'seeked',\n\t\t\t() => {\n\t\t\t\ttry {\n\t\t\t\t\tconst width = video.videoWidth;\n\t\t\t\t\tconst height = video.videoHeight;\n\t\t\t\t\tif (!width || !height) throw new Error('Video has no dimensions');\n\n\t\t\t\t\tconst canvas = document.createElement('canvas');\n\t\t\t\t\tcanvas.width = width;\n\t\t\t\t\tcanvas.height = height;\n\t\t\t\t\tconst context = canvas.getContext('2d');\n\t\t\t\t\tif (!context) throw new Error('Canvas 2D context unavailable');\n\t\t\t\t\tcontext.drawImage(video, 0, 0, width, height);\n\n\t\t\t\t\tconst type = supportsWebpEncoding() ? 'image/webp' : 'image/jpeg';\n\t\t\t\t\tcanvas.toBlob(\n\t\t\t\t\t\t(blob) => (blob ? succeed(URL.createObjectURL(blob)) : fail(new Error('Canvas toBlob returned null'))),\n\t\t\t\t\t\ttype,\n\t\t\t\t\t\tTHUMBNAIL_QUALITY,\n\t\t\t\t\t);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tfail(error);\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ once: true },\n\t\t);\n\n\t\tvideo.src = source;\n\t});\n}\n"]}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const SDS_VERSION = "2.13.1";
1
+ export declare const SDS_VERSION = "2.14.1";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by generate-version.cjs — do not edit manually
2
- export const SDS_VERSION = '2.13.1';
2
+ export const SDS_VERSION = '2.14.1';
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC","sourcesContent":["// Auto-generated by generate-version.cjs — do not edit manually\nexport const SDS_VERSION = '2.13.1';\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC","sourcesContent":["// Auto-generated by generate-version.cjs — do not edit manually\nexport const SDS_VERSION = '2.14.1';\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@politiet/sheriff-web-components",
3
- "version": "2.13.1",
3
+ "version": "2.14.1",
4
4
  "description": "Sheriff Design System Web Components Library",
5
5
  "author": "Politiets IT-enhet",
6
6
  "license": "ISC",
@@ -19,6 +19,7 @@
19
19
  "./dist/index.js",
20
20
  "./dist/sds-*/sds-*.js",
21
21
  "./dist/shared/**/positioning.js",
22
+ "./dist/sds-file-upload-item/assets/u-progress.js",
22
23
  "./dist/sheriff-web-components.js"
23
24
  ],
24
25
  "exports": {
@@ -97,6 +98,18 @@
97
98
  "import": "./dist/sds-environment-banner/sds-environment-banner.js",
98
99
  "default": "./dist/sds-environment-banner/sds-environment-banner.js"
99
100
  },
101
+ "./sds-file-upload": {
102
+ "types": "./dist/sds-file-upload/sds-file-upload.d.ts",
103
+ "import": "./dist/sds-file-upload/sds-file-upload.js"
104
+ },
105
+ "./sds-file-upload-item": {
106
+ "types": "./dist/sds-file-upload-item/sds-file-upload-item.d.ts",
107
+ "import": "./dist/sds-file-upload-item/sds-file-upload-item.js"
108
+ },
109
+ "./sds-file-upload-file-list": {
110
+ "types": "./dist/sds-file-upload-file-list/sds-file-upload-file-list.d.ts",
111
+ "import": "./dist/sds-file-upload-file-list/sds-file-upload-file-list.js"
112
+ },
100
113
  "./sds-heading": {
101
114
  "types": "./dist/sds-heading/sds-heading.d.ts",
102
115
  "import": "./dist/sds-heading/sds-heading.js",
@@ -152,6 +165,11 @@
152
165
  "import": "./dist/sds-radio-group/sds-radio-group.js",
153
166
  "default": "./dist/sds-radio-group/sds-radio-group.js"
154
167
  },
168
+ "./sds-search": {
169
+ "types": "./dist/sds-search/sds-search.d.ts",
170
+ "import": "./dist/sds-search/sds-search.js",
171
+ "default": "./dist/sds-search/sds-search.js"
172
+ },
155
173
  "./sds-select": {
156
174
  "types": "./dist/sds-select/sds-select.d.ts",
157
175
  "import": "./dist/sds-select/sds-select.js",
@@ -204,10 +222,11 @@
204
222
  "test:watch": "vitest",
205
223
  "tidy-frameworks": "node ../../../scripts/delete-filetypes-from-folder.js --folder ./dist/frameworks --filetypes js,js.map",
206
224
  "build:component-version": "node generate-version.cjs",
207
- "build": "npm run build:shared && npm run build:popover && npm run build:tooltip && npm run build:component-version && tsc && npm run tidy-frameworks && npm run build:metadata && npm run build:skill",
225
+ "build": "npm run build:shared && npm run build:popover && npm run build:tooltip && npm run build:u-progress && npm run build:component-version && tsc && npm run tidy-frameworks && npm run build:metadata && npm run build:skill",
208
226
  "build:shared": "rollup -c ./src/shared/assets/rollup.config.js",
209
227
  "build:tooltip": "rollup -c ./src/sds-tooltip/assets/rollup.config.js",
210
228
  "build:popover": "rollup -c src/sds-popover/assets/rollup.config.js",
229
+ "build:u-progress": "rollup -c ./src/sds-file-upload-item/assets/rollup.config.js",
211
230
  "build:web-types": "wca-webtypes analyze \"src/sds-*/**/*.ts\" --format webtypes --visibility public --outFile \"web-types.json\"",
212
231
  "build:cem": "cem analyze --config custom-elements-manifest.config.mjs --outdir .",
213
232
  "build:metadata": "npm run build:web-types && npm run build:cem",
@@ -218,10 +237,10 @@
218
237
  },
219
238
  "optionalDependencies": {
220
239
  "@lit/react": "^1.0.8",
221
- "@politiet/sheriff-icons": "^2.1.1"
240
+ "@politiet/sheriff-icons": "^2.1.2"
222
241
  },
223
242
  "peerDependencies": {
224
- "@politiet/sheriff-css-framework": "^2.6.1",
243
+ "@politiet/sheriff-css-framework": "^2.6.3",
225
244
  "typescript": ">=3.8.0"
226
245
  },
227
246
  "peerDependenciesMeta": {
@@ -232,16 +251,17 @@
232
251
  "devDependencies": {
233
252
  "@axe-core/playwright": "^4.11.3",
234
253
  "@custom-elements-manifest/analyzer": "^0.11.0",
235
- "@digdir/designsystemet-css": "^1.12.1",
236
- "@digdir/designsystemet-web": "^1.12.1",
254
+ "@digdir/designsystemet-css": "^1.23.0",
255
+ "@digdir/designsystemet-web": "^1.23.0",
237
256
  "@rollup/plugin-node-resolve": "^16.0.3",
238
257
  "@rollup/plugin-terser": "^1.0.0",
258
+ "@u-elements/u-progress": "^1.0.1",
239
259
  "lit-web-types": "^0.1.5",
240
260
  "preact": "^10.26.1",
241
261
  "rollup": "^4.59.0",
242
262
  "solid-js": "^1.9.4",
243
263
  "ts-lit-plugin": "^2.0.2",
244
- "vitest": "^3.2.4",
264
+ "vitest": "^4.1.11",
245
265
  "vue": "^3.5.13",
246
266
  "web-component-analyzer-webtypes": "^2.0.12"
247
267
  },