@rippling/rippling-sdk 0.2.0-alpha.59 → 0.2.0-alpha.60

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 (127) hide show
  1. package/examples/manifest/dental-practice-management/dental-practice-management.ts +5 -4
  2. package/examples/manifest/dental-practice-management/functions/chair-schedule.ts +7 -10
  3. package/examples/manifest/dental-practice-management/functions/operatory-list.ts +7 -10
  4. package/examples/manifest/dental-practice-management/functions/patient-list.ts +7 -10
  5. package/examples/manifest/dental-practice-management/functions/treatment-plan-list.ts +7 -10
  6. package/examples/manifest/gym-membership-management/functions/check-in-desk.ts +7 -10
  7. package/examples/manifest/gym-membership-management/functions/member-list.ts +7 -10
  8. package/examples/manifest/gym-membership-management/functions/today-schedule.ts +7 -10
  9. package/examples/manifest/gym-membership-management/functions/trainer-list.ts +7 -10
  10. package/examples/manifest/gym-membership-management/gym-membership-management.ts +5 -4
  11. package/examples/manifest/simple-todo-app/functions/todo-list.ts +7 -10
  12. package/examples/manifest/simple-todo-app/simple-todo-app.ts +2 -2
  13. package/internal/tslib.js +0 -4
  14. package/lib/manifest/manifest-function.d.mts +3 -3
  15. package/lib/manifest/manifest-function.d.ts +3 -3
  16. package/lib/manifest/manifest-function.js +3 -3
  17. package/lib/manifest/manifest-function.mjs +3 -3
  18. package/package.json +1 -1
  19. package/src/lib/manifest/manifest-function.ts +3 -3
  20. package/src/version.ts +1 -1
  21. package/version.d.mts +1 -1
  22. package/version.d.ts +1 -1
  23. package/version.js +1 -1
  24. package/version.mjs +1 -1
  25. package/examples/sdui/sdui-crud-todo/rippling-function.ts +0 -358
  26. package/examples/sdui/sdui-showcase/rippling-function.ts +0 -366
  27. package/examples/sdui/sdui-tab-multi-view/rippling-function.ts +0 -1042
  28. package/examples/sdui/vote/rippling-function.ts +0 -315
  29. package/lib/sdui/actions.d.mts +0 -25
  30. package/lib/sdui/actions.d.mts.map +0 -1
  31. package/lib/sdui/actions.d.ts +0 -25
  32. package/lib/sdui/actions.d.ts.map +0 -1
  33. package/lib/sdui/actions.js +0 -63
  34. package/lib/sdui/actions.js.map +0 -1
  35. package/lib/sdui/actions.mjs +0 -52
  36. package/lib/sdui/actions.mjs.map +0 -1
  37. package/lib/sdui/component.d.mts +0 -58
  38. package/lib/sdui/component.d.mts.map +0 -1
  39. package/lib/sdui/component.d.ts +0 -58
  40. package/lib/sdui/component.d.ts.map +0 -1
  41. package/lib/sdui/component.js +0 -128
  42. package/lib/sdui/component.js.map +0 -1
  43. package/lib/sdui/component.mjs +0 -124
  44. package/lib/sdui/component.mjs.map +0 -1
  45. package/lib/sdui/components.d.mts +0 -1047
  46. package/lib/sdui/components.d.mts.map +0 -1
  47. package/lib/sdui/components.d.ts +0 -1047
  48. package/lib/sdui/components.d.ts.map +0 -1
  49. package/lib/sdui/components.js +0 -845
  50. package/lib/sdui/components.js.map +0 -1
  51. package/lib/sdui/components.mjs +0 -840
  52. package/lib/sdui/components.mjs.map +0 -1
  53. package/lib/sdui/conditions.d.mts +0 -25
  54. package/lib/sdui/conditions.d.mts.map +0 -1
  55. package/lib/sdui/conditions.d.ts +0 -25
  56. package/lib/sdui/conditions.d.ts.map +0 -1
  57. package/lib/sdui/conditions.js +0 -47
  58. package/lib/sdui/conditions.js.map +0 -1
  59. package/lib/sdui/conditions.mjs +0 -35
  60. package/lib/sdui/conditions.mjs.map +0 -1
  61. package/lib/sdui/directives.d.mts +0 -18
  62. package/lib/sdui/directives.d.mts.map +0 -1
  63. package/lib/sdui/directives.d.ts +0 -18
  64. package/lib/sdui/directives.d.ts.map +0 -1
  65. package/lib/sdui/directives.js +0 -31
  66. package/lib/sdui/directives.js.map +0 -1
  67. package/lib/sdui/directives.mjs +0 -24
  68. package/lib/sdui/directives.mjs.map +0 -1
  69. package/lib/sdui/index.d.mts +0 -375
  70. package/lib/sdui/index.d.mts.map +0 -1
  71. package/lib/sdui/index.d.ts +0 -375
  72. package/lib/sdui/index.d.ts.map +0 -1
  73. package/lib/sdui/index.js +0 -386
  74. package/lib/sdui/index.js.map +0 -1
  75. package/lib/sdui/index.mjs +0 -215
  76. package/lib/sdui/index.mjs.map +0 -1
  77. package/lib/sdui/propTypes.d.mts +0 -5971
  78. package/lib/sdui/propTypes.d.mts.map +0 -1
  79. package/lib/sdui/propTypes.d.ts +0 -5971
  80. package/lib/sdui/propTypes.d.ts.map +0 -1
  81. package/lib/sdui/propTypes.js +0 -14
  82. package/lib/sdui/propTypes.js.map +0 -1
  83. package/lib/sdui/propTypes.mjs +0 -13
  84. package/lib/sdui/propTypes.mjs.map +0 -1
  85. package/lib/sdui/props.d.mts +0 -12
  86. package/lib/sdui/props.d.mts.map +0 -1
  87. package/lib/sdui/props.d.ts +0 -12
  88. package/lib/sdui/props.d.ts.map +0 -1
  89. package/lib/sdui/props.js +0 -25
  90. package/lib/sdui/props.js.map +0 -1
  91. package/lib/sdui/props.mjs +0 -21
  92. package/lib/sdui/props.mjs.map +0 -1
  93. package/lib/sdui/render.d.mts +0 -23
  94. package/lib/sdui/render.d.mts.map +0 -1
  95. package/lib/sdui/render.d.ts +0 -23
  96. package/lib/sdui/render.d.ts.map +0 -1
  97. package/lib/sdui/render.js +0 -48
  98. package/lib/sdui/render.js.map +0 -1
  99. package/lib/sdui/render.mjs +0 -45
  100. package/lib/sdui/render.mjs.map +0 -1
  101. package/lib/sdui/state.d.mts +0 -22
  102. package/lib/sdui/state.d.mts.map +0 -1
  103. package/lib/sdui/state.d.ts +0 -22
  104. package/lib/sdui/state.d.ts.map +0 -1
  105. package/lib/sdui/state.js +0 -59
  106. package/lib/sdui/state.js.map +0 -1
  107. package/lib/sdui/state.mjs +0 -55
  108. package/lib/sdui/state.mjs.map +0 -1
  109. package/lib/sdui.d.mts +0 -3
  110. package/lib/sdui.d.mts.map +0 -1
  111. package/lib/sdui.d.ts +0 -3
  112. package/lib/sdui.d.ts.map +0 -1
  113. package/lib/sdui.js +0 -8
  114. package/lib/sdui.js.map +0 -1
  115. package/lib/sdui.mjs +0 -3
  116. package/lib/sdui.mjs.map +0 -1
  117. package/src/lib/sdui/actions.ts +0 -71
  118. package/src/lib/sdui/component.ts +0 -162
  119. package/src/lib/sdui/components.ts +0 -1572
  120. package/src/lib/sdui/conditions.ts +0 -59
  121. package/src/lib/sdui/directives.ts +0 -45
  122. package/src/lib/sdui/index.ts +0 -650
  123. package/src/lib/sdui/propTypes.ts +0 -8087
  124. package/src/lib/sdui/props.ts +0 -32
  125. package/src/lib/sdui/render.ts +0 -66
  126. package/src/lib/sdui/state.ts +0 -66
  127. package/src/lib/sdui.ts +0 -2
