atom.io 0.6.9 → 0.7.0

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 (169) hide show
  1. package/README.md +21 -2
  2. package/dist/index.d.mts +34 -421
  3. package/dist/index.d.ts +34 -421
  4. package/dist/index.js +248 -23
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +209 -4
  7. package/dist/index.mjs.map +1 -1
  8. package/internal/dist/index.d.mts +342 -0
  9. package/internal/dist/index.d.ts +342 -0
  10. package/internal/dist/index.js +1873 -0
  11. package/internal/dist/index.js.map +1 -0
  12. package/internal/dist/index.mjs +1798 -0
  13. package/internal/dist/index.mjs.map +1 -0
  14. package/internal/package.json +15 -0
  15. package/internal/src/atom/create-atom.ts +75 -0
  16. package/internal/src/atom/delete-atom.ts +10 -0
  17. package/internal/src/atom/index.ts +3 -0
  18. package/internal/src/atom/is-default.ts +37 -0
  19. package/internal/src/caching.ts +21 -0
  20. package/internal/src/families/create-atom-family.ts +59 -0
  21. package/internal/src/families/create-readonly-selector-family.ts +45 -0
  22. package/internal/src/families/create-selector-family.ts +67 -0
  23. package/internal/src/families/index.ts +3 -0
  24. package/internal/src/get-state-internal.ts +23 -0
  25. package/internal/src/index.ts +13 -0
  26. package/internal/src/mutable/create-mutable-atom-family.ts +25 -0
  27. package/internal/src/mutable/create-mutable-atom.ts +49 -0
  28. package/internal/src/mutable/get-json-token.ts +22 -0
  29. package/internal/src/mutable/get-update-token.ts +20 -0
  30. package/internal/src/mutable/index.ts +17 -0
  31. package/internal/src/mutable/is-atom-token-mutable.ts +7 -0
  32. package/internal/src/mutable/tracker-family.ts +61 -0
  33. package/internal/src/mutable/tracker.ts +164 -0
  34. package/internal/src/mutable/transceiver.ts +110 -0
  35. package/internal/src/operation.ts +68 -0
  36. package/internal/src/selector/create-read-write-selector.ts +65 -0
  37. package/internal/src/selector/create-readonly-selector.ts +49 -0
  38. package/internal/src/selector/create-selector.ts +65 -0
  39. package/internal/src/selector/index.ts +5 -0
  40. package/internal/src/selector/lookup-selector-sources.ts +20 -0
  41. package/internal/src/selector/register-selector.ts +61 -0
  42. package/internal/src/selector/trace-selector-atoms.ts +45 -0
  43. package/internal/src/selector/update-selector-atoms.ts +34 -0
  44. package/internal/src/set-state/become.ts +10 -0
  45. package/internal/src/set-state/copy-mutable-if-needed.ts +23 -0
  46. package/internal/src/set-state/copy-mutable-in-transaction.ts +59 -0
  47. package/internal/src/set-state/copy-mutable-into-new-store.ts +34 -0
  48. package/internal/src/set-state/emit-update.ts +23 -0
  49. package/internal/src/set-state/evict-downstream.ts +39 -0
  50. package/internal/src/set-state/index.ts +2 -0
  51. package/internal/src/set-state/set-atom-state.ts +38 -0
  52. package/internal/src/set-state/set-selector-state.ts +19 -0
  53. package/internal/src/set-state/set-state-internal.ts +18 -0
  54. package/internal/src/set-state/stow-update.ts +42 -0
  55. package/internal/src/store/deposit.ts +43 -0
  56. package/internal/src/store/index.ts +5 -0
  57. package/internal/src/store/lookup.ts +26 -0
  58. package/internal/src/store/store.ts +154 -0
  59. package/internal/src/store/withdraw-new-family-member.ts +53 -0
  60. package/internal/src/store/withdraw.ts +113 -0
  61. package/internal/src/subject.ts +21 -0
  62. package/internal/src/subscribe/index.ts +1 -0
  63. package/internal/src/subscribe/recall-state.ts +19 -0
  64. package/internal/src/subscribe/subscribe-to-root-atoms.ts +47 -0
  65. package/internal/src/timeline/add-atom-to-timeline.ts +189 -0
  66. package/internal/src/timeline/index.ts +3 -0
  67. package/internal/src/timeline/time-travel-internal.ts +91 -0
  68. package/internal/src/timeline/timeline-internal.ts +115 -0
  69. package/internal/src/transaction/abort-transaction.ts +12 -0
  70. package/internal/src/transaction/apply-transaction.ts +64 -0
  71. package/internal/src/transaction/build-transaction.ts +39 -0
  72. package/internal/src/transaction/index.ts +26 -0
  73. package/internal/src/transaction/redo-transaction.ts +22 -0
  74. package/internal/src/transaction/transaction-internal.ts +64 -0
  75. package/internal/src/transaction/undo-transaction.ts +22 -0
  76. package/introspection/dist/index.d.mts +3 -197
  77. package/introspection/dist/index.d.ts +3 -197
  78. package/introspection/dist/index.js +329 -4
  79. package/introspection/dist/index.js.map +1 -1
  80. package/introspection/dist/index.mjs +310 -4
  81. package/introspection/dist/index.mjs.map +1 -1
  82. package/introspection/src/attach-atom-index.ts +84 -0
  83. package/introspection/src/attach-introspection-states.ts +38 -0
  84. package/introspection/src/attach-selector-index.ts +90 -0
  85. package/introspection/src/attach-timeline-family.ts +59 -0
  86. package/introspection/src/attach-timeline-index.ts +38 -0
  87. package/introspection/src/attach-transaction-index.ts +40 -0
  88. package/introspection/src/attach-transaction-logs.ts +43 -0
  89. package/introspection/src/index.ts +20 -0
  90. package/json/dist/index.d.mts +10 -2
  91. package/json/dist/index.d.ts +10 -2
  92. package/json/dist/index.js +83 -26
  93. package/json/dist/index.js.map +1 -1
  94. package/json/dist/index.mjs +74 -3
  95. package/json/dist/index.mjs.map +1 -1
  96. package/json/src/index.ts +5 -0
  97. package/json/src/select-json-family.ts +35 -0
  98. package/json/src/select-json.ts +22 -0
  99. package/package.json +103 -63
  100. package/react/dist/index.d.mts +9 -17
  101. package/react/dist/index.d.ts +9 -17
  102. package/react/dist/index.js +44 -27
  103. package/react/dist/index.js.map +1 -1
  104. package/react/dist/index.mjs +24 -4
  105. package/react/dist/index.mjs.map +1 -1
  106. package/react/src/index.ts +2 -0
  107. package/react/src/store-context.tsx +12 -0
  108. package/react/src/store-hooks.ts +36 -0
  109. package/react-devtools/dist/index.css +50 -1
  110. package/react-devtools/dist/index.css.map +1 -1
  111. package/react-devtools/dist/index.d.mts +104 -71
  112. package/react-devtools/dist/index.d.ts +104 -71
  113. package/react-devtools/dist/index.js +2806 -44
  114. package/react-devtools/dist/index.js.map +1 -1
  115. package/react-devtools/dist/index.mjs +2775 -10
  116. package/react-devtools/dist/index.mjs.map +1 -1
  117. package/react-devtools/src/AtomIODevtools.tsx +109 -0
  118. package/react-devtools/src/Button.tsx +23 -0
  119. package/react-devtools/src/StateEditor.tsx +75 -0
  120. package/react-devtools/src/StateIndex.tsx +159 -0
  121. package/react-devtools/src/TimelineIndex.tsx +88 -0
  122. package/react-devtools/src/TransactionIndex.tsx +70 -0
  123. package/react-devtools/src/Updates.tsx +150 -0
  124. package/react-devtools/src/devtools.scss +310 -0
  125. package/react-devtools/src/index.ts +72 -0
  126. package/realtime-react/dist/index.d.mts +8 -22
  127. package/realtime-react/dist/index.d.ts +8 -22
  128. package/realtime-react/dist/index.js +87 -32
  129. package/realtime-react/dist/index.js.map +1 -1
  130. package/realtime-react/dist/index.mjs +62 -6
  131. package/realtime-react/dist/index.mjs.map +1 -1
  132. package/realtime-react/src/index.ts +7 -0
  133. package/realtime-react/src/realtime-context.tsx +29 -0
  134. package/realtime-react/src/use-pull-family-member.ts +15 -0
  135. package/realtime-react/src/use-pull-mutable-family-member.ts +20 -0
  136. package/realtime-react/src/use-pull-mutable.ts +17 -0
  137. package/realtime-react/src/use-pull.ts +15 -0
  138. package/realtime-react/src/use-push.ts +19 -0
  139. package/realtime-react/src/use-server-action.ts +18 -0
  140. package/realtime-testing/dist/index.d.mts +49 -0
  141. package/realtime-testing/dist/index.d.ts +49 -0
  142. package/realtime-testing/dist/index.js +147 -0
  143. package/realtime-testing/dist/index.js.map +1 -0
  144. package/realtime-testing/dist/index.mjs +116 -0
  145. package/realtime-testing/dist/index.mjs.map +1 -0
  146. package/realtime-testing/src/index.ts +1 -0
  147. package/realtime-testing/src/setup-realtime-test.tsx +161 -0
  148. package/src/atom.ts +64 -9
  149. package/src/index.ts +36 -32
  150. package/src/logger.ts +3 -3
  151. package/src/selector.ts +3 -3
  152. package/src/silo.ts +29 -20
  153. package/src/subscribe.ts +3 -3
  154. package/src/timeline.ts +2 -2
  155. package/transceivers/set-rtx/dist/index.d.mts +39 -0
  156. package/transceivers/set-rtx/dist/index.d.ts +39 -0
  157. package/transceivers/set-rtx/dist/index.js +213 -0
  158. package/transceivers/set-rtx/dist/index.js.map +1 -0
  159. package/transceivers/set-rtx/dist/index.mjs +211 -0
  160. package/transceivers/set-rtx/dist/index.mjs.map +1 -0
  161. package/{realtime → transceivers/set-rtx}/package.json +1 -1
  162. package/transceivers/set-rtx/src/index.ts +1 -0
  163. package/transceivers/set-rtx/src/set-rtx.ts +242 -0
  164. package/realtime/dist/index.d.mts +0 -23
  165. package/realtime/dist/index.d.ts +0 -23
  166. package/realtime/dist/index.js +0 -32
  167. package/realtime/dist/index.js.map +0 -1
  168. package/realtime/dist/index.mjs +0 -7
  169. package/realtime/dist/index.mjs.map +0 -1
