react-native-gtkx 0.1.0-alpha.3 → 0.2.0-alpha.1

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 (193) hide show
  1. package/README.md +41 -3
  2. package/dist/adw/index.d.ts +3 -0
  3. package/dist/adw/index.js +41 -0
  4. package/dist/adw/index.js.map +1 -0
  5. package/dist/adw/widgets.generated.d.ts +63 -0
  6. package/dist/adw/widgets.generated.js +125 -0
  7. package/dist/adw/widgets.generated.js.map +1 -0
  8. package/dist/animated/create-animated.js +1 -1
  9. package/dist/animated/create-animated.js.map +1 -1
  10. package/dist/animated/index.js +3 -3
  11. package/dist/animated/index.js.map +1 -1
  12. package/dist/common/content.d.ts +69 -0
  13. package/dist/common/content.js +84 -0
  14. package/dist/common/content.js.map +1 -0
  15. package/dist/common/index.d.ts +3 -0
  16. package/dist/common/index.js +19 -0
  17. package/dist/common/index.js.map +1 -0
  18. package/dist/common/navigation-stack.d.ts +84 -0
  19. package/dist/common/navigation-stack.js +313 -0
  20. package/dist/common/navigation-stack.js.map +1 -0
  21. package/dist/common/widget.d.ts +83 -0
  22. package/dist/common/widget.js +142 -0
  23. package/dist/common/widget.js.map +1 -0
  24. package/dist/components/animated.d.ts +3 -2
  25. package/dist/components/animated.js +85 -66
  26. package/dist/components/animated.js.map +1 -1
  27. package/dist/components/app-registry.d.ts +10 -1
  28. package/dist/components/app-registry.js +8 -3
  29. package/dist/components/app-registry.js.map +1 -1
  30. package/dist/components/pressable.js +109 -16
  31. package/dist/components/pressable.js.map +1 -1
  32. package/dist/components/rect-store.d.ts +11 -1
  33. package/dist/components/rect-store.js +27 -3
  34. package/dist/components/rect-store.js.map +1 -1
  35. package/dist/components/svg/animated-support.d.ts +19 -0
  36. package/dist/components/svg/animated-support.js +64 -0
  37. package/dist/components/svg/animated-support.js.map +1 -0
  38. package/dist/components/svg/context.d.ts +8 -0
  39. package/dist/components/svg/context.js +15 -0
  40. package/dist/components/svg/context.js.map +1 -0
  41. package/dist/components/svg/gradients.d.ts +31 -0
  42. package/dist/components/svg/gradients.js +93 -0
  43. package/dist/components/svg/gradients.js.map +1 -0
  44. package/dist/components/svg/group.d.ts +8 -0
  45. package/dist/components/svg/group.js +30 -0
  46. package/dist/components/svg/group.js.map +1 -0
  47. package/dist/components/svg/index.d.ts +6 -0
  48. package/dist/components/svg/index.js +5 -0
  49. package/dist/components/svg/index.js.map +1 -0
  50. package/dist/components/svg/node.d.ts +7 -0
  51. package/dist/components/svg/node.js +7 -0
  52. package/dist/components/svg/node.js.map +1 -0
  53. package/dist/components/svg/paint.d.ts +24 -0
  54. package/dist/components/svg/paint.js +57 -0
  55. package/dist/components/svg/paint.js.map +1 -0
  56. package/dist/components/svg/shapes.d.ts +47 -0
  57. package/dist/components/svg/shapes.js +51 -0
  58. package/dist/components/svg/shapes.js.map +1 -0
  59. package/dist/components/svg/svg.d.ts +14 -0
  60. package/dist/components/svg/svg.js +48 -0
  61. package/dist/components/svg/svg.js.map +1 -0
  62. package/dist/components/svg/use-shape-node.d.ts +12 -0
  63. package/dist/components/svg/use-shape-node.js +52 -0
  64. package/dist/components/svg/use-shape-node.js.map +1 -0
  65. package/dist/components/text-input.js +3 -2
  66. package/dist/components/text-input.js.map +1 -1
  67. package/dist/components/text.js +11 -2
  68. package/dist/components/text.js.map +1 -1
  69. package/dist/components/use-layout-child.js +47 -4
  70. package/dist/components/use-layout-child.js.map +1 -1
  71. package/dist/contracts.d.ts +12 -1
  72. package/dist/contracts.js +2 -3
  73. package/dist/contracts.js.map +1 -1
  74. package/dist/gtk/index.d.ts +6 -0
  75. package/dist/gtk/index.js +39 -0
  76. package/dist/gtk/index.js.map +1 -0
  77. package/dist/gtk/widgets.generated.d.ts +103 -0
  78. package/dist/gtk/widgets.generated.js +206 -0
  79. package/dist/gtk/widgets.generated.js.map +1 -0
  80. package/dist/gtkx/bridge/index.d.ts +9 -4
  81. package/dist/gtkx/bridge/index.js +41 -5
  82. package/dist/gtkx/bridge/index.js.map +1 -1
  83. package/dist/gtkx/bridge/layout-manager.d.ts +2 -1
  84. package/dist/gtkx/bridge/layout-manager.js +31 -9
  85. package/dist/gtkx/bridge/layout-manager.js.map +1 -1
  86. package/dist/gtkx/bridge/svg-node.d.ts +79 -0
  87. package/dist/gtkx/bridge/svg-node.js +367 -0
  88. package/dist/gtkx/bridge/svg-node.js.map +1 -0
  89. package/dist/gtkx/bridge/theme.js +1 -1
  90. package/dist/gtkx/bridge/theme.js.map +1 -1
  91. package/dist/gtkx/bridge/use-signal.js +21 -10
  92. package/dist/gtkx/bridge/use-signal.js.map +1 -1
  93. package/dist/gtkx/bridge/widgets.generated.d.ts +2 -0
  94. package/dist/gtkx/bridge/widgets.generated.js +14 -0
  95. package/dist/gtkx/bridge/widgets.generated.js.map +1 -0
  96. package/dist/index.js +1 -1
  97. package/dist/index.js.map +1 -1
  98. package/dist/mcp/bin.d.ts +2 -0
  99. package/dist/mcp/bin.js +17 -0
  100. package/dist/mcp/bin.js.map +1 -0
  101. package/dist/mcp/data/generated.d.ts +1282 -0
  102. package/dist/mcp/data/generated.js +1148 -0
  103. package/dist/mcp/data/generated.js.map +1 -0
  104. package/dist/mcp/index.d.ts +5 -0
  105. package/dist/mcp/index.js +9 -0
  106. package/dist/mcp/index.js.map +1 -0
  107. package/dist/mcp/list.d.ts +4 -0
  108. package/dist/mcp/list.js +56 -0
  109. package/dist/mcp/list.js.map +1 -0
  110. package/dist/mcp/resolve.d.ts +55 -0
  111. package/dist/mcp/resolve.js +151 -0
  112. package/dist/mcp/resolve.js.map +1 -0
  113. package/dist/mcp/search.d.ts +13 -0
  114. package/dist/mcp/search.js +48 -0
  115. package/dist/mcp/search.js.map +1 -0
  116. package/dist/mcp/server.d.ts +7 -0
  117. package/dist/mcp/server.js +135 -0
  118. package/dist/mcp/server.js.map +1 -0
  119. package/dist/mcp/tool.d.ts +21 -0
  120. package/dist/mcp/tool.js +36 -0
  121. package/dist/mcp/tool.js.map +1 -0
  122. package/dist/metro/index.js +10 -0
  123. package/dist/metro/index.js.map +1 -1
  124. package/dist/navigation/index.d.ts +50 -13
  125. package/dist/navigation/index.js +183 -148
  126. package/dist/navigation/index.js.map +1 -1
  127. package/dist/navigation/option-warnings.js +9 -1
  128. package/dist/navigation/option-warnings.js.map +1 -1
  129. package/dist/navigation/sidebar.d.ts +177 -9
  130. package/dist/navigation/sidebar.js +284 -10
  131. package/dist/navigation/sidebar.js.map +1 -1
  132. package/dist/runner/index.d.ts +22 -2
  133. package/dist/runner/index.js +163 -12
  134. package/dist/runner/index.js.map +1 -1
  135. package/dist/sea/assemble.d.ts +29 -0
  136. package/dist/sea/assemble.js +129 -0
  137. package/dist/sea/assemble.js.map +1 -0
  138. package/dist/sea/bundle.d.ts +61 -0
  139. package/dist/sea/bundle.js +202 -0
  140. package/dist/sea/bundle.js.map +1 -0
  141. package/dist/sea/gtkx-config-module.d.ts +18 -0
  142. package/dist/sea/gtkx-config-module.js +67 -0
  143. package/dist/sea/gtkx-config-module.js.map +1 -0
  144. package/dist/sea/native-shim.d.ts +40 -0
  145. package/dist/sea/native-shim.js +121 -0
  146. package/dist/sea/native-shim.js.map +1 -0
  147. package/dist/sea/react-anchor-plugin.d.ts +2 -0
  148. package/dist/sea/react-anchor-plugin.js +30 -0
  149. package/dist/sea/react-anchor-plugin.js.map +1 -0
  150. package/dist/style/colors.js +3 -1
  151. package/dist/style/colors.js.map +1 -1
  152. package/dist/style/index.d.ts +1 -0
  153. package/dist/style/index.js +3 -2
  154. package/dist/style/index.js.map +1 -1
  155. package/dist/style/registry.gtkx.js +1 -1
  156. package/dist/style/registry.gtkx.js.map +1 -1
  157. package/dist/style/split-style.js +3 -3
  158. package/dist/style/split-style.js.map +1 -1
  159. package/dist/style/text-align.js +1 -1
  160. package/dist/style/text-align.js.map +1 -1
  161. package/dist/style/transform.d.ts +22 -0
  162. package/dist/style/transform.js +137 -0
  163. package/dist/style/transform.js.map +1 -0
  164. package/dist/style/visual-css.js +3 -2
  165. package/dist/style/visual-css.js.map +1 -1
  166. package/dist/svg/geometry.d.ts +19 -0
  167. package/dist/svg/geometry.js +80 -0
  168. package/dist/svg/geometry.js.map +1 -0
  169. package/dist/svg/gradient-geometry.d.ts +15 -0
  170. package/dist/svg/gradient-geometry.js +18 -0
  171. package/dist/svg/gradient-geometry.js.map +1 -0
  172. package/dist/svg/transform.d.ts +22 -0
  173. package/dist/svg/transform.js +74 -0
  174. package/dist/svg/transform.js.map +1 -0
  175. package/dist/svg/view-box.d.ts +34 -0
  176. package/dist/svg/view-box.js +108 -0
  177. package/dist/svg/view-box.js.map +1 -0
  178. package/dist/svg-compat/index.d.ts +1 -0
  179. package/dist/svg-compat/index.js +16 -0
  180. package/dist/svg-compat/index.js.map +1 -0
  181. package/dist/testing/index.d.ts +14 -0
  182. package/dist/testing/index.js +14 -0
  183. package/dist/testing/index.js.map +1 -0
  184. package/dist/vite/index.d.ts +7 -3
  185. package/dist/vite/index.js +16 -3
  186. package/dist/vite/index.js.map +1 -1
  187. package/dist/vitest/index.d.ts +52 -0
  188. package/dist/vitest/index.js +58 -0
  189. package/dist/vitest/index.js.map +1 -0
  190. package/dist/vitest/setup.d.ts +4 -0
  191. package/dist/vitest/setup.js +22 -0
  192. package/dist/vitest/setup.js.map +1 -0
  193. package/package.json +47 -8
