@hkdigital/lib-sveltekit 0.2.6 → 0.2.8

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 (243) hide show
  1. package/README.md +135 -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 +158 -158
  15. package/dist/classes/logging/constants.js +18 -18
  16. package/dist/classes/logging/index.js +4 -4
  17. package/dist/classes/promise/HkPromise.js +377 -377
  18. package/dist/classes/promise/index.js +1 -1
  19. package/dist/classes/services/ServiceBase.js +409 -409
  20. package/dist/classes/services/ServiceManager.js +1114 -1114
  21. package/dist/classes/services/constants.js +12 -12
  22. package/dist/classes/services/index.js +5 -5
  23. package/dist/classes/stores/SubscribersCount.js +107 -107
  24. package/dist/classes/stores/index.js +1 -1
  25. package/dist/classes/streams/LogTransformStream.js +19 -19
  26. package/dist/classes/streams/ServerEventsStore.js +110 -110
  27. package/dist/classes/streams/TimeStampSource.js +26 -26
  28. package/dist/classes/streams/index.js +3 -3
  29. package/dist/classes/svelte/audio/AudioLoader.svelte.js +58 -58
  30. package/dist/classes/svelte/audio/AudioScene.svelte.js +324 -324
  31. package/dist/classes/svelte/audio/mocks.js +35 -35
  32. package/dist/classes/svelte/finite-state-machine/FiniteStateMachine.svelte.js +133 -133
  33. package/dist/classes/svelte/finite-state-machine/index.js +1 -1
  34. package/dist/classes/svelte/image/ImageLoader.svelte.js +45 -45
  35. package/dist/classes/svelte/image/ImageScene.svelte.js +249 -249
  36. package/dist/classes/svelte/image/ImageVariantsLoader.svelte.js +152 -152
  37. package/dist/classes/svelte/image/index.js +4 -4
  38. package/dist/classes/svelte/image/mocks.js +35 -35
  39. package/dist/classes/svelte/image/typedef.js +8 -8
  40. package/dist/classes/svelte/index.js +14 -14
  41. package/dist/classes/svelte/loading-state-machine/LoadingStateMachine.svelte.js +109 -109
  42. package/dist/classes/svelte/loading-state-machine/constants.js +16 -16
  43. package/dist/classes/svelte/loading-state-machine/index.js +3 -3
  44. package/dist/classes/svelte/network-loader/NetworkLoader.svelte.js +338 -338
  45. package/dist/classes/svelte/network-loader/constants.js +3 -3
  46. package/dist/classes/svelte/network-loader/index.js +3 -3
  47. package/dist/classes/svelte/network-loader/mocks.js +30 -30
  48. package/dist/classes/svelte/network-loader/typedef.js +8 -8
  49. package/dist/components/area/HkArea.svelte +49 -49
  50. package/dist/components/area/HkGridArea.svelte +77 -77
  51. package/dist/components/area/index.js +2 -2
  52. package/dist/components/buttons/button/Button.svelte +82 -82
  53. package/dist/components/buttons/button-icon-steeze/SteezeIconButton.svelte +30 -30
  54. package/dist/components/buttons/button-text/TextButton.svelte +21 -21
  55. package/dist/components/buttons/index.js +3 -3
  56. package/dist/components/debug/debug-panel-design-scaling/DebugPanelDesignScaling.svelte +146 -146
  57. package/dist/components/debug/index.js +1 -1
  58. package/dist/components/drag-drop/DragController.d.ts +0 -20
  59. package/dist/components/drag-drop/DragController.js +44 -113
  60. package/dist/components/drag-drop/DragDropContext.svelte +110 -103
  61. package/dist/components/drag-drop/Draggable.svelte +512 -492
  62. package/dist/components/drag-drop/Draggable.svelte.d.ts +8 -2
  63. package/dist/components/drag-drop/DropZoneArea.svelte +119 -119
  64. package/dist/components/drag-drop/DropZoneList.svelte +125 -125
  65. package/dist/components/drag-drop/{DropZone.svelte → Dropzone.svelte} +258 -258
  66. package/dist/components/drag-drop/drag-state.svelte.js +319 -323
  67. package/dist/components/drag-drop/index.js +7 -7
  68. package/dist/components/drag-drop/util.js +85 -85
  69. package/dist/components/hkdev/blocks/TextBlock.svelte +46 -46
  70. package/dist/components/hkdev/buttons/CheckButton.svelte +62 -62
  71. package/dist/components/icons/HkIcon.svelte +86 -86
  72. package/dist/components/icons/HkTabIcon.svelte +116 -116
  73. package/dist/components/icons/SteezeIcon.svelte +97 -97
  74. package/dist/components/icons/index.js +6 -6
  75. package/dist/components/icons/typedef.js +16 -16
  76. package/dist/components/index.js +2 -2
  77. package/dist/components/inputs/index.js +1 -1
  78. package/dist/components/inputs/text-input/TestTextInput.svelte__ +102 -102
  79. package/dist/components/inputs/text-input/TextInput.svelte +223 -223
  80. package/dist/components/inputs/text-input/TextInput.svelte___ +83 -83
  81. package/dist/components/inputs/text-input/assets/IconInvalid.svelte +14 -14
  82. package/dist/components/inputs/text-input/assets/IconValid.svelte +12 -12
  83. package/dist/components/layout/grid-layers/GridLayers.svelte +63 -63
  84. package/dist/components/layout/grid-layers/util.js +74 -74
  85. package/dist/components/layout/index.js +1 -1
  86. package/dist/components/panels/index.js +1 -1
  87. package/dist/components/panels/panel/Panel.svelte +43 -43
  88. package/dist/components/rows/index.js +3 -3
  89. package/dist/components/rows/panel-grid-row/PanelGridRow.svelte +104 -104
  90. package/dist/components/rows/panel-row-2/PanelRow2.svelte +40 -40
  91. package/dist/components/tab-bar/HkTabBar.state.svelte.js +149 -149
  92. package/dist/components/tab-bar/HkTabBar.svelte +74 -74
  93. package/dist/components/tab-bar/HkTabBarSelector.state.svelte.js +93 -93
  94. package/dist/components/tab-bar/HkTabBarSelector.svelte +49 -49
  95. package/dist/components/tab-bar/index.js +17 -17
  96. package/dist/components/tab-bar/typedef.js +11 -11
  97. package/dist/config/imagetools-config.js +189 -189
  98. package/dist/config/imagetools.d.ts +72 -72
  99. package/dist/constants/bases.js +13 -13
  100. package/dist/constants/errors/api.js +9 -9
  101. package/dist/constants/errors/generic.js +5 -5
  102. package/dist/constants/errors/index.js +3 -3
  103. package/dist/constants/errors/jwt.js +5 -5
  104. package/dist/constants/http/headers.js +6 -6
  105. package/dist/constants/http/index.js +2 -2
  106. package/dist/constants/http/methods.js +2 -2
  107. package/dist/constants/index.js +3 -3
  108. package/dist/constants/mime/application.js +5 -5
  109. package/dist/constants/mime/audio.js +13 -13
  110. package/dist/constants/mime/image.js +3 -3
  111. package/dist/constants/mime/index.js +4 -4
  112. package/dist/constants/mime/text.js +2 -2
  113. package/dist/constants/regexp/index.js +31 -31
  114. package/dist/constants/regexp/inspiratie.js__ +95 -95
  115. package/dist/constants/regexp/text.js +49 -49
  116. package/dist/constants/regexp/user.js +32 -32
  117. package/dist/constants/regexp/web.js +3 -3
  118. package/dist/constants/state-labels/drag-states.js +6 -6
  119. package/dist/constants/state-labels/drop-states.js +6 -6
  120. package/dist/constants/state-labels/input-states.js +11 -11
  121. package/dist/constants/state-labels/submit-states.js +4 -4
  122. package/dist/constants/time.js +28 -28
  123. package/dist/css/utilities.css +43 -43
  124. package/dist/design/design-config.js +73 -73
  125. package/dist/design/tailwind-theme-extend.js +158 -158
  126. package/dist/features/button-group/ButtonGroup.svelte +82 -82
  127. package/dist/features/button-group/typedef.js +10 -10
  128. package/dist/features/compare-left-right/CompareLeftRight.svelte +179 -179
  129. package/dist/features/compare-left-right/index.js +1 -1
  130. package/dist/features/game-box/GameBox.svelte +577 -577
  131. package/dist/features/game-box/gamebox.util.js +83 -83
  132. package/dist/features/hk-app-layout/HkAppLayout.state.svelte.js +25 -25
  133. package/dist/features/hk-app-layout/HkAppLayout.svelte +251 -251
  134. package/dist/features/image-box/ImageBox.svelte +210 -210
  135. package/dist/features/image-box/index.js +5 -5
  136. package/dist/features/image-box/typedef.js +32 -32
  137. package/dist/features/index.js +23 -23
  138. package/dist/features/presenter/ImageSlide.svelte +64 -64
  139. package/dist/features/presenter/Presenter.state.svelte.js +638 -638
  140. package/dist/features/presenter/Presenter.svelte +142 -142
  141. package/dist/features/presenter/constants.js +7 -7
  142. package/dist/features/presenter/index.js +10 -10
  143. package/dist/features/presenter/typedef.js +106 -106
  144. package/dist/features/presenter/util.js +210 -210
  145. package/dist/features/virtual-viewport/VirtualViewport.svelte +196 -196
  146. package/dist/schemas/index.js +1 -1
  147. package/dist/schemas/validate-url.js +180 -180
  148. package/dist/server/index.js +1 -1
  149. package/dist/server/logger.js +94 -94
  150. package/dist/states/index.js +1 -1
  151. package/dist/states/navigation.svelte.js +55 -55
  152. package/dist/stores/index.js +1 -1
  153. package/dist/stores/theme.js +80 -80
  154. package/dist/themes/hkdev/components/blocks/text-block.css +41 -41
  155. package/dist/themes/hkdev/components/boxes/game-box.css +12 -12
  156. package/dist/themes/hkdev/components/buttons/button-icon-steeze.css +22 -22
  157. package/dist/themes/hkdev/components/buttons/button-text.css +32 -32
  158. package/dist/themes/hkdev/components/buttons/button.css +146 -146
  159. package/dist/themes/hkdev/components/buttons/skip-button.css +6 -6
  160. package/dist/themes/hkdev/components/drag-drop/draggable.css +73 -73
  161. package/dist/themes/hkdev/components/drag-drop/drop-zone.css +48 -48
  162. package/dist/themes/hkdev/components/icons/icon-steeze.css +22 -22
  163. package/dist/themes/hkdev/components/inputs/text-input.css +104 -104
  164. package/dist/themes/hkdev/components/panels/panel.css +27 -27
  165. package/dist/themes/hkdev/components/rows/panel-grid-row.css +6 -6
  166. package/dist/themes/hkdev/components/rows/panel-row-2.css +7 -7
  167. package/dist/themes/hkdev/components.css +53 -53
  168. package/dist/themes/hkdev/debug.css +1 -1
  169. package/dist/themes/hkdev/global/layout.css +39 -39
  170. package/dist/themes/hkdev/global/on-colors.css +53 -53
  171. package/dist/themes/hkdev/globals.css +11 -11
  172. package/dist/themes/hkdev/responsive.css +12 -12
  173. package/dist/themes/hkdev/theme-ext.js +15 -15
  174. package/dist/themes/hkdev/theme.js +235 -235
  175. package/dist/themes/index.js +1 -1
  176. package/dist/typedef/context.js +6 -6
  177. package/dist/typedef/drag.js +25 -25
  178. package/dist/typedef/drop.js +12 -12
  179. package/dist/typedef/image.js +38 -38
  180. package/dist/typedef/index.js +4 -4
  181. package/dist/util/array/index.js +436 -436
  182. package/dist/util/bases/base58.js +262 -262
  183. package/dist/util/bases/index.js +1 -1
  184. package/dist/util/compare/index.js +247 -247
  185. package/dist/util/css/css-vars.js +83 -83
  186. package/dist/util/css/index.js +1 -1
  187. package/dist/util/design-system/components/states.js +22 -22
  188. package/dist/util/design-system/css/clamp.js +66 -66
  189. package/dist/util/design-system/css/root-design-vars.js +102 -102
  190. package/dist/util/design-system/index.js +5 -5
  191. package/dist/util/design-system/layout/scaling.js +228 -228
  192. package/dist/util/design-system/skeleton.js +208 -208
  193. package/dist/util/design-system/tailwind.js +288 -288
  194. package/dist/util/env/index.js +9 -9
  195. package/dist/util/expect/arrays.js +47 -47
  196. package/dist/util/expect/index.js +259 -259
  197. package/dist/util/expect/primitives.js +55 -55
  198. package/dist/util/expect/url.js +60 -60
  199. package/dist/util/function/index.js +218 -218
  200. package/dist/util/geo/index.js +26 -26
  201. package/dist/util/http/caching.js +263 -263
  202. package/dist/util/http/errors.js +97 -97
  203. package/dist/util/http/headers.js +75 -75
  204. package/dist/util/http/http-request.js +379 -379
  205. package/dist/util/http/index.js +22 -22
  206. package/dist/util/http/json-request.js +224 -224
  207. package/dist/util/http/mocks.js +65 -65
  208. package/dist/util/http/response.js +294 -294
  209. package/dist/util/http/typedef.js +93 -93
  210. package/dist/util/http/url.js +52 -52
  211. package/dist/util/image/index.js +86 -86
  212. package/dist/util/index.js +2 -2
  213. package/dist/util/is/index.js +140 -140
  214. package/dist/util/iterate/index.js +234 -234
  215. package/dist/util/object/index.js +1361 -1361
  216. package/dist/util/singleton/index.js +97 -97
  217. package/dist/util/string/array-path.js +75 -75
  218. package/dist/util/string/convert.js +54 -54
  219. package/dist/util/string/fs.js +226 -226
  220. package/dist/util/string/index.js +5 -5
  221. package/dist/util/string/interpolate.js +61 -61
  222. package/dist/util/string/pad.js +10 -10
  223. package/dist/util/svelte/index.js +4 -4
  224. package/dist/util/svelte/loading/loading-tracker.svelte.js +108 -108
  225. package/dist/util/svelte/observe/index.js +49 -49
  226. package/dist/util/svelte/state-context/index.js +117 -117
  227. package/dist/util/svelte/wait/index.js +38 -38
  228. package/dist/util/sveltekit/index.js +1 -1
  229. package/dist/util/sveltekit/route-folders/index.js +101 -101
  230. package/dist/util/time/index.js +323 -323
  231. package/dist/util/unique/index.js +249 -249
  232. package/dist/valibot/date.js__ +10 -10
  233. package/dist/valibot/index.js +9 -9
  234. package/dist/valibot/url.js +95 -95
  235. package/dist/valibot/user.js +23 -23
  236. package/dist/zod/all.js +33 -33
  237. package/dist/zod/generic.js +11 -11
  238. package/dist/zod/javascript.js +32 -32
  239. package/dist/zod/user.js +16 -16
  240. package/dist/zod/web.js +52 -52
  241. package/package.json +112 -112
  242. package/dist/components/layout/grid-layers/GridLayers.svelte__heightFrom__ +0 -372
  243. package/dist/util/http/test-data__/content-length-test-hkdigital-small.V4HfZyBQ.avif +0 -0
