@hkdigital/lib-sveltekit 0.2.6 → 0.2.8

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.d.ts +0 -20
  59. package/dist/components/drag-drop/DragController.js +44 -113
  60. package/dist/components/drag-drop/DragDropContext.svelte +110 -103
  61. package/dist/components/drag-drop/Draggable.svelte +512 -492
  62. package/dist/components/drag-drop/Draggable.svelte.d.ts +8 -2
  63. package/dist/components/drag-drop/DropZoneArea.svelte +119 -119
  64. package/dist/components/drag-drop/DropZoneList.svelte +125 -125
  65. package/dist/components/drag-drop/{DropZone.svelte → Dropzone.svelte} +258 -258
  66. package/dist/components/drag-drop/drag-state.svelte.js +319 -323
  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/util.js +74 -74
  85. package/dist/components/layout/index.js +1 -1
  86. package/dist/components/panels/index.js +1 -1
  87. package/dist/components/panels/panel/Panel.svelte +43 -43
  88. package/dist/components/rows/index.js +3 -3
  89. package/dist/components/rows/panel-grid-row/PanelGridRow.svelte +104 -104
  90. package/dist/components/rows/panel-row-2/PanelRow2.svelte +40 -40
  91. package/dist/components/tab-bar/HkTabBar.state.svelte.js +149 -149
  92. package/dist/components/tab-bar/HkTabBar.svelte +74 -74
  93. package/dist/components/tab-bar/HkTabBarSelector.state.svelte.js +93 -93
  94. package/dist/components/tab-bar/HkTabBarSelector.svelte +49 -49
  95. package/dist/components/tab-bar/index.js +17 -17
  96. package/dist/components/tab-bar/typedef.js +11 -11
  97. package/dist/config/imagetools-config.js +189 -189
  98. package/dist/config/imagetools.d.ts +72 -72
  99. package/dist/constants/bases.js +13 -13
  100. package/dist/constants/errors/api.js +9 -9
  101. package/dist/constants/errors/generic.js +5 -5
  102. package/dist/constants/errors/index.js +3 -3
  103. package/dist/constants/errors/jwt.js +5 -5
  104. package/dist/constants/http/headers.js +6 -6
  105. package/dist/constants/http/index.js +2 -2
  106. package/dist/constants/http/methods.js +2 -2
  107. package/dist/constants/index.js +3 -3
  108. package/dist/constants/mime/application.js +5 -5
  109. package/dist/constants/mime/audio.js +13 -13
  110. package/dist/constants/mime/image.js +3 -3
  111. package/dist/constants/mime/index.js +4 -4
  112. package/dist/constants/mime/text.js +2 -2
  113. package/dist/constants/regexp/index.js +31 -31
  114. package/dist/constants/regexp/inspiratie.js__ +95 -95
  115. package/dist/constants/regexp/text.js +49 -49
  116. package/dist/constants/regexp/user.js +32 -32
  117. package/dist/constants/regexp/web.js +3 -3
  118. package/dist/constants/state-labels/drag-states.js +6 -6
  119. package/dist/constants/state-labels/drop-states.js +6 -6
  120. package/dist/constants/state-labels/input-states.js +11 -11
  121. package/dist/constants/state-labels/submit-states.js +4 -4
  122. package/dist/constants/time.js +28 -28
  123. package/dist/css/utilities.css +43 -43
  124. package/dist/design/design-config.js +73 -73
  125. package/dist/design/tailwind-theme-extend.js +158 -158
  126. package/dist/features/button-group/ButtonGroup.svelte +82 -82
  127. package/dist/features/button-group/typedef.js +10 -10
  128. package/dist/features/compare-left-right/CompareLeftRight.svelte +179 -179
  129. package/dist/features/compare-left-right/index.js +1 -1
  130. package/dist/features/game-box/GameBox.svelte +577 -577
  131. package/dist/features/game-box/gamebox.util.js +83 -83
  132. package/dist/features/hk-app-layout/HkAppLayout.state.svelte.js +25 -25
  133. package/dist/features/hk-app-layout/HkAppLayout.svelte +251 -251
  134. package/dist/features/image-box/ImageBox.svelte +210 -210
  135. package/dist/features/image-box/index.js +5 -5
  136. package/dist/features/image-box/typedef.js +32 -32
  137. package/dist/features/index.js +23 -23
  138. package/dist/features/presenter/ImageSlide.svelte +64 -64
  139. package/dist/features/presenter/Presenter.state.svelte.js +638 -638
  140. package/dist/features/presenter/Presenter.svelte +142 -142
  141. package/dist/features/presenter/constants.js +7 -7
  142. package/dist/features/presenter/index.js +10 -10
  143. package/dist/features/presenter/typedef.js +106 -106
  144. package/dist/features/presenter/util.js +210 -210
  145. package/dist/features/virtual-viewport/VirtualViewport.svelte +196 -196
  146. package/dist/schemas/index.js +1 -1
  147. package/dist/schemas/validate-url.js +180 -180
  148. package/dist/server/index.js +1 -1
  149. package/dist/server/logger.js +94 -94
  150. package/dist/states/index.js +1 -1
  151. package/dist/states/navigation.svelte.js +55 -55
  152. package/dist/stores/index.js +1 -1
  153. package/dist/stores/theme.js +80 -80
  154. package/dist/themes/hkdev/components/blocks/text-block.css +41 -41
  155. package/dist/themes/hkdev/components/boxes/game-box.css +12 -12
  156. package/dist/themes/hkdev/components/buttons/button-icon-steeze.css +22 -22
  157. package/dist/themes/hkdev/components/buttons/button-text.css +32 -32
  158. package/dist/themes/hkdev/components/buttons/button.css +146 -146
  159. package/dist/themes/hkdev/components/buttons/skip-button.css +6 -6
  160. package/dist/themes/hkdev/components/drag-drop/draggable.css +73 -73
  161. package/dist/themes/hkdev/components/drag-drop/drop-zone.css +48 -48
  162. package/dist/themes/hkdev/components/icons/icon-steeze.css +22 -22
  163. package/dist/themes/hkdev/components/inputs/text-input.css +104 -104
  164. package/dist/themes/hkdev/components/panels/panel.css +27 -27
  165. package/dist/themes/hkdev/components/rows/panel-grid-row.css +6 -6
  166. package/dist/themes/hkdev/components/rows/panel-row-2.css +7 -7
  167. package/dist/themes/hkdev/components.css +53 -53
  168. package/dist/themes/hkdev/debug.css +1 -1
  169. package/dist/themes/hkdev/global/layout.css +39 -39
  170. package/dist/themes/hkdev/global/on-colors.css +53 -53
  171. package/dist/themes/hkdev/globals.css +11 -11
  172. package/dist/themes/hkdev/responsive.css +12 -12
  173. package/dist/themes/hkdev/theme-ext.js +15 -15
  174. package/dist/themes/hkdev/theme.js +235 -235
  175. package/dist/themes/index.js +1 -1
  176. package/dist/typedef/context.js +6 -6
  177. package/dist/typedef/drag.js +25 -25
  178. package/dist/typedef/drop.js +12 -12
  179. package/dist/typedef/image.js +38 -38
  180. package/dist/typedef/index.js +4 -4
  181. package/dist/util/array/index.js +436 -436
  182. package/dist/util/bases/base58.js +262 -262
  183. package/dist/util/bases/index.js +1 -1
  184. package/dist/util/compare/index.js +247 -247
  185. package/dist/util/css/css-vars.js +83 -83
  186. package/dist/util/css/index.js +1 -1
  187. package/dist/util/design-system/components/states.js +22 -22
  188. package/dist/util/design-system/css/clamp.js +66 -66
  189. package/dist/util/design-system/css/root-design-vars.js +102 -102
  190. package/dist/util/design-system/index.js +5 -5
  191. package/dist/util/design-system/layout/scaling.js +228 -228
  192. package/dist/util/design-system/skeleton.js +208 -208
  193. package/dist/util/design-system/tailwind.js +288 -288
  194. package/dist/util/env/index.js +9 -9
  195. package/dist/util/expect/arrays.js +47 -47
  196. package/dist/util/expect/index.js +259 -259
  197. package/dist/util/expect/primitives.js +55 -55
  198. package/dist/util/expect/url.js +60 -60
  199. package/dist/util/function/index.js +218 -218
  200. package/dist/util/geo/index.js +26 -26
  201. package/dist/util/http/caching.js +263 -263
  202. package/dist/util/http/errors.js +97 -97
  203. package/dist/util/http/headers.js +75 -75
  204. package/dist/util/http/http-request.js +379 -379
  205. package/dist/util/http/index.js +22 -22
  206. package/dist/util/http/json-request.js +224 -224
  207. package/dist/util/http/mocks.js +65 -65
  208. package/dist/util/http/response.js +294 -294
  209. package/dist/util/http/typedef.js +93 -93
  210. package/dist/util/http/url.js +52 -52
  211. package/dist/util/image/index.js +86 -86
  212. package/dist/util/index.js +2 -2
  213. package/dist/util/is/index.js +140 -140
  214. package/dist/util/iterate/index.js +234 -234
  215. package/dist/util/object/index.js +1361 -1361
  216. package/dist/util/singleton/index.js +97 -97
  217. package/dist/util/string/array-path.js +75 -75
  218. package/dist/util/string/convert.js +54 -54
  219. package/dist/util/string/fs.js +226 -226
  220. package/dist/util/string/index.js +5 -5
  221. package/dist/util/string/interpolate.js +61 -61
  222. package/dist/util/string/pad.js +10 -10
  223. package/dist/util/svelte/index.js +4 -4
  224. package/dist/util/svelte/loading/loading-tracker.svelte.js +108 -108
  225. package/dist/util/svelte/observe/index.js +49 -49
  226. package/dist/util/svelte/state-context/index.js +117 -117
  227. package/dist/util/svelte/wait/index.js +38 -38
  228. package/dist/util/sveltekit/index.js +1 -1
  229. package/dist/util/sveltekit/route-folders/index.js +101 -101
  230. package/dist/util/time/index.js +323 -323
  231. package/dist/util/unique/index.js +249 -249
  232. package/dist/valibot/date.js__ +10 -10
  233. package/dist/valibot/index.js +9 -9
  234. package/dist/valibot/url.js +95 -95
  235. package/dist/valibot/user.js +23 -23
  236. package/dist/zod/all.js +33 -33
  237. package/dist/zod/generic.js +11 -11
  238. package/dist/zod/javascript.js +32 -32
  239. package/dist/zod/user.js +16 -16
  240. package/dist/zod/web.js +52 -52
  241. package/package.json +112 -112
  242. package/dist/components/layout/grid-layers/GridLayers.svelte__heightFrom__ +0 -372
  243. package/dist/util/http/test-data__/content-length-test-hkdigital-small.V4HfZyBQ.avif +0 -0
@@ -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);