@openviking/react 0.1.1 → 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.
Files changed (229) hide show
  1. package/README.md +18 -15
  2. package/dist/1~0.js +506 -0
  3. package/dist/2~0.js +122 -0
  4. package/dist/30~0.js +1332 -0
  5. package/dist/3~0.js +2113 -4
  6. package/dist/ark-message-list-view~0.js +310 -0
  7. package/dist/c7~0.js +24 -0
  8. package/dist/client/index.d.ts +2 -1
  9. package/dist/client/paths.d.ts +64 -0
  10. package/dist/client/response.d.ts +31 -0
  11. package/dist/client/sse.d.ts +39 -0
  12. package/dist/client/stream.d.ts +26 -0
  13. package/dist/client/types.d.ts +104 -0
  14. package/dist/client.js +1 -239
  15. package/dist/components/agent-connect/agent-connect-copy.d.ts +34 -0
  16. package/dist/components/agent-connect/agent-connect-design.d.ts +1781 -0
  17. package/dist/components/agent-connect/agent-connect-detail.d.ts +13 -0
  18. package/dist/components/agent-connect/agent-connect-installer.d.ts +3 -0
  19. package/dist/components/agent-connect/agent-connect-instructions-view.d.ts +14 -0
  20. package/dist/components/agent-connect/agent-connect-instructions.d.ts +145 -0
  21. package/dist/components/agent-connect/agent-connect-markdown.d.ts +3 -0
  22. package/dist/components/agent-connect/agent-connect.d.ts +3 -3
  23. package/dist/components/agent-connect/content-en.d.ts +137 -0
  24. package/dist/components/agent-connect/content-zh.d.ts +137 -0
  25. package/dist/components/agent-connect/style.css +495 -6
  26. package/dist/components/agent-connect/types.d.ts +20 -166
  27. package/dist/components/file-browser-entries/file-browser-entries-icons.d.ts +18 -0
  28. package/dist/components/file-browser-entries/file-browser-entries.d.ts +14 -0
  29. package/dist/components/file-browser-entries/index.d.ts +1 -0
  30. package/dist/components/file-browser-entries/style.css +155 -0
  31. package/dist/components/file-browser-entries/types.d.ts +45 -0
  32. package/dist/components/file-browser-entries.js +1 -0
  33. package/dist/components/file-preview/file-preview-adapters.d.ts +33 -0
  34. package/dist/components/file-preview/file-preview-body.d.ts +24 -12
  35. package/dist/components/file-preview/file-preview-breadcrumb-menu.d.ts +16 -0
  36. package/dist/components/file-preview/file-preview-breadcrumb.d.ts +21 -0
  37. package/dist/components/file-preview/file-preview-copy-path.d.ts +12 -0
  38. package/dist/components/file-preview/file-preview-directory.d.ts +32 -0
  39. package/dist/components/file-preview/file-preview-editor.d.ts +22 -0
  40. package/dist/components/file-preview/file-preview-handle-adapters.d.ts +26 -0
  41. package/dist/components/file-preview/file-preview-header.d.ts +41 -14
  42. package/dist/components/file-preview/file-preview-labels.d.ts +15 -4
  43. package/dist/components/file-preview/file-preview-lazy-viewer.d.ts +3 -0
  44. package/dist/components/file-preview/file-preview-panels.d.ts +41 -0
  45. package/dist/components/file-preview/file-preview-path.d.ts +30 -0
  46. package/dist/components/file-preview/file-preview-source.d.ts +24 -0
  47. package/dist/components/file-preview/file-preview-state.d.ts +35 -0
  48. package/dist/components/file-preview/file-preview-tab-row.d.ts +16 -0
  49. package/dist/components/file-preview/file-preview-viewer.d.ts +31 -0
  50. package/dist/components/file-preview/file-preview.d.ts +9 -11
  51. package/dist/components/file-preview/level-selection.d.ts +25 -0
  52. package/dist/components/file-preview/style.css +4055 -126
  53. package/dist/components/file-preview/types.d.ts +350 -170
  54. package/dist/components/file-preview/use-directory-level.d.ts +30 -0
  55. package/dist/components/file-preview/use-file-preview-actions-context.d.ts +27 -0
  56. package/dist/components/file-preview/use-file-preview-actions.d.ts +19 -0
  57. package/dist/components/file-preview/use-file-preview-editing.d.ts +21 -2
  58. package/dist/components/file-preview/use-file-preview-ids.d.ts +24 -0
  59. package/dist/components/file-preview.js +1 -442
  60. package/dist/components/file-tree/file-tree-body.d.ts +8 -4
  61. package/dist/components/file-tree/file-tree-entry-row.d.ts +9 -3
  62. package/dist/components/file-tree/file-tree-icons.d.ts +12 -5
  63. package/dist/components/file-tree/file-tree-info-labels.d.ts +21 -0
  64. package/dist/components/file-tree/file-tree-info-tooltip.d.ts +43 -0
  65. package/dist/components/file-tree/file-tree-info.d.ts +29 -0
  66. package/dist/components/file-tree/file-tree-keyboard.d.ts +8 -4
  67. package/dist/components/file-tree/file-tree-row-context.d.ts +29 -12
  68. package/dist/components/file-tree/file-tree-row-shared.d.ts +18 -0
  69. package/dist/components/file-tree/file-tree-spinner.d.ts +10 -0
  70. package/dist/components/file-tree/file-tree-state-row.d.ts +7 -0
  71. package/dist/components/file-tree/file-tree-tooltip-surface.d.ts +22 -0
  72. package/dist/components/file-tree/file-tree.d.ts +12 -1
  73. package/dist/components/file-tree/style.css +280 -75
  74. package/dist/components/file-tree/types.d.ts +203 -0
  75. package/dist/components/file-tree/use-file-tree-actions.d.ts +7 -0
  76. package/dist/components/file-tree.js +1 -1
  77. package/dist/components/scope-switcher/scope-panel.d.ts +9 -3
  78. package/dist/components/scope-switcher/scope-selector.d.ts +1 -1
  79. package/dist/components/scope-switcher/scope-switcher.d.ts +1 -1
  80. package/dist/components/scope-switcher/style.css +282 -76
  81. package/dist/components/scope-switcher/types.d.ts +230 -108
  82. package/dist/components/style.css +14128 -390
  83. package/dist/components/tui/command-catalog.d.ts +58 -0
  84. package/dist/components/tui/command-completion.d.ts +19 -0
  85. package/dist/components/tui/command-definitions.d.ts +10 -0
  86. package/dist/components/tui/command-input.d.ts +16 -0
  87. package/dist/components/tui/style.css +1543 -5
  88. package/dist/components/tui/tui-assist.d.ts +15 -0
  89. package/dist/components/tui/tui-code-block.d.ts +8 -0
  90. package/dist/components/tui/tui-command-help.d.ts +9 -0
  91. package/dist/components/tui/tui-command-text.d.ts +6 -0
  92. package/dist/components/tui/tui-composer.d.ts +24 -0
  93. package/dist/components/tui/tui-copy-button.d.ts +9 -0
  94. package/dist/components/tui/tui-input-mirror.d.ts +14 -0
  95. package/dist/components/tui/tui-labels-zh.d.ts +2 -0
  96. package/dist/components/tui/tui-labels.d.ts +5 -0
  97. package/dist/components/tui/tui-markdown-renderers.d.ts +10 -0
  98. package/dist/components/tui/tui-markdown.d.ts +6 -0
  99. package/dist/components/tui/tui-param-hint.d.ts +7 -0
  100. package/dist/components/tui/tui-record-time.d.ts +11 -0
  101. package/dist/components/tui/tui-record.d.ts +13 -0
  102. package/dist/components/tui/tui-resource-preview.d.ts +10 -0
  103. package/dist/components/tui/tui-resource-tree.d.ts +10 -0
  104. package/dist/components/tui/tui-result-header.d.ts +7 -0
  105. package/dist/components/tui/tui-result-text.d.ts +5 -0
  106. package/dist/components/tui/tui-search-list.d.ts +8 -0
  107. package/dist/components/tui/tui-skeleton.d.ts +6 -0
  108. package/dist/components/tui/tui-status-card.d.ts +7 -0
  109. package/dist/components/tui/tui-text.d.ts +10 -0
  110. package/dist/components/tui/tui-uri-text.d.ts +19 -0
  111. package/dist/components/tui/tui-write-result.d.ts +7 -0
  112. package/dist/components/tui/tui.d.ts +10 -2
  113. package/dist/components/tui/types.d.ts +57 -15
  114. package/dist/components/tui/use-tui-assist-position.d.ts +3 -0
  115. package/dist/components/tui/use-tui-completion.d.ts +14 -0
  116. package/dist/components/tui/use-tui-composer-keyboard.d.ts +25 -0
  117. package/dist/components/viking-bot/ark-adapter.d.ts +45 -0
  118. package/dist/components/viking-bot/ark-message-body.d.ts +16 -0
  119. package/dist/components/viking-bot/ark-message-list-view.d.ts +7 -0
  120. package/dist/components/viking-bot/ark-message-row.d.ts +19 -0
  121. package/dist/components/viking-bot/index.d.ts +10 -0
  122. package/dist/components/viking-bot/interaction/ask-human-fields.d.ts +10 -0
  123. package/dist/components/viking-bot/interaction/index.d.ts +4 -0
  124. package/dist/components/viking-bot/interaction/labels.d.ts +7 -0
  125. package/dist/components/viking-bot/interaction/lazy-interaction.d.ts +3 -0
  126. package/dist/components/viking-bot/interaction/schedule-input.d.ts +13 -0
  127. package/dist/components/viking-bot/interaction/style.css +189 -0
  128. package/dist/components/viking-bot/interaction/style.js +0 -0
  129. package/dist/components/viking-bot/interaction/types.d.ts +188 -0
  130. package/dist/components/viking-bot/interaction/viking-bot-interaction.d.ts +9 -0
  131. package/dist/components/viking-bot/interaction.js +2 -0
  132. package/dist/components/viking-bot/labels.d.ts +2 -0
  133. package/dist/components/viking-bot/lazy-composer.d.ts +3 -0
  134. package/dist/components/viking-bot/message-groups.d.ts +12 -0
  135. package/dist/components/viking-bot/model.d.ts +252 -0
  136. package/dist/components/viking-bot/render-part.d.ts +12 -0
  137. package/dist/components/viking-bot/style.css +7135 -0
  138. package/dist/components/viking-bot/style.js +0 -0
  139. package/dist/components/viking-bot/types.d.ts +140 -0
  140. package/dist/components/viking-bot/viking-bot-composer.d.ts +6 -0
  141. package/dist/components/viking-bot/viking-bot-message-list.d.ts +3 -0
  142. package/dist/components/viking-bot/viking-bot.d.ts +16 -0
  143. package/dist/components/viking-bot.js +4 -0
  144. package/dist/c~0.js +201 -0
  145. package/dist/file-preview-viewer~0.js +191 -0
  146. package/dist/f~0.js +149 -77
  147. package/dist/h~0.js +58 -0
  148. package/dist/icons/file-type-icon.d.ts +31 -0
  149. package/dist/icons/index.d.ts +33 -23
  150. package/dist/icons/nextjs-icon.d.ts +19 -0
  151. package/dist/icons.js +1 -25
  152. package/dist/index.d.ts +4 -2
  153. package/dist/index.js +2 -1
  154. package/dist/k~0.js +1440 -0
  155. package/dist/lk~0.js +25 -12
  156. package/dist/l~0.js +1464 -25
  157. package/dist/modules/console/style.css +83 -1
  158. package/dist/modules/file-browser/file-browser-detail-icons.d.ts +10 -0
  159. package/dist/modules/file-browser/file-browser-detail.d.ts +33 -0
  160. package/dist/modules/file-browser/file-browser-empty.d.ts +3 -0
  161. package/dist/modules/file-browser/file-browser-failure.d.ts +22 -0
  162. package/dist/modules/file-browser/file-browser-icons.d.ts +18 -0
  163. package/dist/modules/file-browser/file-browser-labels.d.ts +28 -0
  164. package/dist/modules/file-browser/file-browser-layout.d.ts +27 -0
  165. package/dist/modules/file-browser/file-browser-toolbar.d.ts +18 -0
  166. package/dist/modules/file-browser/file-browser-tree-pane.d.ts +30 -0
  167. package/dist/modules/file-browser/file-browser.d.ts +14 -5
  168. package/dist/modules/file-browser/find-result.d.ts +24 -0
  169. package/dist/modules/file-browser/fs-directories.d.ts +33 -0
  170. package/dist/modules/file-browser/fs-file-kind.d.ts +19 -0
  171. package/dist/modules/file-browser/fs-icon.d.ts +17 -0
  172. package/dist/modules/file-browser/fs-model.d.ts +106 -0
  173. package/dist/modules/file-browser/fs-page.d.ts +16 -0
  174. package/dist/modules/file-browser/fs-path.d.ts +16 -0
  175. package/dist/modules/file-browser/fs-read-directory.d.ts +20 -0
  176. package/dist/modules/file-browser/fs-scope.d.ts +22 -0
  177. package/dist/modules/file-browser/fs-stat.d.ts +25 -0
  178. package/dist/modules/file-browser/index.d.ts +3 -1
  179. package/dist/modules/file-browser/style.css +5009 -34
  180. package/dist/modules/file-browser/tree-info-copy.d.ts +15 -0
  181. package/dist/modules/file-browser/tree-info-copy.zh-CN.d.ts +15 -0
  182. package/dist/modules/file-browser/types.d.ts +189 -44
  183. package/dist/modules/file-browser/use-container-width.d.ts +17 -0
  184. package/dist/modules/file-browser/use-file-browser.d.ts +49 -0
  185. package/dist/modules/file-browser/use-fs-preview.d.ts +51 -0
  186. package/dist/modules/file-browser/use-fs-search.d.ts +35 -0
  187. package/dist/modules/file-browser/use-fs-tree.d.ts +43 -0
  188. package/dist/modules/file-browser/use-request-scope.d.ts +39 -0
  189. package/dist/modules/file-browser.js +1 -1
  190. package/dist/modules/scope-cascade/style.css +282 -76
  191. package/dist/modules/style.css +5445 -130
  192. package/dist/n~0.js +568 -236
  193. package/dist/o~0.js +103 -0
  194. package/dist/shared/components/divider/divider.d.ts +18 -0
  195. package/dist/shared/components/divider/index.d.ts +1 -0
  196. package/dist/shared/components/divider/types.d.ts +35 -0
  197. package/dist/shared/components/overlay/types.d.ts +7 -0
  198. package/dist/shared/components/overlay/use-overlay-position.d.ts +38 -0
  199. package/dist/shared/components/popover/index.d.ts +1 -0
  200. package/dist/shared/components/popover/popover.d.ts +23 -0
  201. package/dist/shared/components/popover/types.d.ts +50 -0
  202. package/dist/shared/components/resizable/clamp.d.ts +13 -0
  203. package/dist/shared/components/resizable/index.d.ts +2 -0
  204. package/dist/shared/components/resizable/resizable-handle.d.ts +25 -0
  205. package/dist/shared/components/resizable/types.d.ts +48 -0
  206. package/dist/shared/components/tooltip/index.d.ts +1 -0
  207. package/dist/shared/components/tooltip/tooltip.d.ts +25 -0
  208. package/dist/shared/components/tooltip/types.d.ts +42 -0
  209. package/dist/style.css +19664 -530
  210. package/dist/u~0.js +1597 -4
  211. package/dist/viking-bot-composer~0.js +164 -0
  212. package/dist/viking-bot-interaction~0.js +284 -0
  213. package/dist/w~0.js +19 -0
  214. package/package.json +23 -10
  215. package/dist/components/file-preview/file-preview-icons.d.ts +0 -2
  216. package/dist/components/file-preview/file-preview-operations.d.ts +0 -1
  217. package/dist/components/file-tree/file-tree-dom.d.ts +0 -4
  218. package/dist/components/file-tree/file-tree-labels.d.ts +0 -5
  219. package/dist/components/file-tree/file-tree-rows.d.ts +0 -12
  220. package/dist/components/file-tree/file-tree-tooltip.d.ts +0 -11
  221. package/dist/i~0.js +0 -21
  222. package/dist/modules/file-browser/file-browser-toolbar-button.d.ts +0 -10
  223. package/dist/modules/task-center/columns.d.ts +0 -129
  224. package/dist/modules/task-center/index.d.ts +0 -1
  225. package/dist/modules/task-center/style.css +0 -29
  226. package/dist/modules/task-center/task-center.d.ts +0 -4
  227. package/dist/modules/task-center/types.d.ts +0 -168
  228. package/dist/modules/task-center.js +0 -1
  229. /package/dist/{modules/task-center → components/file-browser-entries}/style.js +0 -0
