@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.
- package/README.md +135 -135
- package/dist/assets/autospuiten/car-paint-picker.js +41 -41
- package/dist/assets/autospuiten/labels.js +7 -7
- package/dist/classes/cache/IndexedDbCache.js +1407 -1407
- package/dist/classes/cache/MemoryResponseCache.js +138 -138
- package/dist/classes/cache/index.js +5 -5
- package/dist/classes/cache/typedef.js +41 -41
- package/dist/classes/data/IterableTree.js +243 -243
- package/dist/classes/data/Selector.js +190 -190
- package/dist/classes/data/index.js +2 -2
- package/dist/classes/events/EventEmitter.js +275 -275
- package/dist/classes/events/index.js +2 -2
- package/dist/classes/index.js +4 -4
- package/dist/classes/logging/Logger.js +158 -158
- package/dist/classes/logging/constants.js +18 -18
- package/dist/classes/logging/index.js +4 -4
- package/dist/classes/promise/HkPromise.js +377 -377
- package/dist/classes/promise/index.js +1 -1
- package/dist/classes/services/ServiceBase.js +409 -409
- package/dist/classes/services/ServiceManager.js +1114 -1114
- package/dist/classes/services/constants.js +12 -12
- package/dist/classes/services/index.js +5 -5
- package/dist/classes/stores/SubscribersCount.js +107 -107
- package/dist/classes/stores/index.js +1 -1
- package/dist/classes/streams/LogTransformStream.js +19 -19
- package/dist/classes/streams/ServerEventsStore.js +110 -110
- package/dist/classes/streams/TimeStampSource.js +26 -26
- package/dist/classes/streams/index.js +3 -3
- package/dist/classes/svelte/audio/AudioLoader.svelte.js +58 -58
- package/dist/classes/svelte/audio/AudioScene.svelte.js +324 -324
- package/dist/classes/svelte/audio/mocks.js +35 -35
- package/dist/classes/svelte/finite-state-machine/FiniteStateMachine.svelte.js +133 -133
- package/dist/classes/svelte/finite-state-machine/index.js +1 -1
- package/dist/classes/svelte/image/ImageLoader.svelte.js +45 -45
- package/dist/classes/svelte/image/ImageScene.svelte.js +249 -249
- package/dist/classes/svelte/image/ImageVariantsLoader.svelte.js +152 -152
- package/dist/classes/svelte/image/index.js +4 -4
- package/dist/classes/svelte/image/mocks.js +35 -35
- package/dist/classes/svelte/image/typedef.js +8 -8
- package/dist/classes/svelte/index.js +14 -14
- package/dist/classes/svelte/loading-state-machine/LoadingStateMachine.svelte.js +109 -109
- package/dist/classes/svelte/loading-state-machine/constants.js +16 -16
- package/dist/classes/svelte/loading-state-machine/index.js +3 -3
- package/dist/classes/svelte/network-loader/NetworkLoader.svelte.js +338 -338
- package/dist/classes/svelte/network-loader/constants.js +3 -3
- package/dist/classes/svelte/network-loader/index.js +3 -3
- package/dist/classes/svelte/network-loader/mocks.js +30 -30
- package/dist/classes/svelte/network-loader/typedef.js +8 -8
- package/dist/components/area/HkArea.svelte +49 -49
- package/dist/components/area/HkGridArea.svelte +77 -77
- package/dist/components/area/index.js +2 -2
- package/dist/components/buttons/button/Button.svelte +82 -82
- package/dist/components/buttons/button-icon-steeze/SteezeIconButton.svelte +30 -30
- package/dist/components/buttons/button-text/TextButton.svelte +21 -21
- package/dist/components/buttons/index.js +3 -3
- package/dist/components/debug/debug-panel-design-scaling/DebugPanelDesignScaling.svelte +146 -146
- package/dist/components/debug/index.js +1 -1
- package/dist/components/drag-drop/DragController.d.ts +0 -20
- package/dist/components/drag-drop/DragController.js +44 -113
- package/dist/components/drag-drop/DragDropContext.svelte +110 -103
- package/dist/components/drag-drop/Draggable.svelte +512 -492
- package/dist/components/drag-drop/Draggable.svelte.d.ts +8 -2
- package/dist/components/drag-drop/DropZoneArea.svelte +119 -119
- package/dist/components/drag-drop/DropZoneList.svelte +125 -125
- package/dist/components/drag-drop/{DropZone.svelte → Dropzone.svelte} +258 -258
- package/dist/components/drag-drop/drag-state.svelte.js +319 -323
- package/dist/components/drag-drop/index.js +7 -7
- package/dist/components/drag-drop/util.js +85 -85
- package/dist/components/hkdev/blocks/TextBlock.svelte +46 -46
- package/dist/components/hkdev/buttons/CheckButton.svelte +62 -62
- package/dist/components/icons/HkIcon.svelte +86 -86
- package/dist/components/icons/HkTabIcon.svelte +116 -116
- package/dist/components/icons/SteezeIcon.svelte +97 -97
- package/dist/components/icons/index.js +6 -6
- package/dist/components/icons/typedef.js +16 -16
- package/dist/components/index.js +2 -2
- package/dist/components/inputs/index.js +1 -1
- package/dist/components/inputs/text-input/TestTextInput.svelte__ +102 -102
- package/dist/components/inputs/text-input/TextInput.svelte +223 -223
- package/dist/components/inputs/text-input/TextInput.svelte___ +83 -83
- package/dist/components/inputs/text-input/assets/IconInvalid.svelte +14 -14
- package/dist/components/inputs/text-input/assets/IconValid.svelte +12 -12
- package/dist/components/layout/grid-layers/GridLayers.svelte +63 -63
- package/dist/components/layout/grid-layers/util.js +74 -74
- package/dist/components/layout/index.js +1 -1
- package/dist/components/panels/index.js +1 -1
- package/dist/components/panels/panel/Panel.svelte +43 -43
- package/dist/components/rows/index.js +3 -3
- package/dist/components/rows/panel-grid-row/PanelGridRow.svelte +104 -104
- package/dist/components/rows/panel-row-2/PanelRow2.svelte +40 -40
- package/dist/components/tab-bar/HkTabBar.state.svelte.js +149 -149
- package/dist/components/tab-bar/HkTabBar.svelte +74 -74
- package/dist/components/tab-bar/HkTabBarSelector.state.svelte.js +93 -93
- package/dist/components/tab-bar/HkTabBarSelector.svelte +49 -49
- package/dist/components/tab-bar/index.js +17 -17
- package/dist/components/tab-bar/typedef.js +11 -11
- package/dist/config/imagetools-config.js +189 -189
- package/dist/config/imagetools.d.ts +72 -72
- package/dist/constants/bases.js +13 -13
- package/dist/constants/errors/api.js +9 -9
- package/dist/constants/errors/generic.js +5 -5
- package/dist/constants/errors/index.js +3 -3
- package/dist/constants/errors/jwt.js +5 -5
- package/dist/constants/http/headers.js +6 -6
- package/dist/constants/http/index.js +2 -2
- package/dist/constants/http/methods.js +2 -2
- package/dist/constants/index.js +3 -3
- package/dist/constants/mime/application.js +5 -5
- package/dist/constants/mime/audio.js +13 -13
- package/dist/constants/mime/image.js +3 -3
- package/dist/constants/mime/index.js +4 -4
- package/dist/constants/mime/text.js +2 -2
- package/dist/constants/regexp/index.js +31 -31
- package/dist/constants/regexp/inspiratie.js__ +95 -95
- package/dist/constants/regexp/text.js +49 -49
- package/dist/constants/regexp/user.js +32 -32
- package/dist/constants/regexp/web.js +3 -3
- package/dist/constants/state-labels/drag-states.js +6 -6
- package/dist/constants/state-labels/drop-states.js +6 -6
- package/dist/constants/state-labels/input-states.js +11 -11
- package/dist/constants/state-labels/submit-states.js +4 -4
- package/dist/constants/time.js +28 -28
- package/dist/css/utilities.css +43 -43
- package/dist/design/design-config.js +73 -73
- package/dist/design/tailwind-theme-extend.js +158 -158
- package/dist/features/button-group/ButtonGroup.svelte +82 -82
- package/dist/features/button-group/typedef.js +10 -10
- package/dist/features/compare-left-right/CompareLeftRight.svelte +179 -179
- package/dist/features/compare-left-right/index.js +1 -1
- package/dist/features/game-box/GameBox.svelte +577 -577
- package/dist/features/game-box/gamebox.util.js +83 -83
- package/dist/features/hk-app-layout/HkAppLayout.state.svelte.js +25 -25
- package/dist/features/hk-app-layout/HkAppLayout.svelte +251 -251
- package/dist/features/image-box/ImageBox.svelte +210 -210
- package/dist/features/image-box/index.js +5 -5
- package/dist/features/image-box/typedef.js +32 -32
- package/dist/features/index.js +23 -23
- package/dist/features/presenter/ImageSlide.svelte +64 -64
- package/dist/features/presenter/Presenter.state.svelte.js +638 -638
- package/dist/features/presenter/Presenter.svelte +142 -142
- package/dist/features/presenter/constants.js +7 -7
- package/dist/features/presenter/index.js +10 -10
- package/dist/features/presenter/typedef.js +106 -106
- package/dist/features/presenter/util.js +210 -210
- package/dist/features/virtual-viewport/VirtualViewport.svelte +196 -196
- package/dist/schemas/index.js +1 -1
- package/dist/schemas/validate-url.js +180 -180
- package/dist/server/index.js +1 -1
- package/dist/server/logger.js +94 -94
- package/dist/states/index.js +1 -1
- package/dist/states/navigation.svelte.js +55 -55
- package/dist/stores/index.js +1 -1
- package/dist/stores/theme.js +80 -80
- package/dist/themes/hkdev/components/blocks/text-block.css +41 -41
- package/dist/themes/hkdev/components/boxes/game-box.css +12 -12
- package/dist/themes/hkdev/components/buttons/button-icon-steeze.css +22 -22
- package/dist/themes/hkdev/components/buttons/button-text.css +32 -32
- package/dist/themes/hkdev/components/buttons/button.css +146 -146
- package/dist/themes/hkdev/components/buttons/skip-button.css +6 -6
- package/dist/themes/hkdev/components/drag-drop/draggable.css +73 -73
- package/dist/themes/hkdev/components/drag-drop/drop-zone.css +48 -48
- package/dist/themes/hkdev/components/icons/icon-steeze.css +22 -22
- package/dist/themes/hkdev/components/inputs/text-input.css +104 -104
- package/dist/themes/hkdev/components/panels/panel.css +27 -27
- package/dist/themes/hkdev/components/rows/panel-grid-row.css +6 -6
- package/dist/themes/hkdev/components/rows/panel-row-2.css +7 -7
- package/dist/themes/hkdev/components.css +53 -53
- package/dist/themes/hkdev/debug.css +1 -1
- package/dist/themes/hkdev/global/layout.css +39 -39
- package/dist/themes/hkdev/global/on-colors.css +53 -53
- package/dist/themes/hkdev/globals.css +11 -11
- package/dist/themes/hkdev/responsive.css +12 -12
- package/dist/themes/hkdev/theme-ext.js +15 -15
- package/dist/themes/hkdev/theme.js +235 -235
- package/dist/themes/index.js +1 -1
- package/dist/typedef/context.js +6 -6
- package/dist/typedef/drag.js +25 -25
- package/dist/typedef/drop.js +12 -12
- package/dist/typedef/image.js +38 -38
- package/dist/typedef/index.js +4 -4
- package/dist/util/array/index.js +436 -436
- package/dist/util/bases/base58.js +262 -262
- package/dist/util/bases/index.js +1 -1
- package/dist/util/compare/index.js +247 -247
- package/dist/util/css/css-vars.js +83 -83
- package/dist/util/css/index.js +1 -1
- package/dist/util/design-system/components/states.js +22 -22
- package/dist/util/design-system/css/clamp.js +66 -66
- package/dist/util/design-system/css/root-design-vars.js +102 -102
- package/dist/util/design-system/index.js +5 -5
- package/dist/util/design-system/layout/scaling.js +228 -228
- package/dist/util/design-system/skeleton.js +208 -208
- package/dist/util/design-system/tailwind.js +288 -288
- package/dist/util/env/index.js +9 -9
- package/dist/util/expect/arrays.js +47 -47
- package/dist/util/expect/index.js +259 -259
- package/dist/util/expect/primitives.js +55 -55
- package/dist/util/expect/url.js +60 -60
- package/dist/util/function/index.js +218 -218
- package/dist/util/geo/index.js +26 -26
- package/dist/util/http/caching.js +263 -263
- package/dist/util/http/errors.js +97 -97
- package/dist/util/http/headers.js +75 -75
- package/dist/util/http/http-request.js +379 -379
- package/dist/util/http/index.js +22 -22
- package/dist/util/http/json-request.js +224 -224
- package/dist/util/http/mocks.js +65 -65
- package/dist/util/http/response.js +294 -294
- package/dist/util/http/typedef.js +93 -93
- package/dist/util/http/url.js +52 -52
- package/dist/util/image/index.js +86 -86
- package/dist/util/index.js +2 -2
- package/dist/util/is/index.js +140 -140
- package/dist/util/iterate/index.js +234 -234
- package/dist/util/object/index.js +1361 -1361
- package/dist/util/singleton/index.js +97 -97
- package/dist/util/string/array-path.js +75 -75
- package/dist/util/string/convert.js +54 -54
- package/dist/util/string/fs.js +226 -226
- package/dist/util/string/index.js +5 -5
- package/dist/util/string/interpolate.js +61 -61
- package/dist/util/string/pad.js +10 -10
- package/dist/util/svelte/index.js +4 -4
- package/dist/util/svelte/loading/loading-tracker.svelte.js +108 -108
- package/dist/util/svelte/observe/index.js +49 -49
- package/dist/util/svelte/state-context/index.js +117 -117
- package/dist/util/svelte/wait/index.js +38 -38
- package/dist/util/sveltekit/index.js +1 -1
- package/dist/util/sveltekit/route-folders/index.js +101 -101
- package/dist/util/time/index.js +323 -323
- package/dist/util/unique/index.js +249 -249
- package/dist/valibot/date.js__ +10 -10
- package/dist/valibot/index.js +9 -9
- package/dist/valibot/url.js +95 -95
- package/dist/valibot/user.js +23 -23
- package/dist/zod/all.js +33 -33
- package/dist/zod/generic.js +11 -11
- package/dist/zod/javascript.js +32 -32
- package/dist/zod/user.js +16 -16
- package/dist/zod/web.js +52 -52
- package/package.json +112 -112
- package/dist/components/layout/grid-layers/GridLayers.svelte__heightFrom__ +0 -372
- 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
|
-
×
|
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
|
+
×
|
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
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
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
|
+
}
|