@qontinui/navigation 0.1.2 → 0.1.4

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.
package/dist/index.cjs CHANGED
@@ -69,6 +69,7 @@ __export(index_exports, {
69
69
  getNavigationGroups: () => getNavigationGroups,
70
70
  getProductMode: () => getProductMode,
71
71
  getRunnerNavigation: () => getRunnerNavigation,
72
+ getShowHiddenItems: () => getShowHiddenItems,
72
73
  getWebNavigation: () => getWebNavigation,
73
74
  isDevelopmentMode: () => isDevelopmentMode,
74
75
  isGroupExpanded: () => isGroupExpanded,
@@ -82,6 +83,7 @@ __export(index_exports, {
82
83
  serializeState: () => serializeState,
83
84
  setDevelopmentMode: () => setDevelopmentMode,
84
85
  setProductMode: () => setProductMode,
86
+ setShowHiddenItems: () => setShowHiddenItems,
85
87
  useNavigationItem: () => useNavigationItem
86
88
  });
87
89
  module.exports = __toCommonJS(index_exports);
@@ -314,14 +316,18 @@ var AUTOMATE_ITEMS = [
314
316
  label: "Scheduled Tasks",
315
317
  icon: "Calendar",
316
318
  description: "Manage scheduled automation",
317
- productMode: "ai"
319
+ productMode: "ai",
320
+ // Runner-only feature — has no web page (web route 404s).
321
+ platforms: ["runner"]
318
322
  },
319
323
  {
320
324
  id: "triggers",
321
325
  label: "Triggers",
322
326
  icon: "Zap",
323
327
  description: "Event-driven workflow automation",
324
- productMode: "ai"
328
+ productMode: "ai",
329
+ // Runner-only feature — has no web page (web route 404s).
330
+ platforms: ["runner"]
325
331
  },
326
332
  {
327
333
  id: "watchers",
@@ -347,7 +353,11 @@ var BUILD_ITEMS = [
347
353
  description: "Build phase-based automation workflows",
348
354
  route: "/build/workflows",
349
355
  color: "var(--brand-secondary)",
350
- productMode: "ai"
356
+ productMode: "ai",
357
+ // Advanced surface — demoted from the default nav now that the Terminal is
358
+ // the primary entry point. Reached via the Terminal "save as workflow"
359
+ // disclosure or by opting into "Show advanced automation features".
360
+ hidden: true
351
361
  },
352
362
  {
353
363
  id: "dag-workflow-editor",
@@ -357,7 +367,8 @@ var BUILD_ITEMS = [
357
367
  route: "/build/dag-editor",
358
368
  color: "#6366f1",
359
369
  platforms: ["runner"],
360
- productMode: "ai"
370
+ productMode: "ai",
371
+ hidden: true
361
372
  },
362
373
  {
363
374
  id: "step-builders",
@@ -366,7 +377,8 @@ var BUILD_ITEMS = [
366
377
  description: "Build and browse step templates",
367
378
  route: "/build/templates",
368
379
  color: "var(--brand-secondary)",
369
- productMode: "ai"
380
+ productMode: "ai",
381
+ hidden: true
370
382
  },
371
383
  {
372
384
  id: "library",
@@ -411,7 +423,9 @@ var BUILD_ITEMS = [
411
423
  description: "Visual GUI automation \u2014 build state machines and inspect runs",
412
424
  route: "/vga",
413
425
  color: "var(--brand-secondary)",
414
- productMode: "both"
426
+ // Visual GUI automation belongs to Visual mode, not AI Dev (removed from
427
+ // the AI Dev sidebar on both runner and web).
428
+ productMode: "visual"
415
429
  },
416
430
  {
417
431
  id: "orchestration-loop",
@@ -420,7 +434,8 @@ var BUILD_ITEMS = [
420
434
  description: "Iterative workflow loop with pipeline mode (build/reflect/fix)",
421
435
  route: "/orchestration-loop",
422
436
  color: "#8B5CF6",
423
- platforms: ["runner"]
437
+ platforms: ["runner"],
438
+ hidden: true
424
439
  },
425
440
  {
426
441
  id: "demo-video",
@@ -499,7 +514,9 @@ var INSIGHTS_ITEMS = [
499
514
  label: "Reflection",
500
515
  icon: "RotateCcw",
501
516
  description: "Reflection fix effectiveness and history",
502
- productMode: "ai"
517
+ productMode: "ai",
518
+ // Runner-only feature — has no web page (web route 404s).
519
+ platforms: ["runner"]
503
520
  },
504
521
  {
505
522
  id: "architecture",
@@ -1016,10 +1033,20 @@ function setProductMode(mode) {
1016
1033
  function getProductMode() {
1017
1034
  return _productMode;
1018
1035
  }
1036
+ var _showHiddenItems = false;
1037
+ function setShowHiddenItems(show) {
1038
+ _showHiddenItems = show;
1039
+ }
1040
+ function getShowHiddenItems() {
1041
+ return _showHiddenItems;
1042
+ }
1019
1043
  function isItemAvailable(item, platform) {
1020
1044
  if (item.hiddenInProd && !isDevelopmentMode()) {
1021
1045
  return false;
1022
1046
  }
1047
+ if (item.hidden && !_showHiddenItems) {
1048
+ return false;
1049
+ }
1023
1050
  if (_productMode && item.productMode && item.productMode !== "both" && item.productMode !== _productMode) {
1024
1051
  return false;
1025
1052
  }
@@ -1357,6 +1384,7 @@ function NavigationItemShell({
1357
1384
  getNavigationGroups,
1358
1385
  getProductMode,
1359
1386
  getRunnerNavigation,
1387
+ getShowHiddenItems,
1360
1388
  getWebNavigation,
1361
1389
  isDevelopmentMode,
1362
1390
  isGroupExpanded,
@@ -1370,5 +1398,6 @@ function NavigationItemShell({
1370
1398
  serializeState,
1371
1399
  setDevelopmentMode,
1372
1400
  setProductMode,
1401
+ setShowHiddenItems,
1373
1402
  useNavigationItem
1374
1403
  });
package/dist/index.d.cts CHANGED
@@ -40,6 +40,16 @@ interface NavigationItem {
40
40
  shortcut?: string;
41
41
  /** Hide from navigation in production (visible in dev mode with a badge) */
42
42
  hiddenInProd?: boolean;
43
+ /**
44
+ * Hide from the default navigation as an "advanced" surface. Unlike
45
+ * `hiddenInProd` (which keys off dev/prod), `hidden` items stay out of the
46
+ * sidebar until the user opts in via the "Show advanced automation features"
47
+ * setting (wired through `setShowHiddenItems(true)`). The route/tab id is
48
+ * still registered, so deep-links and programmatic tab-activation continue
49
+ * to resolve. Used to demote the workflow-authoring surfaces (workflow
50
+ * builder, DAG editor, orchestration loop, step builders) now that the
51
+ * Terminal is the primary entry point. */
52
+ hidden?: boolean;
43
53
  /** Product mode visibility - "ai", "visual", or "both" (default: shown in all modes) */
44
54
  productMode?: "ai" | "visual" | "both";
45
55
  /** URL path for web routing (e.g., "/build/workflows") */
@@ -144,10 +154,14 @@ type NavigationAction = {
144
154
  * Shared navigation group definitions for Qontinui applications.
145
155
  * These define the structure and hierarchy of the sidebar navigation.
146
156
  *
147
- * Each item can have three orthogonal visibility dimensions:
157
+ * Each item can have four orthogonal visibility dimensions:
148
158
  * - platform: "runner" | "web" | both (default) — which app shows the item
149
159
  * - productMode: "ai" | "visual" | "both" | undefined (default=both) — which product mode
150
160
  * - hiddenInProd: true — dev-only items hidden in production
161
+ * - hidden: true — "advanced" surfaces (the workflow-authoring tools) kept
162
+ * out of the default sidebar until the user opts in via "Show advanced
163
+ * automation features" (setShowHiddenItems). Route/tab id stays registered,
164
+ * so deep-links (e.g. the Terminal "save as workflow" disclosure) resolve.
151
165
  *
152
166
  * ---------------------------------------------------------------------------
153
167
  * Terminal-centric information architecture (2026-06).
@@ -259,6 +273,20 @@ declare function setProductMode(mode: ProductMode): void;
259
273
  * Get the current product mode filter.
260
274
  */
261
275
  declare function getProductMode(): ProductMode;
276
+ /**
277
+ * Set whether items flagged `hidden: true` should be shown.
278
+ *
279
+ * Defaults to false, so "advanced" surfaces (the workflow-authoring tools)
280
+ * are kept out of the default sidebar. Each app wires this to a persisted
281
+ * "Show advanced automation features" setting (Settings → General). Toggling
282
+ * it on restores the items without affecting their route/tab registration —
283
+ * deep-links resolve regardless of this flag.
284
+ */
285
+ declare function setShowHiddenItems(show: boolean): void;
286
+ /**
287
+ * Whether `hidden` items are currently shown.
288
+ */
289
+ declare function getShowHiddenItems(): boolean;
262
290
  /**
263
291
  * Filter a navigation item based on platform.
264
292
  * Returns true if the item should be shown on the given platform.
@@ -437,4 +465,4 @@ interface NavigationItemShellProps {
437
465
  */
438
466
  declare function NavigationItemShell({ item, onActivate, children, }: NavigationItemShellProps): React.ReactElement;
439
467
 
440
- export { AUTOMATE_GROUP, AUTOMATE_ITEMS, BUILD_GROUP, BUILD_ITEMS, CHILDREN_MAP, CONFIGURE_GROUP, CONFIGURE_ITEMS, DEV_GROUP, DEV_ITEMS, ICON_NAMES, INSIGHTS_GROUP, INSIGHTS_ITEMS, type IconName, NAVIGATION_GROUPS, type NavigationAction, type NavigationBadge, type NavigationGroup, type NavigationItem, type NavigationItemLike, NavigationItemShell, type NavigationItemShellProps, type NavigationState, type Platform, REVIEW_GROUP, REVIEW_ITEMS, RUNS_ITEMS, SESSION_ITEMS, SETTINGS_ITEMS, SPEND_GROUP, SPEND_ITEMS, STORAGE_KEYS, SYSTEM_GROUP, SYSTEM_ITEMS, type SecondarySidebarState, WORKSPACE_GROUP, WORKSPACE_ITEMS, createInitialState, deserializeState, filterGroupForPlatform, filterGroupsForPlatform, filterItemsForPlatform, findItemById, getAllItems, getChildrenForPlatform, getChildrenItems, getItemGroup, getNavigationGroups, getProductMode, getRunnerNavigation, getWebNavigation, isDevelopmentMode, isGroupExpanded, isItemActive, isItemAvailable, isItemExpanded, isSecondaryOpenFor, isValidIconName, navigationActions, navigationReducer, serializeState, setDevelopmentMode, setProductMode, useNavigationItem };
468
+ export { AUTOMATE_GROUP, AUTOMATE_ITEMS, BUILD_GROUP, BUILD_ITEMS, CHILDREN_MAP, CONFIGURE_GROUP, CONFIGURE_ITEMS, DEV_GROUP, DEV_ITEMS, ICON_NAMES, INSIGHTS_GROUP, INSIGHTS_ITEMS, type IconName, NAVIGATION_GROUPS, type NavigationAction, type NavigationBadge, type NavigationGroup, type NavigationItem, type NavigationItemLike, NavigationItemShell, type NavigationItemShellProps, type NavigationState, type Platform, REVIEW_GROUP, REVIEW_ITEMS, RUNS_ITEMS, SESSION_ITEMS, SETTINGS_ITEMS, SPEND_GROUP, SPEND_ITEMS, STORAGE_KEYS, SYSTEM_GROUP, SYSTEM_ITEMS, type SecondarySidebarState, WORKSPACE_GROUP, WORKSPACE_ITEMS, createInitialState, deserializeState, filterGroupForPlatform, filterGroupsForPlatform, filterItemsForPlatform, findItemById, getAllItems, getChildrenForPlatform, getChildrenItems, getItemGroup, getNavigationGroups, getProductMode, getRunnerNavigation, getShowHiddenItems, getWebNavigation, isDevelopmentMode, isGroupExpanded, isItemActive, isItemAvailable, isItemExpanded, isSecondaryOpenFor, isValidIconName, navigationActions, navigationReducer, serializeState, setDevelopmentMode, setProductMode, setShowHiddenItems, useNavigationItem };
package/dist/index.d.ts CHANGED
@@ -40,6 +40,16 @@ interface NavigationItem {
40
40
  shortcut?: string;
41
41
  /** Hide from navigation in production (visible in dev mode with a badge) */
42
42
  hiddenInProd?: boolean;
43
+ /**
44
+ * Hide from the default navigation as an "advanced" surface. Unlike
45
+ * `hiddenInProd` (which keys off dev/prod), `hidden` items stay out of the
46
+ * sidebar until the user opts in via the "Show advanced automation features"
47
+ * setting (wired through `setShowHiddenItems(true)`). The route/tab id is
48
+ * still registered, so deep-links and programmatic tab-activation continue
49
+ * to resolve. Used to demote the workflow-authoring surfaces (workflow
50
+ * builder, DAG editor, orchestration loop, step builders) now that the
51
+ * Terminal is the primary entry point. */
52
+ hidden?: boolean;
43
53
  /** Product mode visibility - "ai", "visual", or "both" (default: shown in all modes) */
44
54
  productMode?: "ai" | "visual" | "both";
45
55
  /** URL path for web routing (e.g., "/build/workflows") */
@@ -144,10 +154,14 @@ type NavigationAction = {
144
154
  * Shared navigation group definitions for Qontinui applications.
145
155
  * These define the structure and hierarchy of the sidebar navigation.
146
156
  *
147
- * Each item can have three orthogonal visibility dimensions:
157
+ * Each item can have four orthogonal visibility dimensions:
148
158
  * - platform: "runner" | "web" | both (default) — which app shows the item
149
159
  * - productMode: "ai" | "visual" | "both" | undefined (default=both) — which product mode
150
160
  * - hiddenInProd: true — dev-only items hidden in production
161
+ * - hidden: true — "advanced" surfaces (the workflow-authoring tools) kept
162
+ * out of the default sidebar until the user opts in via "Show advanced
163
+ * automation features" (setShowHiddenItems). Route/tab id stays registered,
164
+ * so deep-links (e.g. the Terminal "save as workflow" disclosure) resolve.
151
165
  *
152
166
  * ---------------------------------------------------------------------------
153
167
  * Terminal-centric information architecture (2026-06).
@@ -259,6 +273,20 @@ declare function setProductMode(mode: ProductMode): void;
259
273
  * Get the current product mode filter.
260
274
  */
261
275
  declare function getProductMode(): ProductMode;
276
+ /**
277
+ * Set whether items flagged `hidden: true` should be shown.
278
+ *
279
+ * Defaults to false, so "advanced" surfaces (the workflow-authoring tools)
280
+ * are kept out of the default sidebar. Each app wires this to a persisted
281
+ * "Show advanced automation features" setting (Settings → General). Toggling
282
+ * it on restores the items without affecting their route/tab registration —
283
+ * deep-links resolve regardless of this flag.
284
+ */
285
+ declare function setShowHiddenItems(show: boolean): void;
286
+ /**
287
+ * Whether `hidden` items are currently shown.
288
+ */
289
+ declare function getShowHiddenItems(): boolean;
262
290
  /**
263
291
  * Filter a navigation item based on platform.
264
292
  * Returns true if the item should be shown on the given platform.
@@ -437,4 +465,4 @@ interface NavigationItemShellProps {
437
465
  */
438
466
  declare function NavigationItemShell({ item, onActivate, children, }: NavigationItemShellProps): React.ReactElement;
439
467
 
440
- export { AUTOMATE_GROUP, AUTOMATE_ITEMS, BUILD_GROUP, BUILD_ITEMS, CHILDREN_MAP, CONFIGURE_GROUP, CONFIGURE_ITEMS, DEV_GROUP, DEV_ITEMS, ICON_NAMES, INSIGHTS_GROUP, INSIGHTS_ITEMS, type IconName, NAVIGATION_GROUPS, type NavigationAction, type NavigationBadge, type NavigationGroup, type NavigationItem, type NavigationItemLike, NavigationItemShell, type NavigationItemShellProps, type NavigationState, type Platform, REVIEW_GROUP, REVIEW_ITEMS, RUNS_ITEMS, SESSION_ITEMS, SETTINGS_ITEMS, SPEND_GROUP, SPEND_ITEMS, STORAGE_KEYS, SYSTEM_GROUP, SYSTEM_ITEMS, type SecondarySidebarState, WORKSPACE_GROUP, WORKSPACE_ITEMS, createInitialState, deserializeState, filterGroupForPlatform, filterGroupsForPlatform, filterItemsForPlatform, findItemById, getAllItems, getChildrenForPlatform, getChildrenItems, getItemGroup, getNavigationGroups, getProductMode, getRunnerNavigation, getWebNavigation, isDevelopmentMode, isGroupExpanded, isItemActive, isItemAvailable, isItemExpanded, isSecondaryOpenFor, isValidIconName, navigationActions, navigationReducer, serializeState, setDevelopmentMode, setProductMode, useNavigationItem };
468
+ export { AUTOMATE_GROUP, AUTOMATE_ITEMS, BUILD_GROUP, BUILD_ITEMS, CHILDREN_MAP, CONFIGURE_GROUP, CONFIGURE_ITEMS, DEV_GROUP, DEV_ITEMS, ICON_NAMES, INSIGHTS_GROUP, INSIGHTS_ITEMS, type IconName, NAVIGATION_GROUPS, type NavigationAction, type NavigationBadge, type NavigationGroup, type NavigationItem, type NavigationItemLike, NavigationItemShell, type NavigationItemShellProps, type NavigationState, type Platform, REVIEW_GROUP, REVIEW_ITEMS, RUNS_ITEMS, SESSION_ITEMS, SETTINGS_ITEMS, SPEND_GROUP, SPEND_ITEMS, STORAGE_KEYS, SYSTEM_GROUP, SYSTEM_ITEMS, type SecondarySidebarState, WORKSPACE_GROUP, WORKSPACE_ITEMS, createInitialState, deserializeState, filterGroupForPlatform, filterGroupsForPlatform, filterItemsForPlatform, findItemById, getAllItems, getChildrenForPlatform, getChildrenItems, getItemGroup, getNavigationGroups, getProductMode, getRunnerNavigation, getShowHiddenItems, getWebNavigation, isDevelopmentMode, isGroupExpanded, isItemActive, isItemAvailable, isItemExpanded, isSecondaryOpenFor, isValidIconName, navigationActions, navigationReducer, serializeState, setDevelopmentMode, setProductMode, setShowHiddenItems, useNavigationItem };
package/dist/index.js CHANGED
@@ -226,14 +226,18 @@ var AUTOMATE_ITEMS = [
226
226
  label: "Scheduled Tasks",
227
227
  icon: "Calendar",
228
228
  description: "Manage scheduled automation",
229
- productMode: "ai"
229
+ productMode: "ai",
230
+ // Runner-only feature — has no web page (web route 404s).
231
+ platforms: ["runner"]
230
232
  },
231
233
  {
232
234
  id: "triggers",
233
235
  label: "Triggers",
234
236
  icon: "Zap",
235
237
  description: "Event-driven workflow automation",
236
- productMode: "ai"
238
+ productMode: "ai",
239
+ // Runner-only feature — has no web page (web route 404s).
240
+ platforms: ["runner"]
237
241
  },
238
242
  {
239
243
  id: "watchers",
@@ -259,7 +263,11 @@ var BUILD_ITEMS = [
259
263
  description: "Build phase-based automation workflows",
260
264
  route: "/build/workflows",
261
265
  color: "var(--brand-secondary)",
262
- productMode: "ai"
266
+ productMode: "ai",
267
+ // Advanced surface — demoted from the default nav now that the Terminal is
268
+ // the primary entry point. Reached via the Terminal "save as workflow"
269
+ // disclosure or by opting into "Show advanced automation features".
270
+ hidden: true
263
271
  },
264
272
  {
265
273
  id: "dag-workflow-editor",
@@ -269,7 +277,8 @@ var BUILD_ITEMS = [
269
277
  route: "/build/dag-editor",
270
278
  color: "#6366f1",
271
279
  platforms: ["runner"],
272
- productMode: "ai"
280
+ productMode: "ai",
281
+ hidden: true
273
282
  },
274
283
  {
275
284
  id: "step-builders",
@@ -278,7 +287,8 @@ var BUILD_ITEMS = [
278
287
  description: "Build and browse step templates",
279
288
  route: "/build/templates",
280
289
  color: "var(--brand-secondary)",
281
- productMode: "ai"
290
+ productMode: "ai",
291
+ hidden: true
282
292
  },
283
293
  {
284
294
  id: "library",
@@ -323,7 +333,9 @@ var BUILD_ITEMS = [
323
333
  description: "Visual GUI automation \u2014 build state machines and inspect runs",
324
334
  route: "/vga",
325
335
  color: "var(--brand-secondary)",
326
- productMode: "both"
336
+ // Visual GUI automation belongs to Visual mode, not AI Dev (removed from
337
+ // the AI Dev sidebar on both runner and web).
338
+ productMode: "visual"
327
339
  },
328
340
  {
329
341
  id: "orchestration-loop",
@@ -332,7 +344,8 @@ var BUILD_ITEMS = [
332
344
  description: "Iterative workflow loop with pipeline mode (build/reflect/fix)",
333
345
  route: "/orchestration-loop",
334
346
  color: "#8B5CF6",
335
- platforms: ["runner"]
347
+ platforms: ["runner"],
348
+ hidden: true
336
349
  },
337
350
  {
338
351
  id: "demo-video",
@@ -411,7 +424,9 @@ var INSIGHTS_ITEMS = [
411
424
  label: "Reflection",
412
425
  icon: "RotateCcw",
413
426
  description: "Reflection fix effectiveness and history",
414
- productMode: "ai"
427
+ productMode: "ai",
428
+ // Runner-only feature — has no web page (web route 404s).
429
+ platforms: ["runner"]
415
430
  },
416
431
  {
417
432
  id: "architecture",
@@ -928,10 +943,20 @@ function setProductMode(mode) {
928
943
  function getProductMode() {
929
944
  return _productMode;
930
945
  }
946
+ var _showHiddenItems = false;
947
+ function setShowHiddenItems(show) {
948
+ _showHiddenItems = show;
949
+ }
950
+ function getShowHiddenItems() {
951
+ return _showHiddenItems;
952
+ }
931
953
  function isItemAvailable(item, platform) {
932
954
  if (item.hiddenInProd && !isDevelopmentMode()) {
933
955
  return false;
934
956
  }
957
+ if (item.hidden && !_showHiddenItems) {
958
+ return false;
959
+ }
935
960
  if (_productMode && item.productMode && item.productMode !== "both" && item.productMode !== _productMode) {
936
961
  return false;
937
962
  }
@@ -1268,6 +1293,7 @@ export {
1268
1293
  getNavigationGroups,
1269
1294
  getProductMode,
1270
1295
  getRunnerNavigation,
1296
+ getShowHiddenItems,
1271
1297
  getWebNavigation,
1272
1298
  isDevelopmentMode,
1273
1299
  isGroupExpanded,
@@ -1281,5 +1307,6 @@ export {
1281
1307
  serializeState,
1282
1308
  setDevelopmentMode,
1283
1309
  setProductMode,
1310
+ setShowHiddenItems,
1284
1311
  useNavigationItem
1285
1312
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qontinui/navigation",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Shared navigation structure for Qontinui applications",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -10,7 +10,7 @@
10
10
  "dist"
11
11
  ],
12
12
  "scripts": {
13
- "build": "tsup src/index.ts --format cjs,esm --dts && test -s dist/index.d.ts",
13
+ "build": "tsup src/index.ts --format cjs,esm --dts && node -e \"if(!require('fs').statSync('dist/index.d.ts').size)process.exit(1)\"",
14
14
  "dev": "tsup src/index.ts --format cjs,esm --dts --watch",
15
15
  "typecheck": "tsc --noEmit",
16
16
  "lint": "eslint src/",