@hkdigital/lib-sveltekit 0.1.6 → 0.1.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 (220) hide show
  1. package/README.md +127 -127
  2. package/dist/classes/data/IterableTree.js +243 -243
  3. package/dist/classes/data/Selector.js +190 -190
  4. package/dist/classes/data/index.js +2 -2
  5. package/dist/classes/index.js +3 -3
  6. package/dist/classes/promise/HkPromise.js +377 -377
  7. package/dist/classes/promise/index.js +1 -1
  8. package/dist/classes/stores/SubscribersCount.js +107 -107
  9. package/dist/classes/stores/index.js +1 -1
  10. package/dist/classes/streams/LogTransformStream.js +19 -19
  11. package/dist/classes/streams/ServerEventsStore.js +110 -110
  12. package/dist/classes/streams/TimeStampSource.js +26 -26
  13. package/dist/classes/streams/index.js +3 -3
  14. package/dist/classes/svelte/audio/AudioLoader.svelte.js +58 -58
  15. package/dist/classes/svelte/audio/AudioScene.svelte.js +282 -282
  16. package/dist/classes/svelte/audio/mocks.js +35 -35
  17. package/dist/classes/svelte/final-state-machine/FiniteStateMachine.svelte.js +133 -133
  18. package/dist/classes/svelte/final-state-machine/index.js +1 -1
  19. package/dist/classes/svelte/image/ImageLoader.svelte.js +47 -47
  20. package/dist/classes/svelte/image/ImageScene.svelte.js +253 -253
  21. package/dist/classes/svelte/image/ImageVariantsLoader.svelte.js +152 -152
  22. package/dist/classes/svelte/image/index.js +4 -4
  23. package/dist/classes/svelte/image/mocks.js +35 -35
  24. package/dist/classes/svelte/image/typedef.js +8 -8
  25. package/dist/classes/svelte/loading-state-machine/LoadingStateMachine.svelte.js +109 -109
  26. package/dist/classes/svelte/loading-state-machine/constants.js +16 -16
  27. package/dist/classes/svelte/loading-state-machine/index.js +3 -3
  28. package/dist/classes/svelte/network-loader/NetworkLoader.svelte.js +331 -331
  29. package/dist/classes/svelte/network-loader/constants.js +3 -3
  30. package/dist/classes/svelte/network-loader/index.js +3 -3
  31. package/dist/classes/svelte/network-loader/mocks.js +30 -30
  32. package/dist/classes/svelte/network-loader/typedef.js +8 -8
  33. package/dist/components/area/HkArea.svelte +49 -49
  34. package/dist/components/area/HkArea.svelte.d.ts +14 -0
  35. package/dist/components/area/HkGridArea.svelte +77 -77
  36. package/dist/components/area/HkGridArea.svelte.d.ts +22 -0
  37. package/dist/components/area/index.js +2 -2
  38. package/dist/components/boxes/game-box/GameBox.svelte +112 -112
  39. package/dist/components/boxes/game-box/GameBox.svelte.d.ts +15 -0
  40. package/dist/components/boxes/game-box/gamebox.util.js +83 -83
  41. package/dist/components/boxes/index.js +2 -2
  42. package/dist/components/boxes/virtual-viewport/VirtualViewport.svelte +196 -199
  43. package/dist/components/boxes/virtual-viewport/VirtualViewport.svelte.d.ts +24 -2
  44. package/dist/components/buttons/button/Button.svelte +76 -75
  45. package/dist/components/buttons/button/Button.svelte.d.ts +21 -0
  46. package/dist/components/buttons/button-icon-steeze/SteezeIconButton.svelte +30 -0
  47. package/dist/components/buttons/button-icon-steeze/SteezeIconButton.svelte.d.ts +16 -0
  48. package/dist/components/buttons/button-text/TextButton.svelte +21 -21
  49. package/dist/components/buttons/button-text/TextButton.svelte.d.ts +7 -0
  50. package/dist/components/buttons/index.d.ts +1 -0
  51. package/dist/components/buttons/index.js +3 -2
  52. package/dist/components/hkdev/blocks/TextBlock.svelte +46 -46
  53. package/dist/components/hkdev/blocks/TextBlock.svelte.d.ts +13 -0
  54. package/dist/components/hkdev/buttons/CheckButton.svelte +62 -62
  55. package/dist/components/hkdev/buttons/CheckButton.svelte.d.ts +18 -0
  56. package/dist/components/{icon → icons}/HkIcon.svelte +86 -86
  57. package/dist/components/icons/HkIcon.svelte.d.ts +22 -0
  58. package/dist/components/{icon → icons}/HkTabIcon.svelte +116 -116
  59. package/dist/components/icons/HkTabIcon.svelte.d.ts +40 -0
  60. package/dist/components/icons/SteezeIcon.svelte +96 -0
  61. package/dist/components/icons/SteezeIcon.svelte.d.ts +22 -0
  62. package/dist/components/{icon → icons}/index.d.ts +1 -0
  63. package/dist/components/{icon → icons}/index.js +6 -4
  64. package/dist/components/{icon → icons}/typedef.js +16 -16
  65. package/dist/components/image/ImageBox.svelte +208 -208
  66. package/dist/components/image/ImageBox.svelte.d.ts +19 -0
  67. package/dist/components/image/index.js +5 -5
  68. package/dist/components/image/typedef.js +32 -32
  69. package/dist/components/index.js +2 -2
  70. package/dist/components/inputs/index.js +1 -1
  71. package/dist/components/inputs/text-input/TestTextInput.svelte__ +102 -102
  72. package/dist/components/inputs/text-input/TextInput.svelte +226 -226
  73. package/dist/components/inputs/text-input/TextInput.svelte.d.ts +28 -0
  74. package/dist/components/inputs/text-input/TextInput.svelte___ +83 -83
  75. package/dist/components/inputs/text-input/assets/IconInvalid.svelte +14 -14
  76. package/dist/components/inputs/text-input/assets/IconValid.svelte +12 -12
  77. package/dist/components/layout/HkAppLayout.state.svelte.js +25 -25
  78. package/dist/components/layout/HkAppLayout.svelte +251 -251
  79. package/dist/components/layout/HkAppLayout.svelte.d.ts +11 -0
  80. package/dist/components/layout/HkGridLayers.svelte +82 -82
  81. package/dist/components/layout/HkGridLayers.svelte.d.ts +23 -0
  82. package/dist/components/layout/index.js +9 -9
  83. package/dist/components/panels/index.js +1 -1
  84. package/dist/components/panels/plain-panel/PlainPanel.svelte +33 -33
  85. package/dist/components/panels/plain-panel/PlainPanel.svelte.d.ts +12 -0
  86. package/dist/components/rows/index.js +3 -3
  87. package/dist/components/rows/panel-grid-row/PanelGridRow.svelte +104 -104
  88. package/dist/components/rows/panel-grid-row/PanelGridRow.svelte.d.ts +14 -0
  89. package/dist/components/rows/panel-row-2/PanelRow2.svelte +40 -40
  90. package/dist/components/rows/panel-row-2/PanelRow2.svelte.d.ts +14 -0
  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/HkTabBar.svelte.d.ts +18 -0
  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/HkTabBarSelector.svelte.d.ts +19 -0
  97. package/dist/components/tab-bar/index.js +17 -17
  98. package/dist/components/tab-bar/typedef.d.ts +1 -1
  99. package/dist/components/tab-bar/typedef.js +8 -8
  100. package/dist/components/widgets/compare-left-right/CompareLeftRight.svelte +179 -179
  101. package/dist/components/widgets/compare-left-right/CompareLeftRight.svelte.d.ts +10 -0
  102. package/dist/components/widgets/compare-left-right/index.js +1 -1
  103. package/dist/components/widgets/scale-control/index.js +1 -1
  104. package/dist/config/imagetools-config.js +189 -189
  105. package/dist/config/imagetools.d.ts +71 -71
  106. package/dist/config/typedef.js +8 -8
  107. package/dist/constants/errors/api.js +9 -9
  108. package/dist/constants/errors/generic.js +5 -5
  109. package/dist/constants/errors/index.js +3 -3
  110. package/dist/constants/errors/jwt.js +5 -5
  111. package/dist/constants/http/headers.js +6 -6
  112. package/dist/constants/http/index.js +2 -2
  113. package/dist/constants/http/methods.js +2 -2
  114. package/dist/constants/index.js +3 -3
  115. package/dist/constants/mime/application.js +5 -5
  116. package/dist/constants/mime/audio.js +13 -13
  117. package/dist/constants/mime/image.js +3 -3
  118. package/dist/constants/mime/index.js +4 -4
  119. package/dist/constants/mime/text.js +2 -2
  120. package/dist/constants/regexp/index.js +31 -31
  121. package/dist/constants/regexp/inspiratie.js__ +95 -95
  122. package/dist/constants/regexp/text.js +49 -49
  123. package/dist/constants/regexp/user.js +32 -32
  124. package/dist/constants/regexp/web.js +3 -3
  125. package/dist/constants/state-labels/input-states.js +11 -11
  126. package/dist/constants/state-labels/submit-states.js +4 -4
  127. package/dist/constants/time.js +28 -28
  128. package/dist/css/tw-prose.postcss__ +259 -259
  129. package/dist/css/utilities.postcss +43 -43
  130. package/dist/design/design-config.d.ts +7 -6
  131. package/dist/design/design-config.js +73 -73
  132. package/dist/design/tailwind-theme-extend.d.ts +4 -4
  133. package/dist/design/tailwind-theme-extend.js +158 -151
  134. package/dist/schemas/index.js +1 -1
  135. package/dist/schemas/validate-url.js +180 -180
  136. package/dist/server/index.js +1 -1
  137. package/dist/server/logger.js +94 -94
  138. package/dist/states/index.js +1 -1
  139. package/dist/states/navigation.svelte.js +55 -55
  140. package/dist/stores/index.js +1 -1
  141. package/dist/stores/theme.js +80 -80
  142. package/dist/themes/hkdev/components/blocks/text-block.postcss +41 -41
  143. package/dist/themes/hkdev/components/boxes/game-box.postcss +13 -13
  144. package/dist/themes/hkdev/components/buttons/button-icon-steeze.postcss +22 -0
  145. package/dist/themes/hkdev/components/buttons/button-text.postcss +34 -34
  146. package/dist/themes/hkdev/components/buttons/button.postcss +138 -138
  147. package/dist/themes/hkdev/components/buttons/button.postcss__ +40 -0
  148. package/dist/themes/hkdev/components/buttons/button.postcss___ +91 -0
  149. package/dist/themes/hkdev/components/buttons/skip-button.postcss +8 -8
  150. package/dist/themes/hkdev/components/icons/icon-steeze.postcss +22 -0
  151. package/dist/themes/hkdev/components/inputs/text-input.postcss +108 -108
  152. package/dist/themes/hkdev/components/panels/plain-panel.postcss +46 -46
  153. package/dist/themes/hkdev/components/panels/speech-bubble.postcss +52 -52
  154. package/dist/themes/hkdev/components/rows/panel-grid-row.postcss +7 -7
  155. package/dist/themes/hkdev/components/rows/panel-row-2.postcss +9 -9
  156. package/dist/themes/hkdev/components.postcss +61 -55
  157. package/dist/themes/hkdev/debug.postcss +1 -1
  158. package/dist/themes/hkdev/global/layout.postcss +39 -39
  159. package/dist/themes/hkdev/global/on-colors.postcss +53 -53
  160. package/dist/themes/hkdev/global/text.postcss__ +34 -34
  161. package/dist/themes/hkdev/global/vars.postcss__ +7 -7
  162. package/dist/themes/hkdev/globals.postcss +11 -11
  163. package/dist/themes/hkdev/responsive.postcss +12 -12
  164. package/dist/themes/hkdev/theme-ext.js +15 -15
  165. package/dist/themes/hkdev/theme.js +227 -227
  166. package/dist/themes/index.js +1 -1
  167. package/dist/util/array/index.js +455 -455
  168. package/dist/util/compare/index.js +247 -247
  169. package/dist/util/css/css-vars.js +83 -83
  170. package/dist/util/css/index.js +1 -1
  171. package/dist/util/design-system/components/states.js +22 -22
  172. package/dist/util/design-system/css/clamp.d.ts +2 -2
  173. package/dist/util/design-system/css/clamp.js +66 -66
  174. package/dist/util/design-system/css/root-design-vars.d.ts +4 -4
  175. package/dist/util/design-system/css/root-design-vars.js +100 -100
  176. package/dist/util/design-system/index.js +5 -5
  177. package/dist/util/design-system/layout/scaling.d.ts +4 -4
  178. package/dist/util/design-system/layout/scaling.js +97 -97
  179. package/dist/util/design-system/tailwind.d.ts +20 -20
  180. package/dist/util/design-system/tailwind.js +289 -289
  181. package/dist/util/expect/arrays.js +47 -47
  182. package/dist/util/expect/index.js +259 -259
  183. package/dist/util/expect/primitives.js +55 -55
  184. package/dist/util/expect/url.js +60 -60
  185. package/dist/util/function/index.js +218 -218
  186. package/dist/util/http/errors.js +97 -97
  187. package/dist/util/http/headers.js +45 -45
  188. package/dist/util/http/http-request.js +273 -273
  189. package/dist/util/http/index.js +22 -22
  190. package/dist/util/http/json-request.js +143 -143
  191. package/dist/util/http/mocks.js +65 -65
  192. package/dist/util/http/response.js +228 -228
  193. package/dist/util/http/url.js +52 -52
  194. package/dist/util/image/index.js +86 -86
  195. package/dist/util/index.js +2 -2
  196. package/dist/util/is/index.js +140 -140
  197. package/dist/util/iterate/index.js +234 -234
  198. package/dist/util/object/index.js +1361 -1361
  199. package/dist/util/singleton/index.js +97 -97
  200. package/dist/util/string/index.js +184 -184
  201. package/dist/util/svelte/index.js +2 -2
  202. package/dist/util/svelte/observe/index.js +49 -49
  203. package/dist/util/svelte/state-context/index.js +83 -83
  204. package/dist/util/svelte/wait/index.js +38 -38
  205. package/dist/util/sveltekit/index.js +1 -1
  206. package/dist/util/sveltekit/route-folders/index.js +82 -82
  207. package/dist/util/time/index.js +339 -339
  208. package/dist/valibot/date.js__ +10 -10
  209. package/dist/valibot/index.js +9 -9
  210. package/dist/valibot/url.js +95 -95
  211. package/dist/valibot/user.js +23 -23
  212. package/dist/zod/all.js +33 -33
  213. package/dist/zod/generic.js +11 -11
  214. package/dist/zod/javascript.js +32 -32
  215. package/dist/zod/user.js +16 -16
  216. package/dist/zod/web.js +52 -52
  217. package/package.json +99 -99
  218. package/dist/components/icon/HkIcon.svelte.d.ts +0 -10
  219. package/dist/components/icon/HkTabIcon.svelte.d.ts +0 -19
  220. /package/dist/components/{icon → icons}/typedef.d.ts +0 -0
