@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.
Files changed (236) hide show
  1. package/README.md +5 -9
  2. package/a2ui/AGENTS.md +167 -0
  3. package/a2ui/README.md +76 -780
  4. package/a2ui/README_zh.md +103 -0
  5. package/a2ui/dist/catalog/Button/{index.js → index.jsx} +12 -8
  6. package/a2ui/dist/catalog/Button/index.jsx.map +1 -0
  7. package/a2ui/dist/catalog/Card/{index.js → index.jsx} +5 -4
  8. package/a2ui/dist/catalog/Card/index.jsx.map +1 -0
  9. package/a2ui/dist/catalog/CheckBox/{index.js → index.jsx} +11 -6
  10. package/a2ui/dist/catalog/CheckBox/index.jsx.map +1 -0
  11. package/a2ui/dist/catalog/ChoicePicker/index.jsx +98 -0
  12. package/a2ui/dist/catalog/ChoicePicker/index.jsx.map +1 -0
  13. package/a2ui/dist/catalog/Column/{index.js → index.jsx} +10 -7
  14. package/a2ui/dist/catalog/Column/{index.js.map → index.jsx.map} +1 -1
  15. package/a2ui/dist/catalog/DateTimeInput/index.jsx +249 -0
  16. package/a2ui/dist/catalog/DateTimeInput/index.jsx.map +1 -0
  17. package/a2ui/dist/catalog/DateTimeInput/utils.d.ts +0 -1
  18. package/a2ui/dist/catalog/DateTimeInput/utils.js +0 -3
  19. package/a2ui/dist/catalog/DateTimeInput/utils.js.map +1 -1
  20. package/a2ui/dist/catalog/Divider/index.jsx +7 -0
  21. package/a2ui/dist/catalog/Divider/index.jsx.map +1 -0
  22. package/a2ui/dist/catalog/Icon/{index.js → index.jsx} +4 -3
  23. package/a2ui/dist/catalog/Icon/{index.js.map → index.jsx.map} +1 -1
  24. package/a2ui/dist/catalog/Image/{index.js → index.jsx} +2 -3
  25. package/a2ui/dist/catalog/Image/{index.js.map → index.jsx.map} +1 -1
  26. package/a2ui/dist/catalog/LineChart/{index.js → index.jsx} +50 -13
  27. package/a2ui/dist/catalog/LineChart/{index.js.map → index.jsx.map} +1 -1
  28. package/a2ui/dist/catalog/List/{index.js → index.jsx} +9 -6
  29. package/a2ui/dist/catalog/List/{index.js.map → index.jsx.map} +1 -1
  30. package/a2ui/dist/catalog/Loading/catalog.json +15 -0
  31. package/a2ui/dist/catalog/Loading/index.d.ts +10 -0
  32. package/a2ui/dist/catalog/Loading/index.jsx +11 -0
  33. package/a2ui/dist/catalog/Loading/index.jsx.map +1 -0
  34. package/a2ui/dist/catalog/Modal/{index.js → index.jsx} +18 -9
  35. package/a2ui/dist/catalog/Modal/index.jsx.map +1 -0
  36. package/a2ui/dist/catalog/PieChart/{index.js → index.jsx} +41 -15
  37. package/a2ui/dist/catalog/PieChart/{index.js.map → index.jsx.map} +1 -1
  38. package/a2ui/dist/catalog/RadioGroup/{index.js → index.jsx} +18 -5
  39. package/a2ui/dist/catalog/RadioGroup/index.jsx.map +1 -0
  40. package/a2ui/dist/catalog/Row/{index.js → index.jsx} +10 -7
  41. package/a2ui/dist/catalog/Row/index.jsx.map +1 -0
  42. package/a2ui/dist/catalog/Slider/{index.js → index.jsx} +22 -7
  43. package/a2ui/dist/catalog/Slider/{index.js.map → index.jsx.map} +1 -1
  44. package/a2ui/dist/catalog/Tabs/index.jsx +40 -0
  45. package/a2ui/dist/catalog/Tabs/index.jsx.map +1 -0
  46. package/a2ui/dist/catalog/Text/catalog.json +6 -2
  47. package/a2ui/dist/catalog/Text/index.d.ts +1 -1
  48. package/a2ui/dist/catalog/Text/index.jsx +16 -0
  49. package/a2ui/dist/catalog/Text/index.jsx.map +1 -0
  50. package/a2ui/dist/catalog/TextField/{index.js → index.jsx} +8 -5
  51. package/a2ui/dist/catalog/TextField/{index.js.map → index.jsx.map} +1 -1
  52. package/a2ui/dist/catalog/defineCatalog.d.ts +0 -4
  53. package/a2ui/dist/catalog/defineCatalog.js.map +1 -1
  54. package/a2ui/dist/catalog/index.d.ts +20 -19
  55. package/a2ui/dist/catalog/index.js +41 -21
  56. package/a2ui/dist/catalog/index.js.map +1 -1
  57. package/a2ui/dist/catalog.json +2548 -0
  58. package/a2ui/dist/index.d.ts +1 -1
  59. package/a2ui/dist/index.js +2 -2
  60. package/a2ui/dist/index.js.map +1 -1
  61. package/a2ui/dist/react/A2UI.d.ts +1 -1
  62. package/a2ui/dist/react/{A2UI.js → A2UI.jsx} +6 -5
  63. package/a2ui/dist/react/{A2UI.js.map → A2UI.jsx.map} +1 -1
  64. package/a2ui/dist/react/{A2UIProvider.js → A2UIProvider.jsx} +2 -3
  65. package/a2ui/dist/react/{A2UIProvider.js.map → A2UIProvider.jsx.map} +1 -1
  66. package/a2ui/dist/react/{A2UIRenderer.js → A2UIRenderer.jsx} +32 -32
  67. package/a2ui/dist/react/A2UIRenderer.jsx.map +1 -0
  68. package/a2ui/dist/react/index.d.ts +3 -3
  69. package/a2ui/dist/react/index.js +2 -2
  70. package/a2ui/dist/react/index.js.map +1 -1
  71. package/a2ui/dist/react/useA2UIContext.d.ts +1 -1
  72. package/a2ui/dist/react/useA2UIContext.js +1 -1
  73. package/a2ui/dist/react/useA2UIContext.js.map +1 -1
  74. package/a2ui/dist/tsconfig.build.tsbuildinfo +1 -1
  75. package/a2ui/docs/catalog-guide.md +401 -0
  76. package/a2ui/docs/catalog-guide_zh.md +373 -0
  77. package/a2ui/docs/overview.md +312 -0
  78. package/a2ui/docs/overview_zh.md +289 -0
  79. package/a2ui/docs/system-prompts.md +187 -0
  80. package/a2ui/docs/system-prompts_zh.md +187 -0
  81. package/a2ui/src/catalog/README.md +12 -0
  82. package/a2ui/src/catalog/index.ts +51 -0
  83. package/a2ui/src/catalog/readme_zh.md +11 -0
  84. package/a2ui/src/index.ts +115 -0
  85. package/a2ui/styles/catalog/Button.css +5 -5
  86. package/a2ui/styles/catalog/DateTimeInput.css +22 -30
  87. package/a2ui/styles/catalog/Loading.css +61 -0
  88. package/a2ui/styles/catalog/Modal.css +1 -0
  89. package/a2ui/styles/catalog/Text.css +2 -6
  90. package/a2ui-catalog-extractor/README.md +14 -7
  91. package/a2ui-catalog-extractor/dist/cli.d.ts +1 -0
  92. package/a2ui-catalog-extractor/dist/cli.js +15 -6
  93. package/a2ui-catalog-extractor/dist/cli.js.map +1 -1
  94. package/a2ui-catalog-extractor/dist/index.d.ts +9 -2
  95. package/a2ui-catalog-extractor/dist/index.js +52 -6
  96. package/a2ui-catalog-extractor/dist/index.js.map +1 -1
  97. package/a2ui-catalog-extractor/dist/tsconfig.build.tsbuildinfo +1 -1
  98. package/a2ui-catalog-extractor/skills/a2ui-catalog-extractor/SKILL.md +1 -1
  99. package/a2ui-prompt/README.md +3 -2
  100. package/a2ui-prompt/dist/index.d.ts +2 -0
  101. package/a2ui-prompt/dist/index.js +259 -184
  102. package/cli/README.md +26 -0
  103. package/cli/bin/cli.js +7 -265
  104. package/cli/dist/a2ui/create.d.ts +5 -0
  105. package/cli/dist/a2ui/create.js +178 -0
  106. package/cli/dist/a2ui/create.js.map +1 -0
  107. package/cli/dist/a2ui/index.d.ts +5 -0
  108. package/cli/dist/a2ui/index.js +170 -0
  109. package/cli/dist/a2ui/index.js.map +1 -0
  110. package/cli/dist/cli.d.ts +4 -0
  111. package/cli/dist/cli.js +40 -0
  112. package/cli/dist/cli.js.map +1 -0
  113. package/cli/dist/openui.d.ts +1 -0
  114. package/cli/dist/openui.js +21 -0
  115. package/cli/dist/openui.js.map +1 -0
  116. package/cli/dist/tsconfig.build.tsbuildinfo +1 -0
  117. package/cli/dist/utils.d.ts +2 -0
  118. package/cli/dist/utils.js +17 -0
  119. package/cli/dist/utils.js.map +1 -0
  120. package/cli/templates/default/lynx.config.ts +13 -0
  121. package/cli/templates/default/package.json +27 -0
  122. package/cli/templates/default/src/App.css +88 -0
  123. package/cli/templates/default/src/App.tsx +100 -0
  124. package/cli/templates/default/src/index.tsx +10 -0
  125. package/cli/templates/default/src/messages.ts +158 -0
  126. package/cli/templates/default/src/rspeedy-env.d.ts +14 -0
  127. package/cli/templates/default/src/tsconfig.json +17 -0
  128. package/cli/templates/default/tsconfig.json +15 -0
  129. package/cli/templates/default/tsconfig.node.json +16 -0
  130. package/dist/tsconfig.build.tsbuildinfo +1 -1
  131. package/openui/README.md +50 -46
  132. package/openui/dist/catalog/Action/{index.js → index.jsx} +1 -1
  133. package/openui/dist/catalog/Action/index.jsx.map +1 -0
  134. package/openui/dist/catalog/Button/index.d.ts +8 -8
  135. package/openui/dist/catalog/Button/{index.js → index.jsx} +28 -14
  136. package/openui/dist/catalog/Button/index.jsx.map +1 -0
  137. package/openui/dist/catalog/Card/index.d.ts +1 -1
  138. package/openui/dist/catalog/Card/{index.js → index.jsx} +5 -4
  139. package/openui/dist/catalog/Card/{index.js.map → index.jsx.map} +1 -1
  140. package/openui/dist/catalog/CardHeader/index.d.ts +1 -1
  141. package/openui/dist/catalog/CardHeader/index.jsx +20 -0
  142. package/openui/dist/catalog/CardHeader/index.jsx.map +1 -0
  143. package/openui/dist/catalog/CheckBox/index.d.ts +16 -0
  144. package/openui/dist/catalog/CheckBox/index.jsx +82 -0
  145. package/openui/dist/catalog/CheckBox/index.jsx.map +1 -0
  146. package/openui/dist/catalog/Icon/index.d.ts +44 -0
  147. package/openui/dist/catalog/Icon/index.jsx +66 -0
  148. package/openui/dist/catalog/Icon/index.jsx.map +1 -0
  149. package/openui/dist/catalog/Image/index.d.ts +19 -0
  150. package/openui/dist/catalog/Image/index.jsx +40 -0
  151. package/openui/dist/catalog/Image/index.jsx.map +1 -0
  152. package/openui/dist/catalog/Loading/index.d.ts +7 -0
  153. package/openui/dist/catalog/Loading/index.jsx +25 -0
  154. package/openui/dist/catalog/Loading/index.jsx.map +1 -0
  155. package/openui/dist/catalog/RadioGroup/index.d.ts +21 -0
  156. package/openui/dist/catalog/RadioGroup/index.jsx +99 -0
  157. package/openui/dist/catalog/RadioGroup/index.jsx.map +1 -0
  158. package/openui/dist/catalog/Separator/index.d.ts +1 -1
  159. package/openui/dist/catalog/Separator/{index.js → index.jsx} +3 -4
  160. package/openui/dist/catalog/Separator/index.jsx.map +1 -0
  161. package/openui/dist/catalog/Slider/index.d.ts +19 -0
  162. package/openui/dist/catalog/Slider/index.jsx +139 -0
  163. package/openui/dist/catalog/Slider/index.jsx.map +1 -0
  164. package/openui/dist/catalog/Stack/index.d.ts +1 -1
  165. package/openui/dist/catalog/Stack/{index.js → index.jsx} +3 -4
  166. package/openui/dist/catalog/Stack/{index.js.map → index.jsx.map} +1 -1
  167. package/openui/dist/catalog/Tag/index.d.ts +1 -1
  168. package/openui/dist/catalog/Tag/{index.js → index.jsx} +5 -4
  169. package/openui/dist/catalog/Tag/index.jsx.map +1 -0
  170. package/openui/dist/catalog/TextContent/index.d.ts +1 -1
  171. package/openui/dist/catalog/TextContent/{index.js → index.jsx} +5 -4
  172. package/openui/dist/catalog/TextContent/{index.js.map → index.jsx.map} +1 -1
  173. package/openui/dist/catalog/TextField/index.d.ts +23 -0
  174. package/openui/dist/catalog/TextField/index.jsx +132 -0
  175. package/openui/dist/catalog/TextField/index.jsx.map +1 -0
  176. package/openui/dist/catalog/index.d.ts +14 -7
  177. package/openui/dist/catalog/index.js +14 -7
  178. package/openui/dist/catalog/index.js.map +1 -1
  179. package/openui/dist/core/context.d.ts +17 -7
  180. package/openui/dist/core/{context.js → context.jsx} +8 -2
  181. package/openui/dist/core/context.jsx.map +1 -0
  182. package/openui/dist/core/createLibrary.d.ts +1 -1
  183. package/openui/dist/core/{createLibrary.js → createLibrary.jsx} +14 -3
  184. package/openui/dist/core/createLibrary.jsx.map +1 -0
  185. package/openui/dist/core/hooks/index.d.ts +1 -0
  186. package/openui/dist/core/hooks/index.js +1 -0
  187. package/openui/dist/core/hooks/index.js.map +1 -1
  188. package/openui/dist/core/hooks/useOpenUIState.d.ts +2 -2
  189. package/openui/dist/core/hooks/useOpenUIState.js +3 -1
  190. package/openui/dist/core/hooks/useOpenUIState.js.map +1 -1
  191. package/openui/dist/core/hooks/useStateField.js +1 -1
  192. package/openui/dist/core/hooks/useStateField.js.map +1 -1
  193. package/openui/dist/core/index.d.ts +13 -7
  194. package/openui/dist/core/index.js +7 -4
  195. package/openui/dist/core/index.js.map +1 -1
  196. package/openui/dist/core/{library.js → library.jsx} +1 -1
  197. package/openui/dist/core/library.jsx.map +1 -0
  198. package/openui/dist/core/renderer.css +527 -0
  199. package/openui/dist/core/renderer.d.ts +31 -4
  200. package/openui/dist/core/renderer.jsx +281 -0
  201. package/openui/dist/core/renderer.jsx.map +1 -0
  202. package/openui/dist/core/runtime/index.d.ts +1 -0
  203. package/openui/dist/core/runtime/index.js +5 -0
  204. package/openui/dist/core/runtime/index.js.map +1 -0
  205. package/openui/dist/core/runtime/reactive.d.ts +7 -0
  206. package/openui/dist/core/runtime/reactive.js +10 -0
  207. package/openui/dist/core/runtime/reactive.js.map +1 -0
  208. package/package.json +18 -8
  209. package/a2ui/dist/catalog/Button/index.js.map +0 -1
  210. package/a2ui/dist/catalog/Card/index.js.map +0 -1
  211. package/a2ui/dist/catalog/CheckBox/index.js.map +0 -1
  212. package/a2ui/dist/catalog/ChoicePicker/index.js +0 -66
  213. package/a2ui/dist/catalog/ChoicePicker/index.js.map +0 -1
  214. package/a2ui/dist/catalog/DateTimeInput/index.js +0 -147
  215. package/a2ui/dist/catalog/DateTimeInput/index.js.map +0 -1
  216. package/a2ui/dist/catalog/Divider/index.js +0 -8
  217. package/a2ui/dist/catalog/Divider/index.js.map +0 -1
  218. package/a2ui/dist/catalog/Modal/index.js.map +0 -1
  219. package/a2ui/dist/catalog/RadioGroup/index.js.map +0 -1
  220. package/a2ui/dist/catalog/Row/index.js.map +0 -1
  221. package/a2ui/dist/catalog/Tabs/index.js +0 -32
  222. package/a2ui/dist/catalog/Tabs/index.js.map +0 -1
  223. package/a2ui/dist/catalog/Text/index.js +0 -27
  224. package/a2ui/dist/catalog/Text/index.js.map +0 -1
  225. package/a2ui/dist/react/A2UIRenderer.js.map +0 -1
  226. package/openui/dist/catalog/Action/index.js.map +0 -1
  227. package/openui/dist/catalog/Button/index.js.map +0 -1
  228. package/openui/dist/catalog/CardHeader/index.js +0 -18
  229. package/openui/dist/catalog/CardHeader/index.js.map +0 -1
  230. package/openui/dist/catalog/Separator/index.js.map +0 -1
  231. package/openui/dist/catalog/Tag/index.js.map +0 -1
  232. package/openui/dist/core/context.js.map +0 -1
  233. package/openui/dist/core/createLibrary.js.map +0 -1
  234. package/openui/dist/core/library.js.map +0 -1
  235. package/openui/dist/core/renderer.js +0 -139
  236. 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.js';
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 (_jsxs(_Fragment, { children: [_jsx("view", { className: `button button-${variant}${isValid ? '' : ' button-disabled'}${ok ? '' : ' button-invalid'}`, bindtap: enabled ? handleClick : undefined, children: childResource
30
- ? _jsx(A2UIRenderer, { resource: childResource })
31
- : _jsx("text", { className: 'button-fallback', children: "Button" }) }), !ok && firstFailureMessage
32
- ? _jsx("text", { className: 'button-error', children: firstFailureMessage })
33
- : null] }));
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.js.map
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.js';
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 (_jsx("view", { className: `card card-${variant} ${weightClass}`.trim(), children: childWithContext && (_jsx(NodeRenderer, { component: childWithContext, surface: surface })) }));
16
+ return (<view className={`card card-${variant} ${weightClass}`.trim()}>
17
+ {childWithContext && (<NodeRenderer component={childWithContext} surface={surface}/>)}
18
+ </view>);
18
19
  }
