forgebook 0.1.4 → 0.1.6

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 (184) hide show
  1. package/README.md +32 -1
  2. package/dist/bin/forgebook/agentClient.d.ts.map +1 -1
  3. package/dist/bin/forgebook/agentClient.js +2 -2
  4. package/dist/bin/forgebook/agentClient.js.map +1 -1
  5. package/dist/bin/forgebook/agentLoopCommands.d.mts.map +1 -1
  6. package/dist/bin/forgebook/agentLoopCommands.mjs +24 -3
  7. package/dist/bin/forgebook/agentLoopCommands.mjs.map +1 -1
  8. package/dist/bin/forgebook/agents.md +7 -1
  9. package/dist/bin/forgebook/errorsRun.d.ts.map +1 -1
  10. package/dist/bin/forgebook/errorsRun.js +14 -1
  11. package/dist/bin/forgebook/errorsRun.js.map +1 -1
  12. package/dist/bin/forgebook/forgebook.mjs +12 -2
  13. package/dist/bin/forgebook/forgebook.mjs.map +1 -1
  14. package/dist/bin/forgebook/importers/storybook.d.ts.map +1 -1
  15. package/dist/bin/forgebook/importers/storybook.js +41 -7
  16. package/dist/bin/forgebook/importers/storybook.js.map +1 -1
  17. package/dist/bin/forgebook/initCommands.d.mts.map +1 -1
  18. package/dist/bin/forgebook/initCommands.mjs +5 -2
  19. package/dist/bin/forgebook/initCommands.mjs.map +1 -1
  20. package/dist/bin/forgebook/mcpTools.d.ts.map +1 -1
  21. package/dist/bin/forgebook/mcpTools.js +14 -2
  22. package/dist/bin/forgebook/mcpTools.js.map +1 -1
  23. package/dist/bin/forgebook/storyCheckRun.d.ts +10 -0
  24. package/dist/bin/forgebook/storyCheckRun.d.ts.map +1 -1
  25. package/dist/bin/forgebook/storyCheckRun.js +4 -3
  26. package/dist/bin/forgebook/storyCheckRun.js.map +1 -1
  27. package/dist/bin/forgebook/touchWindowRun.d.ts +17 -0
  28. package/dist/bin/forgebook/touchWindowRun.d.ts.map +1 -0
  29. package/dist/bin/forgebook/touchWindowRun.js +22 -0
  30. package/dist/bin/forgebook/touchWindowRun.js.map +1 -0
  31. package/dist/src/catalogue.d.ts +6 -4
  32. package/dist/src/catalogue.d.ts.map +1 -1
  33. package/dist/src/catalogue.js +2 -1
  34. package/dist/src/catalogue.js.map +1 -1
  35. package/dist/src/controlKeys.d.ts +4 -4
  36. package/dist/src/controlKeys.d.ts.map +1 -1
  37. package/dist/src/controlKeys.js +12 -8
  38. package/dist/src/controlKeys.js.map +1 -1
  39. package/dist/src/frame/frameView.d.ts.map +1 -1
  40. package/dist/src/frame/frameView.js +7 -2
  41. package/dist/src/frame/frameView.js.map +1 -1
  42. package/dist/src/frame/mountFrame.d.ts.map +1 -1
  43. package/dist/src/frame/mountFrame.js +5 -1
  44. package/dist/src/frame/mountFrame.js.map +1 -1
  45. package/dist/src/frame/spillOutline.d.ts.map +1 -1
  46. package/dist/src/frame/spillOutline.js +2 -0
  47. package/dist/src/frame/spillOutline.js.map +1 -1
  48. package/dist/src/frame/touchDots.d.ts +32 -0
  49. package/dist/src/frame/touchDots.d.ts.map +1 -0
  50. package/dist/src/frame/touchDots.js +52 -0
  51. package/dist/src/frame/touchDots.js.map +1 -0
  52. package/dist/src/frame/touchEvents.d.ts +66 -0
  53. package/dist/src/frame/touchEvents.d.ts.map +1 -0
  54. package/dist/src/frame/touchEvents.js +152 -0
  55. package/dist/src/frame/touchEvents.js.map +1 -0
  56. package/dist/src/frame/touchGesture.d.ts +80 -0
  57. package/dist/src/frame/touchGesture.d.ts.map +1 -0
  58. package/dist/src/frame/touchGesture.js +87 -0
  59. package/dist/src/frame/touchGesture.js.map +1 -0
  60. package/dist/src/frame/touchLayer.d.ts +7 -0
  61. package/dist/src/frame/touchLayer.d.ts.map +1 -0
  62. package/dist/src/frame/touchLayer.js +449 -0
  63. package/dist/src/frame/touchLayer.js.map +1 -0
  64. package/dist/src/frame/touchScroll.d.ts +51 -0
  65. package/dist/src/frame/touchScroll.d.ts.map +1 -0
  66. package/dist/src/frame/touchScroll.js +154 -0
  67. package/dist/src/frame/touchScroll.js.map +1 -0
  68. package/dist/src/namedViews.d.ts +10 -1
  69. package/dist/src/namedViews.d.ts.map +1 -1
  70. package/dist/src/namedViews.js +24 -0
  71. package/dist/src/namedViews.js.map +1 -1
  72. package/dist/src/realTouch.d.ts +21 -0
  73. package/dist/src/realTouch.d.ts.map +1 -0
  74. package/dist/src/realTouch.js +16 -0
  75. package/dist/src/realTouch.js.map +1 -0
  76. package/dist/src/shell/ComponentPage.d.ts +6 -1
  77. package/dist/src/shell/ComponentPage.d.ts.map +1 -1
  78. package/dist/src/shell/ComponentPage.js +11 -3
  79. package/dist/src/shell/ComponentPage.js.map +1 -1
  80. package/dist/src/shell/ControlRow.d.ts.map +1 -1
  81. package/dist/src/shell/ControlRow.js +4 -1
  82. package/dist/src/shell/ControlRow.js.map +1 -1
  83. package/dist/src/shell/Example.d.ts +5 -0
  84. package/dist/src/shell/Example.d.ts.map +1 -1
  85. package/dist/src/shell/Example.js +18 -2
  86. package/dist/src/shell/Example.js.map +1 -1
  87. package/dist/src/shell/FrameView.d.ts +7 -0
  88. package/dist/src/shell/FrameView.d.ts.map +1 -1
  89. package/dist/src/shell/FrameView.js +12 -0
  90. package/dist/src/shell/FrameView.js.map +1 -1
  91. package/dist/src/shell/InfoTip.d.ts +23 -0
  92. package/dist/src/shell/InfoTip.d.ts.map +1 -0
  93. package/dist/src/shell/InfoTip.js +53 -0
  94. package/dist/src/shell/InfoTip.js.map +1 -0
  95. package/dist/src/shell/NamedViews.d.ts.map +1 -1
  96. package/dist/src/shell/NamedViews.js +2 -2
  97. package/dist/src/shell/NamedViews.js.map +1 -1
  98. package/dist/src/shell/PinnedControl.d.ts.map +1 -1
  99. package/dist/src/shell/PinnedControl.js +14 -2
  100. package/dist/src/shell/PinnedControl.js.map +1 -1
  101. package/dist/src/shell/Shell.d.ts.map +1 -1
  102. package/dist/src/shell/Shell.js +21 -3
  103. package/dist/src/shell/Shell.js.map +1 -1
  104. package/dist/src/shell/UsedIn.d.ts +4 -3
  105. package/dist/src/shell/UsedIn.d.ts.map +1 -1
  106. package/dist/src/shell/UsedIn.js +11 -7
  107. package/dist/src/shell/UsedIn.js.map +1 -1
  108. package/dist/src/shell/ViewMenu.d.ts +4 -2
  109. package/dist/src/shell/ViewMenu.d.ts.map +1 -1
  110. package/dist/src/shell/ViewMenu.js +14 -7
  111. package/dist/src/shell/ViewMenu.js.map +1 -1
  112. package/dist/src/shell/controlCycle.d.ts.map +1 -1
  113. package/dist/src/shell/controlCycle.js +3 -2
  114. package/dist/src/shell/controlCycle.js.map +1 -1
  115. package/dist/src/shell/icons.d.ts +1 -0
  116. package/dist/src/shell/icons.d.ts.map +1 -1
  117. package/dist/src/shell/icons.js +1 -0
  118. package/dist/src/shell/icons.js.map +1 -1
  119. package/dist/src/shell/shell.css +58 -1
  120. package/dist/src/shell/storyTouch.d.ts +52 -0
  121. package/dist/src/shell/storyTouch.d.ts.map +1 -0
  122. package/dist/src/shell/storyTouch.js +33 -0
  123. package/dist/src/shell/storyTouch.js.map +1 -0
  124. package/dist/src/shell/strings.d.ts +4 -3
  125. package/dist/src/shell/strings.d.ts.map +1 -1
  126. package/dist/src/shell/strings.js +4 -3
  127. package/dist/src/shell/strings.js.map +1 -1
  128. package/dist/src/shell/useFold.d.ts.map +1 -1
  129. package/dist/src/shell/useFold.js +2 -0
  130. package/dist/src/shell/useFold.js.map +1 -1
  131. package/dist/src/shell/useFrameMessages.d.ts +5 -2
  132. package/dist/src/shell/useFrameMessages.d.ts.map +1 -1
  133. package/dist/src/shell/useFrameMessages.js +1 -1
  134. package/dist/src/shell/useFrameMessages.js.map +1 -1
  135. package/dist/src/shell/useLiveView.d.ts +8 -1
  136. package/dist/src/shell/useLiveView.d.ts.map +1 -1
  137. package/dist/src/shell/useLiveView.js +14 -4
  138. package/dist/src/shell/useLiveView.js.map +1 -1
  139. package/dist/src/shell/useWorstCase.d.ts +2 -2
  140. package/dist/src/shell/useWorstCase.d.ts.map +1 -1
  141. package/dist/src/shell/useWorstCase.js +10 -3
  142. package/dist/src/shell/useWorstCase.js.map +1 -1
  143. package/dist/src/storyTree.d.ts +2 -0
  144. package/dist/src/storyTree.d.ts.map +1 -1
  145. package/dist/src/storyTree.js +1 -0
  146. package/dist/src/storyTree.js.map +1 -1
  147. package/dist/src/switches.d.ts +32 -6
  148. package/dist/src/switches.d.ts.map +1 -1
  149. package/dist/src/switches.js +45 -7
  150. package/dist/src/switches.js.map +1 -1
  151. package/dist/src/viewState.d.ts +27 -2
  152. package/dist/src/viewState.d.ts.map +1 -1
  153. package/dist/src/viewState.js +35 -2
  154. package/dist/src/viewState.js.map +1 -1
  155. package/dist/src/vite/agentRoutes.d.ts +7 -0
  156. package/dist/src/vite/agentRoutes.d.ts.map +1 -1
  157. package/dist/src/vite/agentRoutes.js +15 -2
  158. package/dist/src/vite/agentRoutes.js.map +1 -1
  159. package/dist/src/vite/forcedStates.d.ts +6 -2
  160. package/dist/src/vite/forcedStates.d.ts.map +1 -1
  161. package/dist/src/vite/forcedStates.js +20 -4
  162. package/dist/src/vite/forcedStates.js.map +1 -1
  163. package/dist/src/vite/forgebookPlugin.d.ts.map +1 -1
  164. package/dist/src/vite/forgebookPlugin.js +11 -21
  165. package/dist/src/vite/forgebookPlugin.js.map +1 -1
  166. package/dist/src/vite/indexStoryFile.d.ts +1 -1
  167. package/dist/src/vite/indexStoryFile.d.ts.map +1 -1
  168. package/dist/src/vite/indexStoryFile.js +14 -1
  169. package/dist/src/vite/indexStoryFile.js.map +1 -1
  170. package/dist/src/vite/mcpProtocol.d.ts.map +1 -1
  171. package/dist/src/vite/mcpProtocol.js +9 -1
  172. package/dist/src/vite/mcpProtocol.js.map +1 -1
  173. package/dist/src/vite/storyFilesModule.d.ts +25 -3
  174. package/dist/src/vite/storyFilesModule.d.ts.map +1 -1
  175. package/dist/src/vite/storyFilesModule.js +31 -4
  176. package/dist/src/vite/storyFilesModule.js.map +1 -1
  177. package/dist/src/vite/touchMedia.d.ts +35 -0
  178. package/dist/src/vite/touchMedia.d.ts.map +1 -0
  179. package/dist/src/vite/touchMedia.js +282 -0
  180. package/dist/src/vite/touchMedia.js.map +1 -0
  181. package/dist/src/vite/usageGraph.d.ts.map +1 -1
  182. package/dist/src/vite/usageGraph.js +25 -1
  183. package/dist/src/vite/usageGraph.js.map +1 -1
  184. package/package.json +8 -4