@@ -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
- textContent: { 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_CONTENT_SIZES = {
29
- sm: { size: 14, lineHeight: 1.5 },
30
- base: { size: 16, lineHeight: 1.5 },
31
- lg: { size: 18, lineHeight: 1.4 }
32
- };
33
-
34
- export const TEXT_HEADING_SIZES = {
35
- h1: { size: 32, lineHeight: 1.1 },
36
- h2: { size: 28, lineHeight: 1.1 },
37
- h3: { size: 24, lineHeight: 1.2 },
38
- h4: { size: 20, lineHeight: 1.2 },
39
- h5: { size: 16, lineHeight: 1.3 }
40
- };
41
-
42
- export const TEXT_UI_SIZES = {
43
- sm: { size: 14, lineHeight: 1.1 },
44
- base: { size: 16, lineHeight: 1.1 },
45
- lg: { size: 18, lineHeight: 1.1 }
46
- };
47
-
48
- /* == Border radius == */
49
-
50
- export const RADIUS_SIZES = {
51
- none: '0px',
52
- xs: { size: 1 },
53
- sm: { size: 2 },
54
- md: { size: 4 },
55
- lg: { size: 8 },
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.5 },
30
+ md: { size: 16, lineHeight: 1.5 },
31
+ lg: { size: 18, lineHeight: 1.4 }
32
+ };
33
+
34
+ export const TEXT_HEADING_SIZES = {
35
+ h1: { size: 32, lineHeight: 1.1 },
36
+ h2: { size: 28, lineHeight: 1.1 },
37
+ h3: { size: 24, lineHeight: 1.2 },
38
+ h4: { size: 20, lineHeight: 1.2 },
39
+ h5: { size: 16, lineHeight: 1.3 }
40
+ };
41
+
42
+ export const TEXT_UI_SIZES = {
43
+ sm: { size: 14, lineHeight: 1.1 },
44
+ md: { size: 16, lineHeight: 1.1 },
45
+ lg: { size: 18, lineHeight: 1.1 }
46
+ };
47
+
48
+ /* == Border radius == */
49
+
50
+ export const RADIUS_SIZES = {
51
+ none: '0px',
52
+ xs: { size: 1 },
53
+ sm: { size: 2 },
54
+ md: { size: 4 },
55
+ lg: { size: 8 },
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
+ };
@@ -10,14 +10,14 @@ export const borderRadius: {
10
10
  [x: string]: string;
11
11
  };
