@hkdigital/lib-core 0.3.10 → 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.
Files changed (421) hide show
  1. package/README.md +149 -149
  2. package/dist/assets/autospuiten/car-paint-picker.d.ts +7 -7
  3. package/dist/assets/autospuiten/car-paint-picker.js +41 -41
  4. package/dist/assets/autospuiten/labels.js +7 -7
  5. package/dist/classes/data/IterableTree.d.ts +13 -6
  6. package/dist/classes/data/IterableTree.js +242 -229
  7. package/dist/classes/data/Selector.js +190 -190
  8. package/dist/classes/data/index.js +2 -2
  9. package/dist/classes/data/typedef.js +9 -9
  10. package/dist/classes/event-emitter/EventEmitter.js +273 -273
  11. package/dist/classes/event-emitter/index.js +2 -2
  12. package/dist/classes/index.js +4 -4
  13. package/dist/classes/promise/HkPromise.d.ts +18 -17
  14. package/dist/classes/promise/HkPromise.js +384 -377
  15. package/dist/classes/promise/index.js +1 -1
  16. package/dist/classes/stores/SubscribersCount.js +107 -107
  17. package/dist/classes/stores/index.js +1 -1
  18. package/dist/classes/streams/LogTransformStream.js +19 -19
  19. package/dist/classes/streams/ServerEventsStore.d.ts +2 -3
  20. package/dist/classes/streams/ServerEventsStore.js +111 -110
  21. package/dist/classes/streams/TimeStampSource.js +26 -26
  22. package/dist/classes/streams/index.js +3 -3
  23. package/dist/classes/svelte/finite-state-machine/FiniteStateMachine.svelte.js +133 -133
  24. package/dist/classes/svelte/finite-state-machine/index.js +1 -1
  25. package/dist/classes/svelte/index.d.ts +0 -8
  26. package/dist/classes/svelte/index.js +11 -14
  27. package/dist/classes/svelte/loading-state-machine/LoadingStateMachine.svelte.js +109 -109
  28. package/dist/classes/svelte/loading-state-machine/constants.js +16 -16
  29. package/dist/classes/svelte/loading-state-machine/index.js +3 -3
  30. package/dist/config/README.md +196 -0
  31. package/dist/config/{imagetools-config.js → generators/imagetools.js} +189 -189
  32. package/dist/config/generators/vite.d.ts +47 -0
  33. package/dist/config/generators/vite.js +142 -0
  34. package/dist/config/imagetools.d.ts +72 -72
  35. package/dist/config/vite.d.ts +1 -0
  36. package/dist/config/vite.js +5 -0
  37. package/dist/constants/bases/index.js +13 -13
  38. package/dist/constants/http/headers.js +6 -6
  39. package/dist/constants/http/index.js +2 -2
  40. package/dist/constants/http/methods.js +14 -14
  41. package/dist/constants/index.js +6 -6
  42. package/dist/constants/mime/application.js +5 -5
  43. package/dist/constants/mime/audio.js +13 -13
  44. package/dist/constants/mime/image.js +3 -3
  45. package/dist/constants/mime/index.js +4 -4
  46. package/dist/constants/mime/text.js +2 -2
  47. package/dist/constants/regexp/README.md +95 -0
  48. package/dist/constants/regexp/index.d.ts +1 -1
  49. package/dist/constants/regexp/index.js +31 -31
  50. package/dist/constants/regexp/inspiratie.js__ +95 -95
  51. package/dist/constants/regexp/text.d.ts +3 -3
  52. package/dist/constants/regexp/text.js +49 -49
  53. package/dist/constants/regexp/url.d.ts +1 -0
  54. package/dist/constants/regexp/url.js +3 -0
  55. package/dist/constants/regexp/user.d.ts +0 -1
  56. package/dist/constants/regexp/user.js +29 -33
  57. package/dist/constants/states/drag.js +6 -6
  58. package/dist/constants/states/drop.js +6 -6
  59. package/dist/constants/states/index.js +4 -4
  60. package/dist/constants/states/input.js +11 -11
  61. package/dist/constants/states/submit.js +4 -4
  62. package/dist/constants/time/index.js +28 -28
  63. package/dist/css/utilities.css +43 -43
  64. package/dist/design/README.md +405 -0
  65. package/dist/design/{design-config.js → config/design-config.js} +73 -73
  66. package/dist/{util/design-system/tailwind.js → design/generators/index.js} +288 -288
  67. package/dist/design/index.d.ts +8 -0
  68. package/dist/design/index.js +97 -0
  69. package/dist/{util/design-system → design/plugins}/skeleton.js +208 -208
  70. package/dist/design/tailwind-theme-extend.js +158 -158
  71. package/dist/design/themes/README.md +103 -0
  72. package/dist/{themes → design/themes}/hkdev/components/blocks/text-block.css +34 -34
  73. package/dist/{themes → design/themes}/hkdev/components/boxes/game-box.css +11 -11
  74. package/dist/{themes → design/themes}/hkdev/components/buttons/button-icon-steeze.css +22 -22
  75. package/dist/{themes → design/themes}/hkdev/components/buttons/button-text.css +32 -32
  76. package/dist/{themes → design/themes}/hkdev/components/buttons/button.css +146 -146
  77. package/dist/{themes → design/themes}/hkdev/components/buttons/skip-button.css +5 -5
  78. package/dist/{themes → design/themes}/hkdev/components/drag-drop/draggable.css +73 -73
  79. package/dist/{themes → design/themes}/hkdev/components/drag-drop/drop-zone.css +58 -58
  80. package/dist/{themes → design/themes}/hkdev/components/icons/icon-steeze.css +15 -15
  81. package/dist/{themes → design/themes}/hkdev/components/inputs/text-input.css +102 -102
  82. package/dist/{themes → design/themes}/hkdev/components/panels/panel.css +25 -25
  83. package/dist/{themes → design/themes}/hkdev/components/rows/panel-grid-row.css +4 -4
  84. package/dist/{themes → design/themes}/hkdev/components/rows/panel-row-2.css +5 -5
  85. package/dist/{themes → design/themes}/hkdev/components.css +29 -29
  86. package/dist/design/themes/hkdev/debug.css +2 -0
  87. package/dist/{themes → design/themes}/hkdev/global/layout.css +32 -32
  88. package/dist/{themes → design/themes}/hkdev/global/on-colors.css +32 -32
  89. package/dist/{themes → design/themes}/hkdev/globals.css +3 -3
  90. package/dist/{themes → design/themes}/hkdev/responsive.css +12 -12
  91. package/dist/{themes → design/themes}/hkdev/theme-ext.js +12 -12
  92. package/dist/{themes → design/themes}/hkdev/theme.css +218 -218
  93. package/dist/{util/design-system/css → design/utils}/clamp.js +66 -66
  94. package/dist/{util/design-system/css/root-design-vars.d.ts → design/utils/root-vars.d.ts} +2 -2
  95. package/dist/{util/design-system/css/root-design-vars.js → design/utils/root-vars.js} +102 -102
  96. package/dist/{util/design-system/layout → design/utils}/scaling.js +228 -228
  97. package/dist/{util/design-system/components → design/utils}/states.js +22 -22
  98. package/dist/errors/api.js +9 -9
  99. package/dist/errors/generic.js +20 -20
  100. package/dist/errors/http.js +16 -16
  101. package/dist/errors/index.d.ts +1 -0
  102. package/dist/errors/index.js +5 -4
  103. package/dist/errors/jwt.js +5 -5
  104. package/dist/errors/promise.d.ts +27 -0
  105. package/dist/errors/promise.js +26 -0
  106. package/dist/logging/index.js +7 -7
  107. package/dist/logging/internal/adapters/console.js +114 -114
  108. package/dist/logging/internal/adapters/index.js +2 -2
  109. package/dist/logging/internal/adapters/pino.js +142 -142
  110. package/dist/logging/internal/adapters/typedef.js +10 -10
  111. package/dist/logging/internal/factories/client.js +21 -21
  112. package/dist/logging/internal/factories/server.js +22 -22
  113. package/dist/logging/internal/factories/universal.js +22 -22
  114. package/dist/logging/internal/unified-logger/Logger.js +217 -217
  115. package/dist/logging/internal/unified-logger/constants.js +22 -22
  116. package/dist/logging/internal/unified-logger/index.js +6 -6
  117. package/dist/logging/internal/unified-logger/typedef.js +17 -17
  118. package/dist/network/README.md +173 -0
  119. package/dist/{classes → network}/cache/IndexedDbCache.js +1407 -1407
  120. package/dist/{classes → network}/cache/MemoryResponseCache.js +138 -138
  121. package/dist/{classes → network}/cache/index.js +5 -5
  122. package/dist/{classes → network}/cache/typedef.js +41 -41
  123. package/dist/network/cache.d.ts +3 -0
  124. package/dist/network/cache.js +4 -0
  125. package/dist/{util → network}/http/caching.js +261 -263
  126. package/dist/{util → network}/http/errors.js +97 -97
  127. package/dist/{util → network}/http/headers.js +75 -75
  128. package/dist/{util → network}/http/http-request.js +578 -578
  129. package/dist/{util → network}/http/index.js +22 -22
  130. package/dist/{util → network}/http/json-request.js +224 -224
  131. package/dist/{util → network}/http/mocks.js +65 -65
  132. package/dist/{util → network}/http/response.js +318 -318
  133. package/dist/{util → network}/http/typedef.js +93 -93
  134. package/dist/{util → network}/http/url.js +52 -52
  135. package/dist/network/http.d.ts +6 -0
  136. package/dist/network/http.js +6 -0
  137. package/dist/network/loaders/README.md +255 -0
  138. package/dist/{classes/svelte → network/loaders}/audio/AudioLoader.svelte.d.ts +1 -1
  139. package/dist/{classes/svelte → network/loaders}/audio/AudioLoader.svelte.js +58 -58
  140. package/dist/{classes/svelte → network/loaders}/audio/AudioScene.svelte.js +324 -324
  141. package/dist/{classes/svelte → network/loaders}/audio/mocks.js +35 -35
  142. package/dist/network/loaders/audio.d.ts +2 -0
  143. package/dist/network/loaders/audio.js +2 -0
  144. package/dist/{classes/svelte → network/loaders}/image/ImageLoader.svelte.d.ts +3 -6
  145. package/dist/{classes/svelte → network/loaders}/image/ImageLoader.svelte.js +44 -45
  146. package/dist/{classes/svelte → network/loaders}/image/ImageScene.svelte.d.ts +5 -7
  147. package/dist/{classes/svelte → network/loaders}/image/ImageScene.svelte.js +248 -249
  148. package/dist/{classes/svelte → network/loaders}/image/ImageVariantsLoader.svelte.d.ts +4 -4
  149. package/dist/{classes/svelte → network/loaders}/image/ImageVariantsLoader.svelte.js +150 -152
  150. package/dist/{classes/svelte → network/loaders}/image/index.js +4 -4
  151. package/dist/{classes/svelte → network/loaders}/image/mocks.js +35 -35
  152. package/dist/{classes/svelte → network/loaders}/image/typedef.js +8 -8
  153. package/dist/{util/image → network/loaders/image/utils}/index.d.ts +2 -2
  154. package/dist/{util/image → network/loaders/image/utils}/index.js +86 -86
  155. package/dist/network/loaders/image.d.ts +5 -0
  156. package/dist/network/loaders/image.js +8 -0
  157. package/dist/{typedef/image.js → network/loaders/typedef.js} +38 -38
  158. package/dist/network/loaders.d.ts +2 -0
  159. package/dist/network/loaders.js +2 -0
  160. package/dist/{classes/svelte/network-loader → network/states}/NetworkLoader.svelte.d.ts +1 -1
  161. package/dist/{classes/svelte/network-loader → network/states}/NetworkLoader.svelte.js +338 -338
  162. package/dist/{classes/svelte/network-loader → network/states}/constants.js +3 -3
  163. package/dist/{classes/svelte/network-loader → network/states}/index.js +3 -3
  164. package/dist/{classes/svelte/network-loader → network/states}/mocks.js +30 -30
  165. package/dist/{classes/svelte/network-loader → network/states}/typedef.js +8 -8
  166. package/dist/network/typedef.d.ts +4 -0
  167. package/dist/network/typedef.js +10 -0
  168. package/dist/services/index.js +1 -1
  169. package/dist/services/internal/index.js +8 -8
  170. package/dist/services/internal/service-base/ServiceBase.js +462 -462
  171. package/dist/services/internal/service-base/constants.js +110 -110
  172. package/dist/services/internal/service-base/index.js +3 -3
  173. package/dist/services/internal/service-base/typedef.js +101 -101
  174. package/dist/services/internal/service-manager/ServiceManager.js +608 -608
  175. package/dist/services/internal/service-manager/constants.js +6 -6
  176. package/dist/services/internal/service-manager/typedef.js +90 -90
  177. package/dist/states/index.js +1 -1
  178. package/dist/states/navigation.svelte.js +55 -55
  179. package/dist/stores/index.js +1 -1
  180. package/dist/stores/theme.js +80 -80
  181. package/dist/typedef/context.js +6 -6
  182. package/dist/typedef/drag.js +25 -25
  183. package/dist/typedef/drop.js +12 -12
  184. package/dist/typedef/index.d.ts +0 -1
  185. package/dist/typedef/index.js +4 -4
  186. package/dist/{components → ui/components}/button-group/ButtonGroup.svelte +82 -82
  187. package/dist/{components → ui/components}/button-group/typedef.js +10 -10
  188. package/dist/{components → ui/components}/compare-left-right/CompareLeftRight.svelte +179 -179
  189. package/dist/{components → ui/components}/compare-left-right/index.js +1 -1
  190. package/dist/{components → ui/components}/game-box/GameBox.svelte +577 -577
  191. package/dist/{components → ui/components}/game-box/gamebox.util.js +83 -83
  192. package/dist/ui/components/hk-app-layout/HkAppLayout.state.svelte.d.ts +6 -0
  193. package/dist/{components → ui/components}/hk-app-layout/HkAppLayout.state.svelte.js +25 -25
  194. package/dist/{components → ui/components}/hk-app-layout/HkAppLayout.svelte +251 -251
  195. package/dist/{components → ui/components}/image-box/ImageBox.svelte +210 -210
  196. package/dist/{components → ui/components}/image-box/ImageBox.svelte.d.ts +6 -6
  197. package/dist/ui/components/image-box/index.js +5 -0
  198. package/dist/{components → ui/components}/image-box/typedef.js +32 -32
  199. package/dist/{components → ui/components}/index.js +23 -23
  200. package/dist/{components → ui/components}/presenter/ImageSlide.svelte +64 -64
  201. package/dist/{components → ui/components}/presenter/ImageSlide.svelte.d.ts +2 -2
  202. package/dist/{components → ui/components}/presenter/Presenter.state.svelte.d.ts +1 -1
  203. package/dist/{components → ui/components}/presenter/Presenter.state.svelte.js +638 -638
  204. package/dist/{components → ui/components}/presenter/Presenter.svelte +142 -142
  205. package/dist/{components → ui/components}/presenter/constants.js +7 -7
  206. package/dist/{components → ui/components}/presenter/index.js +10 -10
  207. package/dist/{components → ui/components}/presenter/typedef.js +106 -106
  208. package/dist/{components → ui/components}/presenter/util.js +210 -210
  209. package/dist/{components → ui/components}/virtual-viewport/VirtualViewport.svelte +196 -196
  210. package/dist/{primitives → ui/primitives}/area/HkArea.svelte +49 -49
  211. package/dist/{primitives → ui/primitives}/area/HkGridArea.svelte +77 -77
  212. package/dist/{primitives → ui/primitives}/area/index.js +2 -2
  213. package/dist/{primitives → ui/primitives}/buttons/button/Button.svelte +82 -82
  214. package/dist/{primitives → ui/primitives}/buttons/button/Button.svelte.d.ts +1 -1
  215. package/dist/{primitives → ui/primitives}/buttons/button-icon-steeze/SteezeIconButton.svelte +30 -30
  216. package/dist/{primitives → ui/primitives}/buttons/button-text/TextButton.svelte +21 -21
  217. package/dist/{primitives → ui/primitives}/buttons/index.js +3 -3
  218. package/dist/{primitives → ui/primitives}/debug/debug-panel-design-scaling/DebugPanelDesignScaling.svelte +146 -146
  219. package/dist/{primitives → ui/primitives}/debug/index.js +1 -1
  220. package/dist/{primitives → ui/primitives}/drag-drop/DragController.js +44 -44
  221. package/dist/{primitives → ui/primitives}/drag-drop/DragDropContext.svelte +111 -111
  222. package/dist/{primitives → ui/primitives}/drag-drop/DragDropContext.svelte.d.ts +1 -1
  223. package/dist/{primitives → ui/primitives}/drag-drop/Draggable.svelte +519 -519
  224. package/dist/{primitives → ui/primitives}/drag-drop/Draggable.svelte.d.ts +1 -1
  225. package/dist/{primitives → ui/primitives}/drag-drop/DropZone.svelte +258 -258
  226. package/dist/{primitives → ui/primitives}/drag-drop/DropZone.svelte.d.ts +3 -3
  227. package/dist/{primitives → ui/primitives}/drag-drop/DropZoneArea.svelte +119 -119
  228. package/dist/{primitives → ui/primitives}/drag-drop/DropZoneArea.svelte.d.ts +3 -3
  229. package/dist/{primitives → ui/primitives}/drag-drop/DropZoneList.svelte +125 -125
  230. package/dist/{primitives → ui/primitives}/drag-drop/DropZoneList.svelte.d.ts +3 -3
  231. package/dist/{primitives → ui/primitives}/drag-drop/actions.js +26 -26
  232. package/dist/{primitives → ui/primitives}/drag-drop/drag-state.svelte.d.ts +11 -11
  233. package/dist/{primitives → ui/primitives}/drag-drop/drag-state.svelte.js +322 -322
  234. package/dist/{primitives → ui/primitives}/drag-drop/index.js +7 -7
  235. package/dist/{primitives → ui/primitives}/drag-drop/util.js +85 -85
  236. package/dist/{primitives → ui/primitives}/hkdev/blocks/TextBlock.svelte +46 -46
  237. package/dist/{primitives → ui/primitives}/hkdev/buttons/CheckButton.svelte +62 -62
  238. package/dist/{primitives → ui/primitives}/icons/HkIcon.svelte +86 -86
  239. package/dist/{primitives → ui/primitives}/icons/HkTabIcon.svelte +116 -116
  240. package/dist/{primitives → ui/primitives}/icons/SteezeIcon.svelte +97 -97
  241. package/dist/{primitives → ui/primitives}/icons/index.js +6 -6
  242. package/dist/{primitives → ui/primitives}/icons/typedef.js +16 -16
  243. package/dist/{primitives → ui/primitives}/index.js +2 -2
  244. package/dist/{primitives → ui/primitives}/inputs/index.js +1 -1
  245. package/dist/{primitives → ui/primitives}/inputs/text-input/TextInput.svelte +223 -223
  246. package/dist/{primitives → ui/primitives}/inputs/text-input/assets/IconInvalid.svelte +14 -14
  247. package/dist/{primitives → ui/primitives}/inputs/text-input/assets/IconValid.svelte +12 -12
  248. package/dist/{primitives → ui/primitives}/layout/grid-layers/GridLayers.svelte +63 -63
  249. package/dist/{primitives → ui/primitives}/layout/grid-layers/util.js +74 -74
  250. package/dist/{primitives → ui/primitives}/layout/index.js +1 -1
  251. package/dist/{primitives → ui/primitives}/panels/index.js +1 -1
  252. package/dist/{primitives → ui/primitives}/panels/panel/Panel.svelte +43 -43
  253. package/dist/{primitives → ui/primitives}/rows/index.js +3 -3
  254. package/dist/{primitives → ui/primitives}/rows/panel-grid-row/PanelGridRow.svelte +104 -104
  255. package/dist/{primitives → ui/primitives}/rows/panel-row-2/PanelRow2.svelte +40 -40
  256. package/dist/{primitives → ui/primitives}/tab-bar/HkTabBar.state.svelte.d.ts +3 -3
  257. package/dist/{primitives → ui/primitives}/tab-bar/HkTabBar.state.svelte.js +149 -149
  258. package/dist/{primitives → ui/primitives}/tab-bar/HkTabBar.svelte +74 -74
  259. package/dist/{primitives → ui/primitives}/tab-bar/HkTabBarSelector.state.svelte.d.ts +3 -3
  260. package/dist/{primitives → ui/primitives}/tab-bar/HkTabBarSelector.state.svelte.js +93 -93
  261. package/dist/{primitives → ui/primitives}/tab-bar/HkTabBarSelector.svelte +49 -49
  262. package/dist/{primitives → ui/primitives}/tab-bar/index.js +17 -17
  263. package/dist/{primitives → ui/primitives}/tab-bar/typedef.js +11 -11
  264. package/dist/util/array/index.js +436 -436
  265. package/dist/util/bases/base58.js +262 -262
  266. package/dist/util/bases/index.js +1 -1
  267. package/dist/util/compare/index.js +247 -247
  268. package/dist/util/css/css-vars.js +83 -83
  269. package/dist/util/css/index.js +1 -1
  270. package/dist/util/env/index.js +9 -9
  271. package/dist/util/exceptions/index.js +23 -23
  272. package/dist/util/expect/arrays.js +47 -47
  273. package/dist/util/expect/index.js +259 -259
  274. package/dist/util/expect/primitives.js +55 -55
  275. package/dist/util/expect/url.d.ts +6 -6
  276. package/dist/util/expect/url.js +60 -60
  277. package/dist/util/function/index.js +218 -218
  278. package/dist/util/geo/index.js +26 -26
  279. package/dist/util/index.js +7 -7
  280. package/dist/util/is/index.js +147 -147
  281. package/dist/util/iterate/index.d.ts +4 -4
  282. package/dist/util/iterate/index.js +204 -204
  283. package/dist/util/object/index.js +1345 -1345
  284. package/dist/util/singleton/index.js +97 -97
  285. package/dist/util/string/array-path.js +75 -75
  286. package/dist/util/string/convert.js +54 -54
  287. package/dist/util/string/fs.js +226 -226
  288. package/dist/util/string/index.js +5 -5
  289. package/dist/util/string/interpolate.js +61 -61
  290. package/dist/util/string/pad.js +10 -10
  291. package/dist/util/svelte/index.js +4 -4
  292. package/dist/util/svelte/loading/loading-tracker.svelte.js +108 -108
  293. package/dist/util/svelte/observe/index.js +49 -49
  294. package/dist/util/svelte/state-context/index.js +117 -117
  295. package/dist/util/svelte/wait/index.js +38 -38
  296. package/dist/util/sveltekit/index.js +1 -1
  297. package/dist/util/sveltekit/route-folders/index.js +101 -101
  298. package/dist/util/time/index.js +328 -328
  299. package/dist/util/unique/index.js +231 -231
  300. package/dist/valibot/README.md +50 -0
  301. package/dist/valibot/index.d.ts +4 -4
  302. package/dist/valibot/index.js +8 -9
  303. package/dist/valibot/{url.d.ts → parsers/url.d.ts} +13 -5
  304. package/dist/valibot/{url.js → parsers/url.js} +111 -95
  305. package/dist/valibot/{user.js → parsers/user.js} +23 -23
  306. package/dist/valibot/parsers.d.ts +2 -0
  307. package/dist/valibot/parsers.js +4 -0
  308. package/package.json +131 -133
  309. package/dist/components/hk-app-layout/HkAppLayout.state.svelte.d.ts +0 -6
  310. package/dist/components/image-box/index.js +0 -5
  311. package/dist/constants/regexp/web.d.ts +0 -1
  312. package/dist/constants/regexp/web.js +0 -3
  313. package/dist/primitives/inputs/text-input/TestTextInput.svelte__ +0 -102
  314. package/dist/primitives/inputs/text-input/TextInput.svelte___ +0 -83
  315. package/dist/primitives/layout/grid-layers/GridLayers.svelte__heightFrom__ +0 -372
  316. package/dist/schemas/index.d.ts +0 -1
  317. package/dist/schemas/index.js +0 -1
  318. package/dist/schemas/validate-url.d.ts +0 -30
  319. package/dist/schemas/validate-url.js +0 -180
  320. package/dist/themes/hkdev/debug.css +0 -2
  321. package/dist/themes/index.d.ts +0 -1
  322. package/dist/themes/index.js +0 -1
  323. package/dist/util/design-system/index.d.ts +0 -5
  324. package/dist/util/design-system/index.js +0 -5
  325. package/dist/util/http/test-data__/content-length-test-hkdigital-small.V4HfZyBQ.avif +0 -0
  326. package/dist/valibot/date.js__ +0 -10
  327. package/dist/zod/all.d.ts +0 -6
  328. package/dist/zod/all.js +0 -33
  329. package/dist/zod/generic.d.ts +0 -6
  330. package/dist/zod/generic.js +0 -11
  331. package/dist/zod/javascript.d.ts +0 -8
  332. package/dist/zod/javascript.js +0 -32
  333. package/dist/zod/user.d.ts +0 -9
  334. package/dist/zod/user.js +0 -16
  335. package/dist/zod/web.d.ts +0 -21
  336. package/dist/zod/web.js +0 -52
  337. /package/dist/config/{imagetools-config.d.ts → generators/imagetools.d.ts} +0 -0
  338. /package/dist/design/{design-config.d.ts → config/design-config.d.ts} +0 -0
  339. /package/dist/{util/design-system/tailwind.d.ts → design/generators/index.d.ts} +0 -0
  340. /package/dist/{util/design-system → design/plugins}/skeleton.d.ts +0 -0
  341. /package/dist/{themes → design/themes}/hkdev/theme-ext.d.ts +0 -0
  342. /package/dist/{util/design-system/css → design/utils}/clamp.d.ts +0 -0
  343. /package/dist/{util/design-system/layout → design/utils}/scaling.d.ts +0 -0
  344. /package/dist/{util/design-system/components → design/utils}/states.d.ts +0 -0
  345. /package/dist/{classes → network}/cache/IndexedDbCache.d.ts +0 -0
  346. /package/dist/{classes → network}/cache/MemoryResponseCache.d.ts +0 -0
  347. /package/dist/{classes → network}/cache/index.d.ts +0 -0
  348. /package/dist/{classes → network}/cache/typedef.d.ts +0 -0
  349. /package/dist/{util → network}/http/caching.d.ts +0 -0
  350. /package/dist/{util → network}/http/errors.d.ts +0 -0
  351. /package/dist/{util → network}/http/headers.d.ts +0 -0
  352. /package/dist/{util → network}/http/http-request.d.ts +0 -0
  353. /package/dist/{util → network}/http/index.d.ts +0 -0
  354. /package/dist/{util → network}/http/json-request.d.ts +0 -0
  355. /package/dist/{util → network}/http/mocks.d.ts +0 -0
  356. /package/dist/{util → network}/http/response.d.ts +0 -0
  357. /package/dist/{util → network}/http/typedef.d.ts +0 -0
  358. /package/dist/{util → network}/http/url.d.ts +0 -0
  359. /package/dist/{classes/svelte → network/loaders}/audio/AudioScene.svelte.d.ts +0 -0
  360. /package/dist/{classes/svelte → network/loaders}/audio/mocks.d.ts +0 -0
  361. /package/dist/{classes/svelte → network/loaders}/image/index.d.ts +0 -0
  362. /package/dist/{classes/svelte → network/loaders}/image/mocks.d.ts +0 -0
  363. /package/dist/{classes/svelte → network/loaders}/image/typedef.d.ts +0 -0
  364. /package/dist/{typedef/image.d.ts → network/loaders/typedef.d.ts} +0 -0
  365. /package/dist/{classes/svelte/network-loader → network/states}/constants.d.ts +0 -0
  366. /package/dist/{classes/svelte/network-loader → network/states}/index.d.ts +0 -0
  367. /package/dist/{classes/svelte/network-loader → network/states}/mocks.d.ts +0 -0
  368. /package/dist/{classes/svelte/network-loader → network/states}/typedef.d.ts +0 -0
  369. /package/dist/{components → ui/components}/button-group/ButtonGroup.svelte.d.ts +0 -0
  370. /package/dist/{components → ui/components}/button-group/typedef.d.ts +0 -0
  371. /package/dist/{components → ui/components}/compare-left-right/CompareLeftRight.svelte.d.ts +0 -0
  372. /package/dist/{components → ui/components}/compare-left-right/index.d.ts +0 -0
  373. /package/dist/{components → ui/components}/game-box/GameBox.svelte.d.ts +0 -0
  374. /package/dist/{components → ui/components}/game-box/gamebox.util.d.ts +0 -0
  375. /package/dist/{components → ui/components}/hk-app-layout/HkAppLayout.svelte.d.ts +0 -0
  376. /package/dist/{components → ui/components}/image-box/index.d.ts +0 -0
  377. /package/dist/{components → ui/components}/image-box/typedef.d.ts +0 -0
  378. /package/dist/{components → ui/components}/index.d.ts +0 -0
  379. /package/dist/{components → ui/components}/presenter/Presenter.svelte.d.ts +0 -0
  380. /package/dist/{components → ui/components}/presenter/constants.d.ts +0 -0
  381. /package/dist/{components → ui/components}/presenter/index.d.ts +0 -0
  382. /package/dist/{components → ui/components}/presenter/typedef.d.ts +0 -0
  383. /package/dist/{components → ui/components}/presenter/util.d.ts +0 -0
  384. /package/dist/{components → ui/components}/virtual-viewport/VirtualViewport.svelte.d.ts +0 -0
  385. /package/dist/{primitives → ui/primitives}/area/HkArea.svelte.d.ts +0 -0
  386. /package/dist/{primitives → ui/primitives}/area/HkGridArea.svelte.d.ts +0 -0
  387. /package/dist/{primitives → ui/primitives}/area/index.d.ts +0 -0
  388. /package/dist/{primitives → ui/primitives}/buttons/button-icon-steeze/SteezeIconButton.svelte.d.ts +0 -0
  389. /package/dist/{primitives → ui/primitives}/buttons/button-text/TextButton.svelte.d.ts +0 -0
  390. /package/dist/{primitives → ui/primitives}/buttons/index.d.ts +0 -0
  391. /package/dist/{primitives → ui/primitives}/debug/debug-panel-design-scaling/DebugPanelDesignScaling.svelte.d.ts +0 -0
  392. /package/dist/{primitives → ui/primitives}/debug/index.d.ts +0 -0
  393. /package/dist/{primitives → ui/primitives}/drag-drop/DragController.d.ts +0 -0
  394. /package/dist/{primitives → ui/primitives}/drag-drop/actions.d.ts +0 -0
  395. /package/dist/{primitives → ui/primitives}/drag-drop/index.d.ts +0 -0
  396. /package/dist/{primitives → ui/primitives}/drag-drop/util.d.ts +0 -0
  397. /package/dist/{primitives → ui/primitives}/hkdev/blocks/TextBlock.svelte.d.ts +0 -0
  398. /package/dist/{primitives → ui/primitives}/hkdev/buttons/CheckButton.svelte.d.ts +0 -0
  399. /package/dist/{primitives → ui/primitives}/icons/HkIcon.svelte.d.ts +0 -0
  400. /package/dist/{primitives → ui/primitives}/icons/HkTabIcon.svelte.d.ts +0 -0
  401. /package/dist/{primitives → ui/primitives}/icons/SteezeIcon.svelte.d.ts +0 -0
  402. /package/dist/{primitives → ui/primitives}/icons/index.d.ts +0 -0
  403. /package/dist/{primitives → ui/primitives}/icons/typedef.d.ts +0 -0
  404. /package/dist/{primitives → ui/primitives}/index.d.ts +0 -0
  405. /package/dist/{primitives → ui/primitives}/inputs/index.d.ts +0 -0
  406. /package/dist/{primitives → ui/primitives}/inputs/text-input/TextInput.svelte.d.ts +0 -0
  407. /package/dist/{primitives → ui/primitives}/inputs/text-input/assets/IconInvalid.svelte.d.ts +0 -0
  408. /package/dist/{primitives → ui/primitives}/inputs/text-input/assets/IconValid.svelte.d.ts +0 -0
  409. /package/dist/{primitives → ui/primitives}/layout/grid-layers/GridLayers.svelte.d.ts +0 -0
  410. /package/dist/{primitives → ui/primitives}/layout/grid-layers/util.d.ts +0 -0
  411. /package/dist/{primitives → ui/primitives}/layout/index.d.ts +0 -0
  412. /package/dist/{primitives → ui/primitives}/panels/index.d.ts +0 -0
  413. /package/dist/{primitives → ui/primitives}/panels/panel/Panel.svelte.d.ts +0 -0
  414. /package/dist/{primitives → ui/primitives}/rows/index.d.ts +0 -0
  415. /package/dist/{primitives → ui/primitives}/rows/panel-grid-row/PanelGridRow.svelte.d.ts +0 -0
  416. /package/dist/{primitives → ui/primitives}/rows/panel-row-2/PanelRow2.svelte.d.ts +0 -0
  417. /package/dist/{primitives → ui/primitives}/tab-bar/HkTabBar.svelte.d.ts +0 -0
  418. /package/dist/{primitives → ui/primitives}/tab-bar/HkTabBarSelector.svelte.d.ts +0 -0
  419. /package/dist/{primitives → ui/primitives}/tab-bar/index.d.ts +0 -0
  420. /package/dist/{primitives → ui/primitives}/tab-bar/typedef.d.ts +0 -0
  421. /package/dist/valibot/{user.d.ts → parsers/user.d.ts} +0 -0