@@ -0,0 +1,154 @@
1
+ /**
2
+ * A simulated finger's scrolling: the container a drag scrolls, on the axes the `touch-action` on the way allows, and
3
+ * the fling that carries on after the finger lifts.
4
+ *
5
+ * @remarks
6
+ * An approximation of the browser's own scrolling, which a page cannot start: no rubber band at the ends, the fling
7
+ * slows down at one fixed rate (`flungSpeed`), and a container that snaps snaps once the finger lifts. The scroll keeps to the drag's axis; the container is the nearest
8
+ * ancestor that scrolls on it, up to the document's own scrolling element.
9
+ *
10
+ * @module
11
+ */
12
+ import { allowedPan, flungSpeed } from "./touchGesture.js";
13
+ /** How far ahead a snapping container's fling is aimed, in ms of the finger's last speed. */
14
+ const SNAP_AIM_MS = 250;
15
+ /**
16
+ * Whether an element scrolls on an axis: it overflows there and its style lets it.
17
+ *
18
+ * @param element - the element.
19
+ * @param axis - the axis.
20
+ */
21
+ const scrollsOn = (element, axis) => {
22
+ const property = axis === "x" ? "overflowX" : "overflowY";
23
+ const document = element.ownerDocument;
24
+ const overflow = getComputedStyle(element)[property];
25
+ // the document scrolls unless its root or its body hides its overflow (a story that locks it behind a dialog)
26
+ const isDocument = element === document.scrollingElement;
27
+ const isDocumentLocked = [document.documentElement, document.body].some((each) => {
28
+ const value = getComputedStyle(each)[property];
29
+ return value === "hidden" || value === "clip";
30
+ });
31
+ const isScrollable = isDocument ? !isDocumentLocked : overflow === "auto" || overflow === "scroll";
32
+ const size = axis === "x" ? element.scrollWidth - element.clientWidth : element.scrollHeight - element.clientHeight;
33
+ return isScrollable && size > 0;
34
+ };
35
+ /**
36
+ * A drag's scroll begins: a container that snaps stops snapping while the finger drags it, or every step of the drag
37
+ * would snap to a whole item.
38
+ *
39
+ * @param scroller - the container.
40
+ * @param axis - the drag's axis.
41
+ */
42
+ const startPan = (scroller, axis) => {
43
+ const isSnapping = getComputedStyle(scroller).scrollSnapType !== "none";
44
+ const style = scroller instanceof HTMLElement ? scroller.style : undefined;
45
+ const pausedSnap = isSnapping && style !== undefined ? style.scrollSnapType : undefined;
46
+ if (pausedSnap !== undefined && style !== undefined)
47
+ style.scrollSnapType = "none";
48
+ return { scroller, axes: { x: axis === "x", y: axis === "y" }, pausedSnap };
49
+ };
50
+ /**
51
+ * The scroll a drag drives along its axis, or none when the `touch-action` on the way forbids that axis (a horizontal
52
+ * swipe on a `pan-y` row stays the row's) or nothing on the way scrolls on it.
53
+ *
54
+ * @param target - the element the finger went down on.
55
+ * @param axis - the drag's axis.
56
+ */
57
+ export const panOf = (target, axis) => {
58
+ const touchActions = [];
59
+ for (let element = target; element !== null; element = element.parentElement) {
60
+ touchActions.push(getComputedStyle(element).touchAction);
61
+ if (!allowedPan(touchActions)[axis])
62
+ return undefined;
63
+ if (scrollsOn(element, axis))
64
+ return startPan(element, axis);
65
+ }
66
+ return undefined;
67
+ };
68
+ /**
69
+ * Scrolls by a finger's move: the content follows the finger.
70
+ *
71
+ * @param pan - the scroll.
72
+ * @param from - where the finger was.
73
+ * @param to - where it is.
74
+ */
75
+ export const panBy = (pan, from, to) => pan.scroller.scrollBy({
76
+ left: pan.axes.x ? from.x - to.x : 0,
77
+ top: pan.axes.y ? from.y - to.y : 0,
78
+ behavior: "instant"
79
+ });
80
+ /**
81
+ * Carries a scroll on after the finger lifts, slowing down; the returned function stops it (a new touch does).
82
+ *
83
+ * @param pan - the scroll.
84
+ * @param speed - the finger's last speed, in CSS px per ms, per axis.
85
+ */
86
+ const fling = (pan, speed) => {
87
+ const view = pan.scroller.ownerDocument.defaultView;
88
+ if (view === null)
89
+ return () => undefined;
90
+ let current = { x: pan.axes.x ? speed.x : 0, y: pan.axes.y ? speed.y : 0 };
91
+ let last = view.performance.now();
92
+ let frame = 0;
93
+ const step = (now) => {
94
+ // a frame's time may come before the time the fling started at
95
+ const ms = Math.max(0, now - last);
96
+ last = now;
97
+ pan.scroller.scrollBy({ left: -current.x * ms, top: -current.y * ms, behavior: "instant" });
98
+ current = { x: flungSpeed(current.x, ms), y: flungSpeed(current.y, ms) };
99
+ if (current.x !== 0 || current.y !== 0)
100
+ frame = view.requestAnimationFrame(step);
101
+ };
102
+ frame = view.requestAnimationFrame(step);
103
+ return () => view.cancelAnimationFrame(frame);
104
+ };
105
+ /**
106
+ * Where a snapping container's items snap along an axis, in its scroll coordinates: its children that snap, each by
107
+ * its `scroll-snap-align` (start, center or end; the container's `scroll-padding` is not read).
108
+ *
109
+ * @param scroller - the container.
110
+ * @param axis - the axis.
111
+ */
112
+ const snapPoints = (scroller, axis) => {
113
+ const box = scroller.getBoundingClientRect();
114
+ const room = axis === "x" ? scroller.clientWidth : scroller.clientHeight;
115
+ const scrolled = axis === "x" ? scroller.scrollLeft : scroller.scrollTop;
116
+ return [...scroller.children].flatMap((child) => {
117
+ const aligns = getComputedStyle(child).scrollSnapAlign.split(/\s+/);
118
+ // one value aligns both axes; two give the block axis (y) then the inline one (x)
119
+ const align = (axis === "x" ? aligns[1] : aligns[0]) ?? aligns[0] ?? "none";
120
+ if (align === "none")
121
+ return [];
122
+ const childBox = child.getBoundingClientRect();
123
+ const start = (axis === "x" ? childBox.left - box.left : childBox.top - box.top) + scrolled;
124
+ const size = axis === "x" ? childBox.width : childBox.height;
125
+ if (align === "center")
126
+ return [start + size / 2 - room / 2];
127
+ return [align === "end" ? start + size - room : start];
128
+ });
129
+ };
130
+ /**
131
+ * A drag's scroll ends as the finger lifts: a container that snaps snaps again, to the item nearest where the finger
132
+ * aimed (its place now plus its last speed, at most half the container ahead, so a flick goes to the next item and
133
+ * never past it), with the browser's smooth scroll; any other flings on. The returned function stops a fling (a new
134
+ * touch does).
135
+ *
136
+ * @param pan - the scroll.
137
+ * @param speed - the finger's last speed, in CSS px per ms, per axis.
138
+ */
139
+ export const endPan = (pan, speed) => {
140
+ if (pan.pausedSnap === undefined || !(pan.scroller instanceof HTMLElement))
141
+ return fling(pan, speed);
142
+ const scroller = pan.scroller;
143
+ const axis = pan.axes.x ? "x" : "y";
144
+ const room = axis === "x" ? scroller.clientWidth : scroller.clientHeight;
145
+ const now = axis === "x" ? scroller.scrollLeft : scroller.scrollTop;
146
+ const aim = now + Math.max(-room / 2, Math.min(room / 2, -(axis === "x" ? speed.x : speed.y) * SNAP_AIM_MS));
147
+ const target = snapPoints(scroller, axis).reduce((best, point) => (Math.abs(point - aim) < Math.abs(best - aim) ? point : best), aim);
148
+ // snapping comes back only now: back on, it would snap the place the finger left before the target is read
149
+ scroller.style.scrollSnapType = pan.pausedSnap;
150
+ scroller.scrollTo({ [axis === "x" ? "left" : "top"]: target, behavior: "smooth" });
151
+ // a new touch stops the smooth scroll where it is, as a finger stops a scrolling list
152
+ return () => scroller.scrollTo({ left: scroller.scrollLeft, top: scroller.scrollTop, behavior: "instant" });
153
+ };
154
+ //# sourceMappingURL=touchScroll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"touchScroll.js","sourceRoot":"","sources":["../../../src/frame/touchScroll.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  *
10
10
  * @module
