@hkdigital/lib-core 0.3.11 → 0.3.12

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 (292) hide show
  1. package/README.md +173 -149
  2. package/dist/assets/autospuiten/car-paint-picker.js +41 -41
  3. package/dist/assets/autospuiten/labels.js +7 -7
  4. package/dist/classes/data/IterableTree.js +242 -242
  5. package/dist/classes/data/Selector.js +190 -190
  6. package/dist/classes/data/index.js +2 -2
  7. package/dist/classes/data/typedef.js +9 -9
  8. package/dist/classes/event-emitter/EventEmitter.js +273 -273
  9. package/dist/classes/event-emitter/index.js +2 -2
  10. package/dist/classes/index.js +4 -4
  11. package/dist/classes/promise/HkPromise.js +384 -384
  12. package/dist/classes/promise/index.js +1 -1
  13. package/dist/classes/stores/SubscribersCount.js +107 -107
  14. package/dist/classes/stores/index.js +1 -1
  15. package/dist/classes/streams/LogTransformStream.js +19 -19
  16. package/dist/classes/streams/ServerEventsStore.js +111 -111
  17. package/dist/classes/streams/TimeStampSource.js +26 -26
  18. package/dist/classes/streams/index.js +3 -3
  19. package/dist/classes/svelte/finite-state-machine/FiniteStateMachine.svelte.js +133 -133
  20. package/dist/classes/svelte/finite-state-machine/index.js +1 -1
  21. package/dist/classes/svelte/index.js +1 -11
  22. package/dist/classes/svelte/loading-state-machine/LoadingStateMachine.svelte.js +109 -109
  23. package/dist/classes/svelte/loading-state-machine/constants.js +16 -16
  24. package/dist/classes/svelte/loading-state-machine/index.js +3 -3
  25. package/dist/config/README.md +197 -196
  26. package/dist/config/generators/imagetools.js +189 -189
  27. package/dist/config/generators/vite.js +148 -142
  28. package/dist/config/imagetools.d.ts +72 -72
  29. package/dist/config/vite.js +4 -4
  30. package/dist/constants/bases/index.js +13 -13
  31. package/dist/constants/http/headers.js +6 -6
  32. package/dist/constants/http/index.js +2 -2
  33. package/dist/constants/http/methods.js +14 -14
  34. package/dist/constants/index.js +6 -6
  35. package/dist/constants/mime/application.js +5 -5
  36. package/dist/constants/mime/audio.js +13 -13
  37. package/dist/constants/mime/image.js +3 -3
  38. package/dist/constants/mime/index.js +4 -4
  39. package/dist/constants/mime/text.js +2 -2
  40. package/dist/constants/regexp/README.md +96 -95
  41. package/dist/constants/regexp/index.js +31 -31
  42. package/dist/constants/regexp/inspiratie.js__ +95 -95
  43. package/dist/constants/regexp/text.d.ts +4 -4
  44. package/dist/constants/regexp/text.js +49 -49
  45. package/dist/constants/regexp/url.js +3 -3
  46. package/dist/constants/regexp/user.js +29 -29
  47. package/dist/constants/states/drag.js +6 -6
  48. package/dist/constants/states/drop.js +6 -6
  49. package/dist/constants/states/index.js +4 -4
  50. package/dist/constants/states/input.js +11 -11
  51. package/dist/constants/states/submit.js +4 -4
  52. package/dist/constants/time/index.js +28 -28
  53. package/dist/css/utilities.css +43 -43
  54. package/dist/design/README.md +405 -405
  55. package/dist/design/config/design-config.js +73 -73
  56. package/dist/design/generators/index.js +288 -288
  57. package/dist/design/index.js +96 -96
  58. package/dist/design/plugins/skeleton.js +208 -208
  59. package/dist/design/tailwind-theme-extend.js +158 -158
  60. package/dist/design/themes/README.md +102 -102
  61. package/dist/design/themes/hkdev/components/blocks/text-block.css +34 -34
  62. package/dist/design/themes/hkdev/components/boxes/game-box.css +11 -11
  63. package/dist/design/themes/hkdev/components/buttons/button-icon-steeze.css +22 -22
  64. package/dist/design/themes/hkdev/components/buttons/button-text.css +32 -32
  65. package/dist/design/themes/hkdev/components/buttons/button.css +146 -146
  66. package/dist/design/themes/hkdev/components/buttons/skip-button.css +5 -5
  67. package/dist/design/themes/hkdev/components/drag-drop/draggable.css +73 -73
  68. package/dist/design/themes/hkdev/components/drag-drop/drop-zone.css +58 -58
  69. package/dist/design/themes/hkdev/components/icons/icon-steeze.css +15 -15
  70. package/dist/design/themes/hkdev/components/inputs/text-input.css +102 -102
  71. package/dist/design/themes/hkdev/components/panels/panel.css +25 -25
  72. package/dist/design/themes/hkdev/components/rows/panel-grid-row.css +4 -4
  73. package/dist/design/themes/hkdev/components/rows/panel-row-2.css +5 -5
  74. package/dist/design/themes/hkdev/components.css +29 -29
  75. package/dist/design/themes/hkdev/debug.css +1 -1
  76. package/dist/design/themes/hkdev/global/layout.css +32 -32
  77. package/dist/design/themes/hkdev/global/on-colors.css +32 -32
  78. package/dist/design/themes/hkdev/globals.css +3 -3
  79. package/dist/design/themes/hkdev/responsive.css +12 -12
  80. package/dist/design/themes/hkdev/theme-ext.js +12 -12
  81. package/dist/design/themes/hkdev/theme.css +218 -218
  82. package/dist/design/utils/clamp.js +66 -66
  83. package/dist/design/utils/root-vars.js +102 -102
  84. package/dist/design/utils/scaling.js +228 -228
  85. package/dist/design/utils/states.js +22 -22
  86. package/dist/errors/api.js +9 -9
  87. package/dist/errors/generic.js +20 -20
  88. package/dist/errors/http.js +16 -16
  89. package/dist/errors/index.js +5 -5
  90. package/dist/errors/jwt.js +5 -5
  91. package/dist/errors/promise.js +25 -25
  92. package/dist/logging/README.md +158 -0
  93. package/dist/logging/index.d.ts +3 -1
  94. package/dist/logging/index.js +11 -7
  95. package/dist/logging/internal/adapters/console.js +114 -114
  96. package/dist/logging/internal/adapters/index.js +2 -2
  97. package/dist/logging/internal/adapters/pino.js +160 -142
  98. package/dist/logging/internal/adapters/typedef.js +10 -10
  99. package/dist/logging/internal/{unified-logger/constants.js → constants.js} +22 -22
  100. package/dist/logging/internal/factories/client.d.ts +1 -1
  101. package/dist/logging/internal/factories/client.js +21 -21
  102. package/dist/logging/internal/factories/server.d.ts +1 -1
  103. package/dist/logging/internal/factories/server.js +22 -22
  104. package/dist/logging/internal/factories/universal.d.ts +2 -2
  105. package/dist/logging/internal/factories/universal.js +22 -22
  106. package/dist/logging/internal/{unified-logger → logger}/Logger.d.ts +2 -2
  107. package/dist/logging/internal/{unified-logger → logger}/Logger.js +217 -217
  108. package/dist/logging/internal/logger/index.d.ts +1 -0
  109. package/dist/logging/internal/logger/index.js +1 -0
  110. package/dist/logging/internal/{unified-logger/typedef.d.ts → typedef.d.ts} +2 -1
  111. package/dist/logging/internal/{unified-logger/typedef.js → typedef.js} +21 -17
  112. package/dist/network/README.md +172 -172
  113. package/dist/network/cache/IndexedDbCache.js +1407 -1407
  114. package/dist/network/cache/MemoryResponseCache.js +138 -138
  115. package/dist/network/cache/index.js +5 -5
  116. package/dist/network/cache/typedef.js +41 -41
  117. package/dist/network/cache.js +3 -3
  118. package/dist/network/http/caching.js +261 -261
  119. package/dist/network/http/errors.js +97 -97
  120. package/dist/network/http/headers.js +75 -75
  121. package/dist/network/http/http-request.js +578 -578
  122. package/dist/network/http/index.js +22 -22
  123. package/dist/network/http/json-request.js +224 -224
  124. package/dist/network/http/mocks.js +65 -65
  125. package/dist/network/http/response.js +318 -318
  126. package/dist/network/http/test-data__/content-length-test-hkdigital-small.V4HfZyBQ.avif +0 -0
  127. package/dist/network/http/typedef.js +93 -93
  128. package/dist/network/http/url.js +52 -52
  129. package/dist/network/http.js +5 -5
  130. package/dist/network/loaders/README.md +254 -254
  131. package/dist/network/loaders/audio/AudioLoader.svelte.js +58 -58
  132. package/dist/network/loaders/audio/AudioScene.svelte.js +324 -324
  133. package/dist/network/loaders/audio/mocks.js +35 -35
  134. package/dist/network/loaders/audio.js +1 -1
  135. package/dist/network/loaders/image/ImageLoader.svelte.js +44 -44
  136. package/dist/network/loaders/image/ImageScene.svelte.js +248 -248
  137. package/dist/network/loaders/image/ImageVariantsLoader.svelte.js +150 -150
  138. package/dist/network/loaders/image/index.js +4 -4
  139. package/dist/network/loaders/image/mocks.js +35 -35
  140. package/dist/network/loaders/image/typedef.js +8 -8
  141. package/dist/network/loaders/image/utils/index.js +86 -86
  142. package/dist/network/loaders/image.js +7 -7
  143. package/dist/network/loaders/typedef.js +38 -38
  144. package/dist/network/loaders.js +2 -2
  145. package/dist/network/states/NetworkLoader.svelte.js +338 -338
  146. package/dist/network/states/constants.js +3 -3
  147. package/dist/network/states/index.js +3 -3
  148. package/dist/network/states/mocks.js +30 -30
  149. package/dist/network/states/typedef.js +8 -8
  150. package/dist/network/typedef.js +9 -9
  151. package/dist/services/README.md +200 -0
  152. package/dist/services/index.d.ts +6 -1
  153. package/dist/services/index.js +8 -1
  154. package/dist/services/{internal/service-base → service-base}/ServiceBase.d.ts +2 -2
  155. package/dist/services/{internal/service-base → service-base}/ServiceBase.js +462 -462
  156. package/dist/services/{internal/service-base → service-base}/constants.d.ts +0 -12
  157. package/dist/services/{internal/service-base → service-base}/constants.js +98 -110
  158. package/dist/services/{internal/service-base → service-base}/index.js +3 -3
  159. package/dist/services/{internal/service-base → service-base}/typedef.d.ts +1 -1
  160. package/dist/services/{internal/service-base → service-base}/typedef.js +101 -101
  161. package/dist/services/{internal/service-manager → service-manager}/ServiceManager.d.ts +2 -2
  162. package/dist/services/{internal/service-manager → service-manager}/ServiceManager.js +608 -608
  163. package/dist/services/{internal/service-manager → service-manager}/constants.js +6 -6
  164. package/dist/services/{internal/service-manager → service-manager}/typedef.js +90 -90
  165. package/dist/states/index.js +1 -1
  166. package/dist/states/navigation.svelte.js +55 -55
  167. package/dist/stores/index.js +1 -1
  168. package/dist/stores/theme.js +80 -80
  169. package/dist/typedef/context.js +6 -6
  170. package/dist/typedef/drag.js +25 -25
  171. package/dist/typedef/drop.js +12 -12
  172. package/dist/typedef/index.js +4 -4
  173. package/dist/ui/components/button-group/ButtonGroup.svelte +82 -82
  174. package/dist/ui/components/button-group/typedef.js +10 -10
  175. package/dist/ui/components/compare-left-right/CompareLeftRight.svelte +179 -179
  176. package/dist/ui/components/compare-left-right/index.js +1 -1
  177. package/dist/ui/components/game-box/GameBox.svelte +577 -577
  178. package/dist/ui/components/game-box/gamebox.util.js +83 -83
  179. package/dist/ui/components/hk-app-layout/HkAppLayout.state.svelte.js +25 -25
  180. package/dist/ui/components/hk-app-layout/HkAppLayout.svelte +251 -251
  181. package/dist/ui/components/image-box/ImageBox.svelte +210 -210
  182. package/dist/ui/components/image-box/index.js +5 -5
  183. package/dist/ui/components/image-box/typedef.js +32 -32
  184. package/dist/ui/components/index.js +23 -23
  185. package/dist/ui/components/presenter/ImageSlide.svelte +64 -64
  186. package/dist/ui/components/presenter/Presenter.state.svelte.js +638 -638
  187. package/dist/ui/components/presenter/Presenter.svelte +142 -142
  188. package/dist/ui/components/presenter/constants.js +7 -7
  189. package/dist/ui/components/presenter/index.js +10 -10
  190. package/dist/ui/components/presenter/typedef.js +106 -106
  191. package/dist/ui/components/presenter/util.js +210 -210
  192. package/dist/ui/components/virtual-viewport/VirtualViewport.svelte +196 -196
  193. package/dist/ui/primitives/area/HkArea.svelte +49 -49
  194. package/dist/ui/primitives/area/HkGridArea.svelte +77 -77
  195. package/dist/ui/primitives/area/index.js +2 -2
  196. package/dist/ui/primitives/buttons/button/Button.svelte +82 -82
  197. package/dist/ui/primitives/buttons/button-icon-steeze/SteezeIconButton.svelte +30 -30
  198. package/dist/ui/primitives/buttons/button-text/TextButton.svelte +21 -21
  199. package/dist/ui/primitives/buttons/index.js +3 -3
  200. package/dist/ui/primitives/debug/debug-panel-design-scaling/DebugPanelDesignScaling.svelte +146 -146
  201. package/dist/ui/primitives/debug/index.js +1 -1
  202. package/dist/ui/primitives/drag-drop/DragController.js +44 -44
  203. package/dist/ui/primitives/drag-drop/DragDropContext.svelte +111 -111
  204. package/dist/ui/primitives/drag-drop/Draggable.svelte +519 -519
  205. package/dist/ui/primitives/drag-drop/DropZone.svelte +258 -258
  206. package/dist/ui/primitives/drag-drop/DropZoneArea.svelte +119 -119
  207. package/dist/ui/primitives/drag-drop/DropZoneList.svelte +125 -125
  208. package/dist/ui/primitives/drag-drop/actions.js +26 -26
  209. package/dist/ui/primitives/drag-drop/drag-state.svelte.js +322 -322
  210. package/dist/ui/primitives/drag-drop/index.js +7 -7
  211. package/dist/ui/primitives/drag-drop/util.js +85 -85
  212. package/dist/ui/primitives/hkdev/blocks/TextBlock.svelte +46 -46
  213. package/dist/ui/primitives/hkdev/buttons/CheckButton.svelte +62 -62
  214. package/dist/ui/primitives/icons/HkIcon.svelte +86 -86
  215. package/dist/ui/primitives/icons/HkTabIcon.svelte +116 -116
  216. package/dist/ui/primitives/icons/SteezeIcon.svelte +97 -97
  217. package/dist/ui/primitives/icons/index.js +6 -6
  218. package/dist/ui/primitives/icons/typedef.js +16 -16
  219. package/dist/ui/primitives/index.js +2 -2
  220. package/dist/ui/primitives/inputs/index.js +1 -1
  221. package/dist/ui/primitives/inputs/text-input/TestTextInput.svelte__ +102 -0
  222. package/dist/ui/primitives/inputs/text-input/TextInput.svelte +223 -223
  223. package/dist/ui/primitives/inputs/text-input/TextInput.svelte___ +83 -0
  224. package/dist/ui/primitives/inputs/text-input/assets/IconInvalid.svelte +14 -14
  225. package/dist/ui/primitives/inputs/text-input/assets/IconValid.svelte +12 -12
  226. package/dist/ui/primitives/layout/grid-layers/GridLayers.svelte +63 -63
  227. package/dist/ui/primitives/layout/grid-layers/GridLayers.svelte__heightFrom__ +372 -0
  228. package/dist/ui/primitives/layout/grid-layers/util.js +74 -74
  229. package/dist/ui/primitives/layout/index.js +1 -1
  230. package/dist/ui/primitives/panels/index.js +1 -1
  231. package/dist/ui/primitives/panels/panel/Panel.svelte +43 -43
  232. package/dist/ui/primitives/rows/index.js +3 -3
  233. package/dist/ui/primitives/rows/panel-grid-row/PanelGridRow.svelte +104 -104
  234. package/dist/ui/primitives/rows/panel-row-2/PanelRow2.svelte +40 -40
  235. package/dist/ui/primitives/tab-bar/HkTabBar.state.svelte.js +149 -149
  236. package/dist/ui/primitives/tab-bar/HkTabBar.svelte +74 -74
  237. package/dist/ui/primitives/tab-bar/HkTabBarSelector.state.svelte.js +93 -93
  238. package/dist/ui/primitives/tab-bar/HkTabBarSelector.svelte +49 -49
  239. package/dist/ui/primitives/tab-bar/index.js +17 -17
  240. package/dist/ui/primitives/tab-bar/typedef.js +11 -11
  241. package/dist/util/array/index.js +436 -436
  242. package/dist/util/bases/base58.js +262 -262
  243. package/dist/util/bases/index.js +1 -1
  244. package/dist/util/compare/index.js +247 -247
  245. package/dist/util/css/css-vars.js +83 -83
  246. package/dist/util/css/index.js +1 -1
  247. package/dist/util/env/index.js +9 -9
  248. package/dist/util/exceptions/index.d.ts +4 -3
  249. package/dist/util/exceptions/index.js +26 -23
  250. package/dist/util/expect/arrays.js +47 -47
  251. package/dist/util/expect/index.js +259 -259
  252. package/dist/util/expect/primitives.js +55 -55
  253. package/dist/util/expect/url.js +60 -60
  254. package/dist/util/function/index.js +218 -218
  255. package/dist/util/geo/index.js +26 -26
  256. package/dist/util/index.js +7 -7
  257. package/dist/util/is/index.js +147 -147
  258. package/dist/util/iterate/index.js +204 -204
  259. package/dist/util/object/index.js +1345 -1345
  260. package/dist/util/singleton/index.js +97 -97
  261. package/dist/util/string/array-path.js +75 -75
  262. package/dist/util/string/convert.js +54 -54
  263. package/dist/util/string/fs.js +226 -226
  264. package/dist/util/string/index.js +5 -5
  265. package/dist/util/string/interpolate.js +61 -61
  266. package/dist/util/string/pad.js +10 -10
  267. package/dist/util/svelte/index.js +4 -4
  268. package/dist/util/svelte/loading/loading-tracker.svelte.js +108 -108
  269. package/dist/util/svelte/observe/index.js +49 -49
  270. package/dist/util/svelte/state-context/index.js +117 -117
  271. package/dist/util/svelte/wait/index.js +38 -38
  272. package/dist/util/sveltekit/index.js +1 -1
  273. package/dist/util/sveltekit/route-folders/index.js +101 -101
  274. package/dist/util/time/index.js +328 -328
  275. package/dist/util/unique/index.js +231 -231
  276. package/dist/valibot/README.md +61 -50
  277. package/dist/valibot/index.js +8 -8
  278. package/dist/valibot/parsers/date.js__ +10 -0
  279. package/dist/valibot/parsers/email.d.ts +12 -0
  280. package/dist/valibot/parsers/email.js +34 -0
  281. package/dist/valibot/parsers/url.js +110 -110
  282. package/dist/valibot/parsers/user.js +23 -23
  283. package/dist/valibot/parsers.js +3 -3
  284. package/package.json +131 -131
  285. package/dist/logging/internal/unified-logger/index.d.ts +0 -3
  286. package/dist/logging/internal/unified-logger/index.js +0 -6
  287. package/dist/services/internal/index.d.ts +0 -6
  288. package/dist/services/internal/index.js +0 -8
  289. /package/dist/logging/internal/{unified-logger/constants.d.ts → constants.d.ts} +0 -0
  290. /package/dist/services/{internal/service-base → service-base}/index.d.ts +0 -0
  291. /package/dist/services/{internal/service-manager → service-manager}/constants.d.ts +0 -0
  292. /package/dist/services/{internal/service-manager → service-manager}/typedef.d.ts +0 -0
