atom.io 0.6.8 → 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 (214) hide show
  1. package/README.md +21 -2
  2. package/dist/index.d.mts +42 -461
  3. package/dist/index.d.ts +42 -461
  4. package/dist/index.js +128 -1792
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +75 -1742
  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/{src/internal → internal/src/atom}/is-default.ts +4 -2
  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/{src/internal → internal/src}/selector/create-read-write-selector.ts +10 -13
  37. package/{src/internal → internal/src}/selector/create-readonly-selector.ts +9 -8
  38. package/internal/src/selector/create-selector.ts +65 -0
  39. package/{src/internal → internal/src}/selector/index.ts +1 -0
  40. package/internal/src/selector/lookup-selector-sources.ts +20 -0
  41. package/{src/internal → internal/src}/selector/register-selector.ts +13 -9
  42. package/{src/internal → internal/src}/selector/trace-selector-atoms.ts +4 -2
  43. package/{src/internal → internal/src}/selector/update-selector-atoms.ts +4 -3
  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/{src/internal → internal/src}/timeline/add-atom-to-timeline.ts +50 -29
  66. package/internal/src/timeline/index.ts +3 -0
  67. package/{src/internal → internal/src/timeline}/time-travel-internal.ts +6 -6
  68. package/{src/internal → internal/src/timeline}/timeline-internal.ts +20 -12
  69. package/{src/internal → internal/src}/transaction/abort-transaction.ts +1 -1
  70. package/{src/internal → internal/src}/transaction/apply-transaction.ts +25 -18
  71. package/{src/internal → internal/src}/transaction/build-transaction.ts +12 -6
  72. package/{src/internal → internal/src}/transaction/index.ts +3 -2
  73. package/{src/internal → internal/src}/transaction/redo-transaction.ts +4 -5
  74. package/{src/internal → internal/src/transaction}/transaction-internal.ts +16 -13
  75. package/{src/internal → internal/src}/transaction/undo-transaction.ts +4 -5
  76. package/introspection/dist/index.d.mts +12 -260
  77. package/introspection/dist/index.d.ts +12 -260
  78. package/introspection/dist/index.js +125 -140
  79. package/introspection/dist/index.js.map +1 -1
  80. package/introspection/dist/index.mjs +103 -116
  81. package/introspection/dist/index.mjs.map +1 -1
  82. package/{src/introspection → introspection/src}/attach-atom-index.ts +41 -30
  83. package/{src/introspection → introspection/src}/attach-introspection-states.ts +6 -10
  84. package/introspection/src/attach-selector-index.ts +90 -0
  85. package/{src/introspection → introspection/src}/attach-timeline-family.ts +16 -16
  86. package/introspection/src/attach-timeline-index.ts +38 -0
  87. package/introspection/src/attach-transaction-index.ts +40 -0
  88. package/{src/introspection → introspection/src}/attach-transaction-logs.ts +11 -8
  89. package/json/dist/index.d.mts +41 -2
  90. package/json/dist/index.d.ts +41 -2
  91. package/json/dist/index.js +88 -48
  92. package/json/dist/index.js.map +1 -1
  93. package/json/dist/index.mjs +76 -13
  94. package/json/dist/index.mjs.map +1 -1
  95. package/json/src/index.ts +5 -0
  96. package/json/src/select-json-family.ts +35 -0
  97. package/json/src/select-json.ts +22 -0
  98. package/package.json +105 -57
  99. package/react/dist/index.d.mts +9 -17
  100. package/react/dist/index.d.ts +9 -17
  101. package/react/dist/index.js +45 -77
  102. package/react/dist/index.js.map +1 -1
  103. package/react/dist/index.mjs +18 -34
  104. package/react/dist/index.mjs.map +1 -1
  105. package/react/src/store-context.tsx +12 -0
  106. package/react/src/store-hooks.ts +36 -0
  107. package/react-devtools/dist/index.css +1 -1
  108. package/react-devtools/dist/index.css.map +1 -1
  109. package/react-devtools/dist/index.d.mts +199 -230
  110. package/react-devtools/dist/index.d.ts +199 -230
  111. package/react-devtools/dist/index.js +610 -2466
  112. package/react-devtools/dist/index.js.map +1 -1
  113. package/react-devtools/dist/index.mjs +543 -2401
  114. package/react-devtools/dist/index.mjs.map +1 -1
  115. package/{src/react-devtools → react-devtools/src}/AtomIODevtools.tsx +5 -3
  116. package/{src/react-devtools → react-devtools/src}/Button.tsx +2 -3
  117. package/{src/react-devtools → react-devtools/src}/StateEditor.tsx +3 -2
  118. package/{src/react-devtools → react-devtools/src}/StateIndex.tsx +7 -4
  119. package/{src/react-devtools → react-devtools/src}/TimelineIndex.tsx +7 -11
  120. package/{src/react-devtools → react-devtools/src}/TransactionIndex.tsx +4 -4
  121. package/{src/react-devtools → react-devtools/src}/Updates.tsx +9 -4
  122. package/{src/react-devtools → react-devtools/src}/index.ts +5 -5
  123. package/realtime-react/dist/index.d.mts +9 -25
  124. package/realtime-react/dist/index.d.ts +9 -25
  125. package/realtime-react/dist/index.js +75 -193
  126. package/realtime-react/dist/index.js.map +1 -1
  127. package/realtime-react/dist/index.mjs +44 -148
  128. package/realtime-react/dist/index.mjs.map +1 -1
  129. package/realtime-react/src/index.ts +7 -0
  130. package/{src/realtime-react → realtime-react/src}/realtime-context.tsx +3 -4
  131. package/realtime-react/src/use-pull-family-member.ts +15 -0
  132. package/realtime-react/src/use-pull-mutable-family-member.ts +20 -0
  133. package/realtime-react/src/use-pull-mutable.ts +17 -0
  134. package/realtime-react/src/use-pull.ts +15 -0
  135. package/realtime-react/src/use-push.ts +19 -0
  136. package/realtime-react/src/use-server-action.ts +18 -0
  137. package/realtime-testing/dist/index.d.mts +49 -0
  138. package/realtime-testing/dist/index.d.ts +49 -0
  139. package/realtime-testing/dist/index.js +147 -0
  140. package/realtime-testing/dist/index.js.map +1 -0
  141. package/realtime-testing/dist/index.mjs +116 -0
  142. package/realtime-testing/dist/index.mjs.map +1 -0
  143. package/{src/realtime-testing → realtime-testing/src}/setup-realtime-test.tsx +10 -8
  144. package/src/atom.ts +64 -8
  145. package/src/index.ts +36 -29
  146. package/src/logger.ts +7 -7
  147. package/src/selector.ts +5 -5
  148. package/src/silo.ts +49 -43
  149. package/src/subscribe.ts +27 -22
  150. package/src/timeline.ts +9 -4
  151. package/src/transaction.ts +3 -4
  152. package/transceivers/set-rtx/dist/index.d.mts +39 -0
  153. package/transceivers/set-rtx/dist/index.d.ts +39 -0
  154. package/transceivers/set-rtx/dist/index.js +213 -0
  155. package/transceivers/set-rtx/dist/index.js.map +1 -0
  156. package/transceivers/set-rtx/dist/index.mjs +211 -0
  157. package/transceivers/set-rtx/dist/index.mjs.map +1 -0
  158. package/{realtime → transceivers/set-rtx}/package.json +1 -1
  159. package/transceivers/set-rtx/src/index.ts +1 -0
  160. package/transceivers/set-rtx/src/set-rtx.ts +242 -0
  161. package/realtime/dist/index.d.mts +0 -25
  162. package/realtime/dist/index.d.ts +0 -25
  163. package/realtime/dist/index.js +0 -190
  164. package/realtime/dist/index.js.map +0 -1
  165. package/realtime/dist/index.mjs +0 -151
  166. package/realtime/dist/index.mjs.map +0 -1
  167. package/src/internal/atom-internal.ts +0 -54
  168. package/src/internal/families-internal.ts +0 -144
  169. package/src/internal/get.ts +0 -129
  170. package/src/internal/index.ts +0 -15
  171. package/src/internal/operation.ts +0 -139
  172. package/src/internal/selector/lookup-selector-sources.ts +0 -16
  173. package/src/internal/selector-internal.ts +0 -58
  174. package/src/internal/set.ts +0 -99
  175. package/src/internal/store.ts +0 -151
  176. package/src/internal/subscribe-internal.ts +0 -88
  177. package/src/internal/timeline/index.ts +0 -1
  178. package/src/introspection/attach-selector-index.ts +0 -77
  179. package/src/introspection/attach-timeline-index.ts +0 -36
  180. package/src/introspection/attach-transaction-index.ts +0 -38
  181. package/src/json/index.ts +0 -1
  182. package/src/json/select-json.ts +0 -18
  183. package/src/react/store-context.tsx +0 -13
  184. package/src/react/store-hooks.ts +0 -47
  185. package/src/react-explorer/AtomIOExplorer.tsx +0 -218
  186. package/src/react-explorer/explorer-effects.ts +0 -20
  187. package/src/react-explorer/explorer-states.ts +0 -217
  188. package/src/react-explorer/index.ts +0 -23
  189. package/src/react-explorer/space-states.ts +0 -72
  190. package/src/react-explorer/view-states.ts +0 -41
  191. package/src/realtime/README.md +0 -33
  192. package/src/realtime/hook-composition/expose-family.ts +0 -101
  193. package/src/realtime/hook-composition/expose-single.ts +0 -38
  194. package/src/realtime/hook-composition/expose-timeline.ts +0 -60
  195. package/src/realtime/hook-composition/index.ts +0 -12
  196. package/src/realtime/hook-composition/receive-state.ts +0 -29
  197. package/src/realtime/hook-composition/receive-transaction.ts +0 -18
  198. package/src/realtime/index.ts +0 -1
  199. package/src/realtime-react/index.ts +0 -3
  200. package/src/realtime-react/realtime-hooks.ts +0 -39
  201. package/src/realtime-react/realtime-state.ts +0 -10
  202. package/src/realtime-react/use-pull-family-member.ts +0 -26
  203. package/src/realtime-react/use-pull-family.ts +0 -24
  204. package/src/realtime-react/use-pull.ts +0 -24
  205. package/src/realtime-react/use-push.ts +0 -27
  206. package/src/realtime-react/use-server-action.ts +0 -33
  207. package/src/tracker/index.ts +0 -3
  208. package/src/tracker/tracker.ts +0 -61
  209. package/src/web-effects/index.ts +0 -1
  210. package/src/web-effects/storage.ts +0 -30
  211. /package/{src/introspection → introspection/src}/index.ts +0 -0
  212. /package/{src/react → react/src}/index.ts +0 -0
  213. /package/{src/react-devtools → react-devtools/src}/devtools.scss +0 -0
  214. /package/{src/realtime-testing → realtime-testing/src}/index.ts +0 -0
@@ -1,3 +1,13 @@
1
+ import { selectorFamily, atom, atomFamily, undo, redo, getState } from 'atom.io';
2
+ import { attachIntrospectionStates } from 'atom.io/introspection';
3
+ import { lazyLocalStorageEffect } from 'atom.io/web-effects';
4
+ import { useI, useO } from 'atom.io/react';
5
+ import { motion, spring, LayoutGroup } from 'framer-motion';
6
+ import * as React from 'react';
7
+ import { forwardRef, useRef, useState, useImperativeHandle, useLayoutEffect, Fragment as Fragment$1, Component, useId } from 'react';
8
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
9
+ import { useFloating, useClick, useInteractions, FloatingPortal } from '@floating-ui/react';
10
+
1
11
  var __defProp = Object.defineProperty;
2
12
  var __defProps = Object.defineProperties;
3
13
  var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
