@hkdigital/lib-sveltekit 0.2.21 → 0.2.22

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 (254) hide show
  1. package/README.md +149 -135
  2. package/dist/assets/autospuiten/car-paint-picker.js +41 -41
  3. package/dist/assets/autospuiten/labels.js +7 -7
  4. package/dist/classes/cache/IndexedDbCache.js +1407 -1407
  5. package/dist/classes/cache/MemoryResponseCache.js +138 -138
  6. package/dist/classes/cache/index.js +5 -5
  7. package/dist/classes/cache/typedef.js +41 -41
  8. package/dist/classes/data/IterableTree.js +243 -243
  9. package/dist/classes/data/Selector.js +190 -190
  10. package/dist/classes/data/index.js +2 -2
  11. package/dist/classes/events/EventEmitter.js +275 -275
  12. package/dist/classes/events/index.js +2 -2
  13. package/dist/classes/index.js +4 -4
  14. package/dist/classes/logging/Logger.js +210 -210
  15. package/dist/classes/logging/constants.js +16 -16
  16. package/dist/classes/logging/index.js +4 -4
  17. package/dist/classes/logging/typedef.js +17 -17
  18. package/dist/classes/promise/HkPromise.js +377 -377
  19. package/dist/classes/promise/index.js +1 -1
  20. package/dist/classes/services/ServiceBase.js +463 -463
  21. package/dist/classes/services/ServiceManager.js +614 -614
  22. package/dist/classes/services/index.js +5 -5
  23. package/dist/classes/services/service-states.js +205 -205
  24. package/dist/classes/services/typedef.js +179 -179
  25. package/dist/classes/stores/SubscribersCount.js +107 -107
  26. package/dist/classes/stores/index.js +1 -1
  27. package/dist/classes/streams/LogTransformStream.js +19 -19
  28. package/dist/classes/streams/ServerEventsStore.js +110 -110
  29. package/dist/classes/streams/TimeStampSource.js +26 -26
  30. package/dist/classes/streams/index.js +3 -3
  31. package/dist/classes/svelte/audio/AudioLoader.svelte.js +58 -58
  32. package/dist/classes/svelte/audio/AudioScene.svelte.js +324 -324
  33. package/dist/classes/svelte/audio/mocks.js +35 -35
  34. package/dist/classes/svelte/finite-state-machine/FiniteStateMachine.svelte.js +133 -133
  35. package/dist/classes/svelte/finite-state-machine/index.js +1 -1
  36. package/dist/classes/svelte/image/ImageLoader.svelte.js +45 -45
  37. package/dist/classes/svelte/image/ImageScene.svelte.js +249 -249
  38. package/dist/classes/svelte/image/ImageVariantsLoader.svelte.js +152 -152
  39. package/dist/classes/svelte/image/index.js +4 -4
  40. package/dist/classes/svelte/image/mocks.js +35 -35
  41. package/dist/classes/svelte/image/typedef.js +8 -8
  42. package/dist/classes/svelte/index.js +14 -14
  43. package/dist/classes/svelte/loading-state-machine/LoadingStateMachine.svelte.js +109 -109
  44. package/dist/classes/svelte/loading-state-machine/constants.js +16 -16
  45. package/dist/classes/svelte/loading-state-machine/index.js +3 -3
  46. package/dist/classes/svelte/network-loader/NetworkLoader.svelte.js +338 -338
  47. package/dist/classes/svelte/network-loader/constants.js +3 -3
  48. package/dist/classes/svelte/network-loader/index.js +3 -3
  49. package/dist/classes/svelte/network-loader/mocks.js +30 -30
  50. package/dist/classes/svelte/network-loader/typedef.js +8 -8
  51. package/dist/components/area/HkArea.svelte +49 -49
  52. package/dist/components/area/HkGridArea.svelte +77 -77
  53. package/dist/components/area/index.js +2 -2
  54. package/dist/components/buttons/button/Button.svelte +82 -82
  55. package/dist/components/buttons/button-icon-steeze/SteezeIconButton.svelte +30 -30
  56. package/dist/components/buttons/button-text/TextButton.svelte +21 -21
  57. package/dist/components/buttons/index.js +3 -3
  58. package/dist/components/debug/debug-panel-design-scaling/DebugPanelDesignScaling.svelte +146 -146
  59. package/dist/components/debug/index.js +1 -1
  60. package/dist/components/drag-drop/DragController.js +44 -44
  61. package/dist/components/drag-drop/DragDropContext.svelte +111 -111
  62. package/dist/components/drag-drop/Draggable.svelte +519 -519
  63. package/dist/components/drag-drop/{Dropzone.svelte → DropZone.svelte} +258 -258
  64. package/dist/components/drag-drop/DropZoneArea.svelte +119 -119
  65. package/dist/components/drag-drop/DropZoneList.svelte +125 -125
  66. package/dist/components/drag-drop/actions.js +26 -26
  67. package/dist/components/drag-drop/drag-state.svelte.js +322 -322
  68. package/dist/components/drag-drop/index.js +7 -7
  69. package/dist/components/drag-drop/util.js +85 -85
  70. package/dist/components/hkdev/blocks/TextBlock.svelte +46 -46
  71. package/dist/components/hkdev/buttons/CheckButton.svelte +62 -62
  72. package/dist/components/icons/HkIcon.svelte +86 -86
  73. package/dist/components/icons/HkTabIcon.svelte +116 -116
  74. package/dist/components/icons/SteezeIcon.svelte +97 -97
  75. package/dist/components/icons/index.js +6 -6
  76. package/dist/components/icons/typedef.js +16 -16
  77. package/dist/components/index.js +2 -2
  78. package/dist/components/inputs/index.js +1 -1
  79. package/dist/components/inputs/text-input/TestTextInput.svelte__ +102 -102
  80. package/dist/components/inputs/text-input/TextInput.svelte +223 -223
  81. package/dist/components/inputs/text-input/TextInput.svelte___ +83 -83
  82. package/dist/components/inputs/text-input/assets/IconInvalid.svelte +14 -14
  83. package/dist/components/inputs/text-input/assets/IconValid.svelte +12 -12
  84. package/dist/components/layout/grid-layers/GridLayers.svelte +63 -63
  85. package/dist/components/layout/grid-layers/GridLayers.svelte__heightFrom__ +372 -0
  86. package/dist/components/layout/grid-layers/util.js +74 -74
  87. package/dist/components/layout/index.js +1 -1
  88. package/dist/components/panels/index.js +1 -1
  89. package/dist/components/panels/panel/Panel.svelte +43 -43
  90. package/dist/components/rows/index.js +3 -3
  91. package/dist/components/rows/panel-grid-row/PanelGridRow.svelte +104 -104
  92. package/dist/components/rows/panel-row-2/PanelRow2.svelte +40 -40
  93. package/dist/components/tab-bar/HkTabBar.state.svelte.js +149 -149
  94. package/dist/components/tab-bar/HkTabBar.svelte +74 -74
  95. package/dist/components/tab-bar/HkTabBarSelector.state.svelte.js +93 -93
  96. package/dist/components/tab-bar/HkTabBarSelector.svelte +49 -49
  97. package/dist/components/tab-bar/index.js +17 -17
  98. package/dist/components/tab-bar/typedef.js +11 -11
  99. package/dist/config/imagetools-config.js +189 -189
  100. package/dist/config/imagetools.d.ts +72 -72
  101. package/dist/constants/bases.js +13 -13
  102. package/dist/constants/errors/api.js +9 -9
  103. package/dist/constants/errors/generic.js +5 -5
  104. package/dist/constants/errors/index.js +3 -3
  105. package/dist/constants/errors/jwt.js +5 -5
  106. package/dist/constants/http/headers.js +6 -6
  107. package/dist/constants/http/index.js +2 -2
  108. package/dist/constants/http/methods.js +14 -14
  109. package/dist/constants/index.js +3 -3
  110. package/dist/constants/mime/application.js +5 -5
  111. package/dist/constants/mime/audio.js +13 -13
  112. package/dist/constants/mime/image.js +3 -3
  113. package/dist/constants/mime/index.js +4 -4
  114. package/dist/constants/mime/text.js +2 -2
  115. package/dist/constants/regexp/index.js +31 -31
  116. package/dist/constants/regexp/inspiratie.js__ +95 -95
  117. package/dist/constants/regexp/text.js +49 -49
  118. package/dist/constants/regexp/user.js +32 -32
  119. package/dist/constants/regexp/web.js +3 -3
  120. package/dist/constants/state-labels/drag-states.js +6 -6
  121. package/dist/constants/state-labels/drop-states.js +6 -6
  122. package/dist/constants/state-labels/input-states.js +11 -11
  123. package/dist/constants/state-labels/submit-states.js +4 -4
  124. package/dist/constants/time.js +28 -28
  125. package/dist/css/utilities.css +43 -43
  126. package/dist/design/design-config.js +73 -73
  127. package/dist/design/tailwind-theme-extend.js +158 -158
  128. package/dist/features/button-group/ButtonGroup.svelte +82 -82
  129. package/dist/features/button-group/typedef.js +10 -10
  130. package/dist/features/compare-left-right/CompareLeftRight.svelte +179 -179
  131. package/dist/features/compare-left-right/index.js +1 -1
  132. package/dist/features/game-box/GameBox.svelte +577 -577
  133. package/dist/features/game-box/gamebox.util.js +83 -83
  134. package/dist/features/hk-app-layout/HkAppLayout.state.svelte.js +25 -25
  135. package/dist/features/hk-app-layout/HkAppLayout.svelte +251 -251
  136. package/dist/features/image-box/ImageBox.svelte +210 -210
  137. package/dist/features/image-box/index.js +5 -5
  138. package/dist/features/image-box/typedef.js +32 -32
  139. package/dist/features/index.js +23 -23
  140. package/dist/features/presenter/ImageSlide.svelte +64 -64
  141. package/dist/features/presenter/Presenter.state.svelte.js +638 -638
  142. package/dist/features/presenter/Presenter.svelte +142 -142
  143. package/dist/features/presenter/constants.js +7 -7
  144. package/dist/features/presenter/index.js +10 -10
  145. package/dist/features/presenter/typedef.js +106 -106
  146. package/dist/features/presenter/util.js +210 -210
  147. package/dist/features/virtual-viewport/VirtualViewport.svelte +196 -196
  148. package/dist/logging/adapters/console.js +114 -114
  149. package/dist/logging/adapters/pino.js +60 -60
  150. package/dist/logging/constants.js +1 -1
  151. package/dist/logging/factories/client.js +21 -21
  152. package/dist/logging/factories/server.js +22 -22
  153. package/dist/logging/factories/universal.js +23 -23
  154. package/dist/logging/index.js +8 -8
  155. package/dist/schemas/index.js +1 -1
  156. package/dist/schemas/validate-url.js +180 -180
  157. package/dist/server/index.js +1 -1
  158. package/dist/server/logger.js +94 -94
  159. package/dist/states/index.js +1 -1
  160. package/dist/states/navigation.svelte.js +55 -55
  161. package/dist/stores/index.js +1 -1
  162. package/dist/stores/theme.js +80 -80
  163. package/dist/themes/hkdev/components/blocks/text-block.css +34 -34
  164. package/dist/themes/hkdev/components/boxes/game-box.css +11 -11
  165. package/dist/themes/hkdev/components/buttons/button-icon-steeze.css +22 -22
  166. package/dist/themes/hkdev/components/buttons/button-text.css +32 -32
  167. package/dist/themes/hkdev/components/buttons/button.css +146 -146
  168. package/dist/themes/hkdev/components/buttons/skip-button.css +5 -5
  169. package/dist/themes/hkdev/components/drag-drop/draggable.css +73 -73
  170. package/dist/themes/hkdev/components/drag-drop/drop-zone.css +58 -58
  171. package/dist/themes/hkdev/components/icons/icon-steeze.css +15 -15
  172. package/dist/themes/hkdev/components/inputs/text-input.css +102 -102
  173. package/dist/themes/hkdev/components/panels/panel.css +25 -25
  174. package/dist/themes/hkdev/components/rows/panel-grid-row.css +4 -4
  175. package/dist/themes/hkdev/components/rows/panel-row-2.css +5 -5
  176. package/dist/themes/hkdev/components.css +29 -29
  177. package/dist/themes/hkdev/debug.css +1 -1
  178. package/dist/themes/hkdev/global/layout.css +32 -32
  179. package/dist/themes/hkdev/global/on-colors.css +32 -32
  180. package/dist/themes/hkdev/globals.css +3 -3
  181. package/dist/themes/hkdev/responsive.css +12 -12
  182. package/dist/themes/hkdev/theme-ext.js +12 -12
  183. package/dist/themes/hkdev/theme.css +218 -218
  184. package/dist/themes/index.js +1 -1
  185. package/dist/typedef/context.js +6 -6
  186. package/dist/typedef/drag.js +25 -25
  187. package/dist/typedef/drop.js +12 -12
  188. package/dist/typedef/image.js +38 -38
  189. package/dist/typedef/index.js +4 -4
  190. package/dist/util/array/index.js +436 -436
  191. package/dist/util/bases/base58.js +262 -262
  192. package/dist/util/bases/index.js +1 -1
  193. package/dist/util/compare/index.js +247 -247
  194. package/dist/util/css/css-vars.js +83 -83
  195. package/dist/util/css/index.js +1 -1
  196. package/dist/util/design-system/components/states.js +22 -22
  197. package/dist/util/design-system/css/clamp.js +66 -66
  198. package/dist/util/design-system/css/root-design-vars.js +102 -102
  199. package/dist/util/design-system/index.js +5 -5
  200. package/dist/util/design-system/layout/scaling.js +228 -228
  201. package/dist/util/design-system/skeleton.js +208 -208
  202. package/dist/util/design-system/tailwind.js +288 -288
  203. package/dist/util/env/index.js +9 -9
  204. package/dist/util/exceptions/index.d.ts +11 -0
  205. package/dist/util/exceptions/index.js +17 -0
  206. package/dist/util/expect/arrays.js +47 -47
  207. package/dist/util/expect/index.js +259 -259
  208. package/dist/util/expect/primitives.js +55 -55
  209. package/dist/util/expect/url.js +60 -60
  210. package/dist/util/function/index.js +218 -218
  211. package/dist/util/geo/index.js +26 -26
  212. package/dist/util/http/caching.js +263 -263
  213. package/dist/util/http/errors.js +97 -97
  214. package/dist/util/http/headers.js +75 -75
  215. package/dist/util/http/http-request.js +578 -578
  216. package/dist/util/http/index.js +22 -22
  217. package/dist/util/http/json-request.js +224 -224
  218. package/dist/util/http/mocks.js +65 -65
  219. package/dist/util/http/response.js +294 -294
  220. package/dist/util/http/test-data__/content-length-test-hkdigital-small.V4HfZyBQ.avif +0 -0
  221. package/dist/util/http/typedef.js +93 -93
  222. package/dist/util/http/url.js +52 -52
  223. package/dist/util/image/index.js +86 -86
  224. package/dist/util/index.d.ts +1 -0
  225. package/dist/util/index.js +3 -2
  226. package/dist/util/is/index.js +140 -140
  227. package/dist/util/iterate/index.js +234 -234
  228. package/dist/util/object/index.js +1361 -1361
  229. package/dist/util/singleton/index.js +97 -97
  230. package/dist/util/string/array-path.js +75 -75
  231. package/dist/util/string/convert.js +54 -54
  232. package/dist/util/string/fs.js +226 -226
  233. package/dist/util/string/index.js +5 -5
  234. package/dist/util/string/interpolate.js +61 -61
  235. package/dist/util/string/pad.js +10 -10
  236. package/dist/util/svelte/index.js +4 -4
  237. package/dist/util/svelte/loading/loading-tracker.svelte.js +108 -108
  238. package/dist/util/svelte/observe/index.js +49 -49
  239. package/dist/util/svelte/state-context/index.js +117 -117
  240. package/dist/util/svelte/wait/index.js +38 -38
  241. package/dist/util/sveltekit/index.js +1 -1
  242. package/dist/util/sveltekit/route-folders/index.js +101 -101
  243. package/dist/util/time/index.js +323 -323
  244. package/dist/util/unique/index.js +249 -249
  245. package/dist/valibot/date.js__ +10 -10
  246. package/dist/valibot/index.js +9 -9
  247. package/dist/valibot/url.js +95 -95
  248. package/dist/valibot/user.js +23 -23
  249. package/dist/zod/all.js +33 -33
  250. package/dist/zod/generic.js +11 -11
  251. package/dist/zod/javascript.js +32 -32
  252. package/dist/zod/user.js +16 -16
  253. package/dist/zod/web.js +52 -52
  254. package/package.json +133 -132