package/package.json CHANGED
@@ -1,27 +1,96 @@
1
1
  {
2
2
  "name": "atom.io",
3
- "version": "0.6.9",
3
+ "version": "0.7.0",
4
4
  "description": "Reactive state graph for React, Preact, and vanilla",
5
+ "dependencies": {},
6
+ "peerDependencies": {
7
+ "@testing-library/react": ">=14.0.0",
8
+ "@floating-ui/react": ">=0.25.0",
9
+ "@floating-ui/react-dom": ">=2.0.0",
10
+ "framer-motion": ">=10.0.0",
11
+ "react": ">=18.0.0",
12
+ "socket.io": ">=4.0.0",
13
+ "socket.io-client": ">=4.0.0"
14
+ },
15
+ "peerDependenciesMeta": {
16
+ "@testing-library/react": {
17
+ "optional": true
18
+ },
19
+ "react": {
20
+ "optional": true
21
+ },
22
+ "@floating-ui/react": {
23
+ "optional": true
24
+ },
25
+ "@floating-ui/react-dom": {
26
+ "optional": true
27
+ },
28
+ "framer-motion": {
29
+ "optional": true
30
+ },
31
+ "socket.io": {
32
+ "optional": true
33
+ },
34
+ "socket.io-client": {
35
+ "optional": true
36
+ }
37
+ },
38
+ "devDependencies": {
39
+ "@emotion/react": "11.11.1",
40
+ "@testing-library/react": "14.0.0",
41
+ "@types/mock-fs": "4.13.1",
42
+ "@types/react": "18.2.21",
43
+ "@types/tmp": "0.2.4",
44
+ "concurrently": "8.2.1",
45
+ "eslint": "8.50.0",
46
+ "framer-motion": "10.16.4",
47
+ "happy-dom": "12.1.6",
48
+ "preact": "10.17.1",
49
+ "react": "18.2.0",
50
+ "react-dom": "18.2.0",
51
+ "react-router-dom": "6.16.0",
52
+ "socket.io": "4.7.2",
53
+ "socket.io-client": "4.7.2",
54
+ "tmp": "0.2.1",
55
+ "tsup": "7.2.0",
56
+ "typescript": "5.2.2",
57
+ "vite": "4.4.9",
58
+ "vite-tsconfig-paths": "4.2.1",
59
+ "vitest": "0.34.5"
60
+ },
5
61
  "main": "dist/index.js",
6
62
  "types": "dist/index.d.ts",
7
63
  "module": "dist/index.mjs",
8
64
  "files": [
9
65
  "dist",
66
+ "internal/dist",
67
+ "internal/package.json",
68
+ "internal/src",
10
69
  "introspection/dist",
11
70
  "introspection/package.json",
71
+ "introspection/src",
12
72
  "json/dist",
13
73
  "json/package.json",
74
+ "json/src",
14
75
  "react/dist",
15
76
  "react/package.json",
77
+ "react/src",
16
78
  "react-devtools/dist",
17
79
  "react-devtools/package.json",
80
+ "react-devtools/src",
18
81
  "realtime/dist",
19
82
  "realtime/package.json",
83
+ "realtime/src",
20
84
  "realtime-react/dist",
21
85
  "realtime-react/package.json",
86
+ "realtime-react/src",
22
87
  "realtime-testing/dist",
23
88
  "realtime-testing/package.json",
24
- "src"
89
+ "realtime-testing/src",
90
+ "src",
91
+ "transceivers/set-rtx/dist",
92
+ "transceivers/set-rtx/package.json",
93
+ "transceivers/set-rtx/src"
25
94
  ],
26
95
  "exports": {
27
96
  "./package.json": "./package.json",
@@ -31,6 +100,13 @@
31
100
  "import": "./dist/index.mjs",
32
101
  "require": "./dist/index.js"
33
102
  },
103
+ "./internal/package.json": "./internal/package.json",
104
+ "./internal": {
105
+ "types": "./internal/dist/index.d.ts",
106
+ "browser": "./internal/dist/index.mjs",
107
+ "import": "./internal/dist/index.mjs",
108
+ "require": "./internal/dist/index.js"
109
+ },
34
110
  "./introspection/package.json": "./json/package.json",
35
111
  "./introspection": {
36
112
  "types": "./json/dist/index.d.ts",
@@ -59,12 +135,12 @@
59
135
  "import": "./react-devtools/dist/index.mjs",
60
136
  "require": "./react-devtools/dist/index.js"
61
137
  },
62
- "./realtime/package.json": "./realtime/package.json",
63
- "./realtime": {
64
- "types": "./realtime/dist/index.d.ts",
65
- "browser": "./realtime/dist/index.mjs",
66
- "import": "./realtime/dist/index.mjs",
67
- "require": "./realtime/dist/index.js"
138
+ "./realtime-client/package.json": "./realtime-client/package.json",
139
+ "./realtime-client": {
140
+ "types": "./realtime-client/dist/index.d.ts",
141
+ "browser": "./realtime-client/dist/index.mjs",
142
+ "import": "./realtime-client/dist/index.mjs",
143
+ "require": "./realtime-client/dist/index.js"
68
144
  },
69
145
  "./realtime-react/package.json": "./realtime-react/package.json",
70
146
  "./realtime-react": {
@@ -73,6 +149,13 @@
73
149
  "import": "./realtime-react/dist/index.mjs",
74
150
  "require": "./realtime-react/dist/index.js"
75
151
  },
152
+ "./realtime-server/package.json": "./realtime-server/package.json",
153
+ "./realtime-server": {
154
+ "types": "./realtime-server/dist/index.d.ts",
155
+ "browser": "./realtime-server/dist/index.mjs",
156
+ "import": "./realtime-server/dist/index.mjs",
157
+ "require": "./realtime-server/dist/index.js"
158
+ },
76
159
  "./realtime-testing/package.json": "./realtime-testing/package.json",
77
160
  "./realtime-testing": {
78
161
  "types": "./realtime-testing/dist/index.d.ts",
@@ -80,60 +163,14 @@
80
163
  "import": "./realtime-testing/dist/index.mjs",
81
164
  "require": "./realtime-testing/dist/index.js"
82
165
  },
83
- "./tracker/package.json": "./tracker/package.json",
84
- "./tracker": {
85
- "types": "./tracker/dist/index.d.ts",
86
- "browser": "./tracker/dist/index.mjs",
87
- "import": "./tracker/dist/index.mjs",
88
- "require": "./tracker/dist/index.js"
166
+ "./transceivers/set-rtx/package.json": "./transceivers/set-rtx/package.json",
167
+ "./transceivers/set-rtx": {
168
+ "types": "./transceivers/set-rtx/dist/index.d.ts",
169
+ "browser": "./transceivers/set-rtx/dist/index.mjs",
170
+ "import": "./transceivers/set-rtx/dist/index.mjs",
171
+ "require": "./transceivers/set-rtx/dist/index.js"
89
172
  }
90
173
  },
91
- "peerDependencies": {
92
- "preact": ">=10.0.0",
93
- "react": ">=16.8.0",
94
- "socket.io": ">=4.0.0",
95
- "socket.io-client": ">=4.0.0"
96
- },
97
- "peerDependenciesMeta": {
98
- "preact": {
99
- "optional": true
100
- },
101
- "react": {
102
- "optional": true
103
- },
104
- "socket.io": {
105
- "optional": true
106
- },
107
- "socket.io-client": {
108
- "optional": true
109
- }
110
- },
111
- "dependencies": {
112
- "fp-ts": "2.16.1"
113
- },
114
- "devDependencies": {
115
- "@emotion/react": "11.11.1",
116
- "@testing-library/react": "14.0.0",
117
- "@types/mock-fs": "4.13.1",
118
- "@types/react": "18.2.21",
119
- "@types/tmp": "0.2.4",
120
- "concurrently": "8.2.1",
121
- "eslint": "8.49.0",
122
- "framer-motion": "10.16.4",
123
- "happy-dom": "11.0.6",
124
- "preact": "10.17.1",
125
- "react": "18.2.0",
126
- "react-dom": "18.2.0",
127
- "react-router-dom": "6.16.0",
128
- "socket.io": "4.7.2",
129
- "socket.io-client": "4.7.2",
130
- "tmp": "0.2.1",
131
- "tsup": "7.2.0",
132
- "typescript": "5.2.2",
133
- "vite": "4.4.9",
134
- "vite-tsconfig-paths": "4.2.1",
135
- "vitest": "0.34.4"
136
- },
137
174
  "repository": {
138
175
  "type": "git",
139
176
  "url": "git+https://github.com/jeremybanka/wayforge.git"
@@ -147,17 +184,20 @@
147
184
  "scripts": {
148
185
  "build": "concurrently \"npm:build:*\"",
149
186
  "build:main": "tsup",
187
+ "build:internal": "cd internal && tsup",
150
188
  "build:introspection": "cd introspection && tsup",
151
189
  "build:json": "cd json && tsup",
152
190
  "build:react": "cd react && tsup",
153
191
  "build:react-devtools": "cd react-devtools && tsup",
154
- "build:realtime": "cd realtime && tsup",
192
+ "build:realtime-client": "cd realtime-client && tsup",
155
193
  "build:realtime-react": "cd realtime-react && tsup",
156
- "build:tracker": "cd tracker && tsup",
194
+ "build:realtime-server": "cd realtime-server && tsup",
195
+ "build:realtime-testing": "cd realtime-testing && tsup",
196
+ "build:transceivers:set-rtx": "cd transceivers/set-rtx && tsup",
157
197
  "lint:biome": "biome check .",
158
198
  "lint:eslint": "eslint .",
159
199
  "lint": "npm run lint:biome && npm run lint:eslint",
160
200
  "test": "vitest",
161
- "test:once": "vitest run"
201
+ "test:once": "cross-env LIB=dist vitest run"
162
202
  }
163
203
  }
@@ -1,24 +1,16 @@
1
- import * as AtomIO from 'atom.io';
1
+ import { Store } from 'atom.io/internal';
2
2
  import * as React from 'react';
3
+ import { StateToken, ReadonlySelectorToken, MutableAtomToken } from 'atom.io';
4
+ import { Json } from 'atom.io/json';
3
5
 
4
- declare const StoreContext: React.Context<AtomIO.__INTERNAL__.Store>;
6
+ declare const StoreContext: React.Context<Store>;
5
7
  declare const StoreProvider: React.FC<{
6
8
  children: React.ReactNode;
7
- store?: AtomIO.Store;
9
+ store?: Store;
8
10
  }>;
9
11
 
10
- type Modifier<T> = (thing: T) => T;
12
+ declare function useI<T>(token: StateToken<T>): <New extends T>(next: New | ((old: T) => New)) => void;
13
+ declare function useO<T>(token: ReadonlySelectorToken<T> | StateToken<T>): T;
14
+ declare function useJSON<Serializable extends Json.Serializable>(token: MutableAtomToken<any, Serializable>): Serializable;
11
15
 
12
- type StoreHooks = {
13
- useI: <T>(token: AtomIO.StateToken<T>) => (next: Modifier<T> | T) => void;
14
- useO: <T>(token: AtomIO.ReadonlySelectorToken<T> | AtomIO.StateToken<T>) => T;
15
- useIO: <T>(token: AtomIO.StateToken<T>) => [T, (next: Modifier<T> | T) => void];
16
- };
17
- declare const storeHooks: StoreHooks;
18
- declare function useI<T>(token: AtomIO.StateToken<T>): (next: Modifier<T> | T) => void;
19
- declare function useO<T>(token: AtomIO.ReadonlySelectorToken<T> | AtomIO.StateToken<T>): T;
20
- declare function useIO<T>(token: AtomIO.StateToken<T>): [T, (next: Modifier<T> | T) => void];
21
- declare function useStore<T>(token: AtomIO.StateToken<T>): [T, (next: Modifier<T> | T) => void];
22
- declare function useStore<T>(token: AtomIO.ReadonlySelectorToken<T>): T;
23
-
24
- export { StoreContext, StoreHooks, StoreProvider, storeHooks, useI, useIO, useO, useStore };
16
+ export { StoreContext, StoreProvider, useI, useJSON, useO };
@@ -1,24 +1,16 @@
1
- import * as AtomIO from 'atom.io';
1
+ import { Store } from 'atom.io/internal';
2
2
  import * as React from 'react';
3
+ import { StateToken, ReadonlySelectorToken, MutableAtomToken } from 'atom.io';
4
+ import { Json } from 'atom.io/json';
3
5
 
4
- declare const StoreContext: React.Context<AtomIO.__INTERNAL__.Store>;
6
+ declare const StoreContext: React.Context<Store>;
5
7
  declare const StoreProvider: React.FC<{
6
8
  children: React.ReactNode;
7
- store?: AtomIO.Store;
9
+ store?: Store;
8
10
  }>;
9
11
 
10
- type Modifier<T> = (thing: T) => T;
12
+ declare function useI<T>(token: StateToken<T>): <New extends T>(next: New | ((old: T) => New)) => void;
13
+ declare function useO<T>(token: ReadonlySelectorToken<T> | StateToken<T>): T;
14
+ declare function useJSON<Serializable extends Json.Serializable>(token: MutableAtomToken<any, Serializable>): Serializable;
11
15
 
12
- type StoreHooks = {
13
- useI: <T>(token: AtomIO.StateToken<T>) => (next: Modifier<T> | T) => void;
14
- useO: <T>(token: AtomIO.ReadonlySelectorToken<T> | AtomIO.StateToken<T>) => T;
15
- useIO: <T>(token: AtomIO.StateToken<T>) => [T, (next: Modifier<T> | T) => void];
16
- };
17
- declare const storeHooks: StoreHooks;
18
- declare function useI<T>(token: AtomIO.StateToken<T>): (next: Modifier<T> | T) => void;
19
- declare function useO<T>(token: AtomIO.ReadonlySelectorToken<T> | AtomIO.StateToken<T>): T;
20
- declare function useIO<T>(token: AtomIO.StateToken<T>): [T, (next: Modifier<T> | T) => void];
21
- declare function useStore<T>(token: AtomIO.StateToken<T>): [T, (next: Modifier<T> | T) => void];
22
- declare function useStore<T>(token: AtomIO.ReadonlySelectorToken<T>): T;
23
-
24
- export { StoreContext, StoreHooks, StoreProvider, storeHooks, useI, useIO, useO, useStore };
16
+ export { StoreContext, StoreProvider, useI, useJSON, useO };
@@ -1,38 +1,55 @@
1
1
  'use strict';
2
2
 
3
- var r = require('atom.io');
4
- var o = require('react');
3
+ var internal = require('atom.io/internal');
4
+ var React2 = require('react');
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
+ var atom_io = require('atom.io');
6
7
 
7
8
  function _interopNamespace(e) {
8
- if (e && e.__esModule) return e;
9
- var n = Object.create(null);
10
- if (e) {
11
- Object.keys(e).forEach(function (k) {
12
- if (k !== 'default') {
13
- var d = Object.getOwnPropertyDescriptor(e, k);
14
- Object.defineProperty(n, k, d.get ? d : {
15
- enumerable: true,
16
- get: function () { return e[k]; }
17
- });
18
- }
19
- });
20
- }
21
- n.default = e;
22
- return Object.freeze(n);
9
+ if (e && e.__esModule) return e;
10
+ var n = Object.create(null);
11
+ if (e) {
12
+ Object.keys(e).forEach(function (k) {
13
+ if (k !== 'default') {
14
+ var d = Object.getOwnPropertyDescriptor(e, k);
15
+ Object.defineProperty(n, k, d.get ? d : {
16
+ enumerable: true,
17
+ get: function () { return e[k]; }
18
+ });
19
+ }
20
+ });
21
+ }
22
+ n.default = e;
23
+ return Object.freeze(n);
23
24
  }
24
25
 
25
- var r__namespace = /*#__PURE__*/_interopNamespace(r);
26
- var o__namespace = /*#__PURE__*/_interopNamespace(o);
26
+ var React2__namespace = /*#__PURE__*/_interopNamespace(React2);
27
27
 
28
- var T=o__namespace.createContext(r__namespace.__INTERNAL__.IMPLICIT.STORE),d=({children:t,store:e=r__namespace.__INTERNAL__.IMPLICIT.STORE})=>jsxRuntime.jsx(T.Provider,{value:e,children:t});var x={useI:m,useO:s,useIO:I};function m(t){let e=o__namespace.useContext(T);return n=>r__namespace.setState(t,n,e)}function s(t){let e=o__namespace.useContext(T),a=o__namespace.useId();return o__namespace.useSyncExternalStore(n=>r__namespace.subscribe(t,n,`use-o:${a}`,e),()=>r__namespace.getState(t,e))}function I(t){return [s(t),m(t)]}function f(t){return t.type==="readonly_selector"?s(t):I(t)}
28
+ // src/store-context.tsx
29
+ var StoreContext = React2__namespace.createContext(internal.IMPLICIT.STORE);
30
+ var StoreProvider = ({ children, store = internal.IMPLICIT.STORE }) => /* @__PURE__ */ jsxRuntime.jsx(StoreContext.Provider, { value: store, children });
31
+ function useI(token) {
32
+ const store = React2__namespace.useContext(StoreContext);
33
+ return (next) => atom_io.setState(token, next, store);
34
+ }
35
+ function useO(token) {
36
+ const store = React2__namespace.useContext(StoreContext);
37
+ const id = React2__namespace.useId();
38
+ return React2__namespace.useSyncExternalStore(
39
+ (dispatch) => atom_io.subscribe(token, dispatch, `use-o:${id}`, store),
40
+ () => atom_io.getState(token, store),
41
+ () => atom_io.getState(token, store)
42
+ );
43
+ }
44
+ function useJSON(token) {
45
+ const jsonToken = internal.getJsonToken(token);
46
+ return useO(jsonToken);
47
+ }
29
48
 
30
- exports.StoreContext = T;
31
- exports.StoreProvider = d;
32
- exports.storeHooks = x;
33
- exports.useI = m;
34
- exports.useIO = I;
35
- exports.useO = s;
36
- exports.useStore = f;
49
+ exports.StoreContext = StoreContext;
50
+ exports.StoreProvider = StoreProvider;
51
+ exports.useI = useI;
52
+ exports.useJSON = useJSON;
53
+ exports.useO = useO;
37
54
  //# sourceMappingURL=out.js.map
38
55
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/store-context.tsx","../src/store-hooks.ts"],"names":["AtomIO","React","jsx","StoreContext","StoreProvider","children","store","storeHooks","useI","useO","useIO","token","next","id","observe","useStore"],"mappings":"AAAA,UAAYA,MAAY,UACxB,UAAYC,MAAW,QAUtB,cAAAC,MAAA,oBARM,IAAMC,EAAqB,gBAC1B,eAAa,SAAS,KAC9B,EAEaC,EAGR,CAAC,CAAE,SAAAC,EAAU,MAAAC,EAAe,eAAa,SAAS,KAAM,IAC5DJ,EAACC,EAAa,SAAb,CAAsB,MAAOG,EAAQ,SAAAD,EAAS,ECXhD,UAAYL,MAAY,UACxB,UAAYC,MAAW,QAWhB,IAAMM,EAAyB,CAAE,KAAAC,EAAM,KAAAC,EAAM,MAAAC,CAAM,EAEnD,SAASF,EACfG,EACkC,CAClC,IAAML,EAAc,aAAWH,CAAY,EAE3C,OADgBS,GAAiC,WAASD,EAAOC,EAAMN,CAAK,CAE7E,CAEO,SAASG,EACfE,EACI,CACJ,IAAML,EAAc,aAAWH,CAAY,EACrCU,EAAW,QAAM,EACvB,OAAa,uBACXC,GAAmB,YAAUH,EAAOG,EAAS,SAASD,CAAE,GAAIP,CAAK,EAClE,IAAa,WAASK,EAAOL,CAAK,CACnC,CACD,CAEO,SAASI,EACfC,EACuC,CACvC,MAAO,CAACF,EAAKE,CAAK,EAAGH,EAAKG,CAAK,CAAC,CACjC,CAMO,SAASI,EACfJ,EAC2C,CAC3C,OAAOA,EAAM,OAAS,oBAAsBF,EAAKE,CAAK,EAAID,EAAMC,CAAK,CACtE","sourcesContent":["import * as AtomIO from \"atom.io\"\nimport * as React from \"react\"\n\nexport const StoreContext = React.createContext<AtomIO.Store>(\n\tAtomIO.__INTERNAL__.IMPLICIT.STORE,\n)\n\nexport const StoreProvider: React.FC<{\n\tchildren: React.ReactNode\n\tstore?: AtomIO.Store\n}> = ({ children, store = AtomIO.__INTERNAL__.IMPLICIT.STORE }) => (\n\t<StoreContext.Provider value={store}>{children}</StoreContext.Provider>\n)\n","import * as AtomIO from \"atom.io\"\nimport * as React from \"react\"\n\nimport type { Modifier } from \"~/packages/anvl/src/function\"\n\nimport { StoreContext } from \"./store-context\"\n\nexport type StoreHooks = {\n\tuseI: <T>(token: AtomIO.StateToken<T>) => (next: Modifier<T> | T) => void\n\tuseO: <T>(token: AtomIO.ReadonlySelectorToken<T> | AtomIO.StateToken<T>) => T\n\tuseIO: <T>(token: AtomIO.StateToken<T>) => [T, (next: Modifier<T> | T) => void]\n}\nexport const storeHooks: StoreHooks = { useI, useO, useIO }\n\nexport function useI<T>(\n\ttoken: AtomIO.StateToken<T>,\n): (next: Modifier<T> | T) => void {\n\tconst store = React.useContext(StoreContext)\n\tconst update = (next: Modifier<T> | T) => AtomIO.setState(token, next, store)\n\treturn update\n}\n\nexport function useO<T>(\n\ttoken: AtomIO.ReadonlySelectorToken<T> | AtomIO.StateToken<T>,\n): T {\n\tconst store = React.useContext(StoreContext)\n\tconst id = React.useId()\n\treturn React.useSyncExternalStore<T>(\n\t\t(observe) => AtomIO.subscribe(token, observe, `use-o:${id}`, store),\n\t\t() => AtomIO.getState(token, store),\n\t)\n}\n\nexport function useIO<T>(\n\ttoken: AtomIO.StateToken<T>,\n): [T, (next: Modifier<T> | T) => void] {\n\treturn [useO(token), useI(token)]\n}\n\nexport function useStore<T>(\n\ttoken: AtomIO.StateToken<T>,\n): [T, (next: Modifier<T> | T) => void]\nexport function useStore<T>(token: AtomIO.ReadonlySelectorToken<T>): T\nexport function useStore<T>(\n\ttoken: AtomIO.ReadonlySelectorToken<T> | AtomIO.StateToken<T>,\n): T | [T, (next: Modifier<T> | T) => void] {\n\treturn token.type === `readonly_selector` ? useO(token) : useIO(token)\n}\n"]}
1
+ {"version":3,"sources":["../src/store-context.tsx","../src/store-hooks.ts"],"names":["React"],"mappings":";AACA,SAAS,gBAAgB;AACzB,YAAY,WAAW;AAQtB;AANM,IAAM,eAAqB,oBAAqB,SAAS,KAAK;AAE9D,IAAM,gBAGR,CAAC,EAAE,UAAU,QAAQ,SAAS,MAAM,MACxC,oBAAC,aAAa,UAAb,EAAsB,OAAO,OAAQ,UAAS;;;ACVhD,YAAYA,YAAW;AAEvB,SAAS,UAAU,UAAU,iBAAiB;AAO9C,SAAS,oBAAoB;AAItB,SAAS,KACf,OACyD;AACzD,QAAM,QAAc,kBAAW,YAAY;AAC3C,SAAO,CAAC,SAAS,SAAS,OAAO,MAAM,KAAK;AAC7C;AAEO,SAAS,KAAQ,OAAoD;AAC3E,QAAM,QAAc,kBAAW,YAAY;AAC3C,QAAM,KAAW,aAAM;AACvB,SAAa;AAAA,IACZ,CAAC,aAAa,UAAU,OAAO,UAAU,SAAS,EAAE,IAAI,KAAK;AAAA,IAC7D,MAAM,SAAS,OAAO,KAAK;AAAA,IAC3B,MAAM,SAAS,OAAO,KAAK;AAAA,EAC5B;AACD;AAEO,SAAS,QACf,OACe;AACf,QAAM,YAAY,aAAa,KAAK;AACpC,SAAO,KAAK,SAAS;AACtB","sourcesContent":["import type { Store } from \"atom.io/internal\"\nimport { IMPLICIT } from \"atom.io/internal\"\nimport * as React from \"react\"\n\nexport const StoreContext = React.createContext<Store>(IMPLICIT.STORE)\n\nexport const StoreProvider: React.FC<{\n\tchildren: React.ReactNode\n\tstore?: Store\n}> = ({ children, store = IMPLICIT.STORE }) => (\n\t<StoreContext.Provider value={store}>{children}</StoreContext.Provider>\n)\n","import * as React from \"react\"\n\nimport { getState, setState, subscribe } from \"atom.io\"\nimport type {\n\tMutableAtomToken,\n\tReadonlySelectorToken,\n\tStateToken,\n} from \"atom.io\"\n\nimport { getJsonToken } from \"atom.io/internal\"\nimport type { Json } from \"atom.io/json\"\nimport { StoreContext } from \"./store-context\"\n\nexport function useI<T>(\n\ttoken: StateToken<T>,\n): <New extends T>(next: New | ((old: T) => New)) => void {\n\tconst store = React.useContext(StoreContext)\n\treturn (next) => setState(token, next, store)\n}\n\nexport function useO<T>(token: ReadonlySelectorToken<T> | StateToken<T>): T {\n\tconst store = React.useContext(StoreContext)\n\tconst id = React.useId()\n\treturn React.useSyncExternalStore<T>(\n\t\t(dispatch) => subscribe(token, dispatch, `use-o:${id}`, store),\n\t\t() => getState(token, store),\n\t\t() => getState(token, store),\n\t)\n}\n\nexport function useJSON<Serializable extends Json.Serializable,>(\n\ttoken: MutableAtomToken<any, Serializable>,\n): Serializable {\n\tconst jsonToken = getJsonToken(token)\n\treturn useO(jsonToken)\n}\n"]}
@@ -1,9 +1,29 @@
1
- import * as r from 'atom.io';
2
- import * as o from 'react';
1
+ import { IMPLICIT, getJsonToken } from 'atom.io/internal';
2
+ import * as React2 from 'react';
3
3
  import { jsx } from 'react/jsx-runtime';