@@ -0,0 +1,58 @@
1
+ // react-native-gtkx/vitest — the vitest recipe this repo's own test suite
2
+ // runs on (see vitest.config.ts's "gtk" project), packaged for a consumer
3
+ // app: the @gtkx/vitest headless-compositor plugin, the react-native-gtkx
4
+ // vite preset (react-native alias + Metro-style platform extensions), a
5
+ // default inline-deps list for RN libraries that import "react-native"
6
+ // themselves, and the React act-environment setup.
7
+ //
8
+ // Self-contained like ./vite, ./metro and ./runner: a consumer's
9
+ // vitest.config.ts is loaded the same way vite.config.ts is (vite's config
10
+ // loader bundles only the user's own relative import graph; node_modules
11
+ // imports stay bare specifiers, resolved afterwards by plain Node ESM) — so
12
+ // this file must not contain extensionless relative imports. The one
13
+ // relative import below carries an explicit ".js" extension, which a real
14
+ // sibling file on disk resolves under plain Node without any bundler.
15
+ import { fileURLToPath, URL } from "node:url";
16
+ import { reactNativeGtkx } from "../vite/index.js";
17
+ const DEFAULT_INCLUDE = ["**/*.gtk.test.{ts,tsx}"];
18
+ const DEFAULT_INLINE_DEPS = [/@react-navigation/];
19
+ const SETUP_FILE = fileURLToPath(new URL("./setup.js", import.meta.url));
20
+ /**
21
+ * A ready Vitest project config for react-native-gtkx component tests: the
22
+ * headless Wayland compositor, the react-native alias and platform
23
+ * extensions, and the React act-environment setup — the same recipe this
24
+ * repo's own suite runs on. Use the result as a whole config
25
+ * (`defineConfig(reactNativeGtkxTest())`) or as one entry of
26
+ * `test.projects` alongside a portable "unit" project.
27
+ *
28
+ * Requires a headless Wayland compositor on PATH (`sway` by default —
29
+ * `apt install sway xwayland dbus`, see docs/getting-started.md) and
30
+ * `gtkx codegen` to have already generated the project's `@gtkx/gi`
31
+ * bindings — a bare `vitest run` does not trigger codegen itself, unlike
32
+ * `gtkx dev`/`gtkx build`. A missing compositor or codegen store fails with
33
+ * a readable error (e.g. `Cannot find the "sway" executable on PATH`), not
34
+ * a hang.
35
+ */
36
+ export const reactNativeGtkxTest = async (options = {}) => {
37
+ const gtkx = (await import("@gtkx/vitest")).default;
38
+ const plugins = [
39
+ gtkx(options.headless),
40
+ reactNativeGtkx(options.platform),
41
+ ];
42
+ return {
43
+ plugins,
44
+ test: {
45
+ name: options.name ?? "gtk",
46
+ include: options.include ?? DEFAULT_INCLUDE,
47
+ setupFiles: [SETUP_FILE, ...(options.setupFiles ?? [])],
48
+ server: {
49
+ deps: {
50
+ inline: [...DEFAULT_INLINE_DEPS, ...(options.inlineDeps ?? [])],
51
+ },
52
+ },
53
+ fileParallelism: options.fileParallelism ?? false,
54
+ },
55
+ };
56
+ };
57
+ export default reactNativeGtkxTest;
58
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vitest/index.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,0EAA0E;AAC1E,0EAA0E;AAC1E,wEAAwE;AACxE,uEAAuE;AACvE,mDAAmD;AACnD,EAAE;AACF,iEAAiE;AACjE,2EAA2E;AAC3E,yEAAyE;AACzE,4EAA4E;AAC5E,qEAAqE;AACrE,0EAA0E;AAC1E,sEAAsE;AACtE,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAI7C,OAAO,EAAE,eAAe,EAA+B,MAAM,kBAAkB,CAAA;AAkC/E,MAAM,eAAe,GAAG,CAAC,wBAAwB,CAAC,CAAA;AAClD,MAAM,mBAAmB,GAAwB,CAAC,mBAAmB,CAAC,CAAA;AACtE,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAExE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,UAAsC,EAAE,EACV,EAAE;IAChC,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAA;IACnD,MAAM,OAAO,GAAa;QACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACtB,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC;KAClC,CAAA;IACD,OAAO;QACL,OAAO;QACP,IAAI,EAAE;YACJ,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK;YAC3B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,eAAe;YAC3C,UAAU,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;YACvD,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,MAAM,EAAE,CAAC,GAAG,mBAAmB,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;iBAChE;aACF;YACD,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,KAAK;SAClD;KACF,CAAA;AACH,CAAC,CAAA;AAED,eAAe,mBAAmB,CAAA","sourcesContent":["// react-native-gtkx/vitest — the vitest recipe this repo's own test suite\n// runs on (see vitest.config.ts's \"gtk\" project), packaged for a consumer\n// app: the @gtkx/vitest headless-compositor plugin, the react-native-gtkx\n// vite preset (react-native alias + Metro-style platform extensions), a\n// default inline-deps list for RN libraries that import \"react-native\"\n// themselves, and the React act-environment setup.\n//\n// Self-contained like ./vite, ./metro and ./runner: a consumer's\n// vitest.config.ts is loaded the same way vite.config.ts is (vite's config\n// loader bundles only the user's own relative import graph; node_modules\n// imports stay bare specifiers, resolved afterwards by plain Node ESM) — so\n// this file must not contain extensionless relative imports. The one\n// relative import below carries an explicit \".js\" extension, which a real\n// sibling file on disk resolves under plain Node without any bundler.\nimport { fileURLToPath, URL } from \"node:url\"\nimport type { GtkxPluginOptions } from \"@gtkx/vitest\"\nimport type { Plugin } from \"vite\"\nimport type { UserWorkspaceConfig } from \"vitest/config\"\nimport { reactNativeGtkx, type ReactNativeGtkxOptions } from \"../vite/index.js\"\n\n/**\n * Options accepted by {@link reactNativeGtkxTest}. Every field is optional\n * and falls back to the recipe this repo's own test suite runs on.\n */\nexport type ReactNativeGtkxTestOptions = {\n /** Vitest project name. Default: \"gtk\". */\n name?: string\n /** Test file glob(s), relative to the project root. Default: `[\"**\\/*.gtk.test.{ts,tsx}\"]`. */\n include?: string[]\n /** Headless compositor size/compositor, forwarded to @gtkx/vitest's plugin. */\n headless?: GtkxPluginOptions\n /** Metro-style platform resolution options, forwarded to the vite preset. */\n platform?: ReactNativeGtkxOptions\n /**\n * Extra `server.deps.inline` patterns, merged after the default\n * (`/@react-navigation/`). Needed for any node_modules library that\n * itself imports \"react-native\" — Vitest externalizes node_modules code\n * by default, a path the react-native alias cannot reach.\n */\n inlineDeps?: (string | RegExp)[]\n /** Extra setup files, run after the built-in React act-environment setup. */\n setupFiles?: string[]\n /**\n * Run this project's test files serially. Default: false — window-resize\n * signal delivery races when several per-worker headless compositors run\n * at once (see docs/gtkx-rc2-notes.md); the suite this recipe is proven\n * on takes seconds, so serial execution is the cheap fix. Override once a\n * suite is large enough for parallelism to matter more than that race.\n */\n fileParallelism?: boolean\n}\n\nconst DEFAULT_INCLUDE = [\"**/*.gtk.test.{ts,tsx}\"]\nconst DEFAULT_INLINE_DEPS: (string | RegExp)[] = [/@react-navigation/]\nconst SETUP_FILE = fileURLToPath(new URL(\"./setup.js\", import.meta.url))\n\n/**\n * A ready Vitest project config for react-native-gtkx component tests: the\n * headless Wayland compositor, the react-native alias and platform\n * extensions, and the React act-environment setup — the same recipe this\n * repo's own suite runs on. Use the result as a whole config\n * (`defineConfig(reactNativeGtkxTest())`) or as one entry of\n * `test.projects` alongside a portable \"unit\" project.\n *\n * Requires a headless Wayland compositor on PATH (`sway` by default —\n * `apt install sway xwayland dbus`, see docs/getting-started.md) and\n * `gtkx codegen` to have already generated the project's `@gtkx/gi`\n * bindings — a bare `vitest run` does not trigger codegen itself, unlike\n * `gtkx dev`/`gtkx build`. A missing compositor or codegen store fails with\n * a readable error (e.g. `Cannot find the \"sway\" executable on PATH`), not\n * a hang.\n */\nexport const reactNativeGtkxTest = async (\n options: ReactNativeGtkxTestOptions = {},\n): Promise<UserWorkspaceConfig> => {\n const gtkx = (await import(\"@gtkx/vitest\")).default\n const plugins: Plugin[] = [\n gtkx(options.headless),\n reactNativeGtkx(options.platform),\n ]\n return {\n plugins,\n test: {\n name: options.name ?? \"gtk\",\n include: options.include ?? DEFAULT_INCLUDE,\n setupFiles: [SETUP_FILE, ...(options.setupFiles ?? [])],\n server: {\n deps: {\n inline: [...DEFAULT_INLINE_DEPS, ...(options.inlineDeps ?? [])],\n },\n },\n fileParallelism: options.fileParallelism ?? false,\n },\n }\n}\n\nexport default reactNativeGtkxTest\n"]}
@@ -0,0 +1,4 @@
1
+ declare global {
2
+ var IS_REACT_ACT_ENVIRONMENT: boolean | undefined;
3
+ }
4
+ export {};
@@ -0,0 +1,22 @@
1
+ // The React "act environment" flag. React batches and warns about updates
2
+ // outside of `act()` unless this is set — required for @gtkx/testing's
3
+ // render/renderHook to behave like React Testing Library. Referenced by an
4
+ // absolute path computed with `import.meta.url` (see index.ts), not
5
+ // statically imported, so it is a plain vitest setupFiles entry like
6
+ // @gtkx/vitest's own worker-setup.js.
7
+ import { beforeAll } from "vitest";
8
+ const setActEnvironment = (value) => {
9
+ Object.defineProperty(globalThis, "IS_REACT_ACT_ENVIRONMENT", {
10
+ value,
11
+ configurable: true,
12
+ writable: true,
13
+ });
14
+ };
15
+ beforeAll(() => {
16
+ const previous = globalThis.IS_REACT_ACT_ENVIRONMENT;
17
+ setActEnvironment(true);
18
+ return () => {
19
+ setActEnvironment(previous);
20
+ };
21
+ });
22
+ //# sourceMappingURL=setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/vitest/setup.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,uEAAuE;AACvE,2EAA2E;AAC3E,oEAAoE;AACpE,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAMlC,MAAM,iBAAiB,GAAG,CAAC,KAA0B,EAAQ,EAAE;IAC7D,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,0BAA0B,EAAE;QAC5D,KAAK;QACL,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,IAAI;KACf,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,SAAS,CAAC,GAAG,EAAE;IACb,MAAM,QAAQ,GAAG,UAAU,CAAC,wBAAwB,CAAA;IACpD,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAEvB,OAAO,GAAG,EAAE;QACV,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IAC7B,CAAC,CAAA;AACH,CAAC,CAAC,CAAA","sourcesContent":["// The React \"act environment\" flag. React batches and warns about updates\n// outside of `act()` unless this is set — required for @gtkx/testing's\n// render/renderHook to behave like React Testing Library. Referenced by an\n// absolute path computed with `import.meta.url` (see index.ts), not\n// statically imported, so it is a plain vitest setupFiles entry like\n// @gtkx/vitest's own worker-setup.js.\nimport { beforeAll } from \"vitest\"\n\ndeclare global {\n var IS_REACT_ACT_ENVIRONMENT: boolean | undefined\n}\n\nconst setActEnvironment = (value: boolean | undefined): void => {\n Object.defineProperty(globalThis, \"IS_REACT_ACT_ENVIRONMENT\", {\n value,\n configurable: true,\n writable: true,\n })\n}\n\nbeforeAll(() => {\n const previous = globalThis.IS_REACT_ACT_ENVIRONMENT\n setActEnvironment(true)\n\n return () => {\n setActEnvironment(previous)\n }\n})\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-gtkx",
3
- "version": "0.1.0-alpha.3",
3
+ "version": "0.2.0-alpha.1",
4
4
  "description": "React Native components and APIs for Linux desktop, rendered as native GTK4 widgets via gtkx",
