@hkdigital/lib-sveltekit 0.2.21 → 0.2.22

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 (254) hide show
  1. package/README.md +149 -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 +210 -210
  15. package/dist/classes/logging/constants.js +16 -16
  16. package/dist/classes/logging/index.js +4 -4
  17. package/dist/classes/logging/typedef.js +17 -17
  18. package/dist/classes/promise/HkPromise.js +377 -377
  19. package/dist/classes/promise/index.js +1 -1
  20. package/dist/classes/services/ServiceBase.js +463 -463
  21. package/dist/classes/services/ServiceManager.js +614 -614
  22. package/dist/classes/services/index.js +5 -5
  23. package/dist/classes/services/service-states.js +205 -205
  24. package/dist/classes/services/typedef.js +179 -179
  25. package/dist/classes/stores/SubscribersCount.js +107 -107
  26. package/dist/classes/stores/index.js +1 -1
  27. package/dist/classes/streams/LogTransformStream.js +19 -19
  28. package/dist/classes/streams/ServerEventsStore.js +110 -110
  29. package/dist/classes/streams/TimeStampSource.js +26 -26
  30. package/dist/classes/streams/index.js +3 -3
  31. package/dist/classes/svelte/audio/AudioLoader.svelte.js +58 -58
  32. package/dist/classes/svelte/audio/AudioScene.svelte.js +324 -324
  33. package/dist/classes/svelte/audio/mocks.js +35 -35
  34. package/dist/classes/svelte/finite-state-machine/FiniteStateMachine.svelte.js +133 -133
  35. package/dist/classes/svelte/finite-state-machine/index.js +1 -1
  36. package/dist/classes/svelte/image/ImageLoader.svelte.js +45 -45
  37. package/dist/classes/svelte/image/ImageScene.svelte.js +249 -249
  38. package/dist/classes/svelte/image/ImageVariantsLoader.svelte.js +152 -152
  39. package/dist/classes/svelte/image/index.js +4 -4
  40. package/dist/classes/svelte/image/mocks.js +35 -35
  41. package/dist/classes/svelte/image/typedef.js +8 -8
  42. package/dist/classes/svelte/index.js +14 -14
  43. package/dist/classes/svelte/loading-state-machine/LoadingStateMachine.svelte.js +109 -109
  44. package/dist/classes/svelte/loading-state-machine/constants.js +16 -16
  45. package/dist/classes/svelte/loading-state-machine/index.js +3 -3
  46. package/dist/classes/svelte/network-loader/NetworkLoader.svelte.js +338 -338
  47. package/dist/classes/svelte/network-loader/constants.js +3 -3
  48. package/dist/classes/svelte/network-loader/index.js +3 -3
  49. package/dist/classes/svelte/network-loader/mocks.js +30 -30
  50. package/dist/classes/svelte/network-loader/typedef.js +8 -8
  51. package/dist/components/area/HkArea.svelte +49 -49
  52. package/dist/components/area/HkGridArea.svelte +77 -77
  53. package/dist/components/area/index.js +2 -2
  54. package/dist/components/buttons/button/Button.svelte +82 -82
  55. package/dist/components/buttons/button-icon-steeze/SteezeIconButton.svelte +30 -30
  56. package/dist/components/buttons/button-text/TextButton.svelte +21 -21
  57. package/dist/components/buttons/index.js +3 -3
  58. package/dist/components/debug/debug-panel-design-scaling/DebugPanelDesignScaling.svelte +146 -146
  59. package/dist/components/debug/index.js +1 -1
  60. package/dist/components/drag-drop/DragController.js +44 -44
  61. package/dist/components/drag-drop/DragDropContext.svelte +111 -111
  62. package/dist/components/drag-drop/Draggable.svelte +519 -519
  63. package/dist/components/drag-drop/{Dropzone.svelte → DropZone.svelte} +258 -258
  64. package/dist/components/drag-drop/DropZoneArea.svelte +119 -119
  65. package/dist/components/drag-drop/DropZoneList.svelte +125 -125
  66. package/dist/components/drag-drop/actions.js +26 -26
  67. package/dist/components/drag-drop/drag-state.svelte.js +322 -322
  68. package/dist/components/drag-drop/index.js +7 -7
  69. package/dist/components/drag-drop/util.js +85 -85
  70. package/dist/components/hkdev/blocks/TextBlock.svelte +46 -46
  71. package/dist/components/hkdev/buttons/CheckButton.svelte +62 -62
  72. package/dist/components/icons/HkIcon.svelte +86 -86
  73. package/dist/components/icons/HkTabIcon.svelte +116 -116
  74. package/dist/components/icons/SteezeIcon.svelte +97 -97
  75. package/dist/components/icons/index.js +6 -6
  76. package/dist/components/icons/typedef.js +16 -16
  77. package/dist/components/index.js +2 -2
  78. package/dist/components/inputs/index.js +1 -1
  79. package/dist/components/inputs/text-input/TestTextInput.svelte__ +102 -102
  80. package/dist/components/inputs/text-input/TextInput.svelte +223 -223
  81. package/dist/components/inputs/text-input/TextInput.svelte___ +83 -83
  82. package/dist/components/inputs/text-input/assets/IconInvalid.svelte +14 -14
  83. package/dist/components/inputs/text-input/assets/IconValid.svelte +12 -12
  84. package/dist/components/layout/grid-layers/GridLayers.svelte +63 -63
  85. package/dist/components/layout/grid-layers/GridLayers.svelte__heightFrom__ +372 -0
  86. package/dist/components/layout/grid-layers/util.js +74 -74
  87. package/dist/components/layout/index.js +1 -1
  88. package/dist/components/panels/index.js +1 -1
  89. package/dist/components/panels/panel/Panel.svelte +43 -43
  90. package/dist/components/rows/index.js +3 -3
  91. package/dist/components/rows/panel-grid-row/PanelGridRow.svelte +104 -104
  92. package/dist/components/rows/panel-row-2/PanelRow2.svelte +40 -40
  93. package/dist/components/tab-bar/HkTabBar.state.svelte.js +149 -149
  94. package/dist/components/tab-bar/HkTabBar.svelte +74 -74
  95. package/dist/components/tab-bar/HkTabBarSelector.state.svelte.js +93 -93
  96. package/dist/components/tab-bar/HkTabBarSelector.svelte +49 -49
  97. package/dist/components/tab-bar/index.js +17 -17
  98. package/dist/components/tab-bar/typedef.js +11 -11
  99. package/dist/config/imagetools-config.js +189 -189
  100. package/dist/config/imagetools.d.ts +72 -72
  101. package/dist/constants/bases.js +13 -13
  102. package/dist/constants/errors/api.js +9 -9
  103. package/dist/constants/errors/generic.js +5 -5
  104. package/dist/constants/errors/index.js +3 -3
  105. package/dist/constants/errors/jwt.js +5 -5
  106. package/dist/constants/http/headers.js +6 -6
  107. package/dist/constants/http/index.js +2 -2
  108. package/dist/constants/http/methods.js +14 -14
  109. package/dist/constants/index.js +3 -3
  110. package/dist/constants/mime/application.js +5 -5
  111. package/dist/constants/mime/audio.js +13 -13
  112. package/dist/constants/mime/image.js +3 -3
  113. package/dist/constants/mime/index.js +4 -4
  114. package/dist/constants/mime/text.js +2 -2
  115. package/dist/constants/regexp/index.js +31 -31
  116. package/dist/constants/regexp/inspiratie.js__ +95 -95
  117. package/dist/constants/regexp/text.js +49 -49
  118. package/dist/constants/regexp/user.js +32 -32
  119. package/dist/constants/regexp/web.js +3 -3
  120. package/dist/constants/state-labels/drag-states.js +6 -6
  121. package/dist/constants/state-labels/drop-states.js +6 -6
  122. package/dist/constants/state-labels/input-states.js +11 -11
  123. package/dist/constants/state-labels/submit-states.js +4 -4
  124. package/dist/constants/time.js +28 -28
  125. package/dist/css/utilities.css +43 -43
  126. package/dist/design/design-config.js +73 -73
  127. package/dist/design/tailwind-theme-extend.js +158 -158
  128. package/dist/features/button-group/ButtonGroup.svelte +82 -82
  129. package/dist/features/button-group/typedef.js +10 -10
  130. package/dist/features/compare-left-right/CompareLeftRight.svelte +179 -179
  131. package/dist/features/compare-left-right/index.js +1 -1
  132. package/dist/features/game-box/GameBox.svelte +577 -577
  133. package/dist/features/game-box/gamebox.util.js +83 -83
  134. package/dist/features/hk-app-layout/HkAppLayout.state.svelte.js +25 -25
  135. package/dist/features/hk-app-layout/HkAppLayout.svelte +251 -251
  136. package/dist/features/image-box/ImageBox.svelte +210 -210
  137. package/dist/features/image-box/index.js +5 -5
  138. package/dist/features/image-box/typedef.js +32 -32
  139. package/dist/features/index.js +23 -23
  140. package/dist/features/presenter/ImageSlide.svelte +64 -64
  141. package/dist/features/presenter/Presenter.state.svelte.js +638 -638
  142. package/dist/features/presenter/Presenter.svelte +142 -142
  143. package/dist/features/presenter/constants.js +7 -7
  144. package/dist/features/presenter/index.js +10 -10
  145. package/dist/features/presenter/typedef.js +106 -106
  146. package/dist/features/presenter/util.js +210 -210
  147. package/dist/features/virtual-viewport/VirtualViewport.svelte +196 -196
  148. package/dist/logging/adapters/console.js +114 -114
  149. package/dist/logging/adapters/pino.js +60 -60
  150. package/dist/logging/constants.js +1 -1
  151. package/dist/logging/factories/client.js +21 -21
  152. package/dist/logging/factories/server.js +22 -22
  153. package/dist/logging/factories/universal.js +23 -23
  154. package/dist/logging/index.js +8 -8
  155. package/dist/schemas/index.js +1 -1
  156. package/dist/schemas/validate-url.js +180 -180
  157. package/dist/server/index.js +1 -1
  158. package/dist/server/logger.js +94 -94
  159. package/dist/states/index.js +1 -1
  160. package/dist/states/navigation.svelte.js +55 -55
  161. package/dist/stores/index.js +1 -1
  162. package/dist/stores/theme.js +80 -80
  163. package/dist/themes/hkdev/components/blocks/text-block.css +34 -34
  164. package/dist/themes/hkdev/components/boxes/game-box.css +11 -11
  165. package/dist/themes/hkdev/components/buttons/button-icon-steeze.css +22 -22
  166. package/dist/themes/hkdev/components/buttons/button-text.css +32 -32
  167. package/dist/themes/hkdev/components/buttons/button.css +146 -146
  168. package/dist/themes/hkdev/components/buttons/skip-button.css +5 -5
  169. package/dist/themes/hkdev/components/drag-drop/draggable.css +73 -73
  170. package/dist/themes/hkdev/components/drag-drop/drop-zone.css +58 -58
  171. package/dist/themes/hkdev/components/icons/icon-steeze.css +15 -15
  172. package/dist/themes/hkdev/components/inputs/text-input.css +102 -102
  173. package/dist/themes/hkdev/components/panels/panel.css +25 -25
  174. package/dist/themes/hkdev/components/rows/panel-grid-row.css +4 -4
  175. package/dist/themes/hkdev/components/rows/panel-row-2.css +5 -5
  176. package/dist/themes/hkdev/components.css +29 -29
  177. package/dist/themes/hkdev/debug.css +1 -1
  178. package/dist/themes/hkdev/global/layout.css +32 -32
  179. package/dist/themes/hkdev/global/on-colors.css +32 -32
  180. package/dist/themes/hkdev/globals.css +3 -3
  181. package/dist/themes/hkdev/responsive.css +12 -12
  182. package/dist/themes/hkdev/theme-ext.js +12 -12
  183. package/dist/themes/hkdev/theme.css +218 -218
  184. package/dist/themes/index.js +1 -1
  185. package/dist/typedef/context.js +6 -6
  186. package/dist/typedef/drag.js +25 -25
  187. package/dist/typedef/drop.js +12 -12
  188. package/dist/typedef/image.js +38 -38
  189. package/dist/typedef/index.js +4 -4
  190. package/dist/util/array/index.js +436 -436
  191. package/dist/util/bases/base58.js +262 -262
  192. package/dist/util/bases/index.js +1 -1
  193. package/dist/util/compare/index.js +247 -247
  194. package/dist/util/css/css-vars.js +83 -83
  195. package/dist/util/css/index.js +1 -1
  196. package/dist/util/design-system/components/states.js +22 -22
  197. package/dist/util/design-system/css/clamp.js +66 -66
  198. package/dist/util/design-system/css/root-design-vars.js +102 -102
  199. package/dist/util/design-system/index.js +5 -5
  200. package/dist/util/design-system/layout/scaling.js +228 -228
  201. package/dist/util/design-system/skeleton.js +208 -208
  202. package/dist/util/design-system/tailwind.js +288 -288
  203. package/dist/util/env/index.js +9 -9
  204. package/dist/util/exceptions/index.d.ts +11 -0
  205. package/dist/util/exceptions/index.js +17 -0
  206. package/dist/util/expect/arrays.js +47 -47
  207. package/dist/util/expect/index.js +259 -259
  208. package/dist/util/expect/primitives.js +55 -55
  209. package/dist/util/expect/url.js +60 -60
  210. package/dist/util/function/index.js +218 -218
  211. package/dist/util/geo/index.js +26 -26
  212. package/dist/util/http/caching.js +263 -263
  213. package/dist/util/http/errors.js +97 -97
  214. package/dist/util/http/headers.js +75 -75
  215. package/dist/util/http/http-request.js +578 -578
  216. package/dist/util/http/index.js +22 -22
  217. package/dist/util/http/json-request.js +224 -224
  218. package/dist/util/http/mocks.js +65 -65
  219. package/dist/util/http/response.js +294 -294
  220. package/dist/util/http/test-data__/content-length-test-hkdigital-small.V4HfZyBQ.avif +0 -0
  221. package/dist/util/http/typedef.js +93 -93
  222. package/dist/util/http/url.js +52 -52
  223. package/dist/util/image/index.js +86 -86
  224. package/dist/util/index.d.ts +1 -0
  225. package/dist/util/index.js +3 -2
  226. package/dist/util/is/index.js +140 -140
  227. package/dist/util/iterate/index.js +234 -234
  228. package/dist/util/object/index.js +1361 -1361
  229. package/dist/util/singleton/index.js +97 -97
  230. package/dist/util/string/array-path.js +75 -75
  231. package/dist/util/string/convert.js +54 -54
  232. package/dist/util/string/fs.js +226 -226
  233. package/dist/util/string/index.js +5 -5
  234. package/dist/util/string/interpolate.js +61 -61
  235. package/dist/util/string/pad.js +10 -10
  236. package/dist/util/svelte/index.js +4 -4
  237. package/dist/util/svelte/loading/loading-tracker.svelte.js +108 -108
  238. package/dist/util/svelte/observe/index.js +49 -49
  239. package/dist/util/svelte/state-context/index.js +117 -117
  240. package/dist/util/svelte/wait/index.js +38 -38
  241. package/dist/util/sveltekit/index.js +1 -1
  242. package/dist/util/sveltekit/route-folders/index.js +101 -101
  243. package/dist/util/time/index.js +323 -323
  244. package/dist/util/unique/index.js +249 -249
  245. package/dist/valibot/date.js__ +10 -10
  246. package/dist/valibot/index.js +9 -9
  247. package/dist/valibot/url.js +95 -95
  248. package/dist/valibot/user.js +23 -23
  249. package/dist/zod/all.js +33 -33
  250. package/dist/zod/generic.js +11 -11
  251. package/dist/zod/javascript.js +32 -32
  252. package/dist/zod/user.js +16 -16
  253. package/dist/zod/web.js +52 -52
  254. package/package.json +133 -132
@@ -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);