@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.
Files changed (428) 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 +15 -24
  6. package/dist/classes/data/IterableTree.js +242 -243
  7. package/dist/classes/data/Selector.js +190 -190
  8. package/dist/classes/data/index.js +2 -2
  9. package/dist/classes/data/typedef.d.ts +8 -0
  10. package/dist/classes/data/typedef.js +9 -0
  11. package/dist/classes/event-emitter/EventEmitter.js +273 -275
  12. package/dist/classes/event-emitter/index.js +2 -2
  13. package/dist/classes/index.js +4 -4
  14. package/dist/classes/promise/HkPromise.d.ts +18 -17
  15. package/dist/classes/promise/HkPromise.js +384 -377
  16. package/dist/classes/promise/index.js +1 -1
  17. package/dist/classes/stores/SubscribersCount.js +107 -107
  18. package/dist/classes/stores/index.js +1 -1
  19. package/dist/classes/streams/LogTransformStream.js +19 -19
  20. package/dist/classes/streams/ServerEventsStore.d.ts +2 -3
  21. package/dist/classes/streams/ServerEventsStore.js +111 -110
  22. package/dist/classes/streams/TimeStampSource.js +26 -26
  23. package/dist/classes/streams/index.js +3 -3
  24. package/dist/classes/svelte/finite-state-machine/FiniteStateMachine.svelte.js +133 -133
  25. package/dist/classes/svelte/finite-state-machine/index.js +1 -1
  26. package/dist/classes/svelte/index.d.ts +0 -8
  27. package/dist/classes/svelte/index.js +11 -14
  28. package/dist/classes/svelte/loading-state-machine/LoadingStateMachine.svelte.js +109 -109
  29. package/dist/classes/svelte/loading-state-machine/constants.js +16 -16
  30. package/dist/classes/svelte/loading-state-machine/index.js +3 -3
  31. package/dist/config/README.md +196 -0
  32. package/dist/config/{imagetools-config.js → generators/imagetools.js} +189 -189
  33. package/dist/config/generators/vite.d.ts +47 -0
  34. package/dist/config/generators/vite.js +142 -0
  35. package/dist/config/imagetools.d.ts +72 -72
  36. package/dist/config/vite.d.ts +1 -0
  37. package/dist/config/vite.js +5 -0
  38. package/dist/constants/bases/index.js +13 -13
  39. package/dist/constants/http/headers.js +6 -6
  40. package/dist/constants/http/index.js +2 -2
  41. package/dist/constants/http/methods.js +14 -14
  42. package/dist/constants/index.js +6 -6
  43. package/dist/constants/mime/application.js +5 -5
  44. package/dist/constants/mime/audio.js +13 -13
  45. package/dist/constants/mime/image.js +3 -3
  46. package/dist/constants/mime/index.js +4 -4
  47. package/dist/constants/mime/text.js +2 -2
  48. package/dist/constants/regexp/README.md +95 -0
  49. package/dist/constants/regexp/index.d.ts +1 -1
  50. package/dist/constants/regexp/index.js +31 -31
  51. package/dist/constants/regexp/inspiratie.js__ +95 -95
  52. package/dist/constants/regexp/text.d.ts +3 -3
  53. package/dist/constants/regexp/text.js +49 -49
  54. package/dist/constants/regexp/url.d.ts +1 -0
  55. package/dist/constants/regexp/url.js +3 -0
  56. package/dist/constants/regexp/user.d.ts +0 -1
  57. package/dist/constants/regexp/user.js +29 -33
  58. package/dist/constants/states/drag.js +6 -6
  59. package/dist/constants/states/drop.js +6 -6
  60. package/dist/constants/states/index.js +4 -4
  61. package/dist/constants/states/input.js +11 -11
  62. package/dist/constants/states/submit.js +4 -4
  63. package/dist/constants/time/index.js +28 -28
  64. package/dist/css/utilities.css +43 -43
  65. package/dist/design/README.md +405 -0
  66. package/dist/design/{design-config.js → config/design-config.js} +73 -73
  67. package/dist/{util/design-system/tailwind.js → design/generators/index.js} +288 -288
  68. package/dist/design/index.d.ts +8 -0
  69. package/dist/design/index.js +97 -0
  70. package/dist/{util/design-system → design/plugins}/skeleton.js +208 -208
  71. package/dist/design/tailwind-theme-extend.js +158 -158
  72. package/dist/design/themes/README.md +103 -0
  73. package/dist/{themes → design/themes}/hkdev/components/blocks/text-block.css +34 -34
  74. package/dist/{themes → design/themes}/hkdev/components/boxes/game-box.css +11 -11
  75. package/dist/{themes → design/themes}/hkdev/components/buttons/button-icon-steeze.css +22 -22
  76. package/dist/{themes → design/themes}/hkdev/components/buttons/button-text.css +32 -32
  77. package/dist/{themes → design/themes}/hkdev/components/buttons/button.css +146 -146
  78. package/dist/{themes → design/themes}/hkdev/components/buttons/skip-button.css +5 -5
  79. package/dist/{themes → design/themes}/hkdev/components/drag-drop/draggable.css +73 -73
  80. package/dist/{themes → design/themes}/hkdev/components/drag-drop/drop-zone.css +58 -58
  81. package/dist/{themes → design/themes}/hkdev/components/icons/icon-steeze.css +15 -15
  82. package/dist/{themes → design/themes}/hkdev/components/inputs/text-input.css +102 -102
  83. package/dist/{themes → design/themes}/hkdev/components/panels/panel.css +25 -25
  84. package/dist/{themes → design/themes}/hkdev/components/rows/panel-grid-row.css +4 -4
  85. package/dist/{themes → design/themes}/hkdev/components/rows/panel-row-2.css +5 -5
  86. package/dist/{themes → design/themes}/hkdev/components.css +29 -29
  87. package/dist/design/themes/hkdev/debug.css +2 -0
  88. package/dist/{themes → design/themes}/hkdev/global/layout.css +32 -32
  89. package/dist/{themes → design/themes}/hkdev/global/on-colors.css +32 -32
  90. package/dist/{themes → design/themes}/hkdev/globals.css +3 -3
  91. package/dist/{themes → design/themes}/hkdev/responsive.css +12 -12
  92. package/dist/{themes → design/themes}/hkdev/theme-ext.js +12 -12
  93. package/dist/{themes → design/themes}/hkdev/theme.css +218 -218
  94. package/dist/{util/design-system/css → design/utils}/clamp.js +66 -66
  95. package/dist/{util/design-system/css/root-design-vars.d.ts → design/utils/root-vars.d.ts} +2 -2
  96. package/dist/{util/design-system/css/root-design-vars.js → design/utils/root-vars.js} +102 -102
  97. package/dist/{util/design-system/layout → design/utils}/scaling.js +228 -228
  98. package/dist/{util/design-system/components → design/utils}/states.js +22 -22
  99. package/dist/errors/api.js +9 -9
  100. package/dist/errors/generic.js +20 -20
  101. package/dist/errors/http.js +16 -16
  102. package/dist/errors/index.d.ts +1 -0
  103. package/dist/errors/index.js +5 -4
  104. package/dist/errors/jwt.js +5 -5
  105. package/dist/errors/promise.d.ts +27 -0
  106. package/dist/errors/promise.js +26 -0
  107. package/dist/logging/index.js +7 -7
  108. package/dist/logging/internal/adapters/console.js +114 -114
  109. package/dist/logging/internal/adapters/index.js +2 -2
  110. package/dist/logging/internal/adapters/pino.d.ts +1 -0
  111. package/dist/logging/internal/adapters/pino.js +142 -115
  112. package/dist/logging/internal/adapters/typedef.d.ts +24 -0
  113. package/dist/logging/internal/adapters/typedef.js +10 -0
  114. package/dist/logging/internal/factories/client.js +21 -21
  115. package/dist/logging/internal/factories/server.js +22 -22
  116. package/dist/logging/internal/factories/universal.js +22 -22
  117. package/dist/logging/internal/unified-logger/Logger.js +217 -217
  118. package/dist/logging/internal/unified-logger/constants.js +22 -22
  119. package/dist/logging/internal/unified-logger/index.js +6 -6
  120. package/dist/logging/internal/unified-logger/typedef.js +17 -17
  121. package/dist/network/README.md +173 -0
  122. package/dist/{classes → network}/cache/IndexedDbCache.js +1407 -1407
  123. package/dist/{classes → network}/cache/MemoryResponseCache.js +138 -138
  124. package/dist/{classes → network}/cache/index.js +5 -5
  125. package/dist/{classes → network}/cache/typedef.js +41 -41
  126. package/dist/network/cache.d.ts +3 -0
  127. package/dist/network/cache.js +4 -0
  128. package/dist/{util → network}/http/caching.js +261 -263
  129. package/dist/{util → network}/http/errors.js +97 -97
  130. package/dist/{util → network}/http/headers.js +75 -75
  131. package/dist/{util → network}/http/http-request.js +578 -578
  132. package/dist/{util → network}/http/index.js +22 -22
  133. package/dist/{util → network}/http/json-request.js +224 -224
  134. package/dist/{util → network}/http/mocks.js +65 -65
  135. package/dist/{util → network}/http/response.js +318 -318
  136. package/dist/{util → network}/http/typedef.js +93 -93
  137. package/dist/{util → network}/http/url.js +52 -52
  138. package/dist/network/http.d.ts +6 -0
  139. package/dist/network/http.js +6 -0
  140. package/dist/network/loaders/README.md +255 -0
  141. package/dist/{classes/svelte → network/loaders}/audio/AudioLoader.svelte.d.ts +1 -1
  142. package/dist/{classes/svelte → network/loaders}/audio/AudioLoader.svelte.js +58 -58
  143. package/dist/{classes/svelte → network/loaders}/audio/AudioScene.svelte.js +324 -324
  144. package/dist/{classes/svelte → network/loaders}/audio/mocks.js +35 -35
  145. package/dist/network/loaders/audio.d.ts +2 -0
  146. package/dist/network/loaders/audio.js +2 -0
  147. package/dist/{classes/svelte → network/loaders}/image/ImageLoader.svelte.d.ts +3 -6
  148. package/dist/{classes/svelte → network/loaders}/image/ImageLoader.svelte.js +44 -45
  149. package/dist/{classes/svelte → network/loaders}/image/ImageScene.svelte.d.ts +5 -7
  150. package/dist/{classes/svelte → network/loaders}/image/ImageScene.svelte.js +248 -249
  151. package/dist/{classes/svelte → network/loaders}/image/ImageVariantsLoader.svelte.d.ts +4 -4
  152. package/dist/{classes/svelte → network/loaders}/image/ImageVariantsLoader.svelte.js +150 -152
  153. package/dist/{classes/svelte → network/loaders}/image/index.js +4 -4
  154. package/dist/{classes/svelte → network/loaders}/image/mocks.js +35 -35
  155. package/dist/{classes/svelte → network/loaders}/image/typedef.js +8 -8
  156. package/dist/{util/image → network/loaders/image/utils}/index.d.ts +2 -2
  157. package/dist/{util/image → network/loaders/image/utils}/index.js +86 -86
  158. package/dist/network/loaders/image.d.ts +5 -0
  159. package/dist/network/loaders/image.js +8 -0
  160. package/dist/{typedef/image.js → network/loaders/typedef.js} +38 -38
  161. package/dist/network/loaders.d.ts +2 -0
  162. package/dist/network/loaders.js +2 -0
  163. package/dist/{classes/svelte/network-loader → network/states}/NetworkLoader.svelte.d.ts +1 -1
  164. package/dist/{classes/svelte/network-loader → network/states}/NetworkLoader.svelte.js +338 -338
  165. package/dist/{classes/svelte/network-loader → network/states}/constants.js +3 -3
  166. package/dist/{classes/svelte/network-loader → network/states}/index.js +3 -3
  167. package/dist/{classes/svelte/network-loader → network/states}/mocks.js +30 -30
  168. package/dist/{classes/svelte/network-loader → network/states}/typedef.js +8 -8
  169. package/dist/network/typedef.d.ts +4 -0
  170. package/dist/network/typedef.js +10 -0
  171. package/dist/services/index.js +1 -1
  172. package/dist/services/internal/index.js +8 -8
  173. package/dist/services/internal/service-base/ServiceBase.js +462 -462
  174. package/dist/services/internal/service-base/constants.js +110 -110
  175. package/dist/services/internal/service-base/index.js +3 -3
  176. package/dist/services/internal/service-base/typedef.js +101 -101
  177. package/dist/services/internal/service-manager/ServiceManager.d.ts +2 -35
  178. package/dist/services/internal/service-manager/ServiceManager.js +608 -614
  179. package/dist/services/internal/service-manager/constants.js +6 -6
  180. package/dist/services/internal/service-manager/typedef.js +90 -90
  181. package/dist/states/index.js +1 -1
  182. package/dist/states/navigation.svelte.js +55 -55
  183. package/dist/stores/index.js +1 -1
  184. package/dist/stores/theme.js +80 -80
  185. package/dist/typedef/context.js +6 -6
  186. package/dist/typedef/drag.js +25 -25
  187. package/dist/typedef/drop.js +12 -12
  188. package/dist/typedef/index.d.ts +0 -1
  189. package/dist/typedef/index.js +4 -4
  190. package/dist/{components → ui/components}/button-group/ButtonGroup.svelte +82 -82
  191. package/dist/{components → ui/components}/button-group/typedef.js +10 -10
  192. package/dist/{components → ui/components}/compare-left-right/CompareLeftRight.svelte +179 -179
  193. package/dist/{components → ui/components}/compare-left-right/index.js +1 -1
  194. package/dist/{components → ui/components}/game-box/GameBox.svelte +577 -577
  195. package/dist/{components → ui/components}/game-box/gamebox.util.js +83 -83
  196. package/dist/ui/components/hk-app-layout/HkAppLayout.state.svelte.d.ts +6 -0
  197. package/dist/{components → ui/components}/hk-app-layout/HkAppLayout.state.svelte.js +25 -25
  198. package/dist/{components → ui/components}/hk-app-layout/HkAppLayout.svelte +251 -251
  199. package/dist/{components → ui/components}/image-box/ImageBox.svelte +210 -210
  200. package/dist/{components → ui/components}/image-box/ImageBox.svelte.d.ts +6 -6
  201. package/dist/ui/components/image-box/index.js +5 -0
  202. package/dist/{components → ui/components}/image-box/typedef.js +32 -32
  203. package/dist/{components → ui/components}/index.js +23 -23
  204. package/dist/{components → ui/components}/presenter/ImageSlide.svelte +64 -64
  205. package/dist/{components → ui/components}/presenter/ImageSlide.svelte.d.ts +2 -2
  206. package/dist/{components → ui/components}/presenter/Presenter.state.svelte.d.ts +1 -1
  207. package/dist/{components → ui/components}/presenter/Presenter.state.svelte.js +638 -638
  208. package/dist/{components → ui/components}/presenter/Presenter.svelte +142 -142
  209. package/dist/{components → ui/components}/presenter/constants.js +7 -7
  210. package/dist/{components → ui/components}/presenter/index.js +10 -10
  211. package/dist/{components → ui/components}/presenter/typedef.js +106 -106
  212. package/dist/{components → ui/components}/presenter/util.js +210 -210
  213. package/dist/{components → ui/components}/virtual-viewport/VirtualViewport.svelte +196 -196
  214. package/dist/{primitives → ui/primitives}/area/HkArea.svelte +49 -49
  215. package/dist/{primitives → ui/primitives}/area/HkGridArea.svelte +77 -77
  216. package/dist/{primitives → ui/primitives}/area/index.js +2 -2
  217. package/dist/{primitives → ui/primitives}/buttons/button/Button.svelte +82 -82
  218. package/dist/{primitives → ui/primitives}/buttons/button/Button.svelte.d.ts +1 -1
  219. package/dist/{primitives → ui/primitives}/buttons/button-icon-steeze/SteezeIconButton.svelte +30 -30
  220. package/dist/{primitives → ui/primitives}/buttons/button-text/TextButton.svelte +21 -21
  221. package/dist/{primitives → ui/primitives}/buttons/index.js +3 -3
  222. package/dist/{primitives → ui/primitives}/debug/debug-panel-design-scaling/DebugPanelDesignScaling.svelte +146 -146
  223. package/dist/{primitives → ui/primitives}/debug/index.js +1 -1
  224. package/dist/{primitives → ui/primitives}/drag-drop/DragController.js +44 -44
  225. package/dist/{primitives → ui/primitives}/drag-drop/DragDropContext.svelte +111 -111
  226. package/dist/{primitives → ui/primitives}/drag-drop/DragDropContext.svelte.d.ts +1 -1
  227. package/dist/{primitives → ui/primitives}/drag-drop/Draggable.svelte +519 -519
  228. package/dist/{primitives → ui/primitives}/drag-drop/Draggable.svelte.d.ts +1 -1
  229. package/dist/{primitives → ui/primitives}/drag-drop/DropZone.svelte +258 -258
  230. package/dist/{primitives → ui/primitives}/drag-drop/DropZone.svelte.d.ts +3 -3
  231. package/dist/{primitives → ui/primitives}/drag-drop/DropZoneArea.svelte +119 -119
  232. package/dist/{primitives → ui/primitives}/drag-drop/DropZoneArea.svelte.d.ts +3 -3
  233. package/dist/{primitives → ui/primitives}/drag-drop/DropZoneList.svelte +125 -125
  234. package/dist/{primitives → ui/primitives}/drag-drop/DropZoneList.svelte.d.ts +3 -3
  235. package/dist/{primitives → ui/primitives}/drag-drop/actions.js +26 -26
  236. package/dist/{primitives → ui/primitives}/drag-drop/drag-state.svelte.d.ts +11 -11
  237. package/dist/{primitives → ui/primitives}/drag-drop/drag-state.svelte.js +322 -322
  238. package/dist/{primitives → ui/primitives}/drag-drop/index.js +7 -7
  239. package/dist/{primitives → ui/primitives}/drag-drop/util.js +85 -85
  240. package/dist/{primitives → ui/primitives}/hkdev/blocks/TextBlock.svelte +46 -46
  241. package/dist/{primitives → ui/primitives}/hkdev/buttons/CheckButton.svelte +62 -62
  242. package/dist/{primitives → ui/primitives}/icons/HkIcon.svelte +86 -86
  243. package/dist/{primitives → ui/primitives}/icons/HkTabIcon.svelte +116 -116
  244. package/dist/{primitives → ui/primitives}/icons/SteezeIcon.svelte +97 -97
  245. package/dist/{primitives → ui/primitives}/icons/index.js +6 -6
  246. package/dist/{primitives → ui/primitives}/icons/typedef.js +16 -16
  247. package/dist/{primitives → ui/primitives}/index.js +2 -2
  248. package/dist/{primitives → ui/primitives}/inputs/index.js +1 -1
  249. package/dist/{primitives → ui/primitives}/inputs/text-input/TextInput.svelte +223 -223
  250. package/dist/{primitives → ui/primitives}/inputs/text-input/assets/IconInvalid.svelte +14 -14
  251. package/dist/{primitives → ui/primitives}/inputs/text-input/assets/IconValid.svelte +12 -12
  252. package/dist/{primitives → ui/primitives}/layout/grid-layers/GridLayers.svelte +63 -63
  253. package/dist/{primitives → ui/primitives}/layout/grid-layers/util.js +74 -74
  254. package/dist/{primitives → ui/primitives}/layout/index.js +1 -1
  255. package/dist/{primitives → ui/primitives}/panels/index.js +1 -1
  256. package/dist/{primitives → ui/primitives}/panels/panel/Panel.svelte +43 -43
  257. package/dist/{primitives → ui/primitives}/rows/index.js +3 -3
  258. package/dist/{primitives → ui/primitives}/rows/panel-grid-row/PanelGridRow.svelte +104 -104
  259. package/dist/{primitives → ui/primitives}/rows/panel-row-2/PanelRow2.svelte +40 -40
  260. package/dist/{primitives → ui/primitives}/tab-bar/HkTabBar.state.svelte.d.ts +3 -3
  261. package/dist/{primitives → ui/primitives}/tab-bar/HkTabBar.state.svelte.js +149 -149
  262. package/dist/{primitives → ui/primitives}/tab-bar/HkTabBar.svelte +74 -74
  263. package/dist/{primitives → ui/primitives}/tab-bar/HkTabBarSelector.state.svelte.d.ts +3 -3
  264. package/dist/{primitives → ui/primitives}/tab-bar/HkTabBarSelector.state.svelte.js +93 -93
  265. package/dist/{primitives → ui/primitives}/tab-bar/HkTabBarSelector.svelte +49 -49
  266. package/dist/{primitives → ui/primitives}/tab-bar/index.js +17 -17
  267. package/dist/{primitives → ui/primitives}/tab-bar/typedef.js +11 -11
  268. package/dist/util/array/index.js +436 -436
  269. package/dist/util/bases/base58.js +262 -262
  270. package/dist/util/bases/index.js +1 -1
  271. package/dist/util/compare/index.js +247 -247
  272. package/dist/util/css/css-vars.js +83 -83
  273. package/dist/util/css/index.js +1 -1
  274. package/dist/util/env/index.js +9 -9
  275. package/dist/util/exceptions/index.js +23 -23
  276. package/dist/util/expect/arrays.js +47 -47
  277. package/dist/util/expect/index.js +259 -259
  278. package/dist/util/expect/primitives.js +55 -55
  279. package/dist/util/expect/url.d.ts +6 -6
  280. package/dist/util/expect/url.js +60 -60
  281. package/dist/util/function/index.js +218 -218
  282. package/dist/util/geo/index.js +26 -26
  283. package/dist/util/index.d.ts +3 -1
  284. package/dist/util/index.js +7 -3
  285. package/dist/util/is/index.d.ts +15 -14
  286. package/dist/util/is/index.js +147 -140
  287. package/dist/util/iterate/index.d.ts +37 -69
  288. package/dist/util/iterate/index.js +204 -234
  289. package/dist/util/object/index.d.ts +38 -57
  290. package/dist/util/object/index.js +1345 -1361
  291. package/dist/util/singleton/index.js +97 -97
  292. package/dist/util/string/array-path.js +75 -75
  293. package/dist/util/string/convert.js +54 -54
  294. package/dist/util/string/fs.js +226 -226
  295. package/dist/util/string/index.js +5 -5
  296. package/dist/util/string/interpolate.js +61 -61
  297. package/dist/util/string/pad.js +10 -10
  298. package/dist/util/svelte/index.js +4 -4
  299. package/dist/util/svelte/loading/loading-tracker.svelte.js +108 -108
  300. package/dist/util/svelte/observe/index.js +49 -49
  301. package/dist/util/svelte/state-context/index.js +117 -117
  302. package/dist/util/svelte/wait/index.js +38 -38
  303. package/dist/util/sveltekit/index.js +1 -1
  304. package/dist/util/sveltekit/route-folders/index.js +101 -101
  305. package/dist/util/time/index.js +328 -323
  306. package/dist/util/unique/index.js +231 -249
  307. package/dist/valibot/README.md +50 -0
  308. package/dist/valibot/index.d.ts +4 -4
  309. package/dist/valibot/index.js +8 -9
  310. package/dist/valibot/{url.d.ts → parsers/url.d.ts} +13 -5
  311. package/dist/valibot/{url.js → parsers/url.js} +111 -95
  312. package/dist/valibot/{user.js → parsers/user.js} +23 -23
  313. package/dist/valibot/parsers.d.ts +2 -0
  314. package/dist/valibot/parsers.js +4 -0
  315. package/package.json +131 -133
  316. package/dist/components/hk-app-layout/HkAppLayout.state.svelte.d.ts +0 -6
  317. package/dist/components/image-box/index.js +0 -5
  318. package/dist/constants/regexp/web.d.ts +0 -1
  319. package/dist/constants/regexp/web.js +0 -3
  320. package/dist/primitives/inputs/text-input/TestTextInput.svelte__ +0 -102
  321. package/dist/primitives/inputs/text-input/TextInput.svelte___ +0 -83
  322. package/dist/primitives/layout/grid-layers/GridLayers.svelte__heightFrom__ +0 -372
  323. package/dist/schemas/index.d.ts +0 -1
  324. package/dist/schemas/index.js +0 -1
  325. package/dist/schemas/validate-url.d.ts +0 -30
  326. package/dist/schemas/validate-url.js +0 -180
  327. package/dist/themes/hkdev/debug.css +0 -2
  328. package/dist/themes/index.d.ts +0 -1
  329. package/dist/themes/index.js +0 -1
  330. package/dist/util/design-system/index.d.ts +0 -5
  331. package/dist/util/design-system/index.js +0 -5
  332. package/dist/util/http/test-data__/content-length-test-hkdigital-small.V4HfZyBQ.avif +0 -0
  333. package/dist/valibot/date.js__ +0 -10
  334. package/dist/zod/all.d.ts +0 -6
  335. package/dist/zod/all.js +0 -33
  336. package/dist/zod/generic.d.ts +0 -6
  337. package/dist/zod/generic.js +0 -11
  338. package/dist/zod/javascript.d.ts +0 -8
  339. package/dist/zod/javascript.js +0 -32
  340. package/dist/zod/user.d.ts +0 -9
  341. package/dist/zod/user.js +0 -16
  342. package/dist/zod/web.d.ts +0 -21
  343. package/dist/zod/web.js +0 -52
  344. /package/dist/config/{imagetools-config.d.ts → generators/imagetools.d.ts} +0 -0
  345. /package/dist/design/{design-config.d.ts → config/design-config.d.ts} +0 -0
  346. /package/dist/{util/design-system/tailwind.d.ts → design/generators/index.d.ts} +0 -0
  347. /package/dist/{util/design-system → design/plugins}/skeleton.d.ts +0 -0
  348. /package/dist/{themes → design/themes}/hkdev/theme-ext.d.ts +0 -0
  349. /package/dist/{util/design-system/css → design/utils}/clamp.d.ts +0 -0
  350. /package/dist/{util/design-system/layout → design/utils}/scaling.d.ts +0 -0
  351. /package/dist/{util/design-system/components → design/utils}/states.d.ts +0 -0
  352. /package/dist/{classes → network}/cache/IndexedDbCache.d.ts +0 -0
  353. /package/dist/{classes → network}/cache/MemoryResponseCache.d.ts +0 -0
  354. /package/dist/{classes → network}/cache/index.d.ts +0 -0
  355. /package/dist/{classes → network}/cache/typedef.d.ts +0 -0
  356. /package/dist/{util → network}/http/caching.d.ts +0 -0
  357. /package/dist/{util → network}/http/errors.d.ts +0 -0
  358. /package/dist/{util → network}/http/headers.d.ts +0 -0
  359. /package/dist/{util → network}/http/http-request.d.ts +0 -0
  360. /package/dist/{util → network}/http/index.d.ts +0 -0
  361. /package/dist/{util → network}/http/json-request.d.ts +0 -0
  362. /package/dist/{util → network}/http/mocks.d.ts +0 -0
  363. /package/dist/{util → network}/http/response.d.ts +0 -0
  364. /package/dist/{util → network}/http/typedef.d.ts +0 -0
  365. /package/dist/{util → network}/http/url.d.ts +0 -0
  366. /package/dist/{classes/svelte → network/loaders}/audio/AudioScene.svelte.d.ts +0 -0
  367. /package/dist/{classes/svelte → network/loaders}/audio/mocks.d.ts +0 -0
  368. /package/dist/{classes/svelte → network/loaders}/image/index.d.ts +0 -0
  369. /package/dist/{classes/svelte → network/loaders}/image/mocks.d.ts +0 -0
  370. /package/dist/{classes/svelte → network/loaders}/image/typedef.d.ts +0 -0
  371. /package/dist/{typedef/image.d.ts → network/loaders/typedef.d.ts} +0 -0
  372. /package/dist/{classes/svelte/network-loader → network/states}/constants.d.ts +0 -0
  373. /package/dist/{classes/svelte/network-loader → network/states}/index.d.ts +0 -0
  374. /package/dist/{classes/svelte/network-loader → network/states}/mocks.d.ts +0 -0
  375. /package/dist/{classes/svelte/network-loader → network/states}/typedef.d.ts +0 -0
  376. /package/dist/{components → ui/components}/button-group/ButtonGroup.svelte.d.ts +0 -0
  377. /package/dist/{components → ui/components}/button-group/typedef.d.ts +0 -0
  378. /package/dist/{components → ui/components}/compare-left-right/CompareLeftRight.svelte.d.ts +0 -0
  379. /package/dist/{components → ui/components}/compare-left-right/index.d.ts +0 -0
  380. /package/dist/{components → ui/components}/game-box/GameBox.svelte.d.ts +0 -0
  381. /package/dist/{components → ui/components}/game-box/gamebox.util.d.ts +0 -0
  382. /package/dist/{components → ui/components}/hk-app-layout/HkAppLayout.svelte.d.ts +0 -0
  383. /package/dist/{components → ui/components}/image-box/index.d.ts +0 -0
  384. /package/dist/{components → ui/components}/image-box/typedef.d.ts +0 -0
  385. /package/dist/{components → ui/components}/index.d.ts +0 -0
  386. /package/dist/{components → ui/components}/presenter/Presenter.svelte.d.ts +0 -0
  387. /package/dist/{components → ui/components}/presenter/constants.d.ts +0 -0
  388. /package/dist/{components → ui/components}/presenter/index.d.ts +0 -0
  389. /package/dist/{components → ui/components}/presenter/typedef.d.ts +0 -0
  390. /package/dist/{components → ui/components}/presenter/util.d.ts +0 -0
  391. /package/dist/{components → ui/components}/virtual-viewport/VirtualViewport.svelte.d.ts +0 -0
  392. /package/dist/{primitives → ui/primitives}/area/HkArea.svelte.d.ts +0 -0
  393. /package/dist/{primitives → ui/primitives}/area/HkGridArea.svelte.d.ts +0 -0
  394. /package/dist/{primitives → ui/primitives}/area/index.d.ts +0 -0
  395. /package/dist/{primitives → ui/primitives}/buttons/button-icon-steeze/SteezeIconButton.svelte.d.ts +0 -0
  396. /package/dist/{primitives → ui/primitives}/buttons/button-text/TextButton.svelte.d.ts +0 -0
  397. /package/dist/{primitives → ui/primitives}/buttons/index.d.ts +0 -0
  398. /package/dist/{primitives → ui/primitives}/debug/debug-panel-design-scaling/DebugPanelDesignScaling.svelte.d.ts +0 -0
  399. /package/dist/{primitives → ui/primitives}/debug/index.d.ts +0 -0
  400. /package/dist/{primitives → ui/primitives}/drag-drop/DragController.d.ts +0 -0
  401. /package/dist/{primitives → ui/primitives}/drag-drop/actions.d.ts +0 -0
  402. /package/dist/{primitives → ui/primitives}/drag-drop/index.d.ts +0 -0
  403. /package/dist/{primitives → ui/primitives}/drag-drop/util.d.ts +0 -0
  404. /package/dist/{primitives → ui/primitives}/hkdev/blocks/TextBlock.svelte.d.ts +0 -0
  405. /package/dist/{primitives → ui/primitives}/hkdev/buttons/CheckButton.svelte.d.ts +0 -0
  406. /package/dist/{primitives → ui/primitives}/icons/HkIcon.svelte.d.ts +0 -0
  407. /package/dist/{primitives → ui/primitives}/icons/HkTabIcon.svelte.d.ts +0 -0
  408. /package/dist/{primitives → ui/primitives}/icons/SteezeIcon.svelte.d.ts +0 -0
  409. /package/dist/{primitives → ui/primitives}/icons/index.d.ts +0 -0
  410. /package/dist/{primitives → ui/primitives}/icons/typedef.d.ts +0 -0
  411. /package/dist/{primitives → ui/primitives}/index.d.ts +0 -0
  412. /package/dist/{primitives → ui/primitives}/inputs/index.d.ts +0 -0
  413. /package/dist/{primitives → ui/primitives}/inputs/text-input/TextInput.svelte.d.ts +0 -0
  414. /package/dist/{primitives → ui/primitives}/inputs/text-input/assets/IconInvalid.svelte.d.ts +0 -0
  415. /package/dist/{primitives → ui/primitives}/inputs/text-input/assets/IconValid.svelte.d.ts +0 -0
  416. /package/dist/{primitives → ui/primitives}/layout/grid-layers/GridLayers.svelte.d.ts +0 -0
  417. /package/dist/{primitives → ui/primitives}/layout/grid-layers/util.d.ts +0 -0
  418. /package/dist/{primitives → ui/primitives}/layout/index.d.ts +0 -0
  419. /package/dist/{primitives → ui/primitives}/panels/index.d.ts +0 -0
  420. /package/dist/{primitives → ui/primitives}/panels/panel/Panel.svelte.d.ts +0 -0
  421. /package/dist/{primitives → ui/primitives}/rows/index.d.ts +0 -0
  422. /package/dist/{primitives → ui/primitives}/rows/panel-grid-row/PanelGridRow.svelte.d.ts +0 -0
  423. /package/dist/{primitives → ui/primitives}/rows/panel-row-2/PanelRow2.svelte.d.ts +0 -0
  424. /package/dist/{primitives → ui/primitives}/tab-bar/HkTabBar.svelte.d.ts +0 -0
  425. /package/dist/{primitives → ui/primitives}/tab-bar/HkTabBarSelector.svelte.d.ts +0 -0
  426. /package/dist/{primitives → ui/primitives}/tab-bar/index.d.ts +0 -0
  427. /package/dist/{primitives → ui/primitives}/tab-bar/typedef.d.ts +0 -0
  428. /package/dist/valibot/{user.d.ts → parsers/user.d.ts} +0 -0