@@ -1,158 +1,158 @@
1
- /**
2
- * Design System Configuration
3
- * Using CSS Custom Properties (variables) for consistent scaling
4
- *
5
- * @note
6
- * The tailwind theme extensions require CSS custom
7
- * properties (variables) to be set at the root level
8
- * of your application to function properly.
9
- *
10
- * @example Implementation in SvelteKit +layout.svelte
11
- * <script>
12
- * import { onMount } from 'svelte';
13
- *
14
- * import '../app.css';
15
- *
16
- * let { children } = $props();
17
- *
18
- * import { DESIGN, CLAMPING }
19
- * from './config/design-config.js';
20
- *
21
- * import { rootDesignVarsHTML }
22
- * from '@hkdigital/lib-core/design/utils/root-vars.js';
23
- * </script>
24
- *
25
- * <svelte:head>
26
- * {@html rootDesignVarsHTML(DESIGN, CLAMPING)}
27
- * </svelte:head>
28
- *
29
- * Base units:
30
- * --scale-w: 0.052vw (Viewport Width Point)
31
- * --scale-h: 0.09259vh (Viewport Height Point)
32
- * --scale-viewport: min(var(--scale-w), var(--scale-h)) (Viewport Point)
33
- * --scale-ui: clamp(0.3, var(--scale-viewport), 2) (UI Point)
34
- * --scale-text-base: clamp(0.75, var(--scale-viewport), 1.5) (Base Text)
35
- * --scale-text-heading: clamp(0.75, var(--scale-viewport), 2.25) (Heading Text)
36
- * --scale-text-ui: clamp(0.5, var(--scale-viewport), 1.25) (UI Text)
37
- *
38
- * --
39
- *
40
- * UI Points (up) - Clamped scaling values
41
- * Based on viewport scaling with minimum and maximum bounds
42
- * to ensure usability across all screen sizes
43
- *
44
- * > PREFERRED METHOD FOR UI ELEMENT SCALING
45
- *
46
- * Examples:
47
- * 5up = 5px at design size (clamps between 1.5px and 10px)
48
- * 10up = 10px at design size (clamps between 3px and 20px)
49
- * 20up = 20px at design size (clamps between 6px and 40px)
50
- *
51
- * Used for:
52
- * - Component padding and margins
53
- * - Interface element sizing
54
- * - Any UI element that needs responsive scaling with guardrails
55
- *
56
- * --
57
- *
58
- * Text-Based Spacing Units (ut, bt, ht)
59
- * Scaled by their respective text scaling variables
60
- *
61
- * > PREFERRED METHOD FOR TEXT-RELATED SPACING
62
- *
63
- * Examples:
64
- * 4ut = calc(4px * var(--scale-text-ui)) // UI text spacing
65
- * 4bt = calc(4px * var(--scale-text-base)) // Base text spacing
66
- * 4ht = calc(4px * var(--scale-text-heading)) // Heading text spacing
67
- *
68
- * Used for:
69
- * - ut: Button padding, form spacing, UI component margins
70
- * - bt: Paragraph margins, list spacing, base gaps
71
- * - ht: Heading margins, title spacing
72
- *
73
- * --
74
- *
75
- * Viewport Points (wp, hp) - Responsive scaling values
76
- * wp: Uses width-based scaling (1920px reference)
77
- * hp: Uses height-based scaling (1080px reference)
78
- *
79
- * > ALTERNATIVE SCALING METHODS
80
- *
81
- * Examples:
82
- * 10wp = calc(10px * var(--scale-w))
83
- * 10hp = calc(10px * var(--scale-h))
84
- *
85
- * Used for:
86
- * - Interface scaling that needs to fit both width and height
87
- * - Maintaining aspect ratio of design
88
- * - Preventing overflow in either direction
89
- */
90
- import {
91
- generateTextBasedSpacing,
92
- generateViewportBasedSpacing,
93
- generateTextStyles,
94
- generateBorderRadiusStyles,
95
- generateWidthStyles
96
- } from './generators/index.js';
97
-
98
- import {
99
- TEXT_POINT_SIZES,
100
- VIEWPORT_POINT_SIZES,
101
- TEXT_BASE_SIZES,
102
- TEXT_HEADING_SIZES,
103
- TEXT_UI_SIZES,
104
- RADIUS_SIZES,
105
- BORDER_WIDTH_SIZES,
106
- STROKE_WIDTH_SIZES
107
- } from './config/design-config.js';
108
-
109
- /* == Internals */
110
-
111
- const TEXT_BASED_SPACING = generateTextBasedSpacing(TEXT_POINT_SIZES);
112
- const VIEWPORT_BASED_SPACING =
113
- generateViewportBasedSpacing(VIEWPORT_POINT_SIZES);
114
-
115
- /* == Exports */
116
-
117
- export const spacing = {
118
- ...VIEWPORT_BASED_SPACING,
119
- ...TEXT_BASED_SPACING
120
- };
121
-
122
- export const fontSize = {
123
- ...TEXT_BASED_SPACING,
124
-
125
- // Named styles
126
- ...generateTextStyles(TEXT_BASE_SIZES, 'base'),
127
- ...generateTextStyles(TEXT_HEADING_SIZES, 'heading'),
128
- ...generateTextStyles(TEXT_UI_SIZES, 'ui')
129
- };
130
-
131
- export const borderRadius = {
132
- // Named styles
133
- ...generateBorderRadiusStyles(RADIUS_SIZES)
134
- };
135
-
136
- export const borderWidth = {
137
- // Named styles
138
- ...generateWidthStyles(BORDER_WIDTH_SIZES, 'width')
139
- };
140
-
141
- export const strokeWidth = {
142
- // Named styles
143
- ...generateWidthStyles(STROKE_WIDTH_SIZES, 'width')
144
- };
145
-
146
- export const outlineWidth = {
147
- // Named styles
148
- ...generateWidthStyles(STROKE_WIDTH_SIZES, '')
149
- };
150
-
151
- export const outlineOffset = {
152
- // Named styles
153
- ...generateWidthStyles(STROKE_WIDTH_SIZES, '')
154
- };
155
-
156
- // console.log('borderWidth', borderWidth);
157
- // console.log('outlineWidth', outlineWidth);
158
- // console.log('outlineOffset', outlineOffset);
1
+ /**
2
+ * Design System Configuration
3
+ * Using CSS Custom Properties (variables) for consistent scaling
4
+ *
5
+ * @note
6
+ * The tailwind theme extensions require CSS custom
7
+ * properties (variables) to be set at the root level
8
+ * of your application to function properly.
9
+ *
10
+ * @example Implementation in SvelteKit +layout.svelte
11
+ * <script>
12
+ * import { onMount } from 'svelte';
13
+ *
14
+ * import '../app.css';
15
+ *
16
+ * let { children } = $props();
17
+ *
18
+ * import { DESIGN, CLAMPING }
19
+ * from './config/design-config.js';
20
+ *
21
+ * import { rootDesignVarsHTML }
22
+ * from '@hkdigital/lib-core/design/utils/root-vars.js';
23
+ * </script>
24
+ *
25
+ * <svelte:head>
26
+ * {@html rootDesignVarsHTML(DESIGN, CLAMPING)}
27
+ * </svelte:head>
28
+ *
29
+ * Base units:
30
+ * --scale-w: 0.052vw (Viewport Width Point)
31
+ * --scale-h: 0.09259vh (Viewport Height Point)
32
+ * --scale-viewport: min(var(--scale-w), var(--scale-h)) (Viewport Point)
33
+ * --scale-ui: clamp(0.3, var(--scale-viewport), 2) (UI Point)
34
+ * --scale-text-base: clamp(0.75, var(--scale-viewport), 1.5) (Base Text)
35
+ * --scale-text-heading: clamp(0.75, var(--scale-viewport), 2.25) (Heading Text)
36
+ * --scale-text-ui: clamp(0.5, var(--scale-viewport), 1.25) (UI Text)
37
+ *
38
+ * --
39
+ *
40
+ * UI Points (up) - Clamped scaling values
41
+ * Based on viewport scaling with minimum and maximum bounds
42
+ * to ensure usability across all screen sizes
43
+ *
44
+ * > PREFERRED METHOD FOR UI ELEMENT SCALING
45
+ *
46
+ * Examples:
47
+ * 5up = 5px at design size (clamps between 1.5px and 10px)
48
+ * 10up = 10px at design size (clamps between 3px and 20px)
49
+ * 20up = 20px at design size (clamps between 6px and 40px)
50
+ *
51
+ * Used for:
52
+ * - Component padding and margins
53
+ * - Interface element sizing
54
+ * - Any UI element that needs responsive scaling with guardrails
55
+ *
56
+ * --
57
+ *
58
+ * Text-Based Spacing Units (ut, bt, ht)
59
+ * Scaled by their respective text scaling variables
60
+ *
61
+ * > PREFERRED METHOD FOR TEXT-RELATED SPACING
62
+ *
63
+ * Examples:
64
+ * 4ut = calc(4px * var(--scale-text-ui)) // UI text spacing
65
+ * 4bt = calc(4px * var(--scale-text-base)) // Base text spacing
66
+ * 4ht = calc(4px * var(--scale-text-heading)) // Heading text spacing
67
+ *
68
+ * Used for:
69
+ * - ut: Button padding, form spacing, UI component margins
70
+ * - bt: Paragraph margins, list spacing, base gaps
71
+ * - ht: Heading margins, title spacing
72
+ *
73
+ * --
74
+ *
75
+ * Viewport Points (wp, hp) - Responsive scaling values
76
+ * wp: Uses width-based scaling (1920px reference)
77
+ * hp: Uses height-based scaling (1080px reference)
78
+ *
79
+ * > ALTERNATIVE SCALING METHODS
80
+ *
81
+ * Examples:
82
+ * 10wp = calc(10px * var(--scale-w))
83
+ * 10hp = calc(10px * var(--scale-h))
84
+ *
85
+ * Used for:
86
+ * - Interface scaling that needs to fit both width and height
87
+ * - Maintaining aspect ratio of design
88
+ * - Preventing overflow in either direction
89
+ */
90
+ import {
91
+ generateTextBasedSpacing,
92
+ generateViewportBasedSpacing,
93
+ generateTextStyles,
94
+ generateBorderRadiusStyles,
95
+ generateWidthStyles
96
+ } from './generators/index.js';
97
+
98
+ import {
99
+ TEXT_POINT_SIZES,
100
+ VIEWPORT_POINT_SIZES,
101
+ TEXT_BASE_SIZES,
102
+ TEXT_HEADING_SIZES,
103
+ TEXT_UI_SIZES,
104
+ RADIUS_SIZES,
105
+ BORDER_WIDTH_SIZES,
106
+ STROKE_WIDTH_SIZES
107
+ } from './config/design-config.js';
108
+
109
+ /* == Internals */
110
+
111
+ const TEXT_BASED_SPACING = generateTextBasedSpacing(TEXT_POINT_SIZES);
112
+ const VIEWPORT_BASED_SPACING =
113
+ generateViewportBasedSpacing(VIEWPORT_POINT_SIZES);
114
+
115
+ /* == Exports */
116
+
117
+ export const spacing = {
118
+ ...VIEWPORT_BASED_SPACING,
119
+ ...TEXT_BASED_SPACING
120
+ };
121
+
122
+ export const fontSize = {
123
+ ...TEXT_BASED_SPACING,
124
+
125
+ // Named styles
126
+ ...generateTextStyles(TEXT_BASE_SIZES, 'base'),
127
+ ...generateTextStyles(TEXT_HEADING_SIZES, 'heading'),
128
+ ...generateTextStyles(TEXT_UI_SIZES, 'ui')
129
+ };
130
+
131
+ export const borderRadius = {
132
+ // Named styles
133
+ ...generateBorderRadiusStyles(RADIUS_SIZES)
134
+ };
135
+
136
+ export const borderWidth = {
137
+ // Named styles
138
+ ...generateWidthStyles(BORDER_WIDTH_SIZES, 'width')
139
+ };
140
+
141
+ export const strokeWidth = {
142
+ // Named styles
143
+ ...generateWidthStyles(STROKE_WIDTH_SIZES, 'width')
144
+ };
145
+
146
+ export const outlineWidth = {
147
+ // Named styles
148
+ ...generateWidthStyles(STROKE_WIDTH_SIZES, '')
149
+ };
150
+
151
+ export const outlineOffset = {
152
+ // Named styles
153
+ ...generateWidthStyles(STROKE_WIDTH_SIZES, '')
154
+ };
155
+
156
+ // console.log('borderWidth', borderWidth);
157
+ // console.log('outlineWidth', outlineWidth);
158
+ // console.log('outlineOffset', outlineOffset);
@@ -1,103 +1,103 @@
1
- # Themes
2
-
3
- This folder contains theme configurations for the SvelteKit library, built on top of Skeleton.dev's theming system.
4
-
5
- ## Current Themes
6
-
7
- ### hkdev
8
- The main theme for this project, containing:
9
- - `theme.css` - Skeleton.dev generated theme file with CSS custom properties
10
- - `globals.css` - Global styles and utilities
11
- - `components.css` - Component-specific styles
12
- - `responsive.css` - Responsive design adjustments
13
- - `debug.css` - Debug styles for development (commented out by default)
14
-
15
- ## How to Use Themes
16
-
17
- Themes are imported and configured in `src/app.css`. The current setup imports the hkdev theme:
18
-
19
- ```css
20
- /* Import theme classes and styles */
21
- @import './lib/themes/hkdev/theme.css' layer(theme);
22
-
23
- /* Import additional theme files */
24
- @import '$lib/design/themes/hkdev/globals.css';
25
- @import '$lib/design/themes/hkdev/components.css' layer(components);
26
- @import '$lib/design/themes/hkdev/responsive.css';
27
- ```
28
-
29
- ### Applying Themes
30
-
31
- To activate a theme, set the `data-theme` attribute on your HTML element:
32
-
33
- ```html
34
- <html data-theme="hkdev">
35
- ```
36
-
37
- Or dynamically with JavaScript:
38
- ```javascript
39
- document.documentElement.setAttribute('data-theme', 'hkdev');
40
- ```
41
-
42
- ## Creating New Themes
43
-
44
- ### Using Skeleton.dev Theme Generator
45
-
46
- 1. **Visit the Theme Generator**: Go to [themes.skeleton.dev/themes/create](https://themes.skeleton.dev/themes/create)
47
-
48
- 2. **Customize Your Theme**:
49
- - Choose color palettes
50
- - Set font styles for base text, headings, and anchors
51
- - Configure background options
52
- - Preview changes in real-time
53
-
54
- 3. **Generate and Download**:
55
- - The generator creates a CSS file with CSS custom properties
56
- - Download the generated `theme.css` file
57
-
58
- 4. **Integration Steps**:
59
- - Create a new folder in `src/lib/design/themes/[your-theme-name]/`
60
- - Place the downloaded `theme.css` file in the new folder
61
- - Create additional files as needed:
62
- - `globals.css` - Global styles
63
- - `components.css` - Component styles
64
- - `responsive.css` - Responsive adjustments
65
- - Update `src/app.css` to import your new theme files
66
-
67
- ### Theme Structure
68
-
69
- Each theme folder should follow this structure:
70
- ```
71
- themes/
72
- └── [theme-name]/
73
- ├── theme.css # Skeleton.dev generated theme
74
- ├── globals.css # Global styles and utilities
75
- ├── components.css # Component-specific styles
76
- ├── responsive.css # Responsive design rules
77
- └── components/ # Individual component styles
78
- ├── buttons/
79
- ├── inputs/
80
- ├── panels/
81
- └── ...
82
- ```
83
-
84
- ## Theme System Features
85
-
86
- - **CSS Custom Properties**: Themes use CSS variables for easy customization
87
- - **Layer Support**: Organized with CSS layers (theme, base, components, utilities)
88
- - **Light/Dark Mode**: Automatic support for light and dark variants
89
- - **Component Isolation**: Individual component styles in separate files
90
- - **Responsive Design**: Mobile-first responsive adjustments
91
-
92
- ## Documentation
93
-
94
- For more information about Skeleton.dev themes:
95
- - [Skeleton.dev Theme Documentation](https://www.skeleton.dev/docs/design/themes)
96
- - [Theme Generator](https://themes.skeleton.dev/themes/create)
97
- - [Skeleton.dev GitHub](https://github.com/skeletonlabs/skeleton)
98
-
99
- ## Notes
100
-
101
- - The theme generator is not available for small screens - use a tablet or desktop
102
- - Themes can be imported and modified for advanced customization
1
+ # Themes
2
+
3
+ This folder contains theme configurations for the SvelteKit library, built on top of Skeleton.dev's theming system.
4
+
5
+ ## Current Themes
6
+
7
+ ### hkdev
8
+ The main theme for this project, containing:
9
+ - `theme.css` - Skeleton.dev generated theme file with CSS custom properties
10
+ - `globals.css` - Global styles and utilities
11
+ - `components.css` - Component-specific styles
12
+ - `responsive.css` - Responsive design adjustments
13
+ - `debug.css` - Debug styles for development (commented out by default)
14
+
15
+ ## How to Use Themes
16
+
17
+ Themes are imported and configured in `src/app.css`. The current setup imports the hkdev theme:
18
+
19
+ ```css
20
+ /* Import theme classes and styles */
21
+ @import './lib/themes/hkdev/theme.css' layer(theme);
22
+
23
+ /* Import additional theme files */
24
+ @import '$lib/design/themes/hkdev/globals.css';
25
+ @import '$lib/design/themes/hkdev/components.css' layer(components);
26
+ @import '$lib/design/themes/hkdev/responsive.css';
27
+ ```
28
+
29
+ ### Applying Themes
30
+
31
+ To activate a theme, set the `data-theme` attribute on your HTML element:
32
+
33
+ ```html
34
+ <html data-theme="hkdev">
35
+ ```
36
+
37
+ Or dynamically with JavaScript:
38
+ ```javascript
39
+ document.documentElement.setAttribute('data-theme', 'hkdev');
40
+ ```
41
+
42
+ ## Creating New Themes
43
+
44
+ ### Using Skeleton.dev Theme Generator
45
+
46
+ 1. **Visit the Theme Generator**: Go to [themes.skeleton.dev/themes/create](https://themes.skeleton.dev/themes/create)
47
+
48
+ 2. **Customize Your Theme**:
49
+ - Choose color palettes
50
+ - Set font styles for base text, headings, and anchors
51
+ - Configure background options
52
+ - Preview changes in real-time
53
+
54
+ 3. **Generate and Download**:
55
+ - The generator creates a CSS file with CSS custom properties
56
+ - Download the generated `theme.css` file
57
+
58
+ 4. **Integration Steps**:
59
+ - Create a new folder in `src/lib/design/themes/[your-theme-name]/`
60
+ - Place the downloaded `theme.css` file in the new folder
61
+ - Create additional files as needed:
62
+ - `globals.css` - Global styles
63
+ - `components.css` - Component styles
64
+ - `responsive.css` - Responsive adjustments
65
+ - Update `src/app.css` to import your new theme files
66
+
67
+ ### Theme Structure
68
+
69
+ Each theme folder should follow this structure:
70
+ ```
71
+ themes/
72
+ └── [theme-name]/
73
+ ├── theme.css # Skeleton.dev generated theme
74
+ ├── globals.css # Global styles and utilities
75
+ ├── components.css # Component-specific styles
76
+ ├── responsive.css # Responsive design rules
77
+ └── components/ # Individual component styles
78
+ ├── buttons/
79
+ ├── inputs/
80
+ ├── panels/
81
+ └── ...
82
+ ```
83
+
84
+ ## Theme System Features
85
+
86
+ - **CSS Custom Properties**: Themes use CSS variables for easy customization
87
+ - **Layer Support**: Organized with CSS layers (theme, base, components, utilities)
88
+ - **Light/Dark Mode**: Automatic support for light and dark variants
89
+ - **Component Isolation**: Individual component styles in separate files
90
+ - **Responsive Design**: Mobile-first responsive adjustments
91
+
92
+ ## Documentation
93
+
94
+ For more information about Skeleton.dev themes:
95
+ - [Skeleton.dev Theme Documentation](https://www.skeleton.dev/docs/design/themes)
96
+ - [Theme Generator](https://themes.skeleton.dev/themes/create)
97
+ - [Skeleton.dev GitHub](https://github.com/skeletonlabs/skeleton)
98
+
99
+ ## Notes
100
+
101
+ - The theme generator is not available for small screens - use a tablet or desktop
102
+ - Themes can be imported and modified for advanced customization
103
103
  - All themes should be compatible with Skeleton.dev v3 components
@@ -1,34 +1,34 @@
1
- /* .on-primary-dark
2
- {
3
- & [data-title-text-button-block] {
4
- & > .title-box {
5
- @apply text-white;
6
- }
7
-
8
- & > .text-box {
9
- ...text color
10
- }
11
- }
12
- } */
13
-
14
- [data-title-text-button-block] {
15
- &.block-width {
16
- @apply w-1/2;
17
- }
18
-
19
- & > .title-box {
20
- @apply text-heading-h3;
21
- @apply uppercase;
22
- }
23
-
24
- & > .content-box .p {
25
- @apply text-base-md;
26
- }
27
-
28
- & > .content-box:has(+ .footer-box) {
29
- @apply mb-30p; /* 10p + 20p */
30
- }
31
-
32
- & > .footer-box {
33
- }
34
- }
1
+ /* .on-primary-dark
2
+ {
3
+ & [data-title-text-button-block] {
4
+ & > .title-box {
5
+ @apply text-white;
6
+ }
7
+
8
+ & > .text-box {
9
+ ...text color
10
+ }
11
+ }
12
+ } */
13
+
14
+ [data-title-text-button-block] {
15
+ &.block-width {
16
+ @apply w-1/2;
17
+ }
18
+
19
+ & > .title-box {
20
+ @apply text-heading-h3;
21
+ @apply uppercase;
22
+ }
23
+
24
+ & > .content-box .p {
25
+ @apply text-base-md;
26
+ }
27
+
28
+ & > .content-box:has(+ .footer-box) {
29
+ @apply mb-30p; /* 10p + 20p */
30
+ }
31
+
32
+ & > .footer-box {
33
+ }
34
+ }
@@ -1,11 +1,11 @@
1
- @import '../../global/on-colors.css';
2
-
3
- [data-boxes='game-box'] {
4
- /*& .game-box-padding-20p {
5
- @apply mt-20p;
6
- @apply mr-20p;
7
- @apply mb-20p;
8
- @apply ml-20p;
9
- }*/
10
- }
11
-
1
+ @import '../../global/on-colors.css';
2
+
3
+ [data-boxes='game-box'] {
4
+ /*& .game-box-padding-20p {
5
+ @apply mt-20p;
6
+ @apply mr-20p;
7
+ @apply mb-20p;
8
+ @apply ml-20p;
9
+ }*/
10
+ }
11
+
@@ -1,22 +1,22 @@
1
- @define-mixin component-button-icon-steeze {
2
-
3
- /* @note using CSS vars defined in the parent button postcss */
4
-
5
- /* Type-based styling for text buttons */
6
- [data-component="button"][data-type="icon-steeze"] {
7
-
8
- /*&[data-size="sm"] {
9
- @apply px-8ut py-8ut;
10
- }
11
-
12
- &[data-size="md"] {
13
- @apply px-16ut py-12ut;
14
- }
15
-
16
- &[data-size="lg"] {
17
- @apply px-32ut py-16ut;
18
- }*/
19
-
20
- }
21
-
22
- }
1
+ @define-mixin component-button-icon-steeze {
2
+
3
+ /* @note using CSS vars defined in the parent button postcss */
4
+
5
+ /* Type-based styling for text buttons */
6
+ [data-component="button"][data-type="icon-steeze"] {
7
+
8
+ /*&[data-size="sm"] {
9
+ @apply px-8ut py-8ut;
10
+ }
11
+
12
+ &[data-size="md"] {
13
+ @apply px-16ut py-12ut;
14
+ }
15
+
16
+ &[data-size="lg"] {
17
+ @apply px-32ut py-16ut;
18
+ }*/
19
+
20
+ }
21
+
22
+ }