@@ -19,63 +29,48 @@ var __spreadValues = (a2, b2) => {
19
29
  var __spreadProps = (a2, b2) => __defProps(a2, __getOwnPropDescs(b2));
20
30
  var __restKey = (key) => typeof key === "symbol" ? key : key + "";
21
31
  var __objRest = (source, exclude) => {
22
- var target2 = {};
32
+ var target = {};
23
33
  for (var prop in source)
24
34
  if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
25
- target2[prop] = source[prop];
35
+ target[prop] = source[prop];
26
36
  if (source != null && __getOwnPropSymbols)
27
37
  for (var prop of __getOwnPropSymbols(source)) {
28
38
  if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
29
- target2[prop] = source[prop];
39
+ target[prop] = source[prop];
30
40
  }
31
- return target2;
41
+ return target;
32
42
  };
33
43
 
34
- // ../../anvl/src/object/index.ts
35
- import { pipe as pipe3 } from "fp-ts/function";
36
-
37
- // ../../anvl/src/object/refinement.ts
38
- import { pipe as pipe2 } from "fp-ts/function";
39
-
40
- // ../../anvl/src/object/access.ts
41
- var access = (k) => Object.assign((obj) => obj[k], {
42
- in: (obj) => obj[k]
43
- });
44
-
45
- // ../../anvl/src/object/entries.ts
46
- var recordToEntries = (obj) => Object.entries(obj);
47
- var entriesToRecord = (entries) => Object.fromEntries(entries);
48
-
49
- // ../../anvl/src/object/mapObject.ts
50
- import { pipe } from "fp-ts/function";
51
-
52
- // ../../anvl/src/array/venn.ts
53
- var includesAll = (items) => (array) => {
54
- for (const item of items) {
55
- if (!array.includes(item))
56
- return false;
44
+ // ../../anvl/src/function/pipe.ts
45
+ function pipe(a2, ab, bc, cd, de, ef, fg, gh, hi) {
46
+ switch (arguments.length) {
47
+ case 1:
48
+ return a2;
49
+ case 2:
50
+ return ab(a2);
51
+ case 3:
52
+ return bc(ab(a2));
53
+ case 4:
54
+ return cd(bc(ab(a2)));
55
+ case 5:
56
+ return de(cd(bc(ab(a2))));
57
+ case 6:
58
+ return ef(de(cd(bc(ab(a2)))));
59
+ case 7:
60
+ return fg(ef(de(cd(bc(ab(a2))))));
61
+ case 8:
62
+ return gh(fg(ef(de(cd(bc(ab(a2)))))));
63
+ case 9:
64
+ return hi(gh(fg(ef(de(cd(bc(ab(a2))))))));
65
+ default: {
66
+ let ret = arguments[0];
67
+ for (let i = 1; i < arguments.length; i++) {
68
+ ret = arguments[i](ret);
69
+ }
70
+ return ret;
71
+ }
57
72
  }
58
- return true;
59
- };
60
- var comprises = (items) => (array) => includesAll(items)(array) && includesAll(array)(items);
61
-
62
- // ../../anvl/src/array/index.ts
63
- var isArray = (isType) => (input) => Array.isArray(input) && input.every((item) => isType(item));
64
- var map = (f) => (a2) => a2.map(f);
65
- var every = (f = Boolean) => (a2) => a2.every(f);
66
- var allTrue = every((x) => x === true);
67
- var addTo = (a2) => (x) => a2.includes(x) ? a2 : [...a2, x];
68
- var isEmptyArray = (input) => Array.isArray(input) && input.length === 0;
69
- var isOneOf = (...args) => (input) => args.includes(input);
70
-
71
- // ../../anvl/src/object/mapObject.ts
72
- var mapObject = (obj, fn) => pipe(
73
- obj,
74
- recordToEntries,
75
- map(([key, val]) => [key, fn(val, key)]),
76
- entriesToRecord
77
- );
78
- var mob = (fn) => (obj) => mapObject(obj, fn);
73
+ }
79
74
 
80
75
  // ../../anvl/src/function/index.ts
81
76
  var doNothing = () => void 0;
@@ -106,11 +101,48 @@ var fallback = (fn, fallbackValue) => {
106
101
  }
107
102
  };
108
103
 
104
+ // ../../anvl/src/array/venn.ts
105
+ var includesAll = (items) => (array) => {
106
+ for (const item of items) {
107
+ if (!array.includes(item))
108
+ return false;
109
+ }
110
+ return true;
111
+ };
112
+ var comprises = (items) => (array) => includesAll(items)(array) && includesAll(array)(items);
113
+
114
+ // ../../anvl/src/array/index.ts
115
+ var isArray = (isType) => (input) => Array.isArray(input) && input.every((item) => isType(item));
116
+ var map = (f) => (a2) => a2.map(f);
117
+ var every = (f = Boolean) => (a2) => a2.every(f);
118
+ var allTrue = every((x) => x === true);
119
+ var addTo = (a2) => (x) => a2.includes(x) ? a2 : [...a2, x];
120
+ var isEmptyArray = (input) => Array.isArray(input) && input.length === 0;
121
+ var isOneOf = (...args) => (input) => args.includes(input);
122
+
109
123
  // ../../anvl/src/nullish/index.ts
110
124
  var isUndefined = (input) => input === void 0;
111
125
  var ifDefined = (validate) => (input) => isUndefined(input) || validate(input);
112
126
  var ifNullish = (alt) => (input) => input != null ? input : alt;
113
127
 
128
+ // ../../anvl/src/object/access.ts
129
+ var access = (k) => Object.assign((obj) => obj[k], {
130
+ in: (obj) => obj[k]
131
+ });
132
+
133
+ // ../../anvl/src/object/entries.ts
134
+ var recordToEntries = (obj) => Object.entries(obj);
135
+ var entriesToRecord = (entries) => Object.fromEntries(entries);
136
+
137
+ // ../../anvl/src/object/mapObject.ts
138
+ var mapObject = (obj, fn) => pipe(
139
+ obj,
140
+ recordToEntries,
141
+ map(([key, val]) => [key, fn(val, key)]),
142
+ entriesToRecord
143
+ );
144
+ var mob = (fn) => (obj) => mapObject(obj, fn);
145
+
114
146
  // ../../anvl/src/object/refinement.ts
115
147
  var isNonNullObject = (input) => typeof input === `object` && input !== null;
116
148
  var isPlainObject = (input) => isNonNullObject(input) && Object.getPrototypeOf(input) === Object.prototype;
@@ -121,14 +153,14 @@ var hasProperties = (isValue, options = { allowExtraProperties: false }) => {
121
153
  isValue
122
154
  ).map(([k, v]) => String(k) + `:` + v.name).join(`,`)}}`;
123
155
  const _ = {
124
- [name]: (input) => isPlainObject(input) && pipe2(
156
+ [name]: (input) => isPlainObject(input) && pipe(
125
157
  isValue,
126
158
  Object.entries,
127
159
  every(([key, val]) => key in input || val(void 0))
128
- ) && pipe2(
160
+ ) && pipe(
129
161
  input,
130
162
  mob(
131
- (val, key) => pipe2(
163
+ (val, key) => pipe(
132
164
  isValue,
133
165
  access(key),
134
166
  ifNullish(() => options.allowExtraProperties),
@@ -141,14 +173,10 @@ var hasProperties = (isValue, options = { allowExtraProperties: false }) => {
141
173
  };
142
174
  return _[name];
143
175
  };
144
- var doesExtend = (
145
- /* alias for hasExactProperties with allowExtraProperties */
146
- (isValue) => hasProperties(isValue, { allowExtraProperties: true })
147
- );
148
- var hasExactProperties = (
149
- /* alias for hasProperties without allowExtraProperties */
150
- (isValue) => hasProperties(isValue, { allowExtraProperties: false })
151
- );
176
+ var ALLOW_EXTENSION = { allowExtraProperties: true };
177
+ var doesExtend = (isValue) => hasProperties(isValue, ALLOW_EXTENSION);
178
+ var DO_NOT_ALLOW_EXTENSION = { allowExtraProperties: false };
179
+ var hasExactProperties = (isValue) => hasProperties(isValue, DO_NOT_ALLOW_EXTENSION);
152
180
 
153
181
  // ../../anvl/src/object/sprawl.ts
154
182
  var sprawl = (tree, inspector) => {
@@ -352,68 +380,82 @@ var Differ = class {
352
380
  }
353
381
  };
354
382
 
355
- // ../../anvl/src/string/capitalize.ts
356
- var capitalize = (str) => str[0].toUpperCase() + str.slice(1);
357
-
358
- // ../src/internal/get.ts
359
- var computeSelectorState = (selector) => selector.get();
360
- function lookup(key, store) {
361
- const core = target(store);
362
- const type = core.atoms.has(key) ? `atom` : core.selectors.has(key) ? `selector` : `readonly_selector`;
363
- return { key, type };
364
- }
365
- function withdraw(token, store) {
366
- var _a2, _b, _c, _d, _e;
367
- const core = target(store);
368
- return (_e = (_d = (_c = (_b = (_a2 = core.atoms.get(token.key)) != null ? _a2 : core.selectors.get(token.key)) != null ? _b : core.readonlySelectors.get(token.key)) != null ? _c : core.transactions.get(token.key)) != null ? _d : core.timelines.get(token.key)) != null ? _e : null;
369
- }
370
- function deposit(state) {
371
- return __spreadValues({
372
- key: state.key,
373
- type: state.type
374
- }, `family` in state && { family: state.family });
375
- }
376
- var getState__INTERNAL = (state, store = IMPLICIT.STORE) => {
377
- var _a2, _b, _c;
378
- if (isValueCached(state.key, store)) {
379
- (_a2 = store.config.logger) == null ? void 0 : _a2.info(`>> read "${state.key}"`);
380
- return readCachedValue(state.key, store);
381
- }
382
- if (state.type !== `atom`) {
383
- (_b = store.config.logger) == null ? void 0 : _b.info(`-> calc "${state.key}"`);
384
- return computeSelectorState(state);
385
- }
386
- (_c = store.config.logger) == null ? void 0 : _c.error(
387
- `Attempted to get atom "${state.key}", which was never initialized in store "${store.config.name}".`
388
- );
389
- return state.default;
383
+ // ../../anvl/src/json/index.ts
384
+ var stringifyJson = (json) => JSON.stringify(json);
385
+ var JSON_TYPE_NAMES = [
386
+ `array`,
387
+ `boolean`,
388
+ `null`,
389
+ `number`,
390
+ `object`,
391
+ `string`
392
+ ];
393
+ var JSON_DEFAULTS = {
394
+ array: [],
395
+ boolean: false,
396
+ null: null,
397
+ number: 0,
398
+ object: {},
399
+ string: ``
390
400
  };
391
401
 
392
- // ../src/internal/is-default.ts
393
- var isAtomDefault = (key, store = IMPLICIT.STORE) => {
394
- const core = target(store);
395
- return core.atomsThatAreDefault.has(key);
402
+ // ../../anvl/src/primitive/index.ts
403
+ var isString = (input) => {
404
+ return typeof input === `string`;
396
405
  };
397
- var markAtomAsDefault = (key, store = IMPLICIT.STORE) => {
398
- const core = target(store);
399
- core.atomsThatAreDefault = new Set(core.atomsThatAreDefault).add(key);
406
+ var isNumber = (input) => {
407
+ return typeof input === `number`;
400
408
  };
401
- var markAtomAsNotDefault = (key, store = IMPLICIT.STORE) => {
402
- const core = target(store);
403
- core.atomsThatAreDefault = new Set(target(store).atomsThatAreDefault);
404
- core.atomsThatAreDefault.delete(key);
409
+ var isBoolean = (input) => {
410
+ return typeof input === `boolean`;
405
411
  };
406
412
 
407
- // ../../anvl/src/join/core-relation-data.ts
408
- import { isString } from "fp-ts/string";
413
+ // ../../anvl/src/refinement/refine-json.ts
414
+ var JSON_PROTOTYPES = [
415
+ `Array`,
416
+ `Boolean`,
417
+ `Number`,
418
+ `Object`,
419
+ `String`
420
+ ];
421
+ var refineJsonType = (data) => data === null ? { type: `null`, data: null } : isBoolean(data) ? { type: `boolean`, data } : isNumber(data) ? { type: `number`, data } : isString(data) ? { type: `string`, data } : Array.isArray(data) ? { type: `array`, data } : isPlainObject(data) ? { type: `object`, data } : raiseError(
422
+ data === void 0 ? `undefined passed to refineJsonType. This is not valid JSON.` : `${stringifyJson(data)} with prototype "${Object.getPrototypeOf(data).constructor.name}" passed to refineJsonType. This is not valid JSON.`
423
+ );
424
+ var isJson = (input) => {
425
+ var _a2;
426
+ if (input === null)
427
+ return true;
428
+ if (input === void 0)
429
+ return false;
430
+ const prototype = (_a2 = Object.getPrototypeOf(input)) == null ? void 0 : _a2.constructor.name;
431
+ const isJson2 = JSON_PROTOTYPES.includes(prototype);
432
+ return isJson2;
433
+ };
434
+ var OpenClose = ({ isOpen, setIsOpen, disabled }) => {
435
+ return /* @__PURE__ */ jsx(
436
+ "button",
437
+ {
438
+ type: "button",
439
+ className: `carat ${isOpen ? `open` : `closed`}`,
440
+ onClick: () => setIsOpen((isOpen2) => !isOpen2),
441
+ disabled,
442
+ children: "\u25B6"
443
+ }
444
+ );
445
+ };
446
+ var button = {
447
+ OpenClose
448
+ };
409
449
 
410
- // ../../anvl/src/refinement/index.ts
450
+ // ../../anvl/src/refinement/can-exist.ts
411
451
  var canExist = (_) => true;
452
+
453
+ // ../../anvl/src/refinement/cannot-exist.ts
412
454
  var cannotExist = (_) => false;
413
- var isLiteral = (value) => (input) => input === value;
414
- var isWithin = (args) => (input) => args.includes(input);
415
- var couldBe = (isTypeA, logging = false, refinements = [isTypeA]) => {
416
- const name = `(${refinements.map((r) => r.name || `anon`).join(` | `)})`;
455
+
456
+ // ../../anvl/src/refinement/is-union.ts
457
+ var mustSatisfyOneOfTheFollowing = (isTypeA, logging = false, refinements = [isTypeA]) => {
458
+ const name = `(${refinements.map((r) => (r == null ? void 0 : r.name) || `anon`).join(` | `)})`;
417
459
  const _ = {
418
460
  [name]: (input) => refinements.some(
419
461
  (refinement) => {
@@ -429,13 +471,15 @@ var couldBe = (isTypeA, logging = false, refinements = [isTypeA]) => {
429
471
  )
430
472
  };
431
473
  const checkTypes = Object.assign(_[name], {
432
- or: (isTypeB) => couldBe(isTypeB, logging, [...refinements, isTypeB])
474
+ or: (isTypeB) => mustSatisfyOneOfTheFollowing(isTypeB, logging, [...refinements, isTypeB])
433
475
  });
434
476
  return checkTypes;
435
477
  };
436
- var isUnion = couldBe(cannotExist);
437
- var mustBe = (isTypeA, logging = false, refinements = [isTypeA]) => {
438
- const name = `(${refinements.map((r) => r.name || `anon`).join(` & `)})`;
478
+ var isUnion = mustSatisfyOneOfTheFollowing(cannotExist);
479
+
480
+ // ../../anvl/src/refinement/is-intersection.ts
481
+ function mustSatisfyAllOfTheFollowing(isTypeA, logging = false, refinements = [isTypeA]) {
482
+ const name = `(${refinements.map((r) => (r == null ? void 0 : r.name) || `anon`).join(` & `)})`;
439
483
  const _ = {
440
484
  [name]: (input) => refinements.every(
441
485
  (refinement) => (logging && console.log(
@@ -448,11 +492,18 @@ var mustBe = (isTypeA, logging = false, refinements = [isTypeA]) => {
448
492
  )
449
493
  };
450
494
  const checkTypes = Object.assign(_[name], {
451
- and: (isTypeB) => mustBe(isTypeB, logging, [...refinements, isTypeB])
495
+ and: (isTypeB) => mustSatisfyAllOfTheFollowing(isTypeB, logging, [
496
+ ...refinements,
497
+ isTypeB
498
+ ])
452
499
  });
453
500
  return checkTypes;
454
- };
455
- var isIntersection = mustBe(canExist);
501
+ }
502
+ var isIntersection = mustSatisfyAllOfTheFollowing(canExist);
503
+
504
+ // ../../anvl/src/refinement/index.ts
505
+ var isLiteral = (value) => (input) => input === value;
506
+ var isWithin = (args) => (input) => args.includes(input);
456
507
 
457
508
  // ../../anvl/src/join/core-relation-data.ts
458
509
  var RELATION_TYPES = [`1:1`, `1:n`, `n:n`];
@@ -508,9 +559,6 @@ var makeJsonInterface = (join, ...params) => {
508
559
  };
509
560
  };
510
561
 
511
- // ../../anvl/src/join/relation-contents.ts
512
- import { pipe as pipe5 } from "fp-ts/function";
513
-
514
562
  // ../../anvl/src/join/relation-record.ts
515
563
  var getRelationEntries = (relationMap, idA) => getRelatedIds(relationMap, idA).map((idB) => [
516
564
  idB,
@@ -518,10 +566,6 @@ var getRelationEntries = (relationMap, idA) => getRelatedIds(relationMap, idA).m
518
566
  ]);
519
567
  var getRelationRecord = (relationMap, id) => Object.fromEntries(getRelationEntries(relationMap, id));
520
568
 
521
- // ../../anvl/src/join/remove-relation.ts
522
- import { pipe as pipe4 } from "fp-ts/function";
523
- import { isString as isString2 } from "fp-ts/string";
524
-
525
569
  // ../../anvl/src/string/split.ts
526
570
  var split = (separator) => (str) => str.split(separator);
527
571
 
@@ -529,7 +573,7 @@ var split = (separator) => (str) => str.split(separator);
529
573
  var removeSpecific = (current, idA, idB) => {
530
574
  const isIdForRemoval = isOneOf(idA, idB);
531
575
  return __spreadProps(__spreadValues({}, current), {
532
- relations: pipe4(
576
+ relations: pipe(
533
577
  current.relations,
534
578
  recordToEntries,
535
579
  map(([id, relations]) => [
@@ -539,17 +583,17 @@ var removeSpecific = (current, idA, idB) => {
539
583
  entriesToRecord,
540
584
  treeShake(isEmptyArray)
541
585
  ),
542
- contents: pipe4(
586
+ contents: pipe(
543
587
  current.contents,
544
588
  treeShake(
545
- (_, key) => isString2(key) && pipe4(key, split(`/`), comprises([idA, idB]))
589
+ (_, key) => isString(key) && pipe(key, split(`/`), comprises([idA, idB]))
546
590
  )
547
591
  )
548
592
  });
549
593
  };
550
594
  var removeAll = (current, idToRemove) => {
551
595
  const next = __spreadProps(__spreadValues({}, current), {
552
- relations: pipe4(
596
+ relations: pipe(
553
597
  current.relations,
554
598
  recordToEntries,
555
599
  map(([id, relations]) => [
@@ -559,10 +603,10 @@ var removeAll = (current, idToRemove) => {
559
603
  entriesToRecord,
560
604
  treeShake((val, key) => key === idToRemove || isEmptyArray(val))
561
605
  ),
562
- contents: pipe4(
606
+ contents: pipe(
563
607
  current.contents,
564
608
  treeShake(
565
- (_, key) => isString2(key) && key.split(`/`).includes(idToRemove)
609
+ (_, key) => isString(key) && key.split(`/`).includes(idToRemove)
566
610
  )
567
611
  )
568
612
  });
@@ -644,7 +688,7 @@ var getRelations = (relationMap, id) => getRelationEntries(relationMap, id).map(
644
688
  var setRelations = (current, subject, relations) => {
645
689
  const idA = subject[current.a];
646
690
  const idB = subject[current.b];
647
- return pipe5(
691
+ return pipe(
648
692
  current,
649
693
  (relationData) => {
650
694
  const relatedIds = getRelatedIds(current, idA);
@@ -725,871 +769,36 @@ var Join = class _Join {
725
769
  getRelatedId(id) {
726
770
  return getRelatedId(this, id);
727
771
  }
728
- getRelatedIds(id) {
729
- return getRelatedIds(this, id);
730
- }
731
- getContent(idA, idB) {
732
- return getContent(this, idA, idB);
733
- }
734
- getRelationEntries(id) {
735
- return getRelationEntries(this, id);
736
- }
737
- getRelationRecord(id) {
738
- return getRelationRecord(this, id);
739
- }
740
- getRelation(id) {
741
- return getRelations(this, id)[0];
742
- }
743
- getRelations(id) {
744
- return getRelations(this, id);
745
- }
746
- setRelations(subject, relations) {
747
- return new _Join(setRelations(this, subject, relations));
748
- }
749
- set(relation, ...rest) {
750
- return new _Join(setRelationWithContent(this, relation, ...rest));
751
- }
752
- remove(relation) {
753
- return new _Join(
754
- removeRelation(this, relation)
755
- );
756
- }
757
- };
758
-
759
- // ../src/internal/store.ts
760
- var createStore = (name, store = null) => {
761
- var _a2;
762
- const created = __spreadProps(__spreadValues({}, store != null ? store : (() => ({
763
- atomsThatAreDefault: /* @__PURE__ */ new Set(),
764
- selectorAtoms: new Join({ relationType: `n:n` }).from(`selectorKey`).to(`atomKey`),
765
- selectorGraph: new Join({ relationType: `n:n` })
766
- }))()), {
767
- valueMap: new Map(store == null ? void 0 : store.valueMap),
768
- atoms: /* @__PURE__ */ new Map(),
769
- readonlySelectors: /* @__PURE__ */ new Map(),
770
- selectors: /* @__PURE__ */ new Map(),
771
- transactions: /* @__PURE__ */ new Map(),
772
- timelines: /* @__PURE__ */ new Map(),
773
- timelineAtoms: new Join({ relationType: `1:n` }).from(`timelineKey`).to(`atomKey`),
774
- subject: {
775
- atomCreation: new Subject(),
776
- selectorCreation: new Subject(),
777
- transactionCreation: new Subject(),
778
- timelineCreation: new Subject(),
779
- operationStatus: new Subject()
780
- },
781
- operation: __spreadValues({
782
- open: false
783
- }, store == null ? void 0 : store.operation),
784
- transactionStatus: __spreadValues({
785
- phase: `idle`
786
- }, store == null ? void 0 : store.transactionStatus),
787
- config: __spreadProps(__spreadValues({
788
- logger: __spreadValues(__spreadProps(__spreadValues({}, console), {
789
- info: doNothing
790
- }), (_a2 = store == null ? void 0 : store.config) == null ? void 0 : _a2.logger),
791
- logger__INTERNAL: console
792
- }, store == null ? void 0 : store.config), {
793
- name
794
- })
795
- });
796
- store == null ? void 0 : store.atoms.forEach((atom2) => {
797
- const copiedAtom = __spreadProps(__spreadValues({}, atom2), { subject: new Subject() });
798
- created.atoms.set(atom2.key, copiedAtom);
799
- });
800
- store == null ? void 0 : store.readonlySelectors.forEach((selector) => {
801
- selector.install(created);
802
- });
803
- store == null ? void 0 : store.selectors.forEach((selector) => {
804
- selector.install(created);
805
- });
806
- store == null ? void 0 : store.transactions.forEach((tx) => {
807
- tx.install(created);
808
- });
809
- store == null ? void 0 : store.timelines.forEach((timeline2) => {
810
- timeline2.install(created);
811
- });
812
- return created;
813
- };
814
- var IMPLICIT = {
815
- STORE_INTERNAL: void 0,
816
- get STORE() {
817
- var _a2;
818
- return (_a2 = this.STORE_INTERNAL) != null ? _a2 : this.STORE_INTERNAL = createStore(`DEFAULT`);
819
- }
820
- };
821
-
822
- // ../src/internal/operation.ts
823
- var openOperation = (token, store) => {
824
- var _a2, _b;
825
- const core = target(store);
826
- if (core.operation.open) {
827
- (_a2 = store.config.logger) == null ? void 0 : _a2.error(
828
- `\u274C failed to setState to "${token.key}" during a setState for "${core.operation.token.key}"`
829
- );
830
- throw Symbol(`violation`);
831
- }
832
- core.operation = {
833
- open: true,
834
- done: /* @__PURE__ */ new Set(),
835
- prev: new Map(store.valueMap),
836
- time: Date.now(),
837
- token
838
- };
839
- (_b = store.config.logger) == null ? void 0 : _b.info(
840
- `\u2B55 operation start from "${token.key}" in store "${store.config.name}"`
841
- );
842
- };
843
- var closeOperation = (store) => {
844
- var _a2;
845
- const core = target(store);
846
- core.operation = { open: false };
847
- (_a2 = store.config.logger) == null ? void 0 : _a2.info(`\u{1F534} operation done`);
848
- store.subject.operationStatus.next(core.operation);
849
- };
850
- var isDone = (key, store = IMPLICIT.STORE) => {
851
- var _a2;
852
- const core = target(store);
853
- if (!core.operation.open) {
854
- (_a2 = store.config.logger) == null ? void 0 : _a2.warn(
855
- `isDone called outside of an operation. This is probably a bug.`
856
- );
857
- return true;
858
- }
859
- return core.operation.done.has(key);
860
- };
861
- var markDone = (key, store = IMPLICIT.STORE) => {
862
- var _a2;
863
- const core = target(store);
864
- if (!core.operation.open) {
865
- (_a2 = store.config.logger) == null ? void 0 : _a2.warn(
866
- `markDone called outside of an operation. This is probably a bug.`
867
- );
868
- return;
869
- }
870
- core.operation.done.add(key);
871
- };
872
- var recallState = (state, store = IMPLICIT.STORE) => {
873
- var _a2;
874
- const core = target(store);
875
- if (!core.operation.open) {
876
- (_a2 = store.config.logger) == null ? void 0 : _a2.warn(
877
- `recall called outside of an operation. This is probably a bug.`
878
- );
879
- return core.valueMap.get(state.key);
880
- }
881
- return core.operation.prev.get(state.key);
882
- };
883
- var cacheValue = (key, value, store = IMPLICIT.STORE) => {
884
- const core = target(store);
885
- core.valueMap.set(key, value);
886
- };
887
- var evictCachedValue = (key, store = IMPLICIT.STORE) => {
888
- const core = target(store);
889
- core.valueMap.delete(key);
890
- };
891
- var readCachedValue = (key, store = IMPLICIT.STORE) => target(store).valueMap.get(key);
892
- var isValueCached = (key, store = IMPLICIT.STORE) => target(store).valueMap.has(key);
893
-
894
- // ../src/internal/transaction-internal.ts
895
- var target = (store = IMPLICIT.STORE) => store.transactionStatus.phase === `building` ? store.transactionStatus.core : store;
896
-
897
- // ../src/internal/atom-internal.ts
898
- function atom__INTERNAL(options, family, store = IMPLICIT.STORE) {
899
- var _a2, _b, _c;
900
- const core = target(store);
901
- const existing = core.atoms.get(options.key);
902
- if (existing) {
903
- (_b = (_a2 = store.config.logger) == null ? void 0 : _a2.error) == null ? void 0 : _b.call(
904
- _a2,
905
- `Key "${options.key}" already exists in the store.`
906
- );
907
- return deposit(existing);
908
- }
909
- const subject = new Subject();
910
- const newAtom = __spreadValues(__spreadProps(__spreadValues({}, options), {
911
- subject,
912
- type: `atom`
913
- }), family && { family });
914
- const initialValue = options.default instanceof Function ? options.default() : options.default;
915
- core.atoms.set(newAtom.key, newAtom);
916
- markAtomAsDefault(options.key, store);
917
- cacheValue(options.key, initialValue, store);
918
- const token = deposit(newAtom);
919
- (_c = options.effects) == null ? void 0 : _c.forEach(
920
- (effect) => effect({
921
- setSelf: (next) => setState(token, next, store),
922
- onSet: (handle) => subscribe(token, handle, store)
923
- })
924
- );
925
- store.subject.atomCreation.next(token);
926
- return token;
927
- }
928
-
929
- // ../../anvl/src/json/index.ts
930
- var stringifyJson = (json) => JSON.stringify(json);
931
- var JSON_TYPE_NAMES = [
932
- `array`,
933
- `boolean`,
934
- `null`,
935
- `number`,
936
- `object`,
937
- `string`
938
- ];
939
- var JSON_DEFAULTS = {
940
- array: [],
941
- boolean: false,
942
- null: null,
943
- number: 0,
944
- object: {},
945
- string: ``
946
- };
947
-
948
- // ../src/internal/families-internal.ts
949
- function atomFamily__INTERNAL(options, store = IMPLICIT.STORE) {
950
- const subject = new Subject();
951
- return Object.assign(
952
- (key) => {
953
- const subKey = stringifyJson(key);
954
- const family = { key: options.key, subKey };
955
- const fullKey = `${options.key}(${subKey})`;
956
- const existing = withdraw({ key: fullKey, type: `atom` }, store);
957
- let token;
958
- if (existing) {
959
- token = deposit(existing);
960
- } else {
961
- const individualOptions = {
962
- key: fullKey,
963
- default: options.default instanceof Function ? options.default(key) : options.default
964
- };
965
- if (options.effects) {
966
- individualOptions.effects = options.effects(key);
967
- }
968
- token = atom__INTERNAL(individualOptions, family, store);
969
- }
970
- subject.next(token);
971
- return token;
972
- },
973
- {
974
- key: options.key,
975
- type: `atom_family`,
976
- subject
977
- }
978
- );
979
- }
980
-
981
- // ../src/internal/selector/lookup-selector-sources.ts
982
- var lookupSelectorSources = (key, store) => target(store).selectorGraph.getRelations(key).filter(({ source }) => source !== key).map(({ source }) => lookup(source, store));
983
-
984
- // ../src/internal/selector/trace-selector-atoms.ts
985
- var traceSelectorAtoms = (selectorKey, dependency, store) => {
986
- const roots = [];
987
- const sources = lookupSelectorSources(dependency.key, store);
988
- let depth = 0;
989
- while (sources.length > 0) {
990
- const source = sources.shift();
991
- ++depth;
992
- if (depth > 999) {
993
- throw new Error(
994
- `Maximum selector dependency depth exceeded in selector "${selectorKey}".`
995
- );
996
- }
997
- if (source.type !== `atom`) {
998
- sources.push(...lookupSelectorSources(source.key, store));
999
- } else {
1000
- roots.push(source);
1001
- }
1002
- }
1003
- return roots;
1004
- };
1005
- var traceAllSelectorAtoms = (selectorKey, store) => {
1006
- const sources = lookupSelectorSources(selectorKey, store);
1007
- return sources.flatMap(
1008
- (source) => source.type === `atom` ? source : traceSelectorAtoms(selectorKey, source, store)
1009
- );
1010
- };
1011
-
1012
- // ../src/internal/set.ts
1013
- var evictDownStream = (state, store = IMPLICIT.STORE) => {
1014
- var _a2, _b;
1015
- const core = target(store);
1016
- const downstream = core.selectorAtoms.getRelations(state.key);
1017
- const downstreamKeys = downstream.map(({ id }) => id);
1018
- (_a2 = store.config.logger) == null ? void 0 : _a2.info(
1019
- ` || ${downstreamKeys.length} downstream:`,
1020
- downstreamKeys
1021
- );
1022
- if (core.operation.open) {
1023
- (_b = store.config.logger) == null ? void 0 : _b.info(` ||`, [...core.operation.done], `already done`);
1024
- }
1025
- downstream.forEach(({ id: stateKey }) => {
1026
- var _a3, _b2, _c, _d;
1027
- if (isDone(stateKey, store)) {
1028
- (_a3 = store.config.logger) == null ? void 0 : _a3.info(` || ${stateKey} already done`);
1029
- return;
1030
- }
1031
- const state2 = (_b2 = core.selectors.get(stateKey)) != null ? _b2 : core.readonlySelectors.get(stateKey);
1032
- if (!state2) {
1033
- (_c = store.config.logger) == null ? void 0 : _c.info(
1034
- ` || ${stateKey} is an atom, and can't be downstream`
1035
- );
1036
- return;
1037
- }
1038
- evictCachedValue(stateKey, store);
1039
- (_d = store.config.logger) == null ? void 0 : _d.info(` xx evicted "${stateKey}"`);
1040
- markDone(stateKey, store);
1041
- });
1042
- };
1043
- var setAtomState = (atom2, next, store = IMPLICIT.STORE) => {
1044
- var _a2, _b;
1045
- const oldValue = getState__INTERNAL(atom2, store);
1046
- const newValue = become(next)(oldValue);
1047
- (_a2 = store.config.logger) == null ? void 0 : _a2.info(`<< setting atom "${atom2.key}" to`, newValue);
1048
- cacheValue(atom2.key, newValue, store);
1049
- if (isAtomDefault(atom2.key, store)) {
1050
- markAtomAsNotDefault(atom2.key, store);
1051
- }
1052
- markDone(atom2.key, store);
1053
- (_b = store.config.logger) == null ? void 0 : _b.info(
1054
- ` || evicting caches downstream from "${atom2.key}"`
1055
- );
1056
- evictDownStream(atom2, store);
1057
- const update = { oldValue, newValue };
1058
- if (store.transactionStatus.phase !== `building`) {
1059
- emitUpdate(atom2, update, store);
1060
- } else {
1061
- stowUpdate(atom2, update, store);
1062
- }
1063
- };
1064
- var setSelectorState = (selector, next, store = IMPLICIT.STORE) => {
1065
- var _a2, _b;
1066
- const oldValue = getState__INTERNAL(selector, store);
1067
- const newValue = become(next)(oldValue);
1068
- (_a2 = store.config.logger) == null ? void 0 : _a2.info(`<< setting selector "${selector.key}" to`, newValue);
1069
- (_b = store.config.logger) == null ? void 0 : _b.info(` || propagating change made to "${selector.key}"`);
1070
- selector.set(newValue);
1071
- };
1072
- var setState__INTERNAL = (state, value, store = IMPLICIT.STORE) => {
1073
- if (`set` in state) {
1074
- setSelectorState(state, value, store);
1075
- } else {
1076
- setAtomState(state, value, store);
1077
- }
1078
- };
1079
-
1080
- // ../../anvl/reactivity/subject.ts
1081
- var Subject = class {
1082
- constructor() {
1083
- this.subscribers = [];
1084
- }
1085
- subscribe(subscriber) {
1086
- this.subscribers.push(subscriber);
1087
- const unsubscribe = () => this.unsubscribe(subscriber);
1088
- return { unsubscribe };
1089
- }
1090
- unsubscribe(subscriber) {
1091
- const subscriberIndex = this.subscribers.indexOf(subscriber);
1092
- if (subscriberIndex !== -1) {
1093
- this.subscribers.splice(subscriberIndex, 1);
1094
- }
1095
- }
1096
- next(value) {
1097
- for (const subscriber of this.subscribers) {
1098
- subscriber(value);
1099
- }
1100
- }
1101
- };
1102
-
1103
- // ../src/internal/subscribe-internal.ts
1104
- var stowUpdate = (state, update, store) => {
1105
- var _a2;
1106
- const { key } = state;
1107
- const { logger } = store.config;
1108
- if (store.transactionStatus.phase !== `building`) {
1109
- (_a2 = store.config.logger) == null ? void 0 : _a2.warn(
1110
- `stowUpdate called outside of a transaction. This is probably a bug.`
1111
- );
1112
- return;
1113
- }
1114
- store.transactionStatus.atomUpdates.push(__spreadValues({ key }, update));
1115
- logger == null ? void 0 : logger.info(`\u{1F4DD} ${key} stowed (`, update.oldValue, `->`, update.newValue, `)`);
1116
- };
1117
- var emitUpdate = (state, update, store) => {
1118
- const { key } = state;
1119
- const { logger } = store.config;
1120
- logger == null ? void 0 : logger.info(
1121
- `\u{1F4E2} ${state.type} "${key}" went (`,
1122
- update.oldValue,
1123
- `->`,
1124
- update.newValue,
1125
- `)`
1126
- );
1127
- state.subject.next(update);
1128
- };
1129
- var subscribeToRootAtoms = (state, store) => {
1130
- const dependencySubscriptions = `default` in state ? null : traceAllSelectorAtoms(state.key, store).map((atomToken) => {
1131
- const atom2 = withdraw(atomToken, store);
1132
- if (atom2 === null) {
1133
- throw new Error(
1134
- `Atom "${atomToken.key}", a dependency of selector "${state.key}", not found in store "${store.config.name}".`
1135
- );
1136
- }
1137
- return atom2.subject.subscribe((atomChange) => {
1138
- var _a2, _b;
1139
- (_a2 = store.config.logger) == null ? void 0 : _a2.info(
1140
- `\u{1F4E2} selector "${state.key}" saw root "${atomToken.key}" go (`,
1141
- atomChange.oldValue,
1142
- `->`,
1143
- atomChange.newValue,
1144
- `)`
1145
- );
1146
- const oldValue = recallState(state, store);
1147
- const newValue = getState__INTERNAL(state, store);
1148
- (_b = store.config.logger) == null ? void 0 : _b.info(
1149
- ` <- "${state.key}" went (`,
1150
- oldValue,
1151
- `->`,
1152
- newValue,
1153
- `)`
1154
- );
1155
- state.subject.next({ newValue, oldValue });
1156
- });
1157
- });
1158
- return dependencySubscriptions;
1159
- };
1160
-
1161
- // ../src/atom.ts
1162
- function atom(options) {
1163
- return atom__INTERNAL(options);
1164
- }
1165
- function atomFamily(options) {
1166
- return atomFamily__INTERNAL(options);
1167
- }
1168
-
1169
- // ../src/subscribe.ts
1170
- var subscribe = (token, handleUpdate, store = IMPLICIT.STORE) => {
1171
- var _a2;
1172
- const state = withdraw(token, store);
1173
- if (state === null) {
1174
- throw new Error(
1175
- `State "${token.key}" not found in this store. Did you forget to initialize with the "atom" or "selector" function?`
1176
- );
1177
- }
1178
- const subscription = state.subject.subscribe(handleUpdate);
1179
- (_a2 = store.config.logger) == null ? void 0 : _a2.info(`\u{1F440} subscribe to "${state.key}"`);
1180
- const dependencySubscriptions = state.type !== `atom` ? subscribeToRootAtoms(state, store) : null;
1181
- const unsubscribe = dependencySubscriptions === null ? () => {
1182
- var _a3;
1183
- (_a3 = store.config.logger) == null ? void 0 : _a3.info(`\u{1F648} unsubscribe from "${state.key}"`);
1184
- subscription.unsubscribe();
1185
- } : () => {
1186
- var _a3;
1187
- (_a3 = store.config.logger) == null ? void 0 : _a3.info(
1188
- `\u{1F648} unsubscribe from "${state.key}" and its dependencies`
1189
- );
1190
- subscription.unsubscribe();
1191
- for (const dependencySubscription of dependencySubscriptions) {
1192
- dependencySubscription.unsubscribe();
1193
- }
1194
- };
1195
- return unsubscribe;
1196
- };
1197
-
1198
- // ../src/index.ts
1199
- var setState = (token, value, store = IMPLICIT.STORE) => {
1200
- try {
1201
- openOperation(token, store);
1202
- } catch (thrown) {
1203
- if (!(typeof thrown === `symbol`)) {
1204
- throw thrown;
1205
- }
1206
- return;
1207
- }
1208
- const state = withdraw(token, store);
1209
- if (state === null) {
1210
- throw new Error(
1211
- `${capitalize(token.type)} "${token.key}" not found in store "${store.config.name}".`
1212
- );
1213
- }
1214
- setState__INTERNAL(state, value, store);
1215
- closeOperation(store);
1216
- };
1217
-
1218
- // ../src/introspection/attach-introspection-states.ts
1219
- import { __INTERNAL__ as __INTERNAL__7 } from "atom.io";
1220
-
1221
- // ../src/introspection/attach-atom-index.ts
1222
- import { __INTERNAL__ } from "atom.io";
1223
- var attachAtomIndex = (store = __INTERNAL__.IMPLICIT.STORE) => {
1224
- const atomTokenIndexState__INTERNAL = __INTERNAL__.atom__INTERNAL(
1225
- {
1226
- key: `\u{1F441}\u200D\u{1F5E8} Atom Token Index (Internal)`,
1227
- default: () => [...store.atoms].filter(([key]) => !key.includes(`\u{1F441}\u200D\u{1F5E8}`)).reduce((acc, [key]) => {
1228
- acc[key] = { key, type: `atom` };
1229
- return acc;
1230
- }, {}),
1231
- effects: [
1232
- ({ setSelf }) => {
1233
- store.subject.atomCreation.subscribe((atomToken) => {
1234
- if (store.operation.open) {
1235
- return;
1236
- }
1237
- if (atomToken.key.includes(`\u{1F441}\u200D\u{1F5E8}`)) {
1238
- return;
1239
- }
1240
- setSelf((state) => {
1241
- const { key, family } = atomToken;
1242
- if (family) {
1243
- const { key: familyKey, subKey } = family;
1244
- const current = state[familyKey];
1245
- if (current === void 0 || `familyMembers` in current) {
1246
- const familyKeyState = current || {
1247
- key: familyKey,
1248
- familyMembers: {}
1249
- };
1250
- return __spreadProps(__spreadValues({}, state), {
1251
- [familyKey]: __spreadProps(__spreadValues({}, familyKeyState), {
1252
- familyMembers: __spreadProps(__spreadValues({}, familyKeyState.familyMembers), {
1253
- [subKey]: atomToken
1254
- })
1255
- })
1256
- });
1257
- }
1258
- }
1259
- return __spreadProps(__spreadValues({}, state), {
1260
- [key]: atomToken
1261
- });
1262
- });
1263
- });
1264
- }
1265
- ]
1266
- },
1267
- void 0,
1268
- store
1269
- );
1270
- return __INTERNAL__.selector__INTERNAL(
1271
- {
1272
- key: `\u{1F441}\u200D\u{1F5E8} Atom Token Index`,
1273
- get: ({ get }) => get(atomTokenIndexState__INTERNAL)
1274
- },
1275
- void 0,
1276
- store
1277
- );
1278
- };
1279
-
1280
- // ../src/introspection/attach-selector-index.ts
1281
- import { __INTERNAL__ as __INTERNAL__2 } from "atom.io";
1282
- var attachSelectorIndex = (store = __INTERNAL__2.IMPLICIT.STORE) => {
1283
- const readonlySelectorTokenIndexState__INTERNAL = __INTERNAL__2.atom__INTERNAL(
1284
- {
1285
- key: `\u{1F441}\u200D\u{1F5E8} Selector Token Index (Internal)`,
1286
- default: () => Object.assign(
1287
- [...store.readonlySelectors].filter(([key]) => !key.includes(`\u{1F441}\u200D\u{1F5E8}`)).reduce((acc, [key]) => {
1288
- acc[key] = { key, type: `readonly_selector` };
1289
- return acc;
1290
- }, {}),
1291
- [...store.selectors].reduce((acc, [key]) => {
1292
- acc[key] = { key, type: `selector` };
1293
- return acc;
1294
- }, {})
1295
- ),
1296
- effects: [
1297
- ({ setSelf }) => {
1298
- store.subject.selectorCreation.subscribe((selectorToken) => {
1299
- if (store.operation.open) {
1300
- return;
1301
- }
1302
- if (selectorToken.key.includes(`\u{1F441}\u200D\u{1F5E8}`)) {
1303
- return;
1304
- }
1305
- setSelf((state) => {
1306
- const { key, family } = selectorToken;
1307
- if (family) {
1308
- const { key: familyKey, subKey } = family;
1309
- const current = state[familyKey];
1310
- if (current === void 0 || `familyMembers` in current) {
1311
- const familyKeyState = current || {
1312
- key: familyKey,
1313
- familyMembers: {}
1314
- };
1315
- return __spreadProps(__spreadValues({}, state), {
1316
- [familyKey]: __spreadProps(__spreadValues({}, familyKeyState), {
1317
- familyMembers: __spreadProps(__spreadValues({}, familyKeyState.familyMembers), {
1318
- [subKey]: selectorToken
1319
- })
1320
- })
1321
- });
1322
- }
1323
- }
1324
- return __spreadProps(__spreadValues({}, state), {
1325
- [key]: selectorToken
1326
- });
1327
- });
1328
- });
1329
- }
1330
- ]
1331
- },
1332
- void 0,
1333
- store
1334
- );
1335
- return __INTERNAL__2.selector__INTERNAL({
1336
- key: `\u{1F441}\u200D\u{1F5E8} Selector Token Index`,
1337
- get: ({ get }) => get(readonlySelectorTokenIndexState__INTERNAL)
1338
- });
1339
- };
1340
-
1341
- // ../src/introspection/attach-timeline-family.ts
1342
- import { __INTERNAL__ as __INTERNAL__3 } from "atom.io";
1343
- var attachTimelineFamily = (store = __INTERNAL__3.IMPLICIT.STORE) => {
1344
- const findTimelineLogState__INTERNAL = __INTERNAL__3.atomFamily__INTERNAL(
1345
- {
1346
- key: `\u{1F441}\u200D\u{1F5E8} Timeline Update Log (Internal)`,
1347
- default: (key) => {
1348
- var _a2;
1349
- return (_a2 = store.timelines.get(key)) != null ? _a2 : {
1350
- key: ``,
1351
- at: 0,
1352
- timeTraveling: null,
1353
- history: [],
1354
- selectorTime: null,
1355
- transactionKey: null,
1356
- install: () => {
1357
- },
1358
- subject: new Subject()
1359
- };
1360
- },
1361
- effects: (key) => [
1362
- ({ setSelf }) => {
1363
- const tl = store.timelines.get(key);
1364
- tl == null ? void 0 : tl.subject.subscribe((_) => {
1365
- if (store.operation.open === true) {
1366
- const subscription = store.subject.operationStatus.subscribe(
1367
- (operationStatus) => {
1368
- if (operationStatus.open === false) {
1369
- subscription.unsubscribe();
1370
- setSelf(__spreadValues({}, tl));
1371
- }
1372
- }
1373
- );
1374
- } else {
1375
- setSelf(__spreadValues({}, tl));
1376
- }
1377
- });
1378
- }
1379
- ]
1380
- },
1381
- store
1382
- );
1383
- const findTimelineLogState = __INTERNAL__3.selectorFamily__INTERNAL(
1384
- {
1385
- key: `\u{1F441}\u200D\u{1F5E8} Timeline Update Log`,
1386
- get: (key) => ({ get }) => get(findTimelineLogState__INTERNAL(key))
1387
- },
1388
- store
1389
- );
1390
- return findTimelineLogState;
1391
- };
1392
-
1393
- // ../src/introspection/attach-timeline-index.ts
1394
- import { __INTERNAL__ as __INTERNAL__4 } from "atom.io";
1395
- var attachTimelineIndex = (store = __INTERNAL__4.IMPLICIT.STORE) => {
1396
- const timelineTokenIndexState__INTERNAL = __INTERNAL__4.atom__INTERNAL(
1397
- {
1398
- key: `\u{1F441}\u200D\u{1F5E8} Timeline Token Index (Internal)`,
1399
- default: () => [...store.timelines].map(([key]) => {
1400
- return { key, type: `timeline` };
1401
- }),
1402
- effects: [
1403
- ({ setSelf }) => {
1404
- store.subject.timelineCreation.subscribe((timelineToken) => {
1405
- setSelf((state) => [...state, timelineToken]);
1406
- });
1407
- }
1408
- ]
1409
- },
1410
- void 0,
1411
- store
1412
- );
1413
- const timelineTokenIndex = __INTERNAL__4.selector__INTERNAL(
1414
- {
1415
- key: `\u{1F441}\u200D\u{1F5E8} Timeline Token Index`,
1416
- get: ({ get }) => get(timelineTokenIndexState__INTERNAL)
1417
- },
1418
- void 0,
1419
- store
1420
- );
1421
- return timelineTokenIndex;
1422
- };
1423
-
1424
- // ../src/introspection/attach-transaction-index.ts
1425
- import { __INTERNAL__ as __INTERNAL__5 } from "atom.io";
1426
- var attachTransactionIndex = (store = __INTERNAL__5.IMPLICIT.STORE) => {
1427
- const transactionTokenIndexState__INTERNAL = __INTERNAL__5.atom__INTERNAL(
1428
- {
1429
- key: `\u{1F441}\u200D\u{1F5E8} Transaction Token Index (Internal)`,
1430
- default: () => [...store.transactions].map(([key]) => {
1431
- return { key, type: `transaction` };
1432
- }),
1433
- effects: [
1434
- ({ setSelf }) => {
1435
- store.subject.transactionCreation.subscribe((transactionToken) => {
1436
- setSelf((state) => [...state, transactionToken]);
1437
- });
1438
- }
1439
- ]
1440
- },
1441
- void 0,
1442
- store
1443
- );
1444
- const transactionTokenIndex = __INTERNAL__5.selector__INTERNAL(
1445
- {
1446
- key: `\u{1F441}\u200D\u{1F5E8} Transaction Token Index`,
1447
- get: ({ get }) => get(transactionTokenIndexState__INTERNAL)
1448
- },
1449
- void 0,
1450
- store
1451
- );
1452
- return transactionTokenIndex;
1453
- };
1454
-
1455
- // ../src/introspection/attach-transaction-logs.ts
1456
- import { __INTERNAL__ as __INTERNAL__6 } from "atom.io";
1457
- var attachTransactionLogs = (store = __INTERNAL__6.IMPLICIT.STORE) => {
1458
- const findTransactionUpdateLog = __INTERNAL__6.atomFamily__INTERNAL(
1459
- {
1460
- key: `\u{1F441}\u200D\u{1F5E8} Transaction Update Log (Internal)`,
1461
- default: () => [],
1462
- effects: (key) => [
1463
- ({ setSelf }) => {
1464
- const tx = store.transactions.get(key);
1465
- tx == null ? void 0 : tx.subject.subscribe((transactionUpdate) => {
1466
- if (transactionUpdate.key === key) {
1467
- setSelf((state) => [...state, transactionUpdate]);
1468
- }
1469
- });
1470
- }
1471
- ]
1472
- },
1473
- store
1474
- );
1475
- const findTransactionUpdateLogState = __INTERNAL__6.selectorFamily__INTERNAL(
1476
- {
1477
- key: `\u{1F441}\u200D\u{1F5E8} Transaction Update Log`,
1478
- get: (key) => ({ get }) => get(findTransactionUpdateLog(key))
1479
- },
1480
- store
1481
- );
1482
- return findTransactionUpdateLogState;
1483
- };
1484
-
1485
- // ../src/introspection/attach-introspection-states.ts
1486
- var attachIntrospectionStates = (store = __INTERNAL__7.IMPLICIT.STORE) => {
1487
- return {
1488
- atomIndex: attachAtomIndex(store),
1489
- selectorIndex: attachSelectorIndex(store),
1490
- transactionIndex: attachTransactionIndex(store),
1491
- findTransactionLogState: attachTransactionLogs(store),
1492
- timelineIndex: attachTimelineIndex(store),
1493
- findTimelineState: attachTimelineFamily(store)
1494
- };
1495
- };
1496
-
1497
- // ../src/web-effects/storage.ts
1498
- var persistAtom = (storage) => ({ stringify, parse }) => (key) => ({ setSelf, onSet }) => {
1499
- const savedValue = storage.getItem(key);
1500
- if (savedValue != null)
1501
- setSelf(parse(savedValue));
1502
- onSet(({ newValue }) => {
1503
- if (newValue == null) {
1504
- storage.removeItem(key);
1505
- return;
1506
- }
1507
- storage.setItem(key, stringify(newValue));
1508
- });
1509
- };
1510
- var lazyLocalStorageEffect = persistAtom(localStorage)(JSON);
1511
-
1512
- // ../src/react-devtools/AtomIODevtools.tsx
1513
- import { useO as useO5, useIO as useIO5 } from "atom.io/react";
1514
- import { LayoutGroup, motion, spring } from "framer-motion";
1515
- import { useRef as useRef4 } from "react";
1516
-
1517
- // ../src/react-devtools/StateIndex.tsx
1518
- import { getState, selectorFamily } from "atom.io";
1519
- import { useO as useO2, useIO as useIO2 } from "atom.io/react";
1520
-
1521
- // ../../anvl/src/refinement/refine-json.ts
1522
- import { isBoolean } from "fp-ts/boolean";
1523
- import { isNumber } from "fp-ts/number";
1524
- import { isString as isString3 } from "fp-ts/string";
1525
- var JSON_PROTOTYPES = [
1526
- `Array`,
1527
- `Boolean`,
1528
- `Number`,
1529
- `Object`,
1530
- `String`
1531
- ];
1532
- var refineJsonType = (data) => data === null ? { type: `null`, data: null } : isBoolean(data) ? { type: `boolean`, data } : isNumber(data) ? { type: `number`, data } : isString3(data) ? { type: `string`, data } : Array.isArray(data) ? { type: `array`, data } : isPlainObject(data) ? { type: `object`, data } : raiseError(
1533
- data === void 0 ? `undefined passed to refineJsonType. This is not valid JSON.` : `${stringifyJson(data)} with prototype "${Object.getPrototypeOf(data).constructor.name}" passed to refineJsonType. This is not valid JSON.`
1534
- );
1535
- var isJson = (input) => {
1536
- var _a2;
1537
- if (input === null)
1538
- return true;
1539
- if (input === void 0)
1540
- return false;
1541
- const prototype = (_a2 = Object.getPrototypeOf(input)) == null ? void 0 : _a2.constructor.name;
1542
- const isJson2 = JSON_PROTOTYPES.includes(prototype);
1543
- return isJson2;
1544
- };
1545
-
1546
- // ../src/react-devtools/Button.tsx
1547
- import { jsxDEV } from "react/jsx-dev-runtime";
1548
- var OpenClose = ({ isOpen, setIsOpen, disabled }) => {
1549
- return /* @__PURE__ */ jsxDEV(
1550
- "button",
1551
- {
1552
- type: "button",
1553
- className: `carat ${isOpen ? `open` : `closed`}`,
1554
- onClick: () => setIsOpen((isOpen2) => !isOpen2),
1555
- disabled,
1556
- children: "\u25B6"
1557
- },
1558
- void 0,
1559
- false,
1560
- {
1561
- fileName: "../src/react-devtools/Button.tsx",
1562
- lineNumber: 11,
1563
- columnNumber: 3
1564
- },
1565
- this
1566
- );
1567
- };
1568
- var button = {
1569
- OpenClose
772
+ getRelatedIds(id) {
773
+ return getRelatedIds(this, id);
774
+ }
775
+ getContent(idA, idB) {
776
+ return getContent(this, idA, idB);
777
+ }
778
+ getRelationEntries(id) {
779
+ return getRelationEntries(this, id);
780
+ }
781
+ getRelationRecord(id) {
782
+ return getRelationRecord(this, id);
783
+ }
784
+ getRelation(id) {
785
+ return getRelations(this, id)[0];
786
+ }
787
+ getRelations(id) {
788
+ return getRelations(this, id);
789
+ }
790
+ setRelations(subject, relations) {
791
+ return new _Join(setRelations(this, subject, relations));
792
+ }
793
+ set(relation, ...rest) {
794
+ return new _Join(setRelationWithContent(this, relation, ...rest));
795
+ }
796
+ remove(relation) {
797
+ return new _Join(
798
+ removeRelation(this, relation)
799
+ );
800
+ }
1570
801
  };
