@republicroad/seal-appshell 1.1.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.
Files changed (105) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +74 -0
  3. package/dist/assets/custom-node-schema.json.d.ts +549 -0
  4. package/dist/components/__tests__/skinned-decision-graph.test.d.ts +1 -0
  5. package/dist/components/__tests__/skinned-header.test.d.ts +1 -0
  6. package/dist/components/__tests__/skinned-panels.test.d.ts +1 -0
  7. package/dist/components/__tests__/skinned-simulator-panel.test.d.ts +1 -0
  8. package/dist/components/__tests__/skinned-simulator.test.d.ts +1 -0
  9. package/dist/components/custom-node/__tests__/custom-node-button.test.d.ts +1 -0
  10. package/dist/components/custom-node/__tests__/schema-container-tab.test.d.ts +1 -0
  11. package/dist/components/custom-node/crypto-node.d.ts +5 -0
  12. package/dist/components/custom-node/current-date-node.d.ts +8 -0
  13. package/dist/components/custom-node/http-request-node.d.ts +5 -0
  14. package/dist/components/custom-node/key-value-editor.d.ts +16 -0
  15. package/dist/components/custom-node/locked-corner-badge.d.ts +2 -0
  16. package/dist/components/custom-node/query-list-node.d.ts +5 -0
  17. package/dist/components/custom-node/schema-container-tab.d.ts +13 -0
  18. package/dist/components/icons/code.d.ts +3 -0
  19. package/dist/components/icons/flash-circle.d.ts +3 -0
  20. package/dist/components/reui/alert.d.ts +9 -0
  21. package/dist/components/reui/autocomplete.d.ts +40 -0
  22. package/dist/components/reui/badge.d.ts +14 -0
  23. package/dist/components/reui/cascader/cascader-async.d.ts +86 -0
  24. package/dist/components/reui/cascader/cascader-columns.d.ts +26 -0
  25. package/dist/components/reui/cascader/cascader-context.d.ts +190 -0
  26. package/dist/components/reui/cascader/cascader-footer.d.ts +83 -0
  27. package/dist/components/reui/cascader/cascader-i18n.d.ts +13 -0
  28. package/dist/components/reui/cascader/cascader-item.d.ts +112 -0
  29. package/dist/components/reui/cascader/cascader-lib.d.ts +137 -0
  30. package/dist/components/reui/cascader/cascader-nav.d.ts +56 -0
  31. package/dist/components/reui/cascader/cascader-types.d.ts +179 -0
  32. package/dist/components/reui/cascader/cascader-virtual.d.ts +62 -0
  33. package/dist/components/reui/cascader/cascader.d.ts +325 -0
  34. package/dist/components/shell-header.d.ts +20 -0
  35. package/dist/components/skinned-decision-graph.d.ts +19 -0
  36. package/dist/components/ui/alert-dialog.d.ts +20 -0
  37. package/dist/components/ui/avatar.d.ts +5 -0
  38. package/dist/components/ui/badge.d.ts +9 -0
  39. package/dist/components/ui/button.d.ts +11 -0
  40. package/dist/components/ui/dropdown-menu.d.ts +27 -0
  41. package/dist/components/ui/field.d.ts +24 -0
  42. package/dist/components/ui/input.d.ts +3 -0
  43. package/dist/components/ui/label.d.ts +4 -0
  44. package/dist/components/ui/scroll-area.d.ts +4 -0
  45. package/dist/components/ui/select.d.ts +13 -0
  46. package/dist/components/ui/separator.d.ts +3 -0
  47. package/dist/components/ui/sheet.d.ts +23 -0
  48. package/dist/components/ui/sonner.d.ts +5 -0
  49. package/dist/components/ui/spinner.d.ts +2 -0
  50. package/dist/components/ui/switch.d.ts +3 -0
  51. package/dist/components/ui/tabs.d.ts +6 -0
  52. package/dist/components/ui/toggle-group.d.ts +13 -0
  53. package/dist/components/ui/toggle.d.ts +12 -0
  54. package/dist/components/ui/tooltip.d.ts +7 -0
  55. package/dist/components/version-history/__tests__/version-history-panel.test.d.ts +1 -0
  56. package/dist/components/version-history/version-history-panel.d.ts +40 -0
  57. package/dist/context/theme.provider.d.ts +29 -0
  58. package/dist/hooks/useCustomNodes.d.ts +16 -0
  59. package/dist/index.d.ts +24 -0
  60. package/dist/index.js +121959 -0
  61. package/dist/integration/decision-graph-appshell.stories.d.ts +10 -0
  62. package/dist/lib/__tests__/crypto-protocol.test.d.ts +1 -0
  63. package/dist/lib/__tests__/custom-node-registry.test.d.ts +1 -0
  64. package/dist/lib/__tests__/http-request-protocol.test.d.ts +1 -0
  65. package/dist/lib/__tests__/json-path-protocol.test.d.ts +1 -0
  66. package/dist/lib/__tests__/storage-key.test.d.ts +1 -0
  67. package/dist/lib/auth/__tests__/adapter.test.d.ts +1 -0
  68. package/dist/lib/auth/adapter.d.ts +7 -0
  69. package/dist/lib/auth-client.d.ts +3 -0
  70. package/dist/lib/crypto-protocol.d.ts +28 -0
  71. package/dist/lib/custom-node-plans.d.ts +24 -0
  72. package/dist/lib/custom-node-registry.d.ts +13 -0
  73. package/dist/lib/custom-node-schema-source.d.ts +6 -0
  74. package/dist/lib/custom-node-types.d.ts +73 -0
  75. package/dist/lib/http-request-protocol.d.ts +47 -0
  76. package/dist/lib/json-path-protocol.d.ts +11 -0
  77. package/dist/lib/roster-source.d.ts +12 -0
  78. package/dist/lib/storage-key.d.ts +5 -0
  79. package/dist/lib/user-resolver.d.ts +6 -0
  80. package/dist/lib/utils.d.ts +2 -0
  81. package/dist/reui/icons/animated/duotone/lock.d.ts +3 -0
  82. package/dist/reui/icons/animated/outline/play-circle.d.ts +3 -0
  83. package/dist/reui/icons/default/outline/plus-circle.d.ts +3 -0
  84. package/dist/reui/icons/default/outline/shield-search.d.ts +3 -0
  85. package/dist/reui/icons/default/outline/trash-square.d.ts +3 -0
  86. package/dist/setupTests.d.ts +0 -0
  87. package/dist/shell/__tests__/default-simulate.test.d.ts +1 -0
  88. package/dist/shell/__tests__/graphs-http-adapter.test.d.ts +1 -0
  89. package/dist/shell/__tests__/indexed-db-adapter.test.d.ts +0 -0
  90. package/dist/shell/__tests__/restore.test.d.ts +0 -0
  91. package/dist/shell/default-simulate.d.ts +3 -0
  92. package/dist/shell/editor-shell.context.d.ts +22 -0
  93. package/dist/shell/execute-simulate.d.ts +8 -0
  94. package/dist/shell/graphs-http-adapter.d.ts +7 -0
  95. package/dist/shell/index.d.ts +10 -0
  96. package/dist/shell/indexed-db-adapter.d.ts +16 -0
  97. package/dist/shell/persistence.d.ts +89 -0
  98. package/dist/shell/restore.d.ts +21 -0
  99. package/dist/shell/types.d.ts +20 -0
  100. package/dist/skin/__tests__/apply.test.d.ts +1 -0
  101. package/dist/skin/apply.d.ts +7 -0
  102. package/dist/skin/layout.d.ts +17 -0
  103. package/dist/skin/types.d.ts +73 -0
  104. package/dist/style.css +2 -0
  105. package/package.json +73 -0
