@hkdigital/lib-sveltekit 0.2.8 → 0.2.9

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 (243) hide show
  1. package/README.md +135 -135
  2. package/dist/assets/autospuiten/car-paint-picker.js +41 -41
  3. package/dist/assets/autospuiten/labels.js +7 -7
  4. package/dist/classes/cache/IndexedDbCache.js +1407 -1407
  5. package/dist/classes/cache/MemoryResponseCache.js +138 -138
  6. package/dist/classes/cache/index.js +5 -5
  7. package/dist/classes/cache/typedef.js +41 -41
  8. package/dist/classes/data/IterableTree.js +243 -243
  9. package/dist/classes/data/Selector.js +190 -190
  10. package/dist/classes/data/index.js +2 -2
  11. package/dist/classes/events/EventEmitter.js +275 -275
  12. package/dist/classes/events/index.js +2 -2
  13. package/dist/classes/index.js +4 -4
  14. package/dist/classes/logging/Logger.js +158 -158
  15. package/dist/classes/logging/constants.js +18 -18
  16. package/dist/classes/logging/index.js +4 -4
  17. package/dist/classes/promise/HkPromise.js +377 -377
  18. package/dist/classes/promise/index.js +1 -1
  19. package/dist/classes/services/ServiceBase.js +409 -409
  20. package/dist/classes/services/ServiceManager.js +1114 -1114
  21. package/dist/classes/services/constants.js +12 -12
  22. package/dist/classes/services/index.js +5 -5
  23. package/dist/classes/stores/SubscribersCount.js +107 -107
  24. package/dist/classes/stores/index.js +1 -1
  25. package/dist/classes/streams/LogTransformStream.js +19 -19
  26. package/dist/classes/streams/ServerEventsStore.js +110 -110
  27. package/dist/classes/streams/TimeStampSource.js +26 -26
  28. package/dist/classes/streams/index.js +3 -3
  29. package/dist/classes/svelte/audio/AudioLoader.svelte.js +58 -58
  30. package/dist/classes/svelte/audio/AudioScene.svelte.js +324 -324
  31. package/dist/classes/svelte/audio/mocks.js +35 -35
  32. package/dist/classes/svelte/finite-state-machine/FiniteStateMachine.svelte.js +133 -133
  33. package/dist/classes/svelte/finite-state-machine/index.js +1 -1
  34. package/dist/classes/svelte/image/ImageLoader.svelte.js +45 -45
  35. package/dist/classes/svelte/image/ImageScene.svelte.js +249 -249
  36. package/dist/classes/svelte/image/ImageVariantsLoader.svelte.js +152 -152
  37. package/dist/classes/svelte/image/index.js +4 -4
  38. package/dist/classes/svelte/image/mocks.js +35 -35
  39. package/dist/classes/svelte/image/typedef.js +8 -8
  40. package/dist/classes/svelte/index.js +14 -14
  41. package/dist/classes/svelte/loading-state-machine/LoadingStateMachine.svelte.js +109 -109
  42. package/dist/classes/svelte/loading-state-machine/constants.js +16 -16
  43. package/dist/classes/svelte/loading-state-machine/index.js +3 -3
  44. package/dist/classes/svelte/network-loader/NetworkLoader.svelte.js +338 -338
  45. package/dist/classes/svelte/network-loader/constants.js +3 -3
  46. package/dist/classes/svelte/network-loader/index.js +3 -3
  47. package/dist/classes/svelte/network-loader/mocks.js +30 -30
  48. package/dist/classes/svelte/network-loader/typedef.js +8 -8
  49. package/dist/components/area/HkArea.svelte +49 -49
  50. package/dist/components/area/HkGridArea.svelte +77 -77
  51. package/dist/components/area/index.js +2 -2
  52. package/dist/components/buttons/button/Button.svelte +82 -82
  53. package/dist/components/buttons/button-icon-steeze/SteezeIconButton.svelte +30 -30
  54. package/dist/components/buttons/button-text/TextButton.svelte +21 -21
  55. package/dist/components/buttons/index.js +3 -3
  56. package/dist/components/debug/debug-panel-design-scaling/DebugPanelDesignScaling.svelte +146 -146
  57. package/dist/components/debug/index.js +1 -1
  58. package/dist/components/drag-drop/DragController.js +44 -44
  59. package/dist/components/drag-drop/DragDropContext.svelte +112 -110
  60. package/dist/components/drag-drop/Draggable.svelte +498 -512
  61. package/dist/components/drag-drop/{Dropzone.svelte → DropZone.svelte} +258 -258
  62. package/dist/components/drag-drop/DropZoneArea.svelte +119 -119
  63. package/dist/components/drag-drop/DropZoneList.svelte +125 -125
  64. package/dist/components/drag-drop/actions.d.ts +6 -0
  65. package/dist/components/drag-drop/actions.js +18 -0
  66. package/dist/components/drag-drop/drag-state.svelte.js +319 -319
  67. package/dist/components/drag-drop/index.js +7 -7
  68. package/dist/components/drag-drop/util.js +85 -85
  69. package/dist/components/hkdev/blocks/TextBlock.svelte +46 -46
  70. package/dist/components/hkdev/buttons/CheckButton.svelte +62 -62
  71. package/dist/components/icons/HkIcon.svelte +86 -86
  72. package/dist/components/icons/HkTabIcon.svelte +116 -116
  73. package/dist/components/icons/SteezeIcon.svelte +97 -97
  74. package/dist/components/icons/index.js +6 -6
  75. package/dist/components/icons/typedef.js +16 -16
  76. package/dist/components/index.js +2 -2
  77. package/dist/components/inputs/index.js +1 -1
  78. package/dist/components/inputs/text-input/TestTextInput.svelte__ +102 -102
  79. package/dist/components/inputs/text-input/TextInput.svelte +223 -223
  80. package/dist/components/inputs/text-input/TextInput.svelte___ +83 -83
  81. package/dist/components/inputs/text-input/assets/IconInvalid.svelte +14 -14
  82. package/dist/components/inputs/text-input/assets/IconValid.svelte +12 -12
  83. package/dist/components/layout/grid-layers/GridLayers.svelte +63 -63
  84. package/dist/components/layout/grid-layers/GridLayers.svelte__heightFrom__ +372 -0
  85. package/dist/components/layout/grid-layers/util.js +74 -74
  86. package/dist/components/layout/index.js +1 -1
  87. package/dist/components/panels/index.js +1 -1
  88. package/dist/components/panels/panel/Panel.svelte +43 -43
  89. package/dist/components/rows/index.js +3 -3
  90. package/dist/components/rows/panel-grid-row/PanelGridRow.svelte +104 -104
  91. package/dist/components/rows/panel-row-2/PanelRow2.svelte +40 -40
  92. package/dist/components/tab-bar/HkTabBar.state.svelte.js +149 -149
  93. package/dist/components/tab-bar/HkTabBar.svelte +74 -74
  94. package/dist/components/tab-bar/HkTabBarSelector.state.svelte.js +93 -93
  95. package/dist/components/tab-bar/HkTabBarSelector.svelte +49 -49
  96. package/dist/components/tab-bar/index.js +17 -17
  97. package/dist/components/tab-bar/typedef.js +11 -11
  98. package/dist/config/imagetools-config.js +189 -189
  99. package/dist/config/imagetools.d.ts +72 -72
  100. package/dist/constants/bases.js +13 -13
  101. package/dist/constants/errors/api.js +9 -9
  102. package/dist/constants/errors/generic.js +5 -5
  103. package/dist/constants/errors/index.js +3 -3
  104. package/dist/constants/errors/jwt.js +5 -5
  105. package/dist/constants/http/headers.js +6 -6
  106. package/dist/constants/http/index.js +2 -2
  107. package/dist/constants/http/methods.js +2 -2
  108. package/dist/constants/index.js +3 -3
  109. package/dist/constants/mime/application.js +5 -5
  110. package/dist/constants/mime/audio.js +13 -13
  111. package/dist/constants/mime/image.js +3 -3
  112. package/dist/constants/mime/index.js +4 -4
  113. package/dist/constants/mime/text.js +2 -2
  114. package/dist/constants/regexp/index.js +31 -31
  115. package/dist/constants/regexp/inspiratie.js__ +95 -95
  116. package/dist/constants/regexp/text.js +49 -49
  117. package/dist/constants/regexp/user.js +32 -32
  118. package/dist/constants/regexp/web.js +3 -3
  119. package/dist/constants/state-labels/drag-states.js +6 -6
  120. package/dist/constants/state-labels/drop-states.js +6 -6
  121. package/dist/constants/state-labels/input-states.js +11 -11
  122. package/dist/constants/state-labels/submit-states.js +4 -4
  123. package/dist/constants/time.js +28 -28
  124. package/dist/css/utilities.css +43 -43
  125. package/dist/design/design-config.js +73 -73
  126. package/dist/design/tailwind-theme-extend.js +158 -158
  127. package/dist/features/button-group/ButtonGroup.svelte +82 -82
  128. package/dist/features/button-group/typedef.js +10 -10
  129. package/dist/features/compare-left-right/CompareLeftRight.svelte +179 -179
  130. package/dist/features/compare-left-right/index.js +1 -1
  131. package/dist/features/game-box/GameBox.svelte +577 -577
  132. package/dist/features/game-box/gamebox.util.js +83 -83
  133. package/dist/features/hk-app-layout/HkAppLayout.state.svelte.js +25 -25
  134. package/dist/features/hk-app-layout/HkAppLayout.svelte +251 -251
  135. package/dist/features/image-box/ImageBox.svelte +210 -210
  136. package/dist/features/image-box/index.js +5 -5
  137. package/dist/features/image-box/typedef.js +32 -32
  138. package/dist/features/index.js +23 -23
  139. package/dist/features/presenter/ImageSlide.svelte +64 -64
  140. package/dist/features/presenter/Presenter.state.svelte.js +638 -638
  141. package/dist/features/presenter/Presenter.svelte +142 -142
  142. package/dist/features/presenter/constants.js +7 -7
  143. package/dist/features/presenter/index.js +10 -10
  144. package/dist/features/presenter/typedef.js +106 -106
  145. package/dist/features/presenter/util.js +210 -210
  146. package/dist/features/virtual-viewport/VirtualViewport.svelte +196 -196
  147. package/dist/schemas/index.js +1 -1
  148. package/dist/schemas/validate-url.js +180 -180
  149. package/dist/server/index.js +1 -1
  150. package/dist/server/logger.js +94 -94
  151. package/dist/states/index.js +1 -1
  152. package/dist/states/navigation.svelte.js +55 -55
  153. package/dist/stores/index.js +1 -1
  154. package/dist/stores/theme.js +80 -80
  155. package/dist/themes/hkdev/components/blocks/text-block.css +41 -41
  156. package/dist/themes/hkdev/components/boxes/game-box.css +12 -12
  157. package/dist/themes/hkdev/components/buttons/button-icon-steeze.css +22 -22
  158. package/dist/themes/hkdev/components/buttons/button-text.css +32 -32
  159. package/dist/themes/hkdev/components/buttons/button.css +146 -146
  160. package/dist/themes/hkdev/components/buttons/skip-button.css +6 -6
  161. package/dist/themes/hkdev/components/drag-drop/draggable.css +73 -73
  162. package/dist/themes/hkdev/components/drag-drop/drop-zone.css +48 -48
  163. package/dist/themes/hkdev/components/icons/icon-steeze.css +22 -22
  164. package/dist/themes/hkdev/components/inputs/text-input.css +104 -104
  165. package/dist/themes/hkdev/components/panels/panel.css +27 -27
  166. package/dist/themes/hkdev/components/rows/panel-grid-row.css +6 -6
  167. package/dist/themes/hkdev/components/rows/panel-row-2.css +7 -7
  168. package/dist/themes/hkdev/components.css +53 -53
  169. package/dist/themes/hkdev/debug.css +1 -1
  170. package/dist/themes/hkdev/global/layout.css +39 -39
  171. package/dist/themes/hkdev/global/on-colors.css +53 -53
  172. package/dist/themes/hkdev/globals.css +11 -11
  173. package/dist/themes/hkdev/responsive.css +12 -12
  174. package/dist/themes/hkdev/theme-ext.js +15 -15
  175. package/dist/themes/hkdev/theme.js +235 -235
  176. package/dist/themes/index.js +1 -1
  177. package/dist/typedef/context.js +6 -6
  178. package/dist/typedef/drag.js +25 -25
  179. package/dist/typedef/drop.js +12 -12
  180. package/dist/typedef/image.js +38 -38
  181. package/dist/typedef/index.js +4 -4
  182. package/dist/util/array/index.js +436 -436
  183. package/dist/util/bases/base58.js +262 -262
  184. package/dist/util/bases/index.js +1 -1
  185. package/dist/util/compare/index.js +247 -247
  186. package/dist/util/css/css-vars.js +83 -83
  187. package/dist/util/css/index.js +1 -1
  188. package/dist/util/design-system/components/states.js +22 -22
  189. package/dist/util/design-system/css/clamp.js +66 -66
  190. package/dist/util/design-system/css/root-design-vars.js +102 -102
  191. package/dist/util/design-system/index.js +5 -5
  192. package/dist/util/design-system/layout/scaling.js +228 -228
  193. package/dist/util/design-system/skeleton.js +208 -208
  194. package/dist/util/design-system/tailwind.js +288 -288
  195. package/dist/util/env/index.js +9 -9
  196. package/dist/util/expect/arrays.js +47 -47
  197. package/dist/util/expect/index.js +259 -259
  198. package/dist/util/expect/primitives.js +55 -55
  199. package/dist/util/expect/url.js +60 -60
  200. package/dist/util/function/index.js +218 -218
  201. package/dist/util/geo/index.js +26 -26
  202. package/dist/util/http/caching.js +263 -263
  203. package/dist/util/http/errors.js +97 -97
  204. package/dist/util/http/headers.js +75 -75
  205. package/dist/util/http/http-request.js +379 -379
  206. package/dist/util/http/index.js +22 -22
  207. package/dist/util/http/json-request.js +224 -224
  208. package/dist/util/http/mocks.js +65 -65
  209. package/dist/util/http/response.js +294 -294
  210. package/dist/util/http/test-data__/content-length-test-hkdigital-small.V4HfZyBQ.avif +0 -0
  211. package/dist/util/http/typedef.js +93 -93
  212. package/dist/util/http/url.js +52 -52
  213. package/dist/util/image/index.js +86 -86
  214. package/dist/util/index.js +2 -2
  215. package/dist/util/is/index.js +140 -140
  216. package/dist/util/iterate/index.js +234 -234
  217. package/dist/util/object/index.js +1361 -1361
  218. package/dist/util/singleton/index.js +97 -97
  219. package/dist/util/string/array-path.js +75 -75
  220. package/dist/util/string/convert.js +54 -54
  221. package/dist/util/string/fs.js +226 -226
  222. package/dist/util/string/index.js +5 -5
  223. package/dist/util/string/interpolate.js +61 -61
  224. package/dist/util/string/pad.js +10 -10
  225. package/dist/util/svelte/index.js +4 -4
  226. package/dist/util/svelte/loading/loading-tracker.svelte.js +108 -108
  227. package/dist/util/svelte/observe/index.js +49 -49
  228. package/dist/util/svelte/state-context/index.js +117 -117
  229. package/dist/util/svelte/wait/index.js +38 -38
  230. package/dist/util/sveltekit/index.js +1 -1
  231. package/dist/util/sveltekit/route-folders/index.js +101 -101
  232. package/dist/util/time/index.js +323 -323
  233. package/dist/util/unique/index.js +249 -249
  234. package/dist/valibot/date.js__ +10 -10
  235. package/dist/valibot/index.js +9 -9
  236. package/dist/valibot/url.js +95 -95
  237. package/dist/valibot/user.js +23 -23
  238. package/dist/zod/all.js +33 -33
  239. package/dist/zod/generic.js +11 -11
  240. package/dist/zod/javascript.js +32 -32
  241. package/dist/zod/user.js +16 -16
  242. package/dist/zod/web.js +52 -52
  243. package/package.json +112 -112