@@ -0,0 +1,196 @@
1
+ # Config
2
+
3
+ Reusable configuration generators for HKdigital projects.
4
+
5
+ ## Vite Configuration
6
+
7
+ The `vite.js` provides generators for common Vite setups used across HKdigital projects.
8
+
9
+ ### Quick Start
10
+
11
+ ```javascript
12
+ // vite.config.js
13
+ import { defineConfig } from 'vitest/config';
14
+ import { sveltekit } from '@sveltejs/kit/vite';
15
+ import { generateViteConfig } from '@hkdigital/lib-sveltekit/config/vite.js';
16
+
17
+ export default defineConfig(
18
+ await generateViteConfig({
19
+ enableImagetools: true
20
+ })
21
+ );
22
+ ```
23
+
24
+ ### Functions
25
+
26
+ #### `generateViteConfig(options)`
27
+
28
+ Generates a complete Vite configuration with HKdigital defaults.
29
+
30
+ **Options:**
31
+ - `enableImagetools` (boolean, default: `true`) - Include vite-imagetools plugin
32
+ - `enableVitest` (boolean, default: `true`) - Include Vitest test configuration
33
+ - `customDefines` (object, default: `{}`) - Additional define values
34
+ - `customPlugins` (array, default: `[]`) - Additional Vite plugins
35
+ - `imagetoolsOptions` (object, default: `{}`) - Options passed to imagetools config
36
+ - `packageJsonPath` (string, default: `'./package.json'`) - Path to package.json
37
+
38
+ **Built-in defines:**
39
+ - `import.meta.env.VITE_APP_VERSION` - Version from package.json
40
+ - `import.meta.env.VITE_BUILD_TIMESTAMP` - Build timestamp
41
+
42
+ **Example:**
43
+ ```javascript
44
+ export default defineConfig(
45
+ await generateViteConfig({
46
+ enableImagetools: true,
47
+ enableVitest: true,
48
+ customDefines: {
49
+ 'import.meta.env.VITE_API_URL': JSON.stringify('https://api.example.com')
50
+ },
51
+ imagetoolsOptions: {
52
+ widths: [640, 1024, 1536, 1920]
53
+ }
54
+ })
55
+ );
56
+ ```
57
+
58
+ #### `generateViteDefines(options)`
59
+
60
+ Generates only the define configuration (no plugins).
61
+
62
+ **Options:**
63
+ - `packageJsonPath` (string, default: `'./package.json'`) - Path to package.json
64
+ - `customDefines` (object, default: `{}`) - Additional define values
65
+
66
+ **Example:**
67
+ ```javascript
68
+ export default defineConfig({
69
+ plugins: [sveltekit()],
70
+ define: generateViteDefines({
71
+ customDefines: {
72
+ 'import.meta.env.VITE_API_URL': JSON.stringify(process.env.API_URL)
73
+ }
74
+ })
75
+ });
76
+ ```
77
+
78
+ #### `generateVitestConfig(options)`
79
+
80
+ Generates only the Vitest test configuration.
81
+
82
+ **Options:**
83
+ - `additionalPatterns` (array, default: `[]`) - Additional test file patterns
84
+
85
+ **Example:**
86
+ ```javascript
87
+ export default defineConfig({
88
+ plugins: [sveltekit()],
89
+ test: generateVitestConfig({
90
+ additionalPatterns: ['tests/**/*.integration.js']
91
+ })
92
+ });
93
+ ```
94
+
95
+ ## Imagetools Configuration
96
+
97
+ When `enableImagetools: true`, the following dependencies are required in your project:
98
+
99
+ ```bash
100
+ pnpm add -D vite-imagetools
101
+ ```
102
+
103
+ ### TypeScript Support
104
+
105
+ For TypeScript and JavaScript projects using VS Code or other TypeScript-aware editors, add to your `app.d.ts`:
106
+
107
+ ```typescript
108
+ import '@hkdigital/lib-sveltekit/config/imagetools.d.ts';
109
+ ```
110
+
111
+ **Why this is needed:**
112
+ - Provides type definitions for image imports with query parameters (e.g., `hero.jpg?preset=photo`)
113
+ - Enables IntelliSense and autocompletion for imagetools directives in your editor
114
+ - Prevents TypeScript errors when importing processed images
115
+ - Works for both TypeScript and JavaScript projects (VS Code uses TypeScript for JS intellisense)
116
+
117
+ **What it enables:**
118
+ ```javascript
119
+ // These imports will have proper typing and editor support
120
+ import heroImage from '$lib/assets/hero.jpg?preset=photo';
121
+ import heroResponsive from '$lib/assets/hero.jpg?preset=photo&responsive';
122
+ ```
123
+
124
+ ### Image Usage
125
+
126
+ With imagetools enabled, you can use images with processing directives:
127
+
128
+ ```javascript
129
+ // Basic usage
130
+ import heroImage from '$lib/assets/hero.jpg?preset=photo';
131
+
132
+ // Responsive images
133
+ import heroResponsive from '$lib/assets/hero.jpg?preset=photo&responsive';
134
+ ```
135
+
136
+ **Available presets:**
137
+ - `default` - AVIF format, 90% quality
138
+ - `photo` - JPG format, 95% quality, returns metadata
139
+ - `render` - JPG format, 95% quality, returns metadata
140
+ - `gradient` - JPG format, 95% quality, returns metadata
141
+ - `drawing` - AVIF format, 90% quality, returns metadata
142
+ - `savedata` - AVIF format, 85% quality, returns metadata
143
+ - `blur` - AVIF format, 50% quality with blur effect, returns metadata
144
+
145
+ ## Migration from Direct Config
146
+
147
+ ### Before
148
+ ```javascript
149
+ // vite.config.js
150
+ import { defineConfig } from 'vitest/config';
151
+ import { sveltekit } from '@sveltejs/kit/vite';
152
+ import { imagetools } from 'vite-imagetools';
153
+ import { readFileSync } from 'fs';
154
+ import { resolve } from 'path';
155
+
156
+ import {
157
+ generateDefaultDirectives,
158
+ generateResponseConfigs
159
+ } from '@hkdigital/lib-sveltekit/config/imagetools-config.js';
160
+
161
+ const packageJson = JSON.parse(
162
+ readFileSync(resolve('./package.json'), 'utf-8')
163
+ );
164
+
165
+ export default defineConfig({
166
+ plugins: [
167
+ sveltekit(),
168
+ imagetools({
169
+ defaultDirectives: generateDefaultDirectives(),
170
+ resolveConfigs: generateResponseConfigs()
171
+ })
172
+ ],
173
+ define: {
174
+ 'import.meta.env.VITE_APP_VERSION': JSON.stringify(packageJson.version),
175
+ 'import.meta.env.VITE_BUILD_TIMESTAMP': JSON.stringify(new Date().toISOString())
176
+ },
177
+ test: {
178
+ include: [
179
+ 'src/**/*.{test,spec}.{js,ts}',
180
+ 'src/**/*.svelte.{test,spec}.{js,ts}'
181
+ ]
182
+ }
183
+ });
184
+ ```
185
+
186
+ ### After
187
+ ```javascript
188
+ // vite.config.js
189
+ import { defineConfig } from 'vitest/config';
190
+ import { sveltekit } from '@sveltejs/kit/vite';
191
+ import { generateViteConfig } from '@hkdigital/lib-sveltekit/config/vite.js';
192
+
193
+ export default defineConfig(
194
+ await generateViteConfig()
195
+ );
196
+ ```
@@ -1,189 +1,189 @@
1
- const DEFAULT_WIDTHS = [640, 1024, 1536, 1920];
2
-
3
- const DEFAULT_PRESETS = {
4
- default: {
5
- format: 'avif',
6
- quality: '90'
7
- },
8
- render: {
9
- format: 'jpg',
10
- quality: '95',
11
- as: 'metadata'
12
- },
13
- photo: {
14
- format: 'jpg',
15
- quality: '95',
16
- as: 'metadata'
17
- },
18
- gradient: {
19
- format: 'jpg',
20
- quality: '95',
21
- as: 'metadata'
22
- },
23
- drawing: {
24
- format: 'avif',
25
- quality: '90',
26
- as: 'metadata'
27
- },
28
- savedata: {
29
- format: 'avif',
30
- quality: '85',
31
- as: 'metadata'
32
- },
33
- blur: {
34
- format: 'avif',
35
- quality: '50',
36
- blur: '75',
37
- as: 'metadata'
38
- }
39
- };
40
-
41
- /**
42
- * Configures and returns a function that can be used as
43
- * 'resolveConfigs' parameter in imagetools config
44
- *
45
- * @param {object} [options]
46
- * @param {number[]} [options.widths=DEFAULT_WIDTHS]
47
- *
48
- * @returns {(
49
- * entries: [string, string[]][]
50
- * ) => (Record<string, string | string[]>[])}
51
- */
52
- export function generateResponseConfigs(options) {
53
- //
54
- // @see https://github.com/JonasKruckenberg/imagetools
55
- // /blob/main/docs/core/src/functions/resolveConfigs.md
56
- //
57
- return function resolveConfigs(entries /*, outputFormats*/) {
58
- // console.log('resolveConfigs:entries', entries);
59
-
60
- /** @type {Record<string, string | string[]>} */
61
- const configPairs = {};
62
-
63
- for (const current of entries) {
64
- const key = current[0];
65
- const value = current[1][0];
66
-
67
- // @ts-ignore
68
- configPairs[key] = value;
69
- }
70
-
71
- // @ts-ignore
72
- const responsiveConfig = entries.find(([key]) => key === 'responsive');
73
-
74
- if (!responsiveConfig) {
75
- // Directive 'responsive' was not set => return original config
76
-
77
- return [configPairs];
78
-
79
- // Alternative: by returning undefined, the default resolveConfig is used
80
- // return undefined;
81
- }
82
-
83
- const widths = options?.widths ?? DEFAULT_WIDTHS;
84
-
85
- return widths.map((w) => {
86
- return { ...configPairs, w: String(w) };
87
- });
88
- };
89
- }
90
-
91
- /**
92
- * Configures and returns a function that can be used as
93
- * 'defaultDirectives' parameter in imagetools config
94
- *
95
- * - This function runs before 'resolveConfigs'
96
- *
97
- * @param {object} [options]
98
- * @param {number[]} [options.presets=DEFAULT_PRESETS]
99
- */
100
- export function generateDefaultDirectives(options) {
101
- /**
102
- * Function that sets a.o. format and quality directives if
103
- * the 'preset' driective is set
104
- *
105
- * @param {URL} url
106
- */
107
- return function defaultDirectives(url) {
108
- // Check the directive in the URL to determine which preset to use
109
- const params = url.searchParams;
110
-
111
- let presetName = params.get('preset');
112
-
113
- // > Return metadata if directive 'responsive' is set
114
-
115
- if (params.has('responsive')) {
116
- params.set('as', 'metadata');
117
- }
118
-
119
- // > Process presets
120
-
121
- if (presetName) {
122
- params.delete('preset');
123
- } else {
124
- presetName = 'default';
125
- }
126
-
127
- const presets = options?.presets || DEFAULT_PRESETS;
128
-
129
- // @ts-ignore
130
- let preset = presets[presetName];
131
-
132
- // console.log(`defaultDirectives [url=${url}]`, preset);
133
-
134
- if (!preset) {
135
- preset = DEFAULT_PRESETS.default;
136
- }
137
-
138
- for (const key in preset) {
139
- params.set(key, preset[key]);
140
- }
141
-
142
- // TODO: process directive 'w''
143
- // - generate only allowed widths
144
- // - support width presets such as 'hd'
145
-
146
- // let width = params.get('w');
147
-
148
- // if (!width) {
149
- // // Set max allowed width by default
150
- // // width = 'hd';
151
- // }
152
-
153
- // let presets = {
154
- // sm: '640',
155
- // md: '1024',
156
- // lg: '1536',
157
- // hd: '1920'
158
- // };
159
-
160
- // // @ts-ignore
161
- // let presetWidth = presets[width];
162
- // console.log({ width, presetWidth });
163
-
164
- // if (presetWidth) {
165
- // params.set('w', presetWidth);
166
- // } else if (responsive || width === null) {
167
- // params.set('as', 'metadata');
168
- // params.delete('w');
169
- // // } else if (width === null) {
170
- // // // Set largest size is width parameter is missing
171
- // // params.set('w', presets.hd);
172
- // } else {
173
- // throw new Error(
174
- // `Directive [w=${width}] is should be a preset value {sm,md,lg,hd,responsive}`
175
- // );
176
-
177
- // // let allowedWidths = new Set(['640', '1024', '1536', '1920']);
178
- // // if (!allowedWidths.has(width)) {
179
- // // throw new Error(`Width [${width}] is not in list of allowed widths`);
180
- // // }
181
- // }
182
-
183
- // params.set('withoutEnlargement', 'true');
184
-
185
- // console.log('defaultDirectives:output params', params);
186
-
187
- return params;
188
- };
189
- }
1
+ const DEFAULT_WIDTHS = [640, 1024, 1536, 1920];
2
+
3
+ const DEFAULT_PRESETS = {
4
+ default: {
5
+ format: 'avif',
6
+ quality: '90'
7
+ },
8
+ render: {
9
+ format: 'jpg',
10
+ quality: '95',
11
+ as: 'metadata'
12
+ },
13
+ photo: {
14
+ format: 'jpg',
15
+ quality: '95',
16
+ as: 'metadata'
17
+ },
18
+ gradient: {
19
+ format: 'jpg',
20
+ quality: '95',
21
+ as: 'metadata'
22
+ },
23
+ drawing: {
24
+ format: 'avif',
25
+ quality: '90',
26
+ as: 'metadata'
27
+ },
28
+ savedata: {
29
+ format: 'avif',
30
+ quality: '85',
31
+ as: 'metadata'
32
+ },
33
+ blur: {
34
+ format: 'avif',
35
+ quality: '50',
36
+ blur: '75',
37
+ as: 'metadata'
38
+ }
39
+ };
40
+
41
+ /**
42
+ * Configures and returns a function that can be used as
43
+ * 'resolveConfigs' parameter in imagetools config
44
+ *
45
+ * @param {object} [options]
46
+ * @param {number[]} [options.widths=DEFAULT_WIDTHS]
47
+ *
48
+ * @returns {(
49
+ * entries: [string, string[]][]
50
+ * ) => (Record<string, string | string[]>[])}
51
+ */
52
+ export function generateResponseConfigs(options) {
53
+ //
54
+ // @see https://github.com/JonasKruckenberg/imagetools
55
+ // /blob/main/docs/core/src/functions/resolveConfigs.md
56
+ //
57
+ return function resolveConfigs(entries /*, outputFormats*/) {
58
+ // console.log('resolveConfigs:entries', entries);
59
+
60
+ /** @type {Record<string, string | string[]>} */
61
+ const configPairs = {};
62
+
63
+ for (const current of entries) {
64
+ const key = current[0];
65
+ const value = current[1][0];
66
+
67
+ // @ts-ignore
68
+ configPairs[key] = value;
69
+ }
70
+
71
+ // @ts-ignore
72
+ const responsiveConfig = entries.find(([key]) => key === 'responsive');
73
+
74
+ if (!responsiveConfig) {
75
+ // Directive 'responsive' was not set => return original config
76
+
77
+ return [configPairs];
78
+
79
+ // Alternative: by returning undefined, the default resolveConfig is used
80
+ // return undefined;
81
+ }
82
+
83
+ const widths = options?.widths ?? DEFAULT_WIDTHS;
84
+
85
+ return widths.map((w) => {
86
+ return { ...configPairs, w: String(w) };
87
+ });
88
+ };
89
+ }
90
+
91
+ /**
92
+ * Configures and returns a function that can be used as
93
+ * 'defaultDirectives' parameter in imagetools config
94
+ *
95
+ * - This function runs before 'resolveConfigs'
96
+ *
97
+ * @param {object} [options]
98
+ * @param {number[]} [options.presets=DEFAULT_PRESETS]
99
+ */
100
+ export function generateDefaultDirectives(options) {
101
+ /**
102
+ * Function that sets a.o. format and quality directives if
103
+ * the 'preset' driective is set
104
+ *
105
+ * @param {URL} url
106
+ */
107
+ return function defaultDirectives(url) {
108
+ // Check the directive in the URL to determine which preset to use
109
+ const params = url.searchParams;
110
+
111
+ let presetName = params.get('preset');
112
+
113
+ // > Return metadata if directive 'responsive' is set
114
+
115
+ if (params.has('responsive')) {
116
+ params.set('as', 'metadata');
117
+ }
118
+
119
+ // > Process presets
120
+
121
+ if (presetName) {
122
+ params.delete('preset');
123
+ } else {
124
+ presetName = 'default';
125
+ }
126
+
127
+ const presets = options?.presets || DEFAULT_PRESETS;
128
+
129
+ // @ts-ignore
130
+ let preset = presets[presetName];
131
+
132
+ // console.log(`defaultDirectives [url=${url}]`, preset);
133
+
134
+ if (!preset) {
135
+ preset = DEFAULT_PRESETS.default;
136
+ }
137
+
138
+ for (const key in preset) {
139
+ params.set(key, preset[key]);
140
+ }
141
+
142
+ // TODO: process directive 'w''
143
+ // - generate only allowed widths
144
+ // - support width presets such as 'hd'
145
+
146
+ // let width = params.get('w');
147
+
148
+ // if (!width) {
149
+ // // Set max allowed width by default
150
+ // // width = 'hd';
151
+ // }
152
+
153
+ // let presets = {
154
+ // sm: '640',
155
+ // md: '1024',
156
+ // lg: '1536',
157
+ // hd: '1920'
158
+ // };
159
+
160
+ // // @ts-ignore
161
+ // let presetWidth = presets[width];
162
+ // console.log({ width, presetWidth });
163
+
164
+ // if (presetWidth) {
165
+ // params.set('w', presetWidth);
166
+ // } else if (responsive || width === null) {
167
+ // params.set('as', 'metadata');
168
+ // params.delete('w');
169
+ // // } else if (width === null) {
170
+ // // // Set largest size is width parameter is missing
171
+ // // params.set('w', presets.hd);
172
+ // } else {
173
+ // throw new Error(
174
+ // `Directive [w=${width}] is should be a preset value {sm,md,lg,hd,responsive}`
175
+ // );
176
+
177
+ // // let allowedWidths = new Set(['640', '1024', '1536', '1920']);
178
+ // // if (!allowedWidths.has(width)) {
179
+ // // throw new Error(`Width [${width}] is not in list of allowed widths`);
180
+ // // }
181
+ // }
182
+
183
+ // params.set('withoutEnlargement', 'true');
184
+
185
+ // console.log('defaultDirectives:output params', params);
186
+
187
+ return params;
188
+ };
189
+ }
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Generates a Vite configuration object with common HKdigital settings
3
+ *
4
+ * @param {object} [options] Configuration options
5
+ * @param {boolean} [options.enableImagetools=true] Enable vite-imagetools plugin
6
+ * @param {boolean} [options.enableVitest=true] Include Vitest configuration
7
+ * @param {boolean} [options.enableSvelteKit=true] Enable SvelteKit plugin
8
+ * @param {object} [options.customDefines={}] Additional define values
9
+ * @param {Array} [options.customPlugins=[]] Additional Vite plugins
10
+ * @param {object} [options.imagetoolsOptions={}] Options for imagetools config
11
+ * @param {string} [options.packageJsonPath='./package.json'] Path to package.json
12
+ *
13
+ * @returns {Promise<object>} Vite configuration object
14
+ */
15
+ export function generateViteConfig(options?: {
16
+ enableImagetools?: boolean;
17
+ enableVitest?: boolean;
18
+ enableSvelteKit?: boolean;
19
+ customDefines?: object;
20
+ customPlugins?: any[];
21
+ imagetoolsOptions?: object;
22
+ packageJsonPath?: string;
23
+ }): Promise<object>;
24
+ /**
25
+ * Generates build-time defines for Vite
26
+ *
27
+ * @param {object} [options] Configuration options
28
+ * @param {string} [options.packageJsonPath='./package.json'] Path to package.json
29
+ * @param {object} [options.customDefines={}] Additional define values
30
+ *
31
+ * @returns {object} Define configuration object
32
+ */
33
+ export function generateViteDefines(options?: {
34
+ packageJsonPath?: string;
35
+ customDefines?: object;
36
+ }): object;
37
+ /**
38
+ * Generates Vitest configuration
39
+ *
40
+ * @param {object} [options] Configuration options
41
+ * @param {string[]} [options.additionalPatterns=[]] Additional test patterns
42
+ *
43
+ * @returns {object} Vitest configuration object
44
+ */
45
+ export function generateVitestConfig(options?: {
46
+ additionalPatterns?: string[];
47
+ }): object;