@@ -1,22 +1,22 @@
1
- /**
2
- * Generates state classes from an object of state variables
3
- *
4
- * @param {Object.<string, boolean>} stateObject
5
- * Object with state names as keys and boolean values
6
- *
7
- * @returns {string} Space-separated string of state classes
8
- *
9
- * @example
10
- * // Returns "state-selected state-error"
11
- * toStateClasses({ selected: true, loading: false, error: true });
12
- */
13
- export function toStateClasses(stateObject) {
14
- if (!stateObject || typeof stateObject !== 'object') {
15
- return '';
16
- }
17
-
18
- return Object.entries(stateObject)
19
- .filter((entry) => entry[1] === true)
20
- .map(([state]) => `state-${state}`)
21
- .join(' ');
22
- }
1
+ /**
2
+ * Generates state classes from an object of state variables
3
+ *
4
+ * @param {Object.<string, boolean>} stateObject
5
+ * Object with state names as keys and boolean values
6
+ *
7
+ * @returns {string} Space-separated string of state classes
8
+ *
9
+ * @example
10
+ * // Returns "state-selected state-error"
11
+ * toStateClasses({ selected: true, loading: false, error: true });
12
+ */
13
+ export function toStateClasses(stateObject) {
14
+ if (!stateObject || typeof stateObject !== 'object') {
15
+ return '';
16
+ }
17
+
18
+ return Object.entries(stateObject)
19
+ .filter((entry) => entry[1] === true)
20
+ .map(([state]) => `state-${state}`)
21
+ .join(' ');
22
+ }
@@ -1,66 +1,66 @@
1
- import { getRootCssVar } from '../../css/index.js';
2
-
3
- /**
4
- * Cache to that ensures we parse CSS clamp parameters only once
5
- * @type {Object.<string, {min: number, max: number}>}
6
- */
7
- let clampParamCache = {};
8
-
9
- /**
10
- * Extract clamp parameters from a CSS variable
11
- *
12
- * @param {string} varName - CSS variable name without '--'
13
- * @returns {Object} Object with min and max values
14
- * @throws {Error} If the CSS variable doesn't exist or doesn't contain a valid clamp function
15
- */
16
- export function getClampParams(varName) {
17
- // Check cache first
18
- if (clampParamCache[varName]) {
19
- return clampParamCache[varName];
20
- }
21
-
22
- // Get the CSS variable value using the existing utility
23
- const declaration = getRootCssVar(varName);
24
-
25
- if (declaration === null) {
26
- throw new Error(`CSS variable --${varName} not found`);
27
- }
28
-
29
- // Parse clamp() function values
30
- const clampMatch =
31
- typeof declaration === 'string'
32
- ? declaration.match(
33
- /clamp\s*\(\s*([\d.]+)\s*,\s*[^,]+\s*,\s*([\d.]+)\s*\)/
34
- )
35
- : null;
36
-
37
- if (!clampMatch || clampMatch.length < 3) {
38
- // console.log(declaration);
39
- throw new Error(
40
- `CSS variable --${varName} does not contain a valid clamp function`
41
- );
42
- }
43
-
44
- const min = parseFloat(clampMatch[1]);
45
- const max = parseFloat(clampMatch[2]);
46
-
47
- if (isNaN(min) || isNaN(max)) {
48
- throw new Error(`Invalid min/max values in CSS variable --${varName}`);
49
- }
50
-
51
- // Cache the result
52
- clampParamCache[varName] = { min, max };
53
- return { min, max };
54
- }
55
-
56
- /**
57
- * CSS clamp function implementation
58
- *
59
- * @param {number} min - Minimum value
60
- * @param {number} value - Value to clamp
61
- * @param {number} max - Maximum value
62
- * @returns {number} Clamped value
63
- */
64
- export function clamp(min, value, max) {
65
- return Math.max(min, Math.min(value, max));
66
- }
1
+ import { getRootCssVar } from '../../css/index.js';
2
+
3
+ /**
4
+ * Cache to that ensures we parse CSS clamp parameters only once
5
+ * @type {Object.<string, {min: number, max: number}>}
6
+ */
7
+ let clampParamCache = {};
8
+
9
+ /**
10
+ * Extract clamp parameters from a CSS variable
11
+ *
12
+ * @param {string} varName - CSS variable name without '--'
13
+ * @returns {Object} Object with min and max values
14
+ * @throws {Error} If the CSS variable doesn't exist or doesn't contain a valid clamp function
15
+ */
16
+ export function getClampParams(varName) {
17
+ // Check cache first
18
+ if (clampParamCache[varName]) {
19
+ return clampParamCache[varName];
20
+ }
21
+
22
+ // Get the CSS variable value using the existing utility
23
+ const declaration = getRootCssVar(varName);
24
+
25
+ if (declaration === null) {
26
+ throw new Error(`CSS variable --${varName} not found`);
27
+ }
28
+
29
+ // Parse clamp() function values
30
+ const clampMatch =
31
+ typeof declaration === 'string'
32
+ ? declaration.match(
33
+ /clamp\s*\(\s*([\d.]+)\s*,\s*[^,]+\s*,\s*([\d.]+)\s*\)/
34
+ )
35
+ : null;
36
+
37
+ if (!clampMatch || clampMatch.length < 3) {
38
+ // console.log(declaration);
39
+ throw new Error(
40
+ `CSS variable --${varName} does not contain a valid clamp function`
41
+ );
42
+ }
43
+
44
+ const min = parseFloat(clampMatch[1]);
45
+ const max = parseFloat(clampMatch[2]);
46
+
47
+ if (isNaN(min) || isNaN(max)) {
48
+ throw new Error(`Invalid min/max values in CSS variable --${varName}`);
49
+ }
50
+
51
+ // Cache the result
52
+ clampParamCache[varName] = { min, max };
53
+ return { min, max };
54
+ }
55
+
56
+ /**
57
+ * CSS clamp function implementation
58
+ *
59
+ * @param {number} min - Minimum value
60
+ * @param {number} value - Value to clamp
61
+ * @param {number} max - Maximum value
62
+ * @returns {number} Clamped value
63
+ */
64
+ export function clamp(min, value, max) {
65
+ return Math.max(min, Math.min(value, max));
66
+ }
@@ -1,102 +1,102 @@
1
- import { getRootCssVar } from '../../css/css-vars.js';
2
-
3
- /**
4
- * Generates a complete HTML style tag with CSS custom properties for
5
- * the design system based on provided configuration.
6
- *
7
- * @param {Object} design - Design dimensions configuration
8
- * @param {number} design.width - The design width in pixels
9
- * @param {number} design.height - The design height in pixels
10
- * @param {Object} clamping - Scaling configuration parameters
11
- * @param {Object} clamping.ui - UI clamping configuration
12
- * @param {number} clamping.ui.min - Minimum UI scaling factor
13
- * @param {number} clamping.ui.max - Maximum UI scaling factor
14
- * @param {Object} clamping.textBase - Base text scaling configuration
15
- * @param {number} clamping.textBase.min - Minimum base text scaling
16
- * @param {number} clamping.textBase.max - Maximum base text scaling
17
- * @param {Object} clamping.textHeading - Heading text clamping configuration
18
- * @param {number} clamping.textHeading.min - Minimum heading text scaling
19
- * @param {number} clamping.textHeading.max - Maximum heading text scaling
20
- * @param {Object} clamping.textUi - UI text clamping configuration
21
- * @param {number} clamping.textUi.min - Minimum UI text scaling
22
- * @param {number} clamping.textUi.max - Maximum UI text scaling
23
- *
24
- * @returns {string} Complete HTML style tag with design system CSS variables
25
- *
26
- * @example
27
- * // +layout.svelte
28
- * <script>
29
- * import { DESIGN, CLAMPING } from '../../../tailwind/extend/clamping/config.js';
30
- *
31
- * import { rootDesignVarsHTML } from '../index.js';
32
- * </script>
33
- *
34
- * <svelte:head>
35
- * {@html rootDesignVarsHTML(DESIGN, CLAMPING)}
36
- * </svelte:head>
37
- *
38
- * // Generates style tag for use in svelte:head
39
- * // <style>:root { --design-width: 1920; ... }</style>
40
- */
41
- export function rootDesignVarsHTML(design, clamping) {
42
- return `<style>:root {
43
- /* Design dimensions */
44
- --design-width: ${design.width};
45
- --design-height: ${design.height};
46
-
47
- /* Scaling factors */
48
- --scale-w: 1;
49
- --scale-h: 1;
50
-
51
- /* --scale-viewport: min(var(--scale-w), var(--scale-h)); */
52
- --scale-viewport: 1;
53
-
54
- /* Base clamping units */
55
- --scale-ui: clamp(${clamping.ui.min}, var(--scale-viewport), ${clamping.ui.max});
56
- --scale-text-base: clamp(${clamping.textBase.min}, var(--scale-viewport), ${clamping.textBase.max});
57
- --scale-text-heading: clamp(${clamping.textHeading.min}, var(--scale-viewport), ${clamping.textHeading.max});
58
- --scale-text-ui: clamp(${clamping.textUi.min}, var(--scale-viewport), ${clamping.textUi.max});
59
- }</style>`;
60
- }
61
-
62
- /**
63
- * Get design width from CSS variables
64
- *
65
- * @returns {number} Design width
66
- */
67
- export function getRootCssDesignWidth() {
68
- return getRootCssVar('design-width');
69
- }
70
-
71
- /**
72
- * Get design height from CSS variables
73
- *
74
- * @returns {number} Design height
75
- */
76
- export function getRootCssDesignHeight() {
77
- return getRootCssVar('design-height');
78
- }
79
-
80
- /**
81
- * Retrieves all current scaling factors from CSS variables
82
- *
83
- * @returns {Object} An object containing all scaling factors
84
- */
85
- export function getAllRootScalingVars() {
86
- const styles = getComputedStyle(document.documentElement);
87
-
88
- return {
89
- scaleW: parseFloat(styles.getPropertyValue('--scale-w').trim()) || 0,
90
- scaleH: parseFloat(styles.getPropertyValue('--scale-h').trim()) || 0,
91
- scaleViewport:
92
- parseFloat(styles.getPropertyValue('--scale-viewport').trim()) || 0,
93
-
94
- scaleUI: parseFloat(styles.getPropertyValue('--scale-ui').trim()) || 0,
95
- scaleTextBase:
96
- parseFloat(styles.getPropertyValue('--scale-text-base').trim()) || 0,
97
- scaleTextHeading:
98
- parseFloat(styles.getPropertyValue('--scale-text-heading').trim()) || 0,
99
- scaleTextUI:
100
- parseFloat(styles.getPropertyValue('--scale-text-ui').trim()) || 0
101
- };
102
- }
1
+ import { getRootCssVar } from '../../css/css-vars.js';
2
+
3
+ /**
4
+ * Generates a complete HTML style tag with CSS custom properties for
5
+ * the design system based on provided configuration.
6
+ *
7
+ * @param {Object} design - Design dimensions configuration
8
+ * @param {number} design.width - The design width in pixels
9
+ * @param {number} design.height - The design height in pixels
10
+ * @param {Object} clamping - Scaling configuration parameters
11
+ * @param {Object} clamping.ui - UI clamping configuration
12
+ * @param {number} clamping.ui.min - Minimum UI scaling factor
13
+ * @param {number} clamping.ui.max - Maximum UI scaling factor
14
+ * @param {Object} clamping.textBase - Base text scaling configuration
15
+ * @param {number} clamping.textBase.min - Minimum base text scaling
16
+ * @param {number} clamping.textBase.max - Maximum base text scaling
17
+ * @param {Object} clamping.textHeading - Heading text clamping configuration
18
+ * @param {number} clamping.textHeading.min - Minimum heading text scaling
19
+ * @param {number} clamping.textHeading.max - Maximum heading text scaling
20
+ * @param {Object} clamping.textUi - UI text clamping configuration
21
+ * @param {number} clamping.textUi.min - Minimum UI text scaling
22
+ * @param {number} clamping.textUi.max - Maximum UI text scaling
23
+ *
24
+ * @returns {string} Complete HTML style tag with design system CSS variables
25
+ *
26
+ * @example
27
+ * // +layout.svelte
28
+ * <script>
29
+ * import { DESIGN, CLAMPING } from '../../../tailwind/extend/clamping/config.js';
30
+ *
31
+ * import { rootDesignVarsHTML } from '../index.js';
32
+ * </script>
33
+ *
34
+ * <svelte:head>
35
+ * {@html rootDesignVarsHTML(DESIGN, CLAMPING)}
36
+ * </svelte:head>
37
+ *
38
+ * // Generates style tag for use in svelte:head
39
+ * // <style>:root { --design-width: 1920; ... }</style>
40
+ */
41
+ export function rootDesignVarsHTML(design, clamping) {
42
+ return `<style>:root {
43
+ /* Design dimensions */
44
+ --design-width: ${design.width};
45
+ --design-height: ${design.height};
46
+
47
+ /* Scaling factors */
48
+ --scale-w: 1;
49
+ --scale-h: 1;
50
+
51
+ /* --scale-viewport: min(var(--scale-w), var(--scale-h)); */
52
+ --scale-viewport: 1;
53
+
54
+ /* Base clamping units */
55
+ --scale-ui: clamp(${clamping.ui.min}, var(--scale-viewport), ${clamping.ui.max});
56
+ --scale-text-base: clamp(${clamping.textBase.min}, var(--scale-viewport), ${clamping.textBase.max});
57
+ --scale-text-heading: clamp(${clamping.textHeading.min}, var(--scale-viewport), ${clamping.textHeading.max});
58
+ --scale-text-ui: clamp(${clamping.textUi.min}, var(--scale-viewport), ${clamping.textUi.max});
59
+ }</style>`;
60
+ }
61
+
62
+ /**
63
+ * Get design width from CSS variables
64
+ *
65
+ * @returns {number} Design width
66
+ */
67
+ export function getRootCssDesignWidth() {
68
+ return getRootCssVar('design-width');
69
+ }
70
+
71
+ /**
72
+ * Get design height from CSS variables
73
+ *
74
+ * @returns {number} Design height
75
+ */
76
+ export function getRootCssDesignHeight() {
77
+ return getRootCssVar('design-height');
78
+ }
79
+
80
+ /**
81
+ * Retrieves all current scaling factors from CSS variables
82
+ *
83
+ * @returns {Object} An object containing all scaling factors
84
+ */
85
+ export function getAllRootScalingVars() {
86
+ const styles = getComputedStyle(document.documentElement);
87
+
88
+ return {
89
+ scaleW: parseFloat(styles.getPropertyValue('--scale-w').trim()) || 0,
90
+ scaleH: parseFloat(styles.getPropertyValue('--scale-h').trim()) || 0,
91
+ scaleViewport:
92
+ parseFloat(styles.getPropertyValue('--scale-viewport').trim()) || 0,
93
+
94
+ scaleUI: parseFloat(styles.getPropertyValue('--scale-ui').trim()) || 0,
95
+ scaleTextBase:
96
+ parseFloat(styles.getPropertyValue('--scale-text-base').trim()) || 0,
97
+ scaleTextHeading:
98
+ parseFloat(styles.getPropertyValue('--scale-text-heading').trim()) || 0,
99
+ scaleTextUI:
100
+ parseFloat(styles.getPropertyValue('--scale-text-ui').trim()) || 0
101
+ };
102
+ }
@@ -1,5 +1,5 @@
1
- export * from './css/clamp.js';
2
- export * from './css/root-design-vars.js';
3
- export * from './components/states.js';
4
- export * from './layout/scaling.js';
5
- export * from './tailwind.js';
1
+ export * from './css/clamp.js';
2
+ export * from './css/root-design-vars.js';
3
+ export * from './components/states.js';
4
+ export * from './layout/scaling.js';
5
+ export * from './tailwind.js';