@lynx-js/genui 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -9
- package/a2ui/AGENTS.md +167 -0
- package/a2ui/README.md +76 -780
- package/a2ui/README_zh.md +103 -0
- package/a2ui/dist/catalog/Button/{index.js → index.jsx} +12 -8
- package/a2ui/dist/catalog/Button/index.jsx.map +1 -0
- package/a2ui/dist/catalog/Card/{index.js → index.jsx} +5 -4
- package/a2ui/dist/catalog/Card/index.jsx.map +1 -0
- package/a2ui/dist/catalog/CheckBox/{index.js → index.jsx} +11 -6
- package/a2ui/dist/catalog/CheckBox/index.jsx.map +1 -0
- package/a2ui/dist/catalog/ChoicePicker/index.jsx +98 -0
- package/a2ui/dist/catalog/ChoicePicker/index.jsx.map +1 -0
- package/a2ui/dist/catalog/Column/{index.js → index.jsx} +10 -7
- package/a2ui/dist/catalog/Column/{index.js.map → index.jsx.map} +1 -1
- package/a2ui/dist/catalog/DateTimeInput/index.jsx +249 -0
- package/a2ui/dist/catalog/DateTimeInput/index.jsx.map +1 -0
- package/a2ui/dist/catalog/DateTimeInput/utils.d.ts +0 -1
- package/a2ui/dist/catalog/DateTimeInput/utils.js +0 -3
- package/a2ui/dist/catalog/DateTimeInput/utils.js.map +1 -1
- package/a2ui/dist/catalog/Divider/index.jsx +7 -0
- package/a2ui/dist/catalog/Divider/index.jsx.map +1 -0
- package/a2ui/dist/catalog/Icon/{index.js → index.jsx} +4 -3
- package/a2ui/dist/catalog/Icon/{index.js.map → index.jsx.map} +1 -1
- package/a2ui/dist/catalog/Image/{index.js → index.jsx} +2 -3
- package/a2ui/dist/catalog/Image/{index.js.map → index.jsx.map} +1 -1
- package/a2ui/dist/catalog/LineChart/{index.js → index.jsx} +50 -13
- package/a2ui/dist/catalog/LineChart/{index.js.map → index.jsx.map} +1 -1
- package/a2ui/dist/catalog/List/{index.js → index.jsx} +9 -6
- package/a2ui/dist/catalog/List/{index.js.map → index.jsx.map} +1 -1
- package/a2ui/dist/catalog/Loading/catalog.json +15 -0
- package/a2ui/dist/catalog/Loading/index.d.ts +10 -0
- package/a2ui/dist/catalog/Loading/index.jsx +11 -0
- package/a2ui/dist/catalog/Loading/index.jsx.map +1 -0
- package/a2ui/dist/catalog/Modal/{index.js → index.jsx} +18 -9
- package/a2ui/dist/catalog/Modal/index.jsx.map +1 -0
- package/a2ui/dist/catalog/PieChart/{index.js → index.jsx} +41 -15
- package/a2ui/dist/catalog/PieChart/{index.js.map → index.jsx.map} +1 -1
- package/a2ui/dist/catalog/RadioGroup/{index.js → index.jsx} +18 -5
- package/a2ui/dist/catalog/RadioGroup/index.jsx.map +1 -0
- package/a2ui/dist/catalog/Row/{index.js → index.jsx} +10 -7
- package/a2ui/dist/catalog/Row/index.jsx.map +1 -0
- package/a2ui/dist/catalog/Slider/{index.js → index.jsx} +22 -7
- package/a2ui/dist/catalog/Slider/{index.js.map → index.jsx.map} +1 -1
- package/a2ui/dist/catalog/Tabs/index.jsx +40 -0
- package/a2ui/dist/catalog/Tabs/index.jsx.map +1 -0
- package/a2ui/dist/catalog/Text/catalog.json +6 -2
- package/a2ui/dist/catalog/Text/index.d.ts +1 -1
- package/a2ui/dist/catalog/Text/index.jsx +16 -0
- package/a2ui/dist/catalog/Text/index.jsx.map +1 -0
- package/a2ui/dist/catalog/TextField/{index.js → index.jsx} +8 -5
- package/a2ui/dist/catalog/TextField/{index.js.map → index.jsx.map} +1 -1
- package/a2ui/dist/catalog/defineCatalog.d.ts +0 -4
- package/a2ui/dist/catalog/defineCatalog.js.map +1 -1
- package/a2ui/dist/catalog/index.d.ts +20 -19
- package/a2ui/dist/catalog/index.js +41 -21
- package/a2ui/dist/catalog/index.js.map +1 -1
- package/a2ui/dist/catalog.json +2548 -0
- package/a2ui/dist/index.d.ts +1 -1
- package/a2ui/dist/index.js +2 -2
- package/a2ui/dist/index.js.map +1 -1
- package/a2ui/dist/react/A2UI.d.ts +1 -1
- package/a2ui/dist/react/{A2UI.js → A2UI.jsx} +6 -5
- package/a2ui/dist/react/{A2UI.js.map → A2UI.jsx.map} +1 -1
- package/a2ui/dist/react/{A2UIProvider.js → A2UIProvider.jsx} +2 -3
- package/a2ui/dist/react/{A2UIProvider.js.map → A2UIProvider.jsx.map} +1 -1
- package/a2ui/dist/react/{A2UIRenderer.js → A2UIRenderer.jsx} +32 -32
- package/a2ui/dist/react/A2UIRenderer.jsx.map +1 -0
- package/a2ui/dist/react/index.d.ts +3 -3
- package/a2ui/dist/react/index.js +2 -2
- package/a2ui/dist/react/index.js.map +1 -1
- package/a2ui/dist/react/useA2UIContext.d.ts +1 -1
- package/a2ui/dist/react/useA2UIContext.js +1 -1
- package/a2ui/dist/react/useA2UIContext.js.map +1 -1
- package/a2ui/dist/tsconfig.build.tsbuildinfo +1 -1
- package/a2ui/docs/catalog-guide.md +401 -0
- package/a2ui/docs/catalog-guide_zh.md +373 -0
- package/a2ui/docs/overview.md +312 -0
- package/a2ui/docs/overview_zh.md +289 -0
- package/a2ui/docs/system-prompts.md +187 -0
- package/a2ui/docs/system-prompts_zh.md +187 -0
- package/a2ui/src/catalog/README.md +12 -0
- package/a2ui/src/catalog/index.ts +51 -0
- package/a2ui/src/catalog/readme_zh.md +11 -0
- package/a2ui/src/index.ts +115 -0
- package/a2ui/styles/catalog/Button.css +5 -5
- package/a2ui/styles/catalog/DateTimeInput.css +22 -30
- package/a2ui/styles/catalog/Loading.css +61 -0
- package/a2ui/styles/catalog/Modal.css +1 -0
- package/a2ui/styles/catalog/Text.css +2 -6
- package/a2ui-catalog-extractor/README.md +14 -7
- package/a2ui-catalog-extractor/dist/cli.d.ts +1 -0
- package/a2ui-catalog-extractor/dist/cli.js +15 -6
- package/a2ui-catalog-extractor/dist/cli.js.map +1 -1
- package/a2ui-catalog-extractor/dist/index.d.ts +9 -2
- package/a2ui-catalog-extractor/dist/index.js +52 -6
- package/a2ui-catalog-extractor/dist/index.js.map +1 -1
- package/a2ui-catalog-extractor/dist/tsconfig.build.tsbuildinfo +1 -1
- package/a2ui-catalog-extractor/skills/a2ui-catalog-extractor/SKILL.md +1 -1
- package/a2ui-prompt/README.md +3 -2
- package/a2ui-prompt/dist/index.d.ts +2 -0
- package/a2ui-prompt/dist/index.js +259 -184
- package/cli/README.md +26 -0
- package/cli/bin/cli.js +7 -265
- package/cli/dist/a2ui/create.d.ts +5 -0
- package/cli/dist/a2ui/create.js +178 -0
- package/cli/dist/a2ui/create.js.map +1 -0
- package/cli/dist/a2ui/index.d.ts +5 -0
- package/cli/dist/a2ui/index.js +170 -0
- package/cli/dist/a2ui/index.js.map +1 -0
- package/cli/dist/cli.d.ts +4 -0
- package/cli/dist/cli.js +40 -0
- package/cli/dist/cli.js.map +1 -0
- package/cli/dist/openui.d.ts +1 -0
- package/cli/dist/openui.js +21 -0
- package/cli/dist/openui.js.map +1 -0
- package/cli/dist/tsconfig.build.tsbuildinfo +1 -0
- package/cli/dist/utils.d.ts +2 -0
- package/cli/dist/utils.js +17 -0
- package/cli/dist/utils.js.map +1 -0
- package/cli/templates/default/lynx.config.ts +13 -0
- package/cli/templates/default/package.json +27 -0
- package/cli/templates/default/src/App.css +88 -0
- package/cli/templates/default/src/App.tsx +100 -0
- package/cli/templates/default/src/index.tsx +10 -0
- package/cli/templates/default/src/messages.ts +158 -0
- package/cli/templates/default/src/rspeedy-env.d.ts +14 -0
- package/cli/templates/default/src/tsconfig.json +17 -0
- package/cli/templates/default/tsconfig.json +15 -0
- package/cli/templates/default/tsconfig.node.json +16 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/openui/README.md +50 -46
- package/openui/dist/catalog/Action/{index.js → index.jsx} +1 -1
- package/openui/dist/catalog/Action/index.jsx.map +1 -0
- package/openui/dist/catalog/Button/index.d.ts +8 -8
- package/openui/dist/catalog/Button/{index.js → index.jsx} +28 -14
- package/openui/dist/catalog/Button/index.jsx.map +1 -0
- package/openui/dist/catalog/Card/index.d.ts +1 -1
- package/openui/dist/catalog/Card/{index.js → index.jsx} +5 -4
- package/openui/dist/catalog/Card/{index.js.map → index.jsx.map} +1 -1
- package/openui/dist/catalog/CardHeader/index.d.ts +1 -1
- package/openui/dist/catalog/CardHeader/index.jsx +20 -0
- package/openui/dist/catalog/CardHeader/index.jsx.map +1 -0
- package/openui/dist/catalog/CheckBox/index.d.ts +16 -0
- package/openui/dist/catalog/CheckBox/index.jsx +82 -0
- package/openui/dist/catalog/CheckBox/index.jsx.map +1 -0
- package/openui/dist/catalog/Icon/index.d.ts +44 -0
- package/openui/dist/catalog/Icon/index.jsx +66 -0
- package/openui/dist/catalog/Icon/index.jsx.map +1 -0
- package/openui/dist/catalog/Image/index.d.ts +19 -0
- package/openui/dist/catalog/Image/index.jsx +40 -0
- package/openui/dist/catalog/Image/index.jsx.map +1 -0
- package/openui/dist/catalog/Loading/index.d.ts +7 -0
- package/openui/dist/catalog/Loading/index.jsx +25 -0
- package/openui/dist/catalog/Loading/index.jsx.map +1 -0
- package/openui/dist/catalog/RadioGroup/index.d.ts +21 -0
- package/openui/dist/catalog/RadioGroup/index.jsx +99 -0
- package/openui/dist/catalog/RadioGroup/index.jsx.map +1 -0
- package/openui/dist/catalog/Separator/index.d.ts +1 -1
- package/openui/dist/catalog/Separator/{index.js → index.jsx} +3 -4
- package/openui/dist/catalog/Separator/index.jsx.map +1 -0
- package/openui/dist/catalog/Slider/index.d.ts +19 -0
- package/openui/dist/catalog/Slider/index.jsx +139 -0
- package/openui/dist/catalog/Slider/index.jsx.map +1 -0
- package/openui/dist/catalog/Stack/index.d.ts +1 -1
- package/openui/dist/catalog/Stack/{index.js → index.jsx} +3 -4
- package/openui/dist/catalog/Stack/{index.js.map → index.jsx.map} +1 -1
- package/openui/dist/catalog/Tag/index.d.ts +1 -1
- package/openui/dist/catalog/Tag/{index.js → index.jsx} +5 -4
- package/openui/dist/catalog/Tag/index.jsx.map +1 -0
- package/openui/dist/catalog/TextContent/index.d.ts +1 -1
- package/openui/dist/catalog/TextContent/{index.js → index.jsx} +5 -4
- package/openui/dist/catalog/TextContent/{index.js.map → index.jsx.map} +1 -1
- package/openui/dist/catalog/TextField/index.d.ts +23 -0
- package/openui/dist/catalog/TextField/index.jsx +132 -0
- package/openui/dist/catalog/TextField/index.jsx.map +1 -0
- package/openui/dist/catalog/index.d.ts +14 -7
- package/openui/dist/catalog/index.js +14 -7
- package/openui/dist/catalog/index.js.map +1 -1
- package/openui/dist/core/context.d.ts +17 -7
- package/openui/dist/core/{context.js → context.jsx} +8 -2
- package/openui/dist/core/context.jsx.map +1 -0
- package/openui/dist/core/createLibrary.d.ts +1 -1
- package/openui/dist/core/{createLibrary.js → createLibrary.jsx} +14 -3
- package/openui/dist/core/createLibrary.jsx.map +1 -0
- package/openui/dist/core/hooks/index.d.ts +1 -0
- package/openui/dist/core/hooks/index.js +1 -0
- package/openui/dist/core/hooks/index.js.map +1 -1
- package/openui/dist/core/hooks/useOpenUIState.d.ts +2 -2
- package/openui/dist/core/hooks/useOpenUIState.js +3 -1
- package/openui/dist/core/hooks/useOpenUIState.js.map +1 -1
- package/openui/dist/core/hooks/useStateField.js +1 -1
- package/openui/dist/core/hooks/useStateField.js.map +1 -1
- package/openui/dist/core/index.d.ts +13 -7
- package/openui/dist/core/index.js +7 -4
- package/openui/dist/core/index.js.map +1 -1
- package/openui/dist/core/{library.js → library.jsx} +1 -1
- package/openui/dist/core/library.jsx.map +1 -0
- package/openui/dist/core/renderer.css +527 -0
- package/openui/dist/core/renderer.d.ts +31 -4
- package/openui/dist/core/renderer.jsx +281 -0
- package/openui/dist/core/renderer.jsx.map +1 -0
- package/openui/dist/core/runtime/index.d.ts +1 -0
- package/openui/dist/core/runtime/index.js +5 -0
- package/openui/dist/core/runtime/index.js.map +1 -0
- package/openui/dist/core/runtime/reactive.d.ts +7 -0
- package/openui/dist/core/runtime/reactive.js +10 -0
- package/openui/dist/core/runtime/reactive.js.map +1 -0
- package/package.json +18 -8
- package/a2ui/dist/catalog/Button/index.js.map +0 -1
- package/a2ui/dist/catalog/Card/index.js.map +0 -1
- package/a2ui/dist/catalog/CheckBox/index.js.map +0 -1
- package/a2ui/dist/catalog/ChoicePicker/index.js +0 -66
- package/a2ui/dist/catalog/ChoicePicker/index.js.map +0 -1
- package/a2ui/dist/catalog/DateTimeInput/index.js +0 -147
- package/a2ui/dist/catalog/DateTimeInput/index.js.map +0 -1
- package/a2ui/dist/catalog/Divider/index.js +0 -8
- package/a2ui/dist/catalog/Divider/index.js.map +0 -1
- package/a2ui/dist/catalog/Modal/index.js.map +0 -1
- package/a2ui/dist/catalog/RadioGroup/index.js.map +0 -1
- package/a2ui/dist/catalog/Row/index.js.map +0 -1
- package/a2ui/dist/catalog/Tabs/index.js +0 -32
- package/a2ui/dist/catalog/Tabs/index.js.map +0 -1
- package/a2ui/dist/catalog/Text/index.js +0 -27
- package/a2ui/dist/catalog/Text/index.js.map +0 -1
- package/a2ui/dist/react/A2UIRenderer.js.map +0 -1
- package/openui/dist/catalog/Action/index.js.map +0 -1
- package/openui/dist/catalog/Button/index.js.map +0 -1
- package/openui/dist/catalog/CardHeader/index.js +0 -18
- package/openui/dist/catalog/CardHeader/index.js.map +0 -1
- package/openui/dist/catalog/Separator/index.js.map +0 -1
- package/openui/dist/catalog/Tag/index.js.map +0 -1
- package/openui/dist/core/context.js.map +0 -1
- package/openui/dist/core/createLibrary.js.map +0 -1
- package/openui/dist/core/library.js.map +0 -1
- package/openui/dist/core/renderer.js +0 -139
- package/openui/dist/core/renderer.js.map +0 -1
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# @lynx-js/genui/a2ui
|
|
2
|
+
|
|
3
|
+
[English](./README.md) | 简体中文
|
|
4
|
+
|
|
5
|
+
`@lynx-js/genui/a2ui` 是面向 A2UI v0.9 的 ReactLynx 客户端运行时。它消费经过校验的
|
|
6
|
+
A2UI server-to-client JSON messages,并在你的应用中渲染可信的 ReactLynx 组件。
|
|
7
|
+
|
|
8
|
+
当你已经有、或准备构建一个返回 A2UI messages 的 Agent 服务时,使用这个包。它不托管 Agent,不调用
|
|
9
|
+
LLM,不拥有后端路由,也不提供 chat shell。你的应用负责传输层,并把消息写入 renderer。
|
|
10
|
+
|
|
11
|
+
如果你第一次接触 A2UI,可以先这样理解:
|
|
12
|
+
|
|
13
|
+
- 在 React 里,是你的代码选择组件并传入 props。
|
|
14
|
+
- 在 A2UI 里,是 Agent 从你的应用发布的组件 Catalog 中选择组件。
|
|
15
|
+
- Client 仍然渲染真实的 ReactLynx 组件。模型只发送数据,告诉渲染器用哪个已授权组件、传哪些 props。
|
|
16
|
+
|
|
17
|
+
最终产物不是任意生成代码,而是由可信 Catalog 组装出的 ReactLynx UI 树。
|
|
18
|
+
|
|
19
|
+
## 安装
|
|
20
|
+
|
|
21
|
+
在 ReactLynx 应用中安装公开的 GenUI 包:
|
|
22
|
+
|
|
23
|
+
```sh
|
|
24
|
+
pnpm add @lynx-js/genui @lynx-js/react
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
如果想使用内置 light/dark CSS variables,可以在入口处引入一次可选的默认主题 tokens:
|
|
28
|
+
|
|
29
|
+
```ts
|
|
30
|
+
import '@lynx-js/genui/a2ui/styles/theme.css';
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## 快速开始
|
|
34
|
+
|
|
35
|
+
创建 `MessageStore`,注册 generated UI 允许渲染的组件,并把 generated actions 转发回你的 Agent 服务。
|
|
36
|
+
|
|
37
|
+
```tsx
|
|
38
|
+
import {
|
|
39
|
+
A2UI,
|
|
40
|
+
Button,
|
|
41
|
+
Text,
|
|
42
|
+
basicFunctions,
|
|
43
|
+
createMessageStore,
|
|
44
|
+
normalizePayloadToMessages,
|
|
45
|
+
} from '@lynx-js/genui/a2ui';
|
|
46
|
+
|
|
47
|
+
const store = createMessageStore();
|
|
48
|
+
const catalogs = [Text, Button, ...basicFunctions];
|
|
49
|
+
|
|
50
|
+
async function sendPrompt(input: string) {
|
|
51
|
+
const res = await fetch('/a2ui/chat', {
|
|
52
|
+
method: 'POST',
|
|
53
|
+
headers: { 'Content-Type': 'application/json' },
|
|
54
|
+
body: JSON.stringify({ messages: [{ role: 'user', content: input }] }),
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
store.push(normalizePayloadToMessages(await res.json()));
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
<A2UI
|
|
61
|
+
messageStore={store}
|
|
62
|
+
catalogs={catalogs}
|
|
63
|
+
wrapSurface={(children) => <view className='a2ui-light'>{children}</view>}
|
|
64
|
+
onAction={(action) => {
|
|
65
|
+
void fetch('/a2ui/action', {
|
|
66
|
+
method: 'POST',
|
|
67
|
+
headers: { 'Content-Type': 'application/json' },
|
|
68
|
+
body: JSON.stringify(action),
|
|
69
|
+
})
|
|
70
|
+
.then((res) => res.json())
|
|
71
|
+
.then((payload) => store.push(normalizePayloadToMessages(payload)));
|
|
72
|
+
}}
|
|
73
|
+
/>;
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
`MessageStore` 按到达顺序保存原始 protocol messages。`<A2UI>` 订阅它、处理新消息、渲染 active surface,并通过
|
|
77
|
+
`onAction` 抛出 generated UI actions。
|
|
78
|
+
|
|
79
|
+
## 你需要负责什么
|
|
80
|
+
|
|
81
|
+
| 部分 | 负责人 | 作用 |
|
|
82
|
+
| ------------------------- | --------- | ------------------------------------------------------------------------------------------------------- |
|
|
83
|
+
| `@lynx-js/genui/a2ui` | 这个包 | ReactLynx renderer、`MessageStore`、Catalog API、内置组件、协议辅助能力,以及 client function entries。 |
|
|
84
|
+
| `npx @lynx-js/genui a2ui` | GenUI CLI | 构建期命令,用来生成自定义 catalog artifacts 和 A2UI system prompts。 |
|
|
85
|
+
| 你的 Agent 服务 | 你的应用 | 接收用户 prompt/action,带着 A2UI prompt 和 catalog 调用模型,校验输出,然后返回 messages。 |
|
|
86
|
+
| 你的 transport adapter | 你的应用 | 调用 Agent 服务,处理 REST 或流式响应,把 messages 写入 `MessageStore`,并转发 generated UI actions。 |
|
|
87
|
+
|
|
88
|
+
## 首次接入要知道
|
|
89
|
+
|
|
90
|
+
- 只把 generated UI 允许使用的组件传给 `catalogs`。
|
|
91
|
+
- 当 messages 可能使用 `formatString`、`formatDate`、`required`、`email` 或 `and` 等 A2UI function calls 时,加入
|
|
92
|
+
`...basicFunctions`。
|
|
93
|
+
- 需要通过 `serializeCatalog(...)` 把 JSON schemas 发送给 Agent 时,把组件和它的 `catalog.json` manifest 配对。
|
|
94
|
+
- 包里故意没有 `@lynx-js/genui/a2ui/catalog/all` 导出。请在接入点组合你真正需要的 catalog,让 bundle 成本保持可见。
|
|
95
|
+
- 新 turn 或新 session 需要重置 `<A2UI>` 时,传入不同的 `key`;组件会在一次 mount 生命周期内持有自己的
|
|
96
|
+
`MessageProcessor`。
|
|
97
|
+
|
|
98
|
+
## 更多文档
|
|
99
|
+
|
|
100
|
+
- [概览与架构](./docs/overview_zh.md)
|
|
101
|
+
- [Catalogs、内置组件与自定义组件](./docs/catalog-guide_zh.md)
|
|
102
|
+
- [System Prompts](./docs/system-prompts_zh.md)
|
|
103
|
+
- [打开 A2UI Playground](https://lynxjs.org/a2ui)
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "@lynx-js/react/jsx-runtime";
|
|
2
1
|
// Copyright 2026 The Lynx Authors. All rights reserved.
|
|
3
2
|
// Licensed under the Apache License Version 2.0 that can be found in the
|
|
4
3
|
// LICENSE file in the root directory of this source tree.
|
|
5
|
-
import { A2UIRenderer } from '../../react/A2UIRenderer.
|
|
4
|
+
import { A2UIRenderer } from '../../react/A2UIRenderer.jsx';
|
|
6
5
|
import { useChecks } from '../../react/useChecks.js';
|
|
7
6
|
import '../../../styles/catalog/Button.css';
|
|
8
7
|
export function Button(props) {
|
|
@@ -26,10 +25,15 @@ export function Button(props) {
|
|
|
26
25
|
const childResource = child
|
|
27
26
|
? surface.resources.get(child)
|
|
28
27
|
: undefined;
|
|
29
|
-
return (
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
return (<>
|
|
29
|
+
<view className={`button button-${variant}${isValid ? '' : ' button-disabled'}${ok ? '' : ' button-invalid'}`} bindtap={enabled ? handleClick : undefined}>
|
|
30
|
+
{childResource
|
|
31
|
+
? <A2UIRenderer resource={childResource}/>
|
|
32
|
+
: <text className='button-fallback'>Button</text>}
|
|
33
|
+
</view>
|
|
34
|
+
{!ok && firstFailureMessage
|
|
35
|
+
? <text className='button-error'>{firstFailureMessage}</text>
|
|
36
|
+
: null}
|
|
37
|
+
</>);
|
|
34
38
|
}
|
|
35
|
-
//# sourceMappingURL=index.
|
|
39
|
+
//# sourceMappingURL=index.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../../src/catalog/Button/index.tsx"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAIrD,OAAO,oCAAoC,CAAC;AA+C5C,MAAM,UAAU,MAAM,CACpB,KAAkB;IAElB,MAAM,EACJ,MAAM,EACN,KAAK,EACL,EAAE,EACF,OAAO,GAAG,IAAI,EACd,OAAO,EACP,UAAU,EACV,OAAO,GAAG,SAAS,EACnB,eAAe,GAChB,GAAG,KAAK,CAAC;IACV,MAAM,MAAM,GAAG,KAAK,CAAC,MAAiC,CAAC;IACvD,MAAM,EAAE,EAAE,EAAE,mBAAmB,EAAE,GAAG,SAAS,CAAC;QAC5C,MAAM;QACN,WAAW,EAAE,EAAE,IAAI,EAAE;QACrB,OAAO;QACP,eAAe;KAChB,CAAC,CAAC;IAEH,sEAAsE;IACtE,yEAAyE;IACzE,qCAAqC;IACrC,MAAM,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IAE9B,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YACtB,KAAK,UAAU,EAAE,CAAC,MAAiC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK;QACzB,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;QAC9B,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,CACL,EACE;MAAA,CAAC,IAAI,CACH,SAAS,CAAC,CAAC,iBAAiB,OAAO,GACjC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBACjB,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CACjC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAE3C;QAAA,CAAC,aAAa;YACZ,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAG;YAC3C,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CACrD;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,CAAC,EAAE,IAAI,mBAAmB;YACzB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAAC;YAC7D,CAAC,CAAC,IAAI,CACV;IAAA,GAAG,CACJ,CAAC;AACJ,CAAC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { jsx as _jsx } from "@lynx-js/react/jsx-runtime";
|
|
2
1
|
// Copyright 2026 The Lynx Authors. All rights reserved.
|
|
3
2
|
// Licensed under the Apache License Version 2.0 that can be found in the
|
|
4
3
|
// LICENSE file in the root directory of this source tree.
|
|
5
|
-
import { NodeRenderer } from '../../react/A2UIRenderer.
|
|
4
|
+
import { NodeRenderer } from '../../react/A2UIRenderer.jsx';
|
|
6
5
|
import '../../../styles/catalog/Card.css';
|
|
7
6
|
export function Card(props) {
|
|
8
7
|
const { child: childId, surface, dataContextPath } = props;
|
|
@@ -14,6 +13,8 @@ export function Card(props) {
|
|
|
14
13
|
const weightClass = typeof props.weight === 'number'
|
|
15
14
|
? 'card-weighted'
|
|
16
15
|
: '';
|
|
17
|
-
return (
|
|
16
|
+
return (<view className={`card card-${variant} ${weightClass}`.trim()}>
|
|
17
|
+
{childWithContext && (<NodeRenderer component={childWithContext} surface={surface}/>)}
|
|
18
|
+
</view>);
|
|
18
19
|
}
|
|
19
|
-
//# sourceMappingURL=index.
|
|
20
|
+
//# sourceMappingURL=index.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../../src/catalog/Card/index.tsx"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAG5D,OAAO,kCAAkC,CAAC;AAW1C,MAAM,UAAU,IAAI,CAAC,KAAgB;IACnC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;IAC3D,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,gBAAgB,GAAG,cAAc,IAAI,eAAe;QACxD,CAAC,CAAC,EAAE,GAAG,cAAc,EAAE,eAAe,EAAE;QACxC,CAAC,CAAC,cAAc,CAAC;IACnB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,UAAU,CAAC;IAC5C,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;QAClD,CAAC,CAAC,eAAe;QACjB,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,CACL,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,aAAa,OAAO,IAAI,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAC5D;MAAA,CAAC,gBAAgB,IAAI,CACnB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAG,CAChE,CACH;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "@lynx-js/react/jsx-runtime";
|
|
2
1
|
// Copyright 2026 The Lynx Authors. All rights reserved.
|
|
3
2
|
// Licensed under the Apache License Version 2.0 that can be found in the
|
|
4
3
|
// LICENSE file in the root directory of this source tree.
|
|
@@ -16,9 +15,15 @@ export function CheckBox(props) {
|
|
|
16
15
|
const handleChange = () => {
|
|
17
16
|
setValue?.('value', !value);
|
|
18
17
|
};
|
|
19
|
-
return (
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
return (<view key={id} className={`checkbox-row${ok ? '' : ' checkbox-row-invalid'}`} bindtap={handleChange}>
|
|
19
|
+
<view className={`checkbox-input ${value ? 'checkbox-input-checked' : ''}`
|
|
20
|
+
.trim()}>
|
|
21
|
+
{!!value && <text>✓</text>}
|
|
22
|
+
</view>
|
|
23
|
+
<text className='checkbox-label'>{label}</text>
|
|
24
|
+
{!ok && firstFailureMessage
|
|
25
|
+
? <text className='checkbox-error'>{firstFailureMessage}</text>
|
|
26
|
+
: null}
|
|
27
|
+
</view>);
|
|
23
28
|
}
|
|
24
|
-
//# sourceMappingURL=index.
|
|
29
|
+
//# sourceMappingURL=index.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../../src/catalog/CheckBox/index.tsx"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAIrD,OAAO,sCAAsC,CAAC;AA+C9C,MAAM,UAAU,QAAQ,CACtB,KAAoB;IAEpB,MAAM,EACJ,EAAE,EACF,KAAK,GAAG,UAAU,EAClB,KAAK,EACL,QAAQ,EACR,OAAO,EACP,eAAe,GAChB,GAAG,KAAK,CAAC;IACV,MAAM,MAAM,GAAG,KAAK,CAAC,MAAiC,CAAC;IAEvD,MAAM,EAAE,EAAE,EAAE,mBAAmB,EAAE,GAAG,SAAS,CAAC;QAC5C,MAAM;QACN,WAAW,EAAE,EAAE,IAAI,EAAE;QACrB,OAAO;QACP,eAAe;KAChB,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,OAAO,CACL,CAAC,IAAI,CACH,GAAG,CAAC,CAAC,EAAE,CAAC,CACR,SAAS,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB,EAAE,CAAC,CAC9D,OAAO,CAAC,CAAC,YAAY,CAAC,CAEtB;MAAA,CAAC,IAAI,CACH,SAAS,CAAC,CAAC,kBAAkB,KAAK,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,EAAE;aACjE,IAAI,EAAE,CAAC,CAEV;QAAA,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAC5B;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,KAAe,CAAC,EAAE,IAAI,CACxD;MAAA,CAAC,CAAC,EAAE,IAAI,mBAAmB;YACzB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAAC;YAC/D,CAAC,CAAC,IAAI,CACV;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
// Copyright 2026 The Lynx Authors. All rights reserved.
|
|
2
|
+
// Licensed under the Apache License Version 2.0 that can be found in the
|
|
3
|
+
// LICENSE file in the root directory of this source tree.
|
|
4
|
+
import { Checkbox, CheckboxIndicator, Input, Radio, RadioGroupRoot, RadioIndicator, } from '@lynx-js/lynx-ui';
|
|
5
|
+
import { useState } from '@lynx-js/react';
|
|
6
|
+
import { filterChoicePickerOptions, normalizeChoicePickerDisplayStyle, normalizeChoicePickerLabel, normalizeChoicePickerOptions, normalizeChoicePickerValue, normalizeChoicePickerVariant, toggleChoicePickerValue, } from './utils.js';
|
|
7
|
+
import { useChecks } from '../../react/useChecks.js';
|
|
8
|
+
import '../../../styles/catalog/ChoicePicker.css';
|
|
9
|
+
const HitSlop = {
|
|
10
|
+
'hit-slop': {
|
|
11
|
+
top: '8px',
|
|
12
|
+
left: '8px',
|
|
13
|
+
right: '8px',
|
|
14
|
+
bottom: '8px',
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
export function ChoicePicker(props) {
|
|
18
|
+
const { dataContextPath, filterable = false, id, label, setValue, surface, } = props;
|
|
19
|
+
const [query, setQuery] = useState('');
|
|
20
|
+
const options = normalizeChoicePickerOptions(props.options);
|
|
21
|
+
const variant = normalizeChoicePickerVariant(props.variant);
|
|
22
|
+
const displayStyle = normalizeChoicePickerDisplayStyle(props.displayStyle);
|
|
23
|
+
const selectedValues = normalizeChoicePickerValue(props.value, options);
|
|
24
|
+
const selectedValue = selectedValues[0] ?? '';
|
|
25
|
+
const visibleOptions = filterChoicePickerOptions(options, query);
|
|
26
|
+
const checks = props.checks;
|
|
27
|
+
const { ok, firstFailureMessage } = useChecks({
|
|
28
|
+
checks,
|
|
29
|
+
componentId: id ?? '',
|
|
30
|
+
surface,
|
|
31
|
+
dataContextPath,
|
|
32
|
+
});
|
|
33
|
+
const handleExclusiveChange = (nextValue) => {
|
|
34
|
+
if (!nextValue || selectedValue === nextValue)
|
|
35
|
+
return;
|
|
36
|
+
setValue?.('value', [nextValue]);
|
|
37
|
+
};
|
|
38
|
+
const handleMultipleChange = (optionValue) => {
|
|
39
|
+
setValue?.('value', toggleChoicePickerValue(selectedValues, optionValue, variant));
|
|
40
|
+
};
|
|
41
|
+
const rootClassName = [
|
|
42
|
+
'choice-picker',
|
|
43
|
+
`choice-picker-${displayStyle}`,
|
|
44
|
+
`choice-picker-${variant}`,
|
|
45
|
+
ok ? '' : 'choice-picker-invalid',
|
|
46
|
+
].filter(Boolean).join(' ');
|
|
47
|
+
const labelText = normalizeChoicePickerLabel(label);
|
|
48
|
+
return (<view key={id} className={rootClassName}>
|
|
49
|
+
{labelText
|
|
50
|
+
? <text className='choice-picker-label'>{labelText}</text>
|
|
51
|
+
: null}
|
|
52
|
+
{filterable
|
|
53
|
+
? (<Input className='choice-picker-filter' value={query} type='text' confirmType='done' onInput={setQuery}/>)
|
|
54
|
+
: null}
|
|
55
|
+
{variant === 'mutuallyExclusive'
|
|
56
|
+
? (<RadioGroupRoot value={selectedValue} onValueChange={handleExclusiveChange}>
|
|
57
|
+
<view className='choice-picker-options'>
|
|
58
|
+
{visibleOptions.map((option) => displayStyle === 'chips'
|
|
59
|
+
? (<Radio key={option.value} className='choice-picker-chip' value={option.value} radioProps={HitSlop}>
|
|
60
|
+
<text className='choice-picker-chip-text'>
|
|
61
|
+
{option.label}
|
|
62
|
+
</text>
|
|
63
|
+
</Radio>)
|
|
64
|
+
: (<Radio key={option.value} className='choice-picker-option' value={option.value} radioProps={HitSlop}>
|
|
65
|
+
<RadioIndicator forceMount className='choice-picker-radio-indicator'>
|
|
66
|
+
<view className='choice-picker-radio-dot'/>
|
|
67
|
+
</RadioIndicator>
|
|
68
|
+
<text className='choice-picker-option-text'>
|
|
69
|
+
{option.label}
|
|
70
|
+
</text>
|
|
71
|
+
</Radio>))}
|
|
72
|
+
</view>
|
|
73
|
+
</RadioGroupRoot>)
|
|
74
|
+
: (<view className='choice-picker-options'>
|
|
75
|
+
{visibleOptions.map((option) => {
|
|
76
|
+
const checked = selectedValues.includes(option.value);
|
|
77
|
+
return displayStyle === 'chips'
|
|
78
|
+
? (<Checkbox key={option.value} className='choice-picker-chip' checked={checked} onChange={() => handleMultipleChange(option.value)} checkboxProps={HitSlop}>
|
|
79
|
+
<text className='choice-picker-chip-text'>
|
|
80
|
+
{option.label}
|
|
81
|
+
</text>
|
|
82
|
+
</Checkbox>)
|
|
83
|
+
: (<Checkbox key={option.value} className='choice-picker-option' checked={checked} onChange={() => handleMultipleChange(option.value)} checkboxProps={HitSlop}>
|
|
84
|
+
<CheckboxIndicator forceMount className='choice-picker-checkbox-indicator'>
|
|
85
|
+
<text className='choice-picker-checkmark'>✓</text>
|
|
86
|
+
</CheckboxIndicator>
|
|
87
|
+
<text className='choice-picker-option-text'>
|
|
88
|
+
{option.label}
|
|
89
|
+
</text>
|
|
90
|
+
</Checkbox>);
|
|
91
|
+
})}
|
|
92
|
+
</view>)}
|
|
93
|
+
{!ok && firstFailureMessage
|
|
94
|
+
? <text className='choice-picker-error'>{firstFailureMessage}</text>
|
|
95
|
+
: null}
|
|
96
|
+
</view>);
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=index.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../../src/catalog/ChoicePicker/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { jsx as _jsx } from "@lynx-js/react/jsx-runtime";
|
|
2
1
|
// Copyright 2026 The Lynx Authors. All rights reserved.
|
|
3
2
|
// Licensed under the Apache License Version 2.0 that can be found in the
|
|
4
3
|
// LICENSE file in the root directory of this source tree.
|
|
5
|
-
import { NodeRenderer } from '../../react/A2UIRenderer.
|
|
4
|
+
import { NodeRenderer } from '../../react/A2UIRenderer.jsx';
|
|
6
5
|
import { useDataBinding } from '../../react/useDataBinding.js';
|
|
7
6
|
import '../../../styles/catalog/Column.css';
|
|
8
7
|
const buildChild = (surface, childId, dataContextPath, childPath, key = childId) => {
|
|
@@ -38,14 +37,18 @@ export function Column(props) {
|
|
|
38
37
|
const itemPath = `${fullPath}/${index}`;
|
|
39
38
|
return buildChild(surface, template?.componentId ?? '', dataContextPath, itemPath, key);
|
|
40
39
|
});
|
|
41
|
-
return (
|
|
40
|
+
return (<view className={`column alignment-${align} distribution-${justify}`}>
|
|
41
|
+
{childList.map((item) => {
|
|
42
42
|
if (!item)
|
|
43
43
|
return null;
|
|
44
44
|
const weight = item.component.weight;
|
|
45
45
|
if (typeof weight === 'number' && weight > 0) {
|
|
46
|
-
return (
|
|
46
|
+
return (<view key={item.key} className={`column-weighted-item column-weighted-item-${weight}`} style={{ flex: `${weight} ${weight} 0`, minHeight: 0 }}>
|
|
47
|
+
<NodeRenderer component={item.component} surface={surface}/>
|
|
48
|
+
</view>);
|
|
47
49
|
}
|
|
48
|
-
return (
|
|
49
|
-
})
|
|
50
|
+
return (<NodeRenderer key={item.key} component={item.component} surface={surface}/>);
|
|
51
|
+
})}
|
|
52
|
+
</view>);
|
|
50
53
|
}
|
|
51
|
-
//# sourceMappingURL=index.
|
|
54
|
+
//# sourceMappingURL=index.jsx.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.
|
|
1
|
+
{"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../../src/catalog/Column/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
// Copyright 2026 The Lynx Authors. All rights reserved.
|
|
2
|
+
// Licensed under the Apache License Version 2.0 that can be found in the
|
|
3
|
+
// LICENSE file in the root directory of this source tree.
|
|
4
|
+
import { DialogBackdrop, DialogContent, DialogRoot, DialogView, } from '@lynx-js/lynx-ui';
|
|
5
|
+
import { useEffect, useState } from '@lynx-js/react';
|
|
6
|
+
import { addMonths, buildDateTimeMonthPage, dateTimePartsToDate, formatDateTimeInputValue, getDateTimeInputPlaceholder, getDefaultDateTimeParts, getWeekdayLabels, incrementDateTimePart, isDateTimeAfterMax, isDateTimeBeforeMin, normalizeDateTimeInputLabel, normalizeDateTimeInputMode, normalizeDateTimeInputValue, startOfMonth, withDate, } from './utils.js';
|
|
7
|
+
import { useChecks } from '../../react/useChecks.js';
|
|
8
|
+
import '../../../styles/catalog/DateTimeInput.css';
|
|
9
|
+
const MONTH_LABELS = [
|
|
10
|
+
'January',
|
|
11
|
+
'February',
|
|
12
|
+
'March',
|
|
13
|
+
'April',
|
|
14
|
+
'May',
|
|
15
|
+
'June',
|
|
16
|
+
'July',
|
|
17
|
+
'August',
|
|
18
|
+
'September',
|
|
19
|
+
'October',
|
|
20
|
+
'November',
|
|
21
|
+
'December',
|
|
22
|
+
];
|
|
23
|
+
function formatMonthCaption(month) {
|
|
24
|
+
return `${MONTH_LABELS[month.getMonth()]} ${month.getFullYear()}`;
|
|
25
|
+
}
|
|
26
|
+
function joinClassNames(values) {
|
|
27
|
+
return values.filter(Boolean).join(' ');
|
|
28
|
+
}
|
|
29
|
+
function getPartsKey(parts) {
|
|
30
|
+
return parts
|
|
31
|
+
? formatDateTimeInputValue(parts, 'YYYY-MM-DD HH:mm', { enableDate: true, enableTime: true })
|
|
32
|
+
: '';
|
|
33
|
+
}
|
|
34
|
+
export function DateTimeInput(props) {
|
|
35
|
+
const { dataContextPath, id, label, max, min, outputFormat, setValue, surface, } = props;
|
|
36
|
+
const mode = normalizeDateTimeInputMode(props.enableDate, props.enableTime);
|
|
37
|
+
const valueParts = normalizeDateTimeInputValue(props.value);
|
|
38
|
+
const minParts = normalizeDateTimeInputValue(min);
|
|
39
|
+
const maxParts = normalizeDateTimeInputValue(max);
|
|
40
|
+
const valueKey = getPartsKey(valueParts);
|
|
41
|
+
const initialParts = valueParts ?? getDefaultDateTimeParts();
|
|
42
|
+
const [open, setOpen] = useState(false);
|
|
43
|
+
const [draftParts, setDraftParts] = useState(initialParts);
|
|
44
|
+
const [visibleMonth, setVisibleMonth] = useState(startOfMonth(dateTimePartsToDate(initialParts)));
|
|
45
|
+
const checks = props.checks;
|
|
46
|
+
const { ok, firstFailureMessage } = useChecks({
|
|
47
|
+
checks,
|
|
48
|
+
componentId: id ?? '',
|
|
49
|
+
surface,
|
|
50
|
+
dataContextPath,
|
|
51
|
+
});
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
if (open)
|
|
54
|
+
return undefined;
|
|
55
|
+
const nextParts = valueParts ?? getDefaultDateTimeParts();
|
|
56
|
+
setDraftParts(nextParts);
|
|
57
|
+
setVisibleMonth(startOfMonth(dateTimePartsToDate(nextParts)));
|
|
58
|
+
return undefined;
|
|
59
|
+
}, [open, valueKey]);
|
|
60
|
+
const minDate = minParts ? dateTimePartsToDate(minParts) : null;
|
|
61
|
+
const maxDate = maxParts ? dateTimePartsToDate(maxParts) : null;
|
|
62
|
+
const draftDate = dateTimePartsToDate(draftParts);
|
|
63
|
+
const monthPage = buildDateTimeMonthPage({
|
|
64
|
+
month: visibleMonth,
|
|
65
|
+
selectedDate: draftDate,
|
|
66
|
+
today: new Date(),
|
|
67
|
+
minDate,
|
|
68
|
+
maxDate,
|
|
69
|
+
});
|
|
70
|
+
const weekdayLabels = getWeekdayLabels();
|
|
71
|
+
const draftOutOfRange = isDateTimeBeforeMin(draftParts, minParts)
|
|
72
|
+
|| isDateTimeAfterMax(draftParts, maxParts);
|
|
73
|
+
const currentOutOfRange = valueParts
|
|
74
|
+
? isDateTimeBeforeMin(valueParts, minParts)
|
|
75
|
+
|| isDateTimeAfterMax(valueParts, maxParts)
|
|
76
|
+
: false;
|
|
77
|
+
const invalid = !ok || currentOutOfRange;
|
|
78
|
+
const labelText = normalizeDateTimeInputLabel(label);
|
|
79
|
+
const displayValue = valueParts
|
|
80
|
+
? formatDateTimeInputValue(valueParts, outputFormat, mode)
|
|
81
|
+
: getDateTimeInputPlaceholder(mode);
|
|
82
|
+
const handleOpen = () => {
|
|
83
|
+
const nextParts = valueParts ?? draftParts ?? getDefaultDateTimeParts();
|
|
84
|
+
setDraftParts(nextParts);
|
|
85
|
+
setVisibleMonth(startOfMonth(dateTimePartsToDate(nextParts)));
|
|
86
|
+
setOpen(true);
|
|
87
|
+
};
|
|
88
|
+
const handleCancel = () => {
|
|
89
|
+
setOpen(false);
|
|
90
|
+
};
|
|
91
|
+
const handleConfirm = () => {
|
|
92
|
+
if (draftOutOfRange)
|
|
93
|
+
return;
|
|
94
|
+
setValue?.('value', formatDateTimeInputValue(draftParts, outputFormat, mode));
|
|
95
|
+
setOpen(false);
|
|
96
|
+
};
|
|
97
|
+
const handlePreviousMonth = () => {
|
|
98
|
+
setVisibleMonth(addMonths(visibleMonth, -1));
|
|
99
|
+
};
|
|
100
|
+
const handleNextMonth = () => {
|
|
101
|
+
setVisibleMonth(addMonths(visibleMonth, 1));
|
|
102
|
+
};
|
|
103
|
+
const handleTimeStep = (part, delta) => {
|
|
104
|
+
setDraftParts((current) => incrementDateTimePart(current, part, delta));
|
|
105
|
+
};
|
|
106
|
+
const rootClassName = joinClassNames([
|
|
107
|
+
'datetime-input',
|
|
108
|
+
invalid && 'datetime-input-invalid',
|
|
109
|
+
]);
|
|
110
|
+
return (<view key={id} className={rootClassName}>
|
|
111
|
+
{labelText
|
|
112
|
+
? <text className='datetime-input-label'>{labelText}</text>
|
|
113
|
+
: null}
|
|
114
|
+
<view className={joinClassNames([
|
|
115
|
+
'datetime-input-control',
|
|
116
|
+
!valueParts && 'datetime-input-control-placeholder',
|
|
117
|
+
])} bindtap={handleOpen} event-through={false}>
|
|
118
|
+
<text className='datetime-input-value'>{displayValue}</text>
|
|
119
|
+
<text className='datetime-input-icon'>calendar_today</text>
|
|
120
|
+
</view>
|
|
121
|
+
{invalid && firstFailureMessage
|
|
122
|
+
? <text className='datetime-input-error'>{firstFailureMessage}</text>
|
|
123
|
+
: null}
|
|
124
|
+
{currentOutOfRange
|
|
125
|
+
? <text className='datetime-input-error'>Date is out of range</text>
|
|
126
|
+
: null}
|
|
127
|
+
|
|
128
|
+
<DialogRoot show={open} onShowChange={(nextOpen) => {
|
|
129
|
+
setOpen(nextOpen);
|
|
130
|
+
}}>
|
|
131
|
+
<DialogView className='datetime-dialog-view' overlayLevel={4}>
|
|
132
|
+
<DialogBackdrop className='datetime-dialog-backdrop' clickToClose={true} transition={true}/>
|
|
133
|
+
<DialogContent className='datetime-dialog-content' transition={true}>
|
|
134
|
+
{mode.enableDate
|
|
135
|
+
? (<view className='datetime-calendar'>
|
|
136
|
+
<view className='datetime-calendar-header'>
|
|
137
|
+
<view className='datetime-calendar-nav' bindtap={handlePreviousMonth} event-through={false}>
|
|
138
|
+
<text className='datetime-calendar-nav-icon'>
|
|
139
|
+
chevron_left
|
|
140
|
+
</text>
|
|
141
|
+
</view>
|
|
142
|
+
<text className='datetime-calendar-caption'>
|
|
143
|
+
{formatMonthCaption(visibleMonth)}
|
|
144
|
+
</text>
|
|
145
|
+
<view className='datetime-calendar-nav' bindtap={handleNextMonth} event-through={false}>
|
|
146
|
+
<text className='datetime-calendar-nav-icon'>
|
|
147
|
+
chevron_right
|
|
148
|
+
</text>
|
|
149
|
+
</view>
|
|
150
|
+
</view>
|
|
151
|
+
|
|
152
|
+
<view className='datetime-weekdays'>
|
|
153
|
+
{weekdayLabels.map((weekday, weekdayIndex) => (<view key={weekdayIndex} className='datetime-weekday'>
|
|
154
|
+
<text className='datetime-weekday-text'>
|
|
155
|
+
{weekday}
|
|
156
|
+
</text>
|
|
157
|
+
</view>))}
|
|
158
|
+
</view>
|
|
159
|
+
|
|
160
|
+
<view className='datetime-month'>
|
|
161
|
+
{monthPage.days.map((day, dayIndex) => (<view key={dayIndex} className={joinClassNames([
|
|
162
|
+
'datetime-day',
|
|
163
|
+
day.outside && 'datetime-day-outside',
|
|
164
|
+
day.selected && 'datetime-day-selected',
|
|
165
|
+
day.today && 'datetime-day-today',
|
|
166
|
+
day.disabled && 'datetime-day-disabled',
|
|
167
|
+
])} bindtap={() => {
|
|
168
|
+
if (day.disabled)
|
|
169
|
+
return;
|
|
170
|
+
setDraftParts((current) => withDate(current, day.date));
|
|
171
|
+
if (day.outside) {
|
|
172
|
+
setVisibleMonth(startOfMonth(day.date));
|
|
173
|
+
}
|
|
174
|
+
}} event-through={false}>
|
|
175
|
+
<text className='datetime-day-text'>
|
|
176
|
+
{String(day.day)}
|
|
177
|
+
</text>
|
|
178
|
+
</view>))}
|
|
179
|
+
</view>
|
|
180
|
+
</view>)
|
|
181
|
+
: null}
|
|
182
|
+
|
|
183
|
+
{mode.enableTime
|
|
184
|
+
? (<view className='datetime-time'>
|
|
185
|
+
<text className='datetime-time-label'>Time</text>
|
|
186
|
+
<view className='datetime-time-fields'>
|
|
187
|
+
<view className='datetime-time-field'>
|
|
188
|
+
<view className='datetime-time-stepper' bindtap={() => handleTimeStep('hour', 1)} event-through={false}>
|
|
189
|
+
<text className='datetime-time-stepper-icon'>
|
|
190
|
+
expand_less
|
|
191
|
+
</text>
|
|
192
|
+
</view>
|
|
193
|
+
<text className='datetime-time-value'>
|
|
194
|
+
{String(draftParts.hour).padStart(2, '0')}
|
|
195
|
+
</text>
|
|
196
|
+
<view className='datetime-time-stepper' bindtap={() => handleTimeStep('hour', -1)} event-through={false}>
|
|
197
|
+
<text className='datetime-time-stepper-icon'>
|
|
198
|
+
expand_more
|
|
199
|
+
</text>
|
|
200
|
+
</view>
|
|
201
|
+
</view>
|
|
202
|
+
<text className='datetime-time-separator'>:</text>
|
|
203
|
+
<view className='datetime-time-field'>
|
|
204
|
+
<view className='datetime-time-stepper' bindtap={() => handleTimeStep('minute', 1)} event-through={false}>
|
|
205
|
+
<text className='datetime-time-stepper-icon'>
|
|
206
|
+
expand_less
|
|
207
|
+
</text>
|
|
208
|
+
</view>
|
|
209
|
+
<text className='datetime-time-value'>
|
|
210
|
+
{String(draftParts.minute).padStart(2, '0')}
|
|
211
|
+
</text>
|
|
212
|
+
<view className='datetime-time-stepper' bindtap={() => handleTimeStep('minute', -1)} event-through={false}>
|
|
213
|
+
<text className='datetime-time-stepper-icon'>
|
|
214
|
+
expand_more
|
|
215
|
+
</text>
|
|
216
|
+
</view>
|
|
217
|
+
</view>
|
|
218
|
+
</view>
|
|
219
|
+
</view>)
|
|
220
|
+
: null}
|
|
221
|
+
|
|
222
|
+
{draftOutOfRange
|
|
223
|
+
? (<text className='datetime-dialog-error'>
|
|
224
|
+
Date is out of range
|
|
225
|
+
</text>)
|
|
226
|
+
: null}
|
|
227
|
+
|
|
228
|
+
<view className='datetime-dialog-actions'>
|
|
229
|
+
<view className='datetime-dialog-button datetime-dialog-button-secondary' bindtap={handleCancel} event-through={false}>
|
|
230
|
+
<text className='datetime-dialog-button-text-secondary'>
|
|
231
|
+
Cancel
|
|
232
|
+
</text>
|
|
233
|
+
</view>
|
|
234
|
+
<view className={joinClassNames([
|
|
235
|
+
'datetime-dialog-button',
|
|
236
|
+
'datetime-dialog-button-primary',
|
|
237
|
+
draftOutOfRange && 'datetime-dialog-button-disabled',
|
|
238
|
+
])} bindtap={handleConfirm} event-through={false}>
|
|
239
|
+
<text className='datetime-dialog-button-text-primary'>
|
|
240
|
+
Done
|
|
241
|
+
</text>
|
|
242
|
+
</view>
|
|
243
|
+
</view>
|
|
244
|
+
</DialogContent>
|
|
245
|
+
</DialogView>
|
|
246
|
+
</DialogRoot>
|
|
247
|
+
</view>);
|
|
248
|
+
}
|
|
249
|
+
//# sourceMappingURL=index.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../../src/catalog/DateTimeInput/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,5 @@ export declare function normalizeDateTimeInputMode(enableDate: unknown, enableTi
|
|
|
48
48
|
export declare function normalizeDateTimeInputLabel(value: unknown): string;
|
|
49
49
|
export declare function formatDateTimeInputValue(parts: DateTimeParts, outputFormat: unknown, mode: DateTimeInputMode): string;
|
|
50
50
|
export declare function getDateTimeInputPlaceholder(mode: DateTimeInputMode): string;
|
|
51
|
-
export declare function getDateTimeDialogTitle(label: string, mode: DateTimeInputMode): string;
|
|
52
51
|
export declare function withDate(parts: DateTimeParts, date: Date): DateTimeParts;
|
|
53
52
|
export declare function incrementDateTimePart(parts: DateTimeParts, part: 'hour' | 'minute', delta: number): DateTimeParts;
|