19
- //# sourceMappingURL=index.js.map
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 (_jsxs("view", { className: `checkbox-row${ok ? '' : ' checkbox-row-invalid'}`, bindtap: handleChange, children: [_jsx("view", { className: `checkbox-input ${value ? 'checkbox-input-checked' : ''}`
20
- .trim(), children: !!value && _jsx("text", { children: "\u2713" }) }), _jsx("text", { className: 'checkbox-label', children: label }), !ok && firstFailureMessage
21
- ? _jsx("text", { className: 'checkbox-error', children: firstFailureMessage })
22
- : null] }, id));
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.js.map
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.js';
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 (_jsx("view", { className: `column alignment-${align} distribution-${justify}`, children: childList.map((item) => {
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 (_jsx("view", { className: `column-weighted-item column-weighted-item-${weight}`, style: { flex: `${weight} ${weight} 0`, minHeight: 0 }, children: _jsx(NodeRenderer, { component: item.component, surface: surface }) }, item.key));
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 (_jsx(NodeRenderer, { component: item.component, surface: surface }, item.key));
49
- }) }));
50
+ return (<NodeRenderer key={item.key} component={item.component} surface={surface}/>);
51
+ })}
52
+ </view>);
50
53
  }
51
- //# sourceMappingURL=index.js.map
54
+ //# sourceMappingURL=index.jsx.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/catalog/Column/index.tsx"],"names":[],"mappings":"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"}
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;