atom.io 0.9.7 → 0.9.9
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.
- package/dist/index.d.mts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/internal/dist/index.d.mts +4 -3
- package/internal/dist/index.d.ts +4 -3
- package/internal/dist/index.js +35 -15
- package/internal/dist/index.js.map +1 -1
- package/internal/dist/index.mjs +35 -15
- package/internal/dist/index.mjs.map +1 -1
- package/internal/src/selector/trace-selector-atoms.ts +5 -0
- package/internal/src/timeline/add-atom-to-timeline.ts +24 -7
- package/internal/src/timeline/timeline-internal.ts +7 -3
- package/introspection/dist/index.d.mts +1 -1
- package/introspection/dist/index.d.ts +1 -1
- package/json/dist/index.d.mts +2 -6
- package/json/dist/index.d.ts +2 -6
- package/package.json +4 -4
- package/react-devtools/dist/index.css +281 -3
- package/react-devtools/dist/index.css.map +1 -1
- package/react-devtools/dist/index.d.mts +2 -1
- package/react-devtools/dist/index.d.ts +2 -1
- package/realtime-server/dist/index.d.mts +1 -1
- package/realtime-server/dist/index.d.ts +1 -1
- package/realtime-testing/dist/index.d.mts +1 -1
- package/realtime-testing/dist/index.d.ts +1 -1
- package/src/timeline.ts +2 -0
- package/transceivers/set-rtx/dist/index.d.mts +1 -1
- package/transceivers/set-rtx/dist/index.d.ts +1 -1
|
@@ -17,6 +17,11 @@ export const traceSelectorAtoms = (
|
|
|
17
17
|
const source = sources.shift()!
|
|
18
18
|
++depth
|
|
19
19
|
if (depth > 999) {
|
|
20
|
+
store.config.logger?.warn(
|
|
21
|
+
`Maximum selector dependency depth exceeded 999 in selector "${selectorKey}".`,
|
|
22
|
+
)
|
|
23
|
+
}
|
|
24
|
+
if (depth > 99999) {
|
|
20
25
|
throw new Error(
|
|
21
26
|
`Maximum selector dependency depth exceeded in selector "${selectorKey}".`,
|
|
22
27
|
)
|
|
@@ -109,9 +109,13 @@ export const addAtomToTimeline = (
|
|
|
109
109
|
...update,
|
|
110
110
|
atomUpdates,
|
|
111
111
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
112
|
+
const willCapture =
|
|
113
|
+
tl.shouldCapture?.(timelineTransactionUpdate, tl) ?? true
|
|
114
|
+
if (willCapture) {
|
|
115
|
+
tl.history.push(timelineTransactionUpdate)
|
|
116
|
+
tl.at = tl.history.length
|
|
117
|
+
tl.subject.next(timelineTransactionUpdate)
|
|
118
|
+
}
|
|
115
119
|
}
|
|
116
120
|
tl.transactionKey = null
|
|
117
121
|
store.config.logger?.info(
|
|
@@ -138,6 +142,7 @@ export const addAtomToTimeline = (
|
|
|
138
142
|
if (tl.at !== tl.history.length) {
|
|
139
143
|
tl.history.splice(tl.at)
|
|
140
144
|
}
|
|
145
|
+
|
|
141
146
|
tl.history.push(latestUpdate)
|
|
142
147
|
|
|
143
148
|
store.config.logger?.info(
|
|
@@ -160,7 +165,16 @@ export const addAtomToTimeline = (
|
|
|
160
165
|
)
|
|
161
166
|
}
|
|
162
167
|
}
|
|
163
|
-
if (latestUpdate)
|
|
168
|
+
if (latestUpdate) {
|
|
169
|
+
const willCaptureSelectorUpdate =
|
|
170
|
+
tl.shouldCapture?.(latestUpdate, tl) ?? true
|
|
171
|
+
if (willCaptureSelectorUpdate) {
|
|
172
|
+
tl.subject.next(latestUpdate)
|
|
173
|
+
} else {
|
|
174
|
+
tl.history.pop()
|
|
175
|
+
tl.at = tl.history.length
|
|
176
|
+
}
|
|
177
|
+
}
|
|
164
178
|
} else {
|
|
165
179
|
const timestamp = Date.now()
|
|
166
180
|
tl.selectorTime = null
|
|
@@ -177,12 +191,15 @@ export const addAtomToTimeline = (
|
|
|
177
191
|
if (atom.family) {
|
|
178
192
|
atomUpdate.family = atom.family
|
|
179
193
|
}
|
|
180
|
-
tl.
|
|
181
|
-
tl.subject.next(atomUpdate)
|
|
194
|
+
const willCapture = tl.shouldCapture?.(atomUpdate, tl) ?? true
|
|
182
195
|
store.config.logger?.info(
|
|
183
196
|
`⌛ timeline "${tl.key}" got an atom_update to "${atom.key}"`,
|
|
184
197
|
)
|
|
185
|
-
|
|
198
|
+
if (willCapture) {
|
|
199
|
+
tl.history.push(atomUpdate)
|
|
200
|
+
tl.at = tl.history.length
|
|
201
|
+
tl.subject.next(atomUpdate)
|
|
202
|
+
}
|
|
186
203
|
}
|
|
187
204
|
}
|
|
188
205
|
})
|
|
@@ -36,6 +36,7 @@ export type Timeline = {
|
|
|
36
36
|
type: `timeline`
|
|
37
37
|
key: string
|
|
38
38
|
at: number
|
|
39
|
+
shouldCapture?: (update: TimelineUpdate, timeline: Timeline) => boolean
|
|
39
40
|
timeTraveling: `into_future` | `into_past` | null
|
|
40
41
|
history: TimelineUpdate[]
|
|
41
42
|
selectorTime: number | null
|
|
@@ -67,6 +68,9 @@ export function timeline__INTERNAL(
|
|
|
67
68
|
install: (store) => timeline__INTERNAL(options, store, tl),
|
|
68
69
|
subject: new Subject(),
|
|
69
70
|
}
|
|
71
|
+
if (options.shouldCapture) {
|
|
72
|
+
tl.shouldCapture = options.shouldCapture
|
|
73
|
+
}
|
|
70
74
|
|
|
71
75
|
const core = target(store)
|
|
72
76
|
for (const tokenOrFamily of options.atoms) {
|
|
@@ -80,9 +84,9 @@ export function timeline__INTERNAL(
|
|
|
80
84
|
if (tokenOrFamily.type === `atom_family`) {
|
|
81
85
|
const family = tokenOrFamily
|
|
82
86
|
family.subject.subscribe(`timeline:${options.key}`, (token) => {
|
|
83
|
-
if (!core.atoms.has(token.key)) {
|
|
84
|
-
|
|
85
|
-
}
|
|
87
|
+
// if (!core.atoms.has(token.key)) {
|
|
88
|
+
addAtomToTimeline(token, tl, store)
|
|
89
|
+
// }
|
|
86
90
|
})
|
|
87
91
|
for (const atom of core.atoms.values()) {
|
|
88
92
|
if (atom.family?.key === family.key) {
|
|
@@ -21,4 +21,4 @@ type FamilyNode<Token extends AtomToken<unknown> | ReadonlySelectorToken<unknown
|
|
|
21
21
|
};
|
|
22
22
|
type StateTokenIndex<Token extends AtomToken<unknown> | ReadonlySelectorToken<unknown> | SelectorToken<unknown>> = Record<string, FamilyNode<Token> | Token>;
|
|
23
23
|
|
|
24
|
-
export { FamilyNode, StateTokenIndex, attachIntrospectionStates };
|
|
24
|
+
export { type FamilyNode, type StateTokenIndex, attachIntrospectionStates };
|
|
@@ -21,4 +21,4 @@ type FamilyNode<Token extends AtomToken<unknown> | ReadonlySelectorToken<unknown
|
|
|
21
21
|
};
|
|
22
22
|
type StateTokenIndex<Token extends AtomToken<unknown> | ReadonlySelectorToken<unknown> | SelectorToken<unknown>> = Record<string, FamilyNode<Token> | Token>;
|
|
23
23
|
|
|
24
|
-
export { FamilyNode, StateTokenIndex, attachIntrospectionStates };
|
|
24
|
+
export { type FamilyNode, type StateTokenIndex, attachIntrospectionStates };
|
package/json/dist/index.d.mts
CHANGED
|
@@ -23,11 +23,7 @@ type Array<Element extends Serializable = Serializable> = ReadonlyArray<Element>
|
|
|
23
23
|
type json_Array<Element extends Serializable = Serializable> = Array<Element>;
|
|
24
24
|
type json_Serializable = Serializable;
|
|
25
25
|
declare namespace json {
|
|
26
|
-
export {
|
|
27
|
-
json_Array as Array,
|
|
28
|
-
Object$1 as Object,
|
|
29
|
-
json_Serializable as Serializable,
|
|
30
|
-
};
|
|
26
|
+
export type { json_Array as Array, Object$1 as Object, json_Serializable as Serializable };
|
|
31
27
|
}
|
|
32
28
|
|
|
33
29
|
declare const parseJson: <S extends Stringified<Serializable>>(str: string | S) => S extends Stringified<infer J extends Serializable> ? J : Serializable;
|
|
@@ -52,4 +48,4 @@ declare const selectJson: <T, J extends Serializable>(atom: AtomIO.AtomToken<T>,
|
|
|
52
48
|
|
|
53
49
|
declare const selectJsonFamily: <T, J extends Serializable, K extends Serializable>(atomFamily: AtomIO.AtomFamily<T, K>, transform: JsonInterface<T, J>, store?: Store) => AtomIO.SelectorFamily<J, K>;
|
|
54
50
|
|
|
55
|
-
export { Empty, JSON_DEFAULTS, JSON_TYPE_NAMES, json as Json, JsonInterface, JsonTypeName, JsonTypes, Stringified, isBoolean, isNull, isNumber, isPrimitive, isString, parseJson, primitive, selectJson, selectJsonFamily, stringSetJsonInterface, stringifyJson };
|
|
51
|
+
export { type Empty, JSON_DEFAULTS, JSON_TYPE_NAMES, json as Json, type JsonInterface, type JsonTypeName, type JsonTypes, type Stringified, isBoolean, isNull, isNumber, isPrimitive, isString, parseJson, type primitive, selectJson, selectJsonFamily, stringSetJsonInterface, stringifyJson };
|
package/json/dist/index.d.ts
CHANGED
|
@@ -23,11 +23,7 @@ type Array<Element extends Serializable = Serializable> = ReadonlyArray<Element>
|
|
|
23
23
|
type json_Array<Element extends Serializable = Serializable> = Array<Element>;
|
|
24
24
|
type json_Serializable = Serializable;
|
|
25
25
|
declare namespace json {
|
|
26
|
-
export {
|
|
27
|
-
json_Array as Array,
|
|
28
|
-
Object$1 as Object,
|
|
29
|
-
json_Serializable as Serializable,
|
|
30
|
-
};
|
|
26
|
+
export type { json_Array as Array, Object$1 as Object, json_Serializable as Serializable };
|
|
31
27
|
}
|
|
32
28
|
|
|
33
29
|
declare const parseJson: <S extends Stringified<Serializable>>(str: string | S) => S extends Stringified<infer J extends Serializable> ? J : Serializable;
|
|
@@ -52,4 +48,4 @@ declare const selectJson: <T, J extends Serializable>(atom: AtomIO.AtomToken<T>,
|
|
|
52
48
|
|
|
53
49
|
declare const selectJsonFamily: <T, J extends Serializable, K extends Serializable>(atomFamily: AtomIO.AtomFamily<T, K>, transform: JsonInterface<T, J>, store?: Store) => AtomIO.SelectorFamily<J, K>;
|
|
54
50
|
|
|
55
|
-
export { Empty, JSON_DEFAULTS, JSON_TYPE_NAMES, json as Json, JsonInterface, JsonTypeName, JsonTypes, Stringified, isBoolean, isNull, isNumber, isPrimitive, isString, parseJson, primitive, selectJson, selectJsonFamily, stringSetJsonInterface, stringifyJson };
|
|
51
|
+
export { type Empty, JSON_DEFAULTS, JSON_TYPE_NAMES, json as Json, type JsonInterface, type JsonTypeName, type JsonTypes, type Stringified, isBoolean, isNull, isNumber, isPrimitive, isString, parseJson, type primitive, selectJson, selectJsonFamily, stringSetJsonInterface, stringifyJson };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "atom.io",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.9",
|
|
4
4
|
"description": "Composable and testable reactive data library.",
|
|
5
5
|
"homepage": "https://atom.io.fyi",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"@emotion/react": "11.11.1",
|
|
52
|
-
"@testing-library/react": "14.1.
|
|
52
|
+
"@testing-library/react": "14.1.2",
|
|
53
53
|
"@types/npmlog": "4.1.6",
|
|
54
54
|
"@types/react": "18.2.37",
|
|
55
55
|
"@types/tmp": "0.2.6",
|
|
@@ -62,11 +62,11 @@
|
|
|
62
62
|
"preact": "10.19.2",
|
|
63
63
|
"react": "18.2.0",
|
|
64
64
|
"react-dom": "18.2.0",
|
|
65
|
-
"react-router-dom": "6.
|
|
65
|
+
"react-router-dom": "6.19.0",
|
|
66
66
|
"socket.io": "4.7.2",
|
|
67
67
|
"socket.io-client": "4.7.2",
|
|
68
68
|
"tmp": "0.2.1",
|
|
69
|
-
"tsup": "7.
|
|
69
|
+
"tsup": "7.3.0",
|
|
70
70
|
"typescript": "5.2.2",
|
|
71
71
|
"vite": "4.5.0",
|
|
72
72
|
"vite-tsconfig-paths": "4.2.1",
|
|
@@ -3,7 +3,17 @@
|
|
|
3
3
|
display: flex;
|
|
4
4
|
flex-flow: row wrap;
|
|
5
5
|
gap: 4px;
|
|
6
|
-
section {
|
|
6
|
+
section {
|
|
7
|
+
display: flex;
|
|
8
|
+
flex-flow: row;
|
|
9
|
+
margin-bottom: 1rem;
|
|
10
|
+
border: 1px solid #ccc;
|
|
11
|
+
padding: 2px;
|
|
12
|
+
margin: 0;
|
|
13
|
+
span {
|
|
14
|
+
display: flex;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
7
17
|
}
|
|
8
18
|
|
|
9
19
|
/* src/devtools.scss */
|
|
@@ -41,11 +51,279 @@ main.atom_io_devtools {
|
|
|
41
51
|
padding-bottom: 0;
|
|
42
52
|
display: flex;
|
|
43
53
|
justify-content: space-between;
|
|
44
|
-
h1 {
|
|
54
|
+
h1 {
|
|
55
|
+
font-size: inherit;
|
|
56
|
+
margin: 0;
|
|
57
|
+
font-size: 24px;
|
|
58
|
+
font-family: charter;
|
|
59
|
+
}
|
|
60
|
+
nav {
|
|
61
|
+
display: flex;
|
|
62
|
+
flex-flow: row nowrap;
|
|
63
|
+
button {
|
|
64
|
+
cursor: pointer;
|
|
65
|
+
background: none;
|
|
66
|
+
border: none;
|
|
67
|
+
padding: none;
|
|
68
|
+
margin-bottom: -2px;
|
|
69
|
+
z-index: 1000;
|
|
70
|
+
&:disabled {
|
|
71
|
+
cursor: default;
|
|
72
|
+
background-color: var(--bg-tint1);
|
|
73
|
+
color: var(--fg-color);
|
|
74
|
+
border: var(--fg-border);
|
|
75
|
+
border-bottom: none;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
45
79
|
}
|
|
46
80
|
> main {
|
|
47
81
|
background: var(--bg-tint1);
|
|
48
82
|
}
|
|
49
|
-
main {
|
|
83
|
+
main {
|
|
84
|
+
overflow-y: scroll;
|
|
85
|
+
flex-grow: 1;
|
|
86
|
+
display: flex;
|
|
87
|
+
flex-flow: column;
|
|
88
|
+
gap: 0;
|
|
89
|
+
article.index {
|
|
90
|
+
.node .node {
|
|
91
|
+
border-right: var(--fg-border);
|
|
92
|
+
padding-right: 0;
|
|
93
|
+
background: #fff3;
|
|
94
|
+
}
|
|
95
|
+
.node > .node {
|
|
96
|
+
margin: 5px 0;
|
|
97
|
+
margin-left: 12px;
|
|
98
|
+
border-left: var(--fg-border);
|
|
99
|
+
}
|
|
100
|
+
.node {
|
|
101
|
+
border-top: var(--fg-border);
|
|
102
|
+
overflow-x: scroll;
|
|
103
|
+
padding: 5px;
|
|
104
|
+
&:last-of-type {
|
|
105
|
+
border-bottom: var(--fg-border);
|
|
106
|
+
}
|
|
107
|
+
&.transaction_update {
|
|
108
|
+
padding: 0;
|
|
109
|
+
}
|
|
110
|
+
header {
|
|
111
|
+
display: flex;
|
|
112
|
+
flex-flow: row;
|
|
113
|
+
gap: 5px;
|
|
114
|
+
position: sticky;
|
|
115
|
+
z-index: 999;
|
|
116
|
+
top: 0;
|
|
117
|
+
button.carat {
|
|
118
|
+
cursor: pointer;
|
|
119
|
+
background: none;
|
|
120
|
+
border: none;
|
|
121
|
+
width: 20px;
|
|
122
|
+
&.open {
|
|
123
|
+
transform: rotate(90deg);
|
|
124
|
+
}
|
|
125
|
+
&:disabled {
|
|
126
|
+
cursor: default;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
label {
|
|
130
|
+
display: flex;
|
|
131
|
+
flex-flow: row;
|
|
132
|
+
gap: 5px;
|
|
133
|
+
cursor: help;
|
|
134
|
+
h2 {
|
|
135
|
+
display: inline-block;
|
|
136
|
+
margin: 0;
|
|
137
|
+
}
|
|
138
|
+
.detail {
|
|
139
|
+
color: #777;
|
|
140
|
+
@media (prefers-color-scheme: light) {
|
|
141
|
+
color: #999;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
main {
|
|
147
|
+
margin-left: 15px;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
section.transaction_log {
|
|
151
|
+
margin-top: 0;
|
|
152
|
+
header: {
|
|
153
|
+
padding: 5px;
|
|
154
|
+
}
|
|
155
|
+
main {
|
|
156
|
+
display: flex;
|
|
157
|
+
flex-flow: row wrap;
|
|
158
|
+
gap: 5px;
|
|
159
|
+
.transaction_update {
|
|
160
|
+
width: 100%;
|
|
161
|
+
display: flex;
|
|
162
|
+
flex-flow: row;
|
|
163
|
+
align-items: flex-start;
|
|
164
|
+
justify-content: flex-start;
|
|
165
|
+
justify-items: flex-start;
|
|
166
|
+
align-content: flex-start;
|
|
167
|
+
border-left: var(--fg-border);
|
|
168
|
+
border-top: var(--fg-border);
|
|
169
|
+
header {
|
|
170
|
+
padding: 5px;
|
|
171
|
+
h4 {
|
|
172
|
+
margin: 0;
|
|
173
|
+
padding: 0;
|
|
174
|
+
font-size: inherit;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
main {
|
|
178
|
+
margin-left: 0;
|
|
179
|
+
display: flex;
|
|
180
|
+
flex-flow: column;
|
|
181
|
+
gap: 0px;
|
|
182
|
+
border-left: 1px solid #333;
|
|
183
|
+
section ~ section {
|
|
184
|
+
border-top: 1px solid #333;
|
|
185
|
+
}
|
|
186
|
+
section {
|
|
187
|
+
padding: 5px;
|
|
188
|
+
&.transaction_output {
|
|
189
|
+
border-right: none;
|
|
190
|
+
}
|
|
191
|
+
&.transaction_impact {
|
|
192
|
+
padding: 5px;
|
|
193
|
+
}
|
|
194
|
+
margin: 0;
|
|
195
|
+
article {
|
|
196
|
+
border-left: var(--fg-border);
|
|
197
|
+
border-right: var(--fg-border);
|
|
198
|
+
.summary {
|
|
199
|
+
white-space: nowrap;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
section.timeline_log {
|
|
208
|
+
header {
|
|
209
|
+
display: flex;
|
|
210
|
+
label {
|
|
211
|
+
display: flex;
|
|
212
|
+
width: 100%;
|
|
213
|
+
flex-grow: 1;
|
|
214
|
+
.gap {
|
|
215
|
+
flex-grow: 1;
|
|
216
|
+
}
|
|
217
|
+
nav {
|
|
218
|
+
display: flex;
|
|
219
|
+
flex-flow: row nowrap;
|
|
220
|
+
gap: 5px;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
.timeline_update {
|
|
225
|
+
padding: 5px;
|
|
226
|
+
border-left: var(--fg-border);
|
|
227
|
+
h4 {
|
|
228
|
+
margin: 0;
|
|
229
|
+
padding: 0;
|
|
230
|
+
font-size: inherit;
|
|
231
|
+
}
|
|
232
|
+
main {
|
|
233
|
+
margin: 0;
|
|
234
|
+
.node.atom_update {
|
|
235
|
+
border-left: var(--fg-border);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
.you_are_here {
|
|
240
|
+
background: var(--fg-color);
|
|
241
|
+
color: var(--bg-color);
|
|
242
|
+
text-align: center;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
footer {
|
|
248
|
+
display: flex;
|
|
249
|
+
justify-content: flex-end;
|
|
250
|
+
button {
|
|
251
|
+
cursor: pointer;
|
|
252
|
+
background: none;
|
|
253
|
+
border: none;
|
|
254
|
+
padding: none;
|
|
255
|
+
position: absolute;
|
|
256
|
+
right: 0;
|
|
257
|
+
bottom: 0;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
.json_editor {
|
|
261
|
+
input {
|
|
262
|
+
font-family: theia;
|
|
263
|
+
border: none;
|
|
264
|
+
border-bottom: 1px solid;
|
|
265
|
+
background: none;
|
|
266
|
+
&:disabled {
|
|
267
|
+
border: none;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
button {
|
|
271
|
+
background: none;
|
|
272
|
+
margin-left: auto;
|
|
273
|
+
color: #777;
|
|
274
|
+
border: none;
|
|
275
|
+
font-family: theia;
|
|
276
|
+
font-size: 14px;
|
|
277
|
+
margin: none;
|
|
278
|
+
padding: 4px;
|
|
279
|
+
padding-bottom: 6px;
|
|
280
|
+
cursor: pointer;
|
|
281
|
+
&:hover {
|
|
282
|
+
color: #333;
|
|
283
|
+
background-color: #aaa;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
select {
|
|
287
|
+
font-family: theia;
|
|
288
|
+
font-size: 14px;
|
|
289
|
+
background: none;
|
|
290
|
+
border: none;
|
|
291
|
+
color: #777;
|
|
292
|
+
@media (prefers-color-scheme: light) {
|
|
293
|
+
color: #999;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
.json_editor_unofficial {
|
|
297
|
+
background-color: #777;
|
|
298
|
+
button {
|
|
299
|
+
color: #333;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
.json_editor_missing {
|
|
303
|
+
background-color: #f055;
|
|
304
|
+
}
|
|
305
|
+
.json_editor_key {
|
|
306
|
+
padding-right: 10px;
|
|
307
|
+
input {
|
|
308
|
+
color: #999;
|
|
309
|
+
@media (prefers-color-scheme: light) {
|
|
310
|
+
color: #777;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
.json_editor_object {
|
|
315
|
+
border-left: 2px solid #333;
|
|
316
|
+
padding-left: 20px;
|
|
317
|
+
@media (prefers-color-scheme: light) {
|
|
318
|
+
border-color: #ccc;
|
|
319
|
+
}
|
|
320
|
+
.json_editor_properties {
|
|
321
|
+
> * {
|
|
322
|
+
border-bottom: var(--fg-border);
|
|
323
|
+
margin-bottom: 2px;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}
|
|
50
328
|
}
|
|
51
329
|
/*# sourceMappingURL=index.css.map */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../hamr/src/react-data-designer/RelationEditor.module.scss","../src/devtools.scss"],"sourcesContent":[".class {\n display: flex;\n flex-flow: row wrap;\n gap: 4px;\n section {\n display: flex;\n flex-flow: row;\n margin-bottom: 1rem;\n border: 1px solid #ccc;\n padding: 2px;\n margin: 0;\n span {\n display: flex;\n }\n }\n}\n","main.atom_io_devtools {\n --fg-color: #eee;\n --bg-color: #111;\n --bg-tint1: #222;\n --fg-border: 1px solid var(--fg-color);\n @media (prefers-color-scheme: light) {\n --fg-color: #444;\n --bg-color: #ddd;\n --bg-tint1: #e3e3e3;\n }\n box-sizing: border-box;\n color: var(--fg-color);\n background-color: var(--bg-color);\n border: 2px solid var(--fg-color);\n position: fixed;\n right: 0;\n bottom: 0;\n height: 100%;\n display: flex;\n flex-flow: column;\n max-height: 800px;\n width: 100%;\n max-width: 500px;\n overflow-y: scroll;\n * {\n font-size: 16px;\n font-family: theia, monospace;\n }\n > header {\n padding: 5px;\n padding-left: 10px;\n padding-bottom: 0;\n display: flex;\n justify-content: space-between;\n h1 {\n font-size: inherit;\n margin: 0;\n font-size: 24px;\n font-family: charter;\n }\n nav {\n display: flex;\n flex-flow: row nowrap;\n button {\n cursor: pointer;\n background: none;\n border: none;\n padding: none;\n margin-bottom: -2px;\n z-index: 1000;\n &:disabled {\n cursor: default;\n background-color: var(--bg-tint1);\n color: var(--fg-color);\n border: var(--fg-border);\n border-bottom: none;\n }\n }\n }\n }\n > main {\n background: var(--bg-tint1);\n }\n main {\n overflow-y: scroll;\n flex-grow: 1;\n display: flex;\n flex-flow: column;\n gap: 0;\n article.index {\n .node .node {\n border-right: var(--fg-border);\n padding-right: 0;\n background: #fff3;\n }\n .node > .node {\n margin: 5px 0;\n margin-left: 12px;\n border-left: var(--fg-border);\n }\n .node {\n border-top: var(--fg-border);\n overflow-x: scroll;\n padding: 5px;\n &:last-of-type {\n border-bottom: var(--fg-border);\n }\n &.transaction_update {\n padding: 0;\n }\n header {\n display: flex;\n flex-flow: row;\n gap: 5px;\n position: sticky;\n z-index: 999;\n top: 0;\n button.carat {\n cursor: pointer;\n background: none;\n border: none;\n width: 20px;\n &.open {\n transform: rotate(90deg);\n }\n &:disabled {\n cursor: default;\n }\n }\n label {\n display: flex;\n flex-flow: row;\n gap: 5px;\n cursor: help;\n h2 {\n display: inline-block;\n margin: 0;\n }\n .detail {\n color: #777;\n @media (prefers-color-scheme: light) {\n color: #999;\n }\n }\n }\n }\n main {\n margin-left: 15px;\n }\n }\n section.transaction_log {\n margin-top: 0;\n header: {\n padding: 5px;\n }\n main {\n display: flex;\n flex-flow: row wrap;\n gap: 5px;\n .transaction_update {\n width: 100%;\n display: flex;\n flex-flow: row;\n align-items: flex-start;\n justify-content: flex-start;\n justify-items: flex-start;\n align-content: flex-start;\n border-left: var(--fg-border);\n border-top: var(--fg-border);\n header {\n padding: 5px;\n h4 {\n margin: 0;\n padding: 0;\n font-size: inherit;\n }\n }\n main {\n margin-left: 0;\n display: flex;\n flex-flow: column;\n gap: 0px;\n border-left: 1px solid #333;\n section ~ section {\n border-top: 1px solid #333;\n }\n section {\n padding: 5px;\n &.transaction_output {\n border-right: none;\n }\n &.transaction_impact {\n padding: 5px;\n }\n margin: 0;\n article {\n border-left: var(--fg-border);\n border-right: var(--fg-border);\n .summary {\n white-space: nowrap;\n }\n }\n }\n }\n }\n }\n }\n section.timeline_log {\n header {\n display: flex;\n label {\n display: flex;\n width: 100%;\n flex-grow: 1;\n .gap {\n flex-grow: 1;\n }\n nav {\n display: flex;\n flex-flow: row nowrap;\n gap: 5px;\n }\n }\n }\n .timeline_update {\n padding: 5px;\n border-left: var(--fg-border);\n h4 {\n margin: 0;\n padding: 0;\n font-size: inherit;\n }\n main {\n margin: 0;\n .node.atom_update {\n border-left: var(--fg-border);\n }\n }\n }\n .you_are_here {\n background: var(--fg-color);\n color: var(--bg-color);\n text-align: center;\n }\n }\n }\n }\n footer {\n display: flex;\n justify-content: flex-end;\n button {\n cursor: pointer;\n background: none;\n border: none;\n padding: none;\n position: absolute;\n right: 0;\n bottom: 0;\n }\n }\n\n .json_editor {\n input {\n font-family: theia;\n border: none;\n border-bottom: 1px solid;\n background: none;\n &:disabled {\n border: none;\n }\n }\n button {\n background: none;\n margin-left: auto;\n color: #777;\n border: none;\n font-family: theia;\n font-size: 14px;\n margin: none;\n padding: 4px;\n padding-bottom: 6px;\n cursor: pointer;\n &:hover {\n color: #333;\n background-color: #aaa;\n }\n }\n select {\n font-family: theia;\n font-size: 14px;\n background: none;\n border: none;\n color: #777;\n @media (prefers-color-scheme: light) {\n color: #999;\n }\n }\n .json_editor_unofficial {\n background-color: #777;\n button {\n color: #333;\n }\n }\n .json_editor_missing {\n background-color: #f055;\n }\n .json_editor_key {\n padding-right: 10px;\n input {\n color: #999;\n @media (prefers-color-scheme: light) {\n color: #777;\n }\n }\n }\n .json_editor_object {\n border-left: 2px solid #333;\n padding-left: 20px;\n @media (prefers-color-scheme: light) {\n border-color: #ccc;\n }\n .json_editor_properties {\n > * {\n border-bottom: var(--fg-border);\n margin-bottom: 2px;\n }\n }\n }\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../hamr/src/react-data-designer/RelationEditor.module.scss","../src/devtools.scss"],"sourcesContent":[".class {\n display: flex;\n flex-flow: row wrap;\n gap: 4px;\n section {\n display: flex;\n flex-flow: row;\n margin-bottom: 1rem;\n border: 1px solid #ccc;\n padding: 2px;\n margin: 0;\n span {\n display: flex;\n }\n }\n}\n","main.atom_io_devtools {\n --fg-color: #eee;\n --bg-color: #111;\n --bg-tint1: #222;\n --fg-border: 1px solid var(--fg-color);\n @media (prefers-color-scheme: light) {\n --fg-color: #444;\n --bg-color: #ddd;\n --bg-tint1: #e3e3e3;\n }\n box-sizing: border-box;\n color: var(--fg-color);\n background-color: var(--bg-color);\n border: 2px solid var(--fg-color);\n position: fixed;\n right: 0;\n bottom: 0;\n height: 100%;\n display: flex;\n flex-flow: column;\n max-height: 800px;\n width: 100%;\n max-width: 500px;\n overflow-y: scroll;\n * {\n font-size: 16px;\n font-family: theia, monospace;\n }\n > header {\n padding: 5px;\n padding-left: 10px;\n padding-bottom: 0;\n display: flex;\n justify-content: space-between;\n h1 {\n font-size: inherit;\n margin: 0;\n font-size: 24px;\n font-family: charter;\n }\n nav {\n display: flex;\n flex-flow: row nowrap;\n button {\n cursor: pointer;\n background: none;\n border: none;\n padding: none;\n margin-bottom: -2px;\n z-index: 1000;\n &:disabled {\n cursor: default;\n background-color: var(--bg-tint1);\n color: var(--fg-color);\n border: var(--fg-border);\n border-bottom: none;\n }\n }\n }\n }\n > main {\n background: var(--bg-tint1);\n }\n main {\n overflow-y: scroll;\n flex-grow: 1;\n display: flex;\n flex-flow: column;\n gap: 0;\n article.index {\n .node .node {\n border-right: var(--fg-border);\n padding-right: 0;\n background: #fff3;\n }\n .node > .node {\n margin: 5px 0;\n margin-left: 12px;\n border-left: var(--fg-border);\n }\n .node {\n border-top: var(--fg-border);\n overflow-x: scroll;\n padding: 5px;\n &:last-of-type {\n border-bottom: var(--fg-border);\n }\n &.transaction_update {\n padding: 0;\n }\n header {\n display: flex;\n flex-flow: row;\n gap: 5px;\n position: sticky;\n z-index: 999;\n top: 0;\n button.carat {\n cursor: pointer;\n background: none;\n border: none;\n width: 20px;\n &.open {\n transform: rotate(90deg);\n }\n &:disabled {\n cursor: default;\n }\n }\n label {\n display: flex;\n flex-flow: row;\n gap: 5px;\n cursor: help;\n h2 {\n display: inline-block;\n margin: 0;\n }\n .detail {\n color: #777;\n @media (prefers-color-scheme: light) {\n color: #999;\n }\n }\n }\n }\n main {\n margin-left: 15px;\n }\n }\n section.transaction_log {\n margin-top: 0;\n header: {\n padding: 5px;\n }\n main {\n display: flex;\n flex-flow: row wrap;\n gap: 5px;\n .transaction_update {\n width: 100%;\n display: flex;\n flex-flow: row;\n align-items: flex-start;\n justify-content: flex-start;\n justify-items: flex-start;\n align-content: flex-start;\n border-left: var(--fg-border);\n border-top: var(--fg-border);\n header {\n padding: 5px;\n h4 {\n margin: 0;\n padding: 0;\n font-size: inherit;\n }\n }\n main {\n margin-left: 0;\n display: flex;\n flex-flow: column;\n gap: 0px;\n border-left: 1px solid #333;\n section ~ section {\n border-top: 1px solid #333;\n }\n section {\n padding: 5px;\n &.transaction_output {\n border-right: none;\n }\n &.transaction_impact {\n padding: 5px;\n }\n margin: 0;\n article {\n border-left: var(--fg-border);\n border-right: var(--fg-border);\n .summary {\n white-space: nowrap;\n }\n }\n }\n }\n }\n }\n }\n section.timeline_log {\n header {\n display: flex;\n label {\n display: flex;\n width: 100%;\n flex-grow: 1;\n .gap {\n flex-grow: 1;\n }\n nav {\n display: flex;\n flex-flow: row nowrap;\n gap: 5px;\n }\n }\n }\n .timeline_update {\n padding: 5px;\n border-left: var(--fg-border);\n h4 {\n margin: 0;\n padding: 0;\n font-size: inherit;\n }\n main {\n margin: 0;\n .node.atom_update {\n border-left: var(--fg-border);\n }\n }\n }\n .you_are_here {\n background: var(--fg-color);\n color: var(--bg-color);\n text-align: center;\n }\n }\n }\n }\n footer {\n display: flex;\n justify-content: flex-end;\n button {\n cursor: pointer;\n background: none;\n border: none;\n padding: none;\n position: absolute;\n right: 0;\n bottom: 0;\n }\n }\n\n .json_editor {\n input {\n font-family: theia;\n border: none;\n border-bottom: 1px solid;\n background: none;\n &:disabled {\n border: none;\n }\n }\n button {\n background: none;\n margin-left: auto;\n color: #777;\n border: none;\n font-family: theia;\n font-size: 14px;\n margin: none;\n padding: 4px;\n padding-bottom: 6px;\n cursor: pointer;\n &:hover {\n color: #333;\n background-color: #aaa;\n }\n }\n select {\n font-family: theia;\n font-size: 14px;\n background: none;\n border: none;\n color: #777;\n @media (prefers-color-scheme: light) {\n color: #999;\n }\n }\n .json_editor_unofficial {\n background-color: #777;\n button {\n color: #333;\n }\n }\n .json_editor_missing {\n background-color: #f055;\n }\n .json_editor_key {\n padding-right: 10px;\n input {\n color: #999;\n @media (prefers-color-scheme: light) {\n color: #777;\n }\n }\n }\n .json_editor_object {\n border-left: 2px solid #333;\n padding-left: 20px;\n @media (prefers-color-scheme: light) {\n border-color: #ccc;\n }\n .json_editor_properties {\n > * {\n border-bottom: var(--fg-border);\n margin-bottom: 2px;\n }\n }\n }\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -157,7 +157,7 @@ declare class Tracker<Mutable extends Transceiver<any>> {
|
|
|
157
157
|
private observeCore;
|
|
158
158
|
private updateCore;
|
|
159
159
|
mutableState: MutableAtomToken<Mutable, Json.Serializable>;
|
|
160
|
-
latestUpdateState: AtomToken<typeof this
|
|
160
|
+
latestUpdateState: AtomToken<typeof this.Update | null>;
|
|
161
161
|
constructor(mutableState: MutableAtomToken<Mutable, Json.Serializable>, store?: Store);
|
|
162
162
|
}
|
|
163
163
|
|
|
@@ -196,6 +196,7 @@ type Timeline = {
|
|
|
196
196
|
type: `timeline`;
|
|
197
197
|
key: string;
|
|
198
198
|
at: number;
|
|
199
|
+
shouldCapture?: (update: TimelineUpdate, timeline: Timeline) => boolean;
|
|
199
200
|
timeTraveling: `into_future` | `into_past` | null;
|
|
200
201
|
history: TimelineUpdate[];
|
|
201
202
|
selectorTime: number | null;
|
|
@@ -157,7 +157,7 @@ declare class Tracker<Mutable extends Transceiver<any>> {
|
|
|
157
157
|
private observeCore;
|
|
158
158
|
private updateCore;
|
|
159
159
|
mutableState: MutableAtomToken<Mutable, Json.Serializable>;
|
|
160
|
-
latestUpdateState: AtomToken<typeof this
|
|
160
|
+
latestUpdateState: AtomToken<typeof this.Update | null>;
|
|
161
161
|
constructor(mutableState: MutableAtomToken<Mutable, Json.Serializable>, store?: Store);
|
|
162
162
|
}
|
|
163
163
|
|
|
@@ -196,6 +196,7 @@ type Timeline = {
|
|
|
196
196
|
type: `timeline`;
|
|
197
197
|
key: string;
|
|
198
198
|
at: number;
|
|
199
|
+
shouldCapture?: (update: TimelineUpdate, timeline: Timeline) => boolean;
|
|
199
200
|
timeTraveling: `into_future` | `into_past` | null;
|
|
200
201
|
history: TimelineUpdate[];
|
|
201
202
|
selectorTime: number | null;
|
|
@@ -22,4 +22,4 @@ type ServerConfig = {
|
|
|
22
22
|
store?: Store;
|
|
23
23
|
};
|
|
24
24
|
|
|
25
|
-
export { ServerConfig, useExposeFamily, useExposeMutable, useExposeMutableFamily, useExposeSingle, useReceiveState, useReceiveTransaction, useSyncTransaction };
|
|
25
|
+
export { type ServerConfig, useExposeFamily, useExposeMutable, useExposeMutableFamily, useExposeSingle, useReceiveState, useReceiveTransaction, useSyncTransaction };
|
|
@@ -22,4 +22,4 @@ type ServerConfig = {
|
|
|
22
22
|
store?: Store;
|
|
23
23
|
};
|
|
24
24
|
|
|
25
|
-
export { ServerConfig, useExposeFamily, useExposeMutable, useExposeMutableFamily, useExposeSingle, useReceiveState, useReceiveTransaction, useSyncTransaction };
|
|
25
|
+
export { type ServerConfig, useExposeFamily, useExposeMutable, useExposeMutableFamily, useExposeSingle, useReceiveState, useReceiveTransaction, useSyncTransaction };
|
|
@@ -46,4 +46,4 @@ declare const setupRealtimeTestClient: (options: TestSetupOptions__SingleClient,
|
|
|
46
46
|
declare const singleClient: (options: TestSetupOptions__SingleClient) => RealtimeTestAPI__SingleClient;
|
|
47
47
|
declare const multiClient: <ClientNames extends string>(options: TestSetupOptions__MultiClient<ClientNames>) => RealtimeTestAPI__MultiClient<ClientNames>;
|
|
48
48
|
|
|
49
|
-
export { RealtimeTestAPI, RealtimeTestAPI__MultiClient, RealtimeTestAPI__SingleClient, RealtimeTestClient, RealtimeTestServer, RealtimeTestTools, TestSetupOptions, TestSetupOptions__MultiClient, TestSetupOptions__SingleClient, multiClient, setupRealtimeTestClient, setupRealtimeTestServer, singleClient };
|
|
49
|
+
export { type RealtimeTestAPI, type RealtimeTestAPI__MultiClient, type RealtimeTestAPI__SingleClient, type RealtimeTestClient, type RealtimeTestServer, type RealtimeTestTools, type TestSetupOptions, type TestSetupOptions__MultiClient, type TestSetupOptions__SingleClient, multiClient, setupRealtimeTestClient, setupRealtimeTestServer, singleClient };
|
|
@@ -46,4 +46,4 @@ declare const setupRealtimeTestClient: (options: TestSetupOptions__SingleClient,
|
|
|
46
46
|
declare const singleClient: (options: TestSetupOptions__SingleClient) => RealtimeTestAPI__SingleClient;
|
|
47
47
|
declare const multiClient: <ClientNames extends string>(options: TestSetupOptions__MultiClient<ClientNames>) => RealtimeTestAPI__MultiClient<ClientNames>;
|
|
48
48
|
|
|
49
|
-
export { RealtimeTestAPI, RealtimeTestAPI__MultiClient, RealtimeTestAPI__SingleClient, RealtimeTestClient, RealtimeTestServer, RealtimeTestTools, TestSetupOptions, TestSetupOptions__MultiClient, TestSetupOptions__SingleClient, multiClient, setupRealtimeTestClient, setupRealtimeTestServer, singleClient };
|
|
49
|
+
export { type RealtimeTestAPI, type RealtimeTestAPI__MultiClient, type RealtimeTestAPI__SingleClient, type RealtimeTestClient, type RealtimeTestServer, type RealtimeTestTools, type TestSetupOptions, type TestSetupOptions__MultiClient, type TestSetupOptions__SingleClient, multiClient, setupRealtimeTestClient, setupRealtimeTestServer, singleClient };
|
package/src/timeline.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type {
|
|
2
|
+
Timeline,
|
|
2
3
|
TimelineAtomUpdate,
|
|
3
4
|
TimelineSelectorUpdate,
|
|
4
5
|
TimelineTransactionUpdate,
|
|
@@ -20,6 +21,7 @@ export type TimelineToken = {
|
|
|
20
21
|
export type TimelineOptions = {
|
|
21
22
|
key: string
|
|
22
23
|
atoms: (AtomFamily<any, any> | AtomToken<any>)[]
|
|
24
|
+
shouldCapture?: (update: TimelineUpdate, timeline: Timeline) => boolean
|
|
23
25
|
}
|
|
24
26
|
|
|
25
27
|
export type TimelineUpdate =
|
|
@@ -36,4 +36,4 @@ declare class SetRTX<P extends primitive> extends Set<P> implements Transceiver<
|
|
|
36
36
|
undo(update: NumberedSetUpdate): number | null;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
export { NumberedSetUpdate, SetRTX, SetRTXJson, SetUpdate };
|
|
39
|
+
export { type NumberedSetUpdate, SetRTX, type SetRTXJson, type SetUpdate };
|
|
@@ -36,4 +36,4 @@ declare class SetRTX<P extends primitive> extends Set<P> implements Transceiver<
|
|
|
36
36
|
undo(update: NumberedSetUpdate): number | null;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
export { NumberedSetUpdate, SetRTX, SetRTXJson, SetUpdate };
|
|
39
|
+
export { type NumberedSetUpdate, SetRTX, type SetRTXJson, type SetUpdate };
|