@alchemy.run/sigil 0.0.0-alpha.1 → 0.0.0-alpha.11

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 (223) hide show
  1. package/README.md +499 -313
  2. package/THIRD_PARTY_NOTICES.md +98 -23
  3. package/dist/Text-DV9CuzAT.d.ts +452 -0
  4. package/dist/ansi.d.ts +217 -0
  5. package/dist/ansi.js +87 -0
  6. package/dist/capabilities.d.ts +5 -0
  7. package/dist/capabilities.js +3 -0
  8. package/dist/cell-_ZVhbfl0.js +44 -0
  9. package/dist/color-CkbalRqK.js +2 -0
  10. package/dist/color-policy-BAC9-TZX.js +592 -0
  11. package/dist/color-policy-CCxuHIdD.d.ts +22 -0
  12. package/dist/color-profile-CyeHnG1T.d.ts +97 -0
  13. package/dist/color-profile-DHhQHY55.js +36 -0
  14. package/dist/color.d.ts +21 -0
  15. package/dist/color.js +3 -0
  16. package/dist/cursor-position-D2LAkRG0.d.ts +7 -0
  17. package/dist/detect-B3dL4Q11.js +374 -0
  18. package/dist/detect-Db6GbKOm.d.ts +195 -0
  19. package/dist/{devtools-QpCMm9JH.mjs → devtools-DbthxoD1.js} +23 -24
  20. package/dist/env-YVw64yZS.js +9 -0
  21. package/dist/escapes-CB_6CWOE.d.ts +72 -0
  22. package/dist/geometry-BxXOzJgo.d.ts +11 -0
  23. package/dist/index-D48vQhhe.d.ts +21 -0
  24. package/dist/index-DDVME65c.d.ts +919 -0
  25. package/dist/index.d.ts +1310 -0
  26. package/dist/index.js +3211 -0
  27. package/dist/jsx-dev-runtime.d.ts +2 -0
  28. package/dist/jsx-dev-runtime.js +227 -0
  29. package/dist/jsx-runtime-XtwIVFsg.js +255 -0
  30. package/dist/jsx-runtime.d.ts +2 -0
  31. package/dist/jsx-runtime.js +8 -0
  32. package/dist/osc-BFKKSqpg.js +71 -0
  33. package/dist/osc-Cn0fw77g.d.ts +23 -0
  34. package/dist/paint-Cx-zC_sX.d.ts +81 -0
  35. package/dist/query-BNc2B8GD.d.ts +152 -0
  36. package/dist/react-CTZ_8dwh.js +1197 -0
  37. package/dist/react.d.ts +2 -0
  38. package/dist/react.js +49 -0
  39. package/dist/router.d.ts +392 -0
  40. package/dist/router.js +711 -0
  41. package/dist/sample-Cqw1bjUL.js +445 -0
  42. package/dist/screen-CgC2WlVM.d.ts +49 -0
  43. package/dist/screen-CiPytswf.js +342 -0
  44. package/dist/screen.d.ts +5 -0
  45. package/dist/screen.js +5 -0
  46. package/dist/semantic-text-style-DIMzC7xt.js +91 -0
  47. package/dist/serialize-BTkAZgw1.js +79 -0
  48. package/dist/session-DDQ5V300.js +723 -0
  49. package/dist/sgr-BhwaWAJB.js +246 -0
  50. package/dist/store-C1P5fOUi.d.ts +72 -0
  51. package/dist/string-width-CijQwpIk.js +69 -0
  52. package/dist/strip-BvU4toXG.js +6 -0
  53. package/dist/terminal.d.ts +121 -0
  54. package/dist/terminal.js +2 -0
  55. package/dist/tokenize-AjqbvtiT.js +1242 -0
  56. package/dist/tokenize-Dx1y_l5H.d.ts +57 -0
  57. package/dist/truncate-D31fhU6i.js +562 -0
  58. package/dist/use-focus-B5npZrJU.js +18736 -0
  59. package/dist/yoga-5jKhYCJC.js +3465 -0
  60. package/dist/yoga.d.ts +2 -0
  61. package/dist/yoga.js +2 -0
  62. package/package.json +89 -29
  63. package/src/ansi/chalk.ts +138 -0
  64. package/src/ansi/cursor.ts +46 -0
  65. package/src/ansi/east-asian-width.ts +259 -0
  66. package/src/ansi/escapes.ts +120 -0
  67. package/src/ansi/graphemes.ts +8 -0
  68. package/src/ansi/hyperlink.ts +44 -0
  69. package/src/ansi/index.ts +27 -0
  70. package/src/ansi/osc.ts +77 -0
  71. package/src/ansi/sgr.ts +234 -0
  72. package/src/ansi/slice.ts +43 -0
  73. package/src/ansi/string-width.ts +121 -0
  74. package/src/ansi/strip.ts +13 -0
  75. package/src/ansi/tokenize.ts +380 -0
  76. package/src/ansi/truncate.ts +196 -0
  77. package/src/ansi/wrap.ts +765 -0
  78. package/src/ansi-tokenizer.ts +510 -0
  79. package/src/capabilities/color-policy.ts +34 -0
  80. package/src/capabilities/detect.ts +608 -0
  81. package/src/capabilities/index.ts +37 -0
  82. package/src/capabilities/query.ts +679 -0
  83. package/src/capabilities/store.ts +394 -0
  84. package/src/code-excerpt.ts +39 -0
  85. package/src/color/index.ts +3 -0
  86. package/src/color/paint.ts +169 -0
  87. package/src/color/palette.ts +48 -0
  88. package/src/color/sample.ts +323 -0
  89. package/src/color.ts +1 -0
  90. package/src/components/AccessibilityContext.ts +5 -0
  91. package/src/components/AnimationContext.ts +24 -0
  92. package/src/components/AnsiText.tsx +42 -0
  93. package/src/components/App.tsx +878 -0
  94. package/src/components/AppContext.ts +111 -0
  95. package/src/components/BackgroundContext.ts +7 -0
  96. package/src/components/Box.tsx +100 -0
  97. package/src/components/CursorContext.ts +19 -0
  98. package/src/components/ErrorBoundary.tsx +39 -0
  99. package/src/components/ErrorOverview.tsx +135 -0
  100. package/src/components/FocusContext.ts +30 -0
  101. package/src/components/Hyperlink.tsx +56 -0
  102. package/src/components/Newline.tsx +16 -0
  103. package/src/components/Spacer.tsx +11 -0
  104. package/src/components/Static.tsx +60 -0
  105. package/src/components/StderrContext.ts +24 -0
  106. package/src/components/StdinContext.ts +48 -0
  107. package/src/components/StdoutContext.ts +26 -0
  108. package/src/components/TerminalOscContext.ts +25 -0
  109. package/src/components/Text.tsx +122 -0
  110. package/src/components/Transform.tsx +38 -0
  111. package/src/components/VirtualList.tsx +128 -0
  112. package/src/cursor-position.ts +103 -0
  113. package/src/devtools.ts +103 -0
  114. package/src/dom.ts +301 -0
  115. package/src/env.ts +12 -0
  116. package/src/get-max-width.ts +11 -0
  117. package/src/global.d.ts +38 -0
  118. package/src/glyphs.ts +99 -0
  119. package/src/hooks/use-animation.ts +142 -0
  120. package/src/hooks/use-app.ts +8 -0
  121. package/src/hooks/use-box-metrics.ts +134 -0
  122. package/src/hooks/use-capabilities.ts +73 -0
  123. package/src/hooks/use-cursor.ts +33 -0
  124. package/src/hooks/use-focus-manager.ts +62 -0
  125. package/src/hooks/use-focus.ts +82 -0
  126. package/src/hooks/use-input.ts +267 -0
  127. package/src/hooks/use-is-screen-reader-enabled.ts +12 -0
  128. package/src/hooks/use-paste.ts +78 -0
  129. package/src/hooks/use-stderr.ts +8 -0
  130. package/src/hooks/use-stdin.ts +10 -0
  131. package/src/hooks/use-stdout.ts +8 -0
  132. package/src/hooks/use-terminal-osc.ts +59 -0
  133. package/src/hooks/use-virtual-scroll.ts +84 -0
  134. package/src/hooks/use-window-size.ts +37 -0
  135. package/src/index.ts +96 -0
  136. package/src/ink.tsx +1452 -0
  137. package/src/input-parser.ts +303 -0
  138. package/src/instances.ts +9 -0
  139. package/src/jsx-dev-runtime.ts +3 -0
  140. package/src/jsx-runtime.ts +6 -0
  141. package/src/kitty-keyboard.ts +185 -0
  142. package/src/measure-element.ts +62 -0
  143. package/src/measure-text.ts +31 -0
  144. package/src/paint-tree.ts +220 -0
  145. package/src/parse-keypress.ts +515 -0
  146. package/src/parse-stack-line.ts +138 -0
  147. package/src/patch-console.ts +106 -0
  148. package/src/quick-lru.ts +85 -0
  149. package/src/react.ts +53 -0
  150. package/src/reconciler.ts +476 -0
  151. package/src/render-background.ts +59 -0
  152. package/src/render-border.ts +167 -0
  153. package/src/render-frame.ts +83 -0
  154. package/src/render-to-string.ts +146 -0
  155. package/src/render.ts +284 -0
  156. package/src/router/components.tsx +343 -0
  157. package/src/router/context.ts +41 -0
  158. package/src/router/history.ts +194 -0
  159. package/src/router/hooks.tsx +391 -0
  160. package/src/router/index.ts +34 -0
  161. package/src/router/matcher.ts +571 -0
  162. package/src/sanitize-ansi.ts +33 -0
  163. package/src/screen/ansi.ts +184 -0
  164. package/src/screen/canvas.ts +160 -0
  165. package/src/screen/cell.ts +138 -0
  166. package/src/screen/color-profile.ts +47 -0
  167. package/src/screen/geometry.ts +9 -0
  168. package/src/screen/index.ts +6 -0
  169. package/src/screen/screen.ts +305 -0
  170. package/src/screen/serialize.ts +129 -0
  171. package/src/screen.ts +1 -0
  172. package/src/semantic-text-style.ts +118 -0
  173. package/src/signal-exit.ts +106 -0
  174. package/src/squash-text-nodes.ts +37 -0
  175. package/src/stream.ts +28 -0
  176. package/src/structured-text.ts +325 -0
  177. package/src/styles.ts +753 -0
  178. package/src/terminal/index.ts +2 -0
  179. package/src/terminal/inline-presenter.ts +120 -0
  180. package/src/terminal/input.ts +92 -0
  181. package/src/terminal/render-scheduler.ts +37 -0
  182. package/src/terminal/screen-presenter.ts +242 -0
  183. package/src/terminal/session.ts +408 -0
  184. package/src/terminal-size.ts +58 -0
  185. package/src/terminal.ts +1 -0
  186. package/src/testing/browser.ts +588 -0
  187. package/src/testing/emulators.ts +205 -0
  188. package/src/testing/explorer-app/index.html +12 -0
  189. package/src/testing/explorer-app/main.ts +381 -0
  190. package/src/testing/explorer-app/style.css +194 -0
  191. package/src/testing/explorer-app/tsconfig.json +15 -0
  192. package/src/testing/explorer-app/vite-env.d.ts +1 -0
  193. package/src/testing/index.ts +26 -0
  194. package/src/testing/keys.ts +56 -0
  195. package/src/testing/live.ts +85 -0
  196. package/src/testing/matchers.ts +70 -0
  197. package/src/testing/public.ts +94 -0
  198. package/src/testing/terminal.ts +361 -0
  199. package/src/testing/vitest.ts +157 -0
  200. package/src/throttle.ts +73 -0
  201. package/src/transform-adapter.ts +14 -0
  202. package/src/types.ts +10 -0
  203. package/src/virtual-scroll.ts +133 -0
  204. package/src/wrap-text.ts +54 -0
  205. package/src/yoga/config.ts +57 -0
  206. package/src/yoga/core/absoluteLayout.ts +626 -0
  207. package/src/yoga/core/baseline.ts +66 -0
  208. package/src/yoga/core/cache.ts +136 -0
  209. package/src/yoga/core/calculateLayout.ts +2926 -0
  210. package/src/yoga/core/config.ts +104 -0
  211. package/src/yoga/core/flexLine.ts +177 -0
  212. package/src/yoga/core/helpers.ts +293 -0
  213. package/src/yoga/core/layoutResults.ts +167 -0
  214. package/src/yoga/core/node.ts +611 -0
  215. package/src/yoga/core/numeric.ts +44 -0
  216. package/src/yoga/core/pixelGrid.ts +151 -0
  217. package/src/yoga/core/style.ts +887 -0
  218. package/src/yoga/core/types.ts +224 -0
  219. package/src/yoga/generated/YGEnums.ts +263 -0
  220. package/src/yoga/index.ts +19 -0
  221. package/src/yoga/node.ts +1140 -0
  222. package/dist/index.d.mts +0 -2379
  223. package/dist/index.mjs +0 -10072