11
11
  */
12
- import type { ViewState } from "./viewState.ts";
12
+ import { type ViewCatalogue, type ViewState } from "./viewState.ts";
13
13
  /** The values a named view holds: the View menu's. */
14
14
  export type ViewValues = Pick<ViewState, "switches" | "backdrop" | "sheets" | "text" | "width">;
15
15
  /** A view saved under a name. */
@@ -77,4 +77,13 @@ export declare const isSameView: (first: ViewValues, second: ViewValues, switche
77
77
  readonly id: string;
78
78
  readonly default: string;
79
79
  }[]) => boolean;
80
+ /**
81
+ * A view with a named view's values read back as an address is: what the catalogue no longer offers (a background, a
82
+ * text size, a control it turned off) falls back to its default, so a view saved before the catalogue changed never
83
+ * sets what the catalogue cannot show.
84
+ *
85
+ * @param view - the view with the named view's values set.
86
+ * @param catalogue - the catalogue's switches and lists.
87
+ */
88
+ export declare const checkedView: (view: ViewState, catalogue: ViewCatalogue) => ViewState;
80
89
  //# sourceMappingURL=namedViews.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"namedViews.d.ts","sourceRoot":"","sources":["../../src/namedViews.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,sDAAsD;AACtD,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAEhG,iCAAiC;AACjC,MAAM,MAAM,SAAS,GAAG;IACtB,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kBAAkB;IAClB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC7B,CAAC;AAEF,qEAAqE;AACrE,MAAM,MAAM,aAAa,GAAG;IAC1B,gBAAgB;IAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gGAAgG;IAChG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,SAAS,KAAG,UAM3C,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,SAAS,EAAE,QAAQ,UAAU,KAAG,SAAqC,CAAC;AAE3G;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,SAAS,SAAS,EAAE,EAAE,OAAO,SAAS,KAAG,SAAS,EAOtF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,SAAS,SAAS,EAAE,EAAE,MAAM,MAAM,KAAG,SAAS,EACrC,CAAC;AAgB7C;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,GAAG,IAAI,KAAG,SAAS,EAY/D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,SAAS,SAAS,EAAE,KAAG,MACZ,CAAC;AAElD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GACrB,OAAO,UAAU,EACjB,QAAQ,UAAU,EAClB,UAAU,SAAS;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,KACrE,OAO2B,CAAC"}