@@ -1,152 +1,150 @@
1
- import { calculateEffectiveWidth } from '../../../util/image/index.js';
2
-
3
- import ImageLoader from './ImageLoader.svelte.js';
4
-
5
- /** @typedef {import('../../../typedef/image.js').ImageMeta} ImageMeta */
6
-
7
- export default class ImageVariantsLoader {
8
- /** @type {number} */
9
- #devicePixelRatio;
10
-
11
- /** @type {ImageMeta[]} */
12
- #imagesMeta;
13
-
14
- /** @type {ImageMeta|null} */
15
- #imageVariant = $state(null);
16
-
17
- /** @type {ImageLoader|null} */
18
- #imageLoader = $state(null);
19
-
20
- #progress = $derived.by(() => {
21
- if (this.#imageLoader) {
22
- return this.#imageLoader.progress;
23
- } else {
24
- return { bytesLoaded: 0, size: 0, loaded: false };
25
- }
26
- });
27
-
28
- #loaded = $derived.by(() => this.#progress?.loaded || false);
29
-
30
- /**
31
- * @param {ImageMeta[]} imagesMeta
32
- */
33
- constructor(imagesMeta, { devicePixelRatio = 1 } = {}) {
34
- this.#devicePixelRatio = devicePixelRatio ?? 1;
35
- this.#imagesMeta = [...imagesMeta].sort((a, b) => a.width - b.width);
36
- // console.debug("imagesMeta",imagesMeta);
37
- }
38
-
39
- /**
40
- * Set new optimal image variant or keep current
41
- *
42
- * @param {object} params
43
- * @param {number} [params.containerWidth] Container width
44
- * @param {number} [params.containerHeight] Container height
45
- * @param {'cover'|'contain'|'fill'} [params.fit='contain'] Fit mode
46
- */
47
- updateOptimalImageMeta({ containerWidth, containerHeight, fit = 'contain' }) {
48
- const baseImage = this.#imagesMeta[0];
49
- const imageAspectRatio = baseImage.width / baseImage.height;
50
-
51
- const effectiveWidth = calculateEffectiveWidth({
52
- containerWidth,
53
- containerHeight,
54
- imageAspectRatio,
55
- fit
56
- });
57
-
58
- const newVariant = this.getOptimalImageMeta(effectiveWidth);
59
-
60
- // console.debug("updateOptimalImageMeta", effectiveWidth, newVariant );
61
-
62
- if (
63
- !newVariant ||
64
- !this.#imageVariant ||
65
- newVariant.width > this.#imageVariant.width
66
- ) {
67
- this.#imageVariant = newVariant;
68
-
69
- // Create and start loader here directly when variant changes
70
- if (this.#imageLoader?.initial) {
71
- this.#imageLoader.unload();
72
- }
73
-
74
- this.#imageLoader = new ImageLoader({
75
- imageMeta: newVariant
76
- });
77
-
78
-
79
- this.#imageLoader.load();
80
- }
81
- }
82
-
83
- get loaded() {
84
- return this.#loaded;
85
- }
86
-
87
- get variant() {
88
- return this.#imageVariant;
89
- }
90
-
91
- /**
92
- * Get object URL that can be used as src parameter of an HTML image
93
- *
94
- * @note the objectURL should be revoked when no longer used
95
- *
96
- * @returns {string|null}
97
- */
98
- getObjectURL() {
99
- // Example usage:
100
- //
101
- // $effect(() => {
102
- // if (variantsLoader.loaded) {
103
- // // @ts-ignore
104
- // imageUrl = variantsLoader.getObjectURL();
105
- // }
106
-
107
- // return () => {
108
- // if (imageUrl) {
109
- // URL.revokeObjectURL(imageUrl);
110
- // imageUrl = null;
111
- // }
112
- // };
113
- // });
114
-
115
- const blob = this.#imageLoader?.getBlob();
116
-
117
- const url = blob ? URL.createObjectURL(blob) : null;
118
-
119
- return url;
120
- }
121
-
122
- get progress() {
123
- return this.#progress;
124
- }
125
-
126
- /**
127
- * Get optimal image variant
128
- *
129
- * @param {number} containerWidth
130
- *
131
- * @returns {ImageMeta|null}
132
- */
133
- getOptimalImageMeta(containerWidth) {
134
- if (!containerWidth) {
135
- return null;
136
- }
137
-
138
- // Calculate the required width (container * DPR)
139
- const requiredWidth = containerWidth * this.#devicePixelRatio;
140
-
141
- const imagesMeta = this.#imagesMeta;
142
-
143
- // Find the smallest image that's larger than our required width
144
-
145
- const optimal = imagesMeta.find(
146
- (current) => current.width >= requiredWidth
147
- );
148
-
149
- // Fall back to the largest image if nothing is big enough
150
- return optimal || imagesMeta[imagesMeta.length - 1];
151
- }
152
- } // end class
1
+ import { calculateEffectiveWidth } from './utils/index.js';
2
+
3
+ import ImageLoader from './ImageLoader.svelte.js';
4
+
5
+ /** @typedef {import('../typedef.js').ImageMeta} ImageMeta */
6
+
7
+ export default class ImageVariantsLoader {
8
+ /** @type {number} */
9
+ #devicePixelRatio;
10
+
11
+ /** @type {ImageMeta[]} */
12
+ #imagesMeta;
13
+
14
+ /** @type {ImageMeta|null} */
15
+ #imageVariant = $state(null);
16
+
17
+ /** @type {ImageLoader|null} */
18
+ #imageLoader = $state(null);
19
+
20
+ #progress = $derived.by(() => {
21
+ if (this.#imageLoader) {
22
+ return this.#imageLoader.progress;
23
+ } else {
24
+ return { bytesLoaded: 0, size: 0, loaded: false };
25
+ }
26
+ });
27
+
28
+ #loaded = $derived.by(() => this.#progress?.loaded || false);
29
+
30
+ /**
31
+ * @param {ImageMeta[]} imagesMeta
32
+ */
33
+ constructor(imagesMeta, { devicePixelRatio = 1 } = {}) {
34
+ this.#devicePixelRatio = devicePixelRatio ?? 1;
35
+ this.#imagesMeta = [...imagesMeta].sort((a, b) => a.width - b.width);
36
+ // console.debug("imagesMeta",imagesMeta);
37
+ }
38
+
39
+ /**
40
+ * Set new optimal image variant or keep current
41
+ *
42
+ * @param {object} params
43
+ * @param {number} [params.containerWidth] Container width
44
+ * @param {number} [params.containerHeight] Container height
45
+ * @param {'cover'|'contain'|'fill'} [params.fit='contain'] Fit mode
46
+ */
47
+ updateOptimalImageMeta({ containerWidth, containerHeight, fit = 'contain' }) {
48
+ const baseImage = this.#imagesMeta[0];
49
+ const imageAspectRatio = baseImage.width / baseImage.height;
50
+
51
+ const effectiveWidth = calculateEffectiveWidth({
52
+ containerWidth,
53
+ containerHeight,
54
+ imageAspectRatio,
55
+ fit
56
+ });
57
+
58
+ const newVariant = this.getOptimalImageMeta(effectiveWidth);
59
+
60
+ // console.debug("updateOptimalImageMeta", effectiveWidth, newVariant );
61
+
62
+ if (
63
+ !newVariant ||
64
+ !this.#imageVariant ||
65
+ newVariant.width > this.#imageVariant.width
66
+ ) {
67
+ this.#imageVariant = newVariant;
68
+
69
+ // Create and start loader here directly when variant changes
70
+ if (this.#imageLoader?.initial) {
71
+ this.#imageLoader.unload();
72
+ }
73
+
74
+ this.#imageLoader = new ImageLoader(newVariant);
75
+
76
+
77
+ this.#imageLoader.load();
78
+ }
79
+ }
80
+
81
+ get loaded() {
82
+ return this.#loaded;
83
+ }
84
+
85
+ get variant() {
86
+ return this.#imageVariant;
87
+ }
88
+
89
+ /**
90
+ * Get object URL that can be used as src parameter of an HTML image
91
+ *
92
+ * @note the objectURL should be revoked when no longer used
93
+ *
94
+ * @returns {string|null}
95
+ */
96
+ getObjectURL() {
97
+ // Example usage:
98
+ //
99
+ // $effect(() => {
100
+ // if (variantsLoader.loaded) {
101
+ // // @ts-ignore
102
+ // imageUrl = variantsLoader.getObjectURL();
103
+ // }
104
+
105
+ // return () => {
106
+ // if (imageUrl) {
107
+ // URL.revokeObjectURL(imageUrl);
108
+ // imageUrl = null;
109
+ // }
110
+ // };
111
+ // });
112
+
113
+ const blob = this.#imageLoader?.getBlob();
114
+
115
+ const url = blob ? URL.createObjectURL(blob) : null;
116
+
117
+ return url;
118
+ }
119
+
120
+ get progress() {
121
+ return this.#progress;
122
+ }
123
+
124
+ /**
125
+ * Get optimal image variant
126
+ *
127
+ * @param {number} containerWidth
128
+ *
129
+ * @returns {ImageMeta|null}
130
+ */
131
+ getOptimalImageMeta(containerWidth) {
132
+ if (!containerWidth) {
133
+ return null;
134
+ }
135
+
136
+ // Calculate the required width (container * DPR)
137
+ const requiredWidth = containerWidth * this.#devicePixelRatio;
138
+
139
+ const imagesMeta = this.#imagesMeta;
140
+
141
+ // Find the smallest image that's larger than our required width
142
+
143
+ const optimal = imagesMeta.find(
144
+ (current) => current.width >= requiredWidth
145
+ );
146
+
147
+ // Fall back to the largest image if nothing is big enough
148
+ return optimal || imagesMeta[imagesMeta.length - 1];
149
+ }
150
+ } // end class
@@ -1,4 +1,4 @@
1
- export { default as ImageLoader } from './ImageLoader.svelte.js';
2
- export { default as ImageVariantsLoader } from './ImageVariantsLoader.svelte.js';
3
-
4
- // export * from './constants.js';
1
+ export { default as ImageLoader } from './ImageLoader.svelte.js';
2
+ export { default as ImageVariantsLoader } from './ImageVariantsLoader.svelte.js';
3
+
4
+ // export * from './constants.js';
@@ -1,35 +1,35 @@
1
- import { CONTENT_TYPE, CONTENT_LENGTH } from '../../../constants/http/index.js';
2
-
3
- import { IMAGE_PNG } from '../../../constants/mime/image.js';
4
-
5
- /**
6
- * A minimal 1x1 black PNG encoded as base64
7
- * @constant {string}
8
- */
9
- const BASE64_PNG =
10
- 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg==';
11
-
12
- /**
13
- * Create a response value that can be used by a mocked
14
- * fetch function
15
- *
16
- * @returns {Response}
17
- */
18
- export function createPngResponse(/* data , options */) {
19
- // Convert base64 to binary
20
- const binaryString = atob(BASE64_PNG);
21
- const bytes = new Uint8Array(binaryString.length);
22
-
23
- for (let i = 0; i < binaryString.length; i++) {
24
- bytes[i] = binaryString.charCodeAt(i);
25
- }
26
-
27
- const response = new Response(bytes, {
28
- headers: new Headers({
29
- [CONTENT_TYPE]: IMAGE_PNG,
30
- [CONTENT_LENGTH]: String(bytes.length)
31
- })
32
- });
33
-
34
- return response;
35
- }
1
+ import { CONTENT_TYPE, CONTENT_LENGTH } from '../../../constants/http/index.js';
2
+
3
+ import { IMAGE_PNG } from '../../../constants/mime/image.js';
4
+
5
+ /**
6
+ * A minimal 1x1 black PNG encoded as base64
7
+ * @constant {string}
8
+ */
9
+ const BASE64_PNG =
10
+ 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg==';
11
+
12
+ /**
13
+ * Create a response value that can be used by a mocked
14
+ * fetch function
15
+ *
16
+ * @returns {Response}
17
+ */
18
+ export function createPngResponse(/* data , options */) {
19
+ // Convert base64 to binary
20
+ const binaryString = atob(BASE64_PNG);
21
+ const bytes = new Uint8Array(binaryString.length);
22
+
23
+ for (let i = 0; i < binaryString.length; i++) {
24
+ bytes[i] = binaryString.charCodeAt(i);
25
+ }
26
+
27
+ const response = new Response(bytes, {
28
+ headers: new Headers({
29
+ [CONTENT_TYPE]: IMAGE_PNG,
30
+ [CONTENT_LENGTH]: String(bytes.length)
31
+ })
32
+ });
33
+
34
+ return response;
35
+ }
@@ -1,8 +1,8 @@
1
- /**
2
- * @typedef {Object} ImageMeta
3
- * @property {string} src - URL of the image
4
- * @property {number} width - Width of the image
5
- * @property {number} height - Height of the image
6
- */
7
-
8
- export default {};
1
+ /**
2
+ * @typedef {Object} ImageMeta
3
+ * @property {string} src - URL of the image
4
+ * @property {number} width - Width of the image
5
+ * @property {number} height - Height of the image
6
+ */
7
+
8
+ export default {};
@@ -4,9 +4,9 @@
4
4
  * of sorted responsive image formats, so it should be the