@@ -1,11 +1,11 @@
1
- import ws from "ws";
2
- import devtools from "react-devtools-core";
3
- //#region src/devtools-window-polyfill.ts
4
- const customGlobal = globalThis;
5
- customGlobal.WebSocket ||= ws;
6
- customGlobal.window ||= globalThis;
7
- customGlobal.self ||= globalThis;
8
- customGlobal.window.__REACT_DEVTOOLS_COMPONENT_FILTERS__ = [
1
+ import { setTimeout } from "node:timers";
2
+ //#region src/devtools.ts
3
+ Object.defineProperties(globalThis, {
4
+ ws: { value: WebSocket },
5
+ window: { value: globalThis },
6
+ self: { value: globalThis }
7
+ });
8
+ Object.defineProperty(globalThis, "__REACT_DEVTOOLS_COMPONENT_FILTERS__", { value: [
9
9
  {
10
10
  type: 1,
11
11
  value: 7,
@@ -47,30 +47,29 @@ customGlobal.window.__REACT_DEVTOOLS_COMPONENT_FILTERS__ = [
47
47
  isEnabled: true,
48
48
  isValid: true
49
49
  }
50
- ];
51
- //#endregion
52
- //#region src/devtools.ts
53
- const isDevToolsReachable = async () => new Promise((resolve) => {
54
- const socket = new ws("ws://localhost:8097");
50
+ ] });
51
+ const isDevToolsReachable = () => new Promise((resolve) => {
52
+ const socket = new WebSocket("ws://localhost:8097");
53
+ const settle = (reachable) => {
54
+ clearTimeout(timeout);
55
+ socket.close();
56
+ resolve(reachable);
57
+ };
55
58
  const timeout = setTimeout(() => {
56
- socket.terminate();
57
- resolve(false);
59
+ settle(false);
58
60
  }, 2e3);
59
61
  timeout.unref();
60
- socket.on("open", () => {
61
- clearTimeout(timeout);
62
- socket.terminate();
63
- resolve(true);
62
+ socket.addEventListener("open", () => {
63
+ settle(true);
64
64
  });
65
- socket.on("error", () => {
66
- clearTimeout(timeout);
67
- socket.terminate();
68
- resolve(false);
65
+ socket.addEventListener("error", () => {
66
+ settle(false);
69
67
  });
70
68
  });
71
69
  if (await isDevToolsReachable()) {
70
+ const devtools = await import("react-devtools-core");
72
71
  devtools.initialize();
73
72
  devtools.connectToDevTools();
74
- } else console.warn("DEV is set to true, but the React DevTools server is not running. Start it with:\n\n$ npx react-devtools\n");
73
+ } else console.warn("SIGIL_DEV is set to true, but the React DevTools server is not running. Start it with:\n\n$ npx react-devtools\n");
75
74
  //#endregion
76
75
  export {};
@@ -0,0 +1,9 @@
1
+ //#region src/env.ts
2
+ const isInCi = Boolean(process.env.CI);
3
+ const isSigilDev = process.env.SIGIL_DEV === "true";
4
+ const isScreenReader = process.env.SIGIL_SCREEN_READER === "true";
5
+ const isWindows = process.platform === "win32";
6
+ const isMacos = process.platform === "darwin";
7
+ const isTty = (stream) => "isTTY" in stream && stream.isTTY === true;
8
+ //#endregion
9
+ export { isTty as a, isSigilDev as i, isMacos as n, isWindows as o, isScreenReader as r, isInCi as t };
@@ -0,0 +1,72 @@
1
+ //#region src/ansi/escapes.d.ts
2
+ declare const ESC = "";
3
+ declare const BEL = "";
4
+ declare const DEL = "";
5
+ /** Control Sequence Introducer. */
6
+ declare const CSI = "[";
7
+ /** Operating System Command. */
8
+ declare const OSC = "]";
9
+ /** String Terminator. */
10
+ declare const ST = "\\";
11
+ /** Single-byte C1 forms of CSI and ST. */
12
+ declare const C1_CSI = "›";
13
+ declare const C1_ST = "œ";
14
+ declare const cursorTo: (x: number, y?: number) => string;
15
+ declare const cursorUp: (count?: number) => string;
16
+ declare const cursorDown: (count?: number) => string;
17
+ declare const cursorLeft: string;
18
+ declare const cursorNextLine: string;
19
+ declare const eraseEndLine: string;
20
+ declare const eraseLine: string;
21
+ declare const eraseScreen: string;
22
+ declare const eraseLines: (count: number) => string;
23
+ declare const clearTerminal = "";
24
+ declare const enterAlternativeScreen: string;
25
+ declare const exitAlternativeScreen: string;
26
+ declare const cursorShow: string;
27
+ declare const cursorHide: string;
28
+ type CursorShape = "block" | "underline" | "bar";
29
+ declare const cursorShape: (shape: CursorShape, blinking?: boolean) => string;
30
+ declare const cursorColor: (color: string) => string;
31
+ declare const resetCursorColor = "]112";
32
+ declare const enableBracketedPaste: string;
33
+ declare const disableBracketedPaste: string;
34
+ declare const pasteStart: string;
35
+ declare const pasteEnd: string;
36
+ declare const bsu: string;
37
+ declare const esu: string;
38
+ declare const kittyQuery: string;
39
+ declare const pushKittyKeyboard: (flags: number) => string;
40
+ declare const popKittyKeyboard: string;
41
+ declare const link: (text: string, url: string) => string;
42
+ declare const ansiEscapes: {
43
+ cursorTo: typeof cursorTo;
44
+ cursorUp: typeof cursorUp;
45
+ cursorDown: typeof cursorDown;
46
+ cursorLeft: string;
47
+ cursorNextLine: string;
48
+ eraseEndLine: string;
49
+ eraseLine: string;
50
+ eraseScreen: string;
51
+ eraseLines: typeof eraseLines;
52
+ clearTerminal: string;
53
+ enterAlternativeScreen: string;
54
+ exitAlternativeScreen: string;
55
+ cursorShow: string;
56
+ cursorHide: string;
57
+ cursorShape: typeof cursorShape;
58
+ cursorColor: typeof cursorColor;
59
+ resetCursorColor: string;
60
+ enableBracketedPaste: string;
61
+ disableBracketedPaste: string;
62
+ pasteStart: string;
63
+ pasteEnd: string;
64
+ bsu: string;
65
+ esu: string;
66
+ kittyQuery: string;
67
+ pushKittyKeyboard: typeof pushKittyKeyboard;
68
+ popKittyKeyboard: string;
69
+ link: typeof link;
70
+ };
71
+ //#endregion
72
+ export { exitAlternativeScreen as A, enableBracketedPaste as C, eraseLines as D, eraseLine as E, popKittyKeyboard as F, pushKittyKeyboard as I, resetCursorColor as L, link as M, pasteEnd as N, eraseScreen as O, pasteStart as P, disableBracketedPaste as S, eraseEndLine as T, cursorNextLine as _, CursorShape as a, cursorTo as b, OSC as c, bsu as d, clearTerminal as f, cursorLeft as g, cursorHide as h, CSI as i, kittyQuery as j, esu as k, ST as l, cursorDown as m, C1_CSI as n, DEL as o, cursorColor as p, C1_ST as r, ESC as s, BEL as t, ansiEscapes as u, cursorShape as v, enterAlternativeScreen as w, cursorUp as x, cursorShow as y };
@@ -0,0 +1,11 @@
1
+ //#region src/screen/geometry.d.ts
2
+ type Point = {
3
+ readonly x: number;
4
+ readonly y: number;
5
+ };
6
+ type Rect = Point & {
7
+ readonly width: number;
8
+ readonly height: number;
9
+ };
10
+ //#endregion
11
+ export { Rect as n, Point as t };
@@ -0,0 +1,21 @@
1
+ import { a as StyledChar } from "./tokenize-Dx1y_l5H.js";
2
+ import { i as Cell, t as ColorProfile } from "./color-profile-CyeHnG1T.js";
3
+ import { n as Screen, t as Line } from "./screen-CgC2WlVM.js";
4
+ //#region src/screen/ansi.d.ts
5
+ /** Converts the renderer's canonical ANSI state into backend-neutral cells. */
6
+ declare function cellsFromAnsi(text: string): Cell[];
7
+ declare function cellFromStyledChar(character: StyledChar, width?: number): Cell;
8
+ //#endregion
9
+ //#region src/screen/serialize.d.ts
10
+ type SerializeOptions = {
11
+ readonly colorProfile: ColorProfile;
12
+ readonly trimEnd?: boolean;
13
+ readonly styles?: boolean;
14
+ };
15
+ /** Serializes one structured cell run with minimal style transitions. */
16
+ declare function serializeLine(line: Line, options: SerializeOptions): string;
17
+ declare function serializeScreen(screen: Screen, options: SerializeOptions): string;
18
+ /** Converts a semantic cell to the canonical ANSI compatibility style state. */
19
+ declare function styledCharFromCell(cell: Cell, profile: ColorProfile, styles?: boolean): StyledChar;
20
+ //#endregion
21
+ export { cellFromStyledChar as a, styledCharFromCell as i, serializeLine as n, cellsFromAnsi as o, serializeScreen as r, SerializeOptions as t };