@hkdigital/lib-core 0.5.88 → 0.5.91

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 (27) hide show
  1. package/dist/state/classes/reactive-data-store/README.md +445 -0
  2. package/dist/state/classes/reactive-data-store/ReactiveDataStore.svelte.d.ts +152 -0
  3. package/dist/state/classes/reactive-data-store/ReactiveDataStore.svelte.js +300 -0
  4. package/dist/state/classes.d.ts +1 -0
  5. package/dist/state/classes.js +1 -0
  6. package/dist/state/machines/page-machine/PageMachine.svelte.d.ts +45 -232
  7. package/dist/state/machines/page-machine/PageMachine.svelte.js +61 -308
  8. package/dist/state/machines/page-machine/README.md +79 -20
  9. package/dist/ui/CHANGES-COMPONENT-PROPS.md +121 -0
  10. package/dist/ui/components/game-box/GameBox.svelte +10 -7
  11. package/dist/ui/components/game-box/GameBox.svelte.d.ts +2 -0
  12. package/dist/ui/components/game-box/ScaledContainer.svelte +14 -7
  13. package/dist/ui/components/grid-layers/GridLayers.svelte +9 -7
  14. package/dist/ui/components/grid-layers/GridLayers.svelte.d.ts +2 -0
  15. package/dist/ui/components/image-box/ImageBox.svelte +9 -7
  16. package/dist/ui/components/image-box/ImageBox.svelte.d.ts +2 -0
  17. package/dist/ui/components/presenter/Presenter.svelte +5 -3
  18. package/dist/ui/components/presenter/Presenter.svelte.d.ts +2 -0
  19. package/dist/ui/primitives/buttons/button/Button.svelte +9 -7
  20. package/dist/ui/primitives/buttons/button/Button.svelte.d.ts +2 -0
  21. package/dist/ui/primitives/icons/SteezeIcon.svelte +7 -5
  22. package/dist/ui/primitives/icons/SteezeIcon.svelte.d.ts +2 -0
  23. package/dist/ui/primitives/panels/panel/Panel.svelte +9 -7
  24. package/dist/ui/primitives/panels/panel/Panel.svelte.d.ts +2 -0
  25. package/package.json +1 -1
  26. package/dist/state/classes/subscribers-count/index.d.ts +0 -1
  27. package/dist/state/classes/subscribers-count/index.js +0 -1
@@ -0,0 +1,121 @@
1
+ # UI Component Changes
2
+
3
+ ## Property Name Changes (2026-01)
4
+
5
+ ### Background
6
+ Skeleton.dev has updated their component API standards, and we follow
7
+ skeleton standards for consistency across the ecosystem.
8
+
9
+ ### Changes
10
+
11
+ #### `classes` → `class`
12
+ All UI components now accept `class` instead of `classes` for CSS
13
+ class names.
14
+
15
+ #### `base` → removed
16
+ The `base` property has been deprecated. Use `class` instead.
17
+
18
+ #### `bg` → removed
19
+ The `bg` property has been deprecated. Use `class` instead.
20
+
21
+ ### Migration Guide
22
+
23
+ **Before:**
24
+ ```svelte
25
+ <SteezeIcon
26
+ base="icon-base"
27
+ classes="text-primary-500"
28
+ src={icon}
29
+ />
30
+
31
+ <GameBox
32
+ base="box-base"
33
+ bg="bg-surface-100"
34
+ classes="rounded-md"
35
+ />
36
+ ```
37
+
38
+ **After:**
39
+ ```svelte
40
+ <SteezeIcon
41
+ class="icon-base text-primary-500"
42
+ src={icon}
43
+ />
44
+
45
+ <GameBox
46
+ class="box-base bg-surface-100 rounded-md"
47
+ />
48
+ ```
49
+
50
+ ### Implementation Pattern
51
+
52
+ All components follow this exact pattern for backward compatibility:
53
+
54
+ **JSDoc Type:**
55
+ ```javascript
56
+ /**
57
+ * @type {{
58
+ * class?: string,
59
+ * base?: string, // Deprecated: use 'class' instead
60
+ * bg?: string, // Deprecated: use 'class' instead (if applicable)
61
+ * classes?: string, // Deprecated: use 'class' instead
62
+ * // ... other props
63
+ * }}
64
+ */
65
+ ```
66
+
67
+ **Props Destructuring:**
68
+ ```javascript
69
+ const {
70
+ class: className,
71
+ base, // Deprecated: kept for backward compatibility
72
+ bg, // Deprecated: kept for backward compatibility (if applicable)
73
+ classes, // Deprecated: kept for backward compatibility
74
+ // ... other props
75
+ } = $props();
76
+ ```
77
+
78
+ **Class Attribute Usage:**
79
+ ```svelte
80
+ <!-- With bg prop -->
81
+ <div class="{base ?? ''} {bg ?? ''} {className ?? classes ?? ''}"></div>
82
+
83
+ <!-- Without bg prop -->
84
+ <div class="{base ?? ''} {className ?? classes ?? ''}"></div>
85
+ ```
86
+
87
+ **Priority Order:**
88
+ 1. `base` - applied first if provided
89
+ 2. `bg` - applied second if provided and component supports it
90
+ 3. `className` - from new `class` prop, applied if `classes` not provided
91
+ 4. `classes` - deprecated fallback, applied if `className` not provided
92
+
93
+ ### Backward Compatibility
94
+
95
+ During the transition period, components accept both old and new
96
+ property names:
97
+
98
+ - `class` - new standard (recommended)
99
+ - `classes` - deprecated, still works
100
+ - `base` - deprecated, still works
101
+ - `bg` - deprecated, still works (GameBox only)
102
+
103
+ All properties will be merged if provided together, allowing gradual
104
+ migration without breaking existing code.
105
+
106
+ ### Timeline
107
+
108
+ - **Now**: Both old and new properties supported
109
+ - **Future**: `base`, `bg`, and `classes` will be removed in a future
110
+ major version
111
+
112
+ ### Affected Components
113
+
114
+ - `SteezeIcon.svelte`
115
+ - `GameBox.svelte`
116
+ - `ImageBox.svelte`
117
+ - `Presenter.svelte`
118
+ - `GridLayers.svelte`
119
+ - `Panel.svelte`
120
+ - `Button.svelte`
121
+ - More components will be updated following this pattern
@@ -26,9 +26,10 @@
26
26
 