12
12
  export const borderWidth: {
13
- [x: string]: string;
13
+ [key: string]: string;
14
14
  };
15
15
  export const strokeWidth: {
16
- [x: string]: string;
16
+ [key: string]: string;
17
17
  };
18
18
  export const outlineWidth: {
19
- [x: string]: string;
19
+ [key: string]: string;
20
20
  };
21
21
  export const outlineOffset: {
22
- [x: string]: string;
22
+ [key: string]: string;
23
23
  };
@@ -1,151 +1,158 @@
1
- /**
2
- * Design System Configuration
3
- * Using CSS Custom Properties (variables) for consistent scaling
4
- *
5
- * @note
6
- * Make sure to import scaling.vars.postcss in your application.
7
- * It contains CSS variables used by the Tailwind theme extensions defined
8
- * below
9
- *
10
- *
11
- *
12
- * FIXME>>>
13
- *
14
- * e.g. in your app.postcss:
15
- *
16
- * // @import "../src/lib/tailwind/extend/scaling/vars.postcss";
17
- *
18
- * <<<FIXME
19
- *
20
- * Base units:
21
- * --scale-w: 0.052vw (Viewport Width Point)
22
- * --scale-h: 0.09259vh (Viewport Height Point)
23
- * --scale-viewport: min(var(--scale-w), var(--scale-h)) (Viewport Point)
24
- * --scale-ui: clamp(0.3, var(--scale-viewport), 2) (UI Point)
25
- * --scale-text-content: clamp(0.75, var(--scale-viewport), 1.5) (Content Text)
26
- * --scale-text-heading: clamp(0.75, var(--scale-viewport), 2.25) (Heading Text)
27
- * --scale-text-ui: clamp(0.5, var(--scale-viewport), 1.25) (UI Text)
28
- *
29
- * --
30
- *
31
- * UI Points (p) - Clamped scaling values
32
- * Based on viewport scaling with minimum and maximum bounds
33
- * to ensure usability across all screen sizes
34
- *
35
- * > PREFERRED METHOD FOR UI ELEMENT SCALING
36
- *
37
- * Examples:
38
- * 5p = 5px at design size (clamps between 1.5px and 10px)
39
- * 10p = 10px at design size (clamps between 3px and 20px)
40
- * 20p = 20px at design size (clamps between 6px and 40px)
41
- *
42
- * Used for:
43
- * - Component padding and margins
44
- * - Interface element sizing
45
- * - Any UI element that needs responsive scaling with guardrails
46
- *
47
- * --
48
- *
49
- * Text-Based Spacing Units (ut, ct, ht)
50
- * Scaled by their respective text scaling variables
51
- *
52
- * > PREFERRED METHOD FOR TEXT-RELATED SPACING
53
- *
54
- * Examples:
55
- * 4ut = calc(4px * var(--scale-text-ui)) // UI text spacing
56
- * 4ct = calc(4px * var(--scale-text-content)) // Content text spacing
57
- * 4ht = calc(4px * var(--scale-text-heading)) // Heading text spacing
58
- *
59
- * Used for:
60
- * - ut: Button padding, form spacing, UI component margins
61
- * - ct: Paragraph margins, list spacing, content gaps
62
- * - ht: Heading margins, title spacing
63
- *
64
- * --
65
- *
66
- * Viewport Points (vp, wp, hp) - Responsive scaling values
67
- * vp: Uses min of width/height scaling
68
- * wp: Uses width-based scaling (1920px reference)
69
- * hp: Uses height-based scaling (1080px reference)
70
- *
71
- * > ALTERNATIVE SCALING METHODS
72
- *
73
- * Examples:
74
- * 10vp = calc(10px * var(--scale-viewport))
75
- * 10wp = calc(10px * var(--scale-w))
76
- * 10hp = calc(10px * var(--scale-h))
77
- *
78
- * Used for:
79
- * - Interface scaling that needs to fit both width and height
80
- * - Maintaining aspect ratio of design
81
- * - Preventing overflow in either direction
82
- */
83
- import {
84
- generateTextBasedSpacing,
85
- generateViewportBasedSpacing,
86
- generateTextStyles,
87
- generateBorderRadiusStyles,
88
- generateWidthStyles
89
- } from '../util/design-system/tailwind.js';
90
-
91
- import {
92
- TEXT_POINT_SIZES,
93
- VIEWPORT_POINT_SIZES,
94
- TEXT_CONTENT_SIZES,
95
- TEXT_HEADING_SIZES,
96
- TEXT_UI_SIZES,
97
- RADIUS_SIZES,
98
- BORDER_WIDTH_SIZES,
99
- STROKE_WIDTH_SIZES
100
- } from './design-config.js';
101
-
102
- /* == Internals */
103
-
104
- const TEXT_BASED_SPACING = generateTextBasedSpacing(TEXT_POINT_SIZES);
105
- const VIEWPORT_BASED_SPACING =
106
- generateViewportBasedSpacing(VIEWPORT_POINT_SIZES);
107
-
108
- /* == Exports */
109
-
110
- export const spacing = {
111
- ...VIEWPORT_BASED_SPACING,
112
- ...TEXT_BASED_SPACING
113
- };
114
-
115
- export const fontSize = {
116
- ...TEXT_BASED_SPACING,
117
-
118
- // Named styles
119
- ...generateTextStyles(TEXT_CONTENT_SIZES, 'content'),
120
- ...generateTextStyles(TEXT_HEADING_SIZES, 'heading'),
121
- ...generateTextStyles(TEXT_UI_SIZES, 'ui')
122
- };
123
-
124
- export const borderRadius = {
125
- // Named styles
126
- ...generateBorderRadiusStyles(RADIUS_SIZES)
127
- };
128
-
129
- export const borderWidth = {
130
- // Named styles
131
- ...generateWidthStyles(BORDER_WIDTH_SIZES, 'width')
132
- };
133
-
134
- export const strokeWidth = {
135
- // Named styles
136
- ...generateWidthStyles(STROKE_WIDTH_SIZES, 'width')
137
- };
138
-
139
- export const outlineWidth = {
140
- // Named styles
141
- ...generateWidthStyles(STROKE_WIDTH_SIZES, '')
142
- };
143
-
144
- export const outlineOffset = {
145
- // Named styles
146
- ...generateWidthStyles(STROKE_WIDTH_SIZES, '')
147
- };
148
-
149
- // console.log('borderWidth', borderWidth);
150
- // console.log('outlineWidth', outlineWidth);
151
- // 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.postcss';
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 +1 @@
1
- export * from './validate-url.js';
1
+ export * from './validate-url.js';