5
5
  "license": "MIT",
6
6
  "author": "Anton Petrov <anton@itsmepetrov.com>",
@@ -47,24 +47,56 @@
47
47
  "types": "./dist/navigation/index.d.ts",
48
48
  "default": "./dist/navigation/index.js"
49
49
  },
50
+ "./svg": {
51
+ "types": "./dist/svg-compat/index.d.ts",
52
+ "default": "./dist/svg-compat/index.js"
53
+ },
54
+ "./gtk": {
55
+ "types": "./dist/gtk/index.d.ts",
56
+ "default": "./dist/gtk/index.js"
57
+ },
58
+ "./adw": {
59
+ "types": "./dist/adw/index.d.ts",
60
+ "default": "./dist/adw/index.js"
61
+ },
62
+ "./common": {
63
+ "types": "./dist/common/index.d.ts",
64
+ "default": "./dist/common/index.js"
65
+ },
66
+ "./mcp": {
67
+ "types": "./dist/mcp/index.d.ts",
68
+ "default": "./dist/mcp/index.js"
69
+ },
50
70
  "./vite": {
51
71
  "types": "./dist/vite/index.d.ts",
52
72
  "default": "./dist/vite/index.js"
53
73
  },
74
+ "./vitest": {
75
+ "types": "./dist/vitest/index.d.ts",
76
+ "default": "./dist/vitest/index.js"
77
+ },
78
+ "./testing": {
79
+ "types": "./dist/testing/index.d.ts",
80
+ "default": "./dist/testing/index.js"
81
+ },
54
82
  "./types": {
55
83
  "types": "./types.d.ts",
56
84
  "default": "./types.js"
57
85
  }