@@ -1,146 +1,146 @@
1
- <script>
2
- import { onMount } from 'svelte';
3
- import { DESIGN, CLAMPING } from '../../../design/design-config.js';
4
- import {
5
- enableScalingUI,
6
- getAllRootScalingVars
7
- } from '../../../util/design-system/index.js';
8
-
9
- /**
10
- * Holds the current scaling values for the debug panel
11
- * @type {Object}
12
- */
13
- let scalingValues = $state({
14
- scaleW: 0,
15
- scaleH: 0,
16
- scaleViewport: 0,
17
- scaleUI: 0,
18
- scaleTextBase: 0,
19
- scaleTextHeading: 0,
20
- scaleTextUI: 0
21
- });
22
-
23
- /**
24
- * Controls visibility of the debug panel
25
- */
26
- let showDebugPanel = $state(false);
27
-
28
- /**
29
- * Updates scaling values for the debug panel
30
- */
31
- function updateDebugValues() {
32
- // Get scaling values
33
- scalingValues = getAllRootScalingVars();
34
-
35
- // Update window size display if in browser context
36
- if (typeof window !== 'undefined') {
37
- const windowSizeElement = document.getElementById('window-size');
38
- if (windowSizeElement) {
39
- windowSizeElement.textContent = `${window.innerWidth}×${window.innerHeight}px`;
40
- }
41
- }
42
- }
43
-
44
- onMount(() => {
45
- // Initialize the design scaling system
46
- //const cleanup = () => {};
47
- const cleanup = enableScalingUI(DESIGN, CLAMPING);
48
-
49
- // Update debug values initially
50
- updateDebugValues();
51
-
52
- // Set up event listener for updating debug values on resize
53
- window.addEventListener('resize', updateDebugValues);
54
-
55
- // Return combined cleanup function
56
- return () => {
57
- cleanup();
58
- window.removeEventListener('resize', updateDebugValues);
59
- };
60
- });
61
-
62
- /**
63
- * Toggle debug panel visibility
64
- */
65
- function toggleDebugPanel() {
66
- showDebugPanel = !showDebugPanel;
67
- }
68
-
69
- /**
70
- * Format a number to 2 decimal places
71
- * @param {number} value - The number to format
72
- * @returns {string} Formatted number
73
- */
74
- function formatNumber(value) {
75
- return value.toFixed(2);
76
- }
77
- </script>
78
-
79
- <!-- Debug Panel -->
80
- {#if showDebugPanel}
81
- <div
82
- class="fixed bottom-0 right-0 bg-black bg-opacity-75 text-white p-2 text-ui-md z-50 font-mono"
83
- >
84
- <div class="flex justify-between items-center mb-1">
85
- <h3 class="font-bold">Design System Scaling</h3>
86
- <button
87
- onclick={toggleDebugPanel}
88
- class="ml-2 px-1.5 bg-gray-700 hover:bg-gray-600 rounded"
89
- >
90
- &times;
91
- </button>
92
- </div>
93
- <div class="grid grid-cols-2 gap-x-2 gap-y-0.5">
94
- <div class="text-gray-400">Design Width:</div>
95
- <div>{DESIGN.width}px</div>
96
-
97
- <div class="text-gray-400">Design Height:</div>
98
- <div>{DESIGN.height}px</div>
99
-
100
- <div class="text-gray-400">Window:</div>
101
- <div id="window-size">...</div>
102
-
103
- <div class="text-gray-400">Scale W:</div>
104
- <div>{formatNumber(scalingValues.scaleW)}</div>
105
-
106
- <div class="text-gray-400">Scale H:</div>
107
- <div>{formatNumber(scalingValues.scaleH)}</div>
108
-
109
- <div class="text-gray-400">Viewport:</div>
110
- <div>{formatNumber(scalingValues.scaleViewport)}</div>
111
-
112
- <div class="text-gray-400">UI:</div>
113
- <div>{formatNumber(scalingValues.scaleUI)}</div>
114
-
115
- <div class="text-gray-400">Text Content:</div>
116
- <div>{formatNumber(scalingValues.scaleTextBase)}</div>
117
-
118
- <div class="text-gray-400">Text Heading:</div>
119
- <div>{formatNumber(scalingValues.scaleTextHeading)}</div>
120
-
121
- <div class="text-gray-400">Text UI:</div>
122
- <div>{formatNumber(scalingValues.scaleTextUI)}</div>
123
- </div>
124
-
125
- <div class="mt-1 pt-1 border-t border-gray-600 text-gray-400">
126
- <div>Clamping:</div>
127
- <div class="grid grid-cols-3 text-2xs">
128
- <div>UI: {CLAMPING.ui.min} - {CLAMPING.ui.max}</div>
129
- <div>
130
- Content: {CLAMPING.textBase.min} - {CLAMPING.textBase.max}
131
- </div>
132
- <div>
133
- Heading: {CLAMPING.textHeading.min} - {CLAMPING.textHeading.max}
134
- </div>
135
- </div>
136
- </div>
137
- </div>
138
- {:else}
139
- <!-- Debug Panel Toggle Button -->
140
- <button
141
- onclick={toggleDebugPanel}
142
- class="fixed bottom-0 right-0 bg-black bg-opacity-75 text-white p-16ut py-8ut text-ui-md z-50 font-mono hover:bg-opacity-90"
143
- >
144
- Show Debug
145
- </button>
146
- {/if}
1
+ <script>
2
+ import { onMount } from 'svelte';
3
+ import { DESIGN, CLAMPING } from '../../../design/design-config.js';
4
+ import {
5
+ enableScalingUI,
6
+ getAllRootScalingVars
7
+ } from '../../../util/design-system/index.js';
8
+
9
+ /**
10
+ * Holds the current scaling values for the debug panel
11
+ * @type {Object}
12
+ */
13
+ let scalingValues = $state({
14
+ scaleW: 0,
15
+ scaleH: 0,
16
+ scaleViewport: 0,
17
+ scaleUI: 0,
18
+ scaleTextBase: 0,
19
+ scaleTextHeading: 0,
20
+ scaleTextUI: 0
21
+ });
22
+
23
+ /**
24
+ * Controls visibility of the debug panel
25
+ */
26
+ let showDebugPanel = $state(false);
27
+
28
+ /**
29
+ * Updates scaling values for the debug panel
30
+ */
31
+ function updateDebugValues() {
32
+ // Get scaling values
33
+ scalingValues = getAllRootScalingVars();
34
+
35
+ // Update window size display if in browser context
36
+ if (typeof window !== 'undefined') {
37
+ const windowSizeElement = document.getElementById('window-size');
38
+ if (windowSizeElement) {
39
+ windowSizeElement.textContent = `${window.innerWidth}×${window.innerHeight}px`;
40
+ }
41
+ }
42
+ }
43
+
44
+ onMount(() => {
45
+ // Initialize the design scaling system
46
+ //const cleanup = () => {};
47
+ const cleanup = enableScalingUI(DESIGN, CLAMPING);
48
+
49
+ // Update debug values initially
50
+ updateDebugValues();
51
+
52
+ // Set up event listener for updating debug values on resize
53
+ window.addEventListener('resize', updateDebugValues);
54
+
55
+ // Return combined cleanup function
56
+ return () => {
57
+ cleanup();
58
+ window.removeEventListener('resize', updateDebugValues);
59
+ };
60
+ });
61
+
62
+ /**
63
+ * Toggle debug panel visibility
64
+ */
65
+ function toggleDebugPanel() {
66
+ showDebugPanel = !showDebugPanel;
67
+ }
68
+
69
+ /**
70
+ * Format a number to 2 decimal places
71
+ * @param {number} value - The number to format
72
+ * @returns {string} Formatted number
73
+ */
74
+ function formatNumber(value) {
75
+ return value.toFixed(2);
76
+ }
77
+ </script>
78
+
79
+ <!-- Debug Panel -->
80
+ {#if showDebugPanel}
81
+ <div
82
+ class="fixed bottom-0 right-0 bg-black bg-opacity-75 text-white p-2 text-ui-md z-50 font-mono"
83
+ >
84
+ <div class="flex justify-between items-center mb-1">
85
+ <h3 class="font-bold">Design System Scaling</h3>
86
+ <button
87
+ onclick={toggleDebugPanel}
88
+ class="ml-2 px-1.5 bg-gray-700 hover:bg-gray-600 rounded"
89
+ >
90
+ &times;
91
+ </button>
92
+ </div>
93
+ <div class="grid grid-cols-2 gap-x-2 gap-y-0.5">
94
+ <div class="text-gray-400">Design Width:</div>
95
+ <div>{DESIGN.width}px</div>
96
+
97
+ <div class="text-gray-400">Design Height:</div>
98
+ <div>{DESIGN.height}px</div>
99
+
100
+ <div class="text-gray-400">Window:</div>
101
+ <div id="window-size">...</div>
102
+
103
+ <div class="text-gray-400">Scale W:</div>
104
+ <div>{formatNumber(scalingValues.scaleW)}</div>
105
+
106
+ <div class="text-gray-400">Scale H:</div>
107
+ <div>{formatNumber(scalingValues.scaleH)}</div>
108
+
109
+ <div class="text-gray-400">Viewport:</div>
110
+ <div>{formatNumber(scalingValues.scaleViewport)}</div>
111
+
112
+ <div class="text-gray-400">UI:</div>
113
+ <div>{formatNumber(scalingValues.scaleUI)}</div>
114
+
115
+ <div class="text-gray-400">Text Content:</div>
116
+ <div>{formatNumber(scalingValues.scaleTextBase)}</div>
117
+
118
+ <div class="text-gray-400">Text Heading:</div>
119
+ <div>{formatNumber(scalingValues.scaleTextHeading)}</div>
120
+
121
+ <div class="text-gray-400">Text UI:</div>
122
+ <div>{formatNumber(scalingValues.scaleTextUI)}</div>
123
+ </div>
124
+
125
+ <div class="mt-1 pt-1 border-t border-gray-600 text-gray-400">
126
+ <div>Clamping:</div>
127
+ <div class="grid grid-cols-3 text-2xs">
128
+ <div>UI: {CLAMPING.ui.min} - {CLAMPING.ui.max}</div>
129
+ <div>
130
+ Content: {CLAMPING.textBase.min} - {CLAMPING.textBase.max}
131
+ </div>
132
+ <div>
133
+ Heading: {CLAMPING.textHeading.min} - {CLAMPING.textHeading.max}
134
+ </div>
135
+ </div>
136
+ </div>
137
+ </div>
138
+ {:else}
139
+ <!-- Debug Panel Toggle Button -->
140
+ <button
141
+ onclick={toggleDebugPanel}
142
+ class="fixed bottom-0 right-0 bg-black bg-opacity-75 text-white p-16ut py-8ut text-ui-md z-50 font-mono hover:bg-opacity-90"
143
+ >
144
+ Show Debug
145
+ </button>
146
+ {/if}
@@ -1 +1 @@
1
- export { default as DebugPanelDesignScaling } from './debug-panel-design-scaling/DebugPanelDesignScaling.svelte';
1
+ export { default as DebugPanelDesignScaling } from './debug-panel-design-scaling/DebugPanelDesignScaling.svelte';
@@ -12,26 +12,6 @@ export class DragController {
12
12
  targetElement: HTMLElement;
13
13
  offsetX: number;
14
14
  offsetY: number;
15
- _previewSet: boolean;
16
- /**
17
- * Create a preview image from the current draggable element or a specific child element
18
- * @param {string} [selector] - Optional CSS selector to target a specific child element
19
- * @returns {HTMLElement} - The created preview element
20
- */
21
- grabPreviewImage(selector?: string): HTMLElement;
22
- /**
23
- * Set a custom element as the drag preview image
24
- * @param {HTMLElement} element - Element to use as drag preview
25
- * @param {number} [offsetX] - Horizontal offset (uses natural offset if omitted)
26
- * @param {number} [offsetY] - Vertical offset (uses natural offset if omitted)
27
- * @returns {boolean} - Whether setting the preview was successful
28
- */
29
- setPreviewImage(element: HTMLElement, offsetX?: number, offsetY?: number): boolean;
30
- /**
31
- * Check if a custom preview has been set
32
- * @returns {boolean}
33
- */
34
- hasCustomPreview(): boolean;
35
15
  /**
36
16
  * Apply the default preview (uses the draggable element itself)
37
17
  * @returns {boolean}
@@ -1,113 +1,44 @@
1
- /**
2
- * Controller for customizing drag
3
- * E.g. set a custom preview image
4
- */
5
- export class DragController {
6
- /**
7
- * @param {DragEvent} event - The drag event
8
- */
9
- constructor(event) {
10
- this.event = event;
11
- this.dataTransfer = event.dataTransfer;
12
- this.targetElement = /** @type {HTMLElement} */ (event.currentTarget);
13
-
14
- // Calculate natural offsets by default (to prevent "jumping")
15
- const rect = this.targetElement.getBoundingClientRect();
16
- this.offsetX = event.clientX - rect.left;
17
- this.offsetY = event.clientY - rect.top;
18
-
19
- this._previewSet = false;
20
- }
21
-
22
- /**
23
- * Create a preview image from the current draggable element or a specific child element
24
- * @param {string} [selector] - Optional CSS selector to target a specific child element
25
- * @returns {HTMLElement} - The created preview element
26
- */
27
- grabPreviewImage(selector = null) {
28
- // Find the source element (either the whole draggable or a specific child)
29
- const sourceElement = selector
30
- ? this.targetElement.querySelector(selector)
31
- : this.targetElement;
32
-
33
- if (!sourceElement) {
34
- console.error(`Element with selector "${selector}" not found`);
35
- return this.grabPreviewImage(); // Fallback to the main element
36
- }
37
-
38
- // Clone the element to create the preview
39
- const previewElement = /** @type {HTMLElement} */ (
40
- sourceElement.cloneNode(true)
41
- );
42
-
43
- // Position off-screen (needed for setDragImage to work properly)
44
- previewElement.style.position = 'absolute';
45
- previewElement.style.top = '-9999px';
46
- previewElement.style.left = '-9999px';
47
-
48
- // Add to the document temporarily
49
- document.body.appendChild(previewElement);
50
-
51
- return previewElement;
52
- }
53
-
54
- /**
55
- * Set a custom element as the drag preview image
56
- * @param {HTMLElement} element - Element to use as drag preview
57
- * @param {number} [offsetX] - Horizontal offset (uses natural offset if omitted)
58
- * @param {number} [offsetY] - Vertical offset (uses natural offset if omitted)
59
- * @returns {boolean} - Whether setting the preview was successful
60
- */
61
- setPreviewImage(element, offsetX, offsetY) {
62
- if (!this.dataTransfer || !this.dataTransfer.setDragImage) {
63
- return false;
64
- }
65
-
66
- // Use provided offsets or fall back to natural offsets
67
- const finalOffsetX = offsetX !== undefined ? offsetX : this.offsetX;
68
- const finalOffsetY = offsetY !== undefined ? offsetY : this.offsetY;
69
-
70
- try {
71
- this.dataTransfer.setDragImage(element, finalOffsetX, finalOffsetY);
72
- this._previewSet = true;
73
- return true;
74
- } catch (err) {
75
- console.error('Failed to set drag preview image:', err);
76
- return false;
77
- }
78
- }
79
-
80
- /**
81
- * Check if a custom preview has been set
82
- * @returns {boolean}
83
- */
84
- hasCustomPreview() {
85
- return this._previewSet;
86
- }
87
-
88
- /**
89
- * Apply the default preview (uses the draggable element itself)
90
- * @returns {boolean}
91
- */
92
- applyDefaultPreview() {
93
- if (
94
- !this.dataTransfer ||
95
- !this.dataTransfer.setDragImage ||
96
- this._previewSet
97
- ) {
98
- return false;
99
- }
100
-
101
- try {
102
- this.dataTransfer.setDragImage(
103
- this.targetElement,
104
- this.offsetX,
105
- this.offsetY
106
- );
107
- return true;
108
- } catch (err) {
109
- console.error('Failed to set default drag preview:', err);
110
- return false;
111
- }
112
- }
113
- }
1
+ /**
2
+ * Controller for customizing drag
3
+ * E.g. set a custom preview image
4
+ */
5
+ export class DragController {
6
+ /**
7
+ * @param {DragEvent} event - The drag event
8
+ */
9
+ constructor(event) {
10
+ this.event = event;
11
+ this.dataTransfer = event.dataTransfer;
12
+ this.targetElement = /** @type {HTMLElement} */ (event.currentTarget);
13
+
14
+ // Calculate natural offsets by default (to prevent "jumping")
15
+ const rect = this.targetElement.getBoundingClientRect();
16
+ this.offsetX = event.clientX - rect.left;
17
+ this.offsetY = event.clientY - rect.top;
18
+ }
19
+
20
+ /**
21
+ * Apply the default preview (uses the draggable element itself)
22
+ * @returns {boolean}
23
+ */
24
+ applyDefaultPreview() {
25
+ if (
26
+ !this.dataTransfer ||
27
+ !this.dataTransfer.setDragImage
28
+ ) {
29
+ return false;
30
+ }
31
+
32
+ try {
33
+ this.dataTransfer.setDragImage(
34
+ this.targetElement,
35
+ this.offsetX,
36
+ this.offsetY
37
+ );
38
+ return true;
39
+ } catch (err) {
40
+ console.error('Failed to set default drag preview:', err);
41
+ return false;
42
+ }
43
+ }
44
+ }