atom.io 0.6.7 → 0.6.8

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 (63) hide show
  1. package/dist/index.d.mts +27 -17
  2. package/dist/index.d.ts +27 -17
  3. package/dist/index.js +28 -22
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +28 -22
  6. package/dist/index.mjs.map +1 -1
  7. package/introspection/dist/index.d.mts +14 -15
  8. package/introspection/dist/index.d.ts +14 -15
  9. package/introspection/dist/index.js +2 -2
  10. package/introspection/dist/index.js.map +1 -1
  11. package/introspection/dist/index.mjs +2 -2
  12. package/introspection/dist/index.mjs.map +1 -1
  13. package/json/dist/index.d.mts +5 -7
  14. package/json/dist/index.d.ts +5 -7
  15. package/json/dist/index.js.map +1 -1
  16. package/json/dist/index.mjs.map +1 -1
  17. package/package.json +15 -7
  18. package/react-devtools/dist/index.css +9 -1
  19. package/react-devtools/dist/index.css.map +1 -1
  20. package/react-devtools/dist/index.d.mts +14 -15
  21. package/react-devtools/dist/index.d.ts +14 -15
  22. package/react-devtools/dist/index.js +769 -249
  23. package/react-devtools/dist/index.js.map +1 -1
  24. package/react-devtools/dist/index.mjs +752 -227
  25. package/react-devtools/dist/index.mjs.map +1 -1
  26. package/realtime/dist/index.d.mts +6 -8
  27. package/realtime/dist/index.d.ts +6 -8
  28. package/realtime/dist/index.js +0 -1
  29. package/realtime/dist/index.js.map +1 -1
  30. package/realtime/dist/index.mjs +0 -1
  31. package/realtime/dist/index.mjs.map +1 -1
  32. package/realtime-react/dist/index.d.mts +11 -13
  33. package/realtime-react/dist/index.d.ts +11 -13
  34. package/realtime-react/dist/index.js.map +1 -1
  35. package/realtime-react/dist/index.mjs.map +1 -1
  36. package/src/atom.ts +4 -4
  37. package/src/index.ts +1 -1
  38. package/src/internal/families-internal.ts +23 -20
  39. package/src/internal/index.ts +1 -1
  40. package/src/internal/selector/create-read-write-selector.ts +3 -1
  41. package/src/internal/selector/create-readonly-selector.ts +3 -1
  42. package/src/internal/time-travel-internal.ts +4 -4
  43. package/src/internal/timeline/add-atom-to-timeline.ts +2 -2
  44. package/src/internal/timeline-internal.ts +2 -2
  45. package/src/introspection/attach-timeline-family.ts +1 -1
  46. package/src/json/select-json.ts +1 -1
  47. package/src/react-devtools/StateEditor.tsx +5 -1
  48. package/src/react-devtools/StateIndex.tsx +4 -1
  49. package/src/react-devtools/devtools.scss +0 -1
  50. package/src/realtime/hook-composition/expose-family.ts +2 -2
  51. package/src/realtime/hook-composition/expose-single.ts +1 -1
  52. package/src/realtime/hook-composition/receive-state.ts +1 -1
  53. package/src/realtime-react/realtime-hooks.ts +4 -4
  54. package/src/realtime-react/use-pull-family-member.ts +2 -2
  55. package/src/realtime-react/use-pull-family.ts +2 -2
  56. package/src/realtime-react/use-pull.ts +3 -1
  57. package/src/realtime-react/use-push.ts +3 -1
  58. package/src/selector.ts +14 -12
  59. package/src/subscribe.ts +1 -1
  60. package/src/tracker/index.ts +3 -0
  61. package/src/tracker/tracker.ts +61 -0
  62. package/src/web-effects/storage.ts +1 -1
  63. package/src/internal/subject.ts +0 -24
@@ -127,6 +127,18 @@ var doNothing = () => void 0;
127
127
  var become = (nextVersionOfThing) => (originalThing) => nextVersionOfThing instanceof Function ? nextVersionOfThing(
128
128
  originalThing instanceof Function ? originalThing() : originalThing
129
129
  ) : nextVersionOfThing;
130
+ var isModifier = (validate) => (sample) => {
131
+ const sampleIsValid = validate(sample);
132
+ if (!sampleIsValid) {
133
+ throw new Error(`Invalid test case: JSON.stringify(${sample})`);
134
+ }
135
+ return (input) => {
136
+ if (typeof input !== `function`)
137
+ return false;
138
+ const testResult = input(sample);
139
+ return validate(testResult);
140
+ };
141
+ };
130
142
  var pass = (...params) => (fn) => fn(...params);