1
+ {"version":3,"file":"namedViews.d.ts","sourceRoot":"","sources":["../../src/namedViews.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAa,KAAK,aAAa,EAAE,KAAK,SAAS,EAAc,MAAM,gBAAgB,CAAC;AAE3F,sDAAsD;AACtD,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAEhG,iCAAiC;AACjC,MAAM,MAAM,SAAS,GAAG;IACtB,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kBAAkB;IAClB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC7B,CAAC;AAEF,qEAAqE;AACrE,MAAM,MAAM,aAAa,GAAG;IAC1B,gBAAgB;IAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gGAAgG;IAChG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,SAAS,KAAG,UAM3C,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,SAAS,EAAE,QAAQ,UAAU,KAAG,SAAqC,CAAC;AAE3G;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,SAAS,SAAS,EAAE,EAAE,OAAO,SAAS,KAAG,SAAS,EAOtF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,SAAS,SAAS,EAAE,EAAE,MAAM,MAAM,KAAG,SAAS,EACrC,CAAC;AAgB7C;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,GAAG,IAAI,KAAG,SAAS,EAY/D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,SAAS,SAAS,EAAE,KAAG,MACZ,CAAC;AAElD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GACrB,OAAO,UAAU,EACjB,QAAQ,UAAU,EAClB,UAAU,SAAS;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,KACrE,OAO2B,CAAC;AAE/B;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,SAAS,EAAE,WAAW,aAAa,KAAG,SAGtE,CAAC"}
@@ -1,3 +1,15 @@
1
+ /**
2
+ * Named views: the View menu's values saved under a name ("Dark, Italian, 360") and picked again. A reader's, kept in
3
+ * their browser, and the catalogue's own (`views` in its configuration), offered to the whole team.
4
+ *
5
+ * @remarks
6
+ * A named view holds values, never an arrangement: the switches, the background, the style sheets, the text size and
7
+ * the width. Picking one sets them as choosing each would, so the address carries the values; a name never goes in the
8
+ * address, since another reader may not have it. Pure: views in, views out.
9
+ *
10
+ * @module
11
+ */
12
+ import { parseView, viewParams } from "./viewState.js";
1
13
  /**
2
14
  * The values of a view that a named view holds.
3
15
  *
@@ -85,4 +97,16 @@ export const isSameView = (first, second, switches) => switches.every((each) =>
85
97
  first.sheets === second.sheets &&
86
98
  first.text === second.text &&
87
99
  first.width === second.width;
100
+ /**
101
+ * A view with a named view's values read back as an address is: what the catalogue no longer offers (a background, a
102
+ * text size, a control it turned off) falls back to its default, so a view saved before the catalogue changed never
103
+ * sets what the catalogue cannot show.
104
+ *
105
+ * @param view - the view with the named view's values set.
106
+ * @param catalogue - the catalogue's switches and lists.
107
+ */
108
+ export const checkedView = (view, catalogue) => ({
109
+ ...view,
110
+ ...viewValues(parseView(viewParams(view, catalogue.switches).toString(), catalogue))
111
+ });
88
112
  //# sourceMappingURL=namedViews.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"namedViews.js","sourceRoot":"","sources":["../../src/namedViews.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"namedViews.js","sourceRoot":"","sources":["../../src/namedViews.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * The mark of a window where Chromium's own touch emulation runs (`forgebook dev --touch`): its pages see real touch,
3
+ * so the catalogue's simulated touch stays off there. Shared by the window that sets it (`@forgebook/testing/touch`)
4
+ * and the frame that reads it (`touchLayer.ts`).
5
+ *
6
+ * @module
7
+ */
8
+ /** The window property the touch window defines before any page script runs. */
9
+ export declare const REAL_TOUCH_FLAG = "__forgebookRealTouch";
10
+ /**
11
+ * Whether a window runs Chromium's real touch emulation.
12
+ *
13
+ * @param view - the window.
14
+ */
15
+ export declare const isRealTouchWindow: (view: Window) => boolean;
16
+ /** What `forgebook dev --touch` asks of the testing package's touch window. */
17
+ export type TouchWindowRequest = {
18
+ /** The catalogue's address. */
19
+ readonly url: string;
20
+ };
21
+ //# sourceMappingURL=realTouch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realTouch.d.ts","sourceRoot":"","sources":["../../src/realTouch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,gFAAgF;AAChF,eAAO,MAAM,eAAe,yBAAyB,CAAC;AAEtD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,OAAkC,CAAC;AAEpF,+EAA+E;AAC/E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,+BAA+B;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * The mark of a window where Chromium's own touch emulation runs (`forgebook dev --touch`): its pages see real touch,
3
+ * so the catalogue's simulated touch stays off there. Shared by the window that sets it (`@forgebook/testing/touch`)
4
+ * and the frame that reads it (`touchLayer.ts`).
5
+ *
6
+ * @module
7
+ */
8
+ /** The window property the touch window defines before any page script runs. */
9
+ export const REAL_TOUCH_FLAG = "__forgebookRealTouch";
10
+ /**
11
+ * Whether a window runs Chromium's real touch emulation.
12
+ *
13
+ * @param view - the window.
14
+ */
15
+ export const isRealTouchWindow = (view) => REAL_TOUCH_FLAG in view;
16
+ //# sourceMappingURL=realTouch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realTouch.js","sourceRoot":"","sources":["../../src/realTouch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,gFAAgF;AAChF,MAAM,CAAC,MAAM,eAAe,GAAG,sBAAsB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,eAAe,IAAI,IAAI,CAAC"}
@@ -14,6 +14,7 @@
14
14
  import { type ReactNode } from "react";
15
15
  import { type TreeComponent, type TreeStory } from "../storyTree.ts";
16
16
  import { type ViewState } from "../viewState.ts";
17
+ import { type TouchOverrides } from "./storyTouch.ts";
17
18
  import { type UsedInProps } from "./UsedIn.tsx";
18
19
  import { type PageScroll } from "./useScrollMemory.ts";
19
20
  /** The component page's props. */
@@ -22,6 +23,10 @@ export type ComponentPageProps = {
22
23
  readonly component: TreeComponent;
23
24
  /** The view. */
24
25
  readonly view: ViewState;
26
+ /** What the user chose for each story marked for a phone. */
27
+ readonly touchOverrides: TouchOverrides;
28
+ /** Called when the user turns a story's finger on or off. */
29
+ readonly onTouchChange: (storyId: string, isTouch: boolean) => void;
25
30
  /** The frame page's address. */
26
31
  readonly frameUrl: string;
27
32
  /** The address of a story's page, for its link. */
@@ -50,5 +55,5 @@ export type ComponentPageProps = {
50
55
  *
51
56
  * @param props - the component, the view, its loaders and how to open a story.
52
57
  */
53
- export declare const ComponentPage: ({ component, view, frameUrl, hrefOf, onOpen, loadDocs, loadCode, loadPage, heightOf, background, header, scroll, usedIn }: ComponentPageProps) => ReactNode;
58
+ export declare const ComponentPage: ({ component, view, touchOverrides, onTouchChange, frameUrl, hrefOf, onOpen, loadDocs, loadCode, loadPage, heightOf, background, header, scroll, usedIn }: ComponentPageProps) => ReactNode;
54
59
  //# sourceMappingURL=ComponentPage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentPage.d.ts","sourceRoot":"","sources":["../../../src/shell/ComponentPage.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,KAAK,SAAS,EAA6B,MAAM,OAAO,CAAC;AAKlE,OAAO,EAA6B,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAO3D,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAOxD,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,sBAAsB,CAAC;AAGxE,kCAAkC;AAClC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,qBAAqB;IACrB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,gBAAgB;IAChB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC;IAC9C,4BAA4B;IAC5B,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC5C,4GAA4G;IAC5G,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACxD,8FAA8F;IAC9F,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACxD,8FAA8F;IAC9F,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACxD,wGAAwG;IACxG,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC3D,gHAAgH;IAChH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,qGAAqG;IACrG,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;CAC1D,CAAC;AAyCF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,2HAc3B,kBAAkB,KAAG,SAgGvB,CAAC"}
1
+ {"version":3,"file":"ComponentPage.d.ts","sourceRoot":"","sources":["../../../src/shell/ComponentPage.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,KAAK,SAAS,EAA6B,MAAM,OAAO,CAAC;AAKlE,OAAO,EAA6B,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAM3D,OAAO,EAAkB,KAAK,cAAc,EAAe,MAAM,iBAAiB,CAAC;AAEnF,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAOxD,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,sBAAsB,CAAC;AAGxE,kCAAkC;AAClC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,qBAAqB;IACrB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,gBAAgB;IAChB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,6DAA6D;IAC7D,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,6DAA6D;IAC7D,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACpE,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC;IAC9C,4BAA4B;IAC5B,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC5C,4GAA4G;IAC5G,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACxD,8FAA8F;IAC9F,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACxD,8FAA8F;IAC9F,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IACxD,wGAAwG;IACxG,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC3D,gHAAgH;IAChH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,qGAAqG;IACrG,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;CAC1D,CAAC;AAyCF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,0JAgB3B,kBAAkB,KAAG,SA0GvB,CAAC"}
@@ -21,6 +21,7 @@ import { CodeText } from "./CodeText.js";
21
21
  import { useCatalogue } from "./catalogueContext.js";
22
22
  import { Example } from "./Example.js";
23
23
  import { PackageHtml } from "./PackageHtml.js";
24
+ import { storyTouchesOf, touchedView } from "./storyTouch.js";
24
25
  import { STRINGS } from "./strings.js";
25
26
  import { UsedIn } from "./UsedIn.js";
26
27
  import { useComponentDocs } from "./useComponentDocs.js";
@@ -59,7 +60,7 @@ const Prose = ({ page }) => {
59
60
  *
60
61
  * @param props - the component, the view, its loaders and how to open a story.
61
62
  */
62
- export const ComponentPage = ({ component, view, frameUrl, hrefOf, onOpen, loadDocs, loadCode, loadPage, heightOf, background, header, scroll, usedIn }) => {
63
+ export const ComponentPage = ({ component, view, touchOverrides, onTouchChange, frameUrl, hrefOf, onOpen, loadDocs, loadCode, loadPage, heightOf, background, header, scroll, usedIn }) => {
63
64
  const pageRef = useRef(null);
64
65
  const docs = useComponentDocs(loadDocs);
65
66
  const code = useStoryCode(loadCode);
@@ -73,6 +74,8 @@ export const ComponentPage = ({ component, view, frameUrl, hrefOf, onOpen, loadD
73
74
  const frameView = useLoadedView(view.sheets, view);
74
75
  const catalogue = useCatalogue();
75
76
  const { switches } = catalogue;
77
+ // each story marked for a phone with its own finger: its frame gets it in place of the toolbar's Touch
78
+ const touches = useMemo(() => storyTouchesOf(component.stories, touchOverrides), [component, touchOverrides]);
76
79
  const exampleIds = useMemo(() => examples.map((story) => story.id), [examples]);
77
80
  const queue = useFrameQueue(exampleIds, pageRef);
78
81
  const { heights, settled } = useFrameMessages({
@@ -80,14 +83,17 @@ export const ComponentPage = ({ component, view, frameUrl, hrefOf, onOpen, loadD
80
83
  queue.markReady(message.storyId);
81
84
  setStoryArgs((current) => new Map(current).set(message.storyId, message.args));
82
85
  const send = (shellMessage) => frame.postMessage(shellMessage, window.location.origin);
83
- send({ type: "forgebook:view", view: liveView(view) });
86
+ send({
87
+ type: "forgebook:view",
88
+ view: touchedView(liveView(view), message.storyId, touches, catalogue.touch)
89
+ });
84
90
  send({ type: "forgebook:tools", tools: view.tools });
85
91
  },
86
92
  onCall: () => undefined,
87
93
  // a frame that failed is over too: its place in the queue goes to the next one
88
94
  onFailed: queue.markReady
89
95
  });
90
- useLiveView(pageRef, view, true);
96
+ useLiveView(pageRef, view, true, { touches, choice: catalogue.touch });
91
97
  useScrollMemory(pageRef, scroll);
92
98
  const componentDocs = docs.status === "ready" ? docs.value : undefined;
93
99
  const context = {
@@ -98,6 +104,8 @@ export const ComponentPage = ({ component, view, frameUrl, hrefOf, onOpen, loadD
98
104
  onOpen,
99
105
  frameView,
100
106
  switches,
107
+ touches,
108
+ onTouchChange,
101
109
  heights,
102
110
  settled,
103
111
  code,
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentPage.js","sourceRoot":"","sources":["../../../src/shell/ComponentPage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ComponentPage.js","sourceRoot":"","sources":["../../../src/shell/ComponentPage.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ControlRow.d.ts","sourceRoot":"","sources":["../../../src/shell/ControlRow.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD,OAAO,EAAE,KAAK,cAAc,EAAgC,MAAM,sBAAsB,CAAC;AACzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAK3D;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,uGAYxB,cAAc,GAAG;IAClB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,8DAA8D;IAC9D,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9E,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C,KAAG,SAgEH,CAAC"}
1
+ {"version":3,"file":"ControlRow.d.ts","sourceRoot":"","sources":["../../../src/shell/ControlRow.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAiB,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD,OAAO,EAAE,KAAK,cAAc,EAAgC,MAAM,sBAAsB,CAAC;AACzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAK3D;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,uGAYxB,cAAc,GAAG;IAClB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,8DAA8D;IAC9D,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9E,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C,KAAG,SAmEH,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { ControlKeyField } from "./ControlKeyField.js";
3
+ import { InfoTip } from "./InfoTip.js";
3
4
  import { Icon } from "./icons.js";
4
5
  import { STRINGS } from "./strings.js";
5
6
  import { controlLabel, ToolbarControl } from "./ToolbarControl.js";
@@ -22,6 +23,8 @@ export const ControlRow = ({ each, index, count, isDragged, isMoved, isChanged,
22
23
  layout.move(control.id, target);
23
24
  onAnnounce(STRINGS.controlMoved(label, target + 1, count));
24
25
  };
25
- return (_jsxs("li", { className: "forgebook-arrange", "data-control": control.id, "data-pinned": isPinned ? "" : undefined, "data-dragged": isDragged ? "" : undefined, "data-moved": isMoved ? "" : undefined, children: [_jsx("button", { type: "button", className: "forgebook-arrange__handle", "aria-label": STRINGS.moveControl(label), "aria-describedby": hintId, onPointerDown: (event) => onGrab(event, control.id), onKeyDown: step, children: _jsx(Icon, { name: "grip", size: 14 }) }), _jsxs("span", { className: "forgebook-popover__label", children: [label, isChanged ? (_jsx("span", { className: "forgebook-dot", role: "img", "aria-label": STRINGS.controlChanged(label) })) : null] }), _jsx("div", { className: "forgebook-arrange__control", children: _jsx(ToolbarControl, { control: control, form: "row", ...context }) }), _jsx(ControlKeyField, { label: label, shortcut: layout.keys[control.id], onKeyChange: (key) => layout.setKey(control.id, key) }), _jsx("button", { type: "button", className: "forgebook-icon-button", "aria-label": STRINGS.pinControl(label), title: isMoved ? STRINGS.pinnedNoRoom : STRINGS.pinControl(label), "aria-pressed": isPinned, onClick: () => layout.pin(control.id, !isPinned), children: _jsx(Icon, { name: "pin", size: 14 }) }), _jsx("button", { type: "button", className: "forgebook-icon-button", "aria-label": STRINGS.hideControl(label), title: STRINGS.hideControl(label), onClick: () => layout.hide(control.id, true), children: _jsx(Icon, { name: "eyeOff", size: 14 }) })] }));
26
+ // a switch's note (the touch simulation's limits): an info button beside its value
27
+ const description = control.kind === "switch" ? control.switch.description : undefined;
28
+ return (_jsxs("li", { className: "forgebook-arrange", "data-control": control.id, "data-pinned": isPinned ? "" : undefined, "data-dragged": isDragged ? "" : undefined, "data-moved": isMoved ? "" : undefined, children: [_jsx("button", { type: "button", className: "forgebook-arrange__handle", "aria-label": STRINGS.moveControl(label), "aria-describedby": hintId, onPointerDown: (event) => onGrab(event, control.id), onKeyDown: step, children: _jsx(Icon, { name: "grip", size: 14 }) }), _jsxs("span", { className: "forgebook-popover__label", children: [label, isChanged ? (_jsx("span", { className: "forgebook-dot", role: "img", "aria-label": STRINGS.controlChanged(label) })) : null] }), _jsxs("div", { className: "forgebook-arrange__control", children: [_jsx(ToolbarControl, { control: control, form: "row", ...context }), description === undefined ? null : _jsx(InfoTip, { note: description, about: label })] }), _jsx(ControlKeyField, { label: label, shortcut: layout.keys[control.id], onKeyChange: (key) => layout.setKey(control.id, key) }), _jsx("button", { type: "button", className: "forgebook-icon-button", "aria-label": STRINGS.pinControl(label), title: isMoved ? STRINGS.pinnedNoRoom : STRINGS.pinControl(label), "aria-pressed": isPinned, onClick: () => layout.pin(control.id, !isPinned), children: _jsx(Icon, { name: "pin", size: 14 }) }), _jsx("button", { type: "button", className: "forgebook-icon-button", "aria-label": STRINGS.hideControl(label), title: STRINGS.hideControl(label), onClick: () => layout.hide(control.id, true), children: _jsx(Icon, { name: "eyeOff", size: 14 }) })] }));
26
29
  };
27
30
  //# sourceMappingURL=ControlRow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ControlRow.js","sourceRoot":"","sources":["../../../src/shell/ControlRow.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ControlRow.js","sourceRoot":"","sources":["../../../src/shell/ControlRow.tsx"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ import type { PanelArgs } from "../messages.ts";
10
10
  import type { TreeComponent, TreeStory } from "../storyTree.ts";
11
11
  import type { ViewSwitch } from "../switches.ts";
12
12
  import { type ViewState } from "../viewState.ts";
13
+ import { type StoryTouches } from "./storyTouch.ts";
13
14
  import type { Loaded } from "./useLoaded.ts";
14
15
  /** What every example of the page shares: the frames' address, view and reports, the code, how to open a story. */
15
16
  export type ExampleContext = {
@@ -27,6 +28,10 @@ export type ExampleContext = {
27
28
  readonly frameView: ViewState;
28
29
  /** The catalogue's switches, for the frames' addresses. */
29
30
  readonly switches: readonly ViewSwitch[];
31
+ /** The stories marked for a phone, each with its own finger. */
32
+ readonly touches: StoryTouches;
33
+ /** Called when the user turns a story's finger on or off. */
34
+ readonly onTouchChange: (storyId: string, isTouch: boolean) => void;
30
35
  /** Each frame's reported height, by its address. */
31
36
  readonly heights: ReadonlyMap<string, number>;
32
37
  /** The addresses of the frames that finished loading. */
@@ -1 +1 @@
1
- {"version":3,"file":"Example.d.ts","sourceRoot":"","sources":["../../../src/shell/Example.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAmB,KAAK,SAAS,EAAmB,MAAM,OAAO,CAAC;AAEzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAW/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAQ7C,mHAAmH;AACnH,MAAM,MAAM,cAAc,GAAG;IAC3B,qBAAqB;IACrB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,gBAAgB;IAChB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC;IAC9C,4BAA4B;IAC5B,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC5C,uCAAuC;IACvC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;IACzC,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IACrC,wEAAwE;IACxE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC;IAChD,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC3D,iEAAiE;IACjE,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC,CAAC;AAqLF;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,GAAI,mDAMrB,cAAc,GAAG;IAClB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;CAC1D,KAAG,SAyEH,CAAC"}
1
+ {"version":3,"file":"Example.d.ts","sourceRoot":"","sources":["../../../src/shell/Example.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAqC,KAAK,SAAS,EAAmB,MAAM,OAAO,CAAC;AAE3F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAS/D,OAAO,EAAE,KAAK,YAAY,EAAe,MAAM,iBAAiB,CAAC;AAKjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAQ7C,mHAAmH;AACnH,MAAM,MAAM,cAAc,GAAG;IAC3B,qBAAqB;IACrB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,gBAAgB;IAChB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC;IAC9C,4BAA4B;IAC5B,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC5C,uCAAuC;IACvC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,2DAA2D;IAC3D,QAAQ,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;IACzC,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,6DAA6D;IAC7D,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACpE,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IACrC,wEAAwE;IACxE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC;IAChD,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC3D,iEAAiE;IACjE,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC,CAAC;AA0NF;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,GAAI,mDAMrB,cAAc,GAAG;IAClB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;CAC1D,KAAG,SA+EH,CAAC"}
@@ -3,14 +3,17 @@ import { useId, useState } from "react";
3
3
  import { frameAddress } from "../viewState.js";
4
4
  import { BoxWidthControl, useBoxWidth } from "./BoxWidth.js";
5
5
  import { CodeText } from "./CodeText.js";
6
+ import { useCatalogue } from "./catalogueContext.js";
6
7
  import { useCodeWriter } from "./codeWriter.js";
7
8
  import { FrameView } from "./FrameView.js";
8
9
  import { Icon } from "./icons.js";
9
10
  import { StageViewport } from "./StageViewport.js";
10
11
  import { StoryCodeBlock, storyCodeText } from "./StoryCodeBlock.js";
12
+ import { touchedView } from "./storyTouch.js";
11
13
  import { STRINGS } from "./strings.js";
12
14
  import { useCopy } from "./useCopy.js";
13
15
  import { useFullPage } from "./useFullPage.js";
16
+ import { useLoadedView } from "./useLiveView.js";
14
17
  /** The height of a frame before its story reports its own, in CSS px. */
15
18
  const FALLBACK_HEIGHT = 160;
16
19
  /** The demo's height before its story reports its own, in CSS px: the demo is the page's first, larger frame. */
@@ -52,13 +55,23 @@ const ExampleHead = ({ story, context }) => (_jsxs("header", { className: "forge
52
55
  * @param props - the box's state over the page.
53
56
  */
54
57
  const FullPageSlot = ({ full }) => (_jsxs(_Fragment, { children: [_jsx("div", { ref: full.slotRef, className: "forgebook-example__slot", style: { height: full.slotHeight } }), _jsx("div", { ref: full.shadeRef, className: "forgebook-full-shade", "aria-hidden": "true", onClick: () => full.toggle() })] }));
58
+ /**
59
+ * The Touch toggle of a story marked for a phone: on, the story is touched with a simulated finger whatever the
60
+ * toolbar's Touch switch says.
61
+ *
62
+ * @param props - the story, whether its finger is on, and how to change it.
63
+ */
64
+ const TouchToggle = ({ story, isTouch, onTouchChange }) => (_jsxs("label", { className: "forgebook-example__touch", children: [_jsx("input", { type: "checkbox", role: "switch", "aria-checked": isTouch, "aria-label": STRINGS.touchNamed(story.name), className: "forgebook-switch", checked: isTouch, onChange: (event) => onTouchChange(story.id, event.currentTarget.checked) }), STRINGS.touch] }));
55
65
  /**
56
66
  * An example's bar: its code shown or hidden, the story's width while its box fills the page, its box filling the page
57
67
  * or back in its place, and its story opened on its own page.
58
68
  *
59
69
  * @param props - the story, what every example shares, its code's state and its box's state over the page.
60
70
  */
61
- const ExampleBar = ({ story, context, hasCode, isCodeShown, onCodeShownChange, codeId, full, boxWidth }) => (_jsxs("div", { className: "forgebook-example__bar", children: [hasCode ? (_jsxs("button", { type: "button", className: "forgebook-example__toggle", "aria-expanded": isCodeShown, "aria-controls": codeId, onClick: () => onCodeShownChange(!isCodeShown), children: [_jsx(Icon, { name: "chevronRight", size: 12 }), isCodeShown ? STRINGS.hideCode : STRINGS.showCode] })) : null, _jsx(BoxWidthControl, { boxWidth: boxWidth }), _jsxs("button", { type: "button", className: "forgebook-example__full", "aria-label": full.isFull ? STRINGS.backToPlaceNamed(story.name) : STRINGS.fillPageNamed(story.name), onClick: (event) => full.toggle(event), children: [_jsx(Icon, { name: full.isFull ? "collapse" : "expand", size: 12 }), full.isFull ? STRINGS.backToPlace : STRINGS.fillPage] }), _jsxs(StoryLink, { story: story, hrefOf: context.hrefOf, onOpen: context.onOpen, className: "forgebook-example__open", label: STRINGS.openStoryNamed(story.name), children: [STRINGS.openStory, _jsx(Icon, { name: "external", size: 12 })] })] }));
71
+ const ExampleBar = ({ story, context, hasCode, isCodeShown, onCodeShownChange, codeId, full, boxWidth }) => {
72
+ const isTouch = context.touches.get(story.id);
73
+ return (_jsxs("div", { className: "forgebook-example__bar", children: [hasCode ? (_jsxs("button", { type: "button", className: "forgebook-example__toggle", "aria-expanded": isCodeShown, "aria-controls": codeId, onClick: () => onCodeShownChange(!isCodeShown), children: [_jsx(Icon, { name: "chevronRight", size: 12 }), isCodeShown ? STRINGS.hideCode : STRINGS.showCode] })) : null, isTouch === undefined ? null : (_jsx(TouchToggle, { story: story, isTouch: isTouch, onTouchChange: context.onTouchChange })), _jsx(BoxWidthControl, { boxWidth: boxWidth }), _jsxs("button", { type: "button", className: "forgebook-example__full", "aria-label": full.isFull ? STRINGS.backToPlaceNamed(story.name) : STRINGS.fillPageNamed(story.name), onClick: (event) => full.toggle(event), children: [_jsx(Icon, { name: full.isFull ? "collapse" : "expand", size: 12 }), full.isFull ? STRINGS.backToPlace : STRINGS.fillPage] }), _jsxs(StoryLink, { story: story, hrefOf: context.hrefOf, onOpen: context.onOpen, className: "forgebook-example__open", label: STRINGS.openStoryNamed(story.name), children: [STRINGS.openStory, _jsx(Icon, { name: "external", size: 12 })] })] }));
74
+ };
62
75
  /**
63
76
  * One example: its title and description (the demo has none: it opens the page), its story in a frame, and a bar
64
77
  * that shows its code and opens the story on its own page.
@@ -70,6 +83,9 @@ export const Example = ({ story, isDemo, isMounted, observe, ...context }) => {
70
83
  const [isCodeShown, setIsCodeShown] = useState(false);
71
84
  const codeId = useId();
72
85
  const full = useFullPage();
86
+ const { touch } = useCatalogue();
87
+ // the frame loads with the story's finger as it is then; a change after reaches it live, keeping the story's state
88
+ const loadedView = useLoadedView(context.frameView.sheets, touchedView(context.frameView, story.id, context.touches, touch));
73
89
  const boxWidth = useBoxWidth(full.isOver, context.view.width);
74
90
  // the story's measured height when there is one; a guess otherwise, larger for the demo; never below the height its
75
91
  // scene needs, which its frame has from the start
@@ -82,7 +98,7 @@ export const Example = ({ story, isDemo, isMounted, observe, ...context }) => {
82
98
  args: context.argsOf(story.id)
83
99
  }
84
100
  : undefined;
85
- return (_jsxs("article", { ref: observe, className: "forgebook-example", "data-demo": isDemo ? "" : undefined, "aria-label": isDemo ? STRINGS.frameTitle(context.component.name, story.name) : story.name, children: [isDemo ? null : _jsx(ExampleHead, { story: story, context: context }), full.isOver ? _jsx(FullPageSlot, { full: full }) : null, _jsxs("div", { ref: full.boxRef, className: "forgebook-example__box", "data-full": full.isOver ? "" : undefined, ...(full.isFull ? { role: "dialog", "aria-label": story.name } : {}), children: [_jsx("div", { ref: full.stageRef, className: "forgebook-example__stage", children: _jsx(StageViewport, { width: boxWidth.width, onWidthChange: boxWidth.onWidthChange, onShownWidthChange: boxWidth.onShownWidthChange, background: context.background, children: isMounted ? (_jsx(FrameView, { title: STRINGS.frameTitle(context.component.name, story.name), address: frameAddress(context.frameUrl, story.id, context.frameView, context.switches), heights: context.heights, settled: context.settled, fallbackHeight: fallbackHeight,
101
+ return (_jsxs("article", { ref: observe, className: "forgebook-example", "data-demo": isDemo ? "" : undefined, "aria-label": isDemo ? STRINGS.frameTitle(context.component.name, story.name) : story.name, children: [isDemo ? null : _jsx(ExampleHead, { story: story, context: context }), full.isOver ? _jsx(FullPageSlot, { full: full }) : null, _jsxs("div", { ref: full.boxRef, className: "forgebook-example__box", "data-full": full.isOver ? "" : undefined, ...(full.isFull ? { role: "dialog", "aria-label": story.name } : {}), children: [_jsx("div", { ref: full.stageRef, className: "forgebook-example__stage", children: _jsx(StageViewport, { width: boxWidth.width, onWidthChange: boxWidth.onWidthChange, onShownWidthChange: boxWidth.onShownWidthChange, background: context.background, children: isMounted ? (_jsx(FrameView, { title: STRINGS.frameTitle(context.component.name, story.name), address: frameAddress(context.frameUrl, story.id, loadedView, context.switches), heights: context.heights, settled: context.settled, fallbackHeight: fallbackHeight,
86
102
  // over the page, the story fills the room it has
87
103
  sceneHeight: sceneHeightOf(story, full.stageHeight) })) : (_jsx("div", { className: "forgebook-frame-placeholder", style: { height: fallbackHeight } })) }) }), _jsx(ExampleBar, { story: story, context: context, hasCode: source !== undefined, isCodeShown: isCodeShown, onCodeShownChange: setIsCodeShown, codeId: codeId, full: full, boxWidth: boxWidth }), source === undefined ? null : _jsx(ExampleCode, { id: codeId, source: source, isShown: isCodeShown })] })] }));
88
104
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Example.js","sourceRoot":"","sources":["../../../src/shell/Example.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Example.js","sourceRoot":"","sources":["../../../src/shell/Example.tsx"],"names":[],"mappings":"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"}