@hkdigital/lib-sveltekit 0.1.6 → 0.1.7

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 (215) 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 +199 -199
  43. package/dist/components/boxes/virtual-viewport/VirtualViewport.svelte.d.ts +22 -0
  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.js +73 -73
  131. package/dist/design/tailwind-theme-extend.d.ts +4 -4
  132. package/dist/design/tailwind-theme-extend.js +160 -151
  133. package/dist/schemas/index.js +1 -1
  134. package/dist/schemas/validate-url.js +180 -180
  135. package/dist/server/index.js +1 -1
  136. package/dist/server/logger.js +94 -94
  137. package/dist/states/index.js +1 -1
  138. package/dist/states/navigation.svelte.js +55 -55
  139. package/dist/stores/index.js +1 -1
  140. package/dist/stores/theme.js +80 -80
  141. package/dist/themes/hkdev/components/blocks/text-block.postcss +40 -40
  142. package/dist/themes/hkdev/components/boxes/game-box.postcss +13 -13
  143. package/dist/themes/hkdev/components/buttons/button-icon-steeze.postcss +22 -0
  144. package/dist/themes/hkdev/components/buttons/button-text.postcss +34 -34
  145. package/dist/themes/hkdev/components/buttons/button.postcss +138 -138
  146. package/dist/themes/hkdev/components/buttons/button.postcss__ +40 -0
  147. package/dist/themes/hkdev/components/buttons/button.postcss___ +91 -0
  148. package/dist/themes/hkdev/components/buttons/skip-button.postcss +8 -8
  149. package/dist/themes/hkdev/components/icons/icon-steeze.postcss +22 -0
  150. package/dist/themes/hkdev/components/inputs/text-input.postcss +108 -108
  151. package/dist/themes/hkdev/components/panels/plain-panel.postcss +46 -46
  152. package/dist/themes/hkdev/components/panels/speech-bubble.postcss +52 -52
  153. package/dist/themes/hkdev/components/rows/panel-grid-row.postcss +7 -7
  154. package/dist/themes/hkdev/components/rows/panel-row-2.postcss +9 -9
  155. package/dist/themes/hkdev/components.postcss +61 -55
  156. package/dist/themes/hkdev/debug.postcss +1 -1
  157. package/dist/themes/hkdev/global/layout.postcss +39 -39
  158. package/dist/themes/hkdev/global/on-colors.postcss +53 -53
  159. package/dist/themes/hkdev/global/text.postcss__ +34 -34
  160. package/dist/themes/hkdev/global/vars.postcss__ +7 -7
  161. package/dist/themes/hkdev/globals.postcss +11 -11
  162. package/dist/themes/hkdev/responsive.postcss +12 -12
  163. package/dist/themes/hkdev/theme-ext.js +15 -15
  164. package/dist/themes/hkdev/theme.js +227 -227
  165. package/dist/themes/index.js +1 -1
  166. package/dist/util/array/index.js +455 -455
  167. package/dist/util/compare/index.js +247 -247
  168. package/dist/util/css/css-vars.js +83 -83
  169. package/dist/util/css/index.js +1 -1
  170. package/dist/util/design-system/components/states.js +22 -22
  171. package/dist/util/design-system/css/clamp.js +66 -66
  172. package/dist/util/design-system/css/root-design-vars.js +100 -100
  173. package/dist/util/design-system/index.js +5 -5
  174. package/dist/util/design-system/layout/scaling.js +97 -97
  175. package/dist/util/design-system/tailwind.js +289 -289
  176. package/dist/util/expect/arrays.js +47 -47
  177. package/dist/util/expect/index.js +259 -259
  178. package/dist/util/expect/primitives.js +55 -55
  179. package/dist/util/expect/url.js +60 -60
  180. package/dist/util/function/index.js +218 -218
  181. package/dist/util/http/errors.js +97 -97
  182. package/dist/util/http/headers.js +45 -45
  183. package/dist/util/http/http-request.js +273 -273
  184. package/dist/util/http/index.js +22 -22
  185. package/dist/util/http/json-request.js +143 -143
  186. package/dist/util/http/mocks.js +65 -65
  187. package/dist/util/http/response.js +228 -228
  188. package/dist/util/http/url.js +52 -52
  189. package/dist/util/image/index.js +86 -86
  190. package/dist/util/index.js +2 -2
  191. package/dist/util/is/index.js +140 -140
  192. package/dist/util/iterate/index.js +234 -234
  193. package/dist/util/object/index.js +1361 -1361
  194. package/dist/util/singleton/index.js +97 -97
  195. package/dist/util/string/index.js +184 -184
  196. package/dist/util/svelte/index.js +2 -2
  197. package/dist/util/svelte/observe/index.js +49 -49
  198. package/dist/util/svelte/state-context/index.js +83 -83
  199. package/dist/util/svelte/wait/index.js +38 -38
  200. package/dist/util/sveltekit/index.js +1 -1
  201. package/dist/util/sveltekit/route-folders/index.js +82 -82
  202. package/dist/util/time/index.js +339 -339
  203. package/dist/valibot/date.js__ +10 -10
  204. package/dist/valibot/index.js +9 -9
  205. package/dist/valibot/url.js +95 -95
  206. package/dist/valibot/user.js +23 -23
  207. package/dist/zod/all.js +33 -33
  208. package/dist/zod/generic.js +11 -11
  209. package/dist/zod/javascript.js +32 -32
  210. package/dist/zod/user.js +16 -16
  211. package/dist/zod/web.js +52 -52
  212. package/package.json +99 -99
  213. package/dist/components/icon/HkIcon.svelte.d.ts +0 -10
  214. package/dist/components/icon/HkTabIcon.svelte.d.ts +0 -19
  215. /package/dist/components/{icon → icons}/typedef.d.ts +0 -0