@@ -1,128 +0,0 @@
1
- "use strict";
2
- /**
3
- * component() — creates a stateful component boundary.
4
- *
5
- * Provides ctx.localState (scoped local state slot) and ctx.onMount (an
6
- * action that fires once when the component mounts on the client). The
7
- * runtime handles state setup and mount firing; consumers don't need to
8
- * know how the wrapping is implemented.
9
- *
10
- * NOTE: these are NOT React hooks. The factory runs ONCE at spec-build
11
- * time, producing a JSON description of the UI. `localState` returns a
12
- * path-builder proxy (not a [value, setter] tuple); `onMount` registers
13
- * a JSON action that fires on first client render (not an effect that
14
- * re-runs).
15
- *
16
- * Usage:
17
- * function MembersGrid(props) {
18
- * return component((ctx) => {
19
- * const local = ctx.localState({ data: [], loading: true })
20
- * ctx.onMount(fetchAction)
21
- * return { element: DataGrid({ ... }) }
22
- * })
23
- * }
24
- */
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports._resetIdCounter = _resetIdCounter;
27
- exports.component = component;
28
- let _idCounter = 0;
29
- // Counter-only IDs (no Date.now()) so the same factory body produces the
30
- // same paths across runs. The counter is monotonic per process; calling
31
- // `_resetIdCounter()` (tests only) brings it back to 0 so snapshot tests
32
- // stay stable.
33
- function generateId() {
34
- _idCounter += 1;
35
- return `auto_${_idCounter.toString(36)}`;
36
- }
37
- // Reset counter (for testing)
38
- function _resetIdCounter() {
39
- _idCounter = 0;
40
- }
41
- function createScopeProxy(basePath) {
42
- const handler = {
43
- get(_target, prop) {
44
- if (prop === '$bind')
45
- return { $bindState: basePath };
46
- if (prop === '$path')
47
- return basePath;
48
- if (prop === '$state')
49
- return basePath;
50
- if (prop === 'toJSON')
51
- return () => ({ $state: basePath });
52
- if (prop === Symbol.toPrimitive)
53
- return () => `$state:${basePath}`;
54
- const childPath = `${basePath}/${String(prop)}`;
55
- return createScopeProxy(childPath);
56
- },
57
- };
58
- return new Proxy({}, handler);
59
- }
60
- function component(factory) {
61
- const states = [];
62
- const mountActions = [];
63
- const ctx = {
64
- localState(initial) {
65
- const path = `/${generateId()}`;
66
- states.push({ path, initial });
67
- return createScopeProxy(path);
68
- },
69
- onMount(action) {
70
- mountActions.push(action);
71
- },
72
- };
73
- const result = factory(ctx);
74
- // No state, no effects → return as-is.
75
- if (states.length === 0 && mountActions.length === 0) {
76
- return result;
77
- }
78
- // Collapse zero/one/many mount actions for the single onMountAction slot
79
- // on the innermost wrapper.
80
- let combinedMount;
81
- if (mountActions.length === 1) {
82
- combinedMount = mountActions[0];
83
- }
84
- else if (mountActions.length > 1) {
85
- combinedMount = mountActions.flatMap((a) => (Array.isArray(a) ? a : [a]));
86
- }
87
- let wrapped = result.element;
88
- if (states.length === 0) {
89
- // Mount-only: a single state-provider wrapper carries onMountAction.
90
- wrapped = {
91
- type: '_LocalStateProvider',
92
- props: combinedMount ? { onMountAction: combinedMount } : {},
93
- children: [wrapped],
94
- };
95
- }
96
- else {
97
- // One state-provider wrapper per localState() call, nested
98
- // innermost-first. Mount actions attach to the innermost wrapper so
99
- // every state slot is initialized before any action fires.
100
- for (let i = states.length - 1; i >= 0; i--) {
101
- const state = states[i];
102
- if (state) {
103
- const isInnermost = i === states.length - 1;
104
- const props = {
105
- statePath: state.path,
106
- initialValue: state.initial,
107
- ...(isInnermost && combinedMount ? { onMountAction: combinedMount } : {}),
108
- };
109
- const wrapper = {
110
- type: '_LocalStateProvider',
111
- props,
112
- children: [wrapped],
113
- };
114
- // render() picks up this marker to populate spec.state.
115
- wrapper._localStateRegistration = {
116
- path: state.path,
117
- initial: state.initial,
118
- };
119
- wrapped = wrapper;
120
- }
121
- }
122
- }
123
- return {
124
- ...result,
125
- element: wrapped,
126
- };
127
- }
128
- //# sourceMappingURL=component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","sourceRoot":"","sources":["../../src/lib/sdui/component.ts"],"names":[],"mappings":"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"}
@@ -1,124 +0,0 @@
1
- /**
2
- * component() — creates a stateful component boundary.
3
- *
4
- * Provides ctx.localState (scoped local state slot) and ctx.onMount (an
5
- * action that fires once when the component mounts on the client). The
6
- * runtime handles state setup and mount firing; consumers don't need to
7
- * know how the wrapping is implemented.
8
- *
9
- * NOTE: these are NOT React hooks. The factory runs ONCE at spec-build
10
- * time, producing a JSON description of the UI. `localState` returns a
11
- * path-builder proxy (not a [value, setter] tuple); `onMount` registers
12
- * a JSON action that fires on first client render (not an effect that
13
- * re-runs).
14
- *
15
- * Usage:
16
- * function MembersGrid(props) {
17
- * return component((ctx) => {
18
- * const local = ctx.localState({ data: [], loading: true })
19
- * ctx.onMount(fetchAction)
20
- * return { element: DataGrid({ ... }) }
21
- * })
22
- * }
23
- */
24
- let _idCounter = 0;
25
- // Counter-only IDs (no Date.now()) so the same factory body produces the
26
- // same paths across runs. The counter is monotonic per process; calling
27
- // `_resetIdCounter()` (tests only) brings it back to 0 so snapshot tests
28
- // stay stable.
29
- function generateId() {
30
- _idCounter += 1;
31
- return `auto_${_idCounter.toString(36)}`;
32
- }
33
- // Reset counter (for testing)
34
- export function _resetIdCounter() {
35
- _idCounter = 0;
36
- }
37
- function createScopeProxy(basePath) {
38
- const handler = {
39
- get(_target, prop) {
40
- if (prop === '$bind')
41
- return { $bindState: basePath };
42
- if (prop === '$path')
43
- return basePath;
44
- if (prop === '$state')
45
- return basePath;
46
- if (prop === 'toJSON')
47
- return () => ({ $state: basePath });
48
- if (prop === Symbol.toPrimitive)
49
- return () => `$state:${basePath}`;
50
- const childPath = `${basePath}/${String(prop)}`;
51
- return createScopeProxy(childPath);
52
- },
53
- };
54
- return new Proxy({}, handler);
55
- }
56
- export function component(factory) {
57
- const states = [];
58
- const mountActions = [];
59
- const ctx = {
60
- localState(initial) {
61
- const path = `/${generateId()}`;
62
- states.push({ path, initial });
63
- return createScopeProxy(path);
64
- },
65
- onMount(action) {
66
- mountActions.push(action);
67
- },
68
- };
69
- const result = factory(ctx);
70
- // No state, no effects → return as-is.
71
- if (states.length === 0 && mountActions.length === 0) {
72
- return result;
73
- }
74
- // Collapse zero/one/many mount actions for the single onMountAction slot
75
- // on the innermost wrapper.
76
- let combinedMount;
77
- if (mountActions.length === 1) {
78
- combinedMount = mountActions[0];
79
- }
80
- else if (mountActions.length > 1) {
81
- combinedMount = mountActions.flatMap((a) => (Array.isArray(a) ? a : [a]));
82
- }
83
- let wrapped = result.element;
84
- if (states.length === 0) {
85
- // Mount-only: a single state-provider wrapper carries onMountAction.
86
- wrapped = {
87
- type: '_LocalStateProvider',
88
- props: combinedMount ? { onMountAction: combinedMount } : {},
89
- children: [wrapped],
90
- };
91
- }
92
- else {
93
- // One state-provider wrapper per localState() call, nested
94
- // innermost-first. Mount actions attach to the innermost wrapper so
95
- // every state slot is initialized before any action fires.
96
- for (let i = states.length - 1; i >= 0; i--) {
97
- const state = states[i];
98
- if (state) {
99
- const isInnermost = i === states.length - 1;
100
- const props = {
101
- statePath: state.path,
102
- initialValue: state.initial,
103
- ...(isInnermost && combinedMount ? { onMountAction: combinedMount } : {}),
104
- };
105
- const wrapper = {
106
- type: '_LocalStateProvider',
107
- props,
108
- children: [wrapped],
109
- };
110
- // render() picks up this marker to populate spec.state.
111
- wrapper._localStateRegistration = {
112
- path: state.path,
113
- initial: state.initial,
114
- };
115
- wrapped = wrapper;
116
- }
117
- }
118
- }
119
- return {
120
- ...result,
121
- element: wrapped,
122
- };
123
- }
124
- //# sourceMappingURL=component.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.mjs","sourceRoot":"","sources":["../../src/lib/sdui/component.ts"],"names":[],"mappings":"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"}