@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,102 +1,102 @@
1
- import { getRootCssVar } from '../../css/css-vars.js';
2
-
3
- /**
4
- * Generates a complete HTML style tag with CSS custom properties for
5
- * the design system based on provided configuration.
6
- *
7
- * @param {Object} design - Design dimensions configuration
8
- * @param {number} design.width - The design width in pixels
9
- * @param {number} design.height - The design height in pixels
10
- * @param {Object} clamping - Scaling configuration parameters
11
- * @param {Object} clamping.ui - UI clamping configuration
12
- * @param {number} clamping.ui.min - Minimum UI scaling factor
13
- * @param {number} clamping.ui.max - Maximum UI scaling factor
14
- * @param {Object} clamping.textBase - Base text scaling configuration
15
- * @param {number} clamping.textBase.min - Minimum base text scaling
16
- * @param {number} clamping.textBase.max - Maximum base text scaling
17
- * @param {Object} clamping.textHeading - Heading text clamping configuration
18
- * @param {number} clamping.textHeading.min - Minimum heading text scaling
19
- * @param {number} clamping.textHeading.max - Maximum heading text scaling
20
- * @param {Object} clamping.textUi - UI text clamping configuration
21
- * @param {number} clamping.textUi.min - Minimum UI text scaling
22
- * @param {number} clamping.textUi.max - Maximum UI text scaling
23
- *
24
- * @returns {string} Complete HTML style tag with design system CSS variables
25
- *
26
- * @example
27
- * // +layout.svelte
28
- * <script>
29
- * import { DESIGN, CLAMPING } from '../../../tailwind/extend/clamping/config.js';
30
- *
31
- * import { rootDesignVarsHTML } from '../index.js';
32
- * </script>
33
- *
34
- * <svelte:head>
35
- * {@html rootDesignVarsHTML(DESIGN, CLAMPING)}
36
- * </svelte:head>
37
- *
38
- * // Generates style tag for use in svelte:head
39
- * // <style>:root { --design-width: 1920; ... }</style>
40
- */
41
- export function rootDesignVarsHTML(design, clamping) {
42
- return `<style>:root {
43
- /* Design dimensions */
44
- --design-width: ${design.width};
45
- --design-height: ${design.height};
46
-
47
- /* Scaling factors */
48
- --scale-w: 1;
49
- --scale-h: 1;
50
-
51
- /* --scale-viewport: min(var(--scale-w), var(--scale-h)); */
52
- --scale-viewport: 1;
53
-
54
- /* Base clamping units */
55
- --scale-ui: clamp(${clamping.ui.min}, var(--scale-viewport), ${clamping.ui.max});
56
- --scale-text-base: clamp(${clamping.textBase.min}, var(--scale-viewport), ${clamping.textBase.max});
57
- --scale-text-heading: clamp(${clamping.textHeading.min}, var(--scale-viewport), ${clamping.textHeading.max});
58
- --scale-text-ui: clamp(${clamping.textUi.min}, var(--scale-viewport), ${clamping.textUi.max});
59
- }</style>`;
60
- }
61
-
62
- /**
63
- * Get design width from CSS variables
64
- *
65
- * @returns {number} Design width
66
- */
67
- export function getRootCssDesignWidth() {
68
- return getRootCssVar('design-width');
69
- }
70
-
71
- /**
72
- * Get design height from CSS variables
73
- *
74
- * @returns {number} Design height
75
- */
76
- export function getRootCssDesignHeight() {
77
- return getRootCssVar('design-height');
78
- }
79
-
80
- /**
81
- * Retrieves all current scaling factors from CSS variables
82
- *
83
- * @returns {Object} An object containing all scaling factors
84
- */
85
- export function getAllRootScalingVars() {
86
- const styles = getComputedStyle(document.documentElement);
87
-
88
- return {
89
- scaleW: parseFloat(styles.getPropertyValue('--scale-w').trim()) || 0,
90
- scaleH: parseFloat(styles.getPropertyValue('--scale-h').trim()) || 0,
91
- scaleViewport:
92
- parseFloat(styles.getPropertyValue('--scale-viewport').trim()) || 0,
93
-
94
- scaleUI: parseFloat(styles.getPropertyValue('--scale-ui').trim()) || 0,
95
- scaleTextBase:
96
- parseFloat(styles.getPropertyValue('--scale-text-base').trim()) || 0,
97
- scaleTextHeading:
98
- parseFloat(styles.getPropertyValue('--scale-text-heading').trim()) || 0,
99
- scaleTextUI:
100
- parseFloat(styles.getPropertyValue('--scale-text-ui').trim()) || 0
101
- };
102
- }
1
+ import { getRootCssVar } from '../../util/css/css-vars.js';
2
+
3
+ /**
4
+ * Generates a complete HTML style tag with CSS custom properties for
5
+ * the design system based on provided configuration.
6
+ *
7
+ * @param {Object} design - Design dimensions configuration
8
+ * @param {number} design.width - The design width in pixels
9
+ * @param {number} design.height - The design height in pixels
10
+ * @param {Object} clamping - Scaling configuration parameters
11
+ * @param {Object} clamping.ui - UI clamping configuration
12
+ * @param {number} clamping.ui.min - Minimum UI scaling factor
13
+ * @param {number} clamping.ui.max - Maximum UI scaling factor
14
+ * @param {Object} clamping.textBase - Base text scaling configuration
15
+ * @param {number} clamping.textBase.min - Minimum base text scaling
16
+ * @param {number} clamping.textBase.max - Maximum base text scaling
17
+ * @param {Object} clamping.textHeading - Heading text clamping configuration
18
+ * @param {number} clamping.textHeading.min - Minimum heading text scaling
19
+ * @param {number} clamping.textHeading.max - Maximum heading text scaling
20
+ * @param {Object} clamping.textUi - UI text clamping configuration
21
+ * @param {number} clamping.textUi.min - Minimum UI text scaling
22
+ * @param {number} clamping.textUi.max - Maximum UI text scaling
23
+ *
24
+ * @returns {string} Complete HTML style tag with design system CSS variables
25
+ *
26
+ * @example
27
+ * // +layout.svelte
28
+ * <script>
29
+ * import { DESIGN, CLAMPING } from '../config/design-config.js';
30
+ *
31
+ * import { rootDesignVarsHTML } from './root-vars.js';
32
+ * </script>
33
+ *
34
+ * <svelte:head>
35
+ * {@html rootDesignVarsHTML(DESIGN, CLAMPING)}
36
+ * </svelte:head>
37
+ *
38
+ * // Generates style tag for use in svelte:head
39
+ * // <style>:root { --design-width: 1920; ... }</style>
40
+ */
41
+ export function rootDesignVarsHTML(design, clamping) {
42
+ return `<style>:root {
43
+ /* Design dimensions */
44
+ --design-width: ${design.width};
45
+ --design-height: ${design.height};
46
+
47
+ /* Scaling factors */
48
+ --scale-w: 1;
49
+ --scale-h: 1;
50
+
51
+ /* --scale-viewport: min(var(--scale-w), var(--scale-h)); */
52
+ --scale-viewport: 1;
53
+
54
+ /* Base clamping units */
55
+ --scale-ui: clamp(${clamping.ui.min}, var(--scale-viewport), ${clamping.ui.max});
56
+ --scale-text-base: clamp(${clamping.textBase.min}, var(--scale-viewport), ${clamping.textBase.max});
57
+ --scale-text-heading: clamp(${clamping.textHeading.min}, var(--scale-viewport), ${clamping.textHeading.max});
58
+ --scale-text-ui: clamp(${clamping.textUi.min}, var(--scale-viewport), ${clamping.textUi.max});
59
+ }</style>`;
60
+ }
61
+
62
+ /**
63
+ * Get design width from CSS variables
64
+ *
65
+ * @returns {number} Design width
66
+ */
67
+ export function getRootCssDesignWidth() {
68
+ return getRootCssVar('design-width');
69
+ }
70
+
71
+ /**
72
+ * Get design height from CSS variables
73
+ *
74
+ * @returns {number} Design height
75
+ */
76
+ export function getRootCssDesignHeight() {
77
+ return getRootCssVar('design-height');
78
+ }
79
+
80
+ /**
81
+ * Retrieves all current scaling factors from CSS variables
82
+ *
83
+ * @returns {Object} An object containing all scaling factors
84
+ */
85
+ export function getAllRootScalingVars() {
86
+ const styles = getComputedStyle(document.documentElement);
87
+
88
+ return {
89
+ scaleW: parseFloat(styles.getPropertyValue('--scale-w').trim()) || 0,
90
+ scaleH: parseFloat(styles.getPropertyValue('--scale-h').trim()) || 0,
91
+ scaleViewport:
92
+ parseFloat(styles.getPropertyValue('--scale-viewport').trim()) || 0,
93
+
94
+ scaleUI: parseFloat(styles.getPropertyValue('--scale-ui').trim()) || 0,
95
+ scaleTextBase:
96
+ parseFloat(styles.getPropertyValue('--scale-text-base').trim()) || 0,
97
+ scaleTextHeading:
98
+ parseFloat(styles.getPropertyValue('--scale-text-heading').trim()) || 0,
99
+ scaleTextUI:
100
+ parseFloat(styles.getPropertyValue('--scale-text-ui').trim()) || 0
101
+ };
102
+ }
@@ -1,228 +1,228 @@
1
- import { clamp } from '../css/clamp.js';
2
-
3
- /**
4
- * Manages responsive design scaling by calculating and applying scale factors
5
- * based on container dimensions and design system requirements.
6
- *
7
- * @param {Object} options - Configuration options
8
- * @param {HTMLElement} options.container - The container element to apply scaling to
9
- * @param {Object} options.design - The base design dimensions
10
- * @param {number} options.design.width - The reference design width
11
- * @param {number} options.design.height - The reference design height
12
- * @param {Object} options.clamping - The min/max values for various scale factors
13
- * @param {Object} options.clamping.ui - UI element scaling constraints
14
- * @param {number} options.clamping.ui.min - Minimum UI scale factor
15
- * @param {number} options.clamping.ui.max - Maximum UI scale factor
16
- * @param {Object} options.clamping.textBase - Base text scaling constraints
17
- * @param {number} options.clamping.textBase.min - Minimum base text scale factor
18
- * @param {number} options.clamping.textBase.max - Maximum base text scale factor
19
- * @param {Object} options.clamping.textHeading - Heading text scaling constraints
20
- * @param {number} options.clamping.textHeading.min - Minimum heading text scale factor
21
- * @param {number} options.clamping.textHeading.max - Maximum heading text scale factor
22
- * @param {Object} options.clamping.textUi - UI text scaling constraints
23
- * @param {number} options.clamping.textUi.min - Minimum UI text scale factor
24
- * @param {number} options.clamping.textUi.max - Maximum UI text scale factor
25
- * @param {Function} [options.getDimensions] - Optional function to get width and height
26
- * @param {boolean} [options.useResizeObserver=true] - Whether to use ResizeObserver
27
- *
28
- * @returns {()=>void} A cleanup function that removes event listeners and observers
29
- */
30
- export function enableContainerScaling({
31
- container,
32
- design,
33
- clamping,
34
- getDimensions,
35
- useResizeObserver = true
36
- }) {
37
- if (!container) {
38
- throw new Error('Container element is required for enableContainerScaling');
39
- }
40
-
41
- let resizeObserver;
42
-
43
- /**
44
- * Updates CSS scale variables based on container dimensions
45
- * and design system constraints
46
- */
47
- function updateScaleValues() {
48
- try {
49
- let containerWidth, containerHeight;
50
-
51
- // Use custom dimension getter if provided
52
- if (typeof getDimensions === 'function') {
53
- const dimensions = getDimensions();
54
- containerWidth = dimensions.width;
55
- containerHeight = dimensions.height;
56
- } else {
57
- // Otherwise use container's client dimensions
58
- const rect = container.getBoundingClientRect();
59
- containerWidth = rect.width;
60
- containerHeight = rect.height;
61
- }
62
-
63
- // Skip update if dimensions are zero (container not visible)
64
- if (containerWidth <= 0 || containerHeight <= 0) {
65
- return;
66
- }
67
-
68
- // Calculate scale factors based on container size relative to design dimensions
69
- const scaleW = containerWidth / design.width;
70
- const scaleH = containerHeight / design.height;
71
-
72
- // Use the smaller scale factor to ensure content fits within container
73
- const scaleViewport = Math.min(scaleW, scaleH);
74
-
75
- // Apply clamping to different element types
76
- const scaleUI = clamp(clamping.ui.min, scaleViewport, clamping.ui.max);
77
-
78
- const scaleTextBase = clamp(
79
- clamping.textBase.min,
80
- scaleViewport,
81
- clamping.textBase.max
82
- );
83
-
84
- const scaleTextHeading = clamp(
85
- clamping.textHeading.min,
86
- scaleViewport,
87
- clamping.textHeading.max
88
- );
89
-
90
- const scaleTextUi = clamp(
91
- clamping.textUi.min,
92
- scaleViewport,
93
- clamping.textUi.max
94
- );
95
-
96
- // Set CSS custom properties on the container
97
- container.style.setProperty('--scale-w', String(scaleW));
98
- container.style.setProperty('--scale-h', String(scaleH));
99
- container.style.setProperty('--scale-viewport', String(scaleViewport));
100
- container.style.setProperty('--scale-ui', String(scaleUI));
101
- container.style.setProperty('--scale-text-base', String(scaleTextBase));
102
- container.style.setProperty(
103
- '--scale-text-heading',
104
- String(scaleTextHeading)
105
- );
106
- container.style.setProperty('--scale-text-ui', String(scaleTextUi));
107
- } catch (error) {
108
- console.error('Error updating container scale values:', error);
109
- }
110
- }
111
-
112
- // Initialize scales
113
- updateScaleValues();
114
-
115
- // Set up ResizeObserver for container resize detection
116
- if (useResizeObserver && typeof ResizeObserver !== 'undefined') {
117
- resizeObserver = new ResizeObserver(updateScaleValues);
118
- resizeObserver.observe(container);
119
- } else {
120
- // Fallback to window resize event
121
- window.addEventListener('resize', updateScaleValues);
122
- }
123
-
124
- // Return cleanup function
125
- return function cleanup() {
126
- if (resizeObserver) {
127
- resizeObserver.disconnect();
128
- } else {
129
- window.removeEventListener('resize', updateScaleValues);
130
- }
131
- };
132
- }
133
-
134
- /**
135
- * Manages responsive design scaling by calculating and applying scale factors
136
- * based on viewport dimensions and design system requirements.
137
- *
138
- * @param {Object} design - The base design dimensions
139
- * @param {number} design.width - The reference design width
140
- * @param {number} design.height - The reference design height
141
- * @param {Object} clamping - The min/max values for various scale factors
142
- * @param {Object} clamping.ui - UI element scaling constraints
143
- * @param {number} clamping.ui.min - Minimum UI scale factor
144
- * @param {number} clamping.ui.max - Maximum UI scale factor
145
- * @param {Object} clamping.textBase - Base text scaling constraints
146
- * @param {number} clamping.textBase.min - Minimum base text scale factor
147
- * @param {number} clamping.textBase.max - Maximum base text scale factor
148
- * @param {Object} clamping.textHeading - Heading text scaling constraints
149
- * @param {number} clamping.textHeading.min - Minimum heading text scale factor
150
- * @param {number} clamping.textHeading.max - Maximum heading text scale factor
151
- * @param {Object} clamping.textUi - UI text scaling constraints
152
- * @param {number} clamping.textUi.min - Minimum UI text scale factor
153
- * @param {number} clamping.textUi.max - Maximum UI text scale factor
154
- *
155
- * @returns {()=>void} A cleanup function that removes the event listener
156
- */
157
- export function enableScalingUI(design, clamping) {
158
- /**
159
- * Updates CSS scale variables based on current viewport dimensions
160
- * and design system constraints
161
- */
162
- function updateScaleValues() {
163
- try {
164
- const vw = window.innerWidth;
165
- const vh = window.innerHeight;
166
-
167
- // Calculate scale factors based on viewport size relative to design dimensions
168
- const scaleW = vw / design.width;
169
- const scaleH = vh / design.height;
170
-
171
- // Use the smaller scale factor to ensure content fits within viewport
172
- const scaleViewport = Math.min(scaleW, scaleH);
173
-
174
- // Apply clamping to different element types
175
- const scaleUI = clamp(clamping.ui.min, scaleViewport, clamping.ui.max);
176
-
177
- const scaleTextBase = clamp(
178
- clamping.textBase.min,
179
- scaleViewport,
180
- clamping.textBase.max
181
- );
182
-
183
- const scaleTextHeading = clamp(
184
- clamping.textHeading.min,
185
- scaleViewport,
186
- clamping.textHeading.max
187
- );
188
-
189
- const scaleTextUi = clamp(
190
- clamping.textUi.min,
191
- scaleViewport,
192
- clamping.textUi.max
193
- );
194
-
195
- // Set CSS custom properties for use in the design system
196
- document.documentElement.style.setProperty('--scale-w', String(scaleW));
197
- document.documentElement.style.setProperty('--scale-h', String(scaleH));
198
- document.documentElement.style.setProperty(
199
- '--scale-viewport',
200
- String(scaleViewport)
201
- );
202
- document.documentElement.style.setProperty('--scale-ui', String(scaleUI));
203
- document.documentElement.style.setProperty(
204
- '--scale-text-base',
205
- String(scaleTextBase)
206
- );
207
- document.documentElement.style.setProperty(
208
- '--scale-text-heading',
209
- String(scaleTextHeading)
210
- );
211
- document.documentElement.style.setProperty(
212
- '--scale-text-ui',
213
- String(scaleTextUi)
214
- );
215
- } catch (error) {
216
- console.error('Error updating design scale values:', error);
217
- }
218
- }
219
-
220
- // Initialize scales and attach resize listener
221
- updateScaleValues();
222
- window.addEventListener('resize', updateScaleValues);
223
-
224
- // Return cleanup function
225
- return function cleanup() {
226
- window.removeEventListener('resize', updateScaleValues);
227
- };
228
- }
1
+ import { clamp } from './clamp.js';
2
+
3
+ /**
4
+ * Manages responsive design scaling by calculating and applying scale factors
5
+ * based on container dimensions and design system requirements.
6
+ *
7
+ * @param {Object} options - Configuration options
8
+ * @param {HTMLElement} options.container - The container element to apply scaling to
9
+ * @param {Object} options.design - The base design dimensions
10
+ * @param {number} options.design.width - The reference design width
11
+ * @param {number} options.design.height - The reference design height
12
+ * @param {Object} options.clamping - The min/max values for various scale factors
13
+ * @param {Object} options.clamping.ui - UI element scaling constraints
14
+ * @param {number} options.clamping.ui.min - Minimum UI scale factor
15
+ * @param {number} options.clamping.ui.max - Maximum UI scale factor
16
+ * @param {Object} options.clamping.textBase - Base text scaling constraints
17
+ * @param {number} options.clamping.textBase.min - Minimum base text scale factor
18
+ * @param {number} options.clamping.textBase.max - Maximum base text scale factor
19
+ * @param {Object} options.clamping.textHeading - Heading text scaling constraints
20
+ * @param {number} options.clamping.textHeading.min - Minimum heading text scale factor
21
+ * @param {number} options.clamping.textHeading.max - Maximum heading text scale factor
22
+ * @param {Object} options.clamping.textUi - UI text scaling constraints
23
+ * @param {number} options.clamping.textUi.min - Minimum UI text scale factor
24
+ * @param {number} options.clamping.textUi.max - Maximum UI text scale factor
25
+ * @param {Function} [options.getDimensions] - Optional function to get width and height
26
+ * @param {boolean} [options.useResizeObserver=true] - Whether to use ResizeObserver
27
+ *
28
+ * @returns {()=>void} A cleanup function that removes event listeners and observers
29
+ */
30
+ export function enableContainerScaling({
31
+ container,
32
+ design,
33
+ clamping,
34
+ getDimensions,
35
+ useResizeObserver = true
36
+ }) {
37
+ if (!container) {
38
+ throw new Error('Container element is required for enableContainerScaling');
39
+ }
40
+
41
+ let resizeObserver;
42
+
43
+ /**
44
+ * Updates CSS scale variables based on container dimensions
45
+ * and design system constraints
46
+ */
47
+ function updateScaleValues() {
48
+ try {
49
+ let containerWidth, containerHeight;
50
+
51
+ // Use custom dimension getter if provided
52
+ if (typeof getDimensions === 'function') {
53
+ const dimensions = getDimensions();
54
+ containerWidth = dimensions.width;
55
+ containerHeight = dimensions.height;
56
+ } else {
57
+ // Otherwise use container's client dimensions
58
+ const rect = container.getBoundingClientRect();
59
+ containerWidth = rect.width;
60
+ containerHeight = rect.height;
61
+ }
62
+
63
+ // Skip update if dimensions are zero (container not visible)
64
+ if (containerWidth <= 0 || containerHeight <= 0) {
65
+ return;
66
+ }
67
+
68
+ // Calculate scale factors based on container size relative to design dimensions
69
+ const scaleW = containerWidth / design.width;
70
+ const scaleH = containerHeight / design.height;
71
+
72
+ // Use the smaller scale factor to ensure content fits within container
73
+ const scaleViewport = Math.min(scaleW, scaleH);
74
+
75
+ // Apply clamping to different element types
76
+ const scaleUI = clamp(clamping.ui.min, scaleViewport, clamping.ui.max);
77
+
78
+ const scaleTextBase = clamp(
79
+ clamping.textBase.min,
80
+ scaleViewport,
81
+ clamping.textBase.max
82
+ );
83
+
84
+ const scaleTextHeading = clamp(
85
+ clamping.textHeading.min,
86
+ scaleViewport,
87
+ clamping.textHeading.max
88
+ );
89
+
90
+ const scaleTextUi = clamp(
91
+ clamping.textUi.min,
92
+ scaleViewport,
93
+ clamping.textUi.max
94
+ );
95
+
96
+ // Set CSS custom properties on the container
97
+ container.style.setProperty('--scale-w', String(scaleW));
98
+ container.style.setProperty('--scale-h', String(scaleH));
99
+ container.style.setProperty('--scale-viewport', String(scaleViewport));
100
+ container.style.setProperty('--scale-ui', String(scaleUI));
101
+ container.style.setProperty('--scale-text-base', String(scaleTextBase));
102
+ container.style.setProperty(
103
+ '--scale-text-heading',
104
+ String(scaleTextHeading)
105
+ );
106
+ container.style.setProperty('--scale-text-ui', String(scaleTextUi));
107
+ } catch (error) {
108
+ console.error('Error updating container scale values:', error);
109
+ }
110
+ }
111
+
112
+ // Initialize scales
113
+ updateScaleValues();
114
+
115
+ // Set up ResizeObserver for container resize detection
116
+ if (useResizeObserver && typeof ResizeObserver !== 'undefined') {
117
+ resizeObserver = new ResizeObserver(updateScaleValues);
118
+ resizeObserver.observe(container);
119
+ } else {
120
+ // Fallback to window resize event
121
+ window.addEventListener('resize', updateScaleValues);
122
+ }
123
+
124
+ // Return cleanup function
125
+ return function cleanup() {
126
+ if (resizeObserver) {
127
+ resizeObserver.disconnect();
128
+ } else {
129
+ window.removeEventListener('resize', updateScaleValues);
130
+ }
131
+ };
132
+ }
133
+
134
+ /**
135
+ * Manages responsive design scaling by calculating and applying scale factors
136
+ * based on viewport dimensions and design system requirements.
137
+ *
138
+ * @param {Object} design - The base design dimensions
139
+ * @param {number} design.width - The reference design width
140
+ * @param {number} design.height - The reference design height
141
+ * @param {Object} clamping - The min/max values for various scale factors
142
+ * @param {Object} clamping.ui - UI element scaling constraints
143
+ * @param {number} clamping.ui.min - Minimum UI scale factor
144
+ * @param {number} clamping.ui.max - Maximum UI scale factor
145
+ * @param {Object} clamping.textBase - Base text scaling constraints
146
+ * @param {number} clamping.textBase.min - Minimum base text scale factor
147
+ * @param {number} clamping.textBase.max - Maximum base text scale factor
148
+ * @param {Object} clamping.textHeading - Heading text scaling constraints
149
+ * @param {number} clamping.textHeading.min - Minimum heading text scale factor
150
+ * @param {number} clamping.textHeading.max - Maximum heading text scale factor
151
+ * @param {Object} clamping.textUi - UI text scaling constraints
152
+ * @param {number} clamping.textUi.min - Minimum UI text scale factor
153
+ * @param {number} clamping.textUi.max - Maximum UI text scale factor
154
+ *
155
+ * @returns {()=>void} A cleanup function that removes the event listener
156
+ */
157
+ export function enableScalingUI(design, clamping) {
158
+ /**
159
+ * Updates CSS scale variables based on current viewport dimensions
160
+ * and design system constraints
161
+ */
162
+ function updateScaleValues() {
163
+ try {
164
+ const vw = window.innerWidth;
165
+ const vh = window.innerHeight;
166
+
167
+ // Calculate scale factors based on viewport size relative to design dimensions
168
+ const scaleW = vw / design.width;
169
+ const scaleH = vh / design.height;
170
+
171
+ // Use the smaller scale factor to ensure content fits within viewport
172
+ const scaleViewport = Math.min(scaleW, scaleH);
173
+
174
+ // Apply clamping to different element types
175
+ const scaleUI = clamp(clamping.ui.min, scaleViewport, clamping.ui.max);
176
+
177
+ const scaleTextBase = clamp(
178
+ clamping.textBase.min,
179
+ scaleViewport,
180
+ clamping.textBase.max
181
+ );
182
+
183
+ const scaleTextHeading = clamp(
184
+ clamping.textHeading.min,
185
+ scaleViewport,
186
+ clamping.textHeading.max
187
+ );
188
+
189
+ const scaleTextUi = clamp(
190
+ clamping.textUi.min,
191
+ scaleViewport,
192
+ clamping.textUi.max
193
+ );
194
+
195
+ // Set CSS custom properties for use in the design system
196
+ document.documentElement.style.setProperty('--scale-w', String(scaleW));
197
+ document.documentElement.style.setProperty('--scale-h', String(scaleH));
198
+ document.documentElement.style.setProperty(
199
+ '--scale-viewport',
200
+ String(scaleViewport)
201
+ );
202
+ document.documentElement.style.setProperty('--scale-ui', String(scaleUI));
203
+ document.documentElement.style.setProperty(
204
+ '--scale-text-base',
205
+ String(scaleTextBase)
206
+ );
207
+ document.documentElement.style.setProperty(
208
+ '--scale-text-heading',
209
+ String(scaleTextHeading)
210
+ );
211
+ document.documentElement.style.setProperty(
212
+ '--scale-text-ui',
213
+ String(scaleTextUi)
214
+ );
215
+ } catch (error) {
216
+ console.error('Error updating design scale values:', error);
217
+ }
218
+ }
219
+
220
+ // Initialize scales and attach resize listener
221
+ updateScaleValues();
222
+ window.addEventListener('resize', updateScaleValues);
223
+
224
+ // Return cleanup function
225
+ return function cleanup() {
226
+ window.removeEventListener('resize', updateScaleValues);
227
+ };
228
+ }