@hanzogui/vite-plugin 7.3.0 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -41,7 +41,7 @@ __export(loadGui_exports, {
41
41
  });
42
42
  module.exports = __toCommonJS(loadGui_exports);
43
43
  var StaticWorker = __toESM(require("@hanzogui/static-worker"), 1);
44
- const LOAD_STATE_KEY = "__gui_load_state__";
44
+ const LOAD_STATE_KEY = "__hanzogui_load_state__";
45
45
  function getLoadState() {
46
46
  if (!globalThis[LOAD_STATE_KEY]) {
47
47
  ;
@@ -82,7 +82,7 @@ async function ensureFullConfigLoaded() {
82
82
  const options = await loadGuiBuildConfig();
83
83
  if (!options.disableWatchGuiConfig && !options.disable) {
84
84
  await StaticWorker.loadGui({
85
- components: ["gui"],
85
+ components: ["hanzogui"],
86
86
  platform: "web",
87
87
  ...options
88
88
  });
@@ -33,22 +33,24 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
33
33
  }), mod);
34
34
  var plugin_exports = {};
35
35
  __export(plugin_exports, {
36
- guiAliases: () => guiAliases,
37
- guiPlugin: () => guiPlugin
36
+ hanzoguiAliases: () => hanzoguiAliases,
37
+ hanzoguiPlugin: () => hanzoguiPlugin
38
38
  });
39
39
  module.exports = __toCommonJS(plugin_exports);
40
40
  var Static = __toESM(require("@hanzogui/static-worker"), 1);
41
41
  var import_static_worker = require("@hanzogui/static-worker");
42
42
  var import_node_crypto = require("node:crypto");
43
+ var import_node_module = require("node:module");
43
44
  var import_node_path = __toESM(require("node:path"), 1);
44
45
  var import_node_url = require("node:url");
45
- var import_vite = require("vite");
46
46
  var import_loadGui = require("./loadGui.cjs");
47
47
  const import_meta = {};
48
- const resolve = name => (0, import_node_url.fileURLToPath)(import_meta.resolve(name));
49
- const CACHE_KEY = "__gui_vite_cache__";
50
- const CACHE_SIZE_KEY = "__gui_vite_cache_size__";
51
- const PENDING_KEY = "__gui_vite_pending__";
48
+ const _pluginRequire = (0, import_node_module.createRequire)(typeof __filename === "string" ? __filename : (0, import_node_url.fileURLToPath)(import_meta.url));
49
+ const resolve = name => _pluginRequire.resolve(name);
50
+ const normalizePath = value => value.replace(/\\/g, "/");
51
+ const CACHE_KEY = "__hanzogui_vite_cache__";
52
+ const CACHE_SIZE_KEY = "__hanzogui_vite_cache_size__";
53
+ const PENDING_KEY = "__hanzogui_vite_pending__";
52
54
  function getSharedCache() {
53
55
  if (!globalThis[CACHE_KEY]) {
54
56
  ;
@@ -68,6 +70,25 @@ function clearSharedCache() {
68
70
  globalThis[CACHE_KEY] = {};
69
71
  globalThis[CACHE_SIZE_KEY] = 0;
70
72
  }
73
+ function isInstalled(projectRoot, id) {
74
+ try {
75
+ const req = (0, import_node_module.createRequire)(import_node_path.default.join(projectRoot, "package.json"));
76
+ req.resolve(id);
77
+ return true;
78
+ } catch {
79
+ return false;
80
+ }
81
+ }
82
+ function addIfInstalled(userConf, projectRoot, ids) {
83
+ const root = projectRoot || process.cwd();
84
+ userConf.optimizeDeps ||= {};
85
+ userConf.optimizeDeps.include ||= [];
86
+ for (const id of ids) {
87
+ if (!userConf.optimizeDeps.include.includes(id) && isInstalled(root, id)) {
88
+ userConf.optimizeDeps.include.push(id);
89
+ }
90
+ }
91
+ }
71
92
  function getPendingExtractions() {
72
93
  if (!globalThis[PENDING_KEY]) {
73
94
  ;
@@ -75,7 +96,7 @@ function getPendingExtractions() {
75
96
  }
76
97
  return globalThis[PENDING_KEY];
77
98
  }
78
- function guiAliases(options = {}) {
99
+ function hanzoguiAliases(options = {}) {
79
100
  const aliases = [];
80
101
  if (options.svg) {
81
102
  aliases.push({
@@ -84,13 +105,13 @@ function guiAliases(options = {}) {
84
105
  });
85
106
  }
86
107
  if (options.rnwLite) {
87
- const rnwl = resolve(options.rnwLite === "without-animated" ? "@hanzogui/react-native-web-lite/without-animated" : "@hanzogui/react-native-web-lite");
88
108
  const rnwlBase = import_node_path.default.dirname(resolve("@hanzogui/react-native-web-lite/package.json"));
109
+ const rnwl = normalizePath(import_node_path.default.join(rnwlBase, options.rnwLite === "without-animated" ? "dist/esm/without-animated.mjs" : "dist/esm/index.mjs"));
89
110
  aliases.push({
90
111
  // map deep RNW paths like dist/exports/StyleSheet/preprocess to rnw-lite's flat structure
91
112
  // extracts the final path segment (e.g. "preprocess" or "createReactDOMStyle")
92
113
  find: /^react-native(?:-web)?\/dist\/(?:exports|modules)\/.*\/([^/]+)$/,
93
- replacement: `${rnwlBase}/dist/esm/$1.mjs`
114
+ replacement: `${normalizePath(rnwlBase)}/dist/esm/$1.mjs`
94
115
  }, {
95
116
  find: /^react-native$/,
96
117
  replacement: rnwl
@@ -107,15 +128,15 @@ function guiAliases(options = {}) {
107
128
  }
108
129
  return aliases;
109
130
  }
110
- function guiPlugin({
131
+ function hanzoguiPlugin({
111
132
  disableResolveConfig,
112
- ...guiOptionsIn
133
+ ...hanzoguiOptionsIn
113
134
  } = {}) {
114
- let shouldExtract = !guiOptionsIn.disableExtraction;
135
+ let shouldExtract = !hanzoguiOptionsIn.disableExtraction;
115
136
  let watcher;
116
137
  const enableNativeEnv = !!globalThis.__vxrnEnableNativeEnv;
117
138
  const extensions = [`.web.mjs`, `.web.js`, `.web.jsx`, `.web.ts`, `.web.tsx`, ".mjs", ".js", ".mts", ".ts", ".jsx", ".tsx", ".json"];
118
- (0, import_loadGui.loadGuiBuildConfig)(guiOptionsIn);
139
+ (0, import_loadGui.loadGuiBuildConfig)(hanzoguiOptionsIn);
119
140
  const ensureLoaded = async () => {
120
141
  const promise = (0, import_loadGui.getLoadPromise)();
121
142
  if (promise) await promise;
@@ -130,12 +151,12 @@ function guiPlugin({
130
151
  const cssMap = /* @__PURE__ */new Map();
131
152
  let config;
132
153
  let server;
133
- const virtualExt = `.gui.css`;
154
+ const virtualExt = `.hanzogui.css`;
134
155
  const getAbsoluteVirtualFileId = filePath => {
135
156
  if (filePath.startsWith(config.root)) {
136
157
  return filePath;
137
158
  }
138
- return (0, import_vite.normalizePath)(import_node_path.default.join(config.root, filePath));
159
+ return normalizePath(import_node_path.default.join(config.root, filePath));
139
160
  };
140
161
  function isNotClient(environment) {
141
162
  return environment?.name && environment.name !== "client";
@@ -157,7 +178,7 @@ function guiPlugin({
157
178
  }
158
179
  }
159
180
  const basePlugin = {
160
- name: "gui",
181
+ name: "hanzogui",
161
182
  enforce: "pre",
162
183
  configureServer(_server) {
163
184
  server = _server;
@@ -170,12 +191,12 @@ function guiPlugin({
170
191
  async config(_, env) {
171
192
  const options = await ensureLoaded();
172
193
  if (!options) {
173
- throw new Error(`No gui options loaded`);
194
+ throw new Error(`No hanzogui options loaded`);
174
195
  }
175
196
  if (!options.disableWatchGuiConfig) {
176
197
  watcher = Static.watchGuiConfig({
177
- components: ["gui"],
178
- config: "./src/gui.config.ts",
198
+ components: ["hanzogui"],
199
+ config: "./src/hanzogui.config.ts",
179
200
  ...options
180
201
  }).catch(err => {
181
202
  console.error(` [Gui] Error watching config: ${err}`);
@@ -221,7 +242,7 @@ function guiPlugin({
221
242
  }
222
243
  };
223
244
  const rnwLitePlugin = {
224
- name: "gui-rnw-lite",
245
+ name: "hanzogui-rnw-lite",
225
246
  config() {
226
247
  if (enableNativeEnv) {
227
248
  return {};
@@ -230,27 +251,40 @@ function guiPlugin({
230
251
  if (!options?.useReactNativeWebLite) {
231
252
  return {};
232
253
  }
254
+ const include = [];
255
+ if (isInstalled(process.cwd(), "memoize-one")) {
256
+ include.push("memoize-one");
257
+ }
233
258
  return {
234
259
  resolve: {
235
- alias: guiAliases({
260
+ alias: hanzoguiAliases({
236
261
  rnwLite: options.useReactNativeWebLite
237
262
  })
238
263
  },
239
264
  optimizeDeps: {
240
265
  // upstream react-native-web must not be pre-bundled when aliased to lite
241
- exclude: ["react-native-web"]
266
+ exclude: ["react-native-web"],
267
+ include
242
268
  }
243
269
  };
244
270
  }
245
271
  };
246
272
  const extractPlugin = {
247
- name: "gui-extract",
273
+ name: "hanzogui-extract",
248
274
  enforce: "pre",
249
275
  async config(userConf) {
250
276
  const options = await ensureLoaded();
251
277
  userConf.optimizeDeps ||= {};
252
278
  userConf.optimizeDeps.include ||= [];
253
279
  userConf.optimizeDeps.include.push("inline-style-prefixer");
280
+ addIfInstalled(userConf, userConf.root, ["@hanzogui/toast", "@hanzogui/toast/v2", "@hanzogui/sheet", "@hanzogui/sheet/controller"]);
281
+ userConf.resolve ||= {};
282
+ userConf.resolve.dedupe ||= [];
283
+ for (const id of ["hanzogui", "@hanzogui/core", "@hanzogui/web", "@hanzogui/toast", "@hanzogui/sheet"]) {
284
+ if (!userConf.resolve.dedupe.includes(id) && isInstalled(userConf.root || process.cwd(), id)) {
285
+ userConf.resolve.dedupe.push(id);
286
+ }
287
+ }
254
288
  if (!shouldExtract) return;
255
289
  userConf.optimizeDeps.include.push("@hanzogui/core/inject-styles");
256
290
  },
@@ -337,14 +371,14 @@ ${entry.cssImport}` : entry.js;
337
371
  const cached = memoryCache[cacheKey];
338
372
  if (cached) {
339
373
  if (process.env.DEBUG_GUI_CACHE) {
340
- console.info(`[gui-cache] HIT ${this.environment?.name || "unknown"} ${id.split("/").pop()} key=${cacheKey.slice(0, 8)}`);
374
+ console.info(`[hanzogui-cache] HIT ${this.environment?.name || "unknown"} ${id.split("/").pop()} key=${cacheKey.slice(0, 8)}`);
341
375
  }
342
376
  return formatResult(cached);
343
377
  }
344
378
  const pendingExtraction = pending.get(cacheKey);
345
379
  if (pendingExtraction) {
346
380
  if (process.env.DEBUG_GUI_CACHE) {
347
- console.info(`[gui-cache] WAIT ${this.environment?.name || "unknown"} ${id.split("/").pop()} key=${cacheKey.slice(0, 8)}`);
381
+ console.info(`[hanzogui-cache] WAIT ${this.environment?.name || "unknown"} ${id.split("/").pop()} key=${cacheKey.slice(0, 8)}`);
348
382
  }
349
383
  const result = await pendingExtraction;
350
384
  if (result) {
@@ -353,7 +387,7 @@ ${entry.cssImport}` : entry.js;
353
387
  return;
354
388
  }
355
389
  if (process.env.DEBUG_GUI_CACHE) {
356
- console.info(`[gui-cache] EXTRACT ${this.environment?.name || "unknown"} ${id.split("/").pop()} key=${cacheKey.slice(0, 8)}`);
390
+ console.info(`[hanzogui-cache] EXTRACT ${this.environment?.name || "unknown"} ${id.split("/").pop()} key=${cacheKey.slice(0, 8)}`);
357
391
  }
358
392
  const extractionPromise = (async () => {
359
393
  let extracted;
@@ -366,14 +400,14 @@ ${entry.cssImport}` : entry.js;
366
400
  });
367
401
  } catch (err) {
368
402
  if (process.env.DEBUG_GUI_CACHE) {
369
- console.info(`[gui-cache] ERROR extracting ${id.split("/").pop()}:`, err);
403
+ console.info(`[hanzogui-cache] ERROR extracting ${id.split("/").pop()}:`, err);
370
404
  }
371
405
  console.error(err instanceof Error ? err.message : String(err));
372
406
  return null;
373
407
  }
374
408
  if (!extracted) {
375
409
  if (process.env.DEBUG_GUI_CACHE) {
376
- console.info(`[gui-cache] no extraction result for ${id.split("/").pop()}`);
410
+ console.info(`[hanzogui-cache] no extraction result for ${id.split("/").pop()}`);
377
411
  }
378
412
  return null;
379
413
  }
@@ -402,7 +436,7 @@ ${entry.cssImport}` : entry.js;
402
436
  }
403
437
  memoryCache[cacheKey] = cacheEntry;
404
438
  if (process.env.DEBUG_GUI_CACHE) {
405
- console.info(`[gui-cache] WRITE key=${cacheKey.slice(0, 8)} cacheSize=${Object.keys(memoryCache).length}`);
439
+ console.info(`[hanzogui-cache] WRITE key=${cacheKey.slice(0, 8)} cacheSize=${Object.keys(memoryCache).length}`);
406
440
  }
407
441
  return cacheEntry;
408
442
  })();
@@ -1,5 +1,5 @@
1
1
  import * as StaticWorker from "@hanzogui/static-worker";
2
- const LOAD_STATE_KEY = "__gui_load_state__";
2
+ const LOAD_STATE_KEY = "__hanzogui_load_state__";
3
3
  function getLoadState() {
4
4
  if (!globalThis[LOAD_STATE_KEY]) {
5
5
  ;
@@ -40,7 +40,7 @@ async function ensureFullConfigLoaded() {
40
40
  const options = await loadGuiBuildConfig();
41
41
  if (!options.disableWatchGuiConfig && !options.disable) {
42
42
  await StaticWorker.loadGui({
43
- components: ["gui"],
43
+ components: ["hanzogui"],
44
44
  platform: "web",
45
45
  ...options
46
46
  });
@@ -1 +1 @@
1
- {"version":3,"names":["StaticWorker","LOAD_STATE_KEY","getLoadState","globalThis","loadPromise","loadedOptions","fullConfigLoaded","fullConfigLoadPromise","getGuiOptions","getLoadPromise","loadGuiBuildConfig","optionsIn","state","options","platform","ensureFullConfigLoaded","disableWatchGuiConfig","disable","loadGui","components","cleanup","destroyPool"],"sources":["../../src/loadGui.ts"],"sourcesContent":[null],"mappings":"AAAA,YAAYA,YAAA,MAAkB;AAI9B,MAAMC,cAAA,GAAiB;AASvB,SAASC,aAAA,EAA0B;EACjC,IAAI,CAAEC,UAAA,CAAmBF,cAAc,GAAG;IACxC;IAAEE,UAAA,CAAmBF,cAAc,IAAI;MACrCG,WAAA,EAAa;MACbC,aAAA,EAAe;MACfC,gBAAA,EAAkB;MAClBC,qBAAA,EAAuB;IACzB;EACF;EACA,OAAQJ,UAAA,CAAmBF,cAAc;AAC3C;AAEO,SAASO,cAAA,EAAmC;EACjD,OAAON,YAAA,CAAa,EAAEG,aAAA;AACxB;AAEO,SAASI,eAAA,EAA6C;EAC3D,OAAOP,YAAA,CAAa,EAAEE,WAAA;AACxB;AAMA,eAAsBM,mBACpBC,SAAA,EACqB;EACrB,MAAMC,KAAA,GAAQV,YAAA,CAAa;EAC3B,IAAIU,KAAA,CAAMP,aAAA,EAAe,OAAOO,KAAA,CAAMP,aAAA;EACtC,IAAIO,KAAA,CAAMR,WAAA,EAAa,OAAOQ,KAAA,CAAMR,WAAA;EAEpCQ,KAAA,CAAMR,WAAA,IAAe,YAAY;IAC/B,MAAMS,OAAA,GAAU,MAAMb,YAAA,CAAaU,kBAAA,CAAmB;MACpD,GAAGC,SAAA;MACHG,QAAA,EAAU;IACZ,CAAC;IAEDF,KAAA,CAAMP,aAAA,GAAgBQ,OAAA;IACtB,OAAOA,OAAA;EACT,GAAG;EAEH,OAAOD,KAAA,CAAMR,WAAA;AACf;AAMA,eAAsBW,uBAAA,EAAwC;EAC5D,MAAMH,KAAA,GAAQV,YAAA,CAAa;EAE3B,IAAIU,KAAA,CAAMN,gBAAA,EAAkB;EAC5B,IAAIM,KAAA,CAAML,qBAAA,EAAuB,OAAOK,KAAA,CAAML,qBAAA;EAI9CK,KAAA,CAAML,qBAAA,IAAyB,YAAY;IACzC,MAAMM,OAAA,GAAU,MAAMH,kBAAA,CAAmB;IAGzC,IAAI,CAACG,OAAA,CAAQG,qBAAA,IAAyB,CAACH,OAAA,CAAQI,OAAA,EAAS;MACtD,MAAMjB,YAAA,CAAakB,OAAA,CAAQ;QACzBC,UAAA,EAAY,CAAC,KAAK;QAClBL,QAAA,EAAU;QACV,GAAGD;MACL,CAAC;IACH;IACAD,KAAA,CAAMN,gBAAA,GAAmB;EAC3B,GAAG;EAEH,OAAOM,KAAA,CAAML,qBAAA;AACf;AAEA,eAAsBa,QAAA,EAAU;EAC9B,MAAMpB,YAAA,CAAaqB,WAAA,CAAY;EAC/B,MAAMT,KAAA,GAAQV,YAAA,CAAa;EAC3BU,KAAA,CAAMR,WAAA,GAAc;EACpBQ,KAAA,CAAMP,aAAA,GAAgB;EACtBO,KAAA,CAAMN,gBAAA,GAAmB;EACzBM,KAAA,CAAML,qBAAA,GAAwB;AAChC","ignoreList":[]}
1
+ {"version":3,"names":["StaticWorker","LOAD_STATE_KEY","getLoadState","globalThis","loadPromise","loadedOptions","fullConfigLoaded","fullConfigLoadPromise","getGuiOptions","getLoadPromise","loadGuiBuildConfig","optionsIn","state","options","platform","ensureFullConfigLoaded","disableWatchGuiConfig","disable","loadGui","components","cleanup","destroyPool"],"sources":["../../src/loadGui.ts"],"sourcesContent":[null],"mappings":"AAAA,YAAYA,YAAA,MAAkB;AAI9B,MAAMC,cAAA,GAAiB;AASvB,SAASC,aAAA,EAA0B;EACjC,IAAI,CAAEC,UAAA,CAAmBF,cAAc,GAAG;IACxC;IAAEE,UAAA,CAAmBF,cAAc,IAAI;MACrCG,WAAA,EAAa;MACbC,aAAA,EAAe;MACfC,gBAAA,EAAkB;MAClBC,qBAAA,EAAuB;IACzB;EACF;EACA,OAAQJ,UAAA,CAAmBF,cAAc;AAC3C;AAEO,SAASO,cAAA,EAAmC;EACjD,OAAON,YAAA,CAAa,EAAEG,aAAA;AACxB;AAEO,SAASI,eAAA,EAA6C;EAC3D,OAAOP,YAAA,CAAa,EAAEE,WAAA;AACxB;AAMA,eAAsBM,mBACpBC,SAAA,EACqB;EACrB,MAAMC,KAAA,GAAQV,YAAA,CAAa;EAC3B,IAAIU,KAAA,CAAMP,aAAA,EAAe,OAAOO,KAAA,CAAMP,aAAA;EACtC,IAAIO,KAAA,CAAMR,WAAA,EAAa,OAAOQ,KAAA,CAAMR,WAAA;EAEpCQ,KAAA,CAAMR,WAAA,IAAe,YAAY;IAC/B,MAAMS,OAAA,GAAU,MAAMb,YAAA,CAAaU,kBAAA,CAAmB;MACpD,GAAGC,SAAA;MACHG,QAAA,EAAU;IACZ,CAAC;IAEDF,KAAA,CAAMP,aAAA,GAAgBQ,OAAA;IACtB,OAAOA,OAAA;EACT,GAAG;EAEH,OAAOD,KAAA,CAAMR,WAAA;AACf;AAMA,eAAsBW,uBAAA,EAAwC;EAC5D,MAAMH,KAAA,GAAQV,YAAA,CAAa;EAE3B,IAAIU,KAAA,CAAMN,gBAAA,EAAkB;EAC5B,IAAIM,KAAA,CAAML,qBAAA,EAAuB,OAAOK,KAAA,CAAML,qBAAA;EAI9CK,KAAA,CAAML,qBAAA,IAAyB,YAAY;IACzC,MAAMM,OAAA,GAAU,MAAMH,kBAAA,CAAmB;IAGzC,IAAI,CAACG,OAAA,CAAQG,qBAAA,IAAyB,CAACH,OAAA,CAAQI,OAAA,EAAS;MACtD,MAAMjB,YAAA,CAAakB,OAAA,CAAQ;QACzBC,UAAA,EAAY,CAAC,UAAU;QACvBL,QAAA,EAAU;QACV,GAAGD;MACL,CAAC;IACH;IACAD,KAAA,CAAMN,gBAAA,GAAmB;EAC3B,GAAG;EAEH,OAAOM,KAAA,CAAML,qBAAA;AACf;AAEA,eAAsBa,QAAA,EAAU;EAC9B,MAAMpB,YAAA,CAAaqB,WAAA,CAAY;EAC/B,MAAMT,KAAA,GAAQV,YAAA,CAAa;EAC3BU,KAAA,CAAMR,WAAA,GAAc;EACpBQ,KAAA,CAAMP,aAAA,GAAgB;EACtBO,KAAA,CAAMN,gBAAA,GAAmB;EACzBM,KAAA,CAAML,qBAAA,GAAwB;AAChC","ignoreList":[]}
@@ -1,14 +1,16 @@
1
1
  import * as Static from "@hanzogui/static-worker";
2
2
  import { getPragmaOptions } from "@hanzogui/static-worker";
3
3
  import { createHash } from "node:crypto";
4
+ import { createRequire } from "node:module";
4
5
  import path from "node:path";
5
6
  import { fileURLToPath } from "node:url";
6
- import { normalizePath } from "vite";
7
7
  import { loadGuiBuildConfig, getLoadPromise, getGuiOptions, ensureFullConfigLoaded } from "./loadGui.mjs";
8
- const resolve = name => fileURLToPath(import.meta.resolve(name));
9
- const CACHE_KEY = "__gui_vite_cache__";
10
- const CACHE_SIZE_KEY = "__gui_vite_cache_size__";
11
- const PENDING_KEY = "__gui_vite_pending__";
8
+ const _pluginRequire = createRequire(typeof __filename === "string" ? __filename : fileURLToPath(import.meta.url));
9
+ const resolve = name => _pluginRequire.resolve(name);
10
+ const normalizePath = value => value.replace(/\\/g, "/");
11
+ const CACHE_KEY = "__hanzogui_vite_cache__";
12
+ const CACHE_SIZE_KEY = "__hanzogui_vite_cache_size__";
13
+ const PENDING_KEY = "__hanzogui_vite_pending__";
12
14
  function getSharedCache() {
13
15
  if (!globalThis[CACHE_KEY]) {
14
16
  ;
@@ -28,6 +30,25 @@ function clearSharedCache() {
28
30
  globalThis[CACHE_KEY] = {};
29
31
  globalThis[CACHE_SIZE_KEY] = 0;
30
32
  }
33
+ function isInstalled(projectRoot, id) {
34
+ try {
35
+ const req = createRequire(path.join(projectRoot, "package.json"));
36
+ req.resolve(id);
37
+ return true;
38
+ } catch {
39
+ return false;
40
+ }
41
+ }
42
+ function addIfInstalled(userConf, projectRoot, ids) {
43
+ const root = projectRoot || process.cwd();
44
+ userConf.optimizeDeps ||= {};
45
+ userConf.optimizeDeps.include ||= [];
46
+ for (const id of ids) {
47
+ if (!userConf.optimizeDeps.include.includes(id) && isInstalled(root, id)) {
48
+ userConf.optimizeDeps.include.push(id);
49
+ }
50
+ }
51
+ }
31
52
  function getPendingExtractions() {
32
53
  if (!globalThis[PENDING_KEY]) {
33
54
  ;
@@ -35,7 +56,7 @@ function getPendingExtractions() {
35
56
  }
36
57
  return globalThis[PENDING_KEY];
37
58
  }
38
- function guiAliases(options = {}) {
59
+ function hanzoguiAliases(options = {}) {
39
60
  const aliases = [];
40
61
  if (options.svg) {
41
62
  aliases.push({
@@ -44,13 +65,13 @@ function guiAliases(options = {}) {
44
65
  });
45
66
  }
46
67
  if (options.rnwLite) {
47
- const rnwl = resolve(options.rnwLite === "without-animated" ? "@hanzogui/react-native-web-lite/without-animated" : "@hanzogui/react-native-web-lite");
48
68
  const rnwlBase = path.dirname(resolve("@hanzogui/react-native-web-lite/package.json"));
69
+ const rnwl = normalizePath(path.join(rnwlBase, options.rnwLite === "without-animated" ? "dist/esm/without-animated.mjs" : "dist/esm/index.mjs"));
49
70
  aliases.push({
50
71
  // map deep RNW paths like dist/exports/StyleSheet/preprocess to rnw-lite's flat structure
51
72
  // extracts the final path segment (e.g. "preprocess" or "createReactDOMStyle")
52
73
  find: /^react-native(?:-web)?\/dist\/(?:exports|modules)\/.*\/([^/]+)$/,
53
- replacement: `${rnwlBase}/dist/esm/$1.mjs`
74
+ replacement: `${normalizePath(rnwlBase)}/dist/esm/$1.mjs`
54
75
  }, {
55
76
  find: /^react-native$/,
56
77
  replacement: rnwl
@@ -67,15 +88,15 @@ function guiAliases(options = {}) {
67
88
  }
68
89
  return aliases;
69
90
  }
70
- function guiPlugin({
91
+ function hanzoguiPlugin({
71
92
  disableResolveConfig,
72
- ...guiOptionsIn
93
+ ...hanzoguiOptionsIn
73
94
  } = {}) {
74
- let shouldExtract = !guiOptionsIn.disableExtraction;
95
+ let shouldExtract = !hanzoguiOptionsIn.disableExtraction;
75
96
  let watcher;
76
97
  const enableNativeEnv = !!globalThis.__vxrnEnableNativeEnv;
77
98
  const extensions = [`.web.mjs`, `.web.js`, `.web.jsx`, `.web.ts`, `.web.tsx`, ".mjs", ".js", ".mts", ".ts", ".jsx", ".tsx", ".json"];
78
- loadGuiBuildConfig(guiOptionsIn);
99
+ loadGuiBuildConfig(hanzoguiOptionsIn);
79
100
  const ensureLoaded = async () => {
80
101
  const promise = getLoadPromise();
81
102
  if (promise) await promise;
@@ -90,7 +111,7 @@ function guiPlugin({
90
111
  const cssMap = /* @__PURE__ */new Map();
91
112
  let config;
92
113
  let server;
93
- const virtualExt = `.gui.css`;
114
+ const virtualExt = `.hanzogui.css`;
94
115
  const getAbsoluteVirtualFileId = filePath => {
95
116
  if (filePath.startsWith(config.root)) {
96
117
  return filePath;
@@ -117,7 +138,7 @@ function guiPlugin({
117
138
  }
118
139
  }
119
140
  const basePlugin = {
120
- name: "gui",
141
+ name: "hanzogui",
121
142
  enforce: "pre",
122
143
  configureServer(_server) {
123
144
  server = _server;
@@ -130,12 +151,12 @@ function guiPlugin({
130
151
  async config(_, env) {
131
152
  const options = await ensureLoaded();
132
153
  if (!options) {
133
- throw new Error(`No gui options loaded`);
154
+ throw new Error(`No hanzogui options loaded`);
134
155
  }
135
156
  if (!options.disableWatchGuiConfig) {
136
157
  watcher = Static.watchGuiConfig({
137
- components: ["gui"],
138
- config: "./src/gui.config.ts",
158
+ components: ["hanzogui"],
159
+ config: "./src/hanzogui.config.ts",
139
160
  ...options
140
161
  }).catch(err => {
141
162
  console.error(` [Gui] Error watching config: ${err}`);
@@ -181,7 +202,7 @@ function guiPlugin({
181
202
  }
182
203
  };
183
204
  const rnwLitePlugin = {
184
- name: "gui-rnw-lite",
205
+ name: "hanzogui-rnw-lite",
185
206
  config() {
186
207
  if (enableNativeEnv) {
187
208
  return {};
@@ -190,27 +211,40 @@ function guiPlugin({
190
211
  if (!options?.useReactNativeWebLite) {
191
212
  return {};
192
213
  }
214
+ const include = [];
215
+ if (isInstalled(process.cwd(), "memoize-one")) {
216
+ include.push("memoize-one");
217
+ }
193
218
  return {
194
219
  resolve: {
195
- alias: guiAliases({
220
+ alias: hanzoguiAliases({
196
221
  rnwLite: options.useReactNativeWebLite
197
222
  })
198
223
  },
199
224
  optimizeDeps: {
200
225
  // upstream react-native-web must not be pre-bundled when aliased to lite
201
- exclude: ["react-native-web"]
226
+ exclude: ["react-native-web"],
227
+ include
202
228
  }
203
229
  };
204
230
  }
205
231
  };
206
232
  const extractPlugin = {
207
- name: "gui-extract",
233
+ name: "hanzogui-extract",
208
234
  enforce: "pre",
209
235
  async config(userConf) {
210
236
  const options = await ensureLoaded();
211
237
  userConf.optimizeDeps ||= {};
212
238
  userConf.optimizeDeps.include ||= [];
213
239
  userConf.optimizeDeps.include.push("inline-style-prefixer");
240
+ addIfInstalled(userConf, userConf.root, ["@hanzogui/toast", "@hanzogui/toast/v2", "@hanzogui/sheet", "@hanzogui/sheet/controller"]);
241
+ userConf.resolve ||= {};
242
+ userConf.resolve.dedupe ||= [];
243
+ for (const id of ["hanzogui", "@hanzogui/core", "@hanzogui/web", "@hanzogui/toast", "@hanzogui/sheet"]) {
244
+ if (!userConf.resolve.dedupe.includes(id) && isInstalled(userConf.root || process.cwd(), id)) {
245
+ userConf.resolve.dedupe.push(id);
246
+ }
247
+ }
214
248
  if (!shouldExtract) return;
215
249
  userConf.optimizeDeps.include.push("@hanzogui/core/inject-styles");
216
250
  },
@@ -297,14 +331,14 @@ ${entry.cssImport}` : entry.js;
297
331
  const cached = memoryCache[cacheKey];
298
332
  if (cached) {
299
333
  if (process.env.DEBUG_GUI_CACHE) {
300
- console.info(`[gui-cache] HIT ${this.environment?.name || "unknown"} ${id.split("/").pop()} key=${cacheKey.slice(0, 8)}`);
334
+ console.info(`[hanzogui-cache] HIT ${this.environment?.name || "unknown"} ${id.split("/").pop()} key=${cacheKey.slice(0, 8)}`);
301
335
  }
302
336
  return formatResult(cached);
303
337
  }
304
338
  const pendingExtraction = pending.get(cacheKey);
305
339
  if (pendingExtraction) {
306
340
  if (process.env.DEBUG_GUI_CACHE) {
307
- console.info(`[gui-cache] WAIT ${this.environment?.name || "unknown"} ${id.split("/").pop()} key=${cacheKey.slice(0, 8)}`);
341
+ console.info(`[hanzogui-cache] WAIT ${this.environment?.name || "unknown"} ${id.split("/").pop()} key=${cacheKey.slice(0, 8)}`);
308
342
  }
309
343
  const result = await pendingExtraction;
310
344
  if (result) {
@@ -313,7 +347,7 @@ ${entry.cssImport}` : entry.js;
313
347
  return;
314
348
  }
315
349
  if (process.env.DEBUG_GUI_CACHE) {
316
- console.info(`[gui-cache] EXTRACT ${this.environment?.name || "unknown"} ${id.split("/").pop()} key=${cacheKey.slice(0, 8)}`);
350
+ console.info(`[hanzogui-cache] EXTRACT ${this.environment?.name || "unknown"} ${id.split("/").pop()} key=${cacheKey.slice(0, 8)}`);
317
351
  }
318
352
  const extractionPromise = (async () => {
319
353
  let extracted;
@@ -326,14 +360,14 @@ ${entry.cssImport}` : entry.js;
326
360
  });
327
361
  } catch (err) {
328
362
  if (process.env.DEBUG_GUI_CACHE) {
329
- console.info(`[gui-cache] ERROR extracting ${id.split("/").pop()}:`, err);
363
+ console.info(`[hanzogui-cache] ERROR extracting ${id.split("/").pop()}:`, err);
330
364
  }
331
365
  console.error(err instanceof Error ? err.message : String(err));
332
366
  return null;
333
367
  }
334
368
  if (!extracted) {
335
369
  if (process.env.DEBUG_GUI_CACHE) {
336
- console.info(`[gui-cache] no extraction result for ${id.split("/").pop()}`);
370
+ console.info(`[hanzogui-cache] no extraction result for ${id.split("/").pop()}`);
337
371
  }
338
372
  return null;
339
373
  }
@@ -362,7 +396,7 @@ ${entry.cssImport}` : entry.js;
362
396
  }
363
397
  memoryCache[cacheKey] = cacheEntry;
364
398
  if (process.env.DEBUG_GUI_CACHE) {
365
- console.info(`[gui-cache] WRITE key=${cacheKey.slice(0, 8)} cacheSize=${Object.keys(memoryCache).length}`);
399
+ console.info(`[hanzogui-cache] WRITE key=${cacheKey.slice(0, 8)} cacheSize=${Object.keys(memoryCache).length}`);
366
400
  }
367
401
  return cacheEntry;
368
402
  })();
@@ -381,5 +415,5 @@ ${entry.cssImport}` : entry.js;
381
415
  };
382
416
  return [basePlugin, rnwLitePlugin, extractPlugin];
383
417
  }
384
- export { guiAliases, guiPlugin };
418
+ export { hanzoguiAliases, hanzoguiPlugin };
385
419
  //# sourceMappingURL=plugin.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["Static","getPragmaOptions","createHash","path","fileURLToPath","normalizePath","loadGuiBuildConfig","getLoadPromise","getGuiOptions","ensureFullConfigLoaded","resolve","name","import","meta","CACHE_KEY","CACHE_SIZE_KEY","PENDING_KEY","getSharedCache","globalThis","getSharedCacheSize","setSharedCacheSize","size","clearSharedCache","getPendingExtractions","Map","guiAliases","options","aliases","svg","push","find","replacement","rnwLite","rnwl","rnwlBase","dirname","guiPlugin","disableResolveConfig","guiOptionsIn","shouldExtract","disableExtraction","watcher","enableNativeEnv","__vxrnEnableNativeEnv","extensions","ensureLoaded","promise","getHash","input","update","digest","memoryCache","cssMap","config","server","virtualExt","getAbsoluteVirtualFileId","filePath","startsWith","root","join","isNotClient","environment","isNative","invalidateModule","absoluteId","moduleGraph","modules","getModulesByFile","module","lastHMRTimestamp","lastInvalidationTimestamp","Date","now","basePlugin","enforce","configureServer","_server","buildEnd","then","res","dispose","_","env","Error","disableWatchGuiConfig","watchGuiConfig","components","catch","err","console","error","envPrefix","environments","client","define","JSON","stringify","_frameTimestamp","_WORKLET","__DEV__","mode","process","NODE_ENV","ENABLE_RSC","ENABLE_STEPS","alias","platform","useReactNativeWebLite","rnwLitePlugin","optimizeDeps","exclude","extractPlugin","userConf","include","configResolved","resolvedConfig","resolveId","source","validId","query","split","endsWith","has","load","id","disable","get","transform","order","handler","code","shouldDisable","shouldPrintDebug","trace","info","isSSR","cacheKey","pending","formatResult","entry","finalCode","cssImport","js","map","cached","DEBUG_GUI_CACHE","pop","slice","pendingExtraction","result","extractionPromise","extracted","extractToClassNames","sourcePath","message","String","rootRelativeId","styles","addWatchFile","set","jsCode","toString","cacheEntry","newSize","length","Object","keys","delete"],"sources":["../../src/plugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Static","getPragmaOptions","createHash","createRequire","path","fileURLToPath","loadGuiBuildConfig","getLoadPromise","getGuiOptions","ensureFullConfigLoaded","_pluginRequire","__filename","import","meta","url","resolve","name","normalizePath","value","replace","CACHE_KEY","CACHE_SIZE_KEY","PENDING_KEY","getSharedCache","globalThis","getSharedCacheSize","setSharedCacheSize","size","clearSharedCache","isInstalled","projectRoot","id","req","join","addIfInstalled","userConf","ids","root","process","cwd","optimizeDeps","include","includes","push","getPendingExtractions","Map","hanzoguiAliases","options","aliases","svg","find","replacement","rnwLite","rnwlBase","dirname","rnwl","hanzoguiPlugin","disableResolveConfig","hanzoguiOptionsIn","shouldExtract","disableExtraction","watcher","enableNativeEnv","__vxrnEnableNativeEnv","extensions","ensureLoaded","promise","getHash","input","update","digest","memoryCache","cssMap","config","server","virtualExt","getAbsoluteVirtualFileId","filePath","startsWith","isNotClient","environment","isNative","invalidateModule","absoluteId","moduleGraph","modules","getModulesByFile","module","lastHMRTimestamp","lastInvalidationTimestamp","Date","now","basePlugin","enforce","configureServer","_server","buildEnd","then","res","dispose","_","env","Error","disableWatchGuiConfig","watchGuiConfig","components","catch","err","console","error","envPrefix","environments","client","define","JSON","stringify","_frameTimestamp","_WORKLET","__DEV__","mode","NODE_ENV","ENABLE_RSC","ENABLE_STEPS","alias","platform","useReactNativeWebLite","rnwLitePlugin","exclude","extractPlugin","dedupe","configResolved","resolvedConfig","resolveId","source","validId","query","split","endsWith","has","load","disable","get","transform","order","handler","code","shouldDisable","shouldPrintDebug","trace","info","isSSR","cacheKey","pending","formatResult","entry","finalCode","cssImport","js","map","cached","DEBUG_GUI_CACHE","pop","slice","pendingExtraction","result","extractionPromise","extracted","extractToClassNames","sourcePath","message","String","rootRelativeId","styles","addWatchFile","set","jsCode","toString","cacheEntry","newSize","length","Object","keys","delete"],"sources":["../../src/plugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@hanzogui/vite-plugin",
3
- "version": "7.3.0",
4
- "license": "BSD-3-Clause",
3
+ "version": "8.0.0",
4
+ "license": "MIT",
5
5
  "files": [
6
6
  "src",
7
7
  "types",
@@ -26,34 +26,33 @@
26
26
  "access": "public"
27
27
  },
28
28
  "scripts": {
29
- "build": "gui-build --skip-native",
30
- "watch": "gui-build --skip-native --watch",
31
- "clean": "gui-build clean",
32
- "clean:build": "gui-build clean:build"
29
+ "build": "hanzogui-build --skip-native",
30
+ "watch": "hanzogui-build --skip-native --watch",
31
+ "clean": "hanzogui-build clean",
32
+ "clean:build": "hanzogui-build clean:build"
33
33
  },
34
34
  "dependencies": {
35
- "@hanzogui/fake-react-native": "7.3.0",
36
- "@hanzogui/proxy-worm": "7.3.0",
37
- "@hanzogui/react-native-svg": "7.3.0",
38
- "@hanzogui/react-native-web-lite": "7.3.0",
39
- "@hanzogui/static-worker": "7.3.0",
40
- "@hanzogui/types": "7.3.0",
35
+ "@hanzogui/fake-react-native": "8.0.0",
36
+ "@hanzogui/proxy-worm": "8.0.0",
37
+ "@hanzogui/react-native-svg": "8.0.0",
38
+ "@hanzogui/react-native-web-lite": "8.0.0",
39
+ "@hanzogui/static-worker": "8.0.0",
40
+ "@hanzogui/types": "8.0.0",
41
41
  "esm-resolve": "^1.0.8",
42
42
  "fs-extra": "^11.2.0",
43
43
  "outdent": "^0.8.0",
44
44
  "react-native-web": "^0.21.0"
45
45
  },
46
46
  "devDependencies": {
47
- "@hanzogui/build": "7.3.0",
47
+ "@hanzogui/build": "8.0.0",
48
48
  "vite": "^8.0.3"
49
49
  },
50
50
  "peerDependencies": {
51
- "vite": "*8.0.3"
51
+ "vite": "^8.0.3"
52
52
  },
53
53
  "hanzogui": {
54
54
  "build": {
55
55
  "skipEnvToMeta": true
56
56
  }
57
- },
58
- "author": "Hanzo AI <dev@hanzo.ai>"
57
+ }
59
58
  }
package/src/loadGui.ts CHANGED
@@ -2,7 +2,7 @@ import * as StaticWorker from '@hanzogui/static-worker'
2
2
  import type { GuiOptions } from '@hanzogui/types'
3
3
 
4
4
  // use globalThis to share state across vite environments (SSR, client, etc.)
5
- const LOAD_STATE_KEY = '__gui_load_state__'
5
+ const LOAD_STATE_KEY = '__hanzogui_load_state__'
6
6
 
7
7
  type LoadState = {
8
8
  loadPromise: Promise<GuiOptions> | null
@@ -32,8 +32,8 @@ export function getLoadPromise(): Promise<GuiOptions> | null {
32
32
  }
33
33
 
34
34
  /**
35
- * Load just the gui.build.ts config (lightweight)
36
- * This doesn't bundle the full gui config - call ensureFullConfigLoaded() for that
35
+ * Load just the hanzogui.build.ts config (lightweight)
36
+ * This doesn't bundle the full hanzogui config - call ensureFullConfigLoaded() for that
37
37
  */
38
38
  export async function loadGuiBuildConfig(
39
39
  optionsIn?: Partial<GuiOptions>
@@ -56,7 +56,7 @@ export async function loadGuiBuildConfig(
56
56
  }
57
57
 
58
58
  /**
59
- * Ensure the full gui config is loaded (heavy - bundles config + components)
59
+ * Ensure the full hanzogui config is loaded (heavy - bundles config + components)
60
60
  * Call this lazily when transform/extraction is actually needed
61
61
  */
62
62
  export async function ensureFullConfigLoaded(): Promise<void> {
@@ -70,10 +70,10 @@ export async function ensureFullConfigLoaded(): Promise<void> {
70
70
  state.fullConfigLoadPromise = (async () => {
71
71
  const options = await loadGuiBuildConfig()
72
72
 
73
- // load full gui config in worker (asynchronous)
73
+ // load full hanzogui config in worker (asynchronous)
74
74
  if (!options.disableWatchGuiConfig && !options.disable) {
75
75
  await StaticWorker.loadGui({
76
- components: ['gui'],
76
+ components: ['hanzogui'],
77
77
  platform: 'web',
78
78
  ...options,
79
79
  })
package/src/plugin.ts CHANGED
@@ -2,11 +2,11 @@ import type { GuiOptions, ExtractedResponse } from '@hanzogui/static-worker'
2
2
  import * as Static from '@hanzogui/static-worker'
3
3
  import { getPragmaOptions } from '@hanzogui/static-worker'
4
4
  import { createHash } from 'node:crypto'
5
- import { existsSync } from 'node:fs'
5
+ import { createRequire } from 'node:module'
6
6
  import path from 'node:path'
7
7
  import { fileURLToPath } from 'node:url'
8
8
  import type { Plugin, PluginOption, ResolvedConfig, ViteDevServer } from 'vite'
9
- import { normalizePath, transformWithEsbuild, type Environment } from 'vite'
9
+ import type { Environment } from 'vite'
10
10
  import {
11
11
  loadGuiBuildConfig,
12
12
  getLoadPromise,
@@ -14,7 +14,12 @@ import {
14
14
  ensureFullConfigLoaded,
15
15
  } from './loadGui'
16
16
 
17
- const resolve = (name: string) => fileURLToPath(import.meta.resolve(name))
17
+ // handle ESM/CJS duality for plugin dependencies - resolve from plugin's location, not user's project
18
+ const _pluginRequire = createRequire(
19
+ typeof __filename === 'string' ? __filename : fileURLToPath(import.meta.url)
20
+ )
21
+ const resolve = (name: string) => _pluginRequire.resolve(name)
22
+ const normalizePath = (value: string) => value.replace(/\\/g, '/')
18
23
 
19
24
  // shared cache across all plugin instances/environments via globalThis
20
25
  type CacheEntry = {
@@ -23,9 +28,9 @@ type CacheEntry = {
23
28
  cssImport: string | null
24
29
  }
25
30
 
26
- const CACHE_KEY = '__gui_vite_cache__'
27
- const CACHE_SIZE_KEY = '__gui_vite_cache_size__'
28
- const PENDING_KEY = '__gui_vite_pending__'
31
+ const CACHE_KEY = '__hanzogui_vite_cache__'
32
+ const CACHE_SIZE_KEY = '__hanzogui_vite_cache_size__'
33
+ const PENDING_KEY = '__hanzogui_vite_pending__'
29
34
 
30
35
  function getSharedCache(): Record<string, CacheEntry> {
31
36
  if (!(globalThis as any)[CACHE_KEY]) {
@@ -47,6 +52,34 @@ function clearSharedCache() {
47
52
  ;(globalThis as any)[CACHE_SIZE_KEY] = 0
48
53
  }
49
54
 
55
+ // resolves package ids against the user's project root (not the plugin's
56
+ // install location). returns true if the id is resolvable, false if the
57
+ // dep isn't installed, safe to call for optional deps.
58
+ function isInstalled(projectRoot: string, id: string): boolean {
59
+ try {
60
+ const req = createRequire(path.join(projectRoot, 'package.json'))
61
+ req.resolve(id)
62
+ return true
63
+ } catch {
64
+ return false
65
+ }
66
+ }
67
+
68
+ function addIfInstalled(
69
+ userConf: { optimizeDeps?: { include?: string[] } },
70
+ projectRoot: string | undefined,
71
+ ids: string[]
72
+ ): void {
73
+ const root = projectRoot || process.cwd()
74
+ userConf.optimizeDeps ||= {}
75
+ userConf.optimizeDeps.include ||= []
76
+ for (const id of ids) {
77
+ if (!userConf.optimizeDeps.include.includes(id) && isInstalled(root, id)) {
78
+ userConf.optimizeDeps.include.push(id)
79
+ }
80
+ }
81
+ }
82
+
50
83
  // pending extractions map - dedupes concurrent requests for same file
51
84
  function getPendingExtractions(): Map<string, Promise<CacheEntry | null>> {
52
85
  if (!(globalThis as any)[PENDING_KEY]) {
@@ -65,10 +98,10 @@ type AliasOptions = {
65
98
  type AliasEntry = { find: string | RegExp; replacement: string }
66
99
 
67
100
  /**
68
- * returns vite-compatible aliases for gui
101
+ * returns vite-compatible aliases for hanzogui
69
102
  * use this when you need control over alias ordering in your config
70
103
  */
71
- export function guiAliases(options: AliasOptions = {}): AliasEntry[] {
104
+ export function hanzoguiAliases(options: AliasOptions = {}): AliasEntry[] {
72
105
  const aliases: AliasEntry[] = []
73
106
 
74
107
  if (options.svg) {
@@ -79,20 +112,23 @@ export function guiAliases(options: AliasOptions = {}): AliasEntry[] {
79
112
  }
80
113
 
81
114
  if (options.rnwLite) {
82
- // entry point for main import (may be without-animated variant)
83
- const rnwl = resolve(
84
- options.rnwLite === 'without-animated'
85
- ? '@hanzogui/react-native-web-lite/without-animated'
86
- : '@hanzogui/react-native-web-lite'
87
- )
88
115
  // base package path for subpath imports (package directory, not entry file)
89
116
  const rnwlBase = path.dirname(resolve('@hanzogui/react-native-web-lite/package.json'))
117
+ // vite aliases need the esm entry; require.resolve points at cjs.
118
+ const rnwl = normalizePath(
119
+ path.join(
120
+ rnwlBase,
121
+ options.rnwLite === 'without-animated'
122
+ ? 'dist/esm/without-animated.mjs'
123
+ : 'dist/esm/index.mjs'
124
+ )
125
+ )
90
126
  aliases.push(
91
127
  {
92
128
  // map deep RNW paths like dist/exports/StyleSheet/preprocess to rnw-lite's flat structure
93
129
  // extracts the final path segment (e.g. "preprocess" or "createReactDOMStyle")
94
130
  find: /^react-native(?:-web)?\/dist\/(?:exports|modules)\/.*\/([^/]+)$/,
95
- replacement: `${rnwlBase}/dist/esm/$1.mjs`,
131
+ replacement: `${normalizePath(rnwlBase)}/dist/esm/$1.mjs`,
96
132
  },
97
133
  {
98
134
  find: /^react-native$/,
@@ -116,17 +152,17 @@ export function guiAliases(options: AliasOptions = {}): AliasEntry[] {
116
152
  return aliases
117
153
  }
118
154
 
119
- export function guiPlugin({
155
+ export function hanzoguiPlugin({
120
156
  disableResolveConfig,
121
- ...guiOptionsIn
157
+ ...hanzoguiOptionsIn
122
158
  }: GuiOptions & {
123
159
  disableResolveConfig?: boolean
124
160
  } = {}): PluginOption {
125
161
  // extraction ON by default, set disableExtraction: true to opt out
126
- let shouldExtract = !guiOptionsIn.disableExtraction
162
+ let shouldExtract = !hanzoguiOptionsIn.disableExtraction
127
163
  let watcher: Promise<{ dispose: () => void } | void | undefined> | undefined
128
164
 
129
- // TODO temporary fix
165
+ // temporary vxrn native env bridge
130
166
  const enableNativeEnv = !!globalThis.__vxrnEnableNativeEnv
131
167
 
132
168
  const extensions = [
@@ -145,14 +181,14 @@ export function guiPlugin({
145
181
  ]
146
182
 
147
183
  // start loading immediately but don't block
148
- loadGuiBuildConfig(guiOptionsIn)
184
+ loadGuiBuildConfig(hanzoguiOptionsIn)
149
185
 
150
186
  // helper to await load when needed
151
187
  const ensureLoaded = async () => {
152
188
  const promise = getLoadPromise()
153
189
  if (promise) await promise
154
190
  const options = getGuiOptions()
155
- // update shouldExtract from loaded config (gui.build.ts)
191
+ // update shouldExtract from loaded config (hanzogui.build.ts)
156
192
  if (options) {
157
193
  shouldExtract = !options.disableExtraction
158
194
  }
@@ -168,7 +204,7 @@ export function guiPlugin({
168
204
  const cssMap = new Map<string, string>()
169
205
  let config: ResolvedConfig
170
206
  let server: ViteDevServer
171
- const virtualExt = `.gui.css`
207
+ const virtualExt = `.hanzogui.css`
172
208
 
173
209
  const getAbsoluteVirtualFileId = (filePath: string) => {
174
210
  if (filePath.startsWith(config.root)) {
@@ -202,7 +238,7 @@ export function guiPlugin({
202
238
  }
203
239
 
204
240
  const basePlugin: Plugin = {
205
- name: 'gui',
241
+ name: 'hanzogui',
206
242
  enforce: 'pre',
207
243
 
208
244
  configureServer(_server) {
@@ -219,14 +255,14 @@ export function guiPlugin({
219
255
  const options = await ensureLoaded()
220
256
 
221
257
  if (!options) {
222
- throw new Error(`No gui options loaded`)
258
+ throw new Error(`No hanzogui options loaded`)
223
259
  }
224
260
 
225
261
  // start watching config if enabled
226
262
  if (!options.disableWatchGuiConfig) {
227
263
  watcher = Static.watchGuiConfig({
228
- components: ['gui'],
229
- config: './src/gui.config.ts',
264
+ components: ['hanzogui'],
265
+ config: './src/hanzogui.config.ts',
230
266
  ...options,
231
267
  }).catch((err) => {
232
268
  console.error(` [Gui] Error watching config: ${err}`)
@@ -281,7 +317,7 @@ export function guiPlugin({
281
317
  }
282
318
 
283
319
  const rnwLitePlugin: Plugin = {
284
- name: 'gui-rnw-lite',
320
+ name: 'hanzogui-rnw-lite',
285
321
 
286
322
  config() {
287
323
  if (enableNativeEnv) {
@@ -293,13 +329,25 @@ export function guiPlugin({
293
329
  return {}
294
330
  }
295
331
 
332
+ // react-native-web-lite imports memoize-one internally. the esbuild dep
333
+ // scanner doesn't follow it through the react-native -> rnw-lite alias, so
334
+ // vite discovers it only at request time, re-optimizes mid-load, and full
335
+ // reloads. on slow runners (CI) the in-flight optimized-dep request 504s
336
+ // ("Outdated Optimize Dep") and surfaces as a console error. pre-include
337
+ // it so the first optimize pass is complete and no reload is triggered.
338
+ const include: string[] = []
339
+ if (isInstalled(process.cwd(), 'memoize-one')) {
340
+ include.push('memoize-one')
341
+ }
342
+
296
343
  return {
297
344
  resolve: {
298
- alias: guiAliases({ rnwLite: options.useReactNativeWebLite }),
345
+ alias: hanzoguiAliases({ rnwLite: options.useReactNativeWebLite }),
299
346
  },
300
347
  optimizeDeps: {
301
348
  // upstream react-native-web must not be pre-bundled when aliased to lite
302
349
  exclude: ['react-native-web'],
350
+ include,
303
351
  },
304
352
  }
305
353
  },
@@ -308,7 +356,7 @@ export function guiPlugin({
308
356
  // extract plugin for optimize mode
309
357
  // always included, but checks shouldExtract dynamically after config loads
310
358
  const extractPlugin: Plugin = {
311
- name: 'gui-extract',
359
+ name: 'hanzogui-extract',
312
360
  enforce: 'pre',
313
361
 
314
362
  async config(userConf) {
@@ -319,9 +367,47 @@ export function guiPlugin({
319
367
  userConf.optimizeDeps.include ||= []
320
368
 
321
369
  // inline-style-prefixer is CJS with __esModule and breaks without pre-bundling
322
- // (ReferenceError: exports is not defined). always include it.
370
+ // (reference error: exports is not defined). always include it.
323
371
  userConf.optimizeDeps.include.push('inline-style-prefixer')
324
372
 
373
+ // pre-bundle hanzogui packages that use internal hooks (useThemeName, etc.)
374
+ // from sub-entries, vite's dep crawler can otherwise split them into a
375
+ // separate chunk with its own hanzogui copy, producing two ThemeStateContext
376
+ // instances and "Missing theme" errors at runtime.
377
+ //
378
+ // @hanzogui/sheet/controller is the lightweight controller subpath imported
379
+ // by popover/dialog/select; the app imports @hanzogui/sheet (full). if these
380
+ // land in separate optimized chunks they each get their own copy of
381
+ // SheetControllerContext, so the SheetController provider (from /controller)
382
+ // and the Sheet consumer (from the full entry) never match and adapted
383
+ // sheets silently never open. include both so they share one context chunk.
384
+ addIfInstalled(userConf, userConf.root, [
385
+ '@hanzogui/toast',
386
+ '@hanzogui/toast/v2',
387
+ '@hanzogui/sheet',
388
+ '@hanzogui/sheet/controller',
389
+ ])
390
+
391
+ // dedupe hanzogui packages so nested resolutions collapse to a single
392
+ // instance. pairs with the include above: include pre-bundles, dedupe
393
+ // prevents duplicate bundling when sub-deps re-resolve them.
394
+ userConf.resolve ||= {}
395
+ userConf.resolve.dedupe ||= []
396
+ for (const id of [
397
+ 'hanzogui',
398
+ '@hanzogui/core',
399
+ '@hanzogui/web',
400
+ '@hanzogui/toast',
401
+ '@hanzogui/sheet',
402
+ ]) {
403
+ if (
404
+ !userConf.resolve.dedupe.includes(id) &&
405
+ isInstalled(userConf.root || process.cwd(), id)
406
+ ) {
407
+ userConf.resolve.dedupe.push(id)
408
+ }
409
+ }
410
+
325
411
  if (!shouldExtract) return
326
412
 
327
413
  userConf.optimizeDeps.include.push('@hanzogui/core/inject-styles')
@@ -380,7 +466,7 @@ export function guiPlugin({
380
466
  transform: {
381
467
  order: 'pre',
382
468
  async handler(code, id) {
383
- // ensure gui is loaded before transform
469
+ // ensure hanzogui is loaded before transform
384
470
  const options = await ensureLoaded()
385
471
 
386
472
  // ensure full config (heavy bundling) is loaded before extraction
@@ -434,7 +520,7 @@ export function guiPlugin({
434
520
  if (cached) {
435
521
  if (process.env.DEBUG_GUI_CACHE) {
436
522
  console.info(
437
- `[gui-cache] HIT ${this.environment?.name || 'unknown'} ${id.split('/').pop()} key=${cacheKey.slice(0, 8)}`
523
+ `[hanzogui-cache] HIT ${this.environment?.name || 'unknown'} ${id.split('/').pop()} key=${cacheKey.slice(0, 8)}`
438
524
  )
439
525
  }
440
526
  return formatResult(cached)
@@ -445,7 +531,7 @@ export function guiPlugin({
445
531
  if (pendingExtraction) {
446
532
  if (process.env.DEBUG_GUI_CACHE) {
447
533
  console.info(
448
- `[gui-cache] WAIT ${this.environment?.name || 'unknown'} ${id.split('/').pop()} key=${cacheKey.slice(0, 8)}`
534
+ `[hanzogui-cache] WAIT ${this.environment?.name || 'unknown'} ${id.split('/').pop()} key=${cacheKey.slice(0, 8)}`
449
535
  )
450
536
  }
451
537
  const result = await pendingExtraction
@@ -457,7 +543,7 @@ export function guiPlugin({
457
543
 
458
544
  if (process.env.DEBUG_GUI_CACHE) {
459
545
  console.info(
460
- `[gui-cache] EXTRACT ${this.environment?.name || 'unknown'} ${id.split('/').pop()} key=${cacheKey.slice(0, 8)}`
546
+ `[hanzogui-cache] EXTRACT ${this.environment?.name || 'unknown'} ${id.split('/').pop()} key=${cacheKey.slice(0, 8)}`
461
547
  )
462
548
  }
463
549
 
@@ -474,7 +560,7 @@ export function guiPlugin({
474
560
  } catch (err) {
475
561
  if (process.env.DEBUG_GUI_CACHE) {
476
562
  console.info(
477
- `[gui-cache] ERROR extracting ${id.split('/').pop()}:`,
563
+ `[hanzogui-cache] ERROR extracting ${id.split('/').pop()}:`,
478
564
  err
479
565
  )
480
566
  }
@@ -485,7 +571,7 @@ export function guiPlugin({
485
571
  if (!extracted) {
486
572
  if (process.env.DEBUG_GUI_CACHE) {
487
573
  console.info(
488
- `[gui-cache] no extraction result for ${id.split('/').pop()}`
574
+ `[hanzogui-cache] no extraction result for ${id.split('/').pop()}`
489
575
  )
490
576
  }
491
577
  return null
@@ -527,7 +613,7 @@ export function guiPlugin({
527
613
 
528
614
  if (process.env.DEBUG_GUI_CACHE) {
529
615
  console.info(
530
- `[gui-cache] WRITE key=${cacheKey.slice(0, 8)} cacheSize=${Object.keys(memoryCache).length}`
616
+ `[hanzogui-cache] WRITE key=${cacheKey.slice(0, 8)} cacheSize=${Object.keys(memoryCache).length}`
531
617
  )
532
618
  }
533
619
 
@@ -2,12 +2,12 @@ import type { GuiOptions } from '@hanzogui/types';
2
2
  export declare function getGuiOptions(): GuiOptions | null;
3
3
  export declare function getLoadPromise(): Promise<GuiOptions> | null;
4
4
  /**
5
- * Load just the gui.build.ts config (lightweight)
6
- * This doesn't bundle the full gui config - call ensureFullConfigLoaded() for that
5
+ * Load just the hanzogui.build.ts config (lightweight)
6
+ * This doesn't bundle the full hanzogui config - call ensureFullConfigLoaded() for that
7
7
  */
8
8
  export declare function loadGuiBuildConfig(optionsIn?: Partial<GuiOptions>): Promise<GuiOptions>;
9
9
  /**
10
- * Ensure the full gui config is loaded (heavy - bundles config + components)
10
+ * Ensure the full hanzogui config is loaded (heavy - bundles config + components)
11
11
  * Call this lazily when transform/extraction is actually needed
12
12
  */
13
13
  export declare function ensureFullConfigLoaded(): Promise<void>;
package/types/plugin.d.ts CHANGED
@@ -11,11 +11,11 @@ type AliasEntry = {
11
11
  replacement: string;
12
12
  };
13
13
  /**
14
- * returns vite-compatible aliases for gui
14
+ * returns vite-compatible aliases for hanzogui
15
15
  * use this when you need control over alias ordering in your config
16
16
  */
17
- export declare function guiAliases(options?: AliasOptions): AliasEntry[];
18
- export declare function guiPlugin({ disableResolveConfig, ...guiOptionsIn }?: GuiOptions & {
17
+ export declare function hanzoguiAliases(options?: AliasOptions): AliasEntry[];
18
+ export declare function hanzoguiPlugin({ disableResolveConfig, ...hanzoguiOptionsIn }?: GuiOptions & {
19
19
  disableResolveConfig?: boolean;
20
20
  }): PluginOption;
21
21
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAqB,MAAM,yBAAyB,CAAA;AAO5E,OAAO,KAAK,EAAU,YAAY,EAAiC,MAAM,MAAM,CAAA;AAkD/E,KAAK,YAAY,GAAG;IAClB,iFAAiF;IACjF,OAAO,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAA;IACtC,2DAA2D;IAC3D,GAAG,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,KAAK,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhE;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,GAAE,YAAiB,GAAG,UAAU,EAAE,CA8CnE;AAED,wBAAgB,SAAS,CAAC,EACxB,oBAAoB,EACpB,GAAG,YAAY,EAChB,GAAE,UAAU,GAAG;IACd,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC1B,GAAG,YAAY,CA+apB"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAqB,MAAM,yBAAyB,CAAA;AAO5E,OAAO,KAAK,EAAU,YAAY,EAAiC,MAAM,MAAM,CAAA;AAmF/E,KAAK,YAAY,GAAG;IAClB,iFAAiF;IACjF,OAAO,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAA;IACtC,2DAA2D;IAC3D,GAAG,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,KAAK,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhE;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,YAAiB,GAAG,UAAU,EAAE,CAiDxE;AAED,wBAAgB,cAAc,CAAC,EAC7B,oBAAoB,EACpB,GAAG,iBAAiB,EACrB,GAAE,UAAU,GAAG;IACd,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC1B,GAAG,YAAY,CAiepB"}
package/LICENSE DELETED
@@ -1,42 +0,0 @@
1
- BSD 3-Clause License
2
-
3
- Copyright (c) 2026-present, Hanzo AI, Inc.
4
-
5
- Portions of this software are derived from upstream code originally licensed under
6
- the MIT License, with the following copyright notices retained per its terms:
7
-
8
- Copyright (c) 2020 Nate Wienert
9
- Copyright (c) 2015-present, Nicolas Gallagher.
10
- Copyright (c) 2015-present, Facebook, Inc.
11
- Copyright (c) 2021 Radix
12
- Copyright (c) 2017 Carmelo Pullara
13
- Copyright (c) 2018 Framer B.V.
14
- Copyright (c) 2022 WorkOS
15
-
16
- All rights reserved.
17
-
18
- Redistribution and use in source and binary forms, with or without
19
- modification, are permitted provided that the following conditions are met:
20
-
21
- 1. Redistributions of source code must retain the above copyright notice, this
22
- list of conditions and the following disclaimer.
23
-
24
- 2. Redistributions in binary form must reproduce the above copyright notice,
25
- this list of conditions and the following disclaimer in the documentation
26
- and/or other materials provided with the distribution.
27
-
28
- 3. Neither the name of the copyright holder nor the names of its contributors
29
- may be used to endorse or promote products derived from this software
30
- without specific prior written permission.
31
-
32
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
33
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
34
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
35
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
36
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
37
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
38
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
39
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
40
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
41
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
42
- POSSIBILITY OF SUCH DAMAGE.