@@ -1,30 +1,30 @@
1
- import { CONTENT_TYPE, CONTENT_LENGTH } from '../../../constants/http/index.js';
2
-
3
- import { OCTET_STREAM } from '../../../constants/mime/application.js';
4
-
5
- const BASE64_DATA =
6
- 'UklGRnwAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA';
7
-
8
- /**
9
- * Create a response value that can be used by a mocked
10
- * fetch function
11
- *
12
- * @returns {Response}
13
- */
14
- export function createDataResponse(/* data , options */) {
15
- const binaryString = atob(BASE64_DATA);
16
- const bytes = new Uint8Array(binaryString.length);
17
-
18
- for (let i = 0; i < binaryString.length; i++) {
19
- bytes[i] = binaryString.charCodeAt(i);
20
- }
21
-
22
- const response = new Response(bytes, {
23
- headers: new Headers({
24
- [CONTENT_TYPE]: OCTET_STREAM,
25
- [CONTENT_LENGTH]: String(bytes.length)
26
- })
27
- });
28
-
29
- return response;
30
- }
1
+ import { CONTENT_TYPE, CONTENT_LENGTH } from '../../../constants/http/index.js';
2
+
3
+ import { OCTET_STREAM } from '../../../constants/mime/application.js';
4
+
5
+ const BASE64_DATA =
6
+ 'UklGRnwAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA';
7
+
8
+ /**
9
+ * Create a response value that can be used by a mocked
10
+ * fetch function
11
+ *
12
+ * @returns {Response}
13
+ */
14
+ export function createDataResponse(/* data , options */) {
15
+ const binaryString = atob(BASE64_DATA);
16
+ const bytes = new Uint8Array(binaryString.length);
17
+
18
+ for (let i = 0; i < binaryString.length; i++) {
19
+ bytes[i] = binaryString.charCodeAt(i);
20
+ }
21
+
22
+ const response = new Response(bytes, {
23
+ headers: new Headers({
24
+ [CONTENT_TYPE]: OCTET_STREAM,
25
+ [CONTENT_LENGTH]: String(bytes.length)
26
+ })
27
+ });
28
+
29
+ return response;
30
+ }
@@ -1,8 +1,8 @@
1
- /**
2
- * @typedef {Object} LoadingProgress
3
- * @property {number} bytesLoaded
4
- * @property {number} size
5
- * @property {boolean} loaded
6
- */
7
-
8
- export default {};
1
+ /**
2
+ * @typedef {Object} LoadingProgress
3
+ * @property {number} bytesLoaded
4
+ * @property {number} size
5
+ * @property {boolean} loaded
6
+ */
7
+
8
+ export default {};
@@ -1,49 +1,49 @@
1
- <script>
2
- /**
3
- * Area component
4
- * An area is actually a DIV that can be styled and can contain content
5
- *
6
- * Following component guidelines from Skeleton
7
- * @see https://next.skeleton.dev/docs/resources/contribute/components
8
- */
9
-
10
- /**
11
- * @type {{
12
- * base?: string,
13
- * bg?: string,
14
- * padding?: string,
15
- * margin?: string,
16
- * classes?: string,
17
- * style?: string,
18
- * children: import('svelte').Snippet
19
- * } & { [attr: string]: any }}
20
- */
21
- let {
22
- // Style
23
- base,
24
- bg,
25
- padding,
26
- margin,
27
- classes,
28
- style,
29
-
30
- // Snippets
31
- children,
32
-
33
- // DOM Element
34
- domElem = $bindable(),
35
-
36
- // Attributes
37
- ...attrs
38
- } = $props();
39
- </script>
40
-
41
- <div
42
- data-hk-area
43
- class="{base} {bg} {padding} {margin} {classes}"
44
- bind:this={domElem}
45
- {style}
46
- {...attrs}
47
- >
48
- {@render children()}
49
- </div>
1
+ <script>
2
+ /**
3
+ * Area component
4
+ * An area is actually a DIV that can be styled and can contain content
5
+ *
6
+ * Following component guidelines from Skeleton
7
+ * @see https://next.skeleton.dev/docs/resources/contribute/components
8
+ */
9
+
10
+ /**
11
+ * @type {{
12
+ * base?: string,
13
+ * bg?: string,
14
+ * padding?: string,
15
+ * margin?: string,
16
+ * classes?: string,
17
+ * style?: string,
18
+ * children: import('svelte').Snippet
19
+ * } & { [attr: string]: any }}
20
+ */
21
+ let {
22
+ // Style
23
+ base,
24
+ bg,
25
+ padding,
26
+ margin,
27
+ classes,
28
+ style,
29
+
30
+ // Snippets
31
+ children,
32
+
33
+ // DOM Element
34
+ domElem = $bindable(),
35
+
36
+ // Attributes
37
+ ...attrs
38
+ } = $props();
39
+ </script>
40
+
41
+ <div
42
+ data-hk-area
43
+ class="{base} {bg} {padding} {margin} {classes}"
44
+ bind:this={domElem}
45
+ {style}
46
+ {...attrs}
47
+ >
48
+ {@render children()}
49
+ </div>
@@ -1,4 +1,18 @@
1
1
  export default HkArea;