@@ -1,43 +1,43 @@
1
- /**
2
- * Common utility CSS classes
3
- *
4
- * Using tailwind layers
5
- * @see https://tailwindcss.com/docs/functions-and-directives
6
- */
7
-
8
- @layer utilities {
9
- .g-no-select {
10
- user-select: none;
11
- -webkit-user-select: none; /* ios safari */
12
- -webkit-tap-highlight-color: transparent;
13
- }
14
-
15
- input[type='text'].g-no-select,
16
- textarea.g-no-select {
17
- user-select: text !important;
18
- cursor: text;
19
- }
20
-
21
- .g-no-double-tab-zoom {
22
- /* tailwind touch-manipulation */
23
- touch-action: manipulation;
24
- }
25
-
26
- .g-no-pinch-zoom {
27
- touch-action: pan-x pan-y; /* no pinch zoom, but allow scroll */
28
- }
29
-
30
- .g-no-highlights {
31
- -webkit-tap-highlight-color: transparent;
32
- }
33
- }
34
-
35
- /* .g-grid-layers {
36
- display: grid;
37
- grid-template-columns: 1fr;
38
- grid-template-rows: 1fr;
39
-
40
- & > * {
41
- grid-area: 1/1/2/2;
42
- }
43
- } */
1
+ /**
2
+ * Common utility CSS classes
3
+ *
4
+ * Using tailwind layers
5
+ * @see https://tailwindcss.com/docs/functions-and-directives
6
+ */
7
+
8
+ @layer utilities {
9
+ .g-no-select {
10
+ user-select: none;
11
+ -webkit-user-select: none; /* ios safari */
12
+ -webkit-tap-highlight-color: transparent;
13
+ }
14
+
15
+ input[type='text'].g-no-select,
16
+ textarea.g-no-select {
17
+ user-select: text !important;
18
+ cursor: text;
19
+ }
20
+
21
+ .g-no-double-tab-zoom {
22
+ /* tailwind touch-manipulation */
23
+ touch-action: manipulation;
24
+ }
25
+
26
+ .g-no-pinch-zoom {
27
+ touch-action: pan-x pan-y; /* no pinch zoom, but allow scroll */
28
+ }
29
+
30
+ .g-no-highlights {
31
+ -webkit-tap-highlight-color: transparent;
32
+ }
33
+ }
34
+
35
+ /* .g-grid-layers {
36
+ display: grid;
37
+ grid-template-columns: 1fr;
38
+ grid-template-rows: 1fr;
39
+
40
+ & > * {
41
+ grid-area: 1/1/2/2;
42
+ }
43
+ } */
@@ -1,73 +1,73 @@
1
- /* == Design dimensions == */
2
-
3
- export const DESIGN = {
4
- width: 1024,
5
- height: 768
6
- };
7
-
8
- /* == Scaling-clamping behaviour == */
9
-
10
- export const CLAMPING = {
11
- ui: { min: 0.3, max: 2 },
12
- textBase: { min: 0.75, max: 1.5 },
13
- textHeading: { min: 0.75, max: 2.25 },
14
- textUi: { min: 0.5, max: 1.25 }
15
- };
16
-
17
- /* == Text == */
18
-
19
- export const TEXT_POINT_SIZES = [
20
- 1, 2, 4, 6, 8, 10, 11, 12, 16, 20, 24, 28, 32, 36, 50
21
- ];
22
-
23
- export const VIEWPORT_POINT_SIZES = [
24
- 1, 2, 4, 5, 6, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 120, 140, 160, 180,
25
- 200
26
- ];
27
-
28
- export const TEXT_BASE_SIZES = {
29
- sm: { size: 14, lineHeight: 1.25 },
30
- md: { size: 16, lineHeight: 1.25 },
31
- lg: { size: 18, lineHeight: 1.25 }
32
- };
33
-
34
- export const TEXT_HEADING_SIZES = {
35
- h1: { size: 32, lineHeight: 1.25 },
36
- h2: { size: 28, lineHeight: 1.25 },
37
- h3: { size: 24, lineHeight: 1.25 },
38
- h4: { size: 20, lineHeight: 1.25 },
39
- h5: { size: 16, lineHeight: 1.25 }
40
- };
41
-
42
- export const TEXT_UI_SIZES = {
43
- sm: { size: 14, lineHeight: 1 },
44
- md: { size: 16, lineHeight: 1 },
45
- lg: { size: 18, lineHeight: 1 }
46
- };
47
-
48
- /* == Border radius == */
49
-
50
- export const RADIUS_SIZES = {
51
- none: '0px',
52
- xs: { size: 5 },
53
- sm: { size: 10 },
54
- md: { size: 25 },
55
- lg: { size: 35 },
56
- full: '9999px'
57
- };
58
-
59
- /* == Border width == */
60
-
61
- export const BORDER_WIDTH_SIZES = {
62
- thin: { size: 1 },
63
- normal: { size: 2 },
64
- thick: { size: 4 }
65
- };
66
-
67
- /* == Stroke width == */
68
-
69
- export const STROKE_WIDTH_SIZES = {
70
- thin: { size: 1 },
71
- normal: { size: 2 },
72
- thick: { size: 4 }
73
- };
1
+ /* == Design dimensions == */
2
+
3
+ export const DESIGN = {
4
+ width: 1024,
5
+ height: 768
6
+ };
7
+
8
+ /* == Scaling-clamping behaviour == */
9
+
10
+ export const CLAMPING = {
11
+ ui: { min: 0.3, max: 2 },
12
+ textBase: { min: 0.75, max: 1.5 },
13
+ textHeading: { min: 0.75, max: 2.25 },
14
+ textUi: { min: 0.5, max: 1.25 }
15
+ };
16
+
17
+ /* == Text == */
18
+
19
+ export const TEXT_POINT_SIZES = [
20
+ 1, 2, 4, 6, 8, 10, 11, 12, 16, 20, 24, 28, 32, 36, 50
21
+ ];
22
+
23
+ export const VIEWPORT_POINT_SIZES = [
24
+ 1, 2, 4, 5, 6, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 120, 140, 160, 180,
25
+ 200
26
+ ];
27
+
28
+ export const TEXT_BASE_SIZES = {
29
+ sm: { size: 14, lineHeight: 1.25 },
30
+ md: { size: 16, lineHeight: 1.25 },
31
+ lg: { size: 18, lineHeight: 1.25 }
32
+ };
33
+
34
+ export const TEXT_HEADING_SIZES = {
35
+ h1: { size: 32, lineHeight: 1.25 },
36
+ h2: { size: 28, lineHeight: 1.25 },
37
+ h3: { size: 24, lineHeight: 1.25 },
38
+ h4: { size: 20, lineHeight: 1.25 },
39
+ h5: { size: 16, lineHeight: 1.25 }
40
+ };
41
+
42
+ export const TEXT_UI_SIZES = {
43
+ sm: { size: 14, lineHeight: 1 },
44
+ md: { size: 16, lineHeight: 1 },
45
+ lg: { size: 18, lineHeight: 1 }
46
+ };
47
+
48
+ /* == Border radius == */
49
+
50
+ export const RADIUS_SIZES = {
51
+ none: '0px',
52
+ xs: { size: 5 },
53
+ sm: { size: 10 },
54
+ md: { size: 25 },
55
+ lg: { size: 35 },
56
+ full: '9999px'
57
+ };
58
+
59
+ /* == Border width == */
60
+
61
+ export const BORDER_WIDTH_SIZES = {
62
+ thin: { size: 1 },
63
+ normal: { size: 2 },
64
+ thick: { size: 4 }
65
+ };
66
+
67
+ /* == Stroke width == */
68
+
69
+ export const STROKE_WIDTH_SIZES = {
70
+ thin: { size: 1 },
71
+ normal: { size: 2 },
72
+ thick: { size: 4 }
73
+ };
@@ -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 './design-config.js';
20
- *
21
- * import { rootDesignVarsHTML }
22
- * from '@hkdigital/lib-sveltekit/util/design-system/index.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 '../util/design-system/tailwind.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 './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 './design-config.js';
20
+ *
21
+ * import { rootDesignVarsHTML }
22
+ * from '@hkdigital/lib-sveltekit/util/design-system/index.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 '../util/design-system/tailwind.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 './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);