@@ -0,0 +1,40 @@
1
+ import { GraphDiff } from '@republicroad/seal-editor';
2
+ import * as React from 'react';
3
+ export type VersionHistoryEntry = {
4
+ revision: string;
5
+ versionName?: string;
6
+ pinned?: boolean;
7
+ updatedAt?: string;
8
+ auto?: boolean;
9
+ };
10
+ export interface VersionHistoryPanelProps {
11
+ open: boolean;
12
+ onOpenChange: (open: boolean) => void;
13
+ versions: VersionHistoryEntry[];
14
+ /** 当前所在版本(列表中禁用其恢复入口);缺省 = head */
15
+ currentRevision?: string;
16
+ loading?: boolean;
17
+ /** 恢复指定版本(宿主实现:确认对话框 + load) */
18
+ onRestore: (revision: string) => void;
19
+ /** 重命名/清除版本命名(宿主实现:adapter.renameVersion);未提供则隐藏重命名入口 */
20
+ onRename?: (revision: string, versionName: string | null) => void;
21
+ /**
22
+ * 版本差异摘要(可选,宿主计算:以各版本的前一版本为基线跑 computeGraphDiff,
23
+ * 键 = 版本 revision)。提供后条目显示 +/−/~ 摘要,点击展开变更明细。
24
+ */
25
+ diffs?: Record<string, GraphDiff>;
26
+ /** 钉住/取消钉住版本(宿主实现:adapter.updateVersionMeta);未提供则隐藏钉住入口 */
27
+ onPin?: (revision: string, pinned: boolean) => void;
28
+ /**
29
+ * 画布对比指定版本(宿主实现:载入该版本内容作为 DecisionGraph.diffBaseline;
30
+ * 传 null = 退出对比);未提供则隐藏对比入口。
31
+ */
32
+ onCompare?: (revision: string | null) => void;
33
+ /** 当前正在对比的版本 revision:其条目显示「对比中」徽标,对比入口呈退出态 */
34
+ comparingRevision?: string;
35
+ }
36
+ /**
37
+ * 版本历史侧滑面板:列出某图的全部历史版本,支持恢复到任一版本、按名称/版本号
38
+ * 过滤、命名版本的重命名,以及可选的版本差异摘要(受控,宿主喂 adapter 数据与回调)。
39
+ */
40
+ export declare const VersionHistoryPanel: React.FC<VersionHistoryPanelProps>;
@@ -0,0 +1,29 @@
1
+ import { default as React } from 'react';
2
+ import { SkinDefinition } from '../skin/types';
3
+ export declare enum ThemePreference {
4
+ Automatic = "automatic",
5
+ Dark = "dark",
6
+ Light = "light"
7
+ }
8
+ export type ThemeProviderOptions = {
9
+ /** 可切换皮肤集合:seeds/tokens 驱动换肤,nodeOverrides 驱动节点 UI 劫持 */
10
+ skins?: SkinDefinition[];
11
+ /** 初始皮肤 id(缺省取 skins[0]) */
12
+ defaultSkinId?: string;
13
+ };
14
+ type ThemeContextState = {
15
+ themePreference: ThemePreference;
16
+ setThemePreference: (preference: ThemePreference) => void;
17
+ isDarkTheme: boolean;
18
+ skins: SkinDefinition[];
19
+ skinId: string;
20
+ setSkinId: (id: string) => void;
21
+ activeSkin?: SkinDefinition;
22
+ };
23
+ export declare const ThemeContext: React.Context<ThemeContextState>;
24
+ export declare const ThemeContextProvider: React.FC<{
25
+ children: React.ReactNode;
26
+ options?: ThemeProviderOptions;
27
+ }>;
28
+ export declare const useTheme: () => ThemeContextState;
29
+ export {};
@@ -0,0 +1,16 @@
1
+ import { CustomNodeSpecification } from '@republicroad/seal-editor';
2
+ import { CustomNodeSchemaSource } from '../lib/custom-node-registry';
3
+ import { CustomNodeNamespace } from '../lib/custom-node-types';
4
+ type CustomNodeSpec = CustomNodeSpecification<object, any>;
5
+ export type UseCustomNodesOptions = {
6
+ /** 自定义节点 schema 来源:默认同源 /api/custom-nodes/schema;可传自定义 URL 或加载函数(库复用) */
7
+ schemaSource?: CustomNodeSchemaSource;
8
+ /** 追加宿主自定义节点(置于内置业务节点之前、schema 驱动节点之前) */
9
+ extraNodes?: CustomNodeSpec[];
10
+ };
11
+ export declare function useCustomNodes(options?: UseCustomNodesOptions): {
12
+ customNodes: CustomNodeSpec[];
13
+ schema: CustomNodeNamespace[] | null;
14
+ ready: boolean;
15
+ };
16
+ export {};
@@ -0,0 +1,24 @@
1
+ export * from './context/theme.provider';
2
+ export { useCustomNodes, type UseCustomNodesOptions } from './hooks/useCustomNodes';
3
+ export { applyNodeOverrides } from './skin/apply';
4
+ export { mapToolbarSlots } from './skin/layout';
5
+ export * from './skin/types';
6
+ export { SkinnedDecisionGraph, type SkinnedDecisionGraphProps } from './components/skinned-decision-graph';
7
+ export { ShellHeader, type ShellHeaderProps } from './components/shell-header';
8
+ export * from './lib/custom-node-plans';
9
+ export * from './lib/custom-node-schema-source';
10
+ export * from './lib/custom-node-types';
11
+ export { CUSTOM_FUNCTION_GROUP, LEGACY_UDF_KIND, createSpecNode, createLegacyUdfNode, schemaToCustomNodes, fetchCustomNodeSchema, parseCustomNodeSchemaPayload, uid, type CustomNodeSpec, type CustomNodeSchemaSource, } from './lib/custom-node-registry';
12
+ export * from './lib/user-resolver';
13
+ export * from './lib/roster-source';
14
+ export * from './lib/http-request-protocol';
15
+ export * from './lib/json-path-protocol';
16
+ export * from './lib/crypto-protocol';
17
+ export * from './shell';
18
+ export { HttpRequestTab, httpRequestNode } from './components/custom-node/http-request-node';
19
+ export { QueryListTab, queryListNode } from './components/custom-node/query-list-node';
20
+ export { CryptoTab, cryptoNode } from './components/custom-node/crypto-node';
21
+ export { CurrentDateTab, currentDateNode } from './components/custom-node/current-date-node';
22
+ export { KeyValueEditor } from './components/custom-node/key-value-editor';
23
+ export { LockedCornerBadge } from './components/custom-node/locked-corner-badge';
24
+ export { VersionHistoryPanel, type VersionHistoryPanelProps, type VersionHistoryEntry, } from './components/version-history/version-history-panel';