@hkdigital/lib-core 0.3.9 → 0.3.11
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 +149 -149
- package/dist/assets/autospuiten/car-paint-picker.d.ts +7 -7
- package/dist/assets/autospuiten/car-paint-picker.js +41 -41
- package/dist/assets/autospuiten/labels.js +7 -7
- package/dist/classes/data/IterableTree.d.ts +15 -24
- package/dist/classes/data/IterableTree.js +242 -243
- package/dist/classes/data/Selector.js +190 -190
- package/dist/classes/data/index.js +2 -2
- package/dist/classes/data/typedef.d.ts +8 -0
- package/dist/classes/data/typedef.js +9 -0
- package/dist/classes/event-emitter/EventEmitter.js +273 -275
- package/dist/classes/event-emitter/index.js +2 -2
- package/dist/classes/index.js +4 -4
- package/dist/classes/promise/HkPromise.d.ts +18 -17
- package/dist/classes/promise/HkPromise.js +384 -377
- package/dist/classes/promise/index.js +1 -1
- 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.d.ts +2 -3
- package/dist/classes/streams/ServerEventsStore.js +111 -110
- package/dist/classes/streams/TimeStampSource.js +26 -26
- package/dist/classes/streams/index.js +3 -3
- 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/index.d.ts +0 -8
- package/dist/classes/svelte/index.js +11 -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/config/README.md +196 -0
- package/dist/config/{imagetools-config.js → generators/imagetools.js} +189 -189
- package/dist/config/generators/vite.d.ts +47 -0
- package/dist/config/generators/vite.js +142 -0
- package/dist/config/imagetools.d.ts +72 -72
- package/dist/config/vite.d.ts +1 -0
- package/dist/config/vite.js +5 -0
- package/dist/constants/bases/index.js +13 -13
- package/dist/constants/http/headers.js +6 -6
- package/dist/constants/http/index.js +2 -2
- package/dist/constants/http/methods.js +14 -14
- package/dist/constants/index.js +6 -6
- 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/README.md +95 -0
- package/dist/constants/regexp/index.d.ts +1 -1
- package/dist/constants/regexp/index.js +31 -31
- package/dist/constants/regexp/inspiratie.js__ +95 -95
- package/dist/constants/regexp/text.d.ts +3 -3
- package/dist/constants/regexp/text.js +49 -49
- package/dist/constants/regexp/url.d.ts +1 -0
- package/dist/constants/regexp/url.js +3 -0
- package/dist/constants/regexp/user.d.ts +0 -1
- package/dist/constants/regexp/user.js +29 -33
- package/dist/constants/states/drag.js +6 -6
- package/dist/constants/states/drop.js +6 -6
- package/dist/constants/states/index.js +4 -4
- package/dist/constants/states/input.js +11 -11
- package/dist/constants/states/submit.js +4 -4
- package/dist/constants/time/index.js +28 -28
- package/dist/css/utilities.css +43 -43
- package/dist/design/README.md +405 -0
- package/dist/design/{design-config.js → config/design-config.js} +73 -73
- package/dist/{util/design-system/tailwind.js → design/generators/index.js} +288 -288
- package/dist/design/index.d.ts +8 -0
- package/dist/design/index.js +97 -0
- package/dist/{util/design-system → design/plugins}/skeleton.js +208 -208
- package/dist/design/tailwind-theme-extend.js +158 -158
- package/dist/design/themes/README.md +103 -0
- package/dist/{themes → design/themes}/hkdev/components/blocks/text-block.css +34 -34
- package/dist/{themes → design/themes}/hkdev/components/boxes/game-box.css +11 -11
- package/dist/{themes → design/themes}/hkdev/components/buttons/button-icon-steeze.css +22 -22
- package/dist/{themes → design/themes}/hkdev/components/buttons/button-text.css +32 -32
- package/dist/{themes → design/themes}/hkdev/components/buttons/button.css +146 -146
- package/dist/{themes → design/themes}/hkdev/components/buttons/skip-button.css +5 -5
- package/dist/{themes → design/themes}/hkdev/components/drag-drop/draggable.css +73 -73
- package/dist/{themes → design/themes}/hkdev/components/drag-drop/drop-zone.css +58 -58
- package/dist/{themes → design/themes}/hkdev/components/icons/icon-steeze.css +15 -15
- package/dist/{themes → design/themes}/hkdev/components/inputs/text-input.css +102 -102
- package/dist/{themes → design/themes}/hkdev/components/panels/panel.css +25 -25
- package/dist/{themes → design/themes}/hkdev/components/rows/panel-grid-row.css +4 -4
- package/dist/{themes → design/themes}/hkdev/components/rows/panel-row-2.css +5 -5
- package/dist/{themes → design/themes}/hkdev/components.css +29 -29
- package/dist/design/themes/hkdev/debug.css +2 -0
- package/dist/{themes → design/themes}/hkdev/global/layout.css +32 -32
- package/dist/{themes → design/themes}/hkdev/global/on-colors.css +32 -32
- package/dist/{themes → design/themes}/hkdev/globals.css +3 -3
- package/dist/{themes → design/themes}/hkdev/responsive.css +12 -12
- package/dist/{themes → design/themes}/hkdev/theme-ext.js +12 -12
- package/dist/{themes → design/themes}/hkdev/theme.css +218 -218
- package/dist/{util/design-system/css → design/utils}/clamp.js +66 -66
- package/dist/{util/design-system/css/root-design-vars.d.ts → design/utils/root-vars.d.ts} +2 -2
- package/dist/{util/design-system/css/root-design-vars.js → design/utils/root-vars.js} +102 -102
- package/dist/{util/design-system/layout → design/utils}/scaling.js +228 -228
- package/dist/{util/design-system/components → design/utils}/states.js +22 -22
- package/dist/errors/api.js +9 -9
- package/dist/errors/generic.js +20 -20
- package/dist/errors/http.js +16 -16
- package/dist/errors/index.d.ts +1 -0
- package/dist/errors/index.js +5 -4
- package/dist/errors/jwt.js +5 -5
- package/dist/errors/promise.d.ts +27 -0
- package/dist/errors/promise.js +26 -0
- package/dist/logging/index.js +7 -7
- package/dist/logging/internal/adapters/console.js +114 -114
- package/dist/logging/internal/adapters/index.js +2 -2
- package/dist/logging/internal/adapters/pino.d.ts +1 -0
- package/dist/logging/internal/adapters/pino.js +142 -115
- package/dist/logging/internal/adapters/typedef.d.ts +24 -0
- package/dist/logging/internal/adapters/typedef.js +10 -0
- package/dist/logging/internal/factories/client.js +21 -21
- package/dist/logging/internal/factories/server.js +22 -22
- package/dist/logging/internal/factories/universal.js +22 -22
- package/dist/logging/internal/unified-logger/Logger.js +217 -217
- package/dist/logging/internal/unified-logger/constants.js +22 -22
- package/dist/logging/internal/unified-logger/index.js +6 -6
- package/dist/logging/internal/unified-logger/typedef.js +17 -17
- package/dist/network/README.md +173 -0
- package/dist/{classes → network}/cache/IndexedDbCache.js +1407 -1407
- package/dist/{classes → network}/cache/MemoryResponseCache.js +138 -138
- package/dist/{classes → network}/cache/index.js +5 -5
- package/dist/{classes → network}/cache/typedef.js +41 -41
- package/dist/network/cache.d.ts +3 -0
- package/dist/network/cache.js +4 -0
- package/dist/{util → network}/http/caching.js +261 -263
- package/dist/{util → network}/http/errors.js +97 -97
- package/dist/{util → network}/http/headers.js +75 -75
- package/dist/{util → network}/http/http-request.js +578 -578
- package/dist/{util → network}/http/index.js +22 -22
- package/dist/{util → network}/http/json-request.js +224 -224
- package/dist/{util → network}/http/mocks.js +65 -65
- package/dist/{util → network}/http/response.js +318 -318
- package/dist/{util → network}/http/typedef.js +93 -93
- package/dist/{util → network}/http/url.js +52 -52
- package/dist/network/http.d.ts +6 -0
- package/dist/network/http.js +6 -0
- package/dist/network/loaders/README.md +255 -0
- package/dist/{classes/svelte → network/loaders}/audio/AudioLoader.svelte.d.ts +1 -1
- package/dist/{classes/svelte → network/loaders}/audio/AudioLoader.svelte.js +58 -58
- package/dist/{classes/svelte → network/loaders}/audio/AudioScene.svelte.js +324 -324
- package/dist/{classes/svelte → network/loaders}/audio/mocks.js +35 -35
- package/dist/network/loaders/audio.d.ts +2 -0
- package/dist/network/loaders/audio.js +2 -0
- package/dist/{classes/svelte → network/loaders}/image/ImageLoader.svelte.d.ts +3 -6
- package/dist/{classes/svelte → network/loaders}/image/ImageLoader.svelte.js +44 -45
- package/dist/{classes/svelte → network/loaders}/image/ImageScene.svelte.d.ts +5 -7
- package/dist/{classes/svelte → network/loaders}/image/ImageScene.svelte.js +248 -249
- package/dist/{classes/svelte → network/loaders}/image/ImageVariantsLoader.svelte.d.ts +4 -4
- package/dist/{classes/svelte → network/loaders}/image/ImageVariantsLoader.svelte.js +150 -152
- package/dist/{classes/svelte → network/loaders}/image/index.js +4 -4
- package/dist/{classes/svelte → network/loaders}/image/mocks.js +35 -35
- package/dist/{classes/svelte → network/loaders}/image/typedef.js +8 -8
- package/dist/{util/image → network/loaders/image/utils}/index.d.ts +2 -2
- package/dist/{util/image → network/loaders/image/utils}/index.js +86 -86
- package/dist/network/loaders/image.d.ts +5 -0
- package/dist/network/loaders/image.js +8 -0
- package/dist/{typedef/image.js → network/loaders/typedef.js} +38 -38
- package/dist/network/loaders.d.ts +2 -0
- package/dist/network/loaders.js +2 -0
- package/dist/{classes/svelte/network-loader → network/states}/NetworkLoader.svelte.d.ts +1 -1
- package/dist/{classes/svelte/network-loader → network/states}/NetworkLoader.svelte.js +338 -338
- package/dist/{classes/svelte/network-loader → network/states}/constants.js +3 -3
- package/dist/{classes/svelte/network-loader → network/states}/index.js +3 -3
- package/dist/{classes/svelte/network-loader → network/states}/mocks.js +30 -30
- package/dist/{classes/svelte/network-loader → network/states}/typedef.js +8 -8
- package/dist/network/typedef.d.ts +4 -0
- package/dist/network/typedef.js +10 -0
- package/dist/services/index.js +1 -1
- package/dist/services/internal/index.js +8 -8
- package/dist/services/internal/service-base/ServiceBase.js +462 -462
- package/dist/services/internal/service-base/constants.js +110 -110
- package/dist/services/internal/service-base/index.js +3 -3
- package/dist/services/internal/service-base/typedef.js +101 -101
- package/dist/services/internal/service-manager/ServiceManager.d.ts +2 -35
- package/dist/services/internal/service-manager/ServiceManager.js +608 -614
- package/dist/services/internal/service-manager/constants.js +6 -6
- package/dist/services/internal/service-manager/typedef.js +90 -90
- 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/typedef/context.js +6 -6
- package/dist/typedef/drag.js +25 -25
- package/dist/typedef/drop.js +12 -12
- package/dist/typedef/index.d.ts +0 -1
- package/dist/typedef/index.js +4 -4
- package/dist/{components → ui/components}/button-group/ButtonGroup.svelte +82 -82
- package/dist/{components → ui/components}/button-group/typedef.js +10 -10
- package/dist/{components → ui/components}/compare-left-right/CompareLeftRight.svelte +179 -179
- package/dist/{components → ui/components}/compare-left-right/index.js +1 -1
- package/dist/{components → ui/components}/game-box/GameBox.svelte +577 -577
- package/dist/{components → ui/components}/game-box/gamebox.util.js +83 -83
- package/dist/ui/components/hk-app-layout/HkAppLayout.state.svelte.d.ts +6 -0
- package/dist/{components → ui/components}/hk-app-layout/HkAppLayout.state.svelte.js +25 -25
- package/dist/{components → ui/components}/hk-app-layout/HkAppLayout.svelte +251 -251
- package/dist/{components → ui/components}/image-box/ImageBox.svelte +210 -210
- package/dist/{components → ui/components}/image-box/ImageBox.svelte.d.ts +6 -6
- package/dist/ui/components/image-box/index.js +5 -0
- package/dist/{components → ui/components}/image-box/typedef.js +32 -32
- package/dist/{components → ui/components}/index.js +23 -23
- package/dist/{components → ui/components}/presenter/ImageSlide.svelte +64 -64
- package/dist/{components → ui/components}/presenter/ImageSlide.svelte.d.ts +2 -2
- package/dist/{components → ui/components}/presenter/Presenter.state.svelte.d.ts +1 -1
- package/dist/{components → ui/components}/presenter/Presenter.state.svelte.js +638 -638
- package/dist/{components → ui/components}/presenter/Presenter.svelte +142 -142
- package/dist/{components → ui/components}/presenter/constants.js +7 -7
- package/dist/{components → ui/components}/presenter/index.js +10 -10
- package/dist/{components → ui/components}/presenter/typedef.js +106 -106
- package/dist/{components → ui/components}/presenter/util.js +210 -210
- package/dist/{components → ui/components}/virtual-viewport/VirtualViewport.svelte +196 -196
- package/dist/{primitives → ui/primitives}/area/HkArea.svelte +49 -49
- package/dist/{primitives → ui/primitives}/area/HkGridArea.svelte +77 -77
- package/dist/{primitives → ui/primitives}/area/index.js +2 -2
- package/dist/{primitives → ui/primitives}/buttons/button/Button.svelte +82 -82
- package/dist/{primitives → ui/primitives}/buttons/button/Button.svelte.d.ts +1 -1
- package/dist/{primitives → ui/primitives}/buttons/button-icon-steeze/SteezeIconButton.svelte +30 -30
- package/dist/{primitives → ui/primitives}/buttons/button-text/TextButton.svelte +21 -21
- package/dist/{primitives → ui/primitives}/buttons/index.js +3 -3
- package/dist/{primitives → ui/primitives}/debug/debug-panel-design-scaling/DebugPanelDesignScaling.svelte +146 -146
- package/dist/{primitives → ui/primitives}/debug/index.js +1 -1
- package/dist/{primitives → ui/primitives}/drag-drop/DragController.js +44 -44
- package/dist/{primitives → ui/primitives}/drag-drop/DragDropContext.svelte +111 -111
- package/dist/{primitives → ui/primitives}/drag-drop/DragDropContext.svelte.d.ts +1 -1
- package/dist/{primitives → ui/primitives}/drag-drop/Draggable.svelte +519 -519
- package/dist/{primitives → ui/primitives}/drag-drop/Draggable.svelte.d.ts +1 -1
- package/dist/{primitives → ui/primitives}/drag-drop/DropZone.svelte +258 -258
- package/dist/{primitives → ui/primitives}/drag-drop/DropZone.svelte.d.ts +3 -3
- package/dist/{primitives → ui/primitives}/drag-drop/DropZoneArea.svelte +119 -119
- package/dist/{primitives → ui/primitives}/drag-drop/DropZoneArea.svelte.d.ts +3 -3
- package/dist/{primitives → ui/primitives}/drag-drop/DropZoneList.svelte +125 -125
- package/dist/{primitives → ui/primitives}/drag-drop/DropZoneList.svelte.d.ts +3 -3
- package/dist/{primitives → ui/primitives}/drag-drop/actions.js +26 -26
- package/dist/{primitives → ui/primitives}/drag-drop/drag-state.svelte.d.ts +11 -11
- package/dist/{primitives → ui/primitives}/drag-drop/drag-state.svelte.js +322 -322
- package/dist/{primitives → ui/primitives}/drag-drop/index.js +7 -7
- package/dist/{primitives → ui/primitives}/drag-drop/util.js +85 -85
- package/dist/{primitives → ui/primitives}/hkdev/blocks/TextBlock.svelte +46 -46
- package/dist/{primitives → ui/primitives}/hkdev/buttons/CheckButton.svelte +62 -62
- package/dist/{primitives → ui/primitives}/icons/HkIcon.svelte +86 -86
- package/dist/{primitives → ui/primitives}/icons/HkTabIcon.svelte +116 -116
- package/dist/{primitives → ui/primitives}/icons/SteezeIcon.svelte +97 -97
- package/dist/{primitives → ui/primitives}/icons/index.js +6 -6
- package/dist/{primitives → ui/primitives}/icons/typedef.js +16 -16
- package/dist/{primitives → ui/primitives}/index.js +2 -2
- package/dist/{primitives → ui/primitives}/inputs/index.js +1 -1
- package/dist/{primitives → ui/primitives}/inputs/text-input/TextInput.svelte +223 -223
- package/dist/{primitives → ui/primitives}/inputs/text-input/assets/IconInvalid.svelte +14 -14
- package/dist/{primitives → ui/primitives}/inputs/text-input/assets/IconValid.svelte +12 -12
- package/dist/{primitives → ui/primitives}/layout/grid-layers/GridLayers.svelte +63 -63
- package/dist/{primitives → ui/primitives}/layout/grid-layers/util.js +74 -74
- package/dist/{primitives → ui/primitives}/layout/index.js +1 -1
- package/dist/{primitives → ui/primitives}/panels/index.js +1 -1
- package/dist/{primitives → ui/primitives}/panels/panel/Panel.svelte +43 -43
- package/dist/{primitives → ui/primitives}/rows/index.js +3 -3
- package/dist/{primitives → ui/primitives}/rows/panel-grid-row/PanelGridRow.svelte +104 -104
- package/dist/{primitives → ui/primitives}/rows/panel-row-2/PanelRow2.svelte +40 -40
- package/dist/{primitives → ui/primitives}/tab-bar/HkTabBar.state.svelte.d.ts +3 -3
- package/dist/{primitives → ui/primitives}/tab-bar/HkTabBar.state.svelte.js +149 -149
- package/dist/{primitives → ui/primitives}/tab-bar/HkTabBar.svelte +74 -74
- package/dist/{primitives → ui/primitives}/tab-bar/HkTabBarSelector.state.svelte.d.ts +3 -3
- package/dist/{primitives → ui/primitives}/tab-bar/HkTabBarSelector.state.svelte.js +93 -93
- package/dist/{primitives → ui/primitives}/tab-bar/HkTabBarSelector.svelte +49 -49
- package/dist/{primitives → ui/primitives}/tab-bar/index.js +17 -17
- package/dist/{primitives → ui/primitives}/tab-bar/typedef.js +11 -11
- 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/env/index.js +9 -9
- package/dist/util/exceptions/index.js +23 -23
- 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.d.ts +6 -6
- 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/index.d.ts +3 -1
- package/dist/util/index.js +7 -3
- package/dist/util/is/index.d.ts +15 -14
- package/dist/util/is/index.js +147 -140
- package/dist/util/iterate/index.d.ts +37 -69
- package/dist/util/iterate/index.js +204 -234
- package/dist/util/object/index.d.ts +38 -57
- package/dist/util/object/index.js +1345 -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 +328 -323
- package/dist/util/unique/index.js +231 -249
- package/dist/valibot/README.md +50 -0
- package/dist/valibot/index.d.ts +4 -4
- package/dist/valibot/index.js +8 -9
- package/dist/valibot/{url.d.ts → parsers/url.d.ts} +13 -5
- package/dist/valibot/{url.js → parsers/url.js} +111 -95
- package/dist/valibot/{user.js → parsers/user.js} +23 -23
- package/dist/valibot/parsers.d.ts +2 -0
- package/dist/valibot/parsers.js +4 -0
- package/package.json +131 -133
- package/dist/components/hk-app-layout/HkAppLayout.state.svelte.d.ts +0 -6
- package/dist/components/image-box/index.js +0 -5
- package/dist/constants/regexp/web.d.ts +0 -1
- package/dist/constants/regexp/web.js +0 -3
- package/dist/primitives/inputs/text-input/TestTextInput.svelte__ +0 -102
- package/dist/primitives/inputs/text-input/TextInput.svelte___ +0 -83
- package/dist/primitives/layout/grid-layers/GridLayers.svelte__heightFrom__ +0 -372
- package/dist/schemas/index.d.ts +0 -1
- package/dist/schemas/index.js +0 -1
- package/dist/schemas/validate-url.d.ts +0 -30
- package/dist/schemas/validate-url.js +0 -180
- package/dist/themes/hkdev/debug.css +0 -2
- package/dist/themes/index.d.ts +0 -1
- package/dist/themes/index.js +0 -1
- package/dist/util/design-system/index.d.ts +0 -5
- package/dist/util/design-system/index.js +0 -5
- package/dist/util/http/test-data__/content-length-test-hkdigital-small.V4HfZyBQ.avif +0 -0
- package/dist/valibot/date.js__ +0 -10
- package/dist/zod/all.d.ts +0 -6
- package/dist/zod/all.js +0 -33
- package/dist/zod/generic.d.ts +0 -6
- package/dist/zod/generic.js +0 -11
- package/dist/zod/javascript.d.ts +0 -8
- package/dist/zod/javascript.js +0 -32
- package/dist/zod/user.d.ts +0 -9
- package/dist/zod/user.js +0 -16
- package/dist/zod/web.d.ts +0 -21
- package/dist/zod/web.js +0 -52
- /package/dist/config/{imagetools-config.d.ts → generators/imagetools.d.ts} +0 -0
- /package/dist/design/{design-config.d.ts → config/design-config.d.ts} +0 -0
- /package/dist/{util/design-system/tailwind.d.ts → design/generators/index.d.ts} +0 -0
- /package/dist/{util/design-system → design/plugins}/skeleton.d.ts +0 -0
- /package/dist/{themes → design/themes}/hkdev/theme-ext.d.ts +0 -0
- /package/dist/{util/design-system/css → design/utils}/clamp.d.ts +0 -0
- /package/dist/{util/design-system/layout → design/utils}/scaling.d.ts +0 -0
- /package/dist/{util/design-system/components → design/utils}/states.d.ts +0 -0
- /package/dist/{classes → network}/cache/IndexedDbCache.d.ts +0 -0
- /package/dist/{classes → network}/cache/MemoryResponseCache.d.ts +0 -0
- /package/dist/{classes → network}/cache/index.d.ts +0 -0
- /package/dist/{classes → network}/cache/typedef.d.ts +0 -0
- /package/dist/{util → network}/http/caching.d.ts +0 -0
- /package/dist/{util → network}/http/errors.d.ts +0 -0
- /package/dist/{util → network}/http/headers.d.ts +0 -0
- /package/dist/{util → network}/http/http-request.d.ts +0 -0
- /package/dist/{util → network}/http/index.d.ts +0 -0
- /package/dist/{util → network}/http/json-request.d.ts +0 -0
- /package/dist/{util → network}/http/mocks.d.ts +0 -0
- /package/dist/{util → network}/http/response.d.ts +0 -0
- /package/dist/{util → network}/http/typedef.d.ts +0 -0
- /package/dist/{util → network}/http/url.d.ts +0 -0
- /package/dist/{classes/svelte → network/loaders}/audio/AudioScene.svelte.d.ts +0 -0
- /package/dist/{classes/svelte → network/loaders}/audio/mocks.d.ts +0 -0
- /package/dist/{classes/svelte → network/loaders}/image/index.d.ts +0 -0
- /package/dist/{classes/svelte → network/loaders}/image/mocks.d.ts +0 -0
- /package/dist/{classes/svelte → network/loaders}/image/typedef.d.ts +0 -0
- /package/dist/{typedef/image.d.ts → network/loaders/typedef.d.ts} +0 -0
- /package/dist/{classes/svelte/network-loader → network/states}/constants.d.ts +0 -0
- /package/dist/{classes/svelte/network-loader → network/states}/index.d.ts +0 -0
- /package/dist/{classes/svelte/network-loader → network/states}/mocks.d.ts +0 -0
- /package/dist/{classes/svelte/network-loader → network/states}/typedef.d.ts +0 -0
- /package/dist/{components → ui/components}/button-group/ButtonGroup.svelte.d.ts +0 -0
- /package/dist/{components → ui/components}/button-group/typedef.d.ts +0 -0
- /package/dist/{components → ui/components}/compare-left-right/CompareLeftRight.svelte.d.ts +0 -0
- /package/dist/{components → ui/components}/compare-left-right/index.d.ts +0 -0
- /package/dist/{components → ui/components}/game-box/GameBox.svelte.d.ts +0 -0
- /package/dist/{components → ui/components}/game-box/gamebox.util.d.ts +0 -0
- /package/dist/{components → ui/components}/hk-app-layout/HkAppLayout.svelte.d.ts +0 -0
- /package/dist/{components → ui/components}/image-box/index.d.ts +0 -0
- /package/dist/{components → ui/components}/image-box/typedef.d.ts +0 -0
- /package/dist/{components → ui/components}/index.d.ts +0 -0
- /package/dist/{components → ui/components}/presenter/Presenter.svelte.d.ts +0 -0
- /package/dist/{components → ui/components}/presenter/constants.d.ts +0 -0
- /package/dist/{components → ui/components}/presenter/index.d.ts +0 -0
- /package/dist/{components → ui/components}/presenter/typedef.d.ts +0 -0
- /package/dist/{components → ui/components}/presenter/util.d.ts +0 -0
- /package/dist/{components → ui/components}/virtual-viewport/VirtualViewport.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/area/HkArea.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/area/HkGridArea.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/area/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/buttons/button-icon-steeze/SteezeIconButton.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/buttons/button-text/TextButton.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/buttons/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/debug/debug-panel-design-scaling/DebugPanelDesignScaling.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/debug/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/drag-drop/DragController.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/drag-drop/actions.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/drag-drop/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/drag-drop/util.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/hkdev/blocks/TextBlock.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/hkdev/buttons/CheckButton.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/icons/HkIcon.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/icons/HkTabIcon.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/icons/SteezeIcon.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/icons/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/icons/typedef.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/inputs/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/inputs/text-input/TextInput.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/inputs/text-input/assets/IconInvalid.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/inputs/text-input/assets/IconValid.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/layout/grid-layers/GridLayers.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/layout/grid-layers/util.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/layout/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/panels/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/panels/panel/Panel.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/rows/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/rows/panel-grid-row/PanelGridRow.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/rows/panel-row-2/PanelRow2.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/tab-bar/HkTabBar.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/tab-bar/HkTabBarSelector.svelte.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/tab-bar/index.d.ts +0 -0
- /package/dist/{primitives → ui/primitives}/tab-bar/typedef.d.ts +0 -0
- /package/dist/valibot/{user.d.ts → parsers/user.d.ts} +0 -0
|
@@ -1,93 +1,93 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @typedef {Object} HttpRequestOptions
|
|
3
|
-
* @property {string|URL} url URL string or URL object for the request
|
|
4
|
-
* @property {string} [method] HTTP method to use (GET, POST, etc.)
|
|
5
|
-
*
|
|
6
|
-
* @property {Object|URLSearchParams} [urlSearchParams]
|
|
7
|
-
* Parameters to add to the URL
|
|
8
|
-
*
|
|
9
|
-
* @property {*} [body] Request body (for POST, PUT, etc.)
|
|
10
|
-
* @property {Object} [headers] HTTP headers as name-value pairs
|
|
11
|
-
* @property {boolean} [withCredentials] Whether to include credentials
|
|
12
|
-
* @property {number} [timeoutMs] Request timeout in milliseconds
|
|
13
|
-
* @property {Function} [requestHandler] Handler for abort/timeout control
|
|
14
|
-
* @property {string} [mode] CORS mode ('cors', 'no-cors', 'same-origin')
|
|
15
|
-
* @property {string} [cache] Cache mode ('default', 'no-cache', etc.)
|
|
16
|
-
* @property {string} [redirect] Redirect mode ('follow', 'error', 'manual')
|
|
17
|
-
* @property {string} [referrerPolicy] Referrer policy
|
|
18
|
-
* @property {boolean} [cacheEnabled] Enable or disabled automatic caching
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* @typedef {Object} RequestHandlerParams
|
|
23
|
-
*
|
|
24
|
-
* @property {AbortController} controller
|
|
25
|
-
* The AbortController instance for this request
|
|
26
|
-
*
|
|
27
|
-
* @property {(reason?: Error) => void} abort Function to abort the request
|
|
28
|
-
* @property {(delayMs: number) => void} timeout Function to set a timeout
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* @callback RequestHandler
|
|
33
|
-
* @param {RequestHandlerParams} params Parameters for controlling the request
|
|
34
|
-
* @returns {void}
|
|
35
|
-
*/
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* @typedef {Object} JsonGetOptions
|
|
39
|
-
* @property {string|URL} url URL string or URL object for the request
|
|
40
|
-
*
|
|
41
|
-
* @property {Object|URLSearchParams} [urlSearchParams]
|
|
42
|
-
* Parameters to add to the URL
|
|
43
|
-
*
|
|
44
|
-
* @property {Object} [headers] HTTP headers as name-value pairs
|
|
45
|
-
* @property {boolean} [withCredentials] Whether to include credentials
|
|
46
|
-
* @property {number} [timeoutMs] Request timeout in milliseconds
|
|
47
|
-
* @property {RequestHandler} [requestHandler] Handler for abort/timeout control
|
|
48
|
-
* @property {string} [mode] CORS mode ('cors', 'no-cors', 'same-origin')
|
|
49
|
-
* @property {string} [cache] Cache mode ('default', 'no-cache', etc.)
|
|
50
|
-
* @property {string} [redirect] Redirect mode ('follow', 'error', 'manual')
|
|
51
|
-
* @property {string} [referrerPolicy] Referrer policy
|
|
52
|
-
* @property {boolean} [cacheEnabled] Enable or disabled automatic caching
|
|
53
|
-
*/
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* @typedef {Object} JsonPostOptions
|
|
57
|
-
* @property {string|URL} url URL string or URL object for the request
|
|
58
|
-
* @property {*} body Request body (will be sent as JSON)
|
|
59
|
-
*
|
|
60
|
-
* @property {Object|URLSearchParams} [urlSearchParams]
|
|
61
|
-
* Parameters to add to the URL
|
|
62
|
-
*
|
|
63
|
-
* @property {Object} [headers] HTTP headers as name-value pairs
|
|
64
|
-
* @property {boolean} [withCredentials] Whether to include credentials
|
|
65
|
-
* @property {number} [timeoutMs] Request timeout in milliseconds
|
|
66
|
-
* @property {RequestHandler} [requestHandler] Handler for abort/timeout control
|
|
67
|
-
* @property {string} [mode] CORS mode ('cors', 'no-cors', 'same-origin')
|
|
68
|
-
* @property {string} [cache] Cache mode ('default', 'no-cache', etc.)
|
|
69
|
-
* @property {string} [redirect] Redirect mode ('follow', 'error', 'manual')
|
|
70
|
-
* @property {string} [referrerPolicy] Referrer policy
|
|
71
|
-
* @property {boolean} [cacheEnabled] Enable or disabled automatic caching
|
|
72
|
-
*/
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* @typedef {Object} StaleInfo
|
|
76
|
-
* @property {boolean} isStale Whether the response contains stale data
|
|
77
|
-
*
|
|
78
|
-
* @property {Promise<Response>|null} fresh
|
|
79
|
-
* Promise that resolves to fresh data (if available)
|
|
80
|
-
*
|
|
81
|
-
* @property {number} timestamp When the response was originally cached
|
|
82
|
-
* @property {number|null} expires When the response expires
|
|
83
|
-
*/
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* @typedef {Response} ResponseWithStale
|
|
87
|
-
* @property {boolean} isStale Whether this response contains stale data
|
|
88
|
-
*
|
|
89
|
-
* @property {Promise<Response>|null} fresh
|
|
90
|
-
* Promise for fresh data if this is stale
|
|
91
|
-
*/
|
|
92
|
-
|
|
93
|
-
export {};
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {Object} HttpRequestOptions
|
|
3
|
+
* @property {string|URL} url URL string or URL object for the request
|
|
4
|
+
* @property {string} [method] HTTP method to use (GET, POST, etc.)
|
|
5
|
+
*
|
|
6
|
+
* @property {Object|URLSearchParams} [urlSearchParams]
|
|
7
|
+
* Parameters to add to the URL
|
|
8
|
+
*
|
|
9
|
+
* @property {*} [body] Request body (for POST, PUT, etc.)
|
|
10
|
+
* @property {Object} [headers] HTTP headers as name-value pairs
|
|
11
|
+
* @property {boolean} [withCredentials] Whether to include credentials
|
|
12
|
+
* @property {number} [timeoutMs] Request timeout in milliseconds
|
|
13
|
+
* @property {Function} [requestHandler] Handler for abort/timeout control
|
|
14
|
+
* @property {string} [mode] CORS mode ('cors', 'no-cors', 'same-origin')
|
|
15
|
+
* @property {string} [cache] Cache mode ('default', 'no-cache', etc.)
|
|
16
|
+
* @property {string} [redirect] Redirect mode ('follow', 'error', 'manual')
|
|
17
|
+
* @property {string} [referrerPolicy] Referrer policy
|
|
18
|
+
* @property {boolean} [cacheEnabled] Enable or disabled automatic caching
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @typedef {Object} RequestHandlerParams
|
|
23
|
+
*
|
|
24
|
+
* @property {AbortController} controller
|
|
25
|
+
* The AbortController instance for this request
|
|
26
|
+
*
|
|
27
|
+
* @property {(reason?: Error) => void} abort Function to abort the request
|
|
28
|
+
* @property {(delayMs: number) => void} timeout Function to set a timeout
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @callback RequestHandler
|
|
33
|
+
* @param {RequestHandlerParams} params Parameters for controlling the request
|
|
34
|
+
* @returns {void}
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @typedef {Object} JsonGetOptions
|
|
39
|
+
* @property {string|URL} url URL string or URL object for the request
|
|
40
|
+
*
|
|
41
|
+
* @property {Object|URLSearchParams} [urlSearchParams]
|
|
42
|
+
* Parameters to add to the URL
|
|
43
|
+
*
|
|
44
|
+
* @property {Object} [headers] HTTP headers as name-value pairs
|
|
45
|
+
* @property {boolean} [withCredentials] Whether to include credentials
|
|
46
|
+
* @property {number} [timeoutMs] Request timeout in milliseconds
|
|
47
|
+
* @property {RequestHandler} [requestHandler] Handler for abort/timeout control
|
|
48
|
+
* @property {string} [mode] CORS mode ('cors', 'no-cors', 'same-origin')
|
|
49
|
+
* @property {string} [cache] Cache mode ('default', 'no-cache', etc.)
|
|
50
|
+
* @property {string} [redirect] Redirect mode ('follow', 'error', 'manual')
|
|
51
|
+
* @property {string} [referrerPolicy] Referrer policy
|
|
52
|
+
* @property {boolean} [cacheEnabled] Enable or disabled automatic caching
|
|
53
|
+
*/
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* @typedef {Object} JsonPostOptions
|
|
57
|
+
* @property {string|URL} url URL string or URL object for the request
|
|
58
|
+
* @property {*} body Request body (will be sent as JSON)
|
|
59
|
+
*
|
|
60
|
+
* @property {Object|URLSearchParams} [urlSearchParams]
|
|
61
|
+
* Parameters to add to the URL
|
|
62
|
+
*
|
|
63
|
+
* @property {Object} [headers] HTTP headers as name-value pairs
|
|
64
|
+
* @property {boolean} [withCredentials] Whether to include credentials
|
|
65
|
+
* @property {number} [timeoutMs] Request timeout in milliseconds
|
|
66
|
+
* @property {RequestHandler} [requestHandler] Handler for abort/timeout control
|
|
67
|
+
* @property {string} [mode] CORS mode ('cors', 'no-cors', 'same-origin')
|
|
68
|
+
* @property {string} [cache] Cache mode ('default', 'no-cache', etc.)
|
|
69
|
+
* @property {string} [redirect] Redirect mode ('follow', 'error', 'manual')
|
|
70
|
+
* @property {string} [referrerPolicy] Referrer policy
|
|
71
|
+
* @property {boolean} [cacheEnabled] Enable or disabled automatic caching
|
|
72
|
+
*/
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* @typedef {Object} StaleInfo
|
|
76
|
+
* @property {boolean} isStale Whether the response contains stale data
|
|
77
|
+
*
|
|
78
|
+
* @property {Promise<Response>|null} fresh
|
|
79
|
+
* Promise that resolves to fresh data (if available)
|
|
80
|
+
*
|
|
81
|
+
* @property {number} timestamp When the response was originally cached
|
|
82
|
+
* @property {number|null} expires When the response expires
|
|
83
|
+
*/
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* @typedef {Response} ResponseWithStale
|
|
87
|
+
* @property {boolean} isStale Whether this response contains stale data
|
|
88
|
+
*
|
|
89
|
+
* @property {Promise<Response>|null} fresh
|
|
90
|
+
* Promise for fresh data if this is stale
|
|
91
|
+
*/
|
|
92
|
+
|
|
93
|
+
export {};
|
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
import { TypeOrValueError } from '../../errors/index.js';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Returns an URL instance
|
|
5
|
-
* - Prefixes the URL with the current orign if the url is relative
|
|
6
|
-
*
|
|
7
|
-
* @param {string|URL} url
|
|
8
|
-
*
|
|
9
|
-
* @returns {URL} url instance
|
|
10
|
-
*/
|
|
11
|
-
export function toURL(url) {
|
|
12
|
-
if (typeof url === 'string') {
|
|
13
|
-
if (hasProtocol(url)) {
|
|
14
|
-
return new URL(url);
|
|
15
|
-
} else {
|
|
16
|
-
// Use location.origin aas baseUrl
|
|
17
|
-
return new URL(url, location.origin);
|
|
18
|
-
}
|
|
19
|
-
} else if (!(url instanceof URL)) {
|
|
20
|
-
throw new TypeOrValueError('Missing or invalid parameter [url]');
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
// already an URL instance
|
|
24
|
-
return url;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Checks if the url starts with a protocol specification such
|
|
29
|
-
* as https://
|
|
30
|
-
*
|
|
31
|
-
* @param {string} url
|
|
32
|
-
*
|
|
33
|
-
* @return {boolean} true if the value looks like an array
|
|
34
|
-
*/
|
|
35
|
-
export function hasProtocol(url) {
|
|
36
|
-
if (/^([a-zA-Z]{2,})s?:\/\//.test(url)) {
|
|
37
|
-
return true;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
return false;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Convert an url to an absolute url and apply decodeURI to
|
|
45
|
-
* convert URI encoded characters to normal characters
|
|
46
|
-
*
|
|
47
|
-
* @param {string|URL} url
|
|
48
|
-
*/
|
|
49
|
-
export function href(url) {
|
|
50
|
-
const urlObj = toURL(url);
|
|
51
|
-
return decodeURI(urlObj.href);
|
|
52
|
-
}
|
|
1
|
+
import { TypeOrValueError } from '../../errors/index.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Returns an URL instance
|
|
5
|
+
* - Prefixes the URL with the current orign if the url is relative
|
|
6
|
+
*
|
|
7
|
+
* @param {string|URL} url
|
|
8
|
+
*
|
|
9
|
+
* @returns {URL} url instance
|
|
10
|
+
*/
|
|
11
|
+
export function toURL(url) {
|
|
12
|
+
if (typeof url === 'string') {
|
|
13
|
+
if (hasProtocol(url)) {
|
|
14
|
+
return new URL(url);
|
|
15
|
+
} else {
|
|
16
|
+
// Use location.origin aas baseUrl
|
|
17
|
+
return new URL(url, location.origin);
|
|
18
|
+
}
|
|
19
|
+
} else if (!(url instanceof URL)) {
|
|
20
|
+
throw new TypeOrValueError('Missing or invalid parameter [url]');
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// already an URL instance
|
|
24
|
+
return url;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Checks if the url starts with a protocol specification such
|
|
29
|
+
* as https://
|
|
30
|
+
*
|
|
31
|
+
* @param {string} url
|
|
32
|
+
*
|
|
33
|
+
* @return {boolean} true if the value looks like an array
|
|
34
|
+
*/
|
|
35
|
+
export function hasProtocol(url) {
|
|
36
|
+
if (/^([a-zA-Z]{2,})s?:\/\//.test(url)) {
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Convert an url to an absolute url and apply decodeURI to
|
|
45
|
+
* convert URI encoded characters to normal characters
|
|
46
|
+
*
|
|
47
|
+
* @param {string|URL} url
|
|
48
|
+
*/
|
|
49
|
+
export function href(url) {
|
|
50
|
+
const urlObj = toURL(url);
|
|
51
|
+
return decodeURI(urlObj.href);
|
|
52
|
+
}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
# Media Loaders
|
|
2
|
+
|
|
3
|
+
Advanced media loading and processing classes for audio and images with loading state management, streaming support, and responsive image handling.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
```javascript
|
|
8
|
+
import * as image from '$lib/network/loaders.js';
|
|
9
|
+
import * as audio from '$lib/network/loaders.js';
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Image Loaders
|
|
13
|
+
|
|
14
|
+
### ImageLoader
|
|
15
|
+
|
|
16
|
+
Loads single images with chunked streaming and loading states.
|
|
17
|
+
|
|
18
|
+
```javascript
|
|
19
|
+
import { ImageLoader } from '$lib/network/loaders.js';
|
|
20
|
+
|
|
21
|
+
// Create image loader with single image or responsive variants
|
|
22
|
+
const imageSource = { src: '/path/to/image.jpg', width: 800, height: 600 };
|
|
23
|
+
const imageLoader = new ImageLoader({ imageSource });
|
|
24
|
+
|
|
25
|
+
// Start loading
|
|
26
|
+
imageLoader.load();
|
|
27
|
+
|
|
28
|
+
// Access loading states
|
|
29
|
+
console.log(imageLoader.loading); // true while loading
|
|
30
|
+
console.log(imageLoader.loaded); // true when complete
|
|
31
|
+
console.log(imageLoader.error); // error object if failed
|
|
32
|
+
|
|
33
|
+
// Get object URL when loaded
|
|
34
|
+
if (imageLoader.loaded) {
|
|
35
|
+
const objectURL = imageLoader.getObjectURL();
|
|
36
|
+
// Use objectURL in img src
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### ImageVariantsLoader
|
|
41
|
+
|
|
42
|
+
Loads responsive image variants, automatically selecting the best size for container dimensions.
|
|
43
|
+
|
|
44
|
+
```javascript
|
|
45
|
+
import { ImageVariantsLoader } from '$lib/network/loaders.js';
|
|
46
|
+
|
|
47
|
+
const loader = new ImageVariantsLoader();
|
|
48
|
+
|
|
49
|
+
// Load responsive variants
|
|
50
|
+
const imageSource = [
|
|
51
|
+
{ src: '/image-400.jpg', width: 400, height: 300 },
|
|
52
|
+
{ src: '/image-800.jpg', width: 800, height: 600 },
|
|
53
|
+
{ src: '/image-1200.jpg', width: 1200, height: 900 }
|
|
54
|
+
];
|
|
55
|
+
|
|
56
|
+
await loader.load({
|
|
57
|
+
imageSource,
|
|
58
|
+
containerWidth: 600,
|
|
59
|
+
containerHeight: 400,
|
|
60
|
+
fit: 'cover', // or 'contain', 'fill'
|
|
61
|
+
devicePixelRatio: window.devicePixelRatio
|
|
62
|
+
});
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### ImageScene
|
|
66
|
+
|
|
67
|
+
High-level loader that manages multiple image sources with loading states.
|
|
68
|
+
|
|
69
|
+
```javascript
|
|
70
|
+
import { ImageScene } from '$lib/network/loaders.js';
|
|
71
|
+
|
|
72
|
+
const imageScene = new ImageScene();
|
|
73
|
+
|
|
74
|
+
// Configure multiple image sources
|
|
75
|
+
imageScene.updateSources({
|
|
76
|
+
'thumbnail': { src: '/thumb.jpg', width: 200, height: 150 },
|
|
77
|
+
'full': { src: '/full.jpg', width: 1920, height: 1080 }
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
// Load specific source
|
|
81
|
+
imageScene.load('full');
|
|
82
|
+
|
|
83
|
+
// Monitor state changes
|
|
84
|
+
imageScene.state; // 'initial', 'loading', 'loaded', 'error'
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Audio Components
|
|
88
|
+
|
|
89
|
+
### AudioLoader
|
|
90
|
+
|
|
91
|
+
Loads audio files with streaming support and loading state management.
|
|
92
|
+
|
|
93
|
+
```javascript
|
|
94
|
+
import { AudioLoader } from '$lib/network/loaders.js';
|
|
95
|
+
|
|
96
|
+
const audioLoader = new AudioLoader({
|
|
97
|
+
url: '/path/to/audio.mp3'
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
// Start loading
|
|
101
|
+
audioLoader.load();
|
|
102
|
+
|
|
103
|
+
// Access audio data when loaded
|
|
104
|
+
if (audioLoader.loaded) {
|
|
105
|
+
const audioBuffer = audioLoader.getAudioBuffer();
|
|
106
|
+
const objectURL = audioLoader.getObjectURL();
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### AudioScene
|
|
111
|
+
|
|
112
|
+
Manages multiple audio sources with scene-based loading.
|
|
113
|
+
|
|
114
|
+
```javascript
|
|
115
|
+
import { AudioScene } from '$lib/network/loaders.js';
|
|
116
|
+
|
|
117
|
+
const audioScene = new AudioScene();
|
|
118
|
+
|
|
119
|
+
// Configure audio sources
|
|
120
|
+
audioScene.updateSources({
|
|
121
|
+
'background': { url: '/bg-music.mp3' },
|
|
122
|
+
'sfx': { url: '/sound-effect.wav' }
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
// Load and play audio
|
|
126
|
+
audioScene.load('background');
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Image Utilities
|
|
130
|
+
|
|
131
|
+
### Responsive Image Helpers
|
|
132
|
+
|
|
133
|
+
```javascript
|
|
134
|
+
import {
|
|
135
|
+
toSingleImageMeta,
|
|
136
|
+
calculateEffectiveWidth
|
|
137
|
+
} from '$lib/network/loaders/image/utils/index.js';
|
|
138
|
+
|
|
139
|
+
// Extract single image from array of variants
|
|
140
|
+
const imageMeta = toSingleImageMeta([
|
|
141
|
+
{ src: '/small.jpg', width: 400, height: 300 },
|
|
142
|
+
{ src: '/large.jpg', width: 800, height: 600 }
|
|
143
|
+
]); // Returns the largest (last) image
|
|
144
|
+
|
|
145
|
+
// Calculate optimal width for container
|
|
146
|
+
const effectiveWidth = calculateEffectiveWidth({
|
|
147
|
+
containerWidth: 600,
|
|
148
|
+
containerHeight: 400,
|
|
149
|
+
imageAspectRatio: 16/9,
|
|
150
|
+
fit: 'contain' // or 'cover', 'fill'
|
|
151
|
+
});
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Loading States
|
|
155
|
+
|
|
156
|
+
All loaders implement consistent loading state management:
|
|
157
|
+
|
|
158
|
+
- **`initial`** - Not started loading
|
|
159
|
+
- **`loading`** - Currently loading
|
|
160
|
+
- **`loaded`** - Successfully loaded
|
|
161
|
+
- **`error`** - Failed to load
|
|
162
|
+
- **`cancelled`** - Loading was cancelled
|
|
163
|
+
|
|
164
|
+
## Integration with SvelteKit
|
|
165
|
+
|
|
166
|
+
### Using in Components
|
|
167
|
+
|
|
168
|
+
```svelte
|
|
169
|
+
<script>
|
|
170
|
+
import { ImageLoader } from '$lib/network/loaders.js';
|
|
171
|
+
import { onMount } from 'svelte';
|
|
172
|
+
|
|
173
|
+
let imageLoader = $state();
|
|
174
|
+
let objectURL = $state();
|
|
175
|
+
|
|
176
|
+
const imageMeta = { src: '/image.jpg', width: 800, height: 600 };
|
|
177
|
+
|
|
178
|
+
onMount(() => {
|
|
179
|
+
imageLoader = new ImageLoader({ imageMeta });
|
|
180
|
+
imageLoader.load();
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
$effect(() => {
|
|
184
|
+
if (imageLoader?.loaded) {
|
|
185
|
+
objectURL = imageLoader.getObjectURL();
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
return () => {
|
|
189
|
+
if (objectURL) {
|
|
190
|
+
URL.revokeObjectURL(objectURL);
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
});
|
|
194
|
+
</script>
|
|
195
|
+
|
|
196
|
+
{#if objectURL}
|
|
197
|
+
<img src={objectURL} alt="Loaded image" />
|
|
198
|
+
{:else if imageLoader?.loading}
|
|
199
|
+
<p>Loading...</p>
|
|
200
|
+
{:else if imageLoader?.error}
|
|
201
|
+
<p>Error: {imageLoader.error.message}</p>
|
|
202
|
+
{/if}
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Responsive Images
|
|
206
|
+
|
|
207
|
+
```svelte
|
|
208
|
+
<script>
|
|
209
|
+
import { ImageBox } from '$lib/ui/components/index.js';
|
|
210
|
+
|
|
211
|
+
// ImageBox uses ImageVariantsLoader internally
|
|
212
|
+
const imageSource = [
|
|
213
|
+
{ src: '/image-400.jpg', width: 400, height: 300 },
|
|
214
|
+
{ src: '/image-800.jpg', width: 800, height: 600 }
|
|
215
|
+
];
|
|
216
|
+
</script>
|
|
217
|
+
|
|
218
|
+
<ImageBox
|
|
219
|
+
imageSource={imageSource}
|
|
220
|
+
width="600px"
|
|
221
|
+
height="400px"
|
|
222
|
+
fit="cover"
|
|
223
|
+
/>
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
## Error Handling
|
|
227
|
+
|
|
228
|
+
```javascript
|
|
229
|
+
try {
|
|
230
|
+
const imageLoader = new ImageLoader({ imageMeta });
|
|
231
|
+
await imageLoader.load();
|
|
232
|
+
|
|
233
|
+
if (imageLoader.error) {
|
|
234
|
+
console.error('Loading failed:', imageLoader.error);
|
|
235
|
+
}
|
|
236
|
+
} catch (error) {
|
|
237
|
+
console.error('Setup failed:', error);
|
|
238
|
+
}
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
## Available Exports
|
|
242
|
+
|
|
243
|
+
### Image (`$lib/network/loaders.js`)
|
|
244
|
+
- `ImageLoader` - Single image loading with streaming
|
|
245
|
+
- `ImageVariantsLoader` - Responsive image variant selection
|
|
246
|
+
|
|
247
|
+
### Audio (`$lib/network/loaders.js`)
|
|
248
|
+
- `AudioLoader` - Audio file loading with streaming
|
|
249
|
+
- `AudioScene` - Multi-source audio management
|
|
250
|
+
|
|
251
|
+
### Utilities (`$lib/network/loaders/image/utils/`)
|
|
252
|
+
- `toSingleImageMeta()` - Extract single image from variants
|
|
253
|
+
- `calculateEffectiveWidth()` - Calculate optimal image dimensions
|
|
254
|
+
|
|
255
|
+
All loaders provide built-in loading states, error handling, and memory management with automatic cleanup of object URLs.
|
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
import {
|
|
2
|
-
NetworkLoader,
|
|
3
|
-
ERROR_NOT_LOADED,
|
|
4
|
-
ERROR_TRANSFERRED
|
|
5
|
-
} from '
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* AudioLoader instance
|
|
9
|
-
* - Loads audio data from network into an ArrayBuffer
|
|
10
|
-
* - Loaded data can be transferred to an AudioBufferSourceNode
|
|
11
|
-
*/
|
|
12
|
-
export default class AudioLoader extends NetworkLoader {
|
|
13
|
-
/** @type {AudioBuffer|null} */
|
|
14
|
-
#audioBuffer = null;
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Get an AudioBufferSourceNode instance
|
|
18
|
-
*
|
|
19
|
-
* @note AudioBufferSourceNodes can play only once, a new source node
|
|
20
|
-
* must be created otherwise
|
|
21
|
-
*
|
|
22
|
-
* @param {AudioContext} audioContext
|
|
23
|
-
*
|
|
24
|
-
* @returns {Promise<AudioBufferSourceNode>}
|
|
25
|
-
*/
|
|
26
|
-
async getAudioBufferSourceNode(audioContext) {
|
|
27
|
-
if (!this.#audioBuffer) {
|
|
28
|
-
this.#audioBuffer = await this.getAudioBuffer(audioContext);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
return new AudioBufferSourceNode(audioContext, {
|
|
32
|
-
buffer: this.#audioBuffer
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Gets data as AudioBuffer
|
|
38
|
-
* - Stores created AudioBuffer instance internally
|
|
39
|
-
* - Transfers data from internal ArrayBuffer, which will be detached
|
|
40
|
-
*
|
|
41
|
-
* @param {AudioContext} audioContext
|
|
42
|
-
*
|
|
43
|
-
* @returns {Promise<AudioBuffer>}
|
|
44
|
-
*/
|
|
45
|
-
async getAudioBuffer(audioContext) {
|
|
46
|
-
if (!this._buffer) {
|
|
47
|
-
throw new Error(ERROR_NOT_LOADED);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
if (this._buffer.detached) {
|
|
51
|
-
throw new Error(ERROR_TRANSFERRED);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
this.#audioBuffer = await audioContext.decodeAudioData(this._buffer);
|
|
55
|
-
|
|
56
|
-
return this.#audioBuffer;
|
|
57
|
-
}
|
|
58
|
-
} // end class
|
|
1
|
+
import {
|
|
2
|
+
NetworkLoader,
|
|
3
|
+
ERROR_NOT_LOADED,
|
|
4
|
+
ERROR_TRANSFERRED
|
|
5
|
+
} from '../../states/index.js';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* AudioLoader instance
|
|
9
|
+
* - Loads audio data from network into an ArrayBuffer
|
|
10
|
+
* - Loaded data can be transferred to an AudioBufferSourceNode
|
|
11
|
+
*/
|
|
12
|
+
export default class AudioLoader extends NetworkLoader {
|
|
13
|
+
/** @type {AudioBuffer|null} */
|
|
14
|
+
#audioBuffer = null;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Get an AudioBufferSourceNode instance
|
|
18
|
+
*
|
|
19
|
+
* @note AudioBufferSourceNodes can play only once, a new source node
|
|
20
|
+
* must be created otherwise
|
|
21
|
+
*
|
|
22
|
+
* @param {AudioContext} audioContext
|
|
23
|
+
*
|
|
24
|
+
* @returns {Promise<AudioBufferSourceNode>}
|
|
25
|
+
*/
|
|
26
|
+
async getAudioBufferSourceNode(audioContext) {
|
|
27
|
+
if (!this.#audioBuffer) {
|
|
28
|
+
this.#audioBuffer = await this.getAudioBuffer(audioContext);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return new AudioBufferSourceNode(audioContext, {
|
|
32
|
+
buffer: this.#audioBuffer
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Gets data as AudioBuffer
|
|
38
|
+
* - Stores created AudioBuffer instance internally
|
|
39
|
+
* - Transfers data from internal ArrayBuffer, which will be detached
|
|
40
|
+
*
|
|
41
|
+
* @param {AudioContext} audioContext
|
|
42
|
+
*
|
|
43
|
+
* @returns {Promise<AudioBuffer>}
|
|
44
|
+
*/
|
|
45
|
+
async getAudioBuffer(audioContext) {
|
|
46
|
+
if (!this._buffer) {
|
|
47
|
+
throw new Error(ERROR_NOT_LOADED);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if (this._buffer.detached) {
|
|
51
|
+
throw new Error(ERROR_TRANSFERRED);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
this.#audioBuffer = await audioContext.decodeAudioData(this._buffer);
|
|
55
|
+
|
|
56
|
+
return this.#audioBuffer;
|
|
57
|
+
}
|
|
58
|
+
} // end class
|