@qontinui/navigation 0.1.2 → 0.1.3

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);
@@ -347,7 +349,11 @@ var BUILD_ITEMS = [
347
349
  description: "Build phase-based automation workflows",
348
350
  route: "/build/workflows",
349
351
  color: "var(--brand-secondary)",
350
- productMode: "ai"
352
+ productMode: "ai",
353
+ // Advanced surface — demoted from the default nav now that the Terminal is
354
+ // the primary entry point. Reached via the Terminal "save as workflow"
355
+ // disclosure or by opting into "Show advanced automation features".
356
+ hidden: true
351
357
  },
352
358
  {
353
359
  id: "dag-workflow-editor",
@@ -357,7 +363,8 @@ var BUILD_ITEMS = [
357
363
  route: "/build/dag-editor",
358
364
  color: "#6366f1",
359
365
  platforms: ["runner"],
360
- productMode: "ai"
366
+ productMode: "ai",
367
+ hidden: true
361
368
  },
362
369
  {
363
370
  id: "step-builders",
@@ -366,7 +373,8 @@ var BUILD_ITEMS = [
366
373
  description: "Build and browse step templates",
367
374
  route: "/build/templates",
368
375
  color: "var(--brand-secondary)",
369
- productMode: "ai"
376
+ productMode: "ai",
377
+ hidden: true
370
378
  },
371
379
  {
372
380
  id: "library",
@@ -420,7 +428,8 @@ var BUILD_ITEMS = [
420
428
  description: "Iterative workflow loop with pipeline mode (build/reflect/fix)",
421
429
  route: "/orchestration-loop",
422
430
  color: "#8B5CF6",
423
- platforms: ["runner"]
431
+ platforms: ["runner"],
432
+ hidden: true
424
433
  },
425
434
  {
426
435
  id: "demo-video",
@@ -1016,10 +1025,20 @@ function setProductMode(mode) {
1016
1025
  function getProductMode() {
1017
1026
  return _productMode;
1018
1027
  }
1028
+ var _showHiddenItems = false;
1029
+ function setShowHiddenItems(show) {
1030
+ _showHiddenItems = show;
1031
+ }
1032
+ function getShowHiddenItems() {
1033
+ return _showHiddenItems;
1034
+ }
1019
1035
  function isItemAvailable(item, platform) {
1020
1036
  if (item.hiddenInProd && !isDevelopmentMode()) {
1021
1037
  return false;
1022
1038
  }
1039
+ if (item.hidden && !_showHiddenItems) {
1040
+ return false;
1041
+ }
1023
1042
  if (_productMode && item.productMode && item.productMode !== "both" && item.productMode !== _productMode) {
1024
1043
  return false;
1025
1044
  }
@@ -1357,6 +1376,7 @@ function NavigationItemShell({
1357
1376
  getNavigationGroups,
1358
1377
  getProductMode,
1359
1378
  getRunnerNavigation,
1379
+ getShowHiddenItems,
1360
1380
  getWebNavigation,
1361
1381
  isDevelopmentMode,
1362
1382
  isGroupExpanded,
@@ -1370,5 +1390,6 @@ function NavigationItemShell({
1370
1390
  serializeState,
1371
1391
  setDevelopmentMode,
1372
1392
  setProductMode,
1393
+ setShowHiddenItems,
1373
1394
  useNavigationItem
1374
1395
  });
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
@@ -259,7 +259,11 @@ var BUILD_ITEMS = [
259
259
  description: "Build phase-based automation workflows",
260
260
  route: "/build/workflows",
261
261
  color: "var(--brand-secondary)",
262
- productMode: "ai"
262
+ productMode: "ai",
263
+ // Advanced surface — demoted from the default nav now that the Terminal is
264
+ // the primary entry point. Reached via the Terminal "save as workflow"
265
+ // disclosure or by opting into "Show advanced automation features".
266
+ hidden: true
263
267
  },
264
268
  {
265
269
  id: "dag-workflow-editor",
@@ -269,7 +273,8 @@ var BUILD_ITEMS = [
269
273
  route: "/build/dag-editor",
270
274
  color: "#6366f1",
271
275
  platforms: ["runner"],
272
- productMode: "ai"
276
+ productMode: "ai",
277
+ hidden: true
273
278
  },
274
279
  {
275
280
  id: "step-builders",
@@ -278,7 +283,8 @@ var BUILD_ITEMS = [
278
283
  description: "Build and browse step templates",
279
284
  route: "/build/templates",
280
285
  color: "var(--brand-secondary)",
281
- productMode: "ai"
286
+ productMode: "ai",
287
+ hidden: true
282
288
  },
283
289
  {
284
290
  id: "library",
@@ -332,7 +338,8 @@ var BUILD_ITEMS = [
332
338
  description: "Iterative workflow loop with pipeline mode (build/reflect/fix)",
333
339
  route: "/orchestration-loop",
334
340
  color: "#8B5CF6",
335
- platforms: ["runner"]
341
+ platforms: ["runner"],
342
+ hidden: true
336
343
  },
337
344
  {
338
345
  id: "demo-video",
@@ -928,10 +935,20 @@ function setProductMode(mode) {
928
935
  function getProductMode() {
929
936
  return _productMode;
930
937
  }
938
+ var _showHiddenItems = false;
939
+ function setShowHiddenItems(show) {
940
+ _showHiddenItems = show;
941
+ }
942
+ function getShowHiddenItems() {
943
+ return _showHiddenItems;
944
+ }
931
945
  function isItemAvailable(item, platform) {
932
946
  if (item.hiddenInProd && !isDevelopmentMode()) {
933
947
  return false;
934
948
  }
949
+ if (item.hidden && !_showHiddenItems) {
950
+ return false;
951
+ }
935
952
  if (_productMode && item.productMode && item.productMode !== "both" && item.productMode !== _productMode) {
936
953
  return false;
937
954
  }
@@ -1268,6 +1285,7 @@ export {
1268
1285
  getNavigationGroups,
1269
1286
  getProductMode,
1270
1287
  getRunnerNavigation,
1288
+ getShowHiddenItems,
1271
1289
  getWebNavigation,
1272
1290
  isDevelopmentMode,
1273
1291
  isGroupExpanded,
@@ -1281,5 +1299,6 @@ export {
1281
1299
  serializeState,
1282
1300
  setDevelopmentMode,
1283
1301
  setProductMode,
1302
+ setShowHiddenItems,
1284
1303
  useNavigationItem
1285
1304
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qontinui/navigation",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
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/",