27
27
  /**
28
28
  * @type {{
29
- * base?: string,
30
- * bg?: string,
31
- * classes?: string,
29
+ * class?: string,
30
+ * base?: string, // Deprecated: use 'class' instead
31
+ * bg?: string, // Deprecated: use 'class' instead
32
+ * classes?: string, // Deprecated: use 'class' instead
32
33
  * style?: string,
33
34
  * aspectOnLandscape?: number,
34
35
  * aspectOnPortrait?: number,
@@ -57,9 +58,10 @@
57
58
  */
58
59
  const {
59
60
  // > Style
60
- base = '',
61
- bg = '',
62
- classes = '',
61
+ class: className,
62
+ base, // Deprecated: kept for backward compatibility
63
+ bg, // Deprecated: kept for backward compatibility
64
+ classes, // Deprecated: kept for backward compatibility
63
65
  style = '',
64
66
 
65
67
  // > Functional properties
@@ -468,8 +470,9 @@
468
470
  <div
469
471
  data-component="game-box"
470
472
  data-orientation={isLandscape ? 'landscape' : 'portrait'}
471
- class="{base} {bg} {classes}"
473
+ class="{base ?? ''} {bg ?? ''} {className ?? classes ?? ''}"
472
474
  class:isMobile
475
+ style:position="relative"
473
476
  style:width="{gameWidth}px"
474
477
  style:height="{gameHeight}px"
475
478
  style:--game-width={gameWidth}
@@ -3,6 +3,7 @@ type GameBox = {
3
3
  $on?(type: string, callback: (e: any) => void): () => void;
4
4
  $set?(props: Partial<{
5
5
  [attr: string]: any;
6
+ class?: string | undefined;
6
7
  base?: string | undefined;
7
8
  bg?: string | undefined;
8
9
  classes?: string | undefined;
@@ -51,6 +52,7 @@ type GameBox = {
51
52
  };
52
53
  declare const GameBox: import("svelte").Component<{
53
54
  [attr: string]: any;
55
+ class?: string;
54
56
  base?: string;
55
57
  bg?: string;
56
58
  classes?: string;
@@ -1,6 +1,12 @@
1
1
  <script>
2
+ // import { onMount } from 'svelte';
3
+
2
4
  import { enableContainerScaling } from '../../../design/index.js';
3
5
 
6
+ // onMount( () => {
7
+ // console.debug('[ScaledContainer] mounted');
8
+ // } );
9
+
4
10
  /**
5
11
  * Wrapper component that applies container scaling to its children
6
12
  *
@@ -41,13 +47,13 @@
41
47
  !width ||
42
48
  !height ||
43
49
  !design ||
44
- !clamping ||
45
- hidden
50
+ !clamping
51
+ // || hidden
46
52
  ) {
47
53
  return;
48
54
  }
49
55
 
50
- // console.debug(`Enable scaling [${width},${height}]`);
56
+ console.debug(`Enable scaling [${width},${height}]`);
51
57
 
52
58
  return enableContainerScaling({
53
59
  container,
@@ -62,16 +68,17 @@
62
68
  <div
63
69
  data-component="scaled-container"
64
70
  bind:this={container}
65
- class:hidden
71
+ style:position="absolute"
72
+ style:top="0"
73
+ style:left="0"
66
74
  style:width="{width}px"
67
75
  style:height="{height}px"
76
+ style:visibility={hidden ? "hidden" : "visible"}
68
77
  >
69
78
  {@render snippet(snippetParams)}
70
79
  </div>
71
80
  {/if}
72
81
 
73
82
  <style>
74
- .hidden {
75
- visibility: hidden;
76
- }
83
+ /* Positioning and visibility handled via inline styles */
77
84
  </style>
@@ -6,11 +6,12 @@
6
6
  * enabling layered layouts with natural height behavior.
7
7
  *
8
8
  * @type {{
9
- * base?: string,
10
- * bg?: string,
9
+ * class?: string,
10
+ * base?: string, // Deprecated: use 'class' instead
11
+ * bg?: string, // Deprecated: use 'class' instead
11
12
  * padding?: string,
12
13
  * margin?: string,
13
- * classes?: string,
14
+ * classes?: string, // Deprecated: use 'class' instead
14
15
  * style?: string,
15
16
  * overflow?: string,
16
17
  * children: import('svelte').Snippet,
@@ -19,11 +20,12 @@
19
20
  */
20
21
  const {
21
22
  // Container styles
22
- base = '',
23
- bg = '',
23
+ class: className,
24
+ base, // Deprecated: kept for backward compatibility
25
+ bg, // Deprecated: kept for backward compatibility
24
26
  padding = '',
25
27
  margin = '',
26
- classes = '',
28
+ classes, // Deprecated: kept for backward compatibility
27
29
  style = '',
28
30
  overflow = '',
29
31
 
@@ -48,7 +50,7 @@
48
50
 
49
51
  <div
50
52
  data-component="grid-layers"
51
- class="grid {base} {bg} {classes} {margin} {padding} {overflow}"
53
+ class="grid {base ?? ''} {bg ?? ''} {className ?? classes ?? ''} {margin} {padding} {overflow}"
52
54
  style={containerStyle}
53
55
  {...attrs}
54
56
  >
@@ -3,6 +3,7 @@ type GridLayers = {
3
3
  $on?(type: string, callback: (e: any) => void): () => void;
4
4
  $set?(props: Partial<{
5
5
  [attr: string]: any;
6
+ class?: string | undefined;
6
7
  base?: string | undefined;
7
8
  bg?: string | undefined;
8
9
  padding?: string | undefined;
@@ -15,6 +16,7 @@ type GridLayers = {
15
16
  };
16
17
  declare const GridLayers: import("svelte").Component<{
17
18
  [attr: string]: any;
19
+ class?: string;
18
20
  base?: string;
19
21
  bg?: string;
20
22
  padding?: string;
@@ -4,9 +4,10 @@
4
4
 
5
5
  /**
6
6
  * @type {{
7
- * base?: string,
8
- * bg?: string,
9
- * classes?: string,
7
+ * class?: string,
8
+ * base?: string, // Deprecated: use 'class' instead
9
+ * bg?: string, // Deprecated: use 'class' instead
10
+ * classes?: string, // Deprecated: use 'class' instead
10
11
  * width?: string,
11
12
  * height?: string,
12
13
  * aspect?: string,
@@ -23,9 +24,10 @@
23
24
  */
24
25
  let {
25
26
  // Style
26
- base,
27
- bg,
28
- classes,
27
+ class: className,
28
+ base, // Deprecated: kept for backward compatibility
29
+ bg, // Deprecated: kept for backward compatibility
30
+ classes, // Deprecated: kept for backward compatibility
29
31
  width,
30
32
  height,
31
33
  aspect,
@@ -172,7 +174,7 @@
172
174
  <div
173
175
  data-component="image-box"
174
176
  bind:this={containerElem}
175
- class="{base} {bg} {aspect} {overflow} {width} {height} {classes}"
177
+ class="{base ?? ''} {bg ?? ''} {aspect} {overflow} {width} {height} {className ?? classes ?? ''}"
176
178
  style:--fit={fit}
177
179
  style:--pos={position}
178
180
  style:width={width || (height && aspect) ? undefined : '100%'}
@@ -3,6 +3,7 @@ type ImageBox = {
3
3
  $on?(type: string, callback: (e: any) => void): () => void;
4
4
  $set?(props: Partial<{
5
5
  [attr: string]: any;
6
+ class?: string | undefined;
6
7
  base?: string | undefined;
7
8
  bg?: string | undefined;
8
9
  classes?: string | undefined;
@@ -21,6 +22,7 @@ type ImageBox = {
21
22
  };
22
23
  declare const ImageBox: import("svelte").Component<{
23
24
  [attr: string]: any;
25
+ class?: string;
24
26
  base?: string;
25
27
  bg?: string;
26
28
  classes?: string;
@@ -16,7 +16,8 @@
16
16
 
17
17
  /**
18
18
  * @type {{
19
- * classes?: string,
19
+ * class?: string,
20
+ * classes?: string, // Deprecated: use 'class' instead
20
21
  * slides?: import("./typedef.js").Slide[],
21
22
  * presenterRef?: import('./Presenter.state.svelte.js').PresenterRef,
22
23
  * layoutSnippet: import('svelte').Snippet<[Slide|null, Layer]>,
@@ -25,7 +26,8 @@
25
26
  */
26
27
  let {
27
28
  // > Style
28
- classes,
29
+ class: className,
30
+ classes, // Deprecated: kept for backward compatibility
29
31
 
30
32
  // > Functional
31
33
  slides,
@@ -109,7 +111,7 @@
109
111
  });
110
112
  </script>
111
113
 
112
- <GridLayers data-feature="presenter" {classes}>
114
+ <GridLayers data-feature="presenter" class={className ?? classes ?? ''}>
113
115
  <div
114
116
  data-layer="layer1"
115
117
  style:z-index={presenter.layerA.z}
@@ -2,6 +2,7 @@ export default Presenter;
2
2
  type Presenter = {
3
3
  $on?(type: string, callback: (e: any) => void): () => void;
4
4
  $set?(props: Partial<{
5
+ class?: string | undefined;
5
6
  classes?: string | undefined;
6
7
  slides?: Slide[] | undefined;
7
8
  presenterRef?: PresenterRef | undefined;
@@ -10,6 +11,7 @@ type Presenter = {
10
11
  }>): void;
11
12
  };
12
13
  declare const Presenter: import("svelte").Component<{
14
+ class?: string;
13
15
  classes?: string;
14
16
  slides?: import("./typedef.js").Slide[];
15
17
  presenterRef?: import("./Presenter.state.svelte.js").PresenterRef;
@@ -3,9 +3,10 @@
3
3
 
4
4
  /**
5
5
  * @type {{
6
- * base?: string,
7
- * bg?: string,
8
- * classes?: string,
6
+ * class?: string,
7
+ * base?: string, // Deprecated: use 'class' instead
8
+ * bg?: string, // Deprecated: use 'class' instead
9
+ * classes?: string, // Deprecated: use 'class' instead
9
10
  * type?: string,
10
11
  * role?: 'primary' | 'secondary' | 'tertiary' | 'custom',
11
12
  * size?: 'sm' | 'md' | 'lg',
@@ -25,9 +26,10 @@
25
26
  */
26
27
  const {
27
28
  // Style
28
- base,
29
- bg,
30
- classes,
29
+ class: className,
30
+ base, // Deprecated: kept for backward compatibility
31
+ bg, // Deprecated: kept for backward compatibility
32
+ classes, // Deprecated: kept for backward compatibility
31
33
 
32
34
  type = '',
33
35
  role = 'primary',
@@ -66,7 +68,7 @@
66
68
  data-variant={variant}
67
69
  data-mode={mode}
68
70
  type={buttonType}
69
- class="{base} {bg} {classes} {stateClasses}"
71
+ class="{base ?? ''} {bg ?? ''} {className ?? classes ?? ''} {stateClasses}"
70
72
  disabled={disabled || loading}
71
73
  aria-busy={loading}
72
74
  aria-pressed={selected}
@@ -3,6 +3,7 @@ type Button = {
3
3
  $on?(type: string, callback: (e: any) => void): () => void;
4
4
  $set?(props: Partial<{
5
5
  [key: string]: any;
6
+ class?: string | undefined;
6
7
  base?: string | undefined;
7
8
  bg?: string | undefined;
8
9
  classes?: string | undefined;
@@ -24,6 +25,7 @@ type Button = {
24
25
  };
25
26
  declare const Button: import("svelte").Component<{
26
27
  [key: string]: any;
28
+ class?: string;
27
29
  base?: string;
28
30
  bg?: string;
29
31
  classes?: string;
@@ -23,8 +23,9 @@
23
23
  * theme - name of the icon theme (e.g. 'solid' or 'outline')
24
24
  *
25
25
  * @type {{
26
- * base?: string,
27
- * classes?: string
26
+ * class?: string,
27
+ * base?: string, // Deprecated: use 'class' instead
28
+ * classes?: string, // Deprecated: use 'class' instead
28
29
  * size?: string,
29
30
  * variant?: string,
30
31
  * src: import('./typedef.js').IconSource,
@@ -33,8 +34,9 @@
33
34
  */
34
35
  let {
35
36
  // Style
36
- base,
37
- classes,
37
+ class: className,
38
+ base, // Deprecated: kept for backward compatibility
39
+ classes, // Deprecated: kept for backward compatibility
38
40
 
39
41
  size = 'md',
40
42
  variant = '',
@@ -72,7 +74,7 @@
72
74
  data-variant={variant}
73
75
  {...icon.a}
74
76
  xmlns="http://www.w3.org/2000/svg"
75
- class="{base} {classes}"
77
+ class="{base ?? ''} {className ?? classes ?? ''}"
76
78
  {...attrs}
77
79
  >
78
80
  {#each icon.path ?? [] as a}
@@ -2,6 +2,7 @@ export default SteezeIcon;
2
2
  type SteezeIcon = {
3
3
  $on?(type: string, callback: (e: any) => void): () => void;
4
4
  $set?(props: Partial<{
5
+ class?: string | undefined;
5
6
  base?: string | undefined;
6
7
  classes?: string | undefined;
7
8
  size?: string | undefined;
@@ -13,6 +14,7 @@ type SteezeIcon = {
13
14
  }>): void;
14
15
  };
15
16
  declare const SteezeIcon: import("svelte").Component<{
17
+ class?: string;
16
18
  base?: string;
17
19
  classes?: string;
18
20
  size?: string;
@@ -7,9 +7,10 @@
7
7
 
8
8
  /**
9
9
  * @type {{
10
- * base?: string,
11
- * bg?: string,
12
- * classes?: string,
10
+ * class?: string,
11
+ * base?: string, // Deprecated: use 'class' instead
12
+ * bg?: string, // Deprecated: use 'class' instead
13
+ * classes?: string, // Deprecated: use 'class' instead
13
14
  * width?: 'sm' | 'md' | 'lg',
14
15
  * variant?: string,
15
16
  * children?: import('svelte').Snippet,
@@ -17,9 +18,10 @@
17
18
  */
18
19
  const {
19
20
  // Style
20
- base,
21
- bg,
22
- classes,
21
+ class: className,
22
+ base, // Deprecated: kept for backward compatibility
23
+ bg, // Deprecated: kept for backward compatibility
24
+ classes, // Deprecated: kept for backward compatibility
23
25
 
24
26
  width = 'md',
25
27
  variant = 'light',
@@ -36,7 +38,7 @@
36
38
  data-component="panel"
37
39
  data-width={width}
38
40
  data-variant={variant}
39
- class="{base} {bg} {classes}"
41
+ class="{base ?? ''} {bg ?? ''} {className ?? classes ?? ''}"
40
42
  {...attrs}
41
43
  >
42
44
  {@render children()}
@@ -2,6 +2,7 @@ export default Panel;
2
2
  type Panel = {
3
3
  $on?(type: string, callback: (e: any) => void): () => void;
4
4
  $set?(props: Partial<{
5
+ class?: string | undefined;
5
6
  base?: string | undefined;
6
7
  bg?: string | undefined;
7
8
  classes?: string | undefined;
@@ -13,6 +14,7 @@ type Panel = {
13
14
  }>): void;
14
15
  };
15
16
  declare const Panel: import("svelte").Component<{
17
+ class?: string;
16
18
  base?: string;
17
19
  bg?: string;
18
20
  classes?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hkdigital/lib-core",
3
- "version": "0.5.88",
3
+ "version": "0.5.91",
4
4
  "author": {
5
5
  "name": "HKdigital",
6
6
  "url": "https://hkdigital.nl"
@@ -1 +0,0 @@
1
- export { default as SubScribersCount } from "./SubscribersCount.js";
@@ -1 +0,0 @@
1
- export { default as SubScribersCount } from './SubscribersCount.js';