131
143
  var raiseError = (message) => {
132
144
  throw new Error(message);
@@ -959,34 +971,6 @@ function atom__INTERNAL(options, family, store = IMPLICIT.STORE) {
959
971
  return token;
960
972
  }
961
973
 
962
- // ../../anvl/src/json/index.ts
963
- var import_function9 = require("fp-ts/function");
964
-
965
- // ../../anvl/src/json/refine.ts
966
- var import_boolean = require("fp-ts/boolean");
967
- var import_number = require("fp-ts/number");
968
- var import_string3 = require("fp-ts/string");
969
- var JSON_PROTOTYPES = [
970
- `Array`,
971
- `Boolean`,
972
- `Number`,
973
- `Object`,
974
- `String`
975
- ];
976
- var refineJsonType = (data) => data === null ? { type: `null`, data: null } : (0, import_boolean.isBoolean)(data) ? { type: `boolean`, data } : (0, import_number.isNumber)(data) ? { type: `number`, data } : (0, import_string3.isString)(data) ? { type: `string`, data } : Array.isArray(data) ? { type: `array`, data } : isPlainObject(data) ? { type: `object`, data } : raiseError(
977
- 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.`
978
- );
979
- var isJson = (input) => {
980
- var _a2;
981
- if (input === null)
982
- return true;
983
- if (input === void 0)
984
- return false;
985
- const prototype = (_a2 = Object.getPrototypeOf(input)) == null ? void 0 : _a2.constructor.name;
986
- const isJson2 = JSON_PROTOTYPES.includes(prototype);
987
- return isJson2;
988
- };
989
-
990
974
  // ../../anvl/src/json/index.ts
991
975
  var stringifyJson = (json) => JSON.stringify(json);
992
976
  var JSON_TYPE_NAMES = [
@@ -1011,20 +995,23 @@ function atomFamily__INTERNAL(options, store = IMPLICIT.STORE) {
1011
995
  const subject = new Subject();
1012
996
  return Object.assign(
1013
997
  (key) => {
1014
- var _a2;
1015
998
  const subKey = stringifyJson(key);
1016
999
  const family = { key: options.key, subKey };
1017
1000
  const fullKey = `${options.key}(${subKey})`;
1018
1001
  const existing = withdraw({ key: fullKey, type: `atom` }, store);
1019
- const token = existing ? deposit(existing) : atom__INTERNAL(
1020
- {
1002
+ let token;
1003
+ if (existing) {
1004
+ token = deposit(existing);
1005
+ } else {
1006
+ const individualOptions = {
1021
1007
  key: fullKey,
1022
- default: options.default instanceof Function ? options.default(key) : options.default,
1023
- effects: (_a2 = options.effects) == null ? void 0 : _a2.call(options, key)
1024
- },
1025
- family,
1026
- store
1027
- );
1008
+ default: options.default instanceof Function ? options.default(key) : options.default
1009
+ };
1010
+ if (options.effects) {
1011
+ individualOptions.effects = options.effects(key);
1012
+ }
1013
+ token = atom__INTERNAL(individualOptions, family, store);
1014
+ }
1028
1015
  subject.next(token);
1029
1016
  return token;
1030
1017
  },
@@ -1135,7 +1122,7 @@ var setState__INTERNAL = (state, value, store = IMPLICIT.STORE) => {
1135
1122
  }
1136
1123
  };
1137
1124
 
1138
- // ../src/internal/subject.ts
1125
+ // ../../anvl/reactivity/subject.ts
1139
1126
  var Subject = class {
1140
1127
  constructor() {
1141
1128
  this.subscribers = [];
@@ -1407,7 +1394,7 @@ var attachTimelineFamily = (store = import_atom3.__INTERNAL__.IMPLICIT.STORE) =>
1407
1394
  return (_a2 = store.timelines.get(key)) != null ? _a2 : {
1408
1395
  key: ``,
1409
1396
  at: 0,
1410
- timeTraveling: false,
1397
+ timeTraveling: null,
1411
1398
  history: [],
1412
1399
  selectorTime: null,
1413
1400
  transactionKey: null,
@@ -1568,13 +1555,38 @@ var persistAtom = (storage) => ({ stringify, parse }) => (key) => ({ setSelf, on
1568
1555
  var lazyLocalStorageEffect = persistAtom(localStorage)(JSON);
1569
1556
 
1570
1557
  // ../src/react-devtools/AtomIODevtools.tsx
1571
- var import_react11 = require("atom.io/react");
1558
+ var import_react12 = require("atom.io/react");
1572
1559
  var import_framer_motion = require("framer-motion");
1573
- var import_react12 = require("react");
1560
+ var import_react13 = require("react");
1574
1561
 
1575
1562
  // ../src/react-devtools/StateIndex.tsx
1576
1563
  var import_atom8 = require("atom.io");
1577
- var import_react7 = require("atom.io/react");
1564
+ var import_react8 = require("atom.io/react");
1565
+
1566
+ // ../../anvl/src/refinement/refine-json.ts
1567
+ var import_boolean = require("fp-ts/boolean");
1568
+ var import_number = require("fp-ts/number");
1569
+ var import_string3 = require("fp-ts/string");
1570
+ var JSON_PROTOTYPES = [
1571
+ `Array`,
1572
+ `Boolean`,
1573
+ `Number`,
1574
+ `Object`,
1575
+ `String`
1576
+ ];
1577
+ var refineJsonType = (data) => data === null ? { type: `null`, data: null } : (0, import_boolean.isBoolean)(data) ? { type: `boolean`, data } : (0, import_number.isNumber)(data) ? { type: `number`, data } : (0, import_string3.isString)(data) ? { type: `string`, data } : Array.isArray(data) ? { type: `array`, data } : isPlainObject(data) ? { type: `object`, data } : raiseError(
1578
+ 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.`
1579
+ );
1580
+ var isJson = (input) => {
1581
+ var _a2;
1582
+ if (input === null)
1583
+ return true;
1584
+ if (input === void 0)
1585
+ return false;
1586
+ const prototype = (_a2 = Object.getPrototypeOf(input)) == null ? void 0 : _a2.constructor.name;
1587
+ const isJson2 = JSON_PROTOTYPES.includes(prototype);
1588
+ return isJson2;
1589
+ };
1578
1590
 
1579
1591
  // ../src/react-devtools/Button.tsx
1580
1592
  var import_jsx_dev_runtime = require("react/jsx-dev-runtime");
@@ -1603,7 +1615,16 @@ var button = {
1603
1615
  };
1604
1616
 
1605
1617
  // ../src/react-devtools/StateEditor.tsx
1606
- var import_react6 = require("atom.io/react");
1618
+ var import_react7 = require("atom.io/react");
1619
+
1620
+ // ../../hamr/src/react-json-editor/editors-by-type/utilities/array-elements.ts
1621
+ var makeElementSetters = (data, set) => data.map(
1622
+ (value, index) => (newValue) => set(() => {
1623
+ const newData = [...data];
1624
+ newData[index] = become(newValue)(value);
1625
+ return newData;
1626
+ })
1627
+ );
1607
1628
 
1608
1629
  // ../../hamr/src/react-elastic-input/ElasticInput.tsx
1609
1630
  var import_react = require("react");
@@ -1692,12 +1713,15 @@ var import_react2 = require("react");
1692
1713
  // ../../anvl/src/number/clamp.ts
1693
1714
  var clampInto = (min, max) => (value) => value < min ? min : value > max ? max : value;
1694
1715
 
1716
+ // ../../anvl/src/number/wrap.ts
1717
+ var wrapInto = (min, max) => (value) => value < min ? max - (min - value) % (max - min) : min + (value - min) % (max - min);
1718
+
1695
1719
  // ../../hamr/src/react-elastic-input/NumberInput.tsx
1696
1720
  var import_jsx_dev_runtime3 = require("react/jsx-dev-runtime");
1697
1721
  function round(value, decimalPlaces) {
1698
1722
  if (decimalPlaces === void 0)
1699
1723
  return value;
1700
- const factor = Math.pow(10, decimalPlaces);
1724
+ const factor = 10 ** decimalPlaces;
1701
1725
  return Math.round(value * factor) / factor;
1702
1726
  }
1703
1727
  var VALID_NON_NUMBERS = [``, `-`, `.`, `-.`];
@@ -1792,7 +1816,7 @@ var NumberInput = ({
1792
1816
  return /* @__PURE__ */ (0, import_jsx_dev_runtime3.jsxDEV)("span", { css: customCss, children: [
1793
1817
  label && /* @__PURE__ */ (0, import_jsx_dev_runtime3.jsxDEV)("label", { htmlFor: id, children: label }, void 0, false, {
1794
1818
  fileName: "../../hamr/src/react-elastic-input/NumberInput.tsx",
1795
- lineNumber: 166,
1819
+ lineNumber: 168,
1796
1820
  columnNumber: 14
1797
1821
  }, this),
1798
1822
  autoSize ? /* @__PURE__ */ (0, import_jsx_dev_runtime3.jsxDEV)(
@@ -1813,7 +1837,7 @@ var NumberInput = ({
1813
1837
  false,
1814
1838
  {
1815
1839
  fileName: "../../hamr/src/react-elastic-input/NumberInput.tsx",
1816
- lineNumber: 168,
1840
+ lineNumber: 170,
1817
1841
  columnNumber: 5
1818
1842
  },
1819
1843
  this
@@ -1835,14 +1859,14 @@ var NumberInput = ({
1835
1859
  false,
1836
1860
  {
1837
1861
  fileName: "../../hamr/src/react-elastic-input/NumberInput.tsx",
1838
- lineNumber: 181,
1862
+ lineNumber: 183,
1839
1863
  columnNumber: 5
1840
1864
  },
1841
1865
  this
1842
1866
  )
1843
1867
  ] }, void 0, true, {
1844
1868
  fileName: "../../hamr/src/react-elastic-input/NumberInput.tsx",
1845
- lineNumber: 165,
1869
+ lineNumber: 167,
1846
1870
  columnNumber: 3
1847
1871
  }, this);
1848
1872
  };
@@ -1905,15 +1929,6 @@ var TextInput = ({
1905
1929
  }, this);
1906
1930
  };
1907
1931
 
1908
- // ../../hamr/src/react-json-editor/editors-by-type/utilities/array-elements.ts
1909
- var makeElementSetters = (data, set) => data.map(
1910
- (value, index) => (newValue) => set(() => {
1911
- const newData = [...data];
1912
- newData[index] = become(newValue)(value);
1913
- return newData;
1914
- })
1915
- );
1916
-
1917
1932
  // ../../hamr/src/react-json-editor/editors-by-type/non-json.tsx
1918
1933
  var import_jsx_dev_runtime5 = require("react/jsx-dev-runtime");
1919
1934
  var NonJsonEditor = ({ data }) => {
@@ -1968,7 +1983,7 @@ var JsonEditor_INTERNAL = ({
1968
1983
  disabled,
1969
1984
  children: /* @__PURE__ */ (0, import_jsx_dev_runtime6.jsxDEV)(Components.DeleteIcon, {}, void 0, false, {
1970
1985
  fileName: "../../hamr/src/react-json-editor/json-editor-internal.tsx",
1971
- lineNumber: 63,
1986
+ lineNumber: 65,
1972
1987
  columnNumber: 7
1973
1988
  }, this)
1974
1989
  },
@@ -1976,14 +1991,14 @@ var JsonEditor_INTERNAL = ({
1976
1991
  false,
1977
1992
  {
1978
1993
  fileName: "../../hamr/src/react-json-editor/json-editor-internal.tsx",
1979
- lineNumber: 59,
1994
+ lineNumber: 61,
1980
1995
  columnNumber: 6
1981
1996
  },
1982
1997
  this
1983
1998
  ),
1984
1999
  HeaderDisplay && /* @__PURE__ */ (0, import_jsx_dev_runtime6.jsxDEV)(HeaderDisplay, { data, schema }, void 0, false, {
1985
2000
  fileName: "../../hamr/src/react-json-editor/json-editor-internal.tsx",
1986
- lineNumber: 66,
2001
+ lineNumber: 68,
1987
2002
  columnNumber: 23
1988
2003
  }, this),
1989
2004
  rename && /* @__PURE__ */ (0, import_jsx_dev_runtime6.jsxDEV)(Components.KeyWrapper, { children: /* @__PURE__ */ (0, import_jsx_dev_runtime6.jsxDEV)(
@@ -1997,13 +2012,13 @@ var JsonEditor_INTERNAL = ({
1997
2012
  false,
1998
2013
  {
1999
2014
  fileName: "../../hamr/src/react-json-editor/json-editor-internal.tsx",
2000
- lineNumber: 69,
2015
+ lineNumber: 71,
2001
2016
  columnNumber: 7
2002
2017
  },
2003
2018
  this
2004
2019
  ) }, void 0, false, {
2005
2020
  fileName: "../../hamr/src/react-json-editor/json-editor-internal.tsx",
2006
- lineNumber: 68,
2021
+ lineNumber: 70,
2007
2022
  columnNumber: 6
2008
2023
  }, this),
2009
2024
  /* @__PURE__ */ (0, import_jsx_dev_runtime6.jsxDEV)(
@@ -2023,7 +2038,7 @@ var JsonEditor_INTERNAL = ({
2023
2038
  false,
2024
2039
  {
2025
2040
  fileName: "../../hamr/src/react-json-editor/json-editor-internal.tsx",
2026
- lineNumber: 76,
2041
+ lineNumber: 78,
2027
2042
  columnNumber: 5
2028
2043
  },
2029
2044
  this
@@ -2036,7 +2051,7 @@ var JsonEditor_INTERNAL = ({
2036
2051
  disabled,
2037
2052
  children: Object.keys(SubEditors).map((type) => /* @__PURE__ */ (0, import_jsx_dev_runtime6.jsxDEV)("option", { value: type, children: type }, type, false, {
2038
2053
  fileName: "../../hamr/src/react-json-editor/json-editor-internal.tsx",
2039
- lineNumber: 98,
2054
+ lineNumber: 100,
2040
2055
  columnNumber: 8
2041
2056
  }, this))
2042
2057
  },
@@ -2044,18 +2059,18 @@ var JsonEditor_INTERNAL = ({
2044
2059
  false,
2045
2060
  {
2046
2061
  fileName: "../../hamr/src/react-json-editor/json-editor-internal.tsx",
2047
- lineNumber: 88,
2062
+ lineNumber: 90,
2048
2063
  columnNumber: 6
2049
2064
  },
2050
2065
  this
2051
2066
  ) : null
2052
2067
  ] }, void 0, true, {
2053
2068
  fileName: "../../hamr/src/react-json-editor/json-editor-internal.tsx",
2054
- lineNumber: 57,
2069
+ lineNumber: 59,
2055
2070
  columnNumber: 4
2056
2071
  }, this) }, void 0, false, {
2057
2072
  fileName: "../../hamr/src/react-json-editor/json-editor-internal.tsx",
2058
- lineNumber: 56,
2073
+ lineNumber: 58,
2059
2074
  columnNumber: 3
2060
2075
  }, this);
2061
2076
  };
@@ -2108,7 +2123,7 @@ var import_number3 = require("fp-ts/number");
2108
2123
  var import_string6 = require("fp-ts/string");
2109
2124
 
2110
2125
  // ../../anvl/src/json-schema/integer.ts
2111
- var import_function14 = require("fp-ts/function");
2126
+ var import_function13 = require("fp-ts/function");
2112
2127
  var isInteger = (input) => Number.isInteger(input);
2113
2128
  var parseInteger = (input) => {
2114
2129
  if (isInteger(input))
@@ -2134,7 +2149,7 @@ var IntegerParseError = class extends Error {
2134
2149
  }
2135
2150
  };
2136
2151
  var Int = Object.assign((input) => parseInteger(input), {
2137
- from: (input) => (0, import_function14.pipe)(
2152
+ from: (input) => (0, import_function13.pipe)(
2138
2153
  input,
2139
2154
  String,
2140
2155
  parseFloat,
@@ -2435,7 +2450,7 @@ var findSubSchema = (schema) => {
2435
2450
  };
2436
2451
  };
2437
2452
 
2438
- // ../../anvl/src/json/cast.ts
2453
+ // ../../anvl/src/json/cast-json.ts
2439
2454
  var stringToBoolean = (str) => str === `true`;
2440
2455
  var stringToNumber = (str) => Number(str);
2441
2456
  var stringToArray = (str) => str.split(`,`);
@@ -2477,7 +2492,9 @@ var nullToNumber = () => 0;
2477
2492
  var nullToBoolean = () => false;
2478
2493
  var nullToArray = () => [];
2479
2494
  var nullToObject = () => ({});
2480
- var cast = (input) => {
2495
+
2496
+ // ../../anvl/src/refinement/smart-cast-json.ts
2497
+ var castToJson = (input) => {
2481
2498
  const json = refineJsonType(input);
2482
2499
  return {
2483
2500
  to: {
@@ -2594,7 +2611,7 @@ var makePropertyRemovers = (data, set) => mapObject(
2594
2611
  var makePropertyRecasters = (data, set) => mapObject(
2595
2612
  data,
2596
2613
  (value, key) => (newType) => set(() => __spreadProps(__spreadValues({}, data), {
2597
- [key]: cast(value).to[newType]()
2614
+ [key]: castToJson(value).to[newType]()
2598
2615
  }))
2599
2616
  );
2600
2617
  var makePropertyCreationInterface = (data, set) => (key, type) => (value) => set(__spreadProps(__spreadValues({}, data), { [key]: value != null ? value : JSON_DEFAULTS[type] }));
@@ -2783,11 +2800,7 @@ var BooleanEditor = ({
2783
2800
  }, this);
2784
2801
  var NullEditor = ({
2785
2802
  Components
2786
- }) => /* @__PURE__ */ (0, import_jsx_dev_runtime9.jsxDEV)(Components.NullWrapper, { children: /* @__PURE__ */ (0, import_jsx_dev_runtime9.jsxDEV)(import_jsx_dev_runtime9.Fragment, {}, void 0, false, {
2787
- fileName: "../../hamr/src/react-json-editor/editors-by-type/primitive-editors.tsx",
2788
- lineNumber: 24,
2789
- columnNumber: 3
2790
- }, this) }, void 0, false, {
2803
+ }) => /* @__PURE__ */ (0, import_jsx_dev_runtime9.jsxDEV)(Components.NullWrapper, { children: '" "' }, void 0, false, {
2791
2804
  fileName: "../../hamr/src/react-json-editor/editors-by-type/primitive-editors.tsx",
2792
2805
  lineNumber: 23,
2793
2806
  columnNumber: 2
@@ -2809,13 +2822,13 @@ var NumberEditor = ({
2809
2822
  false,
2810
2823
  {
2811
2824
  fileName: "../../hamr/src/react-json-editor/editors-by-type/primitive-editors.tsx",
2812
- lineNumber: 36,
2825
+ lineNumber: 34,
2813
2826
  columnNumber: 3
2814
2827
  },
2815
2828
  this
2816
2829
  ) }, void 0, false, {
2817
2830
  fileName: "../../hamr/src/react-json-editor/editors-by-type/primitive-editors.tsx",
2818
- lineNumber: 35,
2831
+ lineNumber: 33,
2819
2832
  columnNumber: 2
2820
2833
  }, this);
2821
2834
  var StringEditor = ({
@@ -2836,13 +2849,13 @@ var StringEditor = ({
2836
2849
  false,
2837
2850
  {
2838
2851
  fileName: "../../hamr/src/react-json-editor/editors-by-type/primitive-editors.tsx",
2839
- lineNumber: 53,
2852
+ lineNumber: 51,
2840
2853
  columnNumber: 4
2841
2854
  },
2842
2855
  this
2843
2856
  ) }, void 0, false, {
2844
2857
  fileName: "../../hamr/src/react-json-editor/editors-by-type/primitive-editors.tsx",
2845
- lineNumber: 52,
2858
+ lineNumber: 50,
2846
2859
  columnNumber: 3
2847
2860
  }, this);
2848
2861
  };
@@ -2933,7 +2946,7 @@ var import_jsx_dev_runtime11 = require("react/jsx-dev-runtime");
2933
2946
  var ErrorBoundary = class extends import_react4.Component {
2934
2947
  constructor(props) {
2935
2948
  super(props);
2936
- this.state = { error: void 0, errorInfo: void 0 };
2949
+ this.state = {};
2937
2950
  }
2938
2951
  componentDidCatch(error, errorInfo) {
2939
2952
  var _a2, _b;
@@ -2959,7 +2972,7 @@ var import_jsx_dev_runtime12 = require("react/jsx-dev-runtime");
2959
2972
  var DEFAULT_JSON_EDITOR_COMPONENTS = {
2960
2973
  ErrorBoundary: ({ children }) => /* @__PURE__ */ (0, import_jsx_dev_runtime12.jsxDEV)(ErrorBoundary, { children }, void 0, false, {
2961
2974
  fileName: "../../hamr/src/react-json-editor/default-components.tsx",
2962
- lineNumber: 46,
2975
+ lineNumber: 49,
2963
2976
  columnNumber: 35
2964
2977
  }, this),
2965
2978
  Button: ({ onClick, children, disabled }) => /* @__PURE__ */ (0, import_jsx_dev_runtime12.jsxDEV)(
@@ -2975,14 +2988,14 @@ var DEFAULT_JSON_EDITOR_COMPONENTS = {
2975
2988
  false,
2976
2989
  {
2977
2990
  fileName: "../../hamr/src/react-json-editor/default-components.tsx",
2978
- lineNumber: 48,
2991
+ lineNumber: 51,
2979
2992
  columnNumber: 3
2980
2993
  },
2981
2994
  this
2982
2995
  ),
2983
2996
  EditorWrapper: ({ children, customCss, className }) => /* @__PURE__ */ (0, import_jsx_dev_runtime12.jsxDEV)("div", { className: `json_editor ` + className, css: customCss, children }, void 0, false, {
2984
2997
  fileName: "../../hamr/src/react-json-editor/default-components.tsx",
2985
- lineNumber: 58,
2998
+ lineNumber: 61,
2986
2999
  columnNumber: 3
2987
3000
  }, this),
2988
3001
  EditorLayout: ({
@@ -2996,98 +3009,98 @@ var DEFAULT_JSON_EDITOR_COMPONENTS = {
2996
3009
  return /* @__PURE__ */ (0, import_jsx_dev_runtime12.jsxDEV)(Wrapper, { children: [
2997
3010
  DeleteButton && /* @__PURE__ */ (0, import_jsx_dev_runtime12.jsxDEV)(DeleteButton, {}, void 0, false, {
2998
3011
  fileName: "../../hamr/src/react-json-editor/default-components.tsx",
2999
- lineNumber: 72,
3012
+ lineNumber: 75,
3000
3013
  columnNumber: 22
3001
3014
  }, this),
3002
3015
  Header && /* @__PURE__ */ (0, import_jsx_dev_runtime12.jsxDEV)(Header, {}, void 0, false, {
3003
3016
  fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3004
- lineNumber: 73,
3017
+ lineNumber: 76,
3005
3018
  columnNumber: 16
3006
3019
  }, this),
3007
3020
  KeyInput && /* @__PURE__ */ (0, import_jsx_dev_runtime12.jsxDEV)(KeyInput, {}, void 0, false, {
3008
3021
  fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3009
- lineNumber: 74,
3022
+ lineNumber: 77,
3010
3023
  columnNumber: 18
3011
3024
  }, this),
3012
3025
  TypeSelect && /* @__PURE__ */ (0, import_jsx_dev_runtime12.jsxDEV)(TypeSelect, {}, void 0, false, {
3013
3026
  fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3014
- lineNumber: 75,
3027
+ lineNumber: 78,
3015
3028
  columnNumber: 20
3016
3029
  }, this),
3017
3030
  /* @__PURE__ */ (0, import_jsx_dev_runtime12.jsxDEV)(ValueEditor, {}, void 0, false, {
3018
3031
  fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3019
- lineNumber: 76,
3032
+ lineNumber: 79,
3020
3033
  columnNumber: 5
3021
3034
  }, this)
3022
3035
  ] }, void 0, true, {
3023
3036
  fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3024
- lineNumber: 71,
3037
+ lineNumber: 74,
3025
3038
  columnNumber: 4
3026
3039
  }, this);
3027
3040
  },
3028
3041
  ArrayWrapper: ({ children }) => /* @__PURE__ */ (0, import_jsx_dev_runtime12.jsxDEV)("div", { className: "json_editor_array", children }, void 0, false, {
3029
3042
  fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3030
- lineNumber: 81,
3043
+ lineNumber: 84,
3031
3044
  columnNumber: 3
3032
3045
  }, this),
3033
3046
  ObjectWrapper: ({ children }) => /* @__PURE__ */ (0, import_jsx_dev_runtime12.jsxDEV)("div", { className: "json_editor_object", children }, void 0, false, {
3034
3047
  fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3035
- lineNumber: 84,
3048
+ lineNumber: 87,
3036
3049
  columnNumber: 3
3037
3050
  }, this),
3038
3051
  StringWrapper: ({ children }) => /* @__PURE__ */ (0, import_jsx_dev_runtime12.jsxDEV)("span", { className: "json_editor_string", children }, void 0, false, {
3039
3052
  fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3040
- lineNumber: 87,
3053
+ lineNumber: 90,
3041
3054
  columnNumber: 3
3042
3055
  }, this),
3043
3056
  NumberWrapper: ({ children }) => /* @__PURE__ */ (0, import_jsx_dev_runtime12.jsxDEV)("span", { className: "json_editor_number", children }, void 0, false, {
3044
3057
  fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3045
- lineNumber: 90,
3058
+ lineNumber: 93,
3046
3059
  columnNumber: 3
3047
3060
  }, this),
3048
3061
  BooleanWrapper: ({ children }) => /* @__PURE__ */ (0, import_jsx_dev_runtime12.jsxDEV)("span", { className: "json_editor_boolean", children }, void 0, false, {
3049
3062
  fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3050
- lineNumber: 93,
3063
+ lineNumber: 96,
3051
3064
  columnNumber: 3
3052
3065
  }, this),
3053
3066
  NullWrapper: ({ children }) => /* @__PURE__ */ (0, import_jsx_dev_runtime12.jsxDEV)("span", { className: "json_editor_null", children }, void 0, false, {
3054
3067
  fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3055
- lineNumber: 96,
3068
+ lineNumber: 99,
3056
3069
  columnNumber: 3
3057
3070
  }, this),
3058
3071
  MissingPropertyWrapper: ({ children }) => /* @__PURE__ */ (0, import_jsx_dev_runtime12.jsxDEV)("div", { className: "json_editor_property json_editor_missing", children }, void 0, false, {
3059
3072
  fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3060
- lineNumber: 99,
3073
+ lineNumber: 102,
3061
3074
  columnNumber: 3
3062
3075
  }, this),
3063
3076
  MiscastPropertyWrapper: ({ children }) => /* @__PURE__ */ (0, import_jsx_dev_runtime12.jsxDEV)("div", { className: "json_editor_property json_editor_miscast", children }, void 0, false, {
3064
3077
  fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3065
- lineNumber: 102,
3078
+ lineNumber: 105,
3066
3079
  columnNumber: 3
3067
3080
  }, this),
3068
3081
  IllegalPropertyWrapper: ({ children }) => /* @__PURE__ */ (0, import_jsx_dev_runtime12.jsxDEV)("span", { className: "json_editor_property json_editor_illegal", children }, void 0, false, {
3069
3082
  fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3070
- lineNumber: 105,
3083
+ lineNumber: 108,
3071
3084
  columnNumber: 3
3072
3085
  }, this),
3073
3086
  OfficialPropertyWrapper: ({ children }) => /* @__PURE__ */ (0, import_jsx_dev_runtime12.jsxDEV)("span", { className: "json_editor_property json_editor_official", children }, void 0, false, {
3074
3087
  fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3075
- lineNumber: 108,
3088
+ lineNumber: 111,
3076
3089
  columnNumber: 3
3077
3090
  }, this),
3078
3091
  UnofficialPropertyWrapper: ({ children }) => /* @__PURE__ */ (0, import_jsx_dev_runtime12.jsxDEV)("span", { className: "json_editor_property json_editor_unofficial", children }, void 0, false, {
3079
3092
  fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3080
- lineNumber: 111,
3093
+ lineNumber: 114,
3081
3094
  columnNumber: 3
3082
3095
  }, this),
3083
3096
  DeleteIcon: () => /* @__PURE__ */ (0, import_jsx_dev_runtime12.jsxDEV)("span", { className: "json_editor_icon json_editor_delete", children: "x" }, void 0, false, {
3084
3097
  fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3085
- lineNumber: 116,
3098
+ lineNumber: 119,
3086
3099
  columnNumber: 3
3087
3100
  }, this),
3088
3101
  KeyWrapper: ({ children }) => /* @__PURE__ */ (0, import_jsx_dev_runtime12.jsxDEV)("span", { className: "json_editor_key", children }, void 0, false, {
3089
3102
  fileName: "../../hamr/src/react-json-editor/default-components.tsx",
3090
- lineNumber: 119,
3103
+ lineNumber: 122,
3091
3104
  columnNumber: 3
3092
3105
  }, this)
3093
3106
  };
@@ -3138,7 +3151,7 @@ var JsonEditor = ({
3138
3151
  false,
3139
3152
  {
3140
3153
  fileName: "../../hamr/src/react-json-editor/developer-interface.tsx",
3141
- lineNumber: 78,
3154
+ lineNumber: 77,
3142
3155
  columnNumber: 3
3143
3156
  },
3144
3157
  this
@@ -3155,15 +3168,522 @@ var SubEditors = {
3155
3168
  string: StringEditor
3156
3169
  };
3157
3170
 
3158
- // ../src/react-devtools/StateEditor.tsx
3171
+ // ../../hamr/src/react-data-designer/RelationEditor.module.scss
3172
+ var RelationEditor_module_default = {};
3173
+
3174
+ // ../../hamr/src/react-id/Id.tsx
3175
+ var import_react6 = require("@floating-ui/react");
3176
+ var import_function22 = require("fp-ts/function");
3177
+ var React = __toESM(require("react"));
3178
+
3179
+ // ../../anvl/src/string/string-to-color.ts
3180
+ function stringToColor(input) {
3181
+ let hash = 0;
3182
+ for (let i = 0; i < input.length; i++) {
3183
+ const char = input.charCodeAt(i);
3184
+ hash = (hash << 5) - hash + char;
3185
+ hash |= 0;
3186
+ }
3187
+ let hexColor = (hash & 16777215).toString(16);
3188
+ while (hexColor.length < 6) {
3189
+ hexColor = `0` + hexColor;
3190
+ }
3191
+ return `#${hexColor}`;
3192
+ }
3193
+
3194
+ // ../../luum/src/constants/index.ts
3195
+ var CHANNEL_SPECIFIC_LUM = {
3196
+ R: 0.3,
3197
+ G: 0.5,
3198
+ B: 0.2
3199
+ };
3200
+
3201
+ // ../../luum/src/constants/filters.ts
3202
+ var unfiltered = [
3203
+ { sat: 255, hue: 0 },
3204
+ { sat: 255, hue: 360 }
3205
+ ];
3206
+
3207
+ // ../../luum/src/export/channelsToHex.ts
3208
+ var channelsToHex = (channels) => `#${Object.values(channels).map((channel) => {
3209
+ let channelHex = channel.toString(16);
3210
+ if (channelHex.length === 1)
3211
+ channelHex = 0 + channelHex;
3212
+ return channelHex;
3213
+ }).join(``)}`;
3214
+ var channelsToHex_default = channelsToHex;
3215
+
3216
+ // ../../luum/src/import/hueToRelativeChannels.ts
3217
+ var hueToRelativeChannels_default = (hue) => {
3218
+ const hueWrapped = wrapInto(0, 360)(hue);
3219
+ const hueReduced = hueWrapped / 60;
3220
+ const hueInteger = Math.floor(hueReduced);
3221
+ const hueDecimal = hueReduced - hueInteger;
3222
+ const x = hueDecimal;
3223
+ const y = 1 - hueDecimal;
3224
+ switch (hueInteger) {
3225
+ case 0:
3226
+ return [1, x, 0];
3227
+ case 1:
3228
+ return [y, 1, 0];
3229
+ case 2:
3230
+ return [0, 1, x];
3231
+ case 3:
3232
+ return [0, y, 1];
3233
+ case 4:
3234
+ return [x, 0, 1];
3235
+ case 5:
3236
+ return [1, 0, y];
3237
+ default:
3238
+ throw new Error(`invalid hue served: ${hue}`);
3239
+ }
3240
+ };
3241
+
3242
+ // ../../luum/src/solveFor/hueFromChannels.ts
3243
+ var hueFromChannels = ({ R, G, B }) => {
3244
+ let hue = 0;
3245
+ if (R > G && G >= B)
3246
+ hue = 60 * (0 + (G - B) / (R - B));
3247
+ if (G >= R && R > B)
3248
+ hue = 60 * (2 - (R - B) / (G - B));
3249
+ if (G > B && B >= R)
3250
+ hue = 60 * (2 + (B - R) / (G - R));
3251
+ if (B >= G && G > R)
3252
+ hue = 60 * (4 - (G - R) / (B - R));
3253
+ if (B > R && R >= G)
3254
+ hue = 60 * (4 + (R - G) / (B - G));
3255
+ if (R >= B && B > G)
3256
+ hue = 60 * (6 - (B - G) / (R - G));
3257
+ return hue;
3258
+ };
3259
+ var hueFromChannels_default = hueFromChannels;
3260
+
3261
+ // ../../luum/src/solveFor/lumFromChannels.ts
3262
+ var lumFromChannels = ({ R, G, B }) => {
3263
+ const lum = CHANNEL_SPECIFIC_LUM.R * R / 255 + CHANNEL_SPECIFIC_LUM.G * G / 255 + CHANNEL_SPECIFIC_LUM.B * B / 255;
3264
+ return lum;
3265
+ };
3266
+ var lumFromChannels_default = lumFromChannels;
3267
+
3268
+ // ../../luum/src/solveFor/maxSatForHueInFilter.ts
3269
+ var maxSatForHueInFilter_default = (hue, filter) => {
3270
+ let maxSat = 255;
3271
+ const hueWrapped = wrapInto(0, 360)(hue);
3272
+ for (let a2 = -1, b2 = 0; b2 < filter.length; a2++, b2++) {
3273
+ a2 = wrapInto(0, filter.length)(a2);
3274
+ const hueDoubleWrapped = a2 > b2 ? wrapInto(-180, 180)(hueWrapped) : void 0;
3275
+ const tuningPointA = filter[a2];
3276
+ const tuningPointB = filter[b2];
3277
+ const hueA = a2 > b2 ? wrapInto(-180, 180)(tuningPointA.hue) : tuningPointA.hue;
3278
+ const hueB = tuningPointB.hue;
3279
+ if ((hueDoubleWrapped || hueWrapped) >= hueA && (hueDoubleWrapped || hueWrapped) < hueB) {
3280
+ let $ = hueDoubleWrapped || hueWrapped;
3281
+ $ -= hueA;
3282
+ $ /= hueB - hueA;
3283
+ $ *= tuningPointB.sat - tuningPointA.sat;
3284
+ $ += tuningPointA.sat;
3285
+ Math.round($);
3286
+ maxSat = $;
3287
+ }
3288
+ }
3289
+ return maxSat;
3290
+ };
3291
+
3292
+ // ../../luum/src/solveFor/satFromChannels.ts
3293
+ var satFromChannels = ({ R, G, B }) => {
3294
+ const sat = Math.max(R, G, B) - Math.min(R, G, B);
3295
+ return sat;
3296
+ };
3297
+ var satFromChannels_default = satFromChannels;
3298
+
3299
+ // ../../luum/src/solveFor/specificLumFromHue.ts
3300
+ var specificLumFromHue_default = (hue) => {
3301
+ const [factorR, factorG, factorB] = hueToRelativeChannels_default(hue);
3302
+ const lumR = CHANNEL_SPECIFIC_LUM.R * factorR;
3303
+ const lumG = CHANNEL_SPECIFIC_LUM.G * factorG;
3304
+ const lumB = CHANNEL_SPECIFIC_LUM.B * factorB;
3305
+ const specificLum = lumR + lumG + lumB;
3306
+ return specificLum;
3307
+ };
3308
+
3309
+ // ../../luum/src/export/specToChannelsFixLimit.ts
3310
+ var minChannelsForSaturationFromHue = (hue) => {
3311
+ const relativeChannels = hueToRelativeChannels_default(hue);
3312
+ const channelSpreader = (trueSaturation) => {
3313
+ const makeMinChannel = (idx) => Math.round(relativeChannels[idx] * trueSaturation);
3314
+ return {
3315
+ R: makeMinChannel(0),
3316
+ G: makeMinChannel(1),
3317
+ B: makeMinChannel(2)
3318
+ };
3319
+ };
3320
+ return channelSpreader;
3321
+ };
3322
+ var channelsFromIlluminationObj = ({
3323
+ minChannels,
3324
+ trueLuminosity,
3325
+ minLum
3326
+ }) => {
3327
+ const { max, round: round2 } = Math;
3328
+ const maxWhite = 255 - max(...Object.values(minChannels));
3329
+ const white = clampInto(0, maxWhite)(round2((trueLuminosity - minLum) * 255));
3330
+ const channels = {
3331
+ R: minChannels.R + white,
3332
+ G: minChannels.G + white,
3333
+ B: minChannels.B + white
3334
+ };
3335
+ return channels;
3336
+ };
3337
+ var specToChannelsFixLimit = ({ hue, sat, lum, prefer = `lum` }, filter = unfiltered) => {
3338
+ const minChannelsForSaturation = minChannelsForSaturationFromHue(hue);
3339
+ let trueSaturation;
3340
+ let trueLuminosity;
3341
+ let minChannels;
3342
+ let maxChannels;
3343
+ let specificLum;
3344
+ let minLum = 0;
3345
+ let maxLum = 1;
3346
+ let maxSat = maxSatForHueInFilter_default(hue, filter);
3347
+ switch (prefer) {
3348
+ case `sat`:
3349
+ trueSaturation = clampInto(0, 255)(Math.min(sat, maxSat));
3350
+ minChannels = minChannelsForSaturation(trueSaturation);
3351
+ maxChannels = {
3352
+ R: minChannels.R + 255 - trueSaturation,
3353
+ G: minChannels.G + 255 - trueSaturation,
3354
+ B: minChannels.B + 255 - trueSaturation
3355
+ };
3356
+ minLum = lumFromChannels_default(minChannels);
3357
+ maxLum = lumFromChannels_default(maxChannels);
3358
+ trueLuminosity = clampInto(minLum, maxLum)(lum);
3359
+ break;
3360
+ case `lum`:
3361
+ trueLuminosity = clampInto(0, 1)(lum);
3362
+ specificLum = specificLumFromHue_default(hue);
3363
+ maxSat = Math.min(
3364
+ maxSat,
3365
+ Math.round(
3366
+ trueLuminosity <= specificLum ? 255 * (trueLuminosity / specificLum) : 255 * (1 - trueLuminosity) / (1 - specificLum)
3367
+ )
3368
+ );
3369
+ trueSaturation = Math.min(sat, maxSat);
3370
+ minChannels = minChannelsForSaturation(trueSaturation);
3371
+ minLum = lumFromChannels_default(minChannels);
3372
+ break;
3373
+ }
3374
+ const channels = channelsFromIlluminationObj({
3375
+ minChannels,
3376
+ trueLuminosity,
3377
+ minLum
3378
+ });
3379
+ return {
3380
+ channels,
3381
+ fix: {
3382
+ sat: trueSaturation,
3383
+ lum: trueLuminosity
3384
+ },
3385
+ limit: {
3386
+ sat: [0, maxSat],
3387
+ lum: [prefer === `lum` ? 0 : minLum, maxLum]
3388
+ }
3389
+ };
3390
+ };
3391
+ var specToChannelsFixLimit_default = specToChannelsFixLimit;
3392
+
3393
+ // ../../luum/src/export/specToHexFixLimit.ts
3394
+ var specToHexFixLimit = ({ hue, sat, lum, prefer }, filter) => {
3395
+ const { channels, fix, limit } = specToChannelsFixLimit_default(
3396
+ {
3397
+ hue,
3398
+ sat,
3399
+ lum,
3400
+ prefer
3401
+ },
3402
+ filter
3403
+ );
3404
+ const { R, G, B } = channels;
3405
+ const hex = channelsToHex_default({ R, G, B });
3406
+ return { hex, fix, limit };
3407
+ };
3408
+ var specToHexFixLimit_default = specToHexFixLimit;
3409
+
3410
+ // ../../luum/src/export/specToHex.ts
3411
+ var specToHex = ({ hue, sat, lum, prefer }, filter) => {
3412
+ const { hex } = specToHexFixLimit_default({ hue, sat, lum, prefer }, filter);
3413
+ return hex;
3414
+ };
3415
+ var specToHex_default = specToHex;
3416
+
3417
+ // ../../luum/src/import/channelsToSpec.ts
3418
+ var channelsToSpec = ({ R, G, B }) => {
3419
+ const hue = hueFromChannels_default({ R, G, B });
3420
+ const sat = satFromChannels_default({ R, G, B });
3421
+ const lum = lumFromChannels_default({ R, G, B });
3422
+ return { hue, sat, lum };
3423
+ };
3424
+ var channelsToSpec_default = channelsToSpec;
3425
+
3426
+ // ../../luum/src/import/normalizeHex.ts
3427
+ var BASE_16_CHAR_SET = `[a-fA-F0-9]+`;
3428
+ var miniHexToHex = (miniHex) => {
3429
+ const miniHexArray = miniHex.split(``);
3430
+ const hexTemplate = [0, 0, 1, 1, 2, 2];
3431
+ return hexTemplate.map((idx) => miniHexArray[idx]).join(``);
3432
+ };
3433
+ var normalizeHex = (maybeHex) => {
3434
+ const hex = maybeHex.replace(/^#/, ``);
3435
+ const hexIsCorrectLength = hex.length === 6 || hex.length === 3;
3436
+ const hexIsCorrectCharSet = hex.match(new RegExp(`^${BASE_16_CHAR_SET}$`)) !== null;
3437
+ const hexIsValid = hexIsCorrectLength && hexIsCorrectCharSet;
3438
+ if (!hexIsValid) {
3439
+ throw new Error(`${maybeHex} is not a valid hex code`);
3440
+ }
3441
+ if (hex.length === 3) {
3442
+ return miniHexToHex(hex);
3443
+ }
3444
+ return hex;
3445
+ };
3446
+ var normalizeHex_default = normalizeHex;
3447
+
3448
+ // ../../luum/src/import/hexToChannels.ts
3449
+ var hexToChannels_default = (maybeHex) => {
3450
+ const hex = normalizeHex_default(maybeHex);
3451
+ return {
3452
+ R: parseInt(hex.slice(0, 2), 16),
3453
+ G: parseInt(hex.slice(2, 4), 16),
3454
+ B: parseInt(hex.slice(4, 6), 16)
3455
+ };
3456
+ };
3457
+
3458
+ // ../../luum/src/import/hexToSpec.ts
3459
+ var hexToSpec = (hex) => {
3460
+ const { R, G, B } = hexToChannels_default(hex);
3461
+ const { hue, sat, lum } = channelsToSpec_default({ R, G, B });
3462
+ return { hue, sat, lum };
3463
+ };
3464
+ var hexToSpec_default = hexToSpec;
3465
+
3466
+ // ../../luum/src/mixers/lum.ts
3467
+ var import_function16 = require("fp-ts/function");
3468
+ var resetColor = (color) => (0, import_function16.pipe)(color, specToHex_default, hexToSpec_default, (hsl) => __spreadProps(__spreadValues({}, hsl), {
3469
+ prefer: color.prefer
3470
+ }));
3471
+ var setLum = (newLum) => (currentColor) => {
3472
+ const newColor = __spreadProps(__spreadValues({}, currentColor), {
3473
+ lum: (0, import_function16.pipe)(currentColor.lum, become(newLum), clampInto(0, 1))
3474
+ });
3475
+ return newColor;
3476
+ };
3477
+ var shadeBy = (shadeAmount) => (color) => setLum((lum) => (lum * 100 - shadeAmount) / 100)(resetColor(color));
3478
+
3479
+ // ../../luum/src/mixers/sat.ts
3480
+ var import_function18 = require("fp-ts/function");
3481
+
3482
+ // ../../luum/src/mixers/hue.ts
3483
+ var import_function19 = require("fp-ts/function");
3484
+
3485
+ // ../../luum/src/mixers/contrast.ts
3486
+ var contrastMax = (color) => __spreadProps(__spreadValues({}, color), {
3487
+ lum: color.lum > 0.666 ? 0 : 1
3488
+ });
3489
+ var offset = (offsetAmount) => (color) => __spreadProps(__spreadValues({}, color), {
3490
+ lum: color.lum > 0.666 ? color.lum - offsetAmount : color.lum + offsetAmount
3491
+ });
3492
+
3493
+ // ../../luum/src/scheme/index.ts
3494
+ var import_function20 = require("fp-ts/function");
3495
+ var import_string7 = require("fp-ts/string");
3496
+
3497
+ // ../../luum/src/constants/luum-spec.ts
3498
+ var defaultSpec = {
3499
+ hue: 0,
3500
+ lum: 0,
3501
+ sat: 0,
3502
+ prefer: `lum`
3503
+ };
3504
+
3505
+ // ../../luum/src/scheme/index.ts
3506
+ 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);
3507
+ var isLuumSpecModifier = isModifier(isLuumSpec)(defaultSpec);
3508
+ var RED = {
3509
+ hue: 0,
3510
+ sat: 255,
3511
+ lum: 0.5,
3512
+ prefer: `sat`
3513
+ };
3514
+ var WAYFORGE_CORE_COLOR_NAMES = [
3515
+ `Red`,
3516
+ `Orange`,
3517
+ `Yellow`,
3518
+ `Lime`,
3519
+ `Green`,
3520
+ `Teal`,
3521
+ `Cyan`,
3522
+ `Blue`,
3523
+ `Indigo`,
3524
+ `Violet`,
3525
+ `Magenta`,
3526
+ `Pink`
3527
+ ];
3528
+ var WAYFORGE_CORE_COLORS = WAYFORGE_CORE_COLOR_NAMES.reduce((acc, name, idx) => {
3529
+ acc[name] = {
3530
+ hue: idx * 30,
3531
+ sat: 255,
3532
+ lum: 0.5,
3533
+ prefer: `sat`
3534
+ };
3535
+ return acc;
3536
+ }, {});
3537
+ var PAINT_MY_WAGON_RED = {
3538
+ rootSelectors: [`.wagon`],
3539
+ root: RED,
3540
+ attributes: [`background-color`, shadeBy(5)],
3541
+ states: [
3542
+ [
3543
+ [`:hover`, `:focus`],
3544
+ [`background-color`, shadeBy(10)]
3545
+ ],
3546
+ [`:active`, [`background-color`, shadeBy(15)]]
3547
+ ]
3548
+ };
3549
+
3550
+ // ../../hamr/src/react-id/Id.tsx
3159
3551
  var import_jsx_dev_runtime14 = require("react/jsx-dev-runtime");
3552
+ var Id = ({ id }) => {
3553
+ const [isOpen, setIsOpen] = React.useState(false);
3554
+ const { refs, floatingStyles, context } = (0, import_react6.useFloating)({
3555
+ open: isOpen,
3556
+ onOpenChange: setIsOpen,
3557
+ placement: `bottom-start`
3558
+ });
3559
+ const click = (0, import_react6.useClick)(context);
3560
+ const { getReferenceProps, getFloatingProps } = (0, import_react6.useInteractions)([click]);
3561
+ const bgColor = stringToColor(id);
3562
+ const contrastColor = (0, import_function22.pipe)(bgColor, hexToSpec_default, contrastMax, specToHex_default);
3563
+ const offsetColor = (0, import_function22.pipe)(bgColor, hexToSpec_default, offset(0.25), specToHex_default);
3564
+ const contrastOffsetColor = (0, import_function22.pipe)(
3565
+ offsetColor,
3566
+ hexToSpec_default,
3567
+ contrastMax,
3568
+ specToHex_default
3569
+ );
3570
+ return /* @__PURE__ */ (0, import_jsx_dev_runtime14.jsxDEV)(import_jsx_dev_runtime14.Fragment, { children: [
3571
+ /* @__PURE__ */ (0, import_jsx_dev_runtime14.jsxDEV)(
3572
+ "span",
3573
+ __spreadProps(__spreadValues({
3574
+ role: "content",
3575
+ ref: refs.setReference
3576
+ }, getReferenceProps()), {
3577
+ style: {
3578
+ background: bgColor,
3579
+ cursor: `pointer`,
3580
+ padding: `0px 4px`,
3581
+ color: contrastColor,
3582
+ userSelect: `none`,
3583
+ whiteSpace: `nowrap`
3584
+ },
3585
+ children: id.substring(0, 3)
3586
+ }),
3587
+ void 0,
3588
+ false,
3589
+ {
3590
+ fileName: "../../hamr/src/react-id/Id.tsx",
3591
+ lineNumber: 36,
3592
+ columnNumber: 4
3593
+ },
3594
+ this
3595
+ ),
3596
+ isOpen && /* @__PURE__ */ (0, import_jsx_dev_runtime14.jsxDEV)(import_react6.FloatingPortal, { children: /* @__PURE__ */ (0, import_jsx_dev_runtime14.jsxDEV)(
3597
+ "span",
3598
+ __spreadProps(__spreadValues({
3599
+ role: "popup",
3600
+ ref: refs.setFloating
3601
+ }, getFloatingProps()), {
3602
+ style: __spreadProps(__spreadValues({}, floatingStyles), {
3603
+ color: contrastOffsetColor,
3604
+ background: offsetColor,
3605
+ padding: `0px 4px`,
3606
+ boxShadow: `0px 2px 10px rgba(0, 0, 0, 0.1)`
3607
+ }),
3608
+ children: id
3609
+ }),
3610
+ void 0,
3611
+ false,
3612
+ {
3613
+ fileName: "../../hamr/src/react-id/Id.tsx",
3614
+ lineNumber: 53,
3615
+ columnNumber: 6
3616
+ },
3617
+ this
3618
+ ) }, void 0, false, {
3619
+ fileName: "../../hamr/src/react-id/Id.tsx",
3620
+ lineNumber: 52,
3621
+ columnNumber: 5
3622
+ }, this)
3623
+ ] }, void 0, true, {
3624
+ fileName: "../../hamr/src/react-id/Id.tsx",
3625
+ lineNumber: 35,
3626
+ columnNumber: 3
3627
+ }, this);
3628
+ };
3629
+
3630
+ // ../../hamr/src/react-data-designer/RelationEditor.tsx
3631
+ var import_jsx_dev_runtime15 = require("react/jsx-dev-runtime");
3632
+ var RelationEditor = (props) => {
3633
+ const seen = /* @__PURE__ */ new Set();
3634
+ const data = Object.entries(props.data.relations).sort(([_, a2], [__, b2]) => b2.length - a2.length).filter(([head, tail]) => {
3635
+ if (seen.has(head))
3636
+ return false;
3637
+ seen.add(head);
3638
+ for (const tailElement of tail) {
3639
+ seen.add(tailElement);
3640
+ }
3641
+ return true;
3642
+ });
3643
+ return /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)("article", { className: RelationEditor_module_default.class, children: data.map(([head, tail]) => /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)("section", { children: [
3644
+ /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)("span", { children: /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)(Id, { id: head }, void 0, false, {
3645
+ fileName: "../../hamr/src/react-data-designer/RelationEditor.tsx",
3646
+ lineNumber: 26,
3647
+ columnNumber: 7
3648
+ }, this) }, void 0, false, {
3649
+ fileName: "../../hamr/src/react-data-designer/RelationEditor.tsx",
3650
+ lineNumber: 25,
3651
+ columnNumber: 6
3652
+ }, this),
3653
+ ":",
3654
+ /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)("span", { children: tail.map((child) => /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)(Id, { id: child }, void 0, false, {
3655
+ fileName: "../../hamr/src/react-data-designer/RelationEditor.tsx",
3656
+ lineNumber: 31,
3657
+ columnNumber: 8
3658
+ }, this)) }, void 0, false, {
3659
+ fileName: "../../hamr/src/react-data-designer/RelationEditor.tsx",
3660
+ lineNumber: 29,
3661
+ columnNumber: 6
3662
+ }, this)
3663
+ ] }, void 0, true, {
3664
+ fileName: "../../hamr/src/react-data-designer/RelationEditor.tsx",
3665
+ lineNumber: 24,
3666
+ columnNumber: 5
3667
+ }, this)) }, void 0, false, {
3668
+ fileName: "../../hamr/src/react-data-designer/RelationEditor.tsx",
3669
+ lineNumber: 21,
3670
+ columnNumber: 3
3671
+ }, this);
3672
+ };
3673
+
3674
+ // ../src/react-devtools/StateEditor.tsx
3675
+ var import_jsx_dev_runtime16 = require("react/jsx-dev-runtime");
3160
3676
  var StateEditor = ({ token }) => {
3161
- const [data, set] = (0, import_react6.useIO)(token);
3162
- return isJson(data) ? /* @__PURE__ */ (0, import_jsx_dev_runtime14.jsxDEV)(JsonEditor, { data, set, schema: true }, void 0, false, {
3677
+ const [data, set] = (0, import_react7.useIO)(token);
3678
+ return isJson(data) ? /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)(JsonEditor, { data, set, schema: true }, void 0, false, {
3163
3679
  fileName: "../src/react-devtools/StateEditor.tsx",
3164
- lineNumber: 15,
3680
+ lineNumber: 17,
3165
3681
  columnNumber: 3
3166
- }, this) : /* @__PURE__ */ (0, import_jsx_dev_runtime14.jsxDEV)("div", { className: "json_editor", children: /* @__PURE__ */ (0, import_jsx_dev_runtime14.jsxDEV)(
3682
+ }, this) : data instanceof Join ? /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)(RelationEditor, { data, set }, void 0, false, {
3683
+ fileName: "../src/react-devtools/StateEditor.tsx",
3684
+ lineNumber: 19,
3685
+ columnNumber: 3
3686
+ }, this) : /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)("div", { className: "json_editor", children: /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)(
3167
3687
  ElasticInput,
3168
3688
  {
3169
3689
  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), `?`),
@@ -3173,19 +3693,19 @@ var StateEditor = ({ token }) => {
3173
3693
  false,
3174
3694
  {
3175
3695
  fileName: "../src/react-devtools/StateEditor.tsx",
3176
- lineNumber: 18,
3696
+ lineNumber: 22,
3177
3697
  columnNumber: 4
3178
3698
  },
3179
3699
  this
3180
3700
  ) }, void 0, false, {
3181
3701
  fileName: "../src/react-devtools/StateEditor.tsx",
3182
- lineNumber: 17,
3702
+ lineNumber: 21,
3183
3703
  columnNumber: 3
3184
3704
  }, this);
3185
3705
  };
3186
3706
  var ReadonlySelectorViewer = ({ token }) => {
3187
- const data = (0, import_react6.useO)(token);
3188
- return isJson(data) ? /* @__PURE__ */ (0, import_jsx_dev_runtime14.jsxDEV)(
3707
+ const data = (0, import_react7.useO)(token);
3708
+ return isJson(data) ? /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)(
3189
3709
  JsonEditor,
3190
3710
  {
3191
3711
  data,
@@ -3197,11 +3717,11 @@ var ReadonlySelectorViewer = ({ token }) => {
3197
3717
  false,
3198
3718
  {
3199
3719
  fileName: "../src/react-devtools/StateEditor.tsx",
3200
- lineNumber: 39,
3720
+ lineNumber: 43,
3201
3721
  columnNumber: 3
3202
3722
  },
3203
3723
  this
3204
- ) : /* @__PURE__ */ (0, import_jsx_dev_runtime14.jsxDEV)("div", { className: "json_editor", children: /* @__PURE__ */ (0, import_jsx_dev_runtime14.jsxDEV)(
3724
+ ) : /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)("div", { className: "json_editor", children: /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)(
3205
3725
  ElasticInput,
3206
3726
  {
3207
3727
  value: data instanceof Set ? `Set ` + JSON.stringify([...data]) : data instanceof Map ? `Map ` + JSON.stringify([...data]) : Object.getPrototypeOf(data).constructor.name + ` ` + JSON.stringify(data),
@@ -3211,33 +3731,33 @@ var ReadonlySelectorViewer = ({ token }) => {
3211
3731
  false,
3212
3732
  {
3213
3733
  fileName: "../src/react-devtools/StateEditor.tsx",
3214
- lineNumber: 47,
3734
+ lineNumber: 51,
3215
3735
  columnNumber: 4
3216
3736
  },
3217
3737
  this
3218
3738
  ) }, void 0, false, {
3219
3739
  fileName: "../src/react-devtools/StateEditor.tsx",
3220
- lineNumber: 46,
3740
+ lineNumber: 50,
3221
3741
  columnNumber: 3
3222
3742
  }, this);
3223
3743
  };
3224
3744
  var StoreEditor = ({ token }) => {
3225
3745
  if (token.type === `readonly_selector`) {
3226
- return /* @__PURE__ */ (0, import_jsx_dev_runtime14.jsxDEV)(ReadonlySelectorViewer, { token }, void 0, false, {
3746
+ return /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)(ReadonlySelectorViewer, { token }, void 0, false, {
3227
3747
  fileName: "../src/react-devtools/StateEditor.tsx",
3228
- lineNumber: 67,
3748
+ lineNumber: 71,
3229
3749
  columnNumber: 10
3230
3750
  }, this);
3231
3751
  }
3232
- return /* @__PURE__ */ (0, import_jsx_dev_runtime14.jsxDEV)(StateEditor, { token }, void 0, false, {
3752
+ return /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)(StateEditor, { token }, void 0, false, {
3233
3753
  fileName: "../src/react-devtools/StateEditor.tsx",
3234
- lineNumber: 69,
3754
+ lineNumber: 73,
3235
3755
  columnNumber: 9
3236
3756
  }, this);
3237
3757
  };
3238
3758
 
3239
3759
  // ../src/react-devtools/StateIndex.tsx
3240
- var import_jsx_dev_runtime15 = require("react/jsx-dev-runtime");
3760
+ var import_jsx_dev_runtime17 = require("react/jsx-dev-runtime");
3241
3761
  var findStateTypeState = (0, import_atom8.selectorFamily)({
3242
3762
  key: `\u{1F441}\u200D\u{1F5E8} State Type`,
3243
3763
  get: (token) => ({ get }) => {
@@ -3256,13 +3776,13 @@ var findStateTypeState = (0, import_atom8.selectorFamily)({
3256
3776
  });
3257
3777
  var StateIndexLeafNode = ({ node, isOpenState, typeState }) => {
3258
3778
  var _a2, _b;
3259
- const [isOpen, setIsOpen] = (0, import_react7.useIO)(isOpenState);
3260
- const state = (0, import_react7.useO)(node);
3261
- const stateType = (0, import_react7.useO)(typeState);
3779
+ const [isOpen, setIsOpen] = (0, import_react8.useIO)(isOpenState);
3780
+ const state = (0, import_react8.useO)(node);
3781
+ const stateType = (0, import_react8.useO)(typeState);
3262
3782
  const isPrimitive = Boolean(primitiveRefinery.refine(state));
3263
- return /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)(import_jsx_dev_runtime15.Fragment, { children: [
3264
- /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)("header", { children: [
3265
- /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)(
3783
+ return /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)(import_jsx_dev_runtime17.Fragment, { children: [
3784
+ /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)("header", { children: [
3785
+ /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)(
3266
3786
  button.OpenClose,
3267
3787
  {
3268
3788
  isOpen: isOpen && !isPrimitive,
@@ -3273,29 +3793,29 @@ var StateIndexLeafNode = ({ node, isOpenState, typeState }) => {
3273
3793
  false,
3274
3794
  {
3275
3795
  fileName: "../src/react-devtools/StateIndex.tsx",
3276
- lineNumber: 45,
3796
+ lineNumber: 48,
3277
3797
  columnNumber: 5
3278
3798
  },
3279
3799
  this
3280
3800
  ),
3281
- /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)(
3801
+ /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)(
3282
3802
  "label",
3283
3803
  {
3284
3804
  onClick: () => console.log(node, (0, import_atom8.getState)(node)),
3285
3805
  onKeyUp: () => console.log(node, (0, import_atom8.getState)(node)),
3286
3806
  children: [
3287
- /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)("h2", { children: (_b = (_a2 = node.family) == null ? void 0 : _a2.subKey) != null ? _b : node.key }, void 0, false, {
3807
+ /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)("h2", { children: (_b = (_a2 = node.family) == null ? void 0 : _a2.subKey) != null ? _b : node.key }, void 0, false, {
3288
3808
  fileName: "../src/react-devtools/StateIndex.tsx",
3289
- lineNumber: 54,
3809
+ lineNumber: 57,
3290
3810
  columnNumber: 6
3291
3811
  }, this),
3292
- /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)("span", { className: "type detail", children: [
3812
+ /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)("span", { className: "type detail", children: [
3293
3813
  "(",
3294
3814
  stateType,
3295
3815
  ")"
3296
3816
  ] }, void 0, true, {
3297
3817
  fileName: "../src/react-devtools/StateIndex.tsx",
3298
- lineNumber: 55,
3818
+ lineNumber: 58,
3299
3819
  columnNumber: 6
3300
3820
  }, this)
3301
3821
  ]
@@ -3304,71 +3824,71 @@ var StateIndexLeafNode = ({ node, isOpenState, typeState }) => {
3304
3824
  true,
3305
3825
  {
3306
3826
  fileName: "../src/react-devtools/StateIndex.tsx",
3307
- lineNumber: 50,
3827
+ lineNumber: 53,
3308
3828
  columnNumber: 5
3309
3829
  },
3310
3830
  this
3311
3831
  ),
3312
- isPrimitive ? /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)(StoreEditor, { token: node }, void 0, false, {
3832
+ isPrimitive ? /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)(StoreEditor, { token: node }, void 0, false, {
3313
3833
  fileName: "../src/react-devtools/StateIndex.tsx",
3314
- lineNumber: 57,
3834
+ lineNumber: 60,
3315
3835
  columnNumber: 20
3316
3836
  }, this) : null
3317
3837
  ] }, void 0, true, {
3318
3838
  fileName: "../src/react-devtools/StateIndex.tsx",
3319
- lineNumber: 44,
3839
+ lineNumber: 47,
3320
3840
  columnNumber: 4
3321
3841
  }, this),
3322
- isOpen && !isPrimitive ? /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)("main", { children: /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)(StoreEditor, { token: node }, void 0, false, {
3842
+ isOpen && !isPrimitive ? /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)("main", { children: /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)(StoreEditor, { token: node }, void 0, false, {
3323
3843
  fileName: "../src/react-devtools/StateIndex.tsx",
3324
- lineNumber: 61,
3844
+ lineNumber: 64,
3325
3845
  columnNumber: 6
3326
3846
  }, this) }, void 0, false, {
3327
3847
  fileName: "../src/react-devtools/StateIndex.tsx",
3328
- lineNumber: 60,
3848
+ lineNumber: 63,
3329
3849
  columnNumber: 5
3330
3850
  }, this) : null
3331
3851
  ] }, void 0, true, {
3332
3852
  fileName: "../src/react-devtools/StateIndex.tsx",
3333
- lineNumber: 43,
3853
+ lineNumber: 46,
3334
3854
  columnNumber: 3
3335
3855
  }, this);
3336
3856
  };
3337
3857
  var StateIndexTreeNode = ({ node, isOpenState }) => {
3338
- const [isOpen, setIsOpen] = (0, import_react7.useIO)(isOpenState);
3858
+ const [isOpen, setIsOpen] = (0, import_react8.useIO)(isOpenState);
3339
3859
  Object.entries(node.familyMembers).forEach(([key, childNode]) => {
3340
3860
  findViewIsOpenState(key);
3341
3861
  findStateTypeState(childNode);
3342
3862
  });
3343
- return /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)(import_jsx_dev_runtime15.Fragment, { children: [
3344
- /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)("header", { children: [
3345
- /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)(button.OpenClose, { isOpen, setIsOpen }, void 0, false, {
3863
+ return /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)(import_jsx_dev_runtime17.Fragment, { children: [
3864
+ /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)("header", { children: [
3865
+ /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)(button.OpenClose, { isOpen, setIsOpen }, void 0, false, {
3346
3866
  fileName: "../src/react-devtools/StateIndex.tsx",
3347
- lineNumber: 81,
3867
+ lineNumber: 84,
3348
3868
  columnNumber: 5
3349
3869
  }, this),
3350
- /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)("label", { children: [
3351
- /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)("h2", { children: node.key }, void 0, false, {
3870
+ /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)("label", { children: [
3871
+ /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)("h2", { children: node.key }, void 0, false, {
3352
3872
  fileName: "../src/react-devtools/StateIndex.tsx",
3353
- lineNumber: 83,
3873
+ lineNumber: 86,
3354
3874
  columnNumber: 6
3355
3875
  }, this),
3356
- /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)("span", { className: "type detail", children: " (family)" }, void 0, false, {
3876
+ /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)("span", { className: "type detail", children: " (family)" }, void 0, false, {
3357
3877
  fileName: "../src/react-devtools/StateIndex.tsx",
3358
- lineNumber: 84,
3878
+ lineNumber: 87,
3359
3879
  columnNumber: 6
3360
3880
  }, this)
3361
3881
  ] }, void 0, true, {
3362
3882
  fileName: "../src/react-devtools/StateIndex.tsx",
3363
- lineNumber: 82,
3883
+ lineNumber: 85,
3364
3884
  columnNumber: 5
3365
3885
  }, this)
3366
3886
  ] }, void 0, true, {
3367
3887
  fileName: "../src/react-devtools/StateIndex.tsx",
3368
- lineNumber: 80,
3888
+ lineNumber: 83,
3369
3889
  columnNumber: 4
3370
3890
  }, this),
3371
- isOpen ? Object.entries(node.familyMembers).map(([key, childNode]) => /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)(
3891
+ isOpen ? Object.entries(node.familyMembers).map(([key, childNode]) => /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)(
3372
3892
  StateIndexNode,
3373
3893
  {
3374
3894
  node: childNode,
@@ -3379,14 +3899,14 @@ var StateIndexTreeNode = ({ node, isOpenState }) => {
3379
3899
  false,
3380
3900
  {
3381
3901
  fileName: "../src/react-devtools/StateIndex.tsx",
3382
- lineNumber: 89,
3902
+ lineNumber: 92,
3383
3903
  columnNumber: 7
3384
3904
  },
3385
3905
  this
3386
3906
  )) : null
3387
3907
  ] }, void 0, true, {
3388
3908
  fileName: "../src/react-devtools/StateIndex.tsx",
3389
- lineNumber: 79,
3909
+ lineNumber: 82,
3390
3910
  columnNumber: 3
3391
3911
  }, this);
3392
3912
  };
@@ -3394,7 +3914,7 @@ var StateIndexNode = ({ node, isOpenState, typeState }) => {
3394
3914
  if (node.key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)) {
3395
3915
  return null;
3396
3916
  }
3397
- return /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)("section", { className: "node state", children: `type` in node ? /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)(
3917
+ return /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)("section", { className: "node state", children: `type` in node ? /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)(
3398
3918
  StateIndexLeafNode,
3399
3919
  {
3400
3920
  node,
@@ -3405,24 +3925,24 @@ var StateIndexNode = ({ node, isOpenState, typeState }) => {
3405
3925
  false,
3406
3926
  {
3407
3927
  fileName: "../src/react-devtools/StateIndex.tsx",
3408
- lineNumber: 114,
3928
+ lineNumber: 117,
3409
3929
  columnNumber: 5
3410
3930
  },
3411
3931
  this
3412
- ) : /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)(StateIndexTreeNode, { node, isOpenState }, void 0, false, {
3932
+ ) : /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)(StateIndexTreeNode, { node, isOpenState }, void 0, false, {
3413
3933
  fileName: "../src/react-devtools/StateIndex.tsx",
3414
- lineNumber: 120,
3934
+ lineNumber: 123,
3415
3935
  columnNumber: 5
3416
3936
  }, this) }, void 0, false, {
3417
3937
  fileName: "../src/react-devtools/StateIndex.tsx",
3418
- lineNumber: 112,
3938
+ lineNumber: 115,
3419
3939
  columnNumber: 3
3420
3940
  }, this);
3421
3941
  };
3422
3942
  var StateIndex = ({ tokenIndex }) => {
3423
- const tokenIds = (0, import_react7.useO)(tokenIndex);
3424
- return /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)("article", { className: "index state_index", children: Object.entries(tokenIds).filter(([key]) => !key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)).sort().map(([key, node]) => {
3425
- return /* @__PURE__ */ (0, import_jsx_dev_runtime15.jsxDEV)(
3943
+ const tokenIds = (0, import_react8.useO)(tokenIndex);
3944
+ return /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)("article", { className: "index state_index", children: Object.entries(tokenIds).filter(([key]) => !key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)).sort().map(([key, node]) => {
3945
+ return /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)(
3426
3946
  StateIndexNode,
3427
3947
  {
3428
3948
  node,
@@ -3433,34 +3953,34 @@ var StateIndex = ({ tokenIndex }) => {
3433
3953
  false,
3434
3954
  {
3435
3955
  fileName: "../src/react-devtools/StateIndex.tsx",
3436
- lineNumber: 143,
3956
+ lineNumber: 146,
3437
3957
  columnNumber: 7
3438
3958
  },
3439
3959
  this
3440
3960
  );
3441
3961
  }) }, void 0, false, {
3442
3962
  fileName: "../src/react-devtools/StateIndex.tsx",
3443
- lineNumber: 137,
3963
+ lineNumber: 140,
3444
3964
  columnNumber: 3
3445
3965
  }, this);
3446
3966
  };
3447
3967
 
3448
3968
  // ../src/react-devtools/TimelineIndex.tsx
3449
3969
  var import_atom9 = require("atom.io");
3450
- var import_react8 = require("atom.io/react");
3451
- var import_react9 = require("react");
3970
+ var import_react9 = require("atom.io/react");
3971
+ var import_react10 = require("react");
3452
3972
 
3453
3973
  // ../src/react-devtools/Updates.tsx
3454
- var import_jsx_dev_runtime16 = require("react/jsx-dev-runtime");
3974
+ var import_jsx_dev_runtime18 = require("react/jsx-dev-runtime");
3455
3975
  var AtomUpdateFC = ({ atomUpdate }) => {
3456
- return /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)(
3976
+ return /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)(
3457
3977
  "article",
3458
3978
  {
3459
3979
  className: "node atom_update",
3460
3980
  onClick: () => console.log(atomUpdate),
3461
3981
  onKeyUp: () => console.log(atomUpdate),
3462
3982
  children: [
3463
- /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)("span", { className: "detail", children: [
3983
+ /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("span", { className: "detail", children: [
3464
3984
  atomUpdate.key,
3465
3985
  ": "
3466
3986
  ] }, void 0, true, {
@@ -3468,7 +3988,7 @@ var AtomUpdateFC = ({ atomUpdate }) => {
3468
3988
  lineNumber: 20,
3469
3989
  columnNumber: 4
3470
3990
  }, this),
3471
- /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)("span", { children: /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)("span", { className: "summary", children: prettyJson.diff(atomUpdate.oldValue, atomUpdate.newValue).summary }, void 0, false, {
3991
+ /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("span", { children: /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("span", { className: "summary", children: prettyJson.diff(atomUpdate.oldValue, atomUpdate.newValue).summary }, void 0, false, {
3472
3992
  fileName: "../src/react-devtools/Updates.tsx",
3473
3993
  lineNumber: 22,
3474
3994
  columnNumber: 5
@@ -3490,8 +4010,8 @@ var AtomUpdateFC = ({ atomUpdate }) => {
3490
4010
  );
3491
4011
  };
3492
4012
  var TransactionUpdateFC = ({ serialNumber, transactionUpdate }) => {
3493
- return /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)("article", { className: "node transaction_update", children: [
3494
- /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)("header", { children: /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)("h4", { children: serialNumber }, void 0, false, {
4013
+ return /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("article", { className: "node transaction_update", children: [
4014
+ /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("header", { children: /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("h4", { children: serialNumber }, void 0, false, {
3495
4015
  fileName: "../src/react-devtools/Updates.tsx",
3496
4016
  lineNumber: 37,
3497
4017
  columnNumber: 5
@@ -3500,22 +4020,22 @@ var TransactionUpdateFC = ({ serialNumber, transactionUpdate }) => {
3500
4020
  lineNumber: 36,
3501
4021
  columnNumber: 4
3502
4022
  }, this),
3503
- /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)("main", { children: [
3504
- /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)("section", { className: "transaction_params", children: [
3505
- /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)("span", { className: "detail", children: "params: " }, void 0, false, {
4023
+ /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("main", { children: [
4024
+ /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("section", { className: "transaction_params", children: [
4025
+ /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("span", { className: "detail", children: "params: " }, void 0, false, {
3506
4026
  fileName: "../src/react-devtools/Updates.tsx",
3507
4027
  lineNumber: 41,
3508
4028
  columnNumber: 6
3509
4029
  }, this),
3510
4030
  transactionUpdate.params.map((param, index) => {
3511
- return /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)(
4031
+ return /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)(
3512
4032
  "article",
3513
4033
  {
3514
4034
  className: "node transaction_param",
3515
4035
  onClick: () => console.log(transactionUpdate),
3516
4036
  onKeyUp: () => console.log(transactionUpdate),
3517
4037
  children: [
3518
- /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)("span", { className: "detail", children: [
4038
+ /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("span", { className: "detail", children: [
3519
4039
  discoverType(param),
3520
4040
  ": "
3521
4041
  ] }, void 0, true, {
@@ -3523,11 +4043,11 @@ var TransactionUpdateFC = ({ serialNumber, transactionUpdate }) => {
3523
4043
  lineNumber: 50,
3524
4044
  columnNumber: 9
3525
4045
  }, this),
3526
- /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)("span", { className: "summary", children: typeof param === `object` && `type` in param && `target` in param ? /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)(import_jsx_dev_runtime16.Fragment, { children: JSON.stringify(param.type) }, void 0, false, {
4046
+ /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("span", { className: "summary", children: typeof param === `object` && `type` in param && `target` in param ? /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)(import_jsx_dev_runtime18.Fragment, { children: JSON.stringify(param.type) }, void 0, false, {
3527
4047
  fileName: "../src/react-devtools/Updates.tsx",
3528
4048
  lineNumber: 55,
3529
4049
  columnNumber: 11
3530
- }, this) : /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)(import_jsx_dev_runtime16.Fragment, { children: JSON.stringify(param) }, void 0, false, {
4050
+ }, this) : /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)(import_jsx_dev_runtime18.Fragment, { children: JSON.stringify(param) }, void 0, false, {
3531
4051
  fileName: "../src/react-devtools/Updates.tsx",
3532
4052
  lineNumber: 57,
3533
4053
  columnNumber: 11
@@ -3553,18 +4073,18 @@ var TransactionUpdateFC = ({ serialNumber, transactionUpdate }) => {
3553
4073
  lineNumber: 40,
3554
4074
  columnNumber: 5
3555
4075
  }, this),
3556
- /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)("section", { className: "node transaction_output", children: [
3557
- /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)("span", { className: "detail", children: "output: " }, void 0, false, {
4076
+ /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("section", { className: "node transaction_output", children: [
4077
+ /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("span", { className: "detail", children: "output: " }, void 0, false, {
3558
4078
  fileName: "../src/react-devtools/Updates.tsx",
3559
4079
  lineNumber: 65,
3560
4080
  columnNumber: 6
3561
4081
  }, this),
3562
- /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)("span", { className: "detail", children: discoverType(transactionUpdate.output) }, void 0, false, {
4082
+ /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("span", { className: "detail", children: discoverType(transactionUpdate.output) }, void 0, false, {
3563
4083
  fileName: "../src/react-devtools/Updates.tsx",
3564
4084
  lineNumber: 66,
3565
4085
  columnNumber: 6
3566
4086
  }, this),
3567
- transactionUpdate.output ? /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)("span", { className: "summary", children: [
4087
+ transactionUpdate.output ? /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("span", { className: "summary", children: [
3568
4088
  ": ",
3569
4089
  JSON.stringify(transactionUpdate.output)
3570
4090
  ] }, void 0, true, {
@@ -3577,14 +4097,14 @@ var TransactionUpdateFC = ({ serialNumber, transactionUpdate }) => {
3577
4097
  lineNumber: 64,
3578
4098
  columnNumber: 5
3579
4099
  }, this),
3580
- /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)("section", { className: "transaction_impact", children: [
3581
- /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)("span", { className: "detail", children: "impact: " }, void 0, false, {
4100
+ /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("section", { className: "transaction_impact", children: [
4101
+ /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("span", { className: "detail", children: "impact: " }, void 0, false, {
3582
4102
  fileName: "../src/react-devtools/Updates.tsx",
3583
4103
  lineNumber: 76,
3584
4104
  columnNumber: 6
3585
4105
  }, this),
3586
4106
  transactionUpdate.atomUpdates.filter((token) => !token.key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)).map((atomUpdate, index) => {
3587
- return /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)(
4107
+ return /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)(
3588
4108
  article.AtomUpdate,
3589
4109
  {
3590
4110
  serialNumber: index,
@@ -3617,8 +4137,8 @@ var TransactionUpdateFC = ({ serialNumber, transactionUpdate }) => {
3617
4137
  }, this);
3618
4138
  };
3619
4139
  var TimelineUpdateFC = ({ timelineUpdate }) => {
3620
- return /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)("article", { className: "node timeline_update", children: [
3621
- /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)("header", { children: /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)("h4", { children: [
4140
+ return /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("article", { className: "node timeline_update", children: [
4141
+ /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("header", { children: /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("h4", { children: [
3622
4142
  timelineUpdate.timestamp,
3623
4143
  ": ",
3624
4144
  timelineUpdate.type,
@@ -3634,8 +4154,8 @@ var TimelineUpdateFC = ({ timelineUpdate }) => {
3634
4154
  lineNumber: 99,
3635
4155
  columnNumber: 4
3636
4156
  }, this),
3637
- /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)("main", { children: timelineUpdate.type === `transaction_update` ? timelineUpdate.atomUpdates.filter((token) => !token.key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)).map((atomUpdate, index) => {
3638
- return /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)(
4157
+ /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("main", { children: timelineUpdate.type === `transaction_update` ? timelineUpdate.atomUpdates.filter((token) => !token.key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)).map((atomUpdate, index) => {
4158
+ return /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)(
3639
4159
  article.AtomUpdate,
3640
4160
  {
3641
4161
  serialNumber: index,
@@ -3651,7 +4171,7 @@ var TimelineUpdateFC = ({ timelineUpdate }) => {
3651
4171
  this
3652
4172
  );
3653
4173
  }) : timelineUpdate.type === `selector_update` ? timelineUpdate.atomUpdates.filter((token) => !token.key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)).map((atomUpdate, index) => {
3654
- return /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)(
4174
+ return /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)(
3655
4175
  article.AtomUpdate,
3656
4176
  {
3657
4177
  serialNumber: index,
@@ -3666,7 +4186,7 @@ var TimelineUpdateFC = ({ timelineUpdate }) => {
3666
4186
  },
3667
4187
  this
3668
4188
  );
3669
- }) : timelineUpdate.type === `atom_update` ? /* @__PURE__ */ (0, import_jsx_dev_runtime16.jsxDEV)(
4189
+ }) : timelineUpdate.type === `atom_update` ? /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)(
3670
4190
  article.AtomUpdate,
3671
4191
  {
3672
4192
  serialNumber: timelineUpdate.timestamp,
@@ -3698,31 +4218,31 @@ var article = {
3698
4218
  };
3699
4219
 
3700
4220
  // ../src/react-devtools/TimelineIndex.tsx
3701
- var import_jsx_dev_runtime17 = require("react/jsx-dev-runtime");
4221
+ var import_jsx_dev_runtime19 = require("react/jsx-dev-runtime");
3702
4222
  var YouAreHere = () => {
3703
- return /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)("span", { className: "you_are_here", children: "you are here" }, void 0, false, {
4223
+ return /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)("span", { className: "you_are_here", children: "you are here" }, void 0, false, {
3704
4224
  fileName: "../src/react-devtools/TimelineIndex.tsx",
3705
4225
  lineNumber: 17,
3706
4226
  columnNumber: 9
3707
4227
  }, this);
3708
4228
  };
3709
4229
  var TimelineLog = ({ token, isOpenState, timelineState }) => {
3710
- const timeline2 = (0, import_react8.useO)(timelineState);
3711
- const [isOpen, setIsOpen] = (0, import_react8.useIO)(isOpenState);
3712
- return /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)("section", { className: "node timeline_log", children: [
3713
- /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)("header", { children: [
3714
- /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)(button.OpenClose, { isOpen, setIsOpen }, void 0, false, {
4230
+ const timeline2 = (0, import_react9.useO)(timelineState);
4231
+ const [isOpen, setIsOpen] = (0, import_react9.useIO)(isOpenState);
4232
+ return /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)("section", { className: "node timeline_log", children: [
4233
+ /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)("header", { children: [
4234
+ /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)(button.OpenClose, { isOpen, setIsOpen }, void 0, false, {
3715
4235
  fileName: "../src/react-devtools/TimelineIndex.tsx",
3716
4236
  lineNumber: 31,
3717
4237
  columnNumber: 5
3718
4238
  }, this),
3719
- /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)("label", { children: [
3720
- /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)("h2", { children: token.key }, void 0, false, {
4239
+ /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)("label", { children: [
4240
+ /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)("h2", { children: token.key }, void 0, false, {
3721
4241
  fileName: "../src/react-devtools/TimelineIndex.tsx",
3722
4242
  lineNumber: 33,
3723
4243
  columnNumber: 6
3724
4244
  }, this),
3725
- /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)("span", { className: "detail length", children: [
4245
+ /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)("span", { className: "detail length", children: [
3726
4246
  "(",
3727
4247
  timeline2.at,
3728
4248
  "/",
@@ -3733,13 +4253,13 @@ var TimelineLog = ({ token, isOpenState, timelineState }) => {
3733
4253
  lineNumber: 34,
3734
4254
  columnNumber: 6
3735
4255
  }, this),
3736
- /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)("span", { className: "gap" }, void 0, false, {
4256
+ /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)("span", { className: "gap" }, void 0, false, {
3737
4257
  fileName: "../src/react-devtools/TimelineIndex.tsx",
3738
4258
  lineNumber: 37,
3739
4259
  columnNumber: 6
3740
4260
  }, this),
3741
- /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)("nav", { children: [
3742
- /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)(
4261
+ /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)("nav", { children: [
4262
+ /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)(
3743
4263
  "button",
3744
4264
  {
3745
4265
  type: "button",
@@ -3756,7 +4276,7 @@ var TimelineLog = ({ token, isOpenState, timelineState }) => {
3756
4276
  },
3757
4277
  this
3758
4278
  ),
3759
- /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)(
4279
+ /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)(
3760
4280
  "button",
3761
4281
  {
3762
4282
  type: "button",
@@ -3788,18 +4308,18 @@ var TimelineLog = ({ token, isOpenState, timelineState }) => {
3788
4308
  lineNumber: 30,
3789
4309
  columnNumber: 4
3790
4310
  }, this),
3791
- isOpen ? /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)("main", { children: timeline2.history.map((update, index) => /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)(import_react9.Fragment, { children: [
3792
- index === timeline2.at ? /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)(YouAreHere, {}, void 0, false, {
4311
+ isOpen ? /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)("main", { children: timeline2.history.map((update, index) => /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)(import_react10.Fragment, { children: [
4312
+ index === timeline2.at ? /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)(YouAreHere, {}, void 0, false, {
3793
4313
  fileName: "../src/react-devtools/TimelineIndex.tsx",
3794
4314
  lineNumber: 60,
3795
4315
  columnNumber: 33
3796
4316
  }, this) : null,
3797
- /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)(article.TimelineUpdate, { timelineUpdate: update }, void 0, false, {
4317
+ /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)(article.TimelineUpdate, { timelineUpdate: update }, void 0, false, {
3798
4318
  fileName: "../src/react-devtools/TimelineIndex.tsx",
3799
4319
  lineNumber: 61,
3800
4320
  columnNumber: 8
3801
4321
  }, this),
3802
- index === timeline2.history.length - 1 && timeline2.at === timeline2.history.length ? /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)(YouAreHere, {}, void 0, false, {
4322
+ index === timeline2.history.length - 1 && timeline2.at === timeline2.history.length ? /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)(YouAreHere, {}, void 0, false, {
3803
4323
  fileName: "../src/react-devtools/TimelineIndex.tsx",
3804
4324
  lineNumber: 64,
3805
4325
  columnNumber: 9
@@ -3820,9 +4340,9 @@ var TimelineLog = ({ token, isOpenState, timelineState }) => {
3820
4340
  }, this);
3821
4341
  };
3822
4342
  var TimelineIndex = () => {
3823
- const tokenIds = (0, import_react8.useO)(timelineIndex);
3824
- return /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)("article", { className: "index timeline_index", children: tokenIds.filter((token) => !token.key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)).map((token) => {
3825
- return /* @__PURE__ */ (0, import_jsx_dev_runtime17.jsxDEV)(
4343
+ const tokenIds = (0, import_react9.useO)(timelineIndex);
4344
+ return /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)("article", { className: "index timeline_index", children: tokenIds.filter((token) => !token.key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)).map((token) => {
4345
+ return /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)(
3826
4346
  TimelineLog,
3827
4347
  {
3828
4348
  token,
@@ -3846,25 +4366,25 @@ var TimelineIndex = () => {
3846
4366
  };
3847
4367
 
3848
4368
  // ../src/react-devtools/TransactionIndex.tsx
3849
- var import_react10 = require("atom.io/react");
3850
- var import_jsx_dev_runtime18 = require("react/jsx-dev-runtime");
4369
+ var import_react11 = require("atom.io/react");
4370
+ var import_jsx_dev_runtime20 = require("react/jsx-dev-runtime");
3851
4371
  var TransactionLog = ({ token, isOpenState, logState }) => {
3852
- const log = (0, import_react10.useO)(logState);
3853
- const [isOpen, setIsOpen] = (0, import_react10.useIO)(isOpenState);
3854
- return /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("section", { className: "node transaction_log", children: [
3855
- /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("header", { children: [
3856
- /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)(button.OpenClose, { isOpen, setIsOpen }, void 0, false, {
4372
+ const log = (0, import_react11.useO)(logState);
4373
+ const [isOpen, setIsOpen] = (0, import_react11.useIO)(isOpenState);
4374
+ return /* @__PURE__ */ (0, import_jsx_dev_runtime20.jsxDEV)("section", { className: "node transaction_log", children: [
4375
+ /* @__PURE__ */ (0, import_jsx_dev_runtime20.jsxDEV)("header", { children: [
4376
+ /* @__PURE__ */ (0, import_jsx_dev_runtime20.jsxDEV)(button.OpenClose, { isOpen, setIsOpen }, void 0, false, {
3857
4377
  fileName: "../src/react-devtools/TransactionIndex.tsx",
3858
4378
  lineNumber: 31,
3859
4379
  columnNumber: 5
3860
4380
  }, this),
3861
- /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("label", { children: [
3862
- /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("h2", { children: token.key }, void 0, false, {
4381
+ /* @__PURE__ */ (0, import_jsx_dev_runtime20.jsxDEV)("label", { children: [
4382
+ /* @__PURE__ */ (0, import_jsx_dev_runtime20.jsxDEV)("h2", { children: token.key }, void 0, false, {
3863
4383
  fileName: "../src/react-devtools/TransactionIndex.tsx",
3864
4384
  lineNumber: 33,
3865
4385
  columnNumber: 6
3866
4386
  }, this),
3867
- /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("span", { className: "detail length", children: [
4387
+ /* @__PURE__ */ (0, import_jsx_dev_runtime20.jsxDEV)("span", { className: "detail length", children: [
3868
4388
  "(",
3869
4389
  log.length,
3870
4390
  ")"
@@ -3883,7 +4403,7 @@ var TransactionLog = ({ token, isOpenState, logState }) => {
3883
4403
  lineNumber: 30,
3884
4404
  columnNumber: 4
3885
4405
  }, this),
3886
- isOpen ? /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("main", { children: log.map((update, index) => /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)(
4406
+ isOpen ? /* @__PURE__ */ (0, import_jsx_dev_runtime20.jsxDEV)("main", { children: log.map((update, index) => /* @__PURE__ */ (0, import_jsx_dev_runtime20.jsxDEV)(
3887
4407
  article.TransactionUpdate,
3888
4408
  {
3889
4409
  serialNumber: index,
@@ -3909,9 +4429,9 @@ var TransactionLog = ({ token, isOpenState, logState }) => {
3909
4429
  }, this);
3910
4430
  };
3911
4431
  var TransactionIndex = () => {
3912
- const tokenIds = (0, import_react10.useO)(transactionIndex);
3913
- return /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)("article", { className: "index transaction_index", children: tokenIds.filter((token) => !token.key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)).map((token) => {
3914
- return /* @__PURE__ */ (0, import_jsx_dev_runtime18.jsxDEV)(
4432
+ const tokenIds = (0, import_react11.useO)(transactionIndex);
4433
+ return /* @__PURE__ */ (0, import_jsx_dev_runtime20.jsxDEV)("article", { className: "index transaction_index", children: tokenIds.filter((token) => !token.key.startsWith(`\u{1F441}\u200D\u{1F5E8}`)).map((token) => {
4434
+ return /* @__PURE__ */ (0, import_jsx_dev_runtime20.jsxDEV)(
3915
4435
  TransactionLog,
3916
4436
  {
3917
4437
  token,
@@ -3935,15 +4455,15 @@ var TransactionIndex = () => {
3935
4455
  };
3936
4456
 
3937
4457
  // ../src/react-devtools/AtomIODevtools.tsx
3938
- var import_jsx_dev_runtime19 = require("react/jsx-dev-runtime");
4458
+ var import_jsx_dev_runtime21 = require("react/jsx-dev-runtime");
3939
4459
  var AtomIODevtools = () => {
3940
- const constraintsRef = (0, import_react12.useRef)(null);
3941
- const [devtoolsAreOpen, setDevtoolsAreOpen] = (0, import_react11.useIO)(devtoolsAreOpenState);
3942
- const [devtoolsView, setDevtoolsView] = (0, import_react11.useIO)(devtoolsViewSelectionState);
3943
- const devtoolsViewOptions = (0, import_react11.useO)(devtoolsViewOptionsState);
3944
- const mouseHasMoved = (0, import_react12.useRef)(false);
3945
- return /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)(import_jsx_dev_runtime19.Fragment, { children: [
3946
- /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)(
4460
+ const constraintsRef = (0, import_react13.useRef)(null);
4461
+ const [devtoolsAreOpen, setDevtoolsAreOpen] = (0, import_react12.useIO)(devtoolsAreOpenState);
4462
+ const [devtoolsView, setDevtoolsView] = (0, import_react12.useIO)(devtoolsViewSelectionState);
4463
+ const devtoolsViewOptions = (0, import_react12.useO)(devtoolsViewOptionsState);
4464
+ const mouseHasMoved = (0, import_react13.useRef)(false);
4465
+ return /* @__PURE__ */ (0, import_jsx_dev_runtime21.jsxDEV)(import_jsx_dev_runtime21.Fragment, { children: [
4466
+ /* @__PURE__ */ (0, import_jsx_dev_runtime21.jsxDEV)(
3947
4467
  import_framer_motion.motion.span,
3948
4468
  {
3949
4469
  ref: constraintsRef,
@@ -3966,7 +4486,7 @@ var AtomIODevtools = () => {
3966
4486
  },
3967
4487
  this
3968
4488
  ),
3969
- /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)(
4489
+ /* @__PURE__ */ (0, import_jsx_dev_runtime21.jsxDEV)(
3970
4490
  import_framer_motion.motion.main,
3971
4491
  {
3972
4492
  drag: true,
@@ -3980,14 +4500,14 @@ var AtomIODevtools = () => {
3980
4500
  maxWidth: 33
3981
4501
  },
3982
4502
  children: [
3983
- devtoolsAreOpen ? /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)(import_jsx_dev_runtime19.Fragment, { children: [
3984
- /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)(import_framer_motion.motion.header, { children: [
3985
- /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)("h1", { children: "atom.io" }, void 0, false, {
4503
+ devtoolsAreOpen ? /* @__PURE__ */ (0, import_jsx_dev_runtime21.jsxDEV)(import_jsx_dev_runtime21.Fragment, { children: [
4504
+ /* @__PURE__ */ (0, import_jsx_dev_runtime21.jsxDEV)(import_framer_motion.motion.header, { children: [
4505
+ /* @__PURE__ */ (0, import_jsx_dev_runtime21.jsxDEV)("h1", { children: "atom.io" }, void 0, false, {
3986
4506
  fileName: "../src/react-devtools/AtomIODevtools.tsx",
3987
4507
  lineNumber: 60,
3988
4508
  columnNumber: 8
3989
4509
  }, this),
3990
- /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)("nav", { children: devtoolsViewOptions.map((viewOption) => /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)(
4510
+ /* @__PURE__ */ (0, import_jsx_dev_runtime21.jsxDEV)("nav", { children: devtoolsViewOptions.map((viewOption) => /* @__PURE__ */ (0, import_jsx_dev_runtime21.jsxDEV)(
3991
4511
  "button",
3992
4512
  {
3993
4513
  type: "button",
@@ -4014,19 +4534,19 @@ var AtomIODevtools = () => {
4014
4534
  lineNumber: 59,
4015
4535
  columnNumber: 7
4016
4536
  }, this),
4017
- /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)(import_framer_motion.motion.main, { children: /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)(import_framer_motion.LayoutGroup, { children: devtoolsView === `atoms` ? /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)(StateIndex, { tokenIndex: atomIndex }, void 0, false, {
4537
+ /* @__PURE__ */ (0, import_jsx_dev_runtime21.jsxDEV)(import_framer_motion.motion.main, { children: /* @__PURE__ */ (0, import_jsx_dev_runtime21.jsxDEV)(import_framer_motion.LayoutGroup, { children: devtoolsView === `atoms` ? /* @__PURE__ */ (0, import_jsx_dev_runtime21.jsxDEV)(StateIndex, { tokenIndex: atomIndex }, void 0, false, {
4018
4538
  fileName: "../src/react-devtools/AtomIODevtools.tsx",
4019
4539
  lineNumber: 78,
4020
4540
  columnNumber: 10
4021
- }, this) : devtoolsView === `selectors` ? /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)(StateIndex, { tokenIndex: selectorIndex }, void 0, false, {
4541
+ }, this) : devtoolsView === `selectors` ? /* @__PURE__ */ (0, import_jsx_dev_runtime21.jsxDEV)(StateIndex, { tokenIndex: selectorIndex }, void 0, false, {
4022
4542
  fileName: "../src/react-devtools/AtomIODevtools.tsx",
4023
4543
  lineNumber: 80,
4024
4544
  columnNumber: 10
4025
- }, this) : devtoolsView === `transactions` ? /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)(TransactionIndex, {}, void 0, false, {
4545
+ }, this) : devtoolsView === `transactions` ? /* @__PURE__ */ (0, import_jsx_dev_runtime21.jsxDEV)(TransactionIndex, {}, void 0, false, {
4026
4546
  fileName: "../src/react-devtools/AtomIODevtools.tsx",
4027
4547
  lineNumber: 82,
4028
4548
  columnNumber: 10
4029
- }, this) : devtoolsView === `timelines` ? /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)(TimelineIndex, {}, void 0, false, {
4549
+ }, this) : devtoolsView === `timelines` ? /* @__PURE__ */ (0, import_jsx_dev_runtime21.jsxDEV)(TimelineIndex, {}, void 0, false, {
4030
4550
  fileName: "../src/react-devtools/AtomIODevtools.tsx",
4031
4551
  lineNumber: 84,
4032
4552
  columnNumber: 10
@@ -4044,7 +4564,7 @@ var AtomIODevtools = () => {
4044
4564
  lineNumber: 58,
4045
4565
  columnNumber: 6
4046
4566
  }, this) : null,
4047
- /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)("footer", { children: /* @__PURE__ */ (0, import_jsx_dev_runtime19.jsxDEV)(
4567
+ /* @__PURE__ */ (0, import_jsx_dev_runtime21.jsxDEV)("footer", { children: /* @__PURE__ */ (0, import_jsx_dev_runtime21.jsxDEV)(
4048
4568
  "button",
4049
4569
  {
4050
4570
  type: "button",