@@ -0,0 +1,35 @@
1
+ import type { FilePreviewLabels } from './types.js';
2
+ /** 空文件态:严格长度为 0。The empty-file state, for a strictly zero-length body. */
3
+ export declare function EmptyFileState({ text, }: {
4
+ text: Required<FilePreviewLabels>;
5
+ }): import("react").JSX.Element;
6
+ /** 无可见内容态:正文存在但没有可渲染的文本。 */
7
+ export declare function NoContentState({ text, }: {
8
+ text: Required<FilePreviewLabels>;
9
+ }): import("react").JSX.Element;
10
+ /**
11
+ * 加载态。只用到 `loading` 一条文案,因此参数收窄到这一项:宿主在正文还没
12
+ * 取回来时手上没有完整的一套文案,也不该为了显示加载中而编一份。
13
+ *
14
+ * A loading state. Only `loading` is read, so the parameter narrows to that one
15
+ * field: a host that has not received the body yet has no full copy set, and should
16
+ * not have to invent one just to show that something is loading.
17
+ */
18
+ export declare function LoadingState({ text, }: {
19
+ text: Pick<FilePreviewLabels, 'loading'>;
20
+ }): import("react").JSX.Element;
21
+ /** 读取失败态,带重试入口。A read-failure state with a retry entry. */
22
+ export declare function LoadFailedState({ text, description, onRetry, }: {
23
+ text: Required<FilePreviewLabels>;
24
+ description?: string;
25
+ onRetry?: () => void;
26
+ }): import("react").JSX.Element;
27
+ /** 格式不支持态,带下载入口。An unsupported-format state with a download entry. */
28
+ export declare function UnsupportedState({ text, onDownload, }: {
29
+ text: Required<FilePreviewLabels>;
30
+ onDownload?: () => void;
31
+ }): import("react").JSX.Element;
32
+ /** 正文被截断时的提示,固定在正文下方。 */
33
+ export declare function TruncatedNotice({ text, }: {
34
+ text: Required<FilePreviewLabels>;
35
+ }): import("react").JSX.Element;
@@ -0,0 +1,16 @@
1
+ import type { FilePreviewTab } from './types.js';
2
+ export interface FilePreviewTabRowProps {
3
+ tabs: readonly FilePreviewTab[];
4
+ activeKey: string;
5
+ disabled: boolean;
6
+ /** 按 key 生成页签的 DOM id,带实例前缀避免多实例重复。 */
7
+ tabId: (key: string) => string;
8
+ /** 按 key 生成面板的 DOM id,与 `tabId` 同源。 */
9
+ panelId: (key: string) => string;
10
+ onSelect: (key: string) => void;
11
+ }
12
+ /**
13
+ * 页签行:文件夹卡片式页签,选中页签与内容区连成一体。
14
+ * The tab row: folder-style tabs where the selected one joins the content area.
15
+ */
16
+ export declare function FilePreviewTabRow({ tabs, activeKey, disabled, tabId, panelId, onSelect, }: FilePreviewTabRowProps): import("react").JSX.Element;
@@ -0,0 +1,31 @@
1
+ import type { ViewerHandle, ViewerViewModeOption } from '@ark-design/ui/file-viewer/core';
2
+ import type { MarkdownAdapterOptions } from '@ark-design/ui/file-viewer/adapters/markdown';
3
+ import type { FilePreviewFileTab, FilePreviewLabels, FilePreviewViewMode } from './types.js';
4
+ export interface FilePreviewViewerProps {
5
+ tab: FilePreviewFileTab;
6
+ text: Required<FilePreviewLabels>;
7
+ locale?: 'en-US' | 'zh-CN';
8
+ viewMode: FilePreviewViewMode;
9
+ onViewModeChange: (mode: FilePreviewViewMode) => void;
10
+ onDownload: () => void;
11
+ onHandleChange: (handle: ViewerHandle | null) => void;
12
+ onViewModesChange: (modes: readonly ViewerViewModeOption[]) => void;
13
+ /** Markdown 正文里的链接被点击时调用;传入即由宿主接管导航。 */
14
+ onLinkClick?: MarkdownAdapterOptions['onLinkClick'];
15
+ }
16
+ /**
17
+ * 文件页签的正文:把宿主的 `source` 交给底座按格式渲染。
18
+ *
19
+ * `toolbar` 恒为 `false`,外壳全部由组件渲染;兜底态通过 `slots` 换成组件
20
+ * 自己的文案,底座只负责格式路由、渲染器按需加载与准入。
21
+ *
22
+ * 本模块会静态引入底座,只能由懒加载入口引用,见 `file-preview-body.tsx`。
23
+ *
24
+ * The body of a file tab: hands the host `source` to the base component for
25
+ * format rendering. `toolbar` stays `false` because the component renders the
26
+ * whole shell, and the fallback states are replaced through `slots` so the copy
27
+ * comes from this component. The base keeps format routing, on-demand renderer
28
+ * loading and admission. This module statically imports the base, so only the
29
+ * lazy entry may reference it; see `file-preview-body.tsx`.
30
+ */
31
+ export declare function FilePreviewViewer({ tab, text, locale, viewMode, onViewModeChange, onDownload, onHandleChange, onViewModesChange, onLinkClick, }: FilePreviewViewerProps): string | number | bigint | boolean | import("react").JSX.Element | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | Iterable<import("react").ReactNode> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | null | undefined>;
@@ -1,17 +1,15 @@
1
1
  import type { FilePreviewComponent } from './types.js';