5
5
  * largest image.
6
6
  *
7
- * @param {ImageMeta|ImageMeta[]} imageMeta
7
+ * @param {import('../../typedef.js').ImageSource} imageSource
8
8
  */
9
- export function toSingleImageMeta(imageMeta: ImageMeta | ImageMeta[]): import("../../typedef").ImageMeta;
9
+ export function toSingleImageMeta(imageSource: import("../../typedef.js").ImageSource): import("../../typedef.js").ImageMeta;
10
10
  /**
11
11
  * Calculate effective width based on container dimensions and fit mode
12
12
  *
@@ -1,86 +1,86 @@
1
- /**
2
- * Returns the unchanged image meta object or the last item of
3
- * an array of ImageMeta objects. This is assumed to be a list
4
- * of sorted responsive image formats, so it should be the
5
- * largest image.
6
- *
7
- * @param {ImageMeta|ImageMeta[]} imageMeta
8
- */
9
- export function toSingleImageMeta(imageMeta) {
10
- if (Array.isArray(imageMeta)) {
11
- if (!imageMeta.length) {
12
- throw new Error('List of ImageMeta objects is empty');
13
- }
14
- imageMeta = imageMeta[imageMeta.length - 1];
15
- }
16
-
17
- if (typeof imageMeta === 'object') {
18
- return imageMeta;
19
- } else if (!imageMeta) {
20
- throw new Error('Missing [imageMeta]');
21
- }
22
-
23
- throw new Error('Invalid value for parameter [imageMeta]');
24
- }
25
-
26
- /**
27
- * Calculate effective width based on container dimensions and fit mode
28
- *
29
- * @param {object} params
30
- * @param {number} [params.containerWidth] Container width in pixels
31
- * @param {number} [params.containerHeight] Container height in pixels
32
- * @param {number} params.imageAspectRatio Original image aspect ratio (width/height)
33
- * @param {'cover'|'contain'|'fill'} [params.fit='contain'] Fit mode
34
- * @returns {number} Effective width needed
35
- */
36
- export function calculateEffectiveWidth({
37
- containerWidth,
38
- containerHeight,
39
- imageAspectRatio,
40
- fit = 'contain'
41
- }) {
42
- if (containerWidth && !containerHeight) {
43
- // If only width is provided, use it
44
-
45
- return containerWidth;
46
- }
47
-
48
- if (!containerWidth && containerHeight) {
49
- // If only height is provided, calculate width based on aspect ratio
50
-
51
- return containerHeight * imageAspectRatio;
52
- }
53
-
54
- if (containerWidth && containerHeight) {
55
- // If both dimensions are provided, calculate based on fit mode
56
-
57
- const containerAspectRatio = containerWidth / containerHeight;
58
-
59
- switch (fit) {
60
- case 'fill':
61
- return containerWidth;
62
-
63
- case 'contain':
64
- if (containerAspectRatio > imageAspectRatio) {
65
- // Height constrained, scale width accordingly
66
-
67
- return containerHeight * imageAspectRatio;
68
- }
69
- return containerWidth;
70
-
71
- case 'cover':
72
- if (containerAspectRatio < imageAspectRatio) {
73
- // Height constrained, scale width accordingly
74
-
75
- return containerHeight * imageAspectRatio;
76
- }
77
- return containerWidth;
78
-
79
- default:
80
- return containerWidth;
81
- }
82
- }
83
-
84
- // Fallback if neither dimension is provided
85
- throw new Error('Either containerWidth or containerHeight must be provided');
86
- }
1
+ /**
2
+ * Returns the unchanged image meta object or the last item of
3
+ * an array of ImageMeta objects. This is assumed to be a list
4
+ * of sorted responsive image formats, so it should be the
5
+ * largest image.
6
+ *
7
+ * @param {import('../../typedef.js').ImageSource} imageSource
8
+ */
9
+ export function toSingleImageMeta(imageSource) {
10
+ if (Array.isArray(imageSource)) {
11
+ if (!imageSource.length) {
12
+ throw new Error('List of ImageMeta objects is empty');
13
+ }
14
+ imageSource = imageSource[imageSource.length - 1];
15
+ }
16
+
17
+ if (typeof imageSource === 'object') {
18
+ return imageSource;
19
+ } else if (!imageSource) {
20
+ throw new Error('Missing [imageSource]');
21
+ }
22
+
23
+ throw new Error('Invalid value for parameter [imageSource]');
24
+ }
25
+
26
+ /**
27
+ * Calculate effective width based on container dimensions and fit mode
28
+ *
29
+ * @param {object} params
30
+ * @param {number} [params.containerWidth] Container width in pixels
31
+ * @param {number} [params.containerHeight] Container height in pixels
32
+ * @param {number} params.imageAspectRatio Original image aspect ratio (width/height)
33
+ * @param {'cover'|'contain'|'fill'} [params.fit='contain'] Fit mode
34
+ * @returns {number} Effective width needed
35
+ */
36
+ export function calculateEffectiveWidth({
37
+ containerWidth,
38
+ containerHeight,
39
+ imageAspectRatio,
40
+ fit = 'contain'
41
+ }) {
42
+ if (containerWidth && !containerHeight) {
43
+ // If only width is provided, use it
44
+
45
+ return containerWidth;
46
+ }
47
+
48
+ if (!containerWidth && containerHeight) {
49
+ // If only height is provided, calculate width based on aspect ratio
50
+
51
+ return containerHeight * imageAspectRatio;
52
+ }
53
+
54
+ if (containerWidth && containerHeight) {
55
+ // If both dimensions are provided, calculate based on fit mode
56
+
57
+ const containerAspectRatio = containerWidth / containerHeight;
58
+
59
+ switch (fit) {
60
+ case 'fill':
61
+ return containerWidth;
62
+
63
+ case 'contain':
64
+ if (containerAspectRatio > imageAspectRatio) {
65
+ // Height constrained, scale width accordingly
66
+
67
+ return containerHeight * imageAspectRatio;
68
+ }
69
+ return containerWidth;
70
+
71
+ case 'cover':
72
+ if (containerAspectRatio < imageAspectRatio) {
73
+ // Height constrained, scale width accordingly
74
+
75
+ return containerHeight * imageAspectRatio;
76
+ }
77
+ return containerWidth;
78
+
79
+ default:
80
+ return containerWidth;
81
+ }
82
+ }
83
+
84
+ // Fallback if neither dimension is provided
85
+ throw new Error('Either containerWidth or containerHeight must be provided');
86
+ }
@@ -0,0 +1,5 @@
1
+ export { default as ImageLoader } from "./image/ImageLoader.svelte.js";
2
+ export { default as ImageScene } from "./image/ImageScene.svelte.js";
3
+ export { default as ImageVariantsLoader } from "./image/ImageVariantsLoader.svelte.js";
4
+ export * from "./image/utils/index.js";
5
+ export * from "./image/typedef.js";
@@ -0,0 +1,8 @@
1
+ export { default as ImageLoader } from './image/ImageLoader.svelte.js';
2
+ export { default as ImageScene } from './image/ImageScene.svelte.js';
3
+ export { default as ImageVariantsLoader } from './image/ImageVariantsLoader.svelte.js';
4
+
5
+ export * from './image/utils/index.js';
6
+ export * from './image/typedef.js';
7
+
8
+ // export * from './image/constants.js';