4
+ import { setState, subscribe, getState } from 'atom.io';
4
5
 
5
- var T=o.createContext(r.__INTERNAL__.IMPLICIT.STORE),d=({children:t,store:e=r.__INTERNAL__.IMPLICIT.STORE})=>jsx(T.Provider,{value:e,children:t});var x={useI:m,useO:s,useIO:I};function m(t){let e=o.useContext(T);return n=>r.setState(t,n,e)}function s(t){let e=o.useContext(T),a=o.useId();return o.useSyncExternalStore(n=>r.subscribe(t,n,`use-o:${a}`,e),()=>r.getState(t,e))}function I(t){return [s(t),m(t)]}function f(t){return t.type==="readonly_selector"?s(t):I(t)}
6
+ // src/store-context.tsx
7
+ var StoreContext = React2.createContext(IMPLICIT.STORE);
8
+ var StoreProvider = ({ children, store = IMPLICIT.STORE }) => /* @__PURE__ */ jsx(StoreContext.Provider, { value: store, children });
9
+ function useI(token) {
10
+ const store = React2.useContext(StoreContext);
11
+ return (next) => setState(token, next, store);
12
+ }
13
+ function useO(token) {
14
+ const store = React2.useContext(StoreContext);
15
+ const id = React2.useId();
16
+ return React2.useSyncExternalStore(
17
+ (dispatch) => subscribe(token, dispatch, `use-o:${id}`, store),
18
+ () => getState(token, store),
19
+ () => getState(token, store)
20
+ );
21
+ }
22
+ function useJSON(token) {
23
+ const jsonToken = getJsonToken(token);
24
+ return useO(jsonToken);
25
+ }
6
26
 