1571
-
1572
- // ../src/react-devtools/StateEditor.tsx
1573
- import { useO, useIO } from "atom.io/react";
1574
-
1575
- // ../../hamr/src/react-json-editor/editors-by-type/utilities/array-elements.ts
1576
- var makeElementSetters = (data, set) => data.map(
1577
- (value, index) => (newValue) => set(() => {
1578
- const newData = [...data];
1579
- newData[index] = become(newValue)(value);
1580
- return newData;
1581
- })
1582
- );
1583
-
1584
- // ../../hamr/src/react-elastic-input/ElasticInput.tsx
1585
- import {
1586
- useLayoutEffect,
1587
- useImperativeHandle,
1588
- forwardRef,
1589
- useRef,
1590
- useState
1591
- } from "react";
1592
- import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
1593
802
  var ElasticInput = forwardRef(function ElasticInputFC(props, ref) {
1594
803
  var _a2, _b, _c, _d;
1595
804
  const inputRef = useRef(null);
@@ -1613,8 +822,8 @@ var ElasticInput = forwardRef(function ElasticInputFC(props, ref) {
1613
822
  return () => clearInterval(interval);
1614
823
  }
1615
824
  }, [(_a2 = inputRef.current) == null ? void 0 : _a2.value, props.value]);
1616
- return /* @__PURE__ */ jsxDEV2("div", { style: { display: `inline-block`, position: `relative` }, children: [
1617
- /* @__PURE__ */ jsxDEV2(
825
+ return /* @__PURE__ */ jsxs("div", { style: { display: `inline-block`, position: `relative` }, children: [
826
+ /* @__PURE__ */ jsx(
1618
827
  "input",
1619
828
  __spreadProps(__spreadValues({}, props), {
1620
829
  ref: inputRef,
@@ -1626,17 +835,9 @@ var ElasticInput = forwardRef(function ElasticInputFC(props, ref) {
1626
835
  fontSize: `inherit`,
1627
836
  width: inputWidth
1628
837
  }, props.style)
1629
- }),
1630
- void 0,
1631
- false,
1632
- {
1633
- fileName: "../../hamr/src/react-elastic-input/ElasticInput.tsx",
1634
- lineNumber: 45,
1635
- columnNumber: 4
1636
- },
1637
- this
838
+ })
1638
839
  ),
1639
- /* @__PURE__ */ jsxDEV2(
840
+ /* @__PURE__ */ jsx(
1640
841
  "span",
1641
842
  {
1642
843
  ref: spanRef,
@@ -1650,35 +851,16 @@ var ElasticInput = forwardRef(function ElasticInputFC(props, ref) {
1650
851
  fontSize: ((_d = props.style) == null ? void 0 : _d.fontSize) || `inherit`
1651
852
  },
1652
853
  children: props.value
1653
- },
1654
- void 0,
1655
- false,
1656
- {
1657
- fileName: "../../hamr/src/react-elastic-input/ElasticInput.tsx",
1658
- lineNumber: 58,
1659
- columnNumber: 4
1660
- },
1661
- this
854
+ }
1662
855
  )
1663
- ] }, void 0, true, {
1664
- fileName: "../../hamr/src/react-elastic-input/ElasticInput.tsx",
1665
- lineNumber: 44,
1666
- columnNumber: 3
1667
- }, this);
856
+ ] });
1668
857
  });
1669
858
 
1670
- // ../../hamr/src/react-elastic-input/NumberInput.tsx
1671
- import { pipe as pipe6 } from "fp-ts/function";
1672
- import { useState as useState2, useId, useRef as useRef2 } from "react";
1673
-
1674
859
  // ../../anvl/src/number/clamp.ts
1675
860
  var clampInto = (min, max) => (value) => value < min ? min : value > max ? max : value;
1676
861
 
1677
862
  // ../../anvl/src/number/wrap.ts
1678
863
  var wrapInto = (min, max) => (value) => value < min ? max - (min - value) % (max - min) : min + (value - min) % (max - min);