2
+ type HkArea = {
3
+ $on?(type: string, callback: (e: any) => void): () => void;
4
+ $set?(props: Partial<{
5
+ base?: string;
6
+ bg?: string;
7
+ padding?: string;
8
+ margin?: string;
9
+ classes?: string;
10
+ style?: string;
11
+ children: Snippet<[]>;
12
+ } & {
13
+ [attr: string]: any;
14
+ }>): void;
15
+ };
2
16
  declare const HkArea: import("svelte").Component<{
3
17
  base?: string;
4
18
  bg?: string;
@@ -1,77 +1,77 @@
1
- <script>
2
- /**
3
- * Grid area component
4
- * This component contains a DIV that has display: grid set. It is
5
- * wrapped in a box which makes it possible to add box attributes
6
- * such as margins.
7
- *
8
- * Following component guidelines from Skeleton
9
- * @see https://next.skeleton.dev/docs/resources/contribute/components
10
- */
11
-
12
- import HkArea from './HkArea.svelte';
13
-
14
- /**
15
- * @type {{
16
- * base?: string,
17
- * bg?: string,
18
- * padding?: string,
19
- * margin?: string,
20
- * classes?: string,
21
- * style?: string,
22
- * boxBase?: string,
23
- * boxBg?: string,
24
- * boxPadding?: string,
25
- * boxMargin?: string,
26
- * boxClasses?: string,
27
- * boxAttrs?: { [attr: string]: * },
28
- * children: import('svelte').Snippet
29
- * } & { [attr: string]: any }}
30
- */
31
- let {
32
- // Style
33
- base,
34
- bg,
35
- padding,
36
- margin,
37
- classes,
38
- style,
39
- boxBase,
40
- boxBg,
41
- boxPadding,
42
- boxMargin,
43
- boxClasses,
44
- boxAttrs,
45
-
46
- // Snippets
47
- children,
48
-
49
- // DOM Element's
50
- domElem = $bindable(),
51
- boxDomElem = $bindable(),
52
-
53
- // Attributes
54
- ...attrs
55
- } = $props();
56
- </script>
57
-
58
- <div
59
- data-hk-grid-area-box
60
- class="{boxBase} {boxBg} {boxPadding} {boxMargin} {boxClasses}"
61
- {...boxAttrs}
62
- bind:this={boxDomElem}
63
- >
64
- <HkArea
65
- data-hk-grid-area
66
- base="grid {base}"
67
- bind:domElem
68
- {bg}
69
- {padding}
70
- {margin}
71
- {classes}
72
- {style}
73
- {...attrs}
74
- >
75
- {@render children()}
76
- </HkArea>
77
- </div>
1
+ <script>
2
+ /**
3
+ * Grid area component
4
+ * This component contains a DIV that has display: grid set. It is
5
+ * wrapped in a box which makes it possible to add box attributes
6
+ * such as margins.
7
+ *
8
+ * Following component guidelines from Skeleton
9
+ * @see https://next.skeleton.dev/docs/resources/contribute/components
10
+ */
11
+
12
+ import HkArea from './HkArea.svelte';
13
+
14
+ /**
15
+ * @type {{
16
+ * base?: string,
17
+ * bg?: string,
18
+ * padding?: string,
19
+ * margin?: string,
20
+ * classes?: string,
21
+ * style?: string,
22
+ * boxBase?: string,
23
+ * boxBg?: string,
24
+ * boxPadding?: string,
25
+ * boxMargin?: string,
26
+ * boxClasses?: string,
27
+ * boxAttrs?: { [attr: string]: * },
28
+ * children: import('svelte').Snippet
29
+ * } & { [attr: string]: any }}
30
+ */
31
+ let {
32
+ // Style
33
+ base,
34
+ bg,
35
+ padding,
36
+ margin,
37
+ classes,
38
+ style,
39
+ boxBase,
40
+ boxBg,
41
+ boxPadding,
42
+ boxMargin,
43
+ boxClasses,
44
+ boxAttrs,
45
+
46
+ // Snippets
47
+ children,
48
+
49
+ // DOM Element's
50
+ domElem = $bindable(),
51
+ boxDomElem = $bindable(),
52
+
53
+ // Attributes
54
+ ...attrs
55
+ } = $props();
56
+ </script>
57
+
58
+ <div
59
+ data-hk-grid-area-box
60
+ class="{boxBase} {boxBg} {boxPadding} {boxMargin} {boxClasses}"
61
+ {...boxAttrs}
62
+ bind:this={boxDomElem}
63
+ >
64
+ <HkArea
65
+ data-hk-grid-area
66
+ base="grid {base}"
67
+ bind:domElem
68
+ {bg}
69
+ {padding}
70
+ {margin}
71
+ {classes}
72
+ {style}
73
+ {...attrs}
74
+ >
75
+ {@render children()}
76
+ </HkArea>
77
+ </div>
@@ -1,4 +1,26 @@
1
1
  export default HkGridArea;
2
+ type HkGridArea = {
3
+ $on?(type: string, callback: (e: any) => void): () => void;
4
+ $set?(props: Partial<{
5
+ base?: string;
6
+ bg?: string;
7
+ padding?: string;
8
+ margin?: string;
9
+ classes?: string;
10
+ style?: string;
11
+ boxBase?: string;
12
+ boxBg?: string;
13
+ boxPadding?: string;
14
+ boxMargin?: string;
15
+ boxClasses?: string;
16
+ boxAttrs?: {
17
+ [attr: string]: any;
18
+ };
19
+ children: Snippet<[]>;
20
+ } & {
21
+ [attr: string]: any;
22
+ }>): void;
23
+ };
2
24
  declare const HkGridArea: import("svelte").Component<{
3
25
  base?: string;
4
26
  bg?: string;
@@ -1,2 +1,2 @@
1
- export { default as HkArea } from './HkArea.svelte';
2
- export { default as HkGridArea } from './HkGridArea.svelte';
1
+ export { default as HkArea } from './HkArea.svelte';
2
+ export { default as HkGridArea } from './HkGridArea.svelte';
@@ -1,112 +1,112 @@
1
- <script>
2
- import {
3
- getGameWidthOnLandscape,
4
- getGameWidthOnPortrait
5
- } from './gamebox.util.js';
6
-
7
- /**
8
- * @type {{
9
- * base?: string,
10
- * bg?: string,
11
- * classes?: string,
12
- * style?: string,
13
- * aspectOnLandscape? :number,
14
- * aspectOnPortrait? :number,
15
- * onLandscape?: import('svelte').Snippet,
16
- * onPortrait?: import('svelte').Snippet
17
- * } & { [attr: string]: any }}
18
- */
19
- const {
20
- // > Style
21
- base,
22
- bg,
23
- classes,
24
- style,
25
-
26
- // > Functional
27
- aspectOnLandscape,
28
- aspectOnPortrait,
29
-
30
- // >Snippets
31
- snippetLandscape,
32
- snippetPortrait
33
- } = $props();
34
-
35
- // > Game width and height
36
-
37
- let windowWidth = $state();
38
- let windowHeight = $state();
39
-
40
- let gameWidth = $state();
41
- let gameHeight = $state();
42
-
43
- let isLandscape = $derived(gameWidth > gameHeight);
44
-
45
- $effect(() => {
46
- // Determine game width and height from
47
- // window dimensions and desired game aspect
48
-
49
- let gameAspect;
50
-
51
- if (windowWidth > windowHeight) {
52
- gameWidth = getGameWidthOnLandscape({
53
- windowWidth,
54
- windowHeight,
55
- aspectOnLandscape
56
- });
57
-
58
- gameAspect = aspectOnLandscape;
59
- } else {
60
- gameWidth = getGameWidthOnPortrait({
61
- windowWidth,
62
- windowHeight,
63
- aspectOnPortrait
64
- });
65
-
66
- gameAspect = aspectOnPortrait;
67
- }
68
-
69
- if (gameAspect) {
70
- gameHeight = gameWidth / gameAspect;
71
- } else {
72
- gameHeight = windowHeight;
73
- }
74
- });
75
-
76
- // $inspect({ windowWidth, windowHeight, gameWidth, gameHeight, isLandscape });
77
-
78
- // $effect(() => {
79
- // console.log({
80
- // windowWidth,
81
- // windowHeight,
82
- // gameWidth,
83
- // gameHeight,
84
- // isLandscape
85
- // });
86
- // });
87
- </script>
88
-
89
- <svelte:window bind:innerWidth={windowWidth} bind:innerHeight={windowHeight} />
90
-
91
- {#if gameHeight}
92
- <!-- <div
93
- data-boxes="game-box"
94
- class="{base} {bg} {classes}"
95
- style="width: {gameWidth}px; height: {gameHeight}px;--game-width={gameWidth};--game-height={gameHeight}; {style}" -->
96
-
97
- <div
98
- data-boxes="game-box"
99
- class="{base} {bg} {classes}"
100
- style:width="{gameWidth}px"
101
- style:height="{gameHeight}px"
102
- style:--game-width={gameWidth}
103
- style:--game-height={gameHeight}
104
- {style}
105
- >
106
- {#if isLandscape}
107
- {@render snippetLandscape()}
108
- {:else}
109
- {@render snippetPortrait()}
110
- {/if}
111
- </div>
112
- {/if}
1
+ <script>
2
+ import {
3
+ getGameWidthOnLandscape,
4
+ getGameWidthOnPortrait
5
+ } from './gamebox.util.js';
6
+
7
+ /**
8
+ * @type {{
9
+ * base?: string,
10
+ * bg?: string,
11
+ * classes?: string,
12
+ * style?: string,
13
+ * aspectOnLandscape? :number,
14
+ * aspectOnPortrait? :number,
15
+ * onLandscape?: import('svelte').Snippet,
16
+ * onPortrait?: import('svelte').Snippet
17
+ * } & { [attr: string]: any }}
18
+ */
19
+ const {
20
+ // > Style
21
+ base,
22
+ bg,
23
+ classes,
24
+ style,
25
+
26
+ // > Functional
27
+ aspectOnLandscape,
28
+ aspectOnPortrait,
29
+
30
+ // >Snippets
31
+ snippetLandscape,
32
+ snippetPortrait
33
+ } = $props();
34
+
35
+ // > Game width and height
36
+
37
+ let windowWidth = $state();
38
+ let windowHeight = $state();
39
+
40
+ let gameWidth = $state();
41
+ let gameHeight = $state();
42
+
43
+ let isLandscape = $derived(gameWidth > gameHeight);
44
+
45
+ $effect(() => {
46
+ // Determine game width and height from
47
+ // window dimensions and desired game aspect
48
+
49
+ let gameAspect;
50
+
51
+ if (windowWidth > windowHeight) {
52
+ gameWidth = getGameWidthOnLandscape({
53
+ windowWidth,
54
+ windowHeight,
55
+ aspectOnLandscape
56
+ });
57
+
58
+ gameAspect = aspectOnLandscape;
59
+ } else {
60
+ gameWidth = getGameWidthOnPortrait({
61
+ windowWidth,
62
+ windowHeight,
63
+ aspectOnPortrait
64
+ });
65
+
66
+ gameAspect = aspectOnPortrait;
67
+ }
68
+
69
+ if (gameAspect) {
70
+ gameHeight = gameWidth / gameAspect;
71
+ } else {
72
+ gameHeight = windowHeight;
73
+ }
74
+ });
75
+
76
+ // $inspect({ windowWidth, windowHeight, gameWidth, gameHeight, isLandscape });
77
+
78
+ // $effect(() => {
79
+ // console.log({
80
+ // windowWidth,
81
+ // windowHeight,
82
+ // gameWidth,
83
+ // gameHeight,
84
+ // isLandscape
85
+ // });
86
+ // });
87
+ </script>
88
+
89
+ <svelte:window bind:innerWidth={windowWidth} bind:innerHeight={windowHeight} />
90
+
91
+ {#if gameHeight}
92
+ <!-- <div
93
+ data-boxes="game-box"
94
+ class="{base} {bg} {classes}"
95
+ style="width: {gameWidth}px; height: {gameHeight}px;--game-width={gameWidth};--game-height={gameHeight}; {style}" -->
96
+
97
+ <div
98
+ data-boxes="game-box"
99
+ class="{base} {bg} {classes}"
100
+ style:width="{gameWidth}px"
101
+ style:height="{gameHeight}px"
102
+ style:--game-width={gameWidth}
103
+ style:--game-height={gameHeight}
104
+ {style}
105
+ >
106
+ {#if isLandscape}
107
+ {@render snippetLandscape()}
108
+ {:else}
109
+ {@render snippetPortrait()}
110
+ {/if}
111
+ </div>
112
+ {/if}
@@ -1,4 +1,19 @@
1
1
  export default GameBox;
2
+ type GameBox = {
3
+ $on?(type: string, callback: (e: any) => void): () => void;
4
+ $set?(props: Partial<{
5
+ base?: string;
6
+ bg?: string;
7
+ classes?: string;
8
+ style?: string;
9
+ aspectOnLandscape?: number;
10
+ aspectOnPortrait?: number;
11
+ onLandscape?: Snippet<[]>;
12
+ onPortrait?: Snippet<[]>;
13
+ } & {
14
+ [attr: string]: any;
15
+ }>): void;
16
+ };
2
17
  declare const GameBox: import("svelte").Component<{
3
18
  base?: string;
4
19
  bg?: string;