58
86
  },
87
+ "bin": {
88
+ "react-native-gtkx-mcp": "./dist/mcp/bin.js"
89
+ },
59
90
  "scripts": {
60
- "prepack": "bash ../../scripts/sync-package-readme.sh",
61
- "build:dist": "rm -rf dist && tsc -p tsconfig.build.json",
91
+ "prepack": "node ../../scripts/sync-package-readme.ts",
92
+ "build:dist": "rm -rf dist && tsc -p tsconfig.build.json && chmod +x dist/mcp/bin.js",
62
93
  "watch:dist": "tsc -p tsconfig.build.json --watch --preserveWatchOutput"
63
94
  },
64
95
  "peerDependencies": {
65
- "@react-navigation/native": "^7.0.0",
96
+ "@react-navigation/native": "^8.0.0-alpha.40 || ^8.0.0",
66
97
  "react": "^19.2",
67
- "vite": "^7.0.0 || ^8.0.0"
98
+ "vite": "^7.0.0 || ^8.0.0",
99
+ "vitest": ">=4"
68
100
  },
69
101
  "peerDependenciesMeta": {
70
102
  "@react-navigation/native": {
@@ -72,19 +104,26 @@
72
104
  },
73
105
  "vite": {
74
106
  "optional": true
107
+ },
108
+ "vitest": {
109
+ "optional": true
75
110
  }
76
111
  },
77
112
  "dependencies": {
78
113
  "@gtkx/cli": "1.0.0-rc.2",
114
+ "@gtkx/codegen": "1.0.0-rc.2",
79
115
  "@gtkx/config": "1.0.0-rc.2",
80
116
  "@gtkx/css": "1.0.0-rc.2",
81
117
  "@gtkx/react": "1.0.0-rc.2",
82
118
  "@gtkx/runtime": "1.0.0-rc.2",
83
- "yoga-layout": "^3.2.1"
84
- },
85
- "devDependencies": {
86
119
  "@gtkx/testing": "1.0.0-rc.2",
87
120
  "@gtkx/vitest": "1.0.0-rc.2",
121
+ "@modelcontextprotocol/sdk": "^1.30.0",
122
+ "rolldown": "^1.1.5",
123
+ "yoga-layout": "^3.2.1",
124
+ "zod": "^4.4.3"
125
+ },
126
+ "devDependencies": {
88
127
  "vite": "^8.1.4"
89
128
  },
90
129
  "files": [