1679
-
1680
- // ../../hamr/src/react-elastic-input/NumberInput.tsx
1681
- import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
1682
864
  function round(value, decimalPlaces) {
1683
865
  if (decimalPlaces === void 0)
1684
866
  return value;
@@ -1710,7 +892,7 @@ var initRefinery = (constraints) => (input) => {
1710
892
  return null;
1711
893
  }
1712
894
  const { max, min, decimalPlaces } = __spreadValues(__spreadValues({}, DEFAULT_NUMBER_CONSTRAINTS), constraints);
1713
- const constrained = pipe6(
895
+ const constrained = pipe(
1714
896
  input != null ? input : 0,
1715
897
  clampInto(min, max),
1716
898
  (n) => decimalPlaces ? round(n, decimalPlaces) : n
@@ -1740,8 +922,8 @@ var NumberInput = ({
1740
922
  value = null
1741
923
  }) => {
1742
924
  const id = useId();
1743
- const [temporaryEntry, setTemporaryEntry] = useState2(null);
1744
- const userHasMadeDeliberateChange = useRef2(false);
925
+ const [temporaryEntry, setTemporaryEntry] = useState(null);
926
+ const userHasMadeDeliberateChange = useRef(false);
1745
927
  const refine = initRefinery({ max, min, decimalPlaces, nullable: true });
1746
928
  const allowDecimal = decimalPlaces === void 0 || decimalPlaces > 0;
1747
929
  const handleBlur = () => {
@@ -1774,13 +956,9 @@ var NumberInput = ({
1774
956
  }
1775
957
  };
1776
958
  const displayValue = temporaryEntry != null ? temporaryEntry : valueToText(value ? refine(value) : value);
1777
- return /* @__PURE__ */ jsxDEV3("span", { css: customCss, children: [
1778
- label && /* @__PURE__ */ jsxDEV3("label", { htmlFor: id, children: label }, void 0, false, {
1779
- fileName: "../../hamr/src/react-elastic-input/NumberInput.tsx",
1780
- lineNumber: 168,
1781
- columnNumber: 14
1782
- }, this),
1783
- autoSize ? /* @__PURE__ */ jsxDEV3(
959
+ return /* @__PURE__ */ jsxs("span", { css: customCss, children: [
960
+ label && /* @__PURE__ */ jsx("label", { htmlFor: id, children: label }),
961
+ autoSize ? /* @__PURE__ */ jsx(
1784
962
  ElasticInput,
1785
963
  {
1786
964
  type: "text",
@@ -1793,16 +971,8 @@ var NumberInput = ({
1793
971
  id,
1794
972
  onClick,
1795
973
  "data-testid": `number-input-${testId != null ? testId : id}`
1796
- },
1797
- void 0,
1798
- false,
1799
- {
1800
- fileName: "../../hamr/src/react-elastic-input/NumberInput.tsx",
1801
- lineNumber: 170,
1802
- columnNumber: 5
1803
- },
1804
- this
1805
- ) : /* @__PURE__ */ jsxDEV3(
974
+ }
975
+ ) : /* @__PURE__ */ jsx(
1806
976
  "input",
1807
977
  {
1808
978
  type: "text",
@@ -1815,25 +985,10 @@ var NumberInput = ({
1815
985
  id,
1816
986
  onClick,
1817
987
  "data-testid": `number-input-${testId != null ? testId : id}`
1818
- },
1819
- void 0,
1820
- false,
1821
- {
1822
- fileName: "../../hamr/src/react-elastic-input/NumberInput.tsx",
1823
- lineNumber: 183,
1824
- columnNumber: 5
1825
- },
1826
- this
988
+ }
1827
989
  )
1828
- ] }, void 0, true, {
1829
- fileName: "../../hamr/src/react-elastic-input/NumberInput.tsx",
1830
- lineNumber: 167,
1831
- columnNumber: 3
1832
- }, this);
990
+ ] });
1833
991
  };
1834
-
1835
- // ../../hamr/src/react-elastic-input/TextInput.tsx
1836
- import { jsxDEV as jsxDEV4 } from "react/jsx-dev-runtime";
1837
992
  var TextInput = ({
1838
993
  value,
1839
994
  set,
@@ -1842,13 +997,9 @@ var TextInput = ({
1842
997
  customCss,
1843
998
  autoSize = false
1844
999
  }) => {
1845
- return /* @__PURE__ */ jsxDEV4("span", { css: customCss, children: [
1846
- /* @__PURE__ */ jsxDEV4("label", { children: label }, void 0, false, {
1847
- fileName: "../../hamr/src/react-elastic-input/TextInput.tsx",
1848
- lineNumber: 26,
1849
- columnNumber: 4
1850
- }, this),
1851
- autoSize ? /* @__PURE__ */ jsxDEV4(
1000
+ return /* @__PURE__ */ jsxs("span", { css: customCss, children: [
1001
+ /* @__PURE__ */ jsx("label", { children: label }),
1002
+ autoSize ? /* @__PURE__ */ jsx(
1852
1003
  ElasticInput,
1853
1004
  {
1854
1005
  type: "text",
@@ -1856,16 +1007,8 @@ var TextInput = ({
1856
1007
  onChange: (e) => set == null ? void 0 : set(e.target.value),
1857
1008
  disabled: set === void 0,
1858
1009
  placeholder
1859
- },
1860
- void 0,
1861
- false,
1862
- {
1863
- fileName: "../../hamr/src/react-elastic-input/TextInput.tsx",
1864
- lineNumber: 28,
1865
- columnNumber: 5
1866
- },
1867
- this
1868
- ) : /* @__PURE__ */ jsxDEV4(
1010
+ }
1011
+ ) : /* @__PURE__ */ jsx(
1869
1012
  "input",
1870
1013
  {
1871
1014
  type: "text",
@@ -1873,49 +1016,19 @@ var TextInput = ({
1873
1016
  onChange: (e) => set == null ? void 0 : set(e.target.value),
1874
1017
  disabled: set === void 0,
1875
1018
  placeholder
1876
- },
1877
- void 0,
1878
- false,
1879
- {
1880
- fileName: "../../hamr/src/react-elastic-input/TextInput.tsx",
1881
- lineNumber: 36,
1882
- columnNumber: 5
1883
- },
1884
- this
1019
+ }
1885
1020
  )
1886
- ] }, void 0, true, {
1887
- fileName: "../../hamr/src/react-elastic-input/TextInput.tsx",
1888
- lineNumber: 25,
1889
- columnNumber: 3
1890
- }, this);
1021
+ ] });
1891
1022
  };
1892
-
1893
- // ../../hamr/src/react-json-editor/editors-by-type/non-json.tsx
1894
- import { jsxDEV as jsxDEV5 } from "react/jsx-dev-runtime";
1895
1023
  var NonJsonEditor = ({ data }) => {
1896
- return data === void 0 ? /* @__PURE__ */ jsxDEV5(ElasticInput, { disabled: true, value: "undefined" }, void 0, false, {
1897
- fileName: "../../hamr/src/react-json-editor/editors-by-type/non-json.tsx",
1898
- lineNumber: 6,
1899
- columnNumber: 3
1900
- }, this) : /* @__PURE__ */ jsxDEV5(
1024
+ return data === void 0 ? /* @__PURE__ */ jsx(ElasticInput, { disabled: true, value: "undefined" }) : /* @__PURE__ */ jsx(
1901
1025
  ElasticInput,
1902
1026
  {
1903
1027
  disabled: true,
1904
1028
  value: Object.getPrototypeOf(data).constructor.name + ` ` + JSON.stringify(data)
1905
- },
1906
- void 0,
1907
- false,
1908
- {
1909
- fileName: "../../hamr/src/react-json-editor/editors-by-type/non-json.tsx",
1910
- lineNumber: 8,
1911
- columnNumber: 3
1912
- },
1913
- this
1029
+ }
1914
1030
  );
1915
1031
  };
1916
-
1917
- // ../../hamr/src/react-json-editor/json-editor-internal.tsx
1918
- import { jsxDEV as jsxDEV6 } from "react/jsx-dev-runtime";
1919
1032
  var JsonEditor_INTERNAL = ({
1920
1033
  data,
1921
1034
  set,
@@ -1936,53 +1049,25 @@ var JsonEditor_INTERNAL = ({
1936
1049
  const refined = dataIsJson ? refineJsonType(data) : { type: `non-json`, data };
1937
1050
  const SubEditor = dataIsJson ? SubEditors[refined.type] : NonJsonEditor;
1938
1051
  const disabled = isReadonly(path);
1939
- return isHidden(path) ? null : /* @__PURE__ */ jsxDEV6(Components.ErrorBoundary, { children: /* @__PURE__ */ jsxDEV6(Components.EditorWrapper, { className, customCss, children: [
1940
- remove && /* @__PURE__ */ jsxDEV6(
1052
+ return isHidden(path) ? null : /* @__PURE__ */ jsx(Components.ErrorBoundary, { children: /* @__PURE__ */ jsxs(Components.EditorWrapper, { className, customCss, children: [
1053
+ remove && /* @__PURE__ */ jsx(
1941
1054
  Components.Button,
1942
1055
  {
1943
1056
  onClick: disabled ? doNothing : remove,
1944
1057
  disabled,
1945
- children: /* @__PURE__ */ jsxDEV6(Components.DeleteIcon, {}, void 0, false, {
1946
- fileName: "../../hamr/src/react-json-editor/json-editor-internal.tsx",
1947
- lineNumber: 65,
1948
- columnNumber: 7
1949
- }, this)
1950
- },
1951
- void 0,
1952
- false,
1953
- {
1954
- fileName: "../../hamr/src/react-json-editor/json-editor-internal.tsx",
1955
- lineNumber: 61,
1956
- columnNumber: 6
1957
- },
1958
- this
1058
+ children: /* @__PURE__ */ jsx(Components.DeleteIcon, {})
1059
+ }
1959
1060
  ),
1960
- HeaderDisplay && /* @__PURE__ */ jsxDEV6(HeaderDisplay, { data, schema }, void 0, false, {
1961
- fileName: "../../hamr/src/react-json-editor/json-editor-internal.tsx",
1962
- lineNumber: 68,
1963
- columnNumber: 23
1964
- }, this),
1965
- rename && /* @__PURE__ */ jsxDEV6(Components.KeyWrapper, { children: /* @__PURE__ */ jsxDEV6(
1061
+ HeaderDisplay && /* @__PURE__ */ jsx(HeaderDisplay, { data, schema }),
1062
+ rename && /* @__PURE__ */ jsx(Components.KeyWrapper, { children: /* @__PURE__ */ jsx(
1966
1063
  ElasticInput,
1967
1064
  {
1968
1065
  value: name,
1969
1066
  onChange: disabled ? doNothing : (e) => rename(e.target.value),
1970
1067
  disabled
1971
- },
1972
- void 0,
1973
- false,
1974
- {
1975
- fileName: "../../hamr/src/react-json-editor/json-editor-internal.tsx",
1976
- lineNumber: 71,
1977
- columnNumber: 7
1978
- },
1979
- this
1980
- ) }, void 0, false, {
1981
- fileName: "../../hamr/src/react-json-editor/json-editor-internal.tsx",
1982
- lineNumber: 70,
1983
- columnNumber: 6
1984
- }, this),
1985
- /* @__PURE__ */ jsxDEV6(
1068
+ }
1069
+ ) }),
1070
+ /* @__PURE__ */ jsx(
1986
1071
  SubEditor,
1987
1072
  {
1988
1073
  data: refined.data,
@@ -1994,50 +1079,28 @@ var JsonEditor_INTERNAL = ({
1994
1079
  isReadonly,
1995
1080
  isHidden,
1996
1081
  Components
1997
- },
1998
- void 0,
1999
- false,
2000
- {
2001
- fileName: "../../hamr/src/react-json-editor/json-editor-internal.tsx",
2002
- lineNumber: 78,
2003
- columnNumber: 5
2004
- },
2005
- this
1082
+ }
2006
1083
  ),
2007
- recast && dataIsJson ? /* @__PURE__ */ jsxDEV6(
1084
+ recast && dataIsJson ? /* @__PURE__ */ jsx(
2008
1085
  "select",
2009
1086
  {
2010
1087
  onChange: disabled ? doNothing : (e) => recast(e.target.value),
2011
1088
  value: refined.type,
2012
1089
  disabled,
2013
- children: Object.keys(SubEditors).map((type) => /* @__PURE__ */ jsxDEV6("option", { value: type, children: type }, type, false, {
2014
- fileName: "../../hamr/src/react-json-editor/json-editor-internal.tsx",
2015
- lineNumber: 100,
2016
- columnNumber: 8
2017
- }, this))
2018
- },
2019
- void 0,
2020
- false,
2021
- {
2022
- fileName: "../../hamr/src/react-json-editor/json-editor-internal.tsx",
2023
- lineNumber: 90,
2024
- columnNumber: 6
2025
- },
2026
- this
1090
+ children: Object.keys(SubEditors).map((type) => /* @__PURE__ */ jsx("option", { value: type, children: type }, type))
1091
+ }
2027
1092
  ) : null
2028
- ] }, void 0, true, {
2029
- fileName: "../../hamr/src/react-json-editor/json-editor-internal.tsx",
2030
- lineNumber: 59,
2031
- columnNumber: 4
2032
- }, this) }, void 0, false, {
2033
- fileName: "../../hamr/src/react-json-editor/json-editor-internal.tsx",
2034
- lineNumber: 58,
2035
- columnNumber: 3
2036
- }, this);
1093
+ ] }) });
2037
1094
  };
2038
1095
 
2039
- // ../../hamr/src/react-json-editor/editors-by-type/array-editor.tsx
2040
- import { Fragment, jsxDEV as jsxDEV7 } from "react/jsx-dev-runtime";
1096
+ // ../../hamr/src/react-json-editor/editors-by-type/utilities/array-elements.ts
1097
+ var makeElementSetters = (data, set) => data.map(
1098
+ (value, index) => (newValue) => set(() => {
1099
+ const newData = [...data];
1100
+ newData[index] = become(newValue)(value);
1101
+ return newData;
1102
+ })
1103
+ );
2041
1104
  var ArrayEditor = ({
2042
1105
  path = [],
2043
1106
  isReadonly = () => false,
@@ -2047,9 +1110,9 @@ var ArrayEditor = ({
2047
1110
  Components
2048
1111
  }) => {
2049
1112
  const setElement = makeElementSetters(data, set);
2050
- return /* @__PURE__ */ jsxDEV7(Fragment, { children: data.map((element, index) => {
1113
+ return /* @__PURE__ */ jsx(Fragment, { children: data.map((element, index) => {
2051
1114
  const newPath = [...path, index];
2052
- return /* @__PURE__ */ jsxDEV7(
1115
+ return /* @__PURE__ */ jsx(
2053
1116
  JsonEditor_INTERNAL,
2054
1117
  {
2055
1118
  path: newPath,
@@ -2059,32 +1122,12 @@ var ArrayEditor = ({
2059
1122
  set: setElement[index],
2060
1123
  Components
2061
1124
  },
2062
- newPath.join(``),
2063
- false,
2064
- {
2065
- fileName: "../../hamr/src/react-json-editor/editors-by-type/array-editor.tsx",
2066
- lineNumber: 23,
2067
- columnNumber: 6
2068
- },
2069
- this
1125
+ newPath.join(``)
2070
1126
  );
2071
- }) }, void 0, false, {
2072
- fileName: "../../hamr/src/react-json-editor/editors-by-type/array-editor.tsx",
2073
- lineNumber: 19,
2074
- columnNumber: 3
2075
- }, this);
1127
+ }) });
2076
1128
  };
2077
1129
 
2078
- // ../../hamr/src/react-json-editor/editors-by-type/object-editor.tsx
2079
- import { useRef as useRef3 } from "react";
2080
-
2081
- // ../../anvl/src/json-schema/json-schema.ts
2082
- import { isBoolean as isBoolean2 } from "fp-ts/boolean";
2083
- import { isNumber as isNumber2 } from "fp-ts/number";
2084
- import { isString as isString6 } from "fp-ts/string";
2085
-
2086
1130
  // ../../anvl/src/json-schema/integer.ts
2087
- import { pipe as pipe7 } from "fp-ts/function";
2088
1131
  var isInteger = (input) => Number.isInteger(input);
2089
1132
  var parseInteger = (input) => {
2090
1133
  if (isInteger(input))
@@ -2110,7 +1153,7 @@ var IntegerParseError = class extends Error {
2110
1153
  }
2111
1154
  };
2112
1155
  var Int = Object.assign((input) => parseInteger(input), {
2113
- from: (input) => pipe7(
1156
+ from: (input) => pipe(
2114
1157
  input,
2115
1158
  String,
2116
1159
  parseFloat,
@@ -2141,18 +1184,17 @@ var Int = Object.assign((input) => parseInteger(input), {
2141
1184
  function asNumber(input) {
2142
1185
  return input;
2143
1186
  }
2144
- var a = asNumber(new Fraction(1, 2));
2145
- var b = asNumber([new Fraction(1, 2)]);
2146
- var c = asNumber({ a: new Fraction(1, 2) });
1187
+ asNumber(new Fraction(1, 2));
1188
+ asNumber([new Fraction(1, 2)]);
1189
+ asNumber({ a: new Fraction(1, 2) });
2147
1190
 
2148
1191
  // ../../anvl/src/json-schema/refs.ts
2149
- import { isString as isString4 } from "fp-ts/string";
2150
1192
  function isJsonSchemaRef(input) {
2151
1193
  return doesExtend({
2152
- $ref: isString4
1194
+ $ref: isString
2153
1195
  })(input);
2154
1196
  }
2155
- var colorPalette = {
1197
+ ({
2156
1198
  $defs: {
2157
1199
  colorChannel: {
2158
1200
  type: `integer`,
@@ -2172,7 +1214,7 @@ var colorPalette = {
2172
1214
  items: {
2173
1215
  $ref: `#/$defs/color`
2174
1216
  }
2175
- };
1217
+ });
2176
1218
  var retrieveRef = ({
2177
1219
  refNode: { $ref },
2178
1220
  refMap = {},
@@ -2200,7 +1242,6 @@ var retrieveRef = ({
2200
1242
  };
2201
1243
 
2202
1244
  // ../../anvl/src/json-schema/string-formats.ts
2203
- import { isString as isString5 } from "fp-ts/string";
2204
1245
  var JSON_SCHEMA_STRING_FORMATS = [
2205
1246
  `date-time`,
2206
1247
  `date`,
@@ -2218,32 +1259,17 @@ var JSON_SCHEMA_STRING_FORMATS = [
2218
1259
 
2219
1260
  // ../../anvl/src/json-schema/json-schema.ts
2220
1261
  var JSON_SCHEMA_TYPE_NAMES = [...JSON_TYPE_NAMES, `integer`];
2221
- var JSON_SCHEMA_META_TYPE_NAMES = [
1262
+ [
2222
1263
  ...JSON_SCHEMA_TYPE_NAMES,
2223
1264
  `any`,
2224
1265
  `never`
2225
1266
  ];
2226
- var JSON_SCHEMA_REFINERY = {
2227
- array: isArraySchema,
2228
- boolean: isBooleanSchema,
2229
- integer: isIntegerSchema,
2230
- null: isNullSchema,
2231
- number: isNumberSchema,
2232
- object: isObjectSchema,
2233
- string: isStringSchema,
2234
- any: isLiteral(true),
2235
- never: isLiteral(false),
2236
- union: isUnionSchema,
2237
- intersection: isIntersectionSchema,
2238
- negation: isNegationSchema,
2239
- conditional: isConditionalSchema
2240
- };
2241
1267
  var stringSchemaStructure = {
2242
1268
  type: isLiteral(`string`),
2243
- enum: ifDefined(isArray(isString6)),
1269
+ enum: ifDefined(isArray(isString)),
2244
1270
  minLength: ifDefined(isInteger),
2245
1271
  maxLength: ifDefined(isInteger),
2246
- pattern: ifDefined(isString6),
1272
+ pattern: ifDefined(isString),
2247
1273
  format: ifDefined(isWithin(JSON_SCHEMA_STRING_FORMATS))
2248
1274
  };
2249
1275
  function isStringSchema(input) {
@@ -2251,12 +1277,12 @@ function isStringSchema(input) {
2251
1277
  }
2252
1278
  var numberSchemaStructure = {
2253
1279
  type: isLiteral(`number`),
2254
- enum: ifDefined(isArray(isNumber2)),
2255
- minimum: ifDefined(isNumber2),
2256
- maximum: ifDefined(isNumber2),
2257
- exclusiveMinimum: ifDefined(isNumber2),
2258
- exclusiveMaximum: ifDefined(isNumber2),
2259
- multipleOf: ifDefined(isNumber2)
1280
+ enum: ifDefined(isArray(isNumber)),
1281
+ minimum: ifDefined(isNumber),
1282
+ maximum: ifDefined(isNumber),
1283
+ exclusiveMinimum: ifDefined(isNumber),
1284
+ exclusiveMaximum: ifDefined(isNumber),
1285
+ multipleOf: ifDefined(isNumber)
2260
1286
  };
2261
1287
  function isNumberSchema(input) {
2262
1288
  return doesExtend(numberSchemaStructure)(input);
@@ -2275,7 +1301,7 @@ function isIntegerSchema(input) {
2275
1301
  }
2276
1302
  var booleanSchemaStructure = {
2277
1303
  type: isLiteral(`boolean`),
2278
- enum: ifDefined(isArray(isBoolean2))
1304
+ enum: ifDefined(isArray(isBoolean))
2279
1305
  };
2280
1306
  function isBooleanSchema(input) {
2281
1307
  return doesExtend(booleanSchemaStructure)(input);
@@ -2288,23 +1314,25 @@ function isNullSchema(input) {
2288
1314
  }
2289
1315
  var objectSchemaStructure = {
2290
1316
  type: isLiteral(`object`),
2291
- properties: ifDefined(isRecord(isString6, isJsonSchema)),
2292
- required: ifDefined(isArray(isString6)),
1317
+ properties: ifDefined(isRecord(isString, isJsonSchema)),
1318
+ required: ifDefined(isArray(isString)),
2293
1319
  additionalProperties: ifDefined(isJsonSchema),
2294
1320
  propertyNames: ifDefined(isStringSchema),
2295
1321
  minProperties: ifDefined(isInteger),
2296
1322
  maxProperties: ifDefined(isInteger),
2297
- dependentSchemas: ifDefined(isRecord(isString6, isJsonSchema))
1323
+ dependentSchemas: ifDefined(isRecord(isString, isJsonSchema))
2298
1324
  };
2299
1325
  function isObjectSchema(input) {
2300
1326
  return doesExtend(objectSchemaStructure)(input);
2301
1327
  }
2302
1328
  var arraySchemaStructure = {
2303
1329
  type: isLiteral(`array`),
2304
- items: ifDefined(couldBe(isJsonSchema).or(isArray(isJsonSchema))),
1330
+ items: ifDefined(
1331
+ mustSatisfyOneOfTheFollowing(isJsonSchema).or(isArray(isJsonSchema))
1332
+ ),
2305
1333
  minItems: ifDefined(isInteger),
2306
1334
  maxItems: ifDefined(isInteger),
2307
- uniqueItems: ifDefined(isBoolean2)
1335
+ uniqueItems: ifDefined(isBoolean)
2308
1336
  };
2309
1337
  function isArraySchema(input) {
2310
1338
  return doesExtend(arraySchemaStructure)(input);
@@ -2336,7 +1364,7 @@ function isNegationSchema(input) {
2336
1364
  var mixedSchemaStructure = __spreadProps(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, arraySchemaStructure), booleanSchemaStructure), integerSchemaStructure), nullSchemaStructure), numberSchemaStructure), objectSchemaStructure), stringSchemaStructure), {
2337
1365
  type: isArray(isWithin(JSON_SCHEMA_TYPE_NAMES)),
2338
1366
  enum: ifDefined(
2339
- isArray(isUnion.or(isInteger).or(isBoolean2).or(isNumber2).or(isString6))
1367
+ isArray(isUnion.or(isInteger).or(isBoolean).or(isNumber).or(isString))
2340
1368
  )
2341
1369
  });
2342
1370
  function isMixedSchema(input) {
@@ -2344,12 +1372,12 @@ function isMixedSchema(input) {
2344
1372
  }
2345
1373
  var isJsonSchemaCore = isUnion.or(isArraySchema).or(isBooleanSchema).or(isConditionalSchema).or(isExclusiveSchema).or(isIntegerSchema).or(isIntersectionSchema).or(isMixedSchema).or(isNegationSchema).or(isNullSchema).or(isNumberSchema).or(isObjectSchema).or(isStringSchema).or(isUnionSchema);
2346
1374
  var isJsonSchemaRoot = doesExtend({
2347
- $id: ifDefined(isString6),
2348
- $schema: ifDefined(isString6)
1375
+ $id: ifDefined(isString),
1376
+ $schema: ifDefined(isString)
2349
1377
  });
2350
1378
  var isJsonSchemaObject = isIntersection.and(isJsonSchemaCore).and(isJsonSchemaRoot);
2351
1379
  function isJsonSchema(input) {
2352
- return couldBe(isJsonSchemaObject).or(isBoolean2).or(isJsonSchemaRef)(input);
1380
+ return mustSatisfyOneOfTheFollowing(isBoolean).or(isJsonSchemaObject).or(isJsonSchemaRef)(input);
2353
1381
  }
2354
1382
 
2355
1383
  // ../../anvl/src/json-schema/path-into.ts
@@ -2565,7 +1593,7 @@ var makePropertyRenamers = (data, set, stableKeyMapRef) => mapObject(
2565
1593
  var makePropertyRemovers = (data, set) => mapObject(
2566
1594
  data,
2567
1595
  (_, key) => () => set(() => {
2568
- const _a2 = data, { [key]: _2 } = _a2, rest = __objRest(_a2, [__restKey(key)]);
1596
+ const _a2 = data, rest = __objRest(_a2, [__restKey(key)]);
2569
1597
  return rest;
2570
1598
  })
2571
1599
  );
@@ -2582,36 +1610,17 @@ var makePropertySorter = (data, set, sortFn) => () => {
2582
1610
  sortedKeys.forEach((key) => sortedObj[key] = data[key]);
2583
1611
  set(sortedObj);
2584
1612
  };
2585
-
2586
- // ../../hamr/src/react-json-editor/editors-by-type/object-editor.tsx
2587
- import { Fragment as Fragment2, jsxDEV as jsxDEV8 } from "react/jsx-dev-runtime";
2588
1613
  var PropertyAdder = ({
2589
1614
  addProperty,
2590
1615
  disabled,
2591
1616
  propertyKey,
2592
1617
  Components
2593
- }) => /* @__PURE__ */ jsxDEV8(Components.MissingPropertyWrapper, { children: [
2594
- /* @__PURE__ */ jsxDEV8(ElasticInput, { disabled: true, defaultValue: propertyKey }, void 0, false, {
2595
- fileName: "../../hamr/src/react-json-editor/editors-by-type/object-editor.tsx",
2596
- lineNumber: 38,
2597
- columnNumber: 3
2598
- }, this),
1618
+ }) => /* @__PURE__ */ jsxs(Components.MissingPropertyWrapper, { children: [
1619
+ /* @__PURE__ */ jsx(ElasticInput, { disabled: true, defaultValue: propertyKey }),
2599
1620
  ` `,
2600
- /* @__PURE__ */ jsxDEV8(ElasticInput, { disabled: true, defaultValue: "is missing" }, void 0, false, {
2601
- fileName: "../../hamr/src/react-json-editor/editors-by-type/object-editor.tsx",
2602
- lineNumber: 40,
2603
- columnNumber: 3
2604
- }, this),
2605
- /* @__PURE__ */ jsxDEV8(Components.Button, { onClick: () => addProperty(), disabled, children: "+" }, void 0, false, {
2606
- fileName: "../../hamr/src/react-json-editor/editors-by-type/object-editor.tsx",
2607
- lineNumber: 41,
2608
- columnNumber: 3
2609
- }, this)
2610
- ] }, void 0, true, {
2611
- fileName: "../../hamr/src/react-json-editor/editors-by-type/object-editor.tsx",
2612
- lineNumber: 37,
2613
- columnNumber: 2
2614
- }, this);
1621
+ /* @__PURE__ */ jsx(ElasticInput, { disabled: true, defaultValue: "is missing" }),
1622
+ /* @__PURE__ */ jsx(Components.Button, { onClick: () => addProperty(), disabled, children: "+" })
1623
+ ] });
2615
1624
  var ObjectEditor = ({
2616
1625
  schema,
2617
1626
  path = [],
@@ -2623,7 +1632,7 @@ var ObjectEditor = ({
2623
1632
  }) => {
2624
1633
  var _a2;
2625
1634
  const disabled = isReadonly(path);
2626
- const stableKeyMap = useRef3(
1635
+ const stableKeyMap = useRef(
2627
1636
  Object.keys(data).reduce((acc, key) => {
2628
1637
  acc[key] = key;
2629
1638
  return acc;
@@ -2646,20 +1655,16 @@ var ObjectEditor = ({
2646
1655
  [[], []]
2647
1656
  );
2648
1657
  const missingKeys = schemaKeys === true ? [] : schemaKeys.filter((key) => !dataKeys.includes(key));
2649
- return /* @__PURE__ */ jsxDEV8(Fragment2, { children: [
2650
- /* @__PURE__ */ jsxDEV8(Components.Button, { onClick: () => sortProperties(), disabled, children: "Sort" }, void 0, false, {
2651
- fileName: "../../hamr/src/react-json-editor/editors-by-type/object-editor.tsx",
2652
- lineNumber: 95,
2653
- columnNumber: 4
2654
- }, this),
2655
- /* @__PURE__ */ jsxDEV8(Components.ObjectWrapper, { children: [
2656
- /* @__PURE__ */ jsxDEV8("div", { className: "json_editor_properties", children: [...missingKeys, ...officialKeys, ...unofficialKeys].map((key) => {
1658
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
1659
+ /* @__PURE__ */ jsx(Components.Button, { onClick: () => sortProperties(), disabled, children: "Sort" }),
1660
+ /* @__PURE__ */ jsxs(Components.ObjectWrapper, { children: [
1661
+ /* @__PURE__ */ jsx("div", { className: "json_editor_properties", children: [...missingKeys, ...officialKeys, ...unofficialKeys].map((key) => {
2657
1662
  const originalKey = stableKeyMap.current[key];
2658
1663
  const newPath = [...path, key];
2659
1664
  const originalPath = [...path, originalKey];
2660
1665
  const isOfficial = schemaKeys === true || schemaKeys.includes(key);
2661
1666
  const isMissing = missingKeys.includes(key);
2662
- return isMissing ? /* @__PURE__ */ jsxDEV8(
1667
+ return isMissing ? /* @__PURE__ */ jsx(
2663
1668
  PropertyAdder,
2664
1669
  {
2665
1670
  propertyKey: key,
@@ -2667,15 +1672,8 @@ var ObjectEditor = ({
2667
1672
  disabled,
2668
1673
  Components
2669
1674
  },
2670
- key + `IsMissing`,
2671
- false,
2672
- {
2673
- fileName: "../../hamr/src/react-json-editor/editors-by-type/object-editor.tsx",
2674
- lineNumber: 108,
2675
- columnNumber: 8
2676
- },
2677
- this
2678
- ) : /* @__PURE__ */ jsxDEV8(
1675
+ key + `IsMissing`
1676
+ ) : /* @__PURE__ */ jsx(
2679
1677
  JsonEditor_INTERNAL,
2680
1678
  {
2681
1679
  schema,
@@ -2691,107 +1689,49 @@ var ObjectEditor = ({
2691
1689
  className: `json_editor_property ${isOfficial ? `json_editor_official` : `json_editor_unofficial`}`,
2692
1690
  Components
2693
1691
  },
2694
- originalPath.join(`.`),
2695
- false,
2696
- {
2697
- fileName: "../../hamr/src/react-json-editor/editors-by-type/object-editor.tsx",
2698
- lineNumber: 116,
2699
- columnNumber: 8
2700
- },
2701
- this
1692
+ originalPath.join(`.`)
2702
1693
  );
2703
- }) }, void 0, false, {
2704
- fileName: "../../hamr/src/react-json-editor/editors-by-type/object-editor.tsx",
2705
- lineNumber: 99,
2706
- columnNumber: 5
2707
- }, this),
2708
- /* @__PURE__ */ jsxDEV8(
1694
+ }) }),
1695
+ /* @__PURE__ */ jsx(
2709
1696
  Components.Button,
2710
1697
  {
2711
1698
  onClick: disabled ? doNothing : () => makePropertyAdder(`new_property`, `string`)(),
2712
1699
  disabled,
2713
1700
  children: "+"
2714
- },
2715
- void 0,
2716
- false,
2717
- {
2718
- fileName: "../../hamr/src/react-json-editor/editors-by-type/object-editor.tsx",
2719
- lineNumber: 136,
2720
- columnNumber: 5
2721
- },
2722
- this
1701
+ }
2723
1702
  )
2724
- ] }, void 0, true, {
2725
- fileName: "../../hamr/src/react-json-editor/editors-by-type/object-editor.tsx",
2726
- lineNumber: 98,
2727
- columnNumber: 4
2728
- }, this)
2729
- ] }, void 0, true, {
2730
- fileName: "../../hamr/src/react-json-editor/editors-by-type/object-editor.tsx",
2731
- lineNumber: 94,
2732
- columnNumber: 3
2733
- }, this);
1703
+ ] })
1704
+ ] });
2734
1705
  };
2735
-
2736
- // ../../hamr/src/react-json-editor/editors-by-type/primitive-editors.tsx
2737
- import { jsxDEV as jsxDEV9 } from "react/jsx-dev-runtime";
2738
1706
  var BooleanEditor = ({
2739
1707
  data,
2740
1708
  set,
2741
1709
  Components
2742
- }) => /* @__PURE__ */ jsxDEV9(Components.BooleanWrapper, { children: /* @__PURE__ */ jsxDEV9(
1710
+ }) => /* @__PURE__ */ jsx(Components.BooleanWrapper, { children: /* @__PURE__ */ jsx(
2743
1711
  "input",
2744
1712
  {
2745
1713
  type: "checkbox",
2746
1714
  checked: data,
2747
1715
  onChange: (event) => set(event.target.checked)
2748
- },
2749
- void 0,
2750
- false,
2751
- {
2752
- fileName: "../../hamr/src/react-json-editor/editors-by-type/primitive-editors.tsx",
2753
- lineNumber: 12,
2754
- columnNumber: 3
2755
- },
2756
- this
2757
- ) }, void 0, false, {
2758
- fileName: "../../hamr/src/react-json-editor/editors-by-type/primitive-editors.tsx",
2759
- lineNumber: 11,
2760
- columnNumber: 2
2761
- }, this);
1716
+ }
1717
+ ) });
2762
1718
  var NullEditor = ({
2763
1719
  Components
2764
- }) => /* @__PURE__ */ jsxDEV9(Components.NullWrapper, { children: '" "' }, void 0, false, {
2765
- fileName: "../../hamr/src/react-json-editor/editors-by-type/primitive-editors.tsx",
2766
- lineNumber: 23,
2767
- columnNumber: 2
2768
- }, this);
1720
+ }) => /* @__PURE__ */ jsx(Components.NullWrapper, { children: '" "' });
2769
1721
  var NumberEditor = ({
2770
1722
  path = [],
2771
1723
  isReadonly = () => false,
2772
1724
  data,
2773
1725
  set,
2774
1726
  Components
2775
- }) => /* @__PURE__ */ jsxDEV9(Components.NumberWrapper, { children: /* @__PURE__ */ jsxDEV9(
1727
+ }) => /* @__PURE__ */ jsx(Components.NumberWrapper, { children: /* @__PURE__ */ jsx(
2776
1728
  NumberInput,
2777
1729
  {
2778
1730
  value: data,
2779
1731
  set: isReadonly(path) ? void 0 : (newValue) => set(Number(newValue)),
2780
1732
  autoSize: true
2781
- },
2782
- void 0,
2783
- false,
2784
- {
2785
- fileName: "../../hamr/src/react-json-editor/editors-by-type/primitive-editors.tsx",
2786
- lineNumber: 34,
2787
- columnNumber: 3
2788
- },
2789
- this
2790
- ) }, void 0, false, {
2791
- fileName: "../../hamr/src/react-json-editor/editors-by-type/primitive-editors.tsx",
2792
- lineNumber: 33,
2793
- columnNumber: 2
2794
- }, this);
1733
+ }
1734
+ ) });
2795
1735
  var StringEditor = ({
2796
1736
  path = [],
2797
1737
  isReadonly = () => false,
@@ -2799,38 +1739,20 @@ var StringEditor = ({
2799
1739
  set,
2800
1740
  Components
2801
1741
  }) => {
2802
- return /* @__PURE__ */ jsxDEV9(Components.StringWrapper, { children: /* @__PURE__ */ jsxDEV9(
1742
+ return /* @__PURE__ */ jsx(Components.StringWrapper, { children: /* @__PURE__ */ jsx(
2803
1743
  TextInput,
2804
1744
  {
2805
1745
  value: data,
2806
1746
  set: isReadonly(path) ? void 0 : set,
2807
1747
  autoSize: true
2808
- },
2809
- void 0,
2810
- false,
2811
- {
2812
- fileName: "../../hamr/src/react-json-editor/editors-by-type/primitive-editors.tsx",
2813
- lineNumber: 51,
2814
- columnNumber: 4
2815
- },
2816
- this
2817
- ) }, void 0, false, {
2818
- fileName: "../../hamr/src/react-json-editor/editors-by-type/primitive-editors.tsx",
2819
- lineNumber: 50,
2820
- columnNumber: 3
2821
- }, this);
1748
+ }
1749
+ ) });
2822
1750
  };
2823
-
2824
- // ../../hamr/src/react-error-boundary/ReactErrorBoundary.tsx
2825
- import { Component, useState as useState3 } from "react";
2826
-
2827
- // ../../hamr/src/react-error-boundary/DefaultFallback.tsx
2828
- import { jsxDEV as jsxDEV10 } from "react/jsx-dev-runtime";
2829
1751
  var DefaultFallback = ({ error, errorInfo }) => {
2830
1752
  var _a2, _b;
2831
1753
  const component = errorInfo == null ? void 0 : errorInfo.componentStack.split(` `).filter(Boolean)[2];
2832
1754
  const message = (_b = (_a2 = error == null ? void 0 : error.toString()) != null ? _a2 : errorInfo == null ? void 0 : errorInfo.componentStack) != null ? _b : `Unknown error`;
2833
- return /* @__PURE__ */ jsxDEV10(
1755
+ return /* @__PURE__ */ jsx(
2834
1756
  "div",
2835
1757
  {
2836
1758
  "data-testid": "error-boundary",
@@ -2842,7 +1764,7 @@ var DefaultFallback = ({ error, errorInfo }) => {
2842
1764
  // backgroundRepeat: `no-repeat`,
2843
1765
  backgroundSize: `overlay`
2844
1766
  },
2845
- children: /* @__PURE__ */ jsxDEV10(
1767
+ children: /* @__PURE__ */ jsx(
2846
1768
  "div",
2847
1769
  {
2848
1770
  style: {
@@ -2851,7 +1773,7 @@ var DefaultFallback = ({ error, errorInfo }) => {
2851
1773
  padding: `50px`,
2852
1774
  border: `1px solid dashed`
2853
1775
  },
2854
- children: /* @__PURE__ */ jsxDEV10(
1776
+ children: /* @__PURE__ */ jsxs(
2855
1777
  "span",
2856
1778
  {
2857
1779
  style: {
@@ -2862,48 +1784,17 @@ var DefaultFallback = ({ error, errorInfo }) => {
2862
1784
  },
2863
1785
  children: [
2864
1786
  `\u26A0\uFE0F `,
2865
- /* @__PURE__ */ jsxDEV10("span", { style: { color: `#fc0`, fontWeight: 700 }, children: component }, void 0, false, {
2866
- fileName: "../../hamr/src/react-error-boundary/DefaultFallback.tsx",
2867
- lineNumber: 42,
2868
- columnNumber: 6
2869
- }, this),
1787
+ /* @__PURE__ */ jsx("span", { style: { color: `#fc0`, fontWeight: 700 }, children: component }),
2870
1788
  ` \u26A0\uFE0F `,
2871
1789
  message
2872
1790
  ]
2873
- },
2874
- void 0,
2875
- true,
2876
- {
2877
- fileName: "../../hamr/src/react-error-boundary/DefaultFallback.tsx",
2878
- lineNumber: 33,
2879
- columnNumber: 5
2880
- },
2881
- this
1791
+ }
2882
1792
  )
2883
- },
2884
- void 0,
2885
- false,
2886
- {
2887
- fileName: "../../hamr/src/react-error-boundary/DefaultFallback.tsx",
2888
- lineNumber: 25,
2889
- columnNumber: 4
2890
- },
2891
- this
1793
+ }
2892
1794
  )
2893
- },
2894
- void 0,
2895
- false,
2896
- {
2897
- fileName: "../../hamr/src/react-error-boundary/DefaultFallback.tsx",
2898
- lineNumber: 13,
2899
- columnNumber: 3
2900
- },
2901
- this
1795
+ }
2902
1796
  );
2903
1797
  };
2904
-
2905
- // ../../hamr/src/react-error-boundary/ReactErrorBoundary.tsx
2906
- import { jsxDEV as jsxDEV11 } from "react/jsx-dev-runtime";
2907
1798
  var ErrorBoundary = class extends Component {
2908
1799
  constructor(props) {
2909
1800
  super(props);
@@ -2920,23 +1811,12 @@ var ErrorBoundary = class extends Component {
2920
1811
  render() {
2921
1812
  const { error, errorInfo } = this.state;
2922
1813
  const { children, Fallback = DefaultFallback } = this.props;
2923
- return errorInfo ? /* @__PURE__ */ jsxDEV11(Fallback, { error, errorInfo }, void 0, false, {
2924
- fileName: "../../hamr/src/react-error-boundary/ReactErrorBoundary.tsx",
2925
- lineNumber: 51,
2926
- columnNumber: 4
2927
- }, this) : children;
1814
+ return errorInfo ? /* @__PURE__ */ jsx(Fallback, { error, errorInfo }) : children;
2928
1815
  }
2929
1816
  };
2930
-
2931
- // ../../hamr/src/react-json-editor/default-components.tsx
2932
- import { jsxDEV as jsxDEV12 } from "react/jsx-dev-runtime";
2933
1817
  var DEFAULT_JSON_EDITOR_COMPONENTS = {
2934
- ErrorBoundary: ({ children }) => /* @__PURE__ */ jsxDEV12(ErrorBoundary, { children }, void 0, false, {
2935
- fileName: "../../hamr/src/react-json-editor/default-components.tsx",
2936
- lineNumber: 49,
2937
- columnNumber: 35
2938
- }, this),
2939
- Button: ({ onClick, children, disabled }) => /* @__PURE__ */ jsxDEV12(
1818
+ ErrorBoundary: ({ children }) => /* @__PURE__ */ jsx(ErrorBoundary, { children }),
1819
+ Button: ({ onClick, children, disabled }) => /* @__PURE__ */ jsx(
2940
1820
  "button",
2941
1821
  {
2942
1822
  type: "button",
@@ -2944,21 +1824,9 @@ var DEFAULT_JSON_EDITOR_COMPONENTS = {
2944
1824
  onClick,
2945
1825
  disabled,
2946
1826
  children
2947
- },
2948
- void 0,
2949
- false,
2950
- {
2951
- fileName: "../../hamr/src/react-json-editor/default-components.tsx",
2952
- lineNumber: 51,
2953
- columnNumber: 3
2954
- },
2955
- this
1827
+ }
2956
1828
  ),
2957
- EditorWrapper: ({ children, customCss, className }) => /* @__PURE__ */ jsxDEV12("div", { className: `json_editor ` + className, css: customCss, children }, void 0, false, {
2958
- fileName: "../../hamr/src/react-json-editor/default-components.tsx",
2959
- lineNumber: 61,
2960
- columnNumber: 3
2961
- }, this),
1829
+ EditorWrapper: ({ children, customCss, className }) => /* @__PURE__ */ jsx("div", { className: `json_editor ` + className, css: customCss, children }),
2962
1830
  EditorLayout: ({
2963
1831
  DeleteButton,
2964
1832
  Header,
@@ -2967,109 +1835,28 @@ var DEFAULT_JSON_EDITOR_COMPONENTS = {
2967
1835
  ValueEditor,
2968
1836
  Wrapper
2969
1837
  }) => {
2970
- return /* @__PURE__ */ jsxDEV12(Wrapper, { children: [
2971
- DeleteButton && /* @__PURE__ */ jsxDEV12(DeleteButton, {}, void 0, false, {
2972
- fileName: "../../hamr/src/react-json-editor/default-components.tsx",
2973
- lineNumber: 75,
2974
- columnNumber: 22
2975
- }, this),
2976
- Header && /* @__PURE__ */ jsxDEV12(Header, {}, void 0, false, {
2977
- fileName: "../../hamr/src/react-json-editor/default-components.tsx",
2978
- lineNumber: 76,
2979
- columnNumber: 16
2980
- }, this),
2981
- KeyInput && /* @__PURE__ */ jsxDEV12(KeyInput, {}, void 0, false, {
2982
- fileName: "../../hamr/src/react-json-editor/default-components.tsx",
2983
- lineNumber: 77,
2984
- columnNumber: 18
2985
- }, this),
2986
- TypeSelect && /* @__PURE__ */ jsxDEV12(TypeSelect, {}, void 0, false, {
2987
- fileName: "../../hamr/src/react-json-editor/default-components.tsx",
2988
- lineNumber: 78,
2989
- columnNumber: 20
2990
- }, this),
2991
- /* @__PURE__ */ jsxDEV12(ValueEditor, {}, void 0, false, {
2992
- fileName: "../../hamr/src/react-json-editor/default-components.tsx",
2993
- lineNumber: 79,
2994
- columnNumber: 5
2995
- }, this)
2996
- ] }, void 0, true, {
2997
- fileName: "../../hamr/src/react-json-editor/default-components.tsx",
2998
- lineNumber: 74,
2999
- columnNumber: 4
3000
- }, this);
1838
+ return /* @__PURE__ */ jsxs(Wrapper, { children: [
1839
+ DeleteButton && /* @__PURE__ */ jsx(DeleteButton, {}),
1840
+ Header && /* @__PURE__ */ jsx(Header, {}),
1841
+ KeyInput && /* @__PURE__ */ jsx(KeyInput, {}),
1842
+ TypeSelect && /* @__PURE__ */ jsx(TypeSelect, {}),
1843
+ /* @__PURE__ */ jsx(ValueEditor, {})
1844
+ ] });
3001
1845
  },
3002
- ArrayWrapper: ({ children }) => /* @__PURE__ */ jsxDEV12("div", { className: "json_editor_array", children }, void 0, false, {
3003
- fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3004
- lineNumber: 84,
3005
- columnNumber: 3
3006
- }, this),
3007
- ObjectWrapper: ({ children }) => /* @__PURE__ */ jsxDEV12("div", { className: "json_editor_object", children }, void 0, false, {
3008
- fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3009
- lineNumber: 87,
3010
- columnNumber: 3
3011
- }, this),
3012
- StringWrapper: ({ children }) => /* @__PURE__ */ jsxDEV12("span", { className: "json_editor_string", children }, void 0, false, {
3013
- fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3014
- lineNumber: 90,
3015
- columnNumber: 3
3016
- }, this),
3017
- NumberWrapper: ({ children }) => /* @__PURE__ */ jsxDEV12("span", { className: "json_editor_number", children }, void 0, false, {
3018
- fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3019
- lineNumber: 93,
3020
- columnNumber: 3
3021
- }, this),
3022
- BooleanWrapper: ({ children }) => /* @__PURE__ */ jsxDEV12("span", { className: "json_editor_boolean", children }, void 0, false, {
3023
- fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3024
- lineNumber: 96,
3025
- columnNumber: 3
3026
- }, this),
3027
- NullWrapper: ({ children }) => /* @__PURE__ */ jsxDEV12("span", { className: "json_editor_null", children }, void 0, false, {
3028
- fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3029
- lineNumber: 99,
3030
- columnNumber: 3
3031
- }, this),
3032
- MissingPropertyWrapper: ({ children }) => /* @__PURE__ */ jsxDEV12("div", { className: "json_editor_property json_editor_missing", children }, void 0, false, {
3033
- fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3034
- lineNumber: 102,
3035
- columnNumber: 3
3036
- }, this),
3037
- MiscastPropertyWrapper: ({ children }) => /* @__PURE__ */ jsxDEV12("div", { className: "json_editor_property json_editor_miscast", children }, void 0, false, {
3038
- fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3039
- lineNumber: 105,
3040
- columnNumber: 3
3041
- }, this),
3042
- IllegalPropertyWrapper: ({ children }) => /* @__PURE__ */ jsxDEV12("span", { className: "json_editor_property json_editor_illegal", children }, void 0, false, {
3043
- fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3044
- lineNumber: 108,
3045
- columnNumber: 3
3046
- }, this),
3047
- OfficialPropertyWrapper: ({ children }) => /* @__PURE__ */ jsxDEV12("span", { className: "json_editor_property json_editor_official", children }, void 0, false, {
3048
- fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3049
- lineNumber: 111,
3050
- columnNumber: 3
3051
- }, this),
3052
- UnofficialPropertyWrapper: ({ children }) => /* @__PURE__ */ jsxDEV12("span", { className: "json_editor_property json_editor_unofficial", children }, void 0, false, {
3053
- fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3054
- lineNumber: 114,
3055
- columnNumber: 3
3056
- }, this),
3057
- DeleteIcon: () => /* @__PURE__ */ jsxDEV12("span", { className: "json_editor_icon json_editor_delete", children: "x" }, void 0, false, {
3058
- fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3059
- lineNumber: 119,
3060
- columnNumber: 3
3061
- }, this),
3062
- KeyWrapper: ({ children }) => /* @__PURE__ */ jsxDEV12("span", { className: "json_editor_key", children }, void 0, false, {
3063
- fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3064
- lineNumber: 122,
3065
- columnNumber: 3
3066
- }, this)
1846
+ ArrayWrapper: ({ children }) => /* @__PURE__ */ jsx("div", { className: "json_editor_array", children }),
1847
+ ObjectWrapper: ({ children }) => /* @__PURE__ */ jsx("div", { className: "json_editor_object", children }),
1848
+ StringWrapper: ({ children }) => /* @__PURE__ */ jsx("span", { className: "json_editor_string", children }),
1849
+ NumberWrapper: ({ children }) => /* @__PURE__ */ jsx("span", { className: "json_editor_number", children }),
1850
+ BooleanWrapper: ({ children }) => /* @__PURE__ */ jsx("span", { className: "json_editor_boolean", children }),
1851
+ NullWrapper: ({ children }) => /* @__PURE__ */ jsx("span", { className: "json_editor_null", children }),
1852
+ MissingPropertyWrapper: ({ children }) => /* @__PURE__ */ jsx("div", { className: "json_editor_property json_editor_missing", children }),
1853
+ MiscastPropertyWrapper: ({ children }) => /* @__PURE__ */ jsx("div", { className: "json_editor_property json_editor_miscast", children }),
1854
+ IllegalPropertyWrapper: ({ children }) => /* @__PURE__ */ jsx("span", { className: "json_editor_property json_editor_illegal", children }),
1855
+ OfficialPropertyWrapper: ({ children }) => /* @__PURE__ */ jsx("span", { className: "json_editor_property json_editor_official", children }),
1856
+ UnofficialPropertyWrapper: ({ children }) => /* @__PURE__ */ jsx("span", { className: "json_editor_property json_editor_unofficial", children }),
1857
+ DeleteIcon: () => /* @__PURE__ */ jsx("span", { className: "json_editor_icon json_editor_delete", children: "x" }),
1858
+ KeyWrapper: ({ children }) => /* @__PURE__ */ jsx("span", { className: "json_editor_key", children })
3067
1859
  };
3068
-
3069
- // ../../hamr/src/react-json-editor/developer-interface.tsx
3070
- import Ajv from "ajv";
3071
- import { useMemo } from "react";
3072
- import { jsxDEV as jsxDEV13 } from "react/jsx-dev-runtime";
3073
1860
  var JsonEditor = ({
3074
1861
  data,
3075
1862
  set,
@@ -3086,12 +1873,7 @@ var JsonEditor = ({
3086
1873
  Components: CustomComponents = {}
3087
1874
  }) => {
3088
1875
  const Components = __spreadValues(__spreadValues({}, DEFAULT_JSON_EDITOR_COMPONENTS), CustomComponents);
3089
- const ajv = new Ajv({ allErrors: true, verbose: true });
3090
- const validate = useMemo(() => {
3091
- return ajv.compile(schema);
3092
- }, [schema]);
3093
- const validationResults = validate(data);
3094
- return /* @__PURE__ */ jsxDEV13(
1876
+ return /* @__PURE__ */ jsx(
3095
1877
  JsonEditor_INTERNAL,
3096
1878
  {
3097
1879
  data,
@@ -3107,15 +1889,7 @@ var JsonEditor = ({
3107
1889
  customCss,
3108
1890
  Header,
3109
1891
  Components
3110
- },
3111
- void 0,
3112
- false,
3113
- {
3114
- fileName: "../../hamr/src/react-json-editor/developer-interface.tsx",
3115
- lineNumber: 77,
3116
- columnNumber: 3
3117
- },
3118
- this
1892
+ }
3119
1893
  );
3120
1894
  };
3121
1895
 
@@ -3129,19 +1903,6 @@ var SubEditors = {
3129
1903
  string: StringEditor
3130
1904
  };
3131
1905
 
3132
- // ../../hamr/src/react-data-designer/RelationEditor.module.scss
3133
- var RelationEditor_module_default = {};
3134
-
3135
- // ../../hamr/src/react-id/Id.tsx
3136
- import {
3137
- FloatingPortal,
3138
- useClick,
3139
- useFloating,
3140
- useInteractions
3141
- } from "@floating-ui/react";
3142
- import { pipe as pipe12 } from "fp-ts/function";
3143
- import * as React from "react";
3144
-
3145
1906
  // ../../anvl/src/string/string-to-color.ts
3146
1907
  function stringToColor(input) {
3147
1908
  let hash = 0;
@@ -3248,7 +2009,6 @@ var maxSatForHueInFilter_default = (hue, filter) => {
3248
2009
  $ /= hueB - hueA;
3249
2010
  $ *= tuningPointB.sat - tuningPointA.sat;
3250
2011
  $ += tuningPointA.sat;
3251
- Math.round($);
3252
2012
  maxSat = $;
3253
2013
  }
3254
2014
  }
@@ -3429,25 +2189,6 @@ var hexToSpec = (hex) => {
3429
2189
  };
3430
2190
  var hexToSpec_default = hexToSpec;
3431
2191
 
3432
- // ../../luum/src/mixers/lum.ts
3433
- import { pipe as pipe8 } from "fp-ts/function";
3434
- var resetColor = (color) => pipe8(color, specToHex_default, hexToSpec_default, (hsl) => __spreadProps(__spreadValues({}, hsl), {
3435
- prefer: color.prefer
3436
- }));
3437
- var setLum = (newLum) => (currentColor) => {
3438
- const newColor = __spreadProps(__spreadValues({}, currentColor), {
3439
- lum: pipe8(currentColor.lum, become(newLum), clampInto(0, 1))
3440
- });
3441
- return newColor;
3442
- };
3443
- var shadeBy = (shadeAmount) => (color) => setLum((lum) => (lum * 100 - shadeAmount) / 100)(resetColor(color));
3444
-
3445
- // ../../luum/src/mixers/sat.ts
3446
- import { pipe as pipe9 } from "fp-ts/function";
3447
-
3448
- // ../../luum/src/mixers/hue.ts
3449
- import { pipe as pipe10 } from "fp-ts/function";
3450
-
3451
2192
  // ../../luum/src/mixers/contrast.ts
3452
2193
  var contrastMax = (color) => __spreadProps(__spreadValues({}, color), {
3453
2194
  lum: color.lum > 0.666 ? 0 : 1
@@ -3456,10 +2197,6 @@ var offset = (offsetAmount) => (color) => __spreadProps(__spreadValues({}, color
3456
2197
  lum: color.lum > 0.666 ? color.lum - offsetAmount : color.lum + offsetAmount
3457
2198
  });
3458
2199
 
3459
- // ../../luum/src/scheme/index.ts
3460
- import { pipe as pipe11 } from "fp-ts/function";
3461
- import { isString as isString7 } from "fp-ts/string";
3462
-
3463
2200
  // ../../luum/src/constants/luum-spec.ts
3464
2201
  var defaultSpec = {
3465
2202
  hue: 0,
@@ -3470,13 +2207,7 @@ var defaultSpec = {
3470
2207
 
3471
2208
  // ../../luum/src/scheme/index.ts
3472
2209
  var isLuumSpec = (input) => typeof input === `object` && input !== null && typeof input.hue === `number` && typeof input.sat === `number` && typeof input.lum === `number` && [`sat`, `lum`].includes(input.prefer);
3473
- var isLuumSpecModifier = isModifier(isLuumSpec)(defaultSpec);
3474
- var RED = {
3475
- hue: 0,
3476
- sat: 255,
3477
- lum: 0.5,
3478
- prefer: `sat`
3479
- };
2210
+ isModifier(isLuumSpec)(defaultSpec);
3480
2211
  var WAYFORGE_CORE_COLOR_NAMES = [
3481
2212
  `Red`,
3482
2213
  `Orange`,
@@ -3491,7 +2222,7 @@ var WAYFORGE_CORE_COLOR_NAMES = [
3491
2222
  `Magenta`,
3492
2223
  `Pink`
3493
2224
  ];
3494
- var WAYFORGE_CORE_COLORS = WAYFORGE_CORE_COLOR_NAMES.reduce((acc, name, idx) => {
2225
+ WAYFORGE_CORE_COLOR_NAMES.reduce((acc, name, idx) => {
3495
2226
  acc[name] = {
3496
2227
  hue: idx * 30,
3497
2228
  sat: 255,
@@ -3500,21 +2231,6 @@ var WAYFORGE_CORE_COLORS = WAYFORGE_CORE_COLOR_NAMES.reduce((acc, name, idx) =>
3500
2231
  };
3501
2232
  return acc;
3502
2233
  }, {});
3503
- var PAINT_MY_WAGON_RED = {
3504
- rootSelectors: [`.wagon`],
3505
- root: RED,
3506
- attributes: [`background-color`, shadeBy(5)],
3507
- states: [
3508
- [
3509
- [`:hover`, `:focus`],
3510
- [`background-color`, shadeBy(10)]
3511
- ],
3512
- [`:active`, [`background-color`, shadeBy(15)]]
3513
- ]
3514
- };
3515
-
3516
- // ../../hamr/src/react-id/Id.tsx
3517
- import { Fragment as Fragment3, jsxDEV as jsxDEV14 } from "react/jsx-dev-runtime";
3518
2234
  var Id = ({ id }) => {
3519
2235
  const [isOpen, setIsOpen] = React.useState(false);
3520
2236
  const { refs, floatingStyles, context } = useFloating({
@@ -3525,16 +2241,16 @@ var Id = ({ id }) => {
3525
2241
  const click = useClick(context);
3526
2242
  const { getReferenceProps, getFloatingProps } = useInteractions([click]);
3527
2243
  const bgColor = stringToColor(id);
3528
- const contrastColor = pipe12(bgColor, hexToSpec_default, contrastMax, specToHex_default);
3529
- const offsetColor = pipe12(bgColor, hexToSpec_default, offset(0.25), specToHex_default);
3530
- const contrastOffsetColor = pipe12(
2244
+ const contrastColor = pipe(bgColor, hexToSpec_default, contrastMax, specToHex_default);
2245
+ const offsetColor = pipe(bgColor, hexToSpec_default, offset(0.25), specToHex_default);
2246
+ const contrastOffsetColor = pipe(
3531
2247
  offsetColor,
3532
2248
  hexToSpec_default,
3533
2249
  contrastMax,
3534
2250
  specToHex_default
3535
2251
  );
3536
- return /* @__PURE__ */ jsxDEV14(Fragment3, { children: [
3537
- /* @__PURE__ */ jsxDEV14(
2252
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
2253
+ /* @__PURE__ */ jsx(
3538
2254
  "span",
3539
2255
  __spreadProps(__spreadValues({
3540
2256
  role: "content",
@@ -3549,17 +2265,9 @@ var Id = ({ id }) => {
3549
2265
  whiteSpace: `nowrap`
3550
2266
  },
3551
2267
  children: id.substring(0, 3)
3552
- }),
3553
- void 0,
3554
- false,
3555
- {
3556
- fileName: "../../hamr/src/react-id/Id.tsx",
3557
- lineNumber: 36,
3558
- columnNumber: 4
3559
- },
3560
- this
2268
+ })
3561
2269
  ),
3562
- isOpen && /* @__PURE__ */ jsxDEV14(FloatingPortal, { children: /* @__PURE__ */ jsxDEV14(
2270
+ isOpen && /* @__PURE__ */ jsx(FloatingPortal, { children: /* @__PURE__ */ jsx(
3563
2271
  "span",
3564
2272
  __spreadProps(__spreadValues({
3565
2273
  role: "popup",
@@ -3572,29 +2280,13 @@ var Id = ({ id }) => {
3572
2280
  boxShadow: `0px 2px 10px rgba(0, 0, 0, 0.1)`
3573
2281
  }),
3574
2282
  children: id
3575
- }),
3576
- void 0,
3577
- false,
3578
- {
3579
- fileName: "../../hamr/src/react-id/Id.tsx",
3580
- lineNumber: 53,
3581
- columnNumber: 6
3582
- },
3583
- this
3584
- ) }, void 0, false, {
3585
- fileName: "../../hamr/src/react-id/Id.tsx",
3586
- lineNumber: 52,
3587
- columnNumber: 5
3588
- }, this)
3589
- ] }, void 0, true, {
3590
- fileName: "../../hamr/src/react-id/Id.tsx",
3591
- lineNumber: 35,
3592
- columnNumber: 3
3593
- }, this);
2283
+ })
2284
+ ) })
2285
+ ] });
3594
2286
  };
3595
2287
 
3596
- // ../../hamr/src/react-data-designer/RelationEditor.tsx
3597
- import { jsxDEV as jsxDEV15 } from "react/jsx-dev-runtime";
2288
+ // ../../hamr/src/react-data-designer/RelationEditor.module.scss
2289
+ var RelationEditor_module_default = {};
3598
2290
  var RelationEditor = (props) => {
3599
2291
  const seen = /* @__PURE__ */ new Set();
3600
2292
  const data = Object.entries(props.data.relations).sort(([_, a2], [__, b2]) => b2.length - a2.length).filter(([head, tail]) => {
@@ -3606,124 +2298,47 @@ var RelationEditor = (props) => {
3606
2298
  }
3607
2299
  return true;
3608
2300
  });
3609
- return /* @__PURE__ */ jsxDEV15("article", { className: RelationEditor_module_default.class, children: data.map(([head, tail]) => /* @__PURE__ */ jsxDEV15("section", { children: [
3610
- /* @__PURE__ */ jsxDEV15("span", { children: /* @__PURE__ */ jsxDEV15(Id, { id: head }, void 0, false, {
3611
- fileName: "../../hamr/src/react-data-designer/RelationEditor.tsx",
3612
- lineNumber: 26,
3613
- columnNumber: 7
3614
- }, this) }, void 0, false, {
3615
- fileName: "../../hamr/src/react-data-designer/RelationEditor.tsx",
3616
- lineNumber: 25,
3617
- columnNumber: 6
3618
- }, this),
2301
+ return /* @__PURE__ */ jsx("article", { className: RelationEditor_module_default.class, children: data.map(([head, tail]) => /* @__PURE__ */ jsxs("section", { children: [
2302
+ /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx(Id, { id: head }) }),
3619
2303
  ":",
3620
- /* @__PURE__ */ jsxDEV15("span", { children: tail.map((child) => /* @__PURE__ */ jsxDEV15(Id, { id: child }, void 0, false, {
3621
- fileName: "../../hamr/src/react-data-designer/RelationEditor.tsx",
3622
- lineNumber: 31,
3623
- columnNumber: 8
3624
- }, this)) }, void 0, false, {
3625
- fileName: "../../hamr/src/react-data-designer/RelationEditor.tsx",
3626
- lineNumber: 29,
3627
- columnNumber: 6
3628
- }, this)
3629
- ] }, void 0, true, {
3630
- fileName: "../../hamr/src/react-data-designer/RelationEditor.tsx",
3631
- lineNumber: 24,
3632
- columnNumber: 5
3633
- }, this)) }, void 0, false, {
3634
- fileName: "../../hamr/src/react-data-designer/RelationEditor.tsx",
3635
- lineNumber: 21,
3636
- columnNumber: 3
3637
- }, this);
2304
+ /* @__PURE__ */ jsx("span", { children: tail.map((child) => /* @__PURE__ */ jsx(Id, { id: child })) })
2305
+ ] })) });
3638
2306
  };
3639
-
3640
- // ../src/react-devtools/StateEditor.tsx
3641
- import { jsxDEV as jsxDEV16 } from "react/jsx-dev-runtime";
3642
2307
  var StateEditor = ({ token }) => {
3643
- const [data, set] = useIO(token);
3644
- return isJson(data) ? /* @__PURE__ */ jsxDEV16(JsonEditor, { data, set, schema: true }, void 0, false, {
3645
- fileName: "../src/react-devtools/StateEditor.tsx",
3646
- lineNumber: 17,
3647
- columnNumber: 3
3648
- }, this) : data instanceof Join ? /* @__PURE__ */ jsxDEV16(RelationEditor, { data, set }, void 0, false, {
3649
- fileName: "../src/react-devtools/StateEditor.tsx",
3650
- lineNumber: 19,
3651
- columnNumber: 3
3652
- }, this) : /* @__PURE__ */ jsxDEV16("div", { className: "json_editor", children: /* @__PURE__ */ jsxDEV16(
2308
+ const set = useI(token);
2309
+ const data = useO(token);
2310
+ return isJson(data) ? /* @__PURE__ */ jsx(JsonEditor, { data, set, schema: true }) : data instanceof Join ? /* @__PURE__ */ jsx(RelationEditor, { data, set }) : /* @__PURE__ */ jsx("div", { className: "json_editor", children: /* @__PURE__ */ jsx(
3653
2311
  ElasticInput,
3654
2312
  {
3655
2313
  value: data instanceof Set ? `Set { ${JSON.stringify([...data]).slice(1, -1)} }` : data instanceof Map ? `Map ` + JSON.stringify([...data]) : Object.getPrototypeOf(data).constructor.name + ` ` + fallback(() => JSON.stringify(data), `?`),
3656
2314
  disabled: true
3657
- },
3658
- void 0,
3659
- false,
3660
- {
3661
- fileName: "../src/react-devtools/StateEditor.tsx",
3662
- lineNumber: 22,
3663
- columnNumber: 4
3664
- },
3665
- this
3666
- ) }, void 0, false, {
3667
- fileName: "../src/react-devtools/StateEditor.tsx",
3668
- lineNumber: 21,
3669
- columnNumber: 3
3670
- }, this);
2315
+ }
2316
+ ) });
3671
2317
  };
3672
2318
  var ReadonlySelectorViewer = ({ token }) => {
3673
2319
  const data = useO(token);
3674
- return isJson(data) ? /* @__PURE__ */ jsxDEV16(
2320
+ return isJson(data) ? /* @__PURE__ */ jsx(
3675
2321
  JsonEditor,
3676
2322
  {
3677
2323
  data,
3678
2324
  set: () => null,
3679
2325
  schema: true,
3680
2326
  isReadonly: () => true
3681
- },
3682
- void 0,
3683
- false,
3684
- {
3685
- fileName: "../src/react-devtools/StateEditor.tsx",
3686
- lineNumber: 43,
3687
- columnNumber: 3
3688
- },
3689
- this
3690
- ) : /* @__PURE__ */ jsxDEV16("div", { className: "json_editor", children: /* @__PURE__ */ jsxDEV16(
2327
+ }
2328
+ ) : /* @__PURE__ */ jsx("div", { className: "json_editor", children: /* @__PURE__ */ jsx(
3691
2329
  ElasticInput,
3692
2330
  {
3693
2331
  value: data instanceof Set ? `Set ` + JSON.stringify([...data]) : data instanceof Map ? `Map ` + JSON.stringify([...data]) : Object.getPrototypeOf(data).constructor.name + ` ` + JSON.stringify(data),
3694
2332
  disabled: true
3695
- },
3696
- void 0,
3697
- false,
3698
- {
3699
- fileName: "../src/react-devtools/StateEditor.tsx",
3700
- lineNumber: 51,
3701
- columnNumber: 4
3702
- },
3703
- this
3704
- ) }, void 0, false, {
3705
- fileName: "../src/react-devtools/StateEditor.tsx",
3706
- lineNumber: 50,
3707
- columnNumber: 3
3708
- }, this);
2333
+ }
2334
+ ) });
3709
2335
  };
3710
2336
  var StoreEditor = ({ token }) => {
3711
2337
  if (token.type === `readonly_selector`) {
3712
- return /* @__PURE__ */ jsxDEV16(ReadonlySelectorViewer, { token }, void 0, false, {
3713
- fileName: "../src/react-devtools/StateEditor.tsx",
3714
- lineNumber: 71,
3715
- columnNumber: 10
3716
- }, this);
2338
+ return /* @__PURE__ */ jsx(ReadonlySelectorViewer, { token });
3717
2339
  }
3718
- return /* @__PURE__ */ jsxDEV16(StateEditor, { token }, void 0, false, {
3719
- fileName: "../src/react-devtools/StateEditor.tsx",
3720
- lineNumber: 73,
3721
- columnNumber: 9
3722
- }, this);
2340
+ return /* @__PURE__ */ jsx(StateEditor, { token });
3723
2341
  };
3724
-
3725
- // ../src/react-devtools/StateIndex.tsx
3726
- import { Fragment as Fragment4, jsxDEV as jsxDEV17 } from "react/jsx-dev-runtime";
3727
2342
  var findStateTypeState = selectorFamily({
3728
2343
  key: `\u{1F441}\u200D\u{1F5E8} State Type`,
3729
2344
  get: (token) => ({ get }) => {
@@ -3742,697 +2357,316 @@ var findStateTypeState = selectorFamily({
3742
2357
  });
3743
2358
  var StateIndexLeafNode = ({ node, isOpenState, typeState }) => {
3744
2359
  var _a2, _b;
3745
- const [isOpen, setIsOpen] = useIO2(isOpenState);
3746
- const state = useO2(node);
3747
- const stateType = useO2(typeState);
2360
+ const setIsOpen = useI(isOpenState);
2361
+ const isOpen = useO(isOpenState);
2362
+ const state = useO(node);
2363
+ const stateType = useO(typeState);
3748
2364
  const isPrimitive = Boolean(primitiveRefinery.refine(state));
3749
- return /* @__PURE__ */ jsxDEV17(Fragment4, { children: [
3750
- /* @__PURE__ */ jsxDEV17("header", { children: [
3751
- /* @__PURE__ */ jsxDEV17(
2365
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
2366
+ /* @__PURE__ */ jsxs("header", { children: [
2367
+ /* @__PURE__ */ jsx(
3752
2368
  button.OpenClose,
3753
2369
  {
3754
2370
  isOpen: isOpen && !isPrimitive,
3755
2371
  setIsOpen,
3756
2372
  disabled: isPrimitive
3757
- },
3758
- void 0,
3759
- false,
3760
- {
3761
- fileName: "../src/react-devtools/StateIndex.tsx",
3762
- lineNumber: 48,
3763
- columnNumber: 5
3764
- },
3765
- this
2373
+ }
3766
2374
  ),
3767
- /* @__PURE__ */ jsxDEV17(
2375
+ /* @__PURE__ */ jsxs(
3768
2376
  "label",
3769
2377
  {
3770
2378
  onClick: () => console.log(node, getState(node)),
3771
2379
  onKeyUp: () => console.log(node, getState(node)),
3772
2380
  children: [
3773
- /* @__PURE__ */ jsxDEV17("h2", { children: (_b = (_a2 = node.family) == null ? void 0 : _a2.subKey) != null ? _b : node.key }, void 0, false, {
3774
- fileName: "../src/react-devtools/StateIndex.tsx",
3775
- lineNumber: 57,
3776
- columnNumber: 6
3777
- }, this),
3778
- /* @__PURE__ */ jsxDEV17("span", { className: "type detail", children: [
2381
+ /* @__PURE__ */ jsx("h2", { children: (_b = (_a2 = node.family) == null ? void 0 : _a2.subKey) != null ? _b : node.key }),
2382
+ /* @__PURE__ */ jsxs("span", { className: "type detail", children: [
3779
2383
  "(",
3780
2384
  stateType,
3781
2385
  ")"
3782
- ] }, void 0, true, {
3783
- fileName: "../src/react-devtools/StateIndex.tsx",
3784
- lineNumber: 58,
3785
- columnNumber: 6
3786
- }, this)
2386
+ ] })
3787
2387
  ]
3788
- },
3789
- void 0,
3790
- true,
3791
- {
3792
- fileName: "../src/react-devtools/StateIndex.tsx",
3793
- lineNumber: 53,
3794
- columnNumber: 5
3795
- },
3796
- this
2388
+ }
3797
2389
  ),
3798
- isPrimitive ? /* @__PURE__ */ jsxDEV17(StoreEditor, { token: node }, void 0, false, {
3799
- fileName: "../src/react-devtools/StateIndex.tsx",
3800
- lineNumber: 60,
3801
- columnNumber: 20
3802
- }, this) : null
3803
- ] }, void 0, true, {
3804
- fileName: "../src/react-devtools/StateIndex.tsx",
3805
- lineNumber: 47,
3806
- columnNumber: 4
3807
- }, this),
3808
- isOpen && !isPrimitive ? /* @__PURE__ */ jsxDEV17("main", { children: /* @__PURE__ */ jsxDEV17(StoreEditor, { token: node }, void 0, false, {
3809
- fileName: "../src/react-devtools/StateIndex.tsx",
3810
- lineNumber: 64,
3811
- columnNumber: 6
3812
- }, this) }, void 0, false, {
3813
- fileName: "../src/react-devtools/StateIndex.tsx",
3814
- lineNumber: 63,
3815
- columnNumber: 5
3816
- }, this) : null
3817
- ] }, void 0, true, {
3818
- fileName: "../src/react-devtools/StateIndex.tsx",
3819
- lineNumber: 46,
3820
- columnNumber: 3
3821
- }, this);
2390
+ isPrimitive ? /* @__PURE__ */ jsx(StoreEditor, { token: node }) : null
2391
+ ] }),
2392
+ isOpen && !isPrimitive ? /* @__PURE__ */ jsx("main", { children: /* @__PURE__ */ jsx(StoreEditor, { token: node }) }) : null
2393
+ ] });
3822
2394
  };
3823
2395
  var StateIndexTreeNode = ({ node, isOpenState }) => {
3824
- const [isOpen, setIsOpen] = useIO2(isOpenState);
2396
+ const setIsOpen = useI(isOpenState);
2397
+ const isOpen = useO(isOpenState);
3825
2398
  Object.entries(node.familyMembers).forEach(([key, childNode]) => {
3826
2399
  findViewIsOpenState(key);
3827
2400
  findStateTypeState(childNode);
3828
2401
  });
3829
- return /* @__PURE__ */ jsxDEV17(Fragment4, { children: [
3830
- /* @__PURE__ */ jsxDEV17("header", { children: [
3831
- /* @__PURE__ */ jsxDEV17(button.OpenClose, { isOpen, setIsOpen }, void 0, false, {
3832
- fileName: "../src/react-devtools/StateIndex.tsx",
3833
- lineNumber: 84,
3834
- columnNumber: 5
3835
- }, this),
3836
- /* @__PURE__ */ jsxDEV17("label", { children: [
3837
- /* @__PURE__ */ jsxDEV17("h2", { children: node.key }, void 0, false, {
3838
- fileName: "../src/react-devtools/StateIndex.tsx",
3839
- lineNumber: 86,
3840
- columnNumber: 6
3841
- }, this),
3842
- /* @__PURE__ */ jsxDEV17("span", { className: "type detail", children: " (family)" }, void 0, false, {
3843
- fileName: "../src/react-devtools/StateIndex.tsx",
3844
- lineNumber: 87,
3845
- columnNumber: 6
3846
- }, this)
3847
- ] }, void 0, true, {
3848
- fileName: "../src/react-devtools/StateIndex.tsx",
3849
- lineNumber: 85,
3850
- columnNumber: 5
3851
- }, this)
3852
- ] }, void 0, true, {
3853
- fileName: "../src/react-devtools/StateIndex.tsx",
3854
- lineNumber: 83,
3855
- columnNumber: 4
3856
- }, this),
3857
- isOpen ? Object.entries(node.familyMembers).map(([key, childNode]) => /* @__PURE__ */ jsxDEV17(
2402
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
2403
+ /* @__PURE__ */ jsxs("header", { children: [
2404
+ /* @__PURE__ */ jsx(button.OpenClose, { isOpen, setIsOpen }),
2405
+ /* @__PURE__ */ jsxs("label", { children: [
2406
+ /* @__PURE__ */ jsx("h2", { children: node.key }),
2407
+ /* @__PURE__ */ jsx("span", { className: "type detail", children: " (family)" })
2408
+ ] })
2409
+ ] }),
2410
+ isOpen ? Object.entries(node.familyMembers).map(([key, childNode]) => /* @__PURE__ */ jsx(
3858
2411
  StateIndexNode,
3859
2412
  {
3860
2413
  node: childNode,
3861
2414
  isOpenState: findViewIsOpenState(childNode.key),
3862
2415
  typeState: findStateTypeState(childNode)
3863
2416
  },
3864
- key,
3865
- false,
3866
- {
3867
- fileName: "../src/react-devtools/StateIndex.tsx",
3868
- lineNumber: 92,
3869
- columnNumber: 7
3870
- },
3871
- this
2417
+ key
3872
2418
  )) : null
3873
- ] }, void 0, true, {
3874
- fileName: "../src/react-devtools/StateIndex.tsx",
3875
- lineNumber: 82,
3876
- columnNumber: 3
3877
- }, this);
2419
+ ] });
3878
2420
  };
3879
2421
  var StateIndexNode = ({ node, isOpenState, typeState }) => {
3880
2422
  if (node.key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)) {
3881
2423
  return null;
3882
2424
  }
3883
- return /* @__PURE__ */ jsxDEV17("section", { className: "node state", children: `type` in node ? /* @__PURE__ */ jsxDEV17(
2425
+ return /* @__PURE__ */ jsx("section", { className: "node state", children: `type` in node ? /* @__PURE__ */ jsx(
3884
2426
  StateIndexLeafNode,
3885
2427
  {
3886
2428
  node,
3887
2429
  isOpenState,
3888
2430
  typeState
3889
- },
3890
- void 0,
3891
- false,
3892
- {
3893
- fileName: "../src/react-devtools/StateIndex.tsx",
3894
- lineNumber: 117,
3895
- columnNumber: 5
3896
- },
3897
- this
3898
- ) : /* @__PURE__ */ jsxDEV17(StateIndexTreeNode, { node, isOpenState }, void 0, false, {
3899
- fileName: "../src/react-devtools/StateIndex.tsx",
3900
- lineNumber: 123,
3901
- columnNumber: 5
3902
- }, this) }, void 0, false, {
3903
- fileName: "../src/react-devtools/StateIndex.tsx",
3904
- lineNumber: 115,
3905
- columnNumber: 3
3906
- }, this);
2431
+ }
2432
+ ) : /* @__PURE__ */ jsx(StateIndexTreeNode, { node, isOpenState }) });
3907
2433
  };
3908
2434
  var StateIndex = ({ tokenIndex }) => {
3909
- const tokenIds = useO2(tokenIndex);
3910
- return /* @__PURE__ */ jsxDEV17("article", { className: "index state_index", children: Object.entries(tokenIds).filter(([key]) => !key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)).sort().map(([key, node]) => {
3911
- return /* @__PURE__ */ jsxDEV17(
2435
+ const tokenIds = useO(tokenIndex);
2436
+ return /* @__PURE__ */ jsx("article", { className: "index state_index", children: Object.entries(tokenIds).filter(([key]) => !key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)).sort().map(([key, node]) => {
2437
+ return /* @__PURE__ */ jsx(
3912
2438
  StateIndexNode,
3913
2439
  {
3914
2440
  node,
3915
2441
  isOpenState: findViewIsOpenState(node.key),
3916
2442
  typeState: findStateTypeState(node)
3917
2443
  },
3918
- key,
3919
- false,
3920
- {
3921
- fileName: "../src/react-devtools/StateIndex.tsx",
3922
- lineNumber: 146,
3923
- columnNumber: 7
3924
- },
3925
- this
2444
+ key
3926
2445
  );
3927
- }) }, void 0, false, {
3928
- fileName: "../src/react-devtools/StateIndex.tsx",
3929
- lineNumber: 140,
3930
- columnNumber: 3
3931
- }, this);
2446
+ }) });
3932
2447
  };
3933
-
3934
- // ../src/react-devtools/TimelineIndex.tsx
3935
- import {
3936
- undo,
3937
- redo
3938
- } from "atom.io";
3939
- import { useIO as useIO3, useO as useO3 } from "atom.io/react";
3940
- import { Fragment as Fragment6 } from "react";
3941
-
3942
- // ../src/react-devtools/Updates.tsx
3943
- import { Fragment as Fragment5, jsxDEV as jsxDEV18 } from "react/jsx-dev-runtime";
3944
2448
  var AtomUpdateFC = ({ atomUpdate }) => {
3945
- return /* @__PURE__ */ jsxDEV18(
2449
+ return /* @__PURE__ */ jsxs(
3946
2450
  "article",
3947
2451
  {
3948
2452
  className: "node atom_update",
3949
2453
  onClick: () => console.log(atomUpdate),
3950
2454
  onKeyUp: () => console.log(atomUpdate),
3951
2455
  children: [
3952
- /* @__PURE__ */ jsxDEV18("span", { className: "detail", children: [
2456
+ /* @__PURE__ */ jsxs("span", { className: "detail", children: [
3953
2457
  atomUpdate.key,
3954
2458
  ": "
3955
- ] }, void 0, true, {
3956
- fileName: "../src/react-devtools/Updates.tsx",
3957
- lineNumber: 20,
3958
- columnNumber: 4
3959
- }, this),
3960
- /* @__PURE__ */ jsxDEV18("span", { children: /* @__PURE__ */ jsxDEV18("span", { className: "summary", children: prettyJson.diff(atomUpdate.oldValue, atomUpdate.newValue).summary }, void 0, false, {
3961
- fileName: "../src/react-devtools/Updates.tsx",
3962
- lineNumber: 22,
3963
- columnNumber: 5
3964
- }, this) }, void 0, false, {
3965
- fileName: "../src/react-devtools/Updates.tsx",
3966
- lineNumber: 21,
3967
- columnNumber: 4
3968
- }, this)
2459
+ ] }),
2460
+ /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx("span", { className: "summary", children: prettyJson.diff(atomUpdate.oldValue, atomUpdate.newValue).summary }) })
3969
2461
  ]
3970
2462
  },
3971
- atomUpdate.key,
3972
- true,
3973
- {
3974
- fileName: "../src/react-devtools/Updates.tsx",
3975
- lineNumber: 14,
3976
- columnNumber: 3
3977
- },
3978
- this
2463
+ atomUpdate.key
3979
2464
  );
3980
2465
  };
3981
2466
  var TransactionUpdateFC = ({ serialNumber, transactionUpdate }) => {
3982
- return /* @__PURE__ */ jsxDEV18("article", { className: "node transaction_update", children: [
3983
- /* @__PURE__ */ jsxDEV18("header", { children: /* @__PURE__ */ jsxDEV18("h4", { children: serialNumber }, void 0, false, {
3984
- fileName: "../src/react-devtools/Updates.tsx",
3985
- lineNumber: 37,
3986
- columnNumber: 5
3987
- }, this) }, void 0, false, {
3988
- fileName: "../src/react-devtools/Updates.tsx",
3989
- lineNumber: 36,
3990
- columnNumber: 4
3991
- }, this),
3992
- /* @__PURE__ */ jsxDEV18("main", { children: [
3993
- /* @__PURE__ */ jsxDEV18("section", { className: "transaction_params", children: [
3994
- /* @__PURE__ */ jsxDEV18("span", { className: "detail", children: "params: " }, void 0, false, {
3995
- fileName: "../src/react-devtools/Updates.tsx",
3996
- lineNumber: 41,
3997
- columnNumber: 6
3998
- }, this),
2467
+ return /* @__PURE__ */ jsxs("article", { className: "node transaction_update", children: [
2468
+ /* @__PURE__ */ jsx("header", { children: /* @__PURE__ */ jsx("h4", { children: serialNumber }) }),
2469
+ /* @__PURE__ */ jsxs("main", { children: [
2470
+ /* @__PURE__ */ jsxs("section", { className: "transaction_params", children: [
2471
+ /* @__PURE__ */ jsx("span", { className: "detail", children: "params: " }),
3999
2472
  transactionUpdate.params.map((param, index) => {
4000
- return /* @__PURE__ */ jsxDEV18(
2473
+ return /* @__PURE__ */ jsxs(
4001
2474
  "article",
4002
2475
  {
4003
2476
  className: "node transaction_param",
4004
2477
  onClick: () => console.log(transactionUpdate),
4005
2478
  onKeyUp: () => console.log(transactionUpdate),
4006
2479
  children: [
4007
- /* @__PURE__ */ jsxDEV18("span", { className: "detail", children: [
2480
+ /* @__PURE__ */ jsxs("span", { className: "detail", children: [
4008
2481
  discoverType(param),
4009
2482
  ": "
4010
- ] }, void 0, true, {
4011
- fileName: "../src/react-devtools/Updates.tsx",
4012
- lineNumber: 50,
4013
- columnNumber: 9
4014
- }, this),
4015
- /* @__PURE__ */ jsxDEV18("span", { className: "summary", children: typeof param === `object` && `type` in param && `target` in param ? /* @__PURE__ */ jsxDEV18(Fragment5, { children: JSON.stringify(param.type) }, void 0, false, {
4016
- fileName: "../src/react-devtools/Updates.tsx",
4017
- lineNumber: 55,
4018
- columnNumber: 11
4019
- }, this) : /* @__PURE__ */ jsxDEV18(Fragment5, { children: JSON.stringify(param) }, void 0, false, {
4020
- fileName: "../src/react-devtools/Updates.tsx",
4021
- lineNumber: 57,
4022
- columnNumber: 11
4023
- }, this) }, void 0, false, {
4024
- fileName: "../src/react-devtools/Updates.tsx",
4025
- lineNumber: 51,
4026
- columnNumber: 9
4027
- }, this)
2483
+ ] }),
2484
+ /* @__PURE__ */ jsx("span", { className: "summary", children: typeof param === `object` && param !== null && `type` in param && `target` in param ? /* @__PURE__ */ jsx(Fragment, { children: JSON.stringify(param.type) }) : /* @__PURE__ */ jsx(Fragment, { children: JSON.stringify(param) }) })
4028
2485
  ]
4029
2486
  },
4030
- `param` + index,
4031
- true,
4032
- {
4033
- fileName: "../src/react-devtools/Updates.tsx",
4034
- lineNumber: 44,
4035
- columnNumber: 8
4036
- },
4037
- this
2487
+ `param` + index
4038
2488
  );
4039
2489
  })
4040
- ] }, void 0, true, {
4041
- fileName: "../src/react-devtools/Updates.tsx",
4042
- lineNumber: 40,
4043
- columnNumber: 5
4044
- }, this),
4045
- /* @__PURE__ */ jsxDEV18("section", { className: "node transaction_output", children: [
4046
- /* @__PURE__ */ jsxDEV18("span", { className: "detail", children: "output: " }, void 0, false, {
4047
- fileName: "../src/react-devtools/Updates.tsx",
4048
- lineNumber: 65,
4049
- columnNumber: 6
4050
- }, this),
4051
- /* @__PURE__ */ jsxDEV18("span", { className: "detail", children: discoverType(transactionUpdate.output) }, void 0, false, {
4052
- fileName: "../src/react-devtools/Updates.tsx",
4053
- lineNumber: 66,
4054
- columnNumber: 6
4055
- }, this),
4056
- transactionUpdate.output ? /* @__PURE__ */ jsxDEV18("span", { className: "summary", children: [
2490
+ ] }),
2491
+ /* @__PURE__ */ jsxs("section", { className: "node transaction_output", children: [
2492
+ /* @__PURE__ */ jsx("span", { className: "detail", children: "output: " }),
2493
+ /* @__PURE__ */ jsx("span", { className: "detail", children: discoverType(transactionUpdate.output) }),
2494
+ transactionUpdate.output ? /* @__PURE__ */ jsxs("span", { className: "summary", children: [
4057
2495
  ": ",
4058
2496
  JSON.stringify(transactionUpdate.output)
4059
- ] }, void 0, true, {
4060
- fileName: "../src/react-devtools/Updates.tsx",
4061
- lineNumber: 70,
4062
- columnNumber: 7
4063
- }, this) : null
4064
- ] }, void 0, true, {
4065
- fileName: "../src/react-devtools/Updates.tsx",
4066
- lineNumber: 64,
4067
- columnNumber: 5
4068
- }, this),
4069
- /* @__PURE__ */ jsxDEV18("section", { className: "transaction_impact", children: [
4070
- /* @__PURE__ */ jsxDEV18("span", { className: "detail", children: "impact: " }, void 0, false, {
4071
- fileName: "../src/react-devtools/Updates.tsx",
4072
- lineNumber: 76,
4073
- columnNumber: 6
4074
- }, this),
2497
+ ] }) : null
2498
+ ] }),
2499
+ /* @__PURE__ */ jsxs("section", { className: "transaction_impact", children: [
2500
+ /* @__PURE__ */ jsx("span", { className: "detail", children: "impact: " }),
4075
2501
  transactionUpdate.atomUpdates.filter((token) => !token.key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)).map((atomUpdate, index) => {
4076
- return /* @__PURE__ */ jsxDEV18(
2502
+ return /* @__PURE__ */ jsx(
4077
2503
  article.AtomUpdate,
4078
2504
  {
4079
2505
  serialNumber: index,
4080
2506
  atomUpdate
4081
2507
  },
4082
- `${transactionUpdate.key}:${index}:${atomUpdate.key}`,
4083
- false,
4084
- {
4085
- fileName: "../src/react-devtools/Updates.tsx",
4086
- lineNumber: 81,
4087
- columnNumber: 9
4088
- },
4089
- this
2508
+ `${transactionUpdate.key}:${index}:${atomUpdate.key}`
4090
2509
  );
4091
2510
  })
4092
- ] }, void 0, true, {
4093
- fileName: "../src/react-devtools/Updates.tsx",
4094
- lineNumber: 75,
4095
- columnNumber: 5
4096
- }, this)
4097
- ] }, void 0, true, {
4098
- fileName: "../src/react-devtools/Updates.tsx",
4099
- lineNumber: 39,
4100
- columnNumber: 4
4101
- }, this)
4102
- ] }, void 0, true, {
4103
- fileName: "../src/react-devtools/Updates.tsx",
4104
- lineNumber: 35,
4105
- columnNumber: 3
4106
- }, this);
2511
+ ] })
2512
+ ] })
2513
+ ] });
4107
2514
  };
4108
2515
  var TimelineUpdateFC = ({ timelineUpdate }) => {
4109
- return /* @__PURE__ */ jsxDEV18("article", { className: "node timeline_update", children: [
4110
- /* @__PURE__ */ jsxDEV18("header", { children: /* @__PURE__ */ jsxDEV18("h4", { children: [
2516
+ return /* @__PURE__ */ jsxs("article", { className: "node timeline_update", children: [
2517
+ /* @__PURE__ */ jsx("header", { children: /* @__PURE__ */ jsxs("h4", { children: [
4111
2518
  timelineUpdate.timestamp,
4112
2519
  ": ",
4113
2520
  timelineUpdate.type,
4114
2521
  " (",
4115
2522
  timelineUpdate.key,
4116
2523
  ")"
4117
- ] }, void 0, true, {
4118
- fileName: "../src/react-devtools/Updates.tsx",
4119
- lineNumber: 100,
4120
- columnNumber: 5
4121
- }, this) }, void 0, false, {
4122
- fileName: "../src/react-devtools/Updates.tsx",
4123
- lineNumber: 99,
4124
- columnNumber: 4
4125
- }, this),
4126
- /* @__PURE__ */ jsxDEV18("main", { children: timelineUpdate.type === `transaction_update` ? timelineUpdate.atomUpdates.filter((token) => !token.key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)).map((atomUpdate, index) => {
4127
- return /* @__PURE__ */ jsxDEV18(
2524
+ ] }) }),
2525
+ /* @__PURE__ */ jsx("main", { children: timelineUpdate.type === `transaction_update` ? timelineUpdate.atomUpdates.filter((token) => !token.key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)).map((atomUpdate, index) => {
2526
+ return /* @__PURE__ */ jsx(
4128
2527
  article.AtomUpdate,
4129
2528
  {
4130
2529
  serialNumber: index,
4131
2530
  atomUpdate
4132
2531
  },
4133
- `${timelineUpdate.key}:${index}:${atomUpdate.key}`,
4134
- false,
4135
- {
4136
- fileName: "../src/react-devtools/Updates.tsx",
4137
- lineNumber: 111,
4138
- columnNumber: 9
4139
- },
4140
- this
2532
+ `${timelineUpdate.key}:${index}:${atomUpdate.key}`
4141
2533
  );
4142
2534
  }) : timelineUpdate.type === `selector_update` ? timelineUpdate.atomUpdates.filter((token) => !token.key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)).map((atomUpdate, index) => {
4143
- return /* @__PURE__ */ jsxDEV18(
2535
+ return /* @__PURE__ */ jsx(
4144
2536
  article.AtomUpdate,
4145
2537
  {
4146
2538
  serialNumber: index,
4147
2539
  atomUpdate
4148
2540
  },
4149
- `${timelineUpdate.key}:${index}:${atomUpdate.key}`,
4150
- false,
4151
- {
4152
- fileName: "../src/react-devtools/Updates.tsx",
4153
- lineNumber: 123,
4154
- columnNumber: 9
4155
- },
4156
- this
2541
+ `${timelineUpdate.key}:${index}:${atomUpdate.key}`
4157
2542
  );
4158
- }) : timelineUpdate.type === `atom_update` ? /* @__PURE__ */ jsxDEV18(
2543
+ }) : timelineUpdate.type === `atom_update` ? /* @__PURE__ */ jsx(
4159
2544
  article.AtomUpdate,
4160
2545
  {
4161
2546
  serialNumber: timelineUpdate.timestamp,
4162
2547
  atomUpdate: timelineUpdate
4163
- },
4164
- void 0,
4165
- false,
4166
- {
4167
- fileName: "../src/react-devtools/Updates.tsx",
4168
- lineNumber: 131,
4169
- columnNumber: 6
4170
- },
4171
- this
4172
- ) : null }, void 0, false, {
4173
- fileName: "../src/react-devtools/Updates.tsx",
4174
- lineNumber: 105,
4175
- columnNumber: 4
4176
- }, this)
4177
- ] }, void 0, true, {
4178
- fileName: "../src/react-devtools/Updates.tsx",
4179
- lineNumber: 98,
4180
- columnNumber: 3
4181
- }, this);
2548
+ }
2549
+ ) : null })
2550
+ ] });
4182
2551
  };
4183
2552
  var article = {
4184
2553
  AtomUpdate: AtomUpdateFC,
4185
2554
  TransactionUpdate: TransactionUpdateFC,
4186
2555
  TimelineUpdate: TimelineUpdateFC
4187
2556
  };
4188
-
4189
- // ../src/react-devtools/TimelineIndex.tsx
4190
- import { jsxDEV as jsxDEV19 } from "react/jsx-dev-runtime";
4191
2557
  var YouAreHere = () => {
4192
- return /* @__PURE__ */ jsxDEV19("span", { className: "you_are_here", children: "you are here" }, void 0, false, {
4193
- fileName: "../src/react-devtools/TimelineIndex.tsx",
4194
- lineNumber: 17,
4195
- columnNumber: 9
4196
- }, this);
2558
+ return /* @__PURE__ */ jsx("span", { className: "you_are_here", children: "you are here" });
4197
2559
  };
4198
2560
  var TimelineLog = ({ token, isOpenState, timelineState }) => {
4199
- const timeline2 = useO3(timelineState);
4200
- const [isOpen, setIsOpen] = useIO3(isOpenState);
4201
- return /* @__PURE__ */ jsxDEV19("section", { className: "node timeline_log", children: [
4202
- /* @__PURE__ */ jsxDEV19("header", { children: [
4203
- /* @__PURE__ */ jsxDEV19(button.OpenClose, { isOpen, setIsOpen }, void 0, false, {
4204
- fileName: "../src/react-devtools/TimelineIndex.tsx",
4205
- lineNumber: 31,
4206
- columnNumber: 5
4207
- }, this),
4208
- /* @__PURE__ */ jsxDEV19("label", { children: [
4209
- /* @__PURE__ */ jsxDEV19("h2", { children: token.key }, void 0, false, {
4210
- fileName: "../src/react-devtools/TimelineIndex.tsx",
4211
- lineNumber: 33,
4212
- columnNumber: 6
4213
- }, this),
4214
- /* @__PURE__ */ jsxDEV19("span", { className: "detail length", children: [
2561
+ const timeline = useO(timelineState);
2562
+ const isOpen = useO(isOpenState);
2563
+ const setIsOpen = useI(isOpenState);
2564
+ return /* @__PURE__ */ jsxs("section", { className: "node timeline_log", children: [
2565
+ /* @__PURE__ */ jsxs("header", { children: [
2566
+ /* @__PURE__ */ jsx(button.OpenClose, { isOpen, setIsOpen }),
2567
+ /* @__PURE__ */ jsxs("label", { children: [
2568
+ /* @__PURE__ */ jsx("h2", { children: token.key }),
2569
+ /* @__PURE__ */ jsxs("span", { className: "detail length", children: [
4215
2570
  "(",
4216
- timeline2.at,
2571
+ timeline.at,
4217
2572
  "/",
4218
- timeline2.history.length,
2573
+ timeline.history.length,
4219
2574
  ")"
4220
- ] }, void 0, true, {
4221
- fileName: "../src/react-devtools/TimelineIndex.tsx",
4222
- lineNumber: 34,
4223
- columnNumber: 6
4224
- }, this),
4225
- /* @__PURE__ */ jsxDEV19("span", { className: "gap" }, void 0, false, {
4226
- fileName: "../src/react-devtools/TimelineIndex.tsx",
4227
- lineNumber: 37,
4228
- columnNumber: 6
4229
- }, this),
4230
- /* @__PURE__ */ jsxDEV19("nav", { children: [
4231
- /* @__PURE__ */ jsxDEV19(
2575
+ ] }),
2576
+ /* @__PURE__ */ jsx("span", { className: "gap" }),
2577
+ /* @__PURE__ */ jsxs("nav", { children: [
2578
+ /* @__PURE__ */ jsx(
4232
2579
  "button",
4233
2580
  {
4234
2581
  type: "button",
4235
2582
  onClick: () => undo(token),
4236
- disabled: timeline2.at === 0,
2583
+ disabled: timeline.at === 0,
4237
2584
  children: "undo"
4238
- },
4239
- void 0,
4240
- false,
4241
- {
4242
- fileName: "../src/react-devtools/TimelineIndex.tsx",
4243
- lineNumber: 39,
4244
- columnNumber: 7
4245
- },
4246
- this
2585
+ }
4247
2586
  ),
4248
- /* @__PURE__ */ jsxDEV19(
2587
+ /* @__PURE__ */ jsx(
4249
2588
  "button",
4250
2589
  {
4251
2590
  type: "button",
4252
2591
  onClick: () => redo(token),
4253
- disabled: timeline2.at === timeline2.history.length,
2592
+ disabled: timeline.at === timeline.history.length,
4254
2593
  children: "redo"
4255
- },
4256
- void 0,
4257
- false,
4258
- {
4259
- fileName: "../src/react-devtools/TimelineIndex.tsx",
4260
- lineNumber: 46,
4261
- columnNumber: 7
4262
- },
4263
- this
2594
+ }
4264
2595
  )
4265
- ] }, void 0, true, {
4266
- fileName: "../src/react-devtools/TimelineIndex.tsx",
4267
- lineNumber: 38,
4268
- columnNumber: 6
4269
- }, this)
4270
- ] }, void 0, true, {
4271
- fileName: "../src/react-devtools/TimelineIndex.tsx",
4272
- lineNumber: 32,
4273
- columnNumber: 5
4274
- }, this)
4275
- ] }, void 0, true, {
4276
- fileName: "../src/react-devtools/TimelineIndex.tsx",
4277
- lineNumber: 30,
4278
- columnNumber: 4
4279
- }, this),
4280
- isOpen ? /* @__PURE__ */ jsxDEV19("main", { children: timeline2.history.map((update, index) => /* @__PURE__ */ jsxDEV19(Fragment6, { children: [
4281
- index === timeline2.at ? /* @__PURE__ */ jsxDEV19(YouAreHere, {}, void 0, false, {
4282
- fileName: "../src/react-devtools/TimelineIndex.tsx",
4283
- lineNumber: 60,
4284
- columnNumber: 33
4285
- }, this) : null,
4286
- /* @__PURE__ */ jsxDEV19(article.TimelineUpdate, { timelineUpdate: update }, void 0, false, {
4287
- fileName: "../src/react-devtools/TimelineIndex.tsx",
4288
- lineNumber: 61,
4289
- columnNumber: 8
4290
- }, this),
4291
- index === timeline2.history.length - 1 && timeline2.at === timeline2.history.length ? /* @__PURE__ */ jsxDEV19(YouAreHere, {}, void 0, false, {
4292
- fileName: "../src/react-devtools/TimelineIndex.tsx",
4293
- lineNumber: 64,
4294
- columnNumber: 9
4295
- }, this) : null
4296
- ] }, update.key + index + timeline2.at, true, {
4297
- fileName: "../src/react-devtools/TimelineIndex.tsx",
4298
- lineNumber: 59,
4299
- columnNumber: 7
4300
- }, this)) }, void 0, false, {
4301
- fileName: "../src/react-devtools/TimelineIndex.tsx",
4302
- lineNumber: 57,
4303
- columnNumber: 5
4304
- }, this) : null
4305
- ] }, void 0, true, {
4306
- fileName: "../src/react-devtools/TimelineIndex.tsx",
4307
- lineNumber: 29,
4308
- columnNumber: 3
4309
- }, this);
2596
+ ] })
2597
+ ] })
2598
+ ] }),
2599
+ isOpen ? /* @__PURE__ */ jsx("main", { children: timeline.history.map((update, index) => /* @__PURE__ */ jsxs(Fragment$1, { children: [
2600
+ index === timeline.at ? /* @__PURE__ */ jsx(YouAreHere, {}) : null,
2601
+ /* @__PURE__ */ jsx(article.TimelineUpdate, { timelineUpdate: update }),
2602
+ index === timeline.history.length - 1 && timeline.at === timeline.history.length ? /* @__PURE__ */ jsx(YouAreHere, {}) : null
2603
+ ] }, update.key + index + timeline.at)) }) : null
2604
+ ] });
4310
2605
  };
4311
2606
  var TimelineIndex = () => {
4312
- const tokenIds = useO3(timelineIndex);
4313
- return /* @__PURE__ */ jsxDEV19("article", { className: "index timeline_index", children: tokenIds.filter((token) => !token.key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)).map((token) => {
4314
- return /* @__PURE__ */ jsxDEV19(
2607
+ const tokenIds = useO(timelineIndex);
2608
+ return /* @__PURE__ */ jsx("article", { className: "index timeline_index", children: tokenIds.filter((token) => !token.key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)).map((token) => {
2609
+ return /* @__PURE__ */ jsx(
4315
2610
  TimelineLog,
4316
2611
  {
4317
2612
  token,
4318
2613
  isOpenState: findViewIsOpenState(token.key),
4319
2614
  timelineState: findTimelineState(token.key)
4320
2615
  },
4321
- token.key,
4322
- false,
4323
- {
4324
- fileName: "../src/react-devtools/TimelineIndex.tsx",
4325
- lineNumber: 82,
4326
- columnNumber: 7
4327
- },
4328
- this
2616
+ token.key
4329
2617
  );
4330
- }) }, void 0, false, {
4331
- fileName: "../src/react-devtools/TimelineIndex.tsx",
4332
- lineNumber: 77,
4333
- columnNumber: 3
4334
- }, this);
2618
+ }) });
4335
2619
  };
4336
-
4337
- // ../src/react-devtools/TransactionIndex.tsx
4338
- import { useIO as useIO4, useO as useO4 } from "atom.io/react";
4339
- import { jsxDEV as jsxDEV20 } from "react/jsx-dev-runtime";
4340
2620
  var TransactionLog = ({ token, isOpenState, logState }) => {
4341
- const log = useO4(logState);
4342
- const [isOpen, setIsOpen] = useIO4(isOpenState);
4343
- return /* @__PURE__ */ jsxDEV20("section", { className: "node transaction_log", children: [
4344
- /* @__PURE__ */ jsxDEV20("header", { children: [
4345
- /* @__PURE__ */ jsxDEV20(button.OpenClose, { isOpen, setIsOpen }, void 0, false, {
4346
- fileName: "../src/react-devtools/TransactionIndex.tsx",
4347
- lineNumber: 31,
4348
- columnNumber: 5
4349
- }, this),
4350
- /* @__PURE__ */ jsxDEV20("label", { children: [
4351
- /* @__PURE__ */ jsxDEV20("h2", { children: token.key }, void 0, false, {
4352
- fileName: "../src/react-devtools/TransactionIndex.tsx",
4353
- lineNumber: 33,
4354
- columnNumber: 6
4355
- }, this),
4356
- /* @__PURE__ */ jsxDEV20("span", { className: "detail length", children: [
2621
+ const log = useO(logState);
2622
+ const isOpen = useO(isOpenState);
2623
+ const setIsOpen = useI(isOpenState);
2624
+ return /* @__PURE__ */ jsxs("section", { className: "node transaction_log", children: [
2625
+ /* @__PURE__ */ jsxs("header", { children: [
2626
+ /* @__PURE__ */ jsx(button.OpenClose, { isOpen, setIsOpen }),
2627
+ /* @__PURE__ */ jsxs("label", { children: [
2628
+ /* @__PURE__ */ jsx("h2", { children: token.key }),
2629
+ /* @__PURE__ */ jsxs("span", { className: "detail length", children: [
4357
2630
  "(",
4358
2631
  log.length,
4359
2632
  ")"
4360
- ] }, void 0, true, {
4361
- fileName: "../src/react-devtools/TransactionIndex.tsx",
4362
- lineNumber: 34,
4363
- columnNumber: 6
4364
- }, this)
4365
- ] }, void 0, true, {
4366
- fileName: "../src/react-devtools/TransactionIndex.tsx",
4367
- lineNumber: 32,
4368
- columnNumber: 5
4369
- }, this)
4370
- ] }, void 0, true, {
4371
- fileName: "../src/react-devtools/TransactionIndex.tsx",
4372
- lineNumber: 30,
4373
- columnNumber: 4
4374
- }, this),
4375
- isOpen ? /* @__PURE__ */ jsxDEV20("main", { children: log.map((update, index) => /* @__PURE__ */ jsxDEV20(
2633
+ ] })
2634
+ ] })
2635
+ ] }),
2636
+ isOpen ? /* @__PURE__ */ jsx("main", { children: log.map((update, index) => /* @__PURE__ */ jsx(
4376
2637
  article.TransactionUpdate,
4377
2638
  {
4378
2639
  serialNumber: index,
4379
2640
  transactionUpdate: update
4380
2641
  },
4381
- update.key + index,
4382
- false,
4383
- {
4384
- fileName: "../src/react-devtools/TransactionIndex.tsx",
4385
- lineNumber: 40,
4386
- columnNumber: 7
4387
- },
4388
- this
4389
- )) }, void 0, false, {
4390
- fileName: "../src/react-devtools/TransactionIndex.tsx",
4391
- lineNumber: 38,
4392
- columnNumber: 5
4393
- }, this) : null
4394
- ] }, void 0, true, {
4395
- fileName: "../src/react-devtools/TransactionIndex.tsx",
4396
- lineNumber: 29,
4397
- columnNumber: 3
4398
- }, this);
2642
+ update.key + index
2643
+ )) }) : null
2644
+ ] });
4399
2645
  };
4400
2646
  var TransactionIndex = () => {
4401
- const tokenIds = useO4(transactionIndex);
4402
- return /* @__PURE__ */ jsxDEV20("article", { className: "index transaction_index", children: tokenIds.filter((token) => !token.key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)).map((token) => {
4403
- return /* @__PURE__ */ jsxDEV20(
2647
+ const tokenIds = useO(transactionIndex);
2648
+ return /* @__PURE__ */ jsx("article", { className: "index transaction_index", children: tokenIds.filter((token) => !token.key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)).map((token) => {
2649
+ return /* @__PURE__ */ jsx(
4404
2650
  TransactionLog,
4405
2651
  {
4406
2652
  token,
4407
2653
  isOpenState: findViewIsOpenState(token.key),
4408
2654
  logState: findTransactionLogState(token.key)
4409
2655
  },
4410
- token.key,
4411
- false,
4412
- {
4413
- fileName: "../src/react-devtools/TransactionIndex.tsx",
4414
- lineNumber: 60,
4415
- columnNumber: 7
4416
- },
4417
- this
2656
+ token.key
4418
2657
  );
4419
- }) }, void 0, false, {
4420
- fileName: "../src/react-devtools/TransactionIndex.tsx",
4421
- lineNumber: 55,
4422
- columnNumber: 3
4423
- }, this);
2658
+ }) });
4424
2659
  };
4425
-
4426
- // ../src/react-devtools/AtomIODevtools.tsx
4427
- import { Fragment as Fragment7, jsxDEV as jsxDEV21 } from "react/jsx-dev-runtime";
4428
2660
  var AtomIODevtools = () => {
4429
- const constraintsRef = useRef4(null);
4430
- const [devtoolsAreOpen, setDevtoolsAreOpen] = useIO5(devtoolsAreOpenState);
4431
- const [devtoolsView, setDevtoolsView] = useIO5(devtoolsViewSelectionState);
4432
- const devtoolsViewOptions = useO5(devtoolsViewOptionsState);
4433
- const mouseHasMoved = useRef4(false);
4434
- return /* @__PURE__ */ jsxDEV21(Fragment7, { children: [
4435
- /* @__PURE__ */ jsxDEV21(
2661
+ const constraintsRef = useRef(null);
2662
+ const setDevtoolsAreOpen = useI(devtoolsAreOpenState);
2663
+ const devtoolsAreOpen = useO(devtoolsAreOpenState);
2664
+ const setDevtoolsView = useI(devtoolsViewSelectionState);
2665
+ const devtoolsView = useO(devtoolsViewSelectionState);
2666
+ const devtoolsViewOptions = useO(devtoolsViewOptionsState);
2667
+ const mouseHasMoved = useRef(false);
2668
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
2669
+ /* @__PURE__ */ jsx(
4436
2670
  motion.span,
4437
2671
  {
4438
2672
  ref: constraintsRef,
@@ -4445,17 +2679,9 @@ var AtomIODevtools = () => {
4445
2679
  bottom: 0,
4446
2680
  pointerEvents: `none`
4447
2681
  }
4448
- },
4449
- void 0,
4450
- false,
4451
- {
4452
- fileName: "../src/react-devtools/AtomIODevtools.tsx",
4453
- lineNumber: 29,
4454
- columnNumber: 4
4455
- },
4456
- this
2682
+ }
4457
2683
  ),
4458
- /* @__PURE__ */ jsxDEV21(
2684
+ /* @__PURE__ */ jsxs(
4459
2685
  motion.main,
4460
2686
  {
4461
2687
  drag: true,
@@ -4469,14 +2695,10 @@ var AtomIODevtools = () => {
4469
2695
  maxWidth: 33
4470
2696
  },
4471
2697
  children: [
4472
- devtoolsAreOpen ? /* @__PURE__ */ jsxDEV21(Fragment7, { children: [
4473
- /* @__PURE__ */ jsxDEV21(motion.header, { children: [
4474
- /* @__PURE__ */ jsxDEV21("h1", { children: "atom.io" }, void 0, false, {
4475
- fileName: "../src/react-devtools/AtomIODevtools.tsx",
4476
- lineNumber: 60,
4477
- columnNumber: 8
4478
- }, this),
4479
- /* @__PURE__ */ jsxDEV21("nav", { children: devtoolsViewOptions.map((viewOption) => /* @__PURE__ */ jsxDEV21(
2698
+ devtoolsAreOpen ? /* @__PURE__ */ jsxs(Fragment, { children: [
2699
+ /* @__PURE__ */ jsxs(motion.header, { children: [
2700
+ /* @__PURE__ */ jsx("h1", { children: "atom.io" }),
2701
+ /* @__PURE__ */ jsx("nav", { children: devtoolsViewOptions.map((viewOption) => /* @__PURE__ */ jsx(
4480
2702
  "button",
4481
2703
  {
4482
2704
  type: "button",
@@ -4485,55 +2707,12 @@ var AtomIODevtools = () => {
4485
2707
  disabled: viewOption === devtoolsView,
4486
2708
  children: viewOption
4487
2709
  },
4488
- viewOption,
4489
- false,
4490
- {
4491
- fileName: "../src/react-devtools/AtomIODevtools.tsx",
4492
- lineNumber: 63,
4493
- columnNumber: 10
4494
- },
4495
- this
4496
- )) }, void 0, false, {
4497
- fileName: "../src/react-devtools/AtomIODevtools.tsx",
4498
- lineNumber: 61,
4499
- columnNumber: 8
4500
- }, this)
4501
- ] }, void 0, true, {
4502
- fileName: "../src/react-devtools/AtomIODevtools.tsx",
4503
- lineNumber: 59,
4504
- columnNumber: 7
4505
- }, this),
4506
- /* @__PURE__ */ jsxDEV21(motion.main, { children: /* @__PURE__ */ jsxDEV21(LayoutGroup, { children: devtoolsView === `atoms` ? /* @__PURE__ */ jsxDEV21(StateIndex, { tokenIndex: atomIndex }, void 0, false, {
4507
- fileName: "../src/react-devtools/AtomIODevtools.tsx",
4508
- lineNumber: 78,
4509
- columnNumber: 10
4510
- }, this) : devtoolsView === `selectors` ? /* @__PURE__ */ jsxDEV21(StateIndex, { tokenIndex: selectorIndex }, void 0, false, {
4511
- fileName: "../src/react-devtools/AtomIODevtools.tsx",
4512
- lineNumber: 80,
4513
- columnNumber: 10
4514
- }, this) : devtoolsView === `transactions` ? /* @__PURE__ */ jsxDEV21(TransactionIndex, {}, void 0, false, {
4515
- fileName: "../src/react-devtools/AtomIODevtools.tsx",
4516
- lineNumber: 82,
4517
- columnNumber: 10
4518
- }, this) : devtoolsView === `timelines` ? /* @__PURE__ */ jsxDEV21(TimelineIndex, {}, void 0, false, {
4519
- fileName: "../src/react-devtools/AtomIODevtools.tsx",
4520
- lineNumber: 84,
4521
- columnNumber: 10
4522
- }, this) : null }, void 0, false, {
4523
- fileName: "../src/react-devtools/AtomIODevtools.tsx",
4524
- lineNumber: 76,
4525
- columnNumber: 8
4526
- }, this) }, void 0, false, {
4527
- fileName: "../src/react-devtools/AtomIODevtools.tsx",
4528
- lineNumber: 75,
4529
- columnNumber: 7
4530
- }, this)
4531
- ] }, void 0, true, {
4532
- fileName: "../src/react-devtools/AtomIODevtools.tsx",
4533
- lineNumber: 58,
4534
- columnNumber: 6
4535
- }, this) : null,
4536
- /* @__PURE__ */ jsxDEV21("footer", { children: /* @__PURE__ */ jsxDEV21(
2710
+ viewOption
2711
+ )) })
2712
+ ] }),
2713
+ /* @__PURE__ */ jsx(motion.main, { children: /* @__PURE__ */ jsx(LayoutGroup, { children: devtoolsView === `atoms` ? /* @__PURE__ */ jsx(StateIndex, { tokenIndex: atomIndex }) : devtoolsView === `selectors` ? /* @__PURE__ */ jsx(StateIndex, { tokenIndex: selectorIndex }) : devtoolsView === `transactions` ? /* @__PURE__ */ jsx(TransactionIndex, {}) : devtoolsView === `timelines` ? /* @__PURE__ */ jsx(TimelineIndex, {}) : null }) })
2714
+ ] }) : null,
2715
+ /* @__PURE__ */ jsx("footer", { children: /* @__PURE__ */ jsx(
4537
2716
  "button",
4538
2717
  {
4539
2718
  type: "button",
@@ -4545,39 +2724,15 @@ var AtomIODevtools = () => {
4545
2724
  }
4546
2725
  },
4547
2726
  children: "\u{1F441}\u200D\u{1F5E8}"
4548
- },
4549
- void 0,
4550
- false,
4551
- {
4552
- fileName: "../src/react-devtools/AtomIODevtools.tsx",
4553
- lineNumber: 91,
4554
- columnNumber: 6
4555
- },
4556
- this
4557
- ) }, void 0, false, {
4558
- fileName: "../src/react-devtools/AtomIODevtools.tsx",
4559
- lineNumber: 90,
4560
- columnNumber: 5
4561
- }, this)
2727
+ }
2728
+ ) })
4562
2729
  ]
4563
- },
4564
- void 0,
4565
- true,
4566
- {
4567
- fileName: "../src/react-devtools/AtomIODevtools.tsx",
4568
- lineNumber: 41,
4569
- columnNumber: 4
4570
- },
4571
- this
2730
+ }
4572
2731
  )
4573
- ] }, void 0, true, {
4574
- fileName: "../src/react-devtools/AtomIODevtools.tsx",
4575
- lineNumber: 28,
4576
- columnNumber: 3
4577
- }, this);
2732
+ ] });
4578
2733
  };
4579
2734
 
4580
- // ../src/react-devtools/index.ts
2735
+ // src/index.ts
4581
2736
  var {
4582
2737
  atomIndex,
4583
2738
  selectorIndex,
@@ -4624,20 +2779,7 @@ var prettyJson = new Differ(primitiveRefinery, jsonTreeRefinery, {
4624
2779
  object: diffObject,
4625
2780
  array: diffArray
4626
2781
  });
4627
- export {
4628
- AtomIODevtools,
4629
- atomIndex,
4630
- devtoolsAreOpenState,
4631
- devtoolsViewOptionsState,
4632
- devtoolsViewSelectionState,
4633
- findTimelineState,
4634
- findTransactionLogState,
4635
- findViewIsOpenState,
4636
- jsonTreeRefinery,
4637
- prettyJson,
4638
- primitiveRefinery,
4639
- selectorIndex,
4640
- timelineIndex,
4641
- transactionIndex
4642
- };
2782
+
2783
+ export { AtomIODevtools, atomIndex, devtoolsAreOpenState, devtoolsViewOptionsState, devtoolsViewSelectionState, findTimelineState, findTransactionLogState, findViewIsOpenState, jsonTreeRefinery, prettyJson, primitiveRefinery, selectorIndex, timelineIndex, transactionIndex };
2784
+ //# sourceMappingURL=out.js.map
4643
2785
  //# sourceMappingURL=index.mjs.map