2
- export type { FilePreviewComponent, FilePreviewContentTab, FilePreviewEditing, FilePreviewFileTab, FilePreviewFileTabSlots, FilePreviewHandle, FilePreviewHeaderSlots, FilePreviewLabels, FilePreviewOperations, FilePreviewProps, FilePreviewSource, FilePreviewTab, FilePreviewTabBase, } from './types.js';
2
+ export { LoadingState } from './file-preview-state.js';
3
+ export type { FilePreviewActions, FilePreviewComponent, FilePreviewContentTab, FilePreviewDirectoryLevel, FilePreviewDirectoryTab, FilePreviewEditing, FilePreviewFileTab, FilePreviewFileTabSlots, FilePreviewHandle, FilePreviewHeaderSlots, FilePreviewLabels, FilePreviewOperations, FilePreviewProps, FilePreviewSource, FilePreviewTab, FilePreviewTabBase, FilePreviewViewMode, } from './types.js';
3
4
  /**
4
- * 文件预览的占位实现。
5
+ * 文件预览:页签行、内容区标题行与正文组成的外壳,正文由底座按格式渲染。
5
6
  *
6
- * 外壳(页签行、内容区标题行、页签切换与 ref 句柄)按最终形态实现,可直接
7
- * 交互;文件正文尚未接入 FileViewer,文件页签先以纯文本降级展示,内容页签
8
- * 按宿主给的节点渲染。
7
+ * 文件页签的正文交给 `FileViewerCore`,内容页签的正文由宿主原样渲染。空文件、
8
+ * 截断与编辑态由组件自己处理,不经过底座。
9
9
  *
10
- * Placeholder implementation of the file preview.
11
- *
12
- * The shell — tab row, content header row, tab switching and the ref handle — is
13
- * implemented as it will ship and is fully interactive. The file body is not
14
- * wired to FileViewer yet: a file tab falls back to plain text, while a content
15
- * tab renders the node the host supplies.
10
+ * File preview: a shell of tab row, content header and body, where the body is
11
+ * rendered by the base component according to the format. A file tab hands its
12
+ * body to `FileViewerCore`; a content tab renders the host node as-is. Empty
13
+ * files, truncation and editing are handled by this component, not the base.
16
14
  */
