@skopon-cool/form-sdk 0.1.1 → 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/README.md +49 -11
- package/dist/adapter/a2uiAdapter.d.ts +0 -1
- package/dist/adapter/a2uiAdapter.d.ts.map +1 -1
- package/dist/adapter/formFileAccept.d.ts.map +1 -1
- package/dist/adapter/formSchema.d.ts +1 -0
- package/dist/adapter/formSchema.d.ts.map +1 -1
- package/dist/blocks/case_singleselect/adapter.d.ts +10 -0
- package/dist/blocks/case_singleselect/adapter.d.ts.map +1 -0
- package/dist/blocks/case_singleselect/catalog.d.ts +2 -0
- package/dist/blocks/case_singleselect/catalog.d.ts.map +1 -0
- package/dist/blocks/case_singleselect/index.d.ts +3 -0
- package/dist/blocks/case_singleselect/index.d.ts.map +1 -0
- package/dist/blocks/registry.d.ts +8 -0
- package/dist/blocks/registry.d.ts.map +1 -0
- package/dist/blocks/resume_multiselect/adapter.d.ts +10 -0
- package/dist/blocks/resume_multiselect/adapter.d.ts.map +1 -0
- package/dist/blocks/resume_multiselect/catalog.d.ts +2 -0
- package/dist/blocks/resume_multiselect/catalog.d.ts.map +1 -0
- package/dist/blocks/resume_multiselect/index.d.ts +3 -0
- package/dist/blocks/resume_multiselect/index.d.ts.map +1 -0
- package/dist/blocks/types.d.ts +27 -0
- package/dist/blocks/types.d.ts.map +1 -0
- package/dist/catalog/a2uiCustomCatalog.d.ts.map +1 -1
- package/dist/catalog/caseSearchContext.d.ts +28 -0
- package/dist/catalog/caseSearchContext.d.ts.map +1 -0
- package/dist/catalog/resumeSearchContext.d.ts +30 -0
- package/dist/catalog/resumeSearchContext.d.ts.map +1 -0
- package/dist/catalog/skoponCaseSelect.d.ts +2 -0
- package/dist/catalog/skoponCaseSelect.d.ts.map +1 -0
- package/dist/catalog/skoponResumeSelect.d.ts +2 -0
- package/dist/catalog/skoponResumeSelect.d.ts.map +1 -0
- package/dist/catalog/useSkoponBoundField.d.ts +2 -0
- package/dist/catalog/useSkoponBoundField.d.ts.map +1 -1
- package/dist/client/formClient.d.ts.map +1 -1
- package/dist/components/AskUserFormCard.d.ts +10 -2
- package/dist/components/AskUserFormCard.d.ts.map +1 -1
- package/dist/components/SkoponA2uiStreamRenderer.d.ts +7 -1
- package/dist/components/SkoponA2uiStreamRenderer.d.ts.map +1 -1
- package/dist/components/SkoponA2uiStreamRenderer.test.d.ts +2 -0
- package/dist/components/SkoponA2uiStreamRenderer.test.d.ts.map +1 -0
- package/dist/components/SkoponFormRenderer.d.ts +6 -0
- package/dist/components/SkoponFormRenderer.d.ts.map +1 -1
- package/dist/form-sdk.css +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1390 -710
- package/dist/submit/buildCurlStatement.d.ts +8 -0
- package/dist/submit/buildCurlStatement.d.ts.map +1 -1
- package/dist/submit/intersectPayloadBlocksWithForm.d.ts +26 -0
- package/dist/submit/intersectPayloadBlocksWithForm.d.ts.map +1 -0
- package/dist/submit/submitFormJson.d.ts.map +1 -1
- package/dist/types/index.d.ts +26 -2
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +11 -6
- package/src/adapter/a2uiAdapter.test.ts +116 -0
- package/src/adapter/a2uiAdapter.ts +48 -4
- package/src/adapter/formFileAccept.test.ts +53 -0
- package/src/adapter/formFileAccept.ts +11 -2
- package/src/adapter/formSchema.test.ts +35 -0
- package/src/adapter/formSchema.ts +70 -3
- package/src/blocks/case_singleselect/adapter.ts +74 -0
- package/src/blocks/case_singleselect/catalog.ts +1 -0
- package/src/blocks/case_singleselect/index.ts +14 -0
- package/src/blocks/registry.ts +34 -0
- package/src/blocks/resume_multiselect/adapter.ts +57 -0
- package/src/blocks/resume_multiselect/catalog.ts +1 -0
- package/src/blocks/resume_multiselect/index.ts +14 -0
- package/src/blocks/types.ts +34 -0
- package/src/catalog/a2uiCustomCatalog.tsx +34 -5
- package/src/catalog/caseSearchContext.tsx +46 -0
- package/src/catalog/resumeSearchContext.tsx +48 -0
- package/src/catalog/skoponCaseSelect.tsx +215 -0
- package/src/catalog/skoponResumeSelect.tsx +227 -0
- package/src/catalog/textFieldPreview.test.tsx +1 -1
- package/src/catalog/useSkoponBoundField.test.ts +62 -0
- package/src/catalog/useSkoponBoundField.ts +10 -1
- package/src/client/formClient.test.ts +83 -0
- package/src/client/formClient.ts +10 -2
- package/src/components/AskUserFormCard.tsx +146 -58
- package/src/components/SkoponA2uiStreamRenderer.test.ts +78 -0
- package/src/components/SkoponA2uiStreamRenderer.test.tsx +103 -0
- package/src/components/SkoponA2uiStreamRenderer.tsx +141 -23
- package/src/components/SkoponFormRenderer.tsx +42 -17
- package/src/index.ts +34 -2
- package/src/styles/index.css +65 -0
- package/src/submit/buildCurlStatement.ts +49 -0
- package/src/submit/intersectPayloadBlocksWithForm.ts +175 -0
- package/src/submit/submit.test.ts +170 -10
- package/src/submit/submitFormJson.ts +20 -1
- package/src/types/index.ts +30 -0
- package/dist/submit/intersectPayloadWithForm.d.ts +0 -17
- package/dist/submit/intersectPayloadWithForm.d.ts.map +0 -1
- package/src/submit/intersectPayloadWithForm.ts +0 -54
package/README.md
CHANGED
|
@@ -1,14 +1,41 @@
|
|
|
1
|
-
# @skopon/form-sdk
|
|
1
|
+
# @skopon-cool/form-sdk
|
|
2
2
|
|
|
3
3
|
Skopon 表单渲染 SDK:基于 A2UI v0.9 + skopon 自定义 catalog,统一渲染 `form_definition`、A2UI surface 与增量 message 流,并提供 Ask User 提交能力(默认复制 curl,可选 POST JSON)。
|
|
4
4
|
|
|
5
5
|
## 安装
|
|
6
6
|
|
|
7
|
+
### 方式一:一键安装(推荐 Agent 客户端)
|
|
8
|
+
|
|
9
|
+
安装 meta 包,自动带上 SDK 及全部 peer 依赖(`react`、`antd`、`@a2ui/*` 等):
|
|
10
|
+
|
|
7
11
|
```bash
|
|
8
|
-
npm install @skopon/form-sdk
|
|
12
|
+
npm install @skopon-cool/form-sdk-bundle
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
使用方式与主包相同,可从 bundle 直接 import:
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
import '@skopon-cool/form-sdk-bundle/styles.css'
|
|
19
|
+
import { AskUserFormCard, createFormClient } from '@skopon-cool/form-sdk-bundle'
|
|
9
20
|
```
|
|
10
21
|
|
|
11
|
-
|
|
22
|
+
### 方式二:手动安装主包 + peer
|
|
23
|
+
|
|
24
|
+
若宿主项目已有 React / Ant Design,只需补装 SDK 与 A2UI peer:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm install @skopon-cool/form-sdk react react-dom antd @a2ui/react @a2ui/web_core @ant-design/icons
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
`dayjs`、`zod` 已作为 SDK 普通依赖随包安装,**无需单独安装**。
|
|
31
|
+
|
|
32
|
+
### Peer dependencies 说明
|
|
33
|
+
|
|
34
|
+
| 包 | 说明 |
|
|
35
|
+
|----|------|
|
|
36
|
+
| `react` / `react-dom` | 须与宿主共用同一实例,不可由 SDK 内嵌 |
|
|
37
|
+
| `antd` / `@ant-design/icons` | 表单控件与图标,须与宿主主题一致 |
|
|
38
|
+
| `@a2ui/react` / `@a2ui/web_core` | A2UI 渲染栈(SDK 内部使用,宿主无需写 A2UI 代码) |
|
|
12
39
|
|
|
13
40
|
## 样式
|
|
14
41
|
|
|
@@ -18,13 +45,15 @@ Peer dependencies:`react`、`react-dom`、`antd`、`@a2ui/react`、`@a2ui/web_
|
|
|
18
45
|
|
|
19
46
|
```ts
|
|
20
47
|
import '@skopon-cool/form-sdk/styles.css'
|
|
21
|
-
//
|
|
48
|
+
// bundle 用户:import '@skopon-cool/form-sdk-bundle/styles.css'
|
|
22
49
|
```
|
|
23
50
|
|
|
24
51
|
## 渲染 form_definition
|
|
25
52
|
|
|
53
|
+
`SkoponFormRenderer` 按 **doc 内容**(非引用)决定是否重建内部 processor;相同内容的 `doc` 即使用新对象引用传入也不会清空用户已填写的值。若需强制刷新表单,请变更 `doc` 的实际内容或 `surfaceId`。
|
|
54
|
+
|
|
26
55
|
```tsx
|
|
27
|
-
import { SkoponFormRenderer, blocksToA2ui, resolveSurfaceFromFormDefinition } from '@skopon/form-sdk'
|
|
56
|
+
import { SkoponFormRenderer, blocksToA2ui, resolveSurfaceFromFormDefinition } from '@skopon-cool/form-sdk'
|
|
28
57
|
|
|
29
58
|
const surface = resolveSurfaceFromFormDefinition(formDefinition)
|
|
30
59
|
// 或
|
|
@@ -36,15 +65,17 @@ const surface = blocksToA2ui(formDefinition)
|
|
|
36
65
|
## A2UI 增量流
|
|
37
66
|
|
|
38
67
|
```tsx
|
|
39
|
-
import { SkoponA2uiStreamRenderer } from '@skopon/form-sdk'
|
|
68
|
+
import { SkoponA2uiStreamRenderer } from '@skopon-cool/form-sdk'
|
|
40
69
|
|
|
41
70
|
<SkoponA2uiStreamRenderer messages={incomingMessages} interactive />
|
|
42
71
|
```
|
|
43
72
|
|
|
44
73
|
## Ask User(QA / 流程 AI 聊天)
|
|
45
74
|
|
|
75
|
+
`payload` 须为 **blocksJson**(`{ title?, description?, blocks[] }`),与表单编辑器 Blocks Json 同形。前端按 `form_unique_id` 拉取表单后与 `payload.blocks` **按 name 交集**渲染卡片;payload 中表单外的块不在卡片展示,但提交 curl 时会合并进 body 并以注释标注为额外字段。
|
|
76
|
+
|
|
46
77
|
```tsx
|
|
47
|
-
import { AskUserFormCard, createFormClient } from '@skopon/form-sdk'
|
|
78
|
+
import { AskUserFormCard, createFormClient } from '@skopon-cool/form-sdk'
|
|
48
79
|
|
|
49
80
|
const client = createFormClient({
|
|
50
81
|
baseUrl: '/api/v1',
|
|
@@ -62,19 +93,19 @@ const client = createFormClient({
|
|
|
62
93
|
|
|
63
94
|
## 提交
|
|
64
95
|
|
|
65
|
-
- `submitMode: 'curl'`(默认):复制 curl
|
|
66
|
-
- `submitMode: 'post'`:`submitFormJson(callbackUrl,
|
|
96
|
+
- `submitMode: 'curl'`(默认):复制 curl 到剪贴板(卡片填值 + 额外字段,extra 段含 `// 额外字段(未在卡片展示)` 注释)
|
|
97
|
+
- `submitMode: 'post'`:`submitFormJson(callbackUrl, { ...cardValues, ...extraValues })` POST 合法 JSON
|
|
67
98
|
|
|
68
99
|
独立工具:
|
|
69
100
|
|
|
70
101
|
```ts
|
|
71
|
-
import { buildCurlStatement, submitFormJson } from '@skopon/form-sdk'
|
|
102
|
+
import { buildAskUserCurlStatement, buildCurlStatement, submitFormJson } from '@skopon-cool/form-sdk'
|
|
72
103
|
```
|
|
73
104
|
|
|
74
105
|
## 从 form_bp 拉取详情
|
|
75
106
|
|
|
76
107
|
```ts
|
|
77
|
-
import { createFormClient } from '@skopon/form-sdk'
|
|
108
|
+
import { createFormClient } from '@skopon-cool/form-sdk'
|
|
78
109
|
|
|
79
110
|
const client = createFormClient({
|
|
80
111
|
baseUrl: '/api/v1',
|
|
@@ -84,3 +115,10 @@ const client = createFormClient({
|
|
|
84
115
|
|
|
85
116
|
const detail = await client.fetchDetail({ formUniqueId: 'formuid-xxx' })
|
|
86
117
|
```
|
|
118
|
+
|
|
119
|
+
## 发布
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
cd sdk/front/form && npm publish --access public
|
|
123
|
+
cd sdk/front/form-bundle && npm publish --access public
|
|
124
|
+
```
|
|
@@ -8,7 +8,6 @@ export interface BlocksToA2uiOptions {
|
|
|
8
8
|
export declare function isA2uiSurfaceEmpty(doc: A2uiSurfaceDoc | null | undefined): boolean;
|
|
9
9
|
/** FormBlock[] -> A2UI surface 文档 */
|
|
10
10
|
export declare function blocksToA2ui(definition: Pick<FormSchema, 'title' | 'description' | 'blocks'>, options?: BlocksToA2uiOptions): A2uiSurfaceDoc;
|
|
11
|
-
/** A2UI surface 文档 -> FormSchema(已 sync 出 jsonSchema) */
|
|
12
11
|
export declare function a2uiToBlocks(doc: A2uiSurfaceDoc | null | undefined): FormSchema;
|
|
13
12
|
/**
|
|
14
13
|
* 便携 surface 文档 -> A2UI v0.9 消息列表(供 MessageProcessor 消费)。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a2uiAdapter.d.ts","sourceRoot":"","sources":["../../src/adapter/a2uiAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,cAAc,EAKd,UAAU,EACX,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"a2uiAdapter.d.ts","sourceRoot":"","sources":["../../src/adapter/a2uiAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,cAAc,EAKd,UAAU,EACX,MAAM,gBAAgB,CAAA;AA+QvB,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,wEAAwE;IACxE,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,uCAAuC;AACvC,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAOlF;AAED,qCAAqC;AACrC,wBAAgB,YAAY,CAC1B,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,aAAa,GAAG,QAAQ,CAAC,EAChE,OAAO,CAAC,EAAE,mBAAmB,GAC5B,cAAc,CAiChB;AA0KD,wBAAgB,YAAY,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,CA+B/E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAChD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAgB3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formFileAccept.d.ts","sourceRoot":"","sources":["../../src/adapter/formFileAccept.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,wDAAwD;AACxD,eAAO,MAAM,sBAAsB,EAAE,oBAAoB,EAWxD,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAoB5D,CAAA;AAED,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAWjE,CAAA;AAeD,eAAO,MAAM,2BAA2B,EAAE,oBAAoB,EA0B7D,CAAA;
|
|
1
|
+
{"version":3,"file":"formFileAccept.d.ts","sourceRoot":"","sources":["../../src/adapter/formFileAccept.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,wDAAwD;AACxD,eAAO,MAAM,sBAAsB,EAAE,oBAAoB,EAWxD,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAoB5D,CAAA;AAED,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAWjE,CAAA;AAeD,eAAO,MAAM,2BAA2B,EAAE,oBAAoB,EA0B7D,CAAA;AAuBD,wBAAgB,6BAA6B,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAS7E;AAED,wBAAgB,wBAAwB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAYnE;AAED,wBAAgB,2BAA2B,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAOtE;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,CAAC,EAAE,MAAM,EAAE,GACf,oBAAoB,EAAE,CAYxB;AAED,wBAAgB,kCAAkC,CAChD,KAAK,CAAC,EAAE,MAAM,EAAE,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,MAAM,EAAE,CAUV;AAED,wBAAgB,wBAAwB,CACtC,KAAK,CAAC,EAAE,MAAM,EAAE,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,MAAM,GAAG,SAAS,CAKpB;AAED,wBAAgB,uBAAuB,CACrC,KAAK,CAAC,EAAE,MAAM,EAAE,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,MAAM,GAAG,IAAI,CAYf"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { FormBlock, FormBlockType, FormSchema } from '../types/index';
|
|
2
|
+
export declare function coerceToggleValue(raw: unknown): boolean;
|
|
2
3
|
export declare function syncFormDefinition(definition: FormSchema): FormSchema;
|
|
3
4
|
export declare function normalizeFormDefinition(raw: FormSchema | undefined): FormSchema;
|
|
4
5
|
export declare function createEmptyFormDefinition(): FormSchema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formSchema.d.ts","sourceRoot":"","sources":["../../src/adapter/formSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"formSchema.d.ts","sourceRoot":"","sources":["../../src/adapter/formSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAoC,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAe5G,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEvD;AAuGD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAOrE;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,CAW/E;AAED,wBAAgB,yBAAyB,IAAI,UAAU,CAEtD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,CAuD/D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { A2uiComponentNode, FormBlock } from '../../types/index';
|
|
2
|
+
import type { BlockAdapterContext, BlockToComponentResult } from '../types';
|
|
3
|
+
declare function asLiteral(value: unknown): string | undefined;
|
|
4
|
+
export declare function caseSingleselectToComponent(block: FormBlock, ctx: BlockAdapterContext): BlockToComponentResult;
|
|
5
|
+
export declare function caseSingleselectFromComponent(node: A2uiComponentNode, base: (type: 'case_singleselect') => FormBlock, helpers: {
|
|
6
|
+
asLiteral: (value: unknown) => string | undefined;
|
|
7
|
+
nameFromValue: (value: unknown) => string;
|
|
8
|
+
}): FormBlock;
|
|
9
|
+
export { asLiteral };
|
|
10
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/blocks/case_singleselect/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAE3E,iBAAS,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAErD;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,mBAAmB,GACvB,sBAAsB,CAiBxB;AAED,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,SAAS,EAC9C,OAAO,EAAE;IACP,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,CAAA;IACjD,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAA;CAC1C,GACA,SAAS,CAmCX;AAED,OAAO,EAAE,SAAS,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/blocks/case_singleselect/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/case_singleselect/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAOlD,eAAO,MAAM,uBAAuB,EAAE,kBAMrC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { FormBlockType } from '../types/index';
|
|
2
|
+
import type { BlockAdapterPlugin } from './types';
|
|
3
|
+
export declare function getBlockTypeAdapter(type: FormBlockType): BlockAdapterPlugin | undefined;
|
|
4
|
+
export declare function getComponentAdapter(componentName: string): BlockAdapterPlugin | undefined;
|
|
5
|
+
export declare function getAllBlockAdapters(): BlockAdapterPlugin[];
|
|
6
|
+
export declare function getRegisteredCatalogComponents(): import("@a2ui/react/v0_9").ReactComponentImplementation[];
|
|
7
|
+
export declare function getRegisteredCatalogComponentNames(): string[];
|
|
8
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/blocks/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAcjD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG,kBAAkB,GAAG,SAAS,CAEvF;AAED,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAEzF;AAED,wBAAgB,mBAAmB,IAAI,kBAAkB,EAAE,CAE1D;AAED,wBAAgB,8BAA8B,8DAE7C;AAED,wBAAgB,kCAAkC,IAAI,MAAM,EAAE,CAE7D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { A2uiComponentNode, FormBlock } from '../../types/index';
|
|
2
|
+
import type { BlockAdapterContext, BlockToComponentResult } from '../types';
|
|
3
|
+
declare function asLiteral(value: unknown): string | undefined;
|
|
4
|
+
export declare function resumeMultiselectToComponent(block: FormBlock, ctx: BlockAdapterContext): BlockToComponentResult;
|
|
5
|
+
export declare function resumeMultiselectFromComponent(node: A2uiComponentNode, base: (type: 'resume_multiselect') => FormBlock, helpers: {
|
|
6
|
+
asLiteral: (value: unknown) => string | undefined;
|
|
7
|
+
nameFromValue: (value: unknown) => string;
|
|
8
|
+
}): FormBlock;
|
|
9
|
+
export { asLiteral };
|
|
10
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/blocks/resume_multiselect/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAE3E,iBAAS,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAErD;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,mBAAmB,GACvB,sBAAsB,CAiBxB;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,CAAC,IAAI,EAAE,oBAAoB,KAAK,SAAS,EAC/C,OAAO,EAAE;IAAE,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,CAAC;IAAC,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAA;CAAE,GACxG,SAAS,CAqBX;AAED,OAAO,EAAE,SAAS,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/blocks/resume_multiselect/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/resume_multiselect/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAOlD,eAAO,MAAM,wBAAwB,EAAE,kBAMtC,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { A2uiComponentNode, FormBlock, FormBlockType } from '../types/index';
|
|
2
|
+
import type { ReactComponentImplementation } from '@a2ui/react/v0_9';
|
|
3
|
+
export interface BlockAdapterContext {
|
|
4
|
+
id: string;
|
|
5
|
+
label: string;
|
|
6
|
+
name: string;
|
|
7
|
+
path: string | undefined;
|
|
8
|
+
withData: (node: A2uiComponentNode) => {
|
|
9
|
+
node: A2uiComponentNode;
|
|
10
|
+
dataKey?: string;
|
|
11
|
+
dataValue?: unknown;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export type BlockToComponentResult = {
|
|
15
|
+
node: A2uiComponentNode | null;
|
|
16
|
+
} | ReturnType<BlockAdapterContext['withData']>;
|
|
17
|
+
export interface BlockAdapterPlugin {
|
|
18
|
+
type: FormBlockType;
|
|
19
|
+
componentName: string;
|
|
20
|
+
toComponent: (block: FormBlock, ctx: BlockAdapterContext) => BlockToComponentResult;
|
|
21
|
+
fromComponent: (node: A2uiComponentNode, base: (type: FormBlockType) => FormBlock, helpers: {
|
|
22
|
+
asLiteral: (value: unknown) => string | undefined;
|
|
23
|
+
nameFromValue: (value: unknown) => string;
|
|
24
|
+
}) => FormBlock | null;
|
|
25
|
+
catalogComponents: ReactComponentImplementation[];
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/blocks/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,SAAS,EACT,aAAa,EACd,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAA;AAEpE,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK;QACrC,IAAI,EAAE,iBAAiB,CAAA;QACvB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,SAAS,CAAC,EAAE,OAAO,CAAA;KACpB,CAAA;CACF;AAED,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAAA;CAAE,GAClC,UAAU,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAA;AAE/C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,aAAa,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,mBAAmB,KAAK,sBAAsB,CAAA;IACnF,aAAa,EAAE,CACb,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,SAAS,EACxC,OAAO,EAAE;QAAE,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,CAAC;QAAC,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAA;KAAE,KACtG,SAAS,GAAG,IAAI,CAAA;IACrB,iBAAiB,EAAE,4BAA4B,EAAE,CAAA;CAClD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"a2uiCustomCatalog.d.ts","sourceRoot":"","sources":["../../src/catalog/a2uiCustomCatalog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAyB,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAGL,KAAK,4BAA4B,EAClC,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"a2uiCustomCatalog.d.ts","sourceRoot":"","sources":["../../src/catalog/a2uiCustomCatalog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAyB,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAGL,KAAK,4BAA4B,EAClC,MAAM,kBAAkB,CAAA;AAkCzB;;;GAGG;AACH,eAAO,MAAM,iBAAiB,qBAAqB,CAAA;AA2nBnD,kDAAkD;AAClD,wBAAgB,kBAAkB,IAAI,OAAO,CAAC,4BAA4B,CAAC,CAqB1E"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { FormCaseFilter } from '../types/index';
|
|
3
|
+
export interface CaseSearchItem {
|
|
4
|
+
caseUniqueId: string;
|
|
5
|
+
caseId?: number;
|
|
6
|
+
flowId?: number;
|
|
7
|
+
name: string;
|
|
8
|
+
link?: string;
|
|
9
|
+
platform?: string | null;
|
|
10
|
+
description?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface CaseSearchParams {
|
|
13
|
+
filter: FormCaseFilter;
|
|
14
|
+
page: number;
|
|
15
|
+
}
|
|
16
|
+
export interface CaseSearchResult {
|
|
17
|
+
list: CaseSearchItem[];
|
|
18
|
+
total: number;
|
|
19
|
+
page: number;
|
|
20
|
+
pageSize: number;
|
|
21
|
+
}
|
|
22
|
+
export type CaseSearchFn = (params: CaseSearchParams) => Promise<CaseSearchResult>;
|
|
23
|
+
export declare function CaseSearchProvider({ caseSearch, children, }: {
|
|
24
|
+
caseSearch: CaseSearchFn | null | undefined;
|
|
25
|
+
children: ReactNode;
|
|
26
|
+
}): import("react").JSX.Element;
|
|
27
|
+
export declare function useCaseSearch(): CaseSearchFn | null;
|
|
28
|
+
//# sourceMappingURL=caseSearchContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"caseSearchContext.d.ts","sourceRoot":"","sources":["../../src/catalog/caseSearchContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,cAAc,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,EAAE,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;AAIlF,wBAAgB,kBAAkB,CAAC,EACjC,UAAU,EACV,QAAQ,GACT,EAAE;IACD,UAAU,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,CAAA;IAC3C,QAAQ,EAAE,SAAS,CAAA;CACpB,+BAMA;AAED,wBAAgB,aAAa,IAAI,YAAY,GAAG,IAAI,CAEnD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { FormResumeFilter } from '../types/index';
|
|
3
|
+
export interface ResumeSearchItem {
|
|
4
|
+
resumeUniqueId: string;
|
|
5
|
+
resumeId?: number;
|
|
6
|
+
agentId?: number;
|
|
7
|
+
name: string;
|
|
8
|
+
avatarUrl?: string | null;
|
|
9
|
+
description?: string;
|
|
10
|
+
satisfaction?: number;
|
|
11
|
+
published?: number;
|
|
12
|
+
worksCount?: number;
|
|
13
|
+
}
|
|
14
|
+
export interface ResumeSearchParams {
|
|
15
|
+
filter: FormResumeFilter;
|
|
16
|
+
page: number;
|
|
17
|
+
}
|
|
18
|
+
export interface ResumeSearchResult {
|
|
19
|
+
list: ResumeSearchItem[];
|
|
20
|
+
total: number;
|
|
21
|
+
page: number;
|
|
22
|
+
pageSize: number;
|
|
23
|
+
}
|
|
24
|
+
export type ResumeSearchFn = (params: ResumeSearchParams) => Promise<ResumeSearchResult>;
|
|
25
|
+
export declare function ResumeSearchProvider({ resumeSearch, children, }: {
|
|
26
|
+
resumeSearch: ResumeSearchFn | null | undefined;
|
|
27
|
+
children: ReactNode;
|
|
28
|
+
}): import("react").JSX.Element;
|
|
29
|
+
export declare function useResumeSearch(): ResumeSearchFn | null;
|
|
30
|
+
//# sourceMappingURL=resumeSearchContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resumeSearchContext.d.ts","sourceRoot":"","sources":["../../src/catalog/resumeSearchContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,gBAAgB,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,EAAE,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAA;AAIxF,wBAAgB,oBAAoB,CAAC,EACnC,YAAY,EACZ,QAAQ,GACT,EAAE;IACD,YAAY,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,CAAA;IAC/C,QAAQ,EAAE,SAAS,CAAA;CACpB,+BAMA;AAED,wBAAgB,eAAe,IAAI,cAAc,GAAG,IAAI,CAEvD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skoponCaseSelect.d.ts","sourceRoot":"","sources":["../../src/catalog/skoponCaseSelect.tsx"],"names":[],"mappings":"AAmNA,eAAO,MAAM,oBAAoB,yDAGhC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skoponResumeSelect.d.ts","sourceRoot":"","sources":["../../src/catalog/skoponResumeSelect.tsx"],"names":[],"mappings":"AA+NA,eAAO,MAAM,sBAAsB,yDAGlC,CAAA"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { ComponentContext } from '@a2ui/web_core/v0_9';
|
|
2
|
+
/** 从 A2UI 组件 context 读取当前绑定字段值(不订阅更新,适合事件回调内读最新值)。 */
|
|
3
|
+
export declare function readBoundFieldValue(context: ComponentContext, field?: string): unknown;
|
|
2
4
|
/** 将 skopon 预览控件绑定到 A2UI surface dataModel(与 basicCatalog binder 行为一致)。 */
|
|
3
5
|
export declare function useSkoponBoundField(context: ComponentContext, field?: string): {
|
|
4
6
|
value: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSkoponBoundField.d.ts","sourceRoot":"","sources":["../../src/catalog/useSkoponBoundField.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAY3D,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,SAAU;;qBAsBnE,OAAO;;EAQjB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAInE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAItD"}
|
|
1
|
+
{"version":3,"file":"useSkoponBoundField.d.ts","sourceRoot":"","sources":["../../src/catalog/useSkoponBoundField.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAY3D,sDAAsD;AACtD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,SAAU,GAAG,OAAO,CAMvF;AAED,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,SAAU;;qBAsBnE,OAAO;;EAQjB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAInE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAItD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formClient.d.ts","sourceRoot":"","sources":["../../src/client/formClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,gBAAgB,CAAA;AAGlE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAC5E;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,CAAC,GAAG,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAC5F;
|
|
1
|
+
{"version":3,"file":"formClient.d.ts","sourceRoot":"","sources":["../../src/client/formClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,gBAAgB,CAAA;AAGlE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAC5E;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,CAAC,GAAG,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAC5F;AAwBD,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,UAAU,CAmC5E"}
|
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
import type { FormDetailResult, SubmitMode } from '../types/index';
|
|
2
|
+
import type { CaseSearchFn } from '../catalog/caseSearchContext';
|
|
3
|
+
import type { ResumeSearchFn } from '../catalog/resumeSearchContext';
|
|
2
4
|
export interface AskUserFormCardProps {
|
|
3
5
|
payload: unknown;
|
|
4
|
-
|
|
6
|
+
/** 可选;无则跳过拉取 vt_forms,仅用 payload blocks fallback */
|
|
7
|
+
formUniqueId?: string | null;
|
|
5
8
|
callbackUrl?: string | null;
|
|
6
9
|
submitMode?: SubmitMode;
|
|
10
|
+
/** 需 useCallback 稳定引用,避免重复拉取 */
|
|
7
11
|
fetchFormDetail: (ref: {
|
|
8
12
|
formUniqueId: string;
|
|
9
13
|
}) => Promise<FormDetailResult>;
|
|
10
14
|
onNotify?: (type: 'success' | 'error', message: string) => void;
|
|
15
|
+
/** 简历多选组件:注入搜索函数 */
|
|
16
|
+
resumeSearch?: ResumeSearchFn | null;
|
|
17
|
+
/** 案例单选组件:注入搜索函数 */
|
|
18
|
+
caseSearch?: CaseSearchFn | null;
|
|
11
19
|
}
|
|
12
|
-
export default function AskUserFormCard({ payload, formUniqueId, callbackUrl, submitMode, fetchFormDetail, onNotify, }: AskUserFormCardProps): import("react").JSX.Element;
|
|
20
|
+
export default function AskUserFormCard({ payload, formUniqueId, callbackUrl, submitMode, fetchFormDetail, onNotify, resumeSearch, caseSearch, }: AskUserFormCardProps): import("react").JSX.Element;
|
|
13
21
|
//# sourceMappingURL=AskUserFormCard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AskUserFormCard.d.ts","sourceRoot":"","sources":["../../src/components/AskUserFormCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAc,UAAU,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"AskUserFormCard.d.ts","sourceRoot":"","sources":["../../src/components/AskUserFormCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAc,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAY9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAiBpE,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,gCAAgC;IAChC,eAAe,EAAE,CAAC,GAAG,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC7E,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/D,oBAAoB;IACpB,YAAY,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IACpC,oBAAoB;IACpB,UAAU,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;CACjC;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,OAAO,EACP,YAAY,EACZ,WAAW,EACX,UAAmB,EACnB,eAAe,EACf,QAAQ,EACR,YAAmB,EACnB,UAAiB,GAClB,EAAE,oBAAoB,+BA0LtB"}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
2
|
import { type A2uiMessage } from '@a2ui/web_core/v0_9';
|
|
3
|
+
import { type CaseSearchFn } from '../catalog/caseSearchContext';
|
|
4
|
+
import { type ResumeSearchFn } from '../catalog/resumeSearchContext';
|
|
3
5
|
export interface SkoponA2uiStreamRendererProps {
|
|
4
6
|
/** 增量追加的 A2UI v0.9 消息 */
|
|
5
7
|
messages: A2uiMessage[];
|
|
6
8
|
surfaceId?: string;
|
|
7
9
|
emptyHint?: ReactNode;
|
|
8
10
|
interactive?: boolean;
|
|
11
|
+
/** 简历多选组件:注入搜索函数 */
|
|
12
|
+
resumeSearch?: ResumeSearchFn | null;
|
|
13
|
+
/** 案例单选组件:注入搜索函数 */
|
|
14
|
+
caseSearch?: CaseSearchFn | null;
|
|
9
15
|
}
|
|
10
|
-
export default function SkoponA2uiStreamRenderer({ messages, surfaceId, emptyHint, interactive, }: SkoponA2uiStreamRendererProps): import("react").JSX.Element;
|
|
16
|
+
export default function SkoponA2uiStreamRenderer({ messages, surfaceId, emptyHint, interactive, resumeSearch, caseSearch, }: SkoponA2uiStreamRendererProps): import("react").JSX.Element;
|
|
11
17
|
//# sourceMappingURL=SkoponA2uiStreamRenderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkoponA2uiStreamRenderer.d.ts","sourceRoot":"","sources":["../../src/components/SkoponA2uiStreamRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"SkoponA2uiStreamRenderer.d.ts","sourceRoot":"","sources":["../../src/components/SkoponA2uiStreamRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACnE,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAMxE,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,8BAA8B,CAAA;AACpF,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAE1F,MAAM,WAAW,6BAA6B;IAC5C,yBAAyB;IACzB,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,oBAAoB;IACpB,YAAY,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IACpC,oBAAoB;IACpB,UAAU,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;CACjC;AAMD,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAAC,EAC/C,QAAQ,EACR,SAAgC,EAChC,SAAgB,EAChB,WAAkB,EAClB,YAAmB,EACnB,UAAiB,GAClB,EAAE,6BAA6B,+BA0J/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SkoponA2uiStreamRenderer.test.d.ts","sourceRoot":"","sources":["../../src/components/SkoponA2uiStreamRenderer.test.tsx"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
2
|
import type { A2uiSurfaceDoc } from '../types/index';
|
|
3
|
+
import { type CaseSearchFn } from '../catalog/caseSearchContext';
|
|
4
|
+
import { type ResumeSearchFn } from '../catalog/resumeSearchContext';
|
|
3
5
|
export interface SkoponFormRendererRef {
|
|
4
6
|
getValues: (fieldNames?: string[]) => Record<string, unknown>;
|
|
5
7
|
}
|
|
@@ -10,6 +12,10 @@ export interface SkoponFormRendererProps {
|
|
|
10
12
|
interactive?: boolean;
|
|
11
13
|
/** 默认用于 getValues() 的字段名列表 */
|
|
12
14
|
fieldNames?: string[];
|
|
15
|
+
/** 简历多选组件:注入搜索函数 */
|
|
16
|
+
resumeSearch?: ResumeSearchFn | null;
|
|
17
|
+
/** 案例单选组件:注入搜索函数 */
|
|
18
|
+
caseSearch?: CaseSearchFn | null;
|
|
13
19
|
}
|
|
14
20
|
declare const SkoponFormRenderer: import("react").ForwardRefExoticComponent<SkoponFormRendererProps & import("react").RefAttributes<SkoponFormRendererRef>>;
|
|
15
21
|
export default SkoponFormRenderer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkoponFormRenderer.d.ts","sourceRoot":"","sources":["../../src/components/SkoponFormRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AAKd,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"SkoponFormRenderer.d.ts","sourceRoot":"","sources":["../../src/components/SkoponFormRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AAKd,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAKpD,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,8BAA8B,CAAA;AACpF,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAE1F,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9D;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,CAAA;IACtC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,oBAAoB;IACpB,YAAY,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IACpC,oBAAoB;IACpB,UAAU,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;CACjC;AAED,QAAA,MAAM,kBAAkB,2HAqFvB,CAAA;AAED,eAAe,kBAAkB,CAAA"}
|
package/dist/form-sdk.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.a2ui-surface.a2ui-container{--a2ui-color-border: var(--color-border);--a2ui-color-border-hover: var(--color-border-strong);--a2ui-color-input: var(--color-surface);--a2ui-color-on-input: var(--color-text);--a2ui-color-on-background: var(--color-text);--a2ui-color-on-surface: var(--color-text);--a2ui-color-primary: var(--color-primary);--a2ui-color-primary-hover: var(--color-primary-hover);--a2ui-color-on-primary: var(--color-on-primary);--a2ui-color-surface: var(--color-surface);--a2ui-color-secondary-hover: var(--color-bg-subtle);--a2ui-border-radius: var(--radius-md);--a2ui-border-width: 1px;--a2ui-column-gap: var(--space-form-item);--a2ui-row-gap: var(--space-3);--a2ui-spacing-xs: var(--space-1);--a2ui-spacing-s: var(--space-2);--a2ui-spacing-m: var(--space-3);--a2ui-spacing-l: var(--space-4);--a2ui-font-size-xs: var(--font-size-xs);--a2ui-font-size-s: var(--font-size-sm);--a2ui-font-size-m: var(--font-size-base);--a2ui-font-size-l: var(--font-size-lg);--a2ui-font-size-xl: var(--font-size-xl);--a2ui-font-size-2xl: var(--font-size-2xl);--a2ui-line-height-headings: var(--line-height-tight);--a2ui-line-height-body: var(--line-height-base);width:100%;color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-base)}.a2ui-surface.a2ui-container h1,.a2ui-surface.a2ui-container h2,.a2ui-surface.a2ui-container h3,.a2ui-surface.a2ui-container h4,.a2ui-surface.a2ui-container h5{margin:0 0 var(--space-4);font-family:var(--font-sans);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text)}.a2ui-surface.a2ui-container h1{font-size:var(--font-size-2xl)}.a2ui-surface.a2ui-container h2{font-size:var(--font-size-xl)}.a2ui-surface.a2ui-container h3{font-size:var(--font-size-lg)}.a2ui-surface.a2ui-container h4{font-size:var(--font-size-base)}.a2ui-surface.a2ui-container p{margin:0 0 var(--space-4);font-size:var(--font-size-base);line-height:var(--line-height-relaxed);color:var(--color-text-secondary)}.a2ui-surface.a2ui-container label:not(:has(input)):has(+input:is([type=text],[type=number],[type=email],[type=tel],[type=url],[type=password],[type=date],[type=time],[type=datetime-local])),.a2ui-surface.a2ui-container label:not(:has(input)):has(+textarea){display:block;margin:0 0 var(--space-2);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);line-height:var(--line-height-base);color:var(--color-text)}.a2ui-surface.a2ui-container strong{display:block;margin:0 0 var(--space-2);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);line-height:var(--line-height-base);color:var(--color-text)}.a2ui-surface.a2ui-container div:has(>input[type=checkbox]:first-child+label){display:flex;align-items:center;gap:var(--space-2)}.a2ui-surface.a2ui-container input[type=checkbox]:not(label input)+label,.a2ui-surface.a2ui-container input[type=radio]:not(label input)+label{display:inline;margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-base);color:var(--color-text);cursor:pointer}.a2ui-surface.a2ui-container div:has(>label>input[type=checkbox]),.a2ui-surface.a2ui-container div:has(>label>input[type=radio]){display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);width:100%}.a2ui-surface.a2ui-container label:has(>input[type=checkbox]),.a2ui-surface.a2ui-container label:has(>input[type=radio]){display:inline-flex;align-items:center;gap:var(--space-2);margin:0;width:auto;max-width:100%;font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-base);color:var(--color-text);cursor:pointer}.a2ui-surface.a2ui-container label:has(>input[type=checkbox])>span,.a2ui-surface.a2ui-container label:has(>input[type=radio])>span{font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--color-text)}.a2ui-surface.a2ui-container input[type=text],.a2ui-surface.a2ui-container input[type=number],.a2ui-surface.a2ui-container input[type=email],.a2ui-surface.a2ui-container input[type=tel],.a2ui-surface.a2ui-container input[type=url],.a2ui-surface.a2ui-container input[type=password],.a2ui-surface.a2ui-container input[type=date],.a2ui-surface.a2ui-container input[type=time],.a2ui-surface.a2ui-container input[type=datetime-local],.a2ui-surface.a2ui-container textarea{display:block;width:100%;min-height:var(--button-height-md);box-sizing:border-box;padding:var(--space-2) var(--space-3);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--duration-fast) var(--ease-default),box-shadow var(--duration-fast) var(--ease-default)}.a2ui-surface.a2ui-container textarea{min-height:calc(var(--button-height-md) * 2);padding-top:var(--space-2);padding-bottom:var(--space-2);resize:vertical}.a2ui-surface.a2ui-container input[type=text]:hover,.a2ui-surface.a2ui-container input[type=number]:hover,.a2ui-surface.a2ui-container input[type=email]:hover,.a2ui-surface.a2ui-container input[type=tel]:hover,.a2ui-surface.a2ui-container input[type=url]:hover,.a2ui-surface.a2ui-container input[type=password]:hover,.a2ui-surface.a2ui-container input[type=date]:hover,.a2ui-surface.a2ui-container input[type=time]:hover,.a2ui-surface.a2ui-container input[type=datetime-local]:hover,.a2ui-surface.a2ui-container textarea:hover{border-color:var(--color-border-strong)}.a2ui-surface.a2ui-container input[type=text]:focus,.a2ui-surface.a2ui-container input[type=number]:focus,.a2ui-surface.a2ui-container input[type=email]:focus,.a2ui-surface.a2ui-container input[type=tel]:focus,.a2ui-surface.a2ui-container input[type=url]:focus,.a2ui-surface.a2ui-container input[type=password]:focus,.a2ui-surface.a2ui-container input[type=date]:focus,.a2ui-surface.a2ui-container input[type=time]:focus,.a2ui-surface.a2ui-container input[type=datetime-local]:focus,.a2ui-surface.a2ui-container textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.a2ui-surface.a2ui-container input[type=checkbox]:not(.ant-checkbox-input),.a2ui-surface.a2ui-container input[type=radio]:not(.ant-radio-input){width:16px;height:16px;min-height:0;min-width:16px;margin:0;padding:0;flex-shrink:0;border:none;border-radius:var(--radius-sm);background:transparent;box-shadow:none;accent-color:var(--color-primary);cursor:pointer;vertical-align:middle}.a2ui-surface.a2ui-container input[type=checkbox]:not(.ant-checkbox-input):not(label input),.a2ui-surface.a2ui-container input[type=radio]:not(.ant-radio-input):not(label input){border:1px solid var(--color-border);background:var(--color-surface)}.a2ui-surface.a2ui-container input[type=radio]:not(.ant-radio-input):not(label input){border-radius:50%}.a2ui-surface.a2ui-container input[type=checkbox]:not(.ant-checkbox-input):focus,.a2ui-surface.a2ui-container input[type=radio]:not(.ant-radio-input):focus{outline:none;box-shadow:var(--shadow-focus)}.a2ui-surface.a2ui-container button:not([class*=ant-]){min-height:var(--button-height-md);padding:0 var(--button-padding-x-md);font-family:var(--font-sans);font-size:var(--button-font-size-md);font-weight:var(--button-font-weight);line-height:var(--line-height-base);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-default),border-color var(--duration-fast) var(--ease-default),color var(--duration-fast) var(--ease-default)}.a2ui-surface.a2ui-container button:not([class*=ant-]):hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-bg-subtle)}.a2ui-surface.a2ui-container button:not([class*=ant-]):disabled{cursor:not-allowed;opacity:.45}.a2ui-surface.a2ui-container button.chip,.a2ui-surface.a2ui-container button.chip.selected,.a2ui-surface.a2ui-container button.selected{min-height:var(--button-height-sm);padding:0 var(--button-padding-x-sm);font-size:var(--button-font-size-sm)}.a2ui-surface.a2ui-container button.chip.selected,.a2ui-surface.a2ui-container button.selected{color:var(--color-on-primary);background-color:var(--color-primary-solid);border-color:var(--color-primary-solid)}.a2ui-surface.a2ui-container button.chip.selected:hover,.a2ui-surface.a2ui-container button.selected:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.a2ui-surface.a2ui-container span[style*="color: red"],.a2ui-surface.a2ui-container span[style*="color:red"]{display:block;margin-top:var(--space-1);font-size:var(--font-size-xs);line-height:var(--line-height-relaxed);color:var(--color-danger-text)!important}.a2ui-surface.a2ui-container img:not(.form-media-item){max-width:100%;height:auto;border-radius:var(--radius-md)}.a2ui-surface.a2ui-container .form-block-preview{width:100%}.a2ui-surface.a2ui-container .form-block-preview+.form-block-preview,.a2ui-surface.a2ui-container .form-block-preview-label+.form-block-preview-control,.a2ui-surface.a2ui-container .form-block-preview-label+.form-media-preview,.a2ui-surface.a2ui-container .form-block-preview-label+.form-media-list,.a2ui-surface.a2ui-container .form-block-preview-label+.form-file-upload-preview{margin-top:var(--space-2)}.a2ui-surface.a2ui-container .form-block-preview .ant-upload-drag{border-radius:var(--radius-md)}.a2ui-surface.a2ui-container .form-block-preview-control.ant-picker{width:100%}.a2ui-surface.a2ui-container .form-block-preview-control.ant-switch{margin-top:var(--space-1)}.form-block-preview{padding:var(--space-1) 0 var(--space-2)}.form-block-preview-label{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);margin-bottom:var(--space-2);color:var(--color-text)}.form-block-preview-control{margin-top:var(--space-1)}.form-block-preview-help{display:block;margin-top:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted)}.form-media-preview{max-width:100%;border-radius:var(--radius-md);overflow:hidden}.form-media-list{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--space-2);max-width:100%}.form-media-item{display:block;flex-shrink:0;object-fit:cover;border-radius:var(--radius-md)}.form-media-list.form-media-size-huge .form-media-item{width:480px;height:480px}.form-media-list.form-media-size-huge .form-media-item.form-media-item--audio{width:480px;height:48px}.form-media-list.form-media-size-large .form-media-item{width:320px;height:320px}.form-media-list.form-media-size-large .form-media-item.form-media-item--audio{width:320px;height:48px}.form-media-list.form-media-size-medium .form-media-item{width:160px;height:160px}.form-media-list.form-media-size-medium .form-media-item.form-media-item--audio{width:160px;height:48px}.form-media-list.form-media-size-small .form-media-item{width:80px;height:80px}.form-media-list.form-media-size-small .form-media-item.form-media-item--audio{width:80px;height:48px}.form-media-list.form-media-size-icon .form-media-item{width:48px;height:48px}.form-media-preview--empty{display:flex;align-items:center;justify-content:center;min-height:120px;padding:var(--space-4);border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-subtle);color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center}.form-file-upload-preview{margin-top:var(--space-1)}.form-file-upload-preview .ant-upload-drag{border-color:var(--color-border);background:var(--color-bg-subtle)}.form-file-upload-preview-icon{margin:0 0 var(--space-2);color:var(--color-primary)}.form-file-upload-preview-text{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.ask-user-form-card{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.ask-user-form-actions{display:flex;justify-content:flex-end}.ask-user-curl-card{display:flex;flex-direction:column;gap:var(--space-1);min-width:0;padding:var(--space-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-bg-subtle, rgba(0, 0, 0, .03))}.ask-user-curl-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.ask-user-curl-card-header-title{display:flex;align-items:center;gap:var(--space-2);min-width:0;flex:1 1 auto}.ask-user-curl-unpublished-tag{margin:0;flex-shrink:0;color:var(--color-warning, #d48806);background:#d488061f;border-color:transparent}.ask-user-curl-incomplete-tag{margin:0;flex-shrink:0;color:var(--color-primary);background:var(--color-primary-subtle);border-color:transparent}.skopon-form-curl-json,.flow-artifact-generate-chat-json{margin:0;padding:var(--space-2);font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-all}
|
|
1
|
+
.a2ui-surface.a2ui-container{--a2ui-color-border: var(--color-border);--a2ui-color-border-hover: var(--color-border-strong);--a2ui-color-input: var(--color-surface);--a2ui-color-on-input: var(--color-text);--a2ui-color-on-background: var(--color-text);--a2ui-color-on-surface: var(--color-text);--a2ui-color-primary: var(--color-primary);--a2ui-color-primary-hover: var(--color-primary-hover);--a2ui-color-on-primary: var(--color-on-primary);--a2ui-color-surface: var(--color-surface);--a2ui-color-secondary-hover: var(--color-bg-subtle);--a2ui-border-radius: var(--radius-md);--a2ui-border-width: 1px;--a2ui-column-gap: var(--space-form-item);--a2ui-row-gap: var(--space-3);--a2ui-spacing-xs: var(--space-1);--a2ui-spacing-s: var(--space-2);--a2ui-spacing-m: var(--space-3);--a2ui-spacing-l: var(--space-4);--a2ui-font-size-xs: var(--font-size-xs);--a2ui-font-size-s: var(--font-size-sm);--a2ui-font-size-m: var(--font-size-base);--a2ui-font-size-l: var(--font-size-lg);--a2ui-font-size-xl: var(--font-size-xl);--a2ui-font-size-2xl: var(--font-size-2xl);--a2ui-line-height-headings: var(--line-height-tight);--a2ui-line-height-body: var(--line-height-base);width:100%;color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-base)}.a2ui-surface.a2ui-container h1,.a2ui-surface.a2ui-container h2,.a2ui-surface.a2ui-container h3,.a2ui-surface.a2ui-container h4,.a2ui-surface.a2ui-container h5{margin:0 0 var(--space-4);font-family:var(--font-sans);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text)}.a2ui-surface.a2ui-container h1{font-size:var(--font-size-2xl)}.a2ui-surface.a2ui-container h2{font-size:var(--font-size-xl)}.a2ui-surface.a2ui-container h3{font-size:var(--font-size-lg)}.a2ui-surface.a2ui-container h4{font-size:var(--font-size-base)}.a2ui-surface.a2ui-container p{margin:0 0 var(--space-4);font-size:var(--font-size-base);line-height:var(--line-height-relaxed);color:var(--color-text-secondary)}.a2ui-surface.a2ui-container label:not(:has(input)):has(+input:is([type=text],[type=number],[type=email],[type=tel],[type=url],[type=password],[type=date],[type=time],[type=datetime-local])),.a2ui-surface.a2ui-container label:not(:has(input)):has(+textarea){display:block;margin:0 0 var(--space-2);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);line-height:var(--line-height-base);color:var(--color-text)}.a2ui-surface.a2ui-container strong{display:block;margin:0 0 var(--space-2);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);line-height:var(--line-height-base);color:var(--color-text)}.a2ui-surface.a2ui-container div:has(>input[type=checkbox]:first-child+label){display:flex;align-items:center;gap:var(--space-2)}.a2ui-surface.a2ui-container input[type=checkbox]:not(label input)+label,.a2ui-surface.a2ui-container input[type=radio]:not(label input)+label{display:inline;margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-base);color:var(--color-text);cursor:pointer}.a2ui-surface.a2ui-container div:has(>label>input[type=checkbox]),.a2ui-surface.a2ui-container div:has(>label>input[type=radio]){display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);width:100%}.a2ui-surface.a2ui-container label:has(>input[type=checkbox]),.a2ui-surface.a2ui-container label:has(>input[type=radio]){display:inline-flex;align-items:center;gap:var(--space-2);margin:0;width:auto;max-width:100%;font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-base);color:var(--color-text);cursor:pointer}.a2ui-surface.a2ui-container label:has(>input[type=checkbox])>span,.a2ui-surface.a2ui-container label:has(>input[type=radio])>span{font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--color-text)}.a2ui-surface.a2ui-container input[type=text],.a2ui-surface.a2ui-container input[type=number],.a2ui-surface.a2ui-container input[type=email],.a2ui-surface.a2ui-container input[type=tel],.a2ui-surface.a2ui-container input[type=url],.a2ui-surface.a2ui-container input[type=password],.a2ui-surface.a2ui-container input[type=date],.a2ui-surface.a2ui-container input[type=time],.a2ui-surface.a2ui-container input[type=datetime-local],.a2ui-surface.a2ui-container textarea{display:block;width:100%;min-height:var(--button-height-md);box-sizing:border-box;padding:var(--space-2) var(--space-3);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--duration-fast) var(--ease-default),box-shadow var(--duration-fast) var(--ease-default)}.a2ui-surface.a2ui-container textarea{min-height:calc(var(--button-height-md) * 2);padding-top:var(--space-2);padding-bottom:var(--space-2);resize:vertical}.a2ui-surface.a2ui-container input[type=text]:hover,.a2ui-surface.a2ui-container input[type=number]:hover,.a2ui-surface.a2ui-container input[type=email]:hover,.a2ui-surface.a2ui-container input[type=tel]:hover,.a2ui-surface.a2ui-container input[type=url]:hover,.a2ui-surface.a2ui-container input[type=password]:hover,.a2ui-surface.a2ui-container input[type=date]:hover,.a2ui-surface.a2ui-container input[type=time]:hover,.a2ui-surface.a2ui-container input[type=datetime-local]:hover,.a2ui-surface.a2ui-container textarea:hover{border-color:var(--color-border-strong)}.a2ui-surface.a2ui-container input[type=text]:focus,.a2ui-surface.a2ui-container input[type=number]:focus,.a2ui-surface.a2ui-container input[type=email]:focus,.a2ui-surface.a2ui-container input[type=tel]:focus,.a2ui-surface.a2ui-container input[type=url]:focus,.a2ui-surface.a2ui-container input[type=password]:focus,.a2ui-surface.a2ui-container input[type=date]:focus,.a2ui-surface.a2ui-container input[type=time]:focus,.a2ui-surface.a2ui-container input[type=datetime-local]:focus,.a2ui-surface.a2ui-container textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.a2ui-surface.a2ui-container input[type=checkbox]:not(.ant-checkbox-input),.a2ui-surface.a2ui-container input[type=radio]:not(.ant-radio-input){width:16px;height:16px;min-height:0;min-width:16px;margin:0;padding:0;flex-shrink:0;border:none;border-radius:var(--radius-sm);background:transparent;box-shadow:none;accent-color:var(--color-primary);cursor:pointer;vertical-align:middle}.a2ui-surface.a2ui-container input[type=checkbox]:not(.ant-checkbox-input):not(label input),.a2ui-surface.a2ui-container input[type=radio]:not(.ant-radio-input):not(label input){border:1px solid var(--color-border);background:var(--color-surface)}.a2ui-surface.a2ui-container input[type=radio]:not(.ant-radio-input):not(label input){border-radius:50%}.a2ui-surface.a2ui-container input[type=checkbox]:not(.ant-checkbox-input):focus,.a2ui-surface.a2ui-container input[type=radio]:not(.ant-radio-input):focus{outline:none;box-shadow:var(--shadow-focus)}.a2ui-surface.a2ui-container button:not([class*=ant-]){min-height:var(--button-height-md);padding:0 var(--button-padding-x-md);font-family:var(--font-sans);font-size:var(--button-font-size-md);font-weight:var(--button-font-weight);line-height:var(--line-height-base);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-default),border-color var(--duration-fast) var(--ease-default),color var(--duration-fast) var(--ease-default)}.a2ui-surface.a2ui-container button:not([class*=ant-]):hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-bg-subtle)}.a2ui-surface.a2ui-container button:not([class*=ant-]):disabled{cursor:not-allowed;opacity:.45}.a2ui-surface.a2ui-container button.chip,.a2ui-surface.a2ui-container button.chip.selected,.a2ui-surface.a2ui-container button.selected{min-height:var(--button-height-sm);padding:0 var(--button-padding-x-sm);font-size:var(--button-font-size-sm)}.a2ui-surface.a2ui-container button.chip.selected,.a2ui-surface.a2ui-container button.selected{color:var(--color-on-primary);background-color:var(--color-primary-solid);border-color:var(--color-primary-solid)}.a2ui-surface.a2ui-container button.chip.selected:hover,.a2ui-surface.a2ui-container button.selected:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.a2ui-surface.a2ui-container span[style*="color: red"],.a2ui-surface.a2ui-container span[style*="color:red"]{display:block;margin-top:var(--space-1);font-size:var(--font-size-xs);line-height:var(--line-height-relaxed);color:var(--color-danger-text)!important}.a2ui-surface.a2ui-container img:not(.form-media-item){max-width:100%;height:auto;border-radius:var(--radius-md)}.a2ui-surface.a2ui-container .form-block-preview{width:100%}.a2ui-surface.a2ui-container .form-block-preview+.form-block-preview,.a2ui-surface.a2ui-container .form-block-preview-label+.form-block-preview-control,.a2ui-surface.a2ui-container .form-block-preview-label+.form-media-preview,.a2ui-surface.a2ui-container .form-block-preview-label+.form-media-list,.a2ui-surface.a2ui-container .form-block-preview-label+.form-file-upload-preview{margin-top:var(--space-2)}.a2ui-surface.a2ui-container .form-block-preview .ant-upload-drag{border-radius:var(--radius-md)}.a2ui-surface.a2ui-container .form-block-preview-control.ant-picker{width:100%}.a2ui-surface.a2ui-container .form-block-preview-control.ant-switch{margin-top:var(--space-1)}.form-block-preview{padding:var(--space-1) 0 var(--space-2)}.form-block-preview-label{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);margin-bottom:var(--space-2);color:var(--color-text)}.form-block-preview-control{margin-top:var(--space-1)}.form-block-preview-help{display:block;margin-top:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted)}.form-media-preview{max-width:100%;border-radius:var(--radius-md);overflow:hidden}.form-media-list{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--space-2);max-width:100%}.form-media-item{display:block;flex-shrink:0;object-fit:cover;border-radius:var(--radius-md)}.form-media-list.form-media-size-huge .form-media-item{width:480px;height:480px}.form-media-list.form-media-size-huge .form-media-item.form-media-item--audio{width:480px;height:48px}.form-media-list.form-media-size-large .form-media-item{width:320px;height:320px}.form-media-list.form-media-size-large .form-media-item.form-media-item--audio{width:320px;height:48px}.form-media-list.form-media-size-medium .form-media-item{width:160px;height:160px}.form-media-list.form-media-size-medium .form-media-item.form-media-item--audio{width:160px;height:48px}.form-media-list.form-media-size-small .form-media-item{width:80px;height:80px}.form-media-list.form-media-size-small .form-media-item.form-media-item--audio{width:80px;height:48px}.form-media-list.form-media-size-icon .form-media-item{width:48px;height:48px}.form-media-preview--empty{display:flex;align-items:center;justify-content:center;min-height:120px;padding:var(--space-4);border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-subtle);color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center}.form-file-upload-preview{margin-top:var(--space-1)}.form-file-upload-preview .ant-upload-drag{border-color:var(--color-border);background:var(--color-bg-subtle)}.form-file-upload-preview-icon{margin:0 0 var(--space-2);color:var(--color-primary)}.form-file-upload-preview-text{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.ask-user-form-card{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.ask-user-form-card-status,.ask-user-form-actions{display:flex;justify-content:flex-end}.ask-user-curl-card{display:flex;flex-direction:column;gap:var(--space-1);min-width:0;padding:var(--space-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-bg-subtle, rgba(0, 0, 0, .03))}.ask-user-curl-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.ask-user-curl-card-header-title{display:flex;align-items:center;gap:var(--space-2);min-width:0;flex:1 1 auto}.ask-user-curl-unpublished-tag{margin:0;flex-shrink:0;color:var(--color-warning, #d48806);background:#d488061f;border-color:transparent}.ask-user-curl-incomplete-tag{margin:0;flex-shrink:0;color:var(--color-primary);background:var(--color-primary-subtle);border-color:transparent}.skopon-form-curl-json,.flow-artifact-generate-chat-json{margin:0;padding:var(--space-2);font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-all}.skopon-resume-select-list{display:flex;flex-direction:column;gap:var(--space-2, 8px);margin-top:var(--space-2, 8px)}.skopon-resume-select-card{display:flex;align-items:flex-start;gap:12px;width:100%;padding:12px;border:1px solid var(--color-border, #d9d9d9);border-radius:var(--radius-md, 8px);background:var(--color-surface, #fff);text-align:left;cursor:pointer}.skopon-resume-select-card:hover:not(:disabled){border-color:var(--color-primary, #1677ff)}.skopon-resume-select-card--selected{border-color:var(--color-primary, #1677ff);background:color-mix(in srgb,var(--color-primary, #1677ff) 8%,transparent)}.skopon-resume-select-card:disabled{cursor:not-allowed;opacity:.72}.skopon-resume-select-card-body{flex:1;min-width:0}.skopon-resume-select-card-name{font-weight:600;margin-bottom:4px}.skopon-resume-select-card-desc{color:var(--color-text-secondary, rgba(0, 0, 0, .65));font-size:13px;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.skopon-resume-select-card-meta{color:var(--color-text-secondary, rgba(0, 0, 0, .45));font-size:12px}.skopon-resume-select-actions{margin-top:var(--space-2, 8px)}.skopon-resume-select-empty,.skopon-resume-select-status{padding:12px 0;color:var(--color-text-secondary, rgba(0, 0, 0, .45))}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,17 +4,22 @@ export { a2uiToBlocks, blocksToA2ui, isA2uiSurfaceEmpty, surfaceDocToMessages, t
|
|
|
4
4
|
export { buildAskUserSurface, mapFormDefinitionFromDto, resolveSurfaceFromFormDefinition, } from './adapter/resolveSurface';
|
|
5
5
|
export { normalizeFormDefinition, syncFormDefinition } from './adapter/formSchema';
|
|
6
6
|
export { extractSurfaceValues } from './adapter/extractSurfaceValues';
|
|
7
|
-
export { buildCurlStatement } from './submit/buildCurlStatement';
|
|
8
|
-
export {
|
|
7
|
+
export { buildCurlStatement, buildAskUserCurlStatement, buildAskUserCurlBodyJson } from './submit/buildCurlStatement';
|
|
8
|
+
export { extractExtraBlockValues, getPayloadInputFieldNames, getPayloadRenderableBlocks, intersectPayloadBlocksWithForm, parsePayloadBlocksJson, payloadHasInputBlocks, type PayloadBlocksDefinition, type PayloadBlocksIntersection, } from './submit/intersectPayloadBlocksWithForm';
|
|
9
9
|
export { copyTextToClipboard, submitFormJson, type SubmitFormJsonOptions, type SubmitFormJsonResult, } from './submit/submitFormJson';
|
|
10
10
|
export { createFormClient, type FormClient, type FormClientOptions } from './client/formClient';
|
|
11
11
|
export { default as SkoponFormRenderer } from './components/SkoponFormRenderer';
|
|
12
12
|
export type { SkoponFormRendererProps, SkoponFormRendererRef } from './components/SkoponFormRenderer';
|
|
13
|
+
export type { ResumeSearchFn as SkoponResumeSearchFn } from './catalog/resumeSearchContext';
|
|
14
|
+
export type { CaseSearchFn as SkoponCaseSearchFn } from './catalog/caseSearchContext';
|
|
13
15
|
export { default as SkoponA2uiStreamRenderer } from './components/SkoponA2uiStreamRenderer';
|
|
14
16
|
export type { SkoponA2uiStreamRendererProps } from './components/SkoponA2uiStreamRenderer';
|
|
15
17
|
export { default as AskUserFormCard } from './components/AskUserFormCard';
|
|
16
18
|
export type { AskUserFormCardProps } from './components/AskUserFormCard';
|
|
17
19
|
export { default as CurlSubmitBlock } from './components/CurlSubmitBlock';
|
|
18
20
|
export type { CurlSubmitBlockProps } from './components/CurlSubmitBlock';
|
|
21
|
+
export { ResumeSearchProvider, useResumeSearch, type ResumeSearchFn, type ResumeSearchItem, type ResumeSearchParams, type ResumeSearchResult, } from './catalog/resumeSearchContext';
|
|
22
|
+
export { CaseSearchProvider, useCaseSearch, type CaseSearchFn, type CaseSearchItem, type CaseSearchParams, type CaseSearchResult, } from './catalog/caseSearchContext';
|
|
23
|
+
export type { FormResumeFilter, FormCaseFilter } from './types/index';
|
|
19
24
|
import './styles/index.css';
|
|
20
25
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,aAAa,EACb,UAAU,EACV,UAAU,GACX,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,mBAAmB,GACzB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,gCAAgC,GACjC,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAElF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAErE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,aAAa,EACb,UAAU,EACV,UAAU,GACX,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,mBAAmB,GACzB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,gCAAgC,GACjC,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAElF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAErE,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AACrH,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,0BAA0B,EAC1B,8BAA8B,EAC9B,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,GAC/B,MAAM,yCAAyC,CAAA;AAChD,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,GAC1B,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,gBAAgB,EAAE,KAAK,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE/F,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAC/E,YAAY,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACrG,YAAY,EAAE,cAAc,IAAI,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAC3F,YAAY,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAErF,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,uCAAuC,CAAA;AAC3F,YAAY,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAA;AAE1F,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACzE,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAExE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACzE,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAGxE,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,6BAA6B,CAAA;AAEpC,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAErE,OAAO,oBAAoB,CAAA"}
|