7
- export { T as StoreContext, d as StoreProvider, x as storeHooks, m as useI, I as useIO, s as useO, f as useStore };
27
+ export { StoreContext, StoreProvider, useI, useJSON, useO };
8
28
  //# sourceMappingURL=out.js.map
9
29
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/store-context.tsx","../src/store-hooks.ts"],"names":["AtomIO","React","jsx","StoreContext","StoreProvider","children","store","storeHooks","useI","useO","useIO","token","next","id","observe","useStore"],"mappings":"AAAA,UAAYA,MAAY,UACxB,UAAYC,MAAW,QAUtB,cAAAC,MAAA,oBARM,IAAMC,EAAqB,gBAC1B,eAAa,SAAS,KAC9B,EAEaC,EAGR,CAAC,CAAE,SAAAC,EAAU,MAAAC,EAAe,eAAa,SAAS,KAAM,IAC5DJ,EAACC,EAAa,SAAb,CAAsB,MAAOG,EAAQ,SAAAD,EAAS,ECXhD,UAAYL,MAAY,UACxB,UAAYC,MAAW,QAWhB,IAAMM,EAAyB,CAAE,KAAAC,EAAM,KAAAC,EAAM,MAAAC,CAAM,EAEnD,SAASF,EACfG,EACkC,CAClC,IAAML,EAAc,aAAWH,CAAY,EAE3C,OADgBS,GAAiC,WAASD,EAAOC,EAAMN,CAAK,CAE7E,CAEO,SAASG,EACfE,EACI,CACJ,IAAML,EAAc,aAAWH,CAAY,EACrCU,EAAW,QAAM,EACvB,OAAa,uBACXC,GAAmB,YAAUH,EAAOG,EAAS,SAASD,CAAE,GAAIP,CAAK,EAClE,IAAa,WAASK,EAAOL,CAAK,CACnC,CACD,CAEO,SAASI,EACfC,EACuC,CACvC,MAAO,CAACF,EAAKE,CAAK,EAAGH,EAAKG,CAAK,CAAC,CACjC,CAMO,SAASI,EACfJ,EAC2C,CAC3C,OAAOA,EAAM,OAAS,oBAAsBF,EAAKE,CAAK,EAAID,EAAMC,CAAK,CACtE","sourcesContent":["import * as AtomIO from \"atom.io\"\nimport * as React from \"react\"\n\nexport const StoreContext = React.createContext<AtomIO.Store>(\n\tAtomIO.__INTERNAL__.IMPLICIT.STORE,\n)\n\nexport const StoreProvider: React.FC<{\n\tchildren: React.ReactNode\n\tstore?: AtomIO.Store\n}> = ({ children, store = AtomIO.__INTERNAL__.IMPLICIT.STORE }) => (\n\t<StoreContext.Provider value={store}>{children}</StoreContext.Provider>\n)\n","import * as AtomIO from \"atom.io\"\nimport * as React from \"react\"\n\nimport type { Modifier } from \"~/packages/anvl/src/function\"\n\nimport { StoreContext } from \"./store-context\"\n\nexport type StoreHooks = {\n\tuseI: <T>(token: AtomIO.StateToken<T>) => (next: Modifier<T> | T) => void\n\tuseO: <T>(token: AtomIO.ReadonlySelectorToken<T> | AtomIO.StateToken<T>) => T\n\tuseIO: <T>(token: AtomIO.StateToken<T>) => [T, (next: Modifier<T> | T) => void]\n}\nexport const storeHooks: StoreHooks = { useI, useO, useIO }\n\nexport function useI<T>(\n\ttoken: AtomIO.StateToken<T>,\n): (next: Modifier<T> | T) => void {\n\tconst store = React.useContext(StoreContext)\n\tconst update = (next: Modifier<T> | T) => AtomIO.setState(token, next, store)\n\treturn update\n}\n\nexport function useO<T>(\n\ttoken: AtomIO.ReadonlySelectorToken<T> | AtomIO.StateToken<T>,\n): T {\n\tconst store = React.useContext(StoreContext)\n\tconst id = React.useId()\n\treturn React.useSyncExternalStore<T>(\n\t\t(observe) => AtomIO.subscribe(token, observe, `use-o:${id}`, store),\n\t\t() => AtomIO.getState(token, store),\n\t)\n}\n\nexport function useIO<T>(\n\ttoken: AtomIO.StateToken<T>,\n): [T, (next: Modifier<T> | T) => void] {\n\treturn [useO(token), useI(token)]\n}\n\nexport function useStore<T>(\n\ttoken: AtomIO.StateToken<T>,\n): [T, (next: Modifier<T> | T) => void]\nexport function useStore<T>(token: AtomIO.ReadonlySelectorToken<T>): T\nexport function useStore<T>(\n\ttoken: AtomIO.ReadonlySelectorToken<T> | AtomIO.StateToken<T>,\n): T | [T, (next: Modifier<T> | T) => void] {\n\treturn token.type === `readonly_selector` ? useO(token) : useIO(token)\n}\n"]}
1
+ {"version":3,"sources":["../src/store-context.tsx","../src/store-hooks.ts"],"names":["React"],"mappings":";AACA,SAAS,gBAAgB;AACzB,YAAY,WAAW;AAQtB;AANM,IAAM,eAAqB,oBAAqB,SAAS,KAAK;AAE9D,IAAM,gBAGR,CAAC,EAAE,UAAU,QAAQ,SAAS,MAAM,MACxC,oBAAC,aAAa,UAAb,EAAsB,OAAO,OAAQ,UAAS;;;ACVhD,YAAYA,YAAW;AAEvB,SAAS,UAAU,UAAU,iBAAiB;AAO9C,SAAS,oBAAoB;AAItB,SAAS,KACf,OACyD;AACzD,QAAM,QAAc,kBAAW,YAAY;AAC3C,SAAO,CAAC,SAAS,SAAS,OAAO,MAAM,KAAK;AAC7C;AAEO,SAAS,KAAQ,OAAoD;AAC3E,QAAM,QAAc,kBAAW,YAAY;AAC3C,QAAM,KAAW,aAAM;AACvB,SAAa;AAAA,IACZ,CAAC,aAAa,UAAU,OAAO,UAAU,SAAS,EAAE,IAAI,KAAK;AAAA,IAC7D,MAAM,SAAS,OAAO,KAAK;AAAA,IAC3B,MAAM,SAAS,OAAO,KAAK;AAAA,EAC5B;AACD;AAEO,SAAS,QACf,OACe;AACf,QAAM,YAAY,aAAa,KAAK;AACpC,SAAO,KAAK,SAAS;AACtB","sourcesContent":["import type { Store } from \"atom.io/internal\"\nimport { IMPLICIT } from \"atom.io/internal\"\nimport * as React from \"react\"\n\nexport const StoreContext = React.createContext<Store>(IMPLICIT.STORE)\n\nexport const StoreProvider: React.FC<{\n\tchildren: React.ReactNode\n\tstore?: Store\n}> = ({ children, store = IMPLICIT.STORE }) => (\n\t<StoreContext.Provider value={store}>{children}</StoreContext.Provider>\n)\n","import * as React from \"react\"\n\nimport { getState, setState, subscribe } from \"atom.io\"\nimport type {\n\tMutableAtomToken,\n\tReadonlySelectorToken,\n\tStateToken,\n} from \"atom.io\"\n\nimport { getJsonToken } from \"atom.io/internal\"\nimport type { Json } from \"atom.io/json\"\nimport { StoreContext } from \"./store-context\"\n\nexport function useI<T>(\n\ttoken: StateToken<T>,\n): <New extends T>(next: New | ((old: T) => New)) => void {\n\tconst store = React.useContext(StoreContext)\n\treturn (next) => setState(token, next, store)\n}\n\nexport function useO<T>(token: ReadonlySelectorToken<T> | StateToken<T>): T {\n\tconst store = React.useContext(StoreContext)\n\tconst id = React.useId()\n\treturn React.useSyncExternalStore<T>(\n\t\t(dispatch) => subscribe(token, dispatch, `use-o:${id}`, store),\n\t\t() => getState(token, store),\n\t\t() => getState(token, store),\n\t)\n}\n\nexport function useJSON<Serializable extends Json.Serializable,>(\n\ttoken: MutableAtomToken<any, Serializable>,\n): Serializable {\n\tconst jsonToken = getJsonToken(token)\n\treturn useO(jsonToken)\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export * from "./store-context"
2
+ export * from "./store-hooks"
@@ -0,0 +1,12 @@
1
+ import type { Store } from "atom.io/internal"
2
+ import { IMPLICIT } from "atom.io/internal"
3
+ import * as React from "react"
4
+
5
+ export const StoreContext = React.createContext<Store>(IMPLICIT.STORE)
6
+
7
+ export const StoreProvider: React.FC<{
8
+ children: React.ReactNode
9
+ store?: Store
10
+ }> = ({ children, store = IMPLICIT.STORE }) => (
11
+ <StoreContext.Provider value={store}>{children}</StoreContext.Provider>
12
+ )
@@ -0,0 +1,36 @@
1
+ import * as React from "react"
2
+
3
+ import { getState, setState, subscribe } from "atom.io"
4
+ import type {
5
+ MutableAtomToken,
6
+ ReadonlySelectorToken,
7
+ StateToken,
8
+ } from "atom.io"
9
+
10
+ import { getJsonToken } from "atom.io/internal"
11
+ import type { Json } from "atom.io/json"
12
+ import { StoreContext } from "./store-context"
13
+
14
+ export function useI<T>(
15
+ token: StateToken<T>,
16
+ ): <New extends T>(next: New | ((old: T) => New)) => void {
17
+ const store = React.useContext(StoreContext)
18
+ return (next) => setState(token, next, store)
19
+ }
20
+
21
+ export function useO<T>(token: ReadonlySelectorToken<T> | StateToken<T>): T {
22
+ const store = React.useContext(StoreContext)
23
+ const id = React.useId()
24
+ return React.useSyncExternalStore<T>(
25
+ (dispatch) => subscribe(token, dispatch, `use-o:${id}`, store),
26
+ () => getState(token, store),
27
+ () => getState(token, store),
28
+ )
29
+ }
30
+
31
+ export function useJSON<Serializable extends Json.Serializable,>(
32
+ token: MutableAtomToken<any, Serializable>,
33
+ ): Serializable {
34
+ const jsonToken = getJsonToken(token)
35
+ return useO(jsonToken)
36
+ }
@@ -1,2 +1,51 @@
1
- .class{display:flex;flex-flow:row wrap;gap:4px;section {display: flex; flex-flow: row; margin-bottom: 1rem; border: 1px solid #ccc; padding: 2px; margin: 0; span {display: flex;}}}main.atom_io_devtools{--fg-color: #eee;--bg-color: #111;--bg-tint1: #222;--fg-border: 1px solid var(--fg-color);@media (prefers-color-scheme: light){--fg-color: #444;--bg-color: #ddd;--bg-tint1: #e3e3e3}box-sizing:border-box;color:var(--fg-color);background-color:var(--bg-color);border:2px solid var(--fg-color);position:fixed;right:0;bottom:0;height:100%;display:flex;flex-flow:column;max-height:800px;width:100%;max-width:500px;overflow-y:scroll;*{font-size:16px;font-family:theia,monospace}>header{padding:5px 5px 0 10px;display:flex;justify-content:space-between;h1 {font-size: inherit; margin: 0; font-size: 24px; font-family: charter;} nav {display: flex; flex-flow: row nowrap; button {cursor: pointer; background: none; border: none; padding: none; margin-bottom: -2px; z-index: 1000; &:disabled {cursor: default; background-color: var(--bg-tint1); color: var(--fg-color); border: var(--fg-border); border-bottom: none;}}}}>main{background:var(--bg-tint1)}main {overflow-y: scroll; flex-grow: 1; display: flex; flex-flow: column; gap: 0; article.index {.node .node {border-right: var(--fg-border); padding-right: 0; background: #fff3;} .node > .node {margin: 5px 0; margin-left: 12px; border-left: var(--fg-border);} .node {border-top: var(--fg-border); overflow-x: scroll; padding: 5px; &:last-of-type {border-bottom: var(--fg-border);} &.transaction_update {padding: 0;} header {display: flex; flex-flow: row; gap: 5px; position: sticky; z-index: 999; top: 0; button.carat {cursor: pointer; background: none; border: none; width: 20px; &.open {transform: rotate(90deg);} &:disabled {cursor: default;}} label {display: flex; flex-flow: row; gap: 5px; cursor: help; h2 {display: inline-block; margin: 0;} .detail {color: #777; @media (prefers-color-scheme: light) {color: #999;}}}} main {margin-left: 15px;}} section.transaction_log {margin-top: 0; header: {padding: 5px;} main {display: flex; flex-flow: row wrap; gap: 5px; .transaction_update {width: 100%; display: flex; flex-flow: row; align-items: flex-start; justify-content: flex-start; justify-items: flex-start; align-content: flex-start; border-left: var(--fg-border); border-top: var(--fg-border); header {padding: 5px; h4 {margin: 0; padding: 0; font-size: inherit;}} main {margin-left: 0; display: flex; flex-flow: column; gap: 0px; border-left: 1px solid #333; section ~ section {border-top: 1px solid #333;} section {padding: 5px; &.transaction_output {border-right: none;} &.transaction_impact {padding: 5px;} margin: 0; article {border-left: var(--fg-border); border-right: var(--fg-border); .summary {white-space: nowrap;}}}}}}} section.timeline_log {header {display: flex; label {display: flex; width: 100%; flex-grow: 1; .gap {flex-grow: 1;} nav {display: flex; flex-flow: row nowrap; gap: 5px;}}} .timeline_update {padding: 5px; border-left: var(--fg-border); h4 {margin: 0; padding: 0; font-size: inherit;} main {margin: 0; .node.atom_update {border-left: var(--fg-border);}}} .you_are_here {background: var(--fg-color); color: var(--bg-color); text-align: center;}}}} footer {display: flex; justify-content: flex-end; button {cursor: pointer; background: none; border: none; padding: none; position: absolute; right: 0; bottom: 0;}} .json_editor {input {font-family: theia; border: none; border-bottom: 1px solid; background: none; &:disabled {border: none;}} button {background: none; margin-left: auto; color: #777; border: none; font-family: theia; font-size: 14px; margin: none; padding: 4px; padding-bottom: 6px; cursor: pointer; &:hover {color: #333; background-color: #aaa;}} select {font-family: theia; font-size: 14px; background: none; border: none; color: #777; @media (prefers-color-scheme: light) {color: #999;}} .json_editor_unofficial {background-color: #777; button {color: #333;}} .json_editor_missing {background-color: #f055;} .json_editor_key {padding-right: 10px; input {color: #999; @media (prefers-color-scheme: light) {color: #777;}}} .json_editor_object {border-left: 2px solid #333; padding-left: 20px; @media (prefers-color-scheme: light) {border-color: #ccc;} .json_editor_properties {> * {border-bottom: var(--fg-border); margin-bottom: 2px;}}}}}
1
+ /* ../../hamr/src/react-data-designer/RelationEditor.module.scss */
2
+ .class {
3
+ display: flex;
4
+ flex-flow: row wrap;
5
+ gap: 4px;
6
+ section { display: flex; flex-flow: row; margin-bottom: 1rem; border: 1px solid #ccc; padding: 2px; margin: 0; span { display: flex; } };
7
+ }
8
+
9
+ /* src/devtools.scss */
10
+ main.atom_io_devtools {
11
+ --fg-color: #eee;
12
+ --bg-color: #111;
13
+ --bg-tint1: #222;
14
+ --fg-border: 1px solid var(--fg-color);
15
+ @media (prefers-color-scheme: light) {
16
+ --fg-color: #444;
17
+ --bg-color: #ddd;
18
+ --bg-tint1: #e3e3e3;
19
+ }
20
+ box-sizing: border-box;
21
+ color: var(--fg-color);
22
+ background-color: var(--bg-color);
23
+ border: 2px solid var(--fg-color);
24
+ position: fixed;
25
+ right: 0;
26
+ bottom: 0;
27
+ height: 100%;
28
+ display: flex;
29
+ flex-flow: column;
30
+ max-height: 800px;
31
+ width: 100%;
32
+ max-width: 500px;
33
+ overflow-y: scroll;
34
+ * {
35
+ font-size: 16px;
36
+ font-family: theia, monospace;
37
+ }
38
+ > header {
39
+ padding: 5px;
40
+ padding-left: 10px;
41
+ padding-bottom: 0;
42
+ display: flex;
43
+ justify-content: space-between;
44
+ h1 { font-size: inherit; margin: 0; font-size: 24px; font-family: charter; } nav { display: flex; flex-flow: row nowrap; button { cursor: pointer; background: none; border: none; padding: none; margin-bottom: -2px; z-index: 1000; &:disabled { cursor: default; background-color: var(--bg-tint1); color: var(--fg-color); border: var(--fg-border); border-bottom: none; } } };
45
+ }
46
+ > main {
47
+ background: var(--bg-tint1);
48
+ }
49
+ main { overflow-y: scroll; flex-grow: 1; display: flex; flex-flow: column; gap: 0; article.index { .node .node { border-right: var(--fg-border); padding-right: 0; background: #fff3; } .node > .node { margin: 5px 0; margin-left: 12px; border-left: var(--fg-border); } .node { border-top: var(--fg-border); overflow-x: scroll; padding: 5px; &:last-of-type { border-bottom: var(--fg-border); } &.transaction_update { padding: 0; } header { display: flex; flex-flow: row; gap: 5px; position: sticky; z-index: 999; top: 0; button.carat { cursor: pointer; background: none; border: none; width: 20px; &.open { transform: rotate(90deg); } &:disabled { cursor: default; } } label { display: flex; flex-flow: row; gap: 5px; cursor: help; h2 { display: inline-block; margin: 0; } .detail { color: #777; @media (prefers-color-scheme: light) { color: #999; } } } } main { margin-left: 15px; } } section.transaction_log { margin-top: 0; header: { padding: 5px; } main { display: flex; flex-flow: row wrap; gap: 5px; .transaction_update { width: 100%; display: flex; flex-flow: row; align-items: flex-start; justify-content: flex-start; justify-items: flex-start; align-content: flex-start; border-left: var(--fg-border); border-top: var(--fg-border); header { padding: 5px; h4 { margin: 0; padding: 0; font-size: inherit; } } main { margin-left: 0; display: flex; flex-flow: column; gap: 0px; border-left: 1px solid #333; section ~ section { border-top: 1px solid #333; } section { padding: 5px; &.transaction_output { border-right: none; } &.transaction_impact { padding: 5px; } margin: 0; article { border-left: var(--fg-border); border-right: var(--fg-border); .summary { white-space: nowrap; } } } } } } } section.timeline_log { header { display: flex; label { display: flex; width: 100%; flex-grow: 1; .gap { flex-grow: 1; } nav { display: flex; flex-flow: row nowrap; gap: 5px; } } } .timeline_update { padding: 5px; border-left: var(--fg-border); h4 { margin: 0; padding: 0; font-size: inherit; } main { margin: 0; .node.atom_update { border-left: var(--fg-border); } } } .you_are_here { background: var(--fg-color); color: var(--bg-color); text-align: center; } } } } footer { display: flex; justify-content: flex-end; button { cursor: pointer; background: none; border: none; padding: none; position: absolute; right: 0; bottom: 0; } } .json_editor { input { font-family: theia; border: none; border-bottom: 1px solid; background: none; &:disabled { border: none; } } button { background: none; margin-left: auto; color: #777; border: none; font-family: theia; font-size: 14px; margin: none; padding: 4px; padding-bottom: 6px; cursor: pointer; &:hover { color: #333; background-color: #aaa; } } select { font-family: theia; font-size: 14px; background: none; border: none; color: #777; @media (prefers-color-scheme: light) { color: #999; } } .json_editor_unofficial { background-color: #777; button { color: #333; } } .json_editor_missing { background-color: #f055; } .json_editor_key { padding-right: 10px; input { color: #999; @media (prefers-color-scheme: light) { color: #777; } } } .json_editor_object { border-left: 2px solid #333; padding-left: 20px; @media (prefers-color-scheme: light) { border-color: #ccc; } .json_editor_properties { > * { border-bottom: var(--fg-border); margin-bottom: 2px; } } } };
50
+ }
2
51
  /*# sourceMappingURL=index.css.map */