17
15
  export declare const FilePreview: FilePreviewComponent;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * 目录页签的初始层级:受控值优先,其次是非受控时记下的选择,然后是
3
+ * `defaultLevelKey`,最后回落到第一级。
4
+ *
5
+ * 单列成纯函数是因为它有一条容易漏掉的规则:外壳算出的 `activeLevelKey` 是受控
6
+ * 值,正文组件因此没有机会用上自己的初值,`defaultLevelKey` 必须在这里就被尊重,
7
+ * 否则宿主声明的默认层级会被静默改成第一级。
8
+ *
9
+ * The initial level of a directory tab: the controlled value first, then the choice
10
+ * recorded while uncontrolled, then `defaultLevelKey`, and the first level as the last
11
+ * resort.
12
+ *
13
+ * It is a standalone pure function because of one easily missed rule: the
14
+ * `activeLevelKey` the shell computes is a controlled value, so the body component never
15
+ * applies its own initial one — `defaultLevelKey` has to be honoured here, or the
16
+ * host's declared default is silently replaced by the first level.
17
+ */
18
+ export interface LevelChoiceTab {
19
+ levels: readonly {
20
+ key: string;
21
+ }[];
22
+ activeLevelKey?: string;
23
+ defaultLevelKey?: string;
24
+ }
25
+ export declare function initialLevelKey(tab: LevelChoiceTab, remembered: Readonly<Record<string, string>>, tabKey: string): string;