@lynx-js/genui 0.0.1-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +170 -0
  3. package/a2ui/README.md +140 -0
  4. package/a2ui/dist/catalog/Button/catalog.json +156 -0
  5. package/a2ui/dist/catalog/Button/index.d.ts +35 -0
  6. package/a2ui/dist/catalog/Button/index.js +35 -0
  7. package/a2ui/dist/catalog/Button/index.js.map +1 -0
  8. package/a2ui/dist/catalog/Card/catalog.json +24 -0
  9. package/a2ui/dist/catalog/Card/index.d.ts +11 -0
  10. package/a2ui/dist/catalog/Card/index.js +19 -0
  11. package/a2ui/dist/catalog/Card/index.js.map +1 -0
  12. package/a2ui/dist/catalog/CheckBox/catalog.json +170 -0
  13. package/a2ui/dist/catalog/CheckBox/index.d.ts +32 -0
  14. package/a2ui/dist/catalog/CheckBox/index.js +24 -0
  15. package/a2ui/dist/catalog/CheckBox/index.js.map +1 -0
  16. package/a2ui/dist/catalog/Column/catalog.json +57 -0
  17. package/a2ui/dist/catalog/Column/index.d.ts +15 -0
  18. package/a2ui/dist/catalog/Column/index.js +55 -0
  19. package/a2ui/dist/catalog/Column/index.js.map +1 -0
  20. package/a2ui/dist/catalog/Divider/catalog.json +14 -0
  21. package/a2ui/dist/catalog/Divider/index.d.ts +9 -0
  22. package/a2ui/dist/catalog/Divider/index.js +8 -0
  23. package/a2ui/dist/catalog/Divider/index.js.map +1 -0
  24. package/a2ui/dist/catalog/Icon/catalog.json +45 -0
  25. package/a2ui/dist/catalog/Icon/index.d.ts +14 -0
  26. package/a2ui/dist/catalog/Icon/index.js +11 -0
  27. package/a2ui/dist/catalog/Icon/index.js.map +1 -0
  28. package/a2ui/dist/catalog/Image/catalog.json +62 -0
  29. package/a2ui/dist/catalog/Image/index.d.ts +16 -0
  30. package/a2ui/dist/catalog/Image/index.js +30 -0
  31. package/a2ui/dist/catalog/Image/index.js.map +1 -0
  32. package/a2ui/dist/catalog/LineChart/catalog.json +98 -0
  33. package/a2ui/dist/catalog/LineChart/index.d.ts +31 -0
  34. package/a2ui/dist/catalog/LineChart/index.js +195 -0
  35. package/a2ui/dist/catalog/LineChart/index.js.map +1 -0
  36. package/a2ui/dist/catalog/List/catalog.json +52 -0
  37. package/a2ui/dist/catalog/List/index.d.ts +15 -0
  38. package/a2ui/dist/catalog/List/index.js +53 -0
  39. package/a2ui/dist/catalog/List/index.js.map +1 -0
  40. package/a2ui/dist/catalog/Modal/catalog.json +18 -0
  41. package/a2ui/dist/catalog/Modal/index.d.ts +12 -0
  42. package/a2ui/dist/catalog/Modal/index.js +33 -0
  43. package/a2ui/dist/catalog/Modal/index.js.map +1 -0
  44. package/a2ui/dist/catalog/PieChart/catalog.json +87 -0
  45. package/a2ui/dist/catalog/PieChart/index.d.ts +37 -0
  46. package/a2ui/dist/catalog/PieChart/index.js +131 -0
  47. package/a2ui/dist/catalog/PieChart/index.js.map +1 -0
  48. package/a2ui/dist/catalog/RadioGroup/catalog.json +184 -0
  49. package/a2ui/dist/catalog/RadioGroup/index.d.ts +36 -0
  50. package/a2ui/dist/catalog/RadioGroup/index.js +36 -0
  51. package/a2ui/dist/catalog/RadioGroup/index.js.map +1 -0
  52. package/a2ui/dist/catalog/Row/catalog.json +57 -0
  53. package/a2ui/dist/catalog/Row/index.d.ts +15 -0
  54. package/a2ui/dist/catalog/Row/index.js +28 -0
  55. package/a2ui/dist/catalog/Row/index.js.map +1 -0
  56. package/a2ui/dist/catalog/Slider/catalog.json +183 -0
  57. package/a2ui/dist/catalog/Slider/index.d.ts +41 -0
  58. package/a2ui/dist/catalog/Slider/index.js +39 -0
  59. package/a2ui/dist/catalog/Slider/index.js.map +1 -0
  60. package/a2ui/dist/catalog/Slider/utils.d.ts +11 -0
  61. package/a2ui/dist/catalog/Slider/utils.js +58 -0
  62. package/a2ui/dist/catalog/Slider/utils.js.map +1 -0
  63. package/a2ui/dist/catalog/Tabs/catalog.json +28 -0
  64. package/a2ui/dist/catalog/Tabs/index.d.ts +12 -0
  65. package/a2ui/dist/catalog/Tabs/index.js +32 -0
  66. package/a2ui/dist/catalog/Tabs/index.js.map +1 -0
  67. package/a2ui/dist/catalog/Text/catalog.json +74 -0
  68. package/a2ui/dist/catalog/Text/index.d.ts +18 -0
  69. package/a2ui/dist/catalog/Text/index.js +27 -0
  70. package/a2ui/dist/catalog/Text/index.js.map +1 -0
  71. package/a2ui/dist/catalog/TextField/catalog.json +147 -0
  72. package/a2ui/dist/catalog/TextField/index.d.ts +35 -0
  73. package/a2ui/dist/catalog/TextField/index.js +43 -0
  74. package/a2ui/dist/catalog/TextField/index.js.map +1 -0
  75. package/a2ui/dist/catalog/TextField/utils.d.ts +7 -0
  76. package/a2ui/dist/catalog/TextField/utils.js +51 -0
  77. package/a2ui/dist/catalog/TextField/utils.js.map +1 -0
  78. package/a2ui/dist/catalog/defineCatalog.d.ts +119 -0
  79. package/a2ui/dist/catalog/defineCatalog.js +196 -0
  80. package/a2ui/dist/catalog/defineCatalog.js.map +1 -0
  81. package/a2ui/dist/catalog/index.d.ts +20 -0
  82. package/a2ui/dist/catalog/index.js +26 -0
  83. package/a2ui/dist/catalog/index.js.map +1 -0
  84. package/a2ui/dist/catalog/utils/chart.d.ts +3 -0
  85. package/a2ui/dist/catalog/utils/chart.js +28 -0
  86. package/a2ui/dist/catalog/utils/chart.js.map +1 -0
  87. package/a2ui/dist/functions/index.d.ts +19 -0
  88. package/a2ui/dist/functions/index.js +87 -0
  89. package/a2ui/dist/functions/index.js.map +1 -0
  90. package/a2ui/dist/index.d.ts +11 -0
  91. package/a2ui/dist/index.js +35 -0
  92. package/a2ui/dist/index.js.map +1 -0
  93. package/a2ui/dist/react/A2UI.d.ts +77 -0
  94. package/a2ui/dist/react/A2UI.js +159 -0
  95. package/a2ui/dist/react/A2UI.js.map +1 -0
  96. package/a2ui/dist/react/A2UIProvider.d.ts +25 -0
  97. package/a2ui/dist/react/A2UIProvider.js +20 -0
  98. package/a2ui/dist/react/A2UIProvider.js.map +1 -0
  99. package/a2ui/dist/react/A2UIRenderer.d.ts +34 -0
  100. package/a2ui/dist/react/A2UIRenderer.js +161 -0
  101. package/a2ui/dist/react/A2UIRenderer.js.map +1 -0
  102. package/a2ui/dist/react/FormContext.d.ts +10 -0
  103. package/a2ui/dist/react/FormContext.js +12 -0
  104. package/a2ui/dist/react/FormContext.js.map +1 -0
  105. package/a2ui/dist/react/index.d.ts +8 -0
  106. package/a2ui/dist/react/index.js +23 -0
  107. package/a2ui/dist/react/index.js.map +1 -0
  108. package/a2ui/dist/react/useA2UIContext.d.ts +7 -0
  109. package/a2ui/dist/react/useA2UIContext.js +19 -0
  110. package/a2ui/dist/react/useA2UIContext.js.map +1 -0
  111. package/a2ui/dist/react/useAction.d.ts +9 -0
  112. package/a2ui/dist/react/useAction.js +38 -0
  113. package/a2ui/dist/react/useAction.js.map +1 -0
  114. package/a2ui/dist/react/useCatalog.d.ts +7 -0
  115. package/a2ui/dist/react/useCatalog.js +13 -0
  116. package/a2ui/dist/react/useCatalog.js.map +1 -0
  117. package/a2ui/dist/react/useChecks.d.ts +27 -0
  118. package/a2ui/dist/react/useChecks.js +76 -0
  119. package/a2ui/dist/react/useChecks.js.map +1 -0
  120. package/a2ui/dist/react/useDataBinding.d.ts +10 -0
  121. package/a2ui/dist/react/useDataBinding.js +175 -0
  122. package/a2ui/dist/react/useDataBinding.js.map +1 -0
  123. package/a2ui/dist/store/FormController.d.ts +23 -0
  124. package/a2ui/dist/store/FormController.js +40 -0
  125. package/a2ui/dist/store/FormController.js.map +1 -0
  126. package/a2ui/dist/store/FunctionRegistry.d.ts +47 -0
  127. package/a2ui/dist/store/FunctionRegistry.js +23 -0
  128. package/a2ui/dist/store/FunctionRegistry.js.map +1 -0
  129. package/a2ui/dist/store/MessageProcessor.d.ts +28 -0
  130. package/a2ui/dist/store/MessageProcessor.js +408 -0
  131. package/a2ui/dist/store/MessageProcessor.js.map +1 -0
  132. package/a2ui/dist/store/MessageStore.d.ts +38 -0
  133. package/a2ui/dist/store/MessageStore.js +37 -0
  134. package/a2ui/dist/store/MessageStore.js.map +1 -0
  135. package/a2ui/dist/store/Resource.d.ts +45 -0
  136. package/a2ui/dist/store/Resource.js +80 -0
  137. package/a2ui/dist/store/Resource.js.map +1 -0
  138. package/a2ui/dist/store/SignalStore.d.ts +10 -0
  139. package/a2ui/dist/store/SignalStore.js +29 -0
  140. package/a2ui/dist/store/SignalStore.js.map +1 -0
  141. package/a2ui/dist/store/index.d.ts +14 -0
  142. package/a2ui/dist/store/index.js +15 -0
  143. package/a2ui/dist/store/index.js.map +1 -0
  144. package/a2ui/dist/store/payloadNormalizer.d.ts +27 -0
  145. package/a2ui/dist/store/payloadNormalizer.js +179 -0
  146. package/a2ui/dist/store/payloadNormalizer.js.map +1 -0
  147. package/a2ui/dist/store/resolveFunctionCall.d.ts +18 -0
  148. package/a2ui/dist/store/resolveFunctionCall.js +131 -0
  149. package/a2ui/dist/store/resolveFunctionCall.js.map +1 -0
  150. package/a2ui/dist/store/types.d.ts +68 -0
  151. package/a2ui/dist/store/types.js +2 -0
  152. package/a2ui/dist/store/types.js.map +1 -0
  153. package/a2ui/dist/tsconfig.build.tsbuildinfo +1 -0
  154. package/a2ui/styles/catalog/Button.css +83 -0
  155. package/a2ui/styles/catalog/Card.css +49 -0
  156. package/a2ui/styles/catalog/CheckBox.css +46 -0
  157. package/a2ui/styles/catalog/Column.css +89 -0
  158. package/a2ui/styles/catalog/Divider.css +20 -0
  159. package/a2ui/styles/catalog/Icon.css +39 -0
  160. package/a2ui/styles/catalog/Image.css +54 -0
  161. package/a2ui/styles/catalog/LineChart.css +116 -0
  162. package/a2ui/styles/catalog/List.css +38 -0
  163. package/a2ui/styles/catalog/Modal.css +60 -0
  164. package/a2ui/styles/catalog/PieChart.css +109 -0
  165. package/a2ui/styles/catalog/RadioGroup.css +123 -0
  166. package/a2ui/styles/catalog/Row.css +83 -0
  167. package/a2ui/styles/catalog/Slider.css +96 -0
  168. package/a2ui/styles/catalog/Tabs.css +46 -0
  169. package/a2ui/styles/catalog/Text.css +121 -0
  170. package/a2ui/styles/catalog/TextField.css +48 -0
  171. package/a2ui/styles/theme.css +62 -0
  172. package/a2ui-catalog-extractor/README.md +605 -0
  173. package/a2ui-catalog-extractor/bin/a2ui-catalog-extractor.js +6 -0
  174. package/a2ui-catalog-extractor/dist/cli.d.ts +12 -0
  175. package/a2ui-catalog-extractor/dist/cli.js +171 -0
  176. package/a2ui-catalog-extractor/dist/cli.js.map +1 -0
  177. package/a2ui-catalog-extractor/dist/index.d.ts +140 -0
  178. package/a2ui-catalog-extractor/dist/index.js +755 -0
  179. package/a2ui-catalog-extractor/dist/index.js.map +1 -0
  180. package/a2ui-catalog-extractor/dist/tsconfig.build.tsbuildinfo +1 -0
  181. package/a2ui-catalog-extractor/skills/a2ui-catalog-extractor/SKILL.md +30 -0
  182. package/a2ui-prompt/README.md +65 -0
  183. package/a2ui-prompt/dist/index.d.ts +91 -0
  184. package/a2ui-prompt/dist/index.js +767 -0
  185. package/cli/README.md +88 -0
  186. package/cli/bin/cli.js +271 -0
  187. package/dist/index.d.ts +10 -0
  188. package/dist/index.js +10 -0
  189. package/dist/index.js.map +1 -0
  190. package/dist/tsconfig.build.tsbuildinfo +1 -0
  191. package/index.ts +114 -0
  192. package/openui/README.md +211 -0
  193. package/openui/dist/catalog/Action/index.d.ts +20 -0
  194. package/openui/dist/catalog/Action/index.js +23 -0
  195. package/openui/dist/catalog/Action/index.js.map +1 -0
  196. package/openui/dist/catalog/Button/index.d.ts +64 -0
  197. package/openui/dist/catalog/Button/index.js +75 -0
  198. package/openui/dist/catalog/Button/index.js.map +1 -0
  199. package/openui/dist/catalog/Card/index.d.ts +34 -0
  200. package/openui/dist/catalog/Card/index.js +69 -0
  201. package/openui/dist/catalog/Card/index.js.map +1 -0
  202. package/openui/dist/catalog/CardHeader/index.d.ts +5 -0
  203. package/openui/dist/catalog/CardHeader/index.js +18 -0
  204. package/openui/dist/catalog/CardHeader/index.js.map +1 -0
  205. package/openui/dist/catalog/Separator/index.d.ts +2 -0
  206. package/openui/dist/catalog/Separator/index.js +13 -0
  207. package/openui/dist/catalog/Separator/index.js.map +1 -0
  208. package/openui/dist/catalog/Stack/index.d.ts +29 -0
  209. package/openui/dist/catalog/Stack/index.js +61 -0
  210. package/openui/dist/catalog/Stack/index.js.map +1 -0
  211. package/openui/dist/catalog/Tag/index.d.ts +4 -0
  212. package/openui/dist/catalog/Tag/index.js +15 -0
  213. package/openui/dist/catalog/Tag/index.js.map +1 -0
  214. package/openui/dist/catalog/TextContent/index.d.ts +11 -0
  215. package/openui/dist/catalog/TextContent/index.js +33 -0
  216. package/openui/dist/catalog/TextContent/index.js.map +1 -0
  217. package/openui/dist/catalog/index.d.ts +7 -0
  218. package/openui/dist/catalog/index.js +11 -0
  219. package/openui/dist/catalog/index.js.map +1 -0
  220. package/openui/dist/catalog/utils.d.ts +2 -0
  221. package/openui/dist/catalog/utils.js +17 -0
  222. package/openui/dist/catalog/utils.js.map +1 -0
  223. package/openui/dist/core/context.d.ts +112 -0
  224. package/openui/dist/core/context.js +99 -0
  225. package/openui/dist/core/context.js.map +1 -0
  226. package/openui/dist/core/createLibrary.d.ts +10 -0
  227. package/openui/dist/core/createLibrary.js +36 -0
  228. package/openui/dist/core/createLibrary.js.map +1 -0
  229. package/openui/dist/core/hooks/index.d.ts +4 -0
  230. package/openui/dist/core/hooks/index.js +6 -0
  231. package/openui/dist/core/hooks/index.js.map +1 -0
  232. package/openui/dist/core/hooks/useFormValidation.d.ts +13 -0
  233. package/openui/dist/core/hooks/useFormValidation.js +76 -0
  234. package/openui/dist/core/hooks/useFormValidation.js.map +1 -0
  235. package/openui/dist/core/hooks/useOpenUIState.d.ts +33 -0
  236. package/openui/dist/core/hooks/useOpenUIState.js +413 -0
  237. package/openui/dist/core/hooks/useOpenUIState.js.map +1 -0
  238. package/openui/dist/core/hooks/useStateField.d.ts +2 -0
  239. package/openui/dist/core/hooks/useStateField.js +11 -0
  240. package/openui/dist/core/hooks/useStateField.js.map +1 -0
  241. package/openui/dist/core/index.d.ts +7 -0
  242. package/openui/dist/core/index.js +8 -0
  243. package/openui/dist/core/index.js.map +1 -0
  244. package/openui/dist/core/library.d.ts +20 -0
  245. package/openui/dist/core/library.js +13 -0
  246. package/openui/dist/core/library.js.map +1 -0
  247. package/openui/dist/core/renderer.css +271 -0
  248. package/openui/dist/core/renderer.d.ts +9 -0
  249. package/openui/dist/core/renderer.js +139 -0
  250. package/openui/dist/core/renderer.js.map +1 -0
  251. package/openui/dist/core/utils.d.ts +1 -0
  252. package/openui/dist/core/utils.js +76 -0
  253. package/openui/dist/core/utils.js.map +1 -0
  254. package/package.json +120 -0
@@ -0,0 +1,62 @@
1
+ {
2
+ "Image": {
3
+ "properties": {
4
+ "url": {
5
+ "oneOf": [
6
+ {
7
+ "type": "string"
8
+ },
9
+ {
10
+ "type": "object",
11
+ "properties": {
12
+ "path": {
13
+ "type": "string"
14
+ }
15
+ },
16
+ "required": [
17
+ "path"
18
+ ],
19
+ "additionalProperties": false
20
+ }
21
+ ],
22
+ "description": "Image URL or path binding."
23
+ },
24
+ "fit": {
25
+ "type": "string",
26
+ "enum": [
27
+ "contain",
28
+ "cover",
29
+ "fill",
30
+ "none",
31
+ "scale-down"
32
+ ]
33
+ },
34
+ "mode": {
35
+ "type": "string",
36
+ "enum": [
37
+ "center",
38
+ "scaleToFill",
39
+ "aspectFit",
40
+ "aspectFill"
41
+ ]
42
+ },
43
+ "variant": {
44
+ "type": "string",
45
+ "enum": [
46
+ "icon",
47
+ "avatar",
48
+ "smallFeature",
49
+ "mediumFeature",
50
+ "largeFeature",
51
+ "header"
52
+ ]
53
+ },
54
+ "weight": {
55
+ "type": "number"
56
+ }
57
+ },
58
+ "required": [
59
+ "url"
60
+ ]
61
+ }
62
+ }
@@ -0,0 +1,16 @@
1
+ import type { GenericComponentProps } from '../../store/types.js';
2
+ import '../../../styles/catalog/Image.css';
3
+ /**
4
+ * @a2uiCatalog Image
5
+ */
6
+ export interface ImageProps extends GenericComponentProps {
7
+ /** Image URL or path binding. */
8
+ url: string | {
9
+ path: string;
10
+ };
11
+ fit?: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down';
12
+ mode?: 'scaleToFill' | 'aspectFit' | 'aspectFill' | 'center';
13
+ variant?: 'icon' | 'avatar' | 'smallFeature' | 'mediumFeature' | 'largeFeature' | 'header';
14
+ weight?: number;
15
+ }
16
+ export declare function Image(props: ImageProps): import('@lynx-js/react').ReactNode;
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx } from "@lynx-js/react/jsx-runtime";
2
+ // Copyright 2026 The Lynx Authors. All rights reserved.
3
+ // Licensed under the Apache License Version 2.0 that can be found in the
4
+ // LICENSE file in the root directory of this source tree.
5
+ import { useEffect, useState } from '@lynx-js/react';
6
+ import '../../../styles/catalog/Image.css';
7
+ const fallbackImage = 'https://lf3-static.bytednsdoc.com/obj/eden-cn/zalzzh-ukj-lapzild-shpjpmmv-eufs/ljhwZthlaukjlkulzlp/built-in-images/logo.png';
8
+ export function Image(props) {
9
+ const src = props.url;
10
+ const fit = props.fit ?? 'fit';
11
+ const mode = props.mode ?? (() => {
12
+ switch (fit) {
13
+ case 'contain':
14
+ case 'scale-down':
15
+ return 'aspectFit';
16
+ case 'fill':
17
+ return 'scaleToFill';
18
+ case 'none':
19
+ return 'center';
20
+ default:
21
+ return 'aspectFill';
22
+ }
23
+ })();
24
+ const [hasError, setHasError] = useState(false);
25
+ useEffect(() => {
26
+ setHasError(false);
27
+ }, [src]);
28
+ return (_jsx("image", { className: `a2ui-image image-variant-${props.variant ?? 'mediumFeature'} ${typeof props.weight === 'number' ? 'image-weighted' : ''}`, "auto-size": true, src: hasError ? fallbackImage : src, mode: mode, binderror: () => setHasError(true) }, props.id));
29
+ }
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/catalog/Image/index.tsx"],"names":[],"mappings":";AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAC1D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAIrD,OAAO,mCAAmC,CAAC;AAoB3C,MAAM,aAAa,GACjB,6HAA6H,CAAC;AAEhI,MAAM,UAAU,KAAK,CACnB,KAAiB;IAEjB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IACtB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC;IAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE;QAC/B,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,SAAS,CAAC;YACf,KAAK,YAAY;gBACf,OAAO,WAAW,CAAC;YACrB,KAAK,MAAM;gBACT,OAAO,aAAa,CAAC;YACvB,KAAK,MAAM;gBACT,OAAO,QAAQ,CAAC;YAClB;gBACE,OAAO,YAAY,CAAC;QACxB,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhD,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,OAAO,CACL,gBAEE,SAAS,EAAE,4BACT,KAAK,CAAC,OAAO,IAAI,eACnB,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,eACnD,IAAI,EACf,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAa,EAC7C,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAP7B,KAAK,CAAC,EAAE,CAQb,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,98 @@
1
+ {
2
+ "LineChart": {
3
+ "properties": {
4
+ "labels": {
5
+ "oneOf": [
6
+ {
7
+ "type": "array",
8
+ "items": {
9
+ "type": "string"
10
+ }
11
+ },
12
+ {
13
+ "type": "object",
14
+ "properties": {
15
+ "path": {
16
+ "type": "string"
17
+ }
18
+ },
19
+ "required": [
20
+ "path"
21
+ ],
22
+ "additionalProperties": false
23
+ }
24
+ ],
25
+ "description": "Category labels shown along the x axis."
26
+ },
27
+ "series": {
28
+ "oneOf": [
29
+ {
30
+ "type": "array",
31
+ "items": {
32
+ "type": "object",
33
+ "properties": {
34
+ "name": {
35
+ "type": "string"
36
+ },
37
+ "values": {
38
+ "type": "array",
39
+ "items": {
40
+ "type": "number"
41
+ }
42
+ },
43
+ "color": {
44
+ "type": "string"
45
+ }
46
+ },
47
+ "required": [
48
+ "name",
49
+ "values"
50
+ ],
51
+ "additionalProperties": false
52
+ }
53
+ },
54
+ {
55
+ "type": "object",
56
+ "properties": {
57
+ "path": {
58
+ "type": "string"
59
+ }
60
+ },
61
+ "required": [
62
+ "path"
63
+ ],
64
+ "additionalProperties": false
65
+ }
66
+ ],
67
+ "description": "One or more line series to render over the shared labels."
68
+ },
69
+ "variant": {
70
+ "type": "string",
71
+ "enum": [
72
+ "linear",
73
+ "natural",
74
+ "step"
75
+ ]
76
+ },
77
+ "xLabel": {
78
+ "type": "string"
79
+ },
80
+ "yLabel": {
81
+ "type": "string"
82
+ },
83
+ "showGrid": {
84
+ "type": "boolean"
85
+ },
86
+ "showLegend": {
87
+ "type": "boolean"
88
+ },
89
+ "height": {
90
+ "type": "number"
91
+ }
92
+ },
93
+ "required": [
94
+ "labels",
95
+ "series"
96
+ ]
97
+ }
98
+ }
@@ -0,0 +1,31 @@
1
+ import type { GenericComponentProps } from '../../store/types.js';
2
+ import '../../../styles/catalog/LineChart.css';
3
+ export interface LineChartSeries {
4
+ name: string;
5
+ values: number[];
6
+ color?: string;
7
+ }
8
+ /**
9
+ * @a2uiCatalog LineChart
10
+ */
11
+ export interface LineChartProps extends GenericComponentProps {
12
+ /** Category labels shown along the x axis. */
13
+ labels: string[] | {
14
+ path: string;
15
+ };
16
+ /** One or more line series to render over the shared labels. */
17
+ series: Array<{
18
+ name: string;
19
+ values: number[];
20
+ color?: string;
21
+ }> | {
22
+ path: string;
23
+ };
24
+ variant?: 'linear' | 'natural' | 'step';
25
+ xLabel?: string;
26
+ yLabel?: string;
27
+ showGrid?: boolean;
28
+ showLegend?: boolean;
29
+ height?: number;
30
+ }
31
+ export declare function LineChart(props: LineChartProps): import('@lynx-js/react').ReactNode;
@@ -0,0 +1,195 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@lynx-js/react/jsx-runtime";
2
+ // Copyright 2026 The Lynx Authors. All rights reserved.
3
+ // Licensed under the Apache License Version 2.0 that can be found in the
4
+ // LICENSE file in the root directory of this source tree.
5
+ import { useResolvedProps } from '../../react/useDataBinding.js';
6
+ import { DEFAULT_CHART_COLORS, escapeXml, formatValue, } from '../utils/chart.js';
7
+ import '../../../styles/catalog/LineChart.css';
8
+ const SVG_WIDTH = 360;
9
+ const DEFAULT_HEIGHT = 240;
10
+ const MARGIN = { top: 16, right: 16, bottom: 24, left: 16 };
11
+ function normalizeSeries(series, palette) {
12
+ return series.map((item, index) => ({
13
+ name: item.name,
14
+ values: item.values,
15
+ color: item.color ?? palette[index % palette.length] ?? '#0057d9',
16
+ }));
17
+ }
18
+ function buildLinearPath(points) {
19
+ if (points.length === 0)
20
+ return '';
21
+ const first = points[0];
22
+ const rest = points.slice(1);
23
+ let path = `M ${first.x.toFixed(1)} ${first.y.toFixed(1)}`;
24
+ for (const point of rest) {
25
+ path += ` L ${point.x.toFixed(1)} ${point.y.toFixed(1)}`;
26
+ }
27
+ return path;
28
+ }
29
+ function buildStepPath(points) {
30
+ if (points.length === 0)
31
+ return '';
32
+ const first = points[0];
33
+ const rest = points.slice(1);
34
+ let path = `M ${first.x.toFixed(1)} ${first.y.toFixed(1)}`;
35
+ let prev = first;
36
+ for (const point of rest) {
37
+ path += ` L ${point.x.toFixed(1)} ${prev.y.toFixed(1)}`;
38
+ path += ` L ${point.x.toFixed(1)} ${point.y.toFixed(1)}`;
39
+ prev = point;
40
+ }
41
+ return path;
42
+ }
43
+ function buildNaturalPath(points) {
44
+ if (points.length === 0)
45
+ return '';
46
+ if (points.length === 1) {
47
+ const point = points[0];
48
+ return `M ${point.x.toFixed(1)} ${point.y.toFixed(1)}`;
49
+ }
50
+ let path = `M ${points[0].x.toFixed(1)} ${points[0].y.toFixed(1)}`;
51
+ for (let index = 0; index < points.length - 1; index += 1) {
52
+ const p0 = points[index - 1] ?? points[index];
53
+ const p1 = points[index];
54
+ const p2 = points[index + 1];
55
+ const p3 = points[index + 2] ?? p2;
56
+ const cp1x = p1.x + (p2.x - p0.x) / 6;
57
+ const cp1y = p1.y + (p2.y - p0.y) / 6;
58
+ const cp2x = p2.x - (p3.x - p1.x) / 6;
59
+ const cp2y = p2.y - (p3.y - p1.y) / 6;
60
+ path += ` C ${cp1x.toFixed(1)} ${cp1y.toFixed(1)}, ${cp2x.toFixed(1)} ${cp2y.toFixed(1)}, ${p2.x.toFixed(1)} ${p2.y.toFixed(1)}`;
61
+ }
62
+ return path;
63
+ }
64
+ function buildPath(points, variant) {
65
+ switch (variant) {
66
+ case 'step':
67
+ return buildStepPath(points);
68
+ case 'natural':
69
+ return buildNaturalPath(points);
70
+ default:
71
+ return buildLinearPath(points);
72
+ }
73
+ }
74
+ function sampleIndices(count, maxLabels) {
75
+ if (count <= 0)
76
+ return [];
77
+ if (count <= maxLabels) {
78
+ return Array.from({ length: count }, (_, index) => index);
79
+ }
80
+ const step = Math.ceil(count / maxLabels);
81
+ const indices = [];
82
+ for (let index = 0; index < count; index += step) {
83
+ indices.push(index);
84
+ }
85
+ const last = count - 1;
86
+ if (indices[indices.length - 1] !== last) {
87
+ indices.push(last);
88
+ }
89
+ return Array.from(new Set(indices));
90
+ }
91
+ function minMax(values) {
92
+ if (values.length === 0) {
93
+ return { min: 0, max: 1 };
94
+ }
95
+ let min = values[0];
96
+ let max = values[0];
97
+ for (const value of values) {
98
+ if (value < min)
99
+ min = value;
100
+ if (value > max)
101
+ max = value;
102
+ }
103
+ if (min === max) {
104
+ min -= 1;
105
+ max += 1;
106
+ }
107
+ return { min, max };
108
+ }
109
+ function buildSvgMarkup(labels, series, variant, showGrid) {
110
+ const width = SVG_WIDTH;
111
+ const height = DEFAULT_HEIGHT;
112
+ const chartWidth = width - MARGIN.left - MARGIN.right;
113
+ const chartHeight = height - MARGIN.top - MARGIN.bottom;
114
+ const maxPoints = labels.length;
115
+ const values = series.flatMap((item) => item.values.slice(0, maxPoints));
116
+ if (maxPoints === 0 || series.length === 0 || values.length === 0) {
117
+ return `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${width} ${height}"></svg>`;
118
+ }
119
+ const { min: minValue, max: maxValue } = minMax(values);
120
+ const yRange = maxValue - minValue;
121
+ const xStep = maxPoints > 1 ? chartWidth / (maxPoints - 1) : 0;
122
+ const gridLines = 4;
123
+ const lineMarkup = series
124
+ .map((item, seriesIndex) => {
125
+ const points = item.values.slice(0, maxPoints).map((value, index) => {
126
+ const x = MARGIN.left + xStep * index;
127
+ const y = MARGIN.top + chartHeight
128
+ - ((value - minValue) / yRange) * chartHeight;
129
+ return { x, y };
130
+ });
131
+ const color = escapeXml(item.color
132
+ ?? DEFAULT_CHART_COLORS[seriesIndex % DEFAULT_CHART_COLORS.length]
133
+ ?? '#0057d9');
134
+ const d = buildPath(points, variant);
135
+ const circles = points
136
+ .map((point) => `<circle cx="${point.x.toFixed(1)}" cy="${point.y.toFixed(1)}" r="3.5" fill="${color}" stroke="#ffffff" stroke-width="1.5" />`)
137
+ .join('');
138
+ return `
139
+ <path d="${d}" fill="none" stroke="${color}" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" />
140
+ ${circles}
141
+ `;
142
+ })
143
+ .join('');
144
+ const gridMarkup = showGrid
145
+ ? Array.from({ length: gridLines + 1 }, (_, index) => {
146
+ const ratio = index / gridLines;
147
+ const y = MARGIN.top + chartHeight - ratio * chartHeight;
148
+ const dashed = index === gridLines ? '' : ' stroke-dasharray="4 6"';
149
+ return `<line x1="${MARGIN.left}" y1="${y.toFixed(1)}" x2="${width - MARGIN.right}" y2="${y.toFixed(1)}" stroke="rgba(0,0,0,0.12)" stroke-width="1"${dashed} />`;
150
+ }).join('')
151
+ : '';
152
+ return `
153
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${width} ${height}">
154
+ <rect x="0" y="0" width="${width}" height="${height}" rx="16" fill="rgba(255,255,255,0.02)" />
155
+ ${gridMarkup}
156
+ <line x1="${MARGIN.left}" y1="${height - MARGIN.bottom}" x2="${width - MARGIN.right}" y2="${height - MARGIN.bottom}" stroke="rgba(0,0,0,0.24)" stroke-width="1.5" />
157
+ ${lineMarkup}
158
+ </svg>
159
+ `;
160
+ }
161
+ export function LineChart(props) {
162
+ const [resolvedProps] = useResolvedProps(props, props.surface, props.dataContextPath);
163
+ const id = props.id;
164
+ const labelsValue = resolvedProps['labels'];
165
+ const labels = Array.isArray(labelsValue)
166
+ ? labelsValue
167
+ : [];
168
+ const seriesValue = resolvedProps['series'];
169
+ const series = Array.isArray(seriesValue)
170
+ ? normalizeSeries(seriesValue, DEFAULT_CHART_COLORS)
171
+ : [];
172
+ const variant = resolvedProps['variant']
173
+ ?? 'natural';
174
+ const showGrid = resolvedProps['showGrid'] !== false;
175
+ const showLegend = resolvedProps['showLegend'] !== false;
176
+ const heightValue = resolvedProps['height'];
177
+ const height = typeof heightValue === 'number'
178
+ ? heightValue
179
+ : DEFAULT_HEIGHT;
180
+ const svgMarkup = buildSvgMarkup(labels, series, variant, showGrid);
181
+ const visibleLabelIndices = sampleIndices(labels.length, 8);
182
+ const { min, max } = minMax(series.flatMap((item) => item.values.slice(0, labels.length)));
183
+ return (_jsxs("view", { className: 'line-chart', children: [_jsxs("view", { className: 'line-chart-header', children: [_jsxs("view", { className: 'line-chart-header-copy', children: [_jsx("text", { className: 'line-chart-title', children: resolvedProps['yLabel'] ?? 'Line chart' }), _jsx("text", { className: 'line-chart-caption', children: series.length > 0
184
+ ? `${series.length} series • ${labels.length} points`
185
+ : 'No data' })] }), resolvedProps['xLabel']
186
+ ? (_jsx("text", { className: 'line-chart-axis-label', children: resolvedProps['xLabel'] }))
187
+ : null] }), _jsxs("view", { className: 'line-chart-scale-row', children: [_jsx("text", { className: 'line-chart-scale-value', children: formatValue(min) }), _jsx("text", { className: 'line-chart-scale-value line-chart-scale-value-right', children: formatValue(max) })] }), _jsx("svg", { className: 'line-chart-svg', content: svgMarkup, style: { width: '100%', height: `${height}px` } }), _jsx("view", { className: 'line-chart-axis-row', children: visibleLabelIndices.map((index) => (_jsx("view", { className: 'line-chart-axis-tick', children: _jsx("text", { className: 'line-chart-axis-tick-label', children: labels[index] ?? '' }) }, `${index}-${labels[index] ?? index}`))) }), showLegend
188
+ ? (_jsx("view", { className: 'line-chart-legend', children: series.map((item, index) => (_jsxs("view", { className: 'line-chart-legend-item', children: [_jsx("view", { className: 'line-chart-legend-swatch', style: {
189
+ backgroundColor: item.color
190
+ ?? DEFAULT_CHART_COLORS[index % DEFAULT_CHART_COLORS.length]
191
+ ?? '#0057d9',
192
+ } }), _jsx("text", { className: 'line-chart-legend-label', children: item.name })] }, item.name))) }))
193
+ : null] }, id));
194
+ }
195
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/catalog/LineChart/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ {
2
+ "List": {
3
+ "properties": {
4
+ "children": {
5
+ "oneOf": [
6
+ {
7
+ "type": "array",
8
+ "items": {
9
+ "type": "string"
10
+ }
11
+ },
12
+ {
13
+ "type": "object",
14
+ "properties": {
15
+ "componentId": {
16
+ "type": "string"
17
+ },
18
+ "path": {
19
+ "type": "string"
20
+ }
21
+ },
22
+ "required": [
23
+ "componentId",
24
+ "path"
25
+ ],
26
+ "additionalProperties": false
27
+ }
28
+ ],
29
+ "description": "Static child IDs array or template object."
30
+ },
31
+ "direction": {
32
+ "type": "string",
33
+ "enum": [
34
+ "horizontal",
35
+ "vertical"
36
+ ]
37
+ },
38
+ "align": {
39
+ "type": "string",
40
+ "enum": [
41
+ "start",
42
+ "center",
43
+ "end",
44
+ "stretch"
45
+ ]
46
+ }
47
+ },
48
+ "required": [
49
+ "children"
50
+ ]
51
+ }
52
+ }
@@ -0,0 +1,15 @@
1
+ import type { GenericComponentProps } from '../../store/types.js';
2
+ import '../../../styles/catalog/List.css';
3
+ /**
4
+ * @a2uiCatalog List
5
+ */
6
+ export interface ListProps extends GenericComponentProps {
7
+ /** Static child IDs array or template object. */
8
+ children: string[] | {
9
+ componentId: string;
10
+ path: string;
11
+ };
12
+ direction?: 'horizontal' | 'vertical';
13
+ align?: 'start' | 'center' | 'end' | 'stretch';
14
+ }
15
+ export declare function List(props: ListProps): import('@lynx-js/react').ReactNode;
@@ -0,0 +1,53 @@
1
+ import { jsx as _jsx } from "@lynx-js/react/jsx-runtime";
2
+ import { NodeRenderer } from '../../react/A2UIRenderer.js';
3
+ import { useDataBinding } from '../../react/useDataBinding.js';
4
+ import '../../../styles/catalog/List.css';
5
+ export function List(props) {
6
+ const { children, surface, dataContextPath, direction = 'vertical', align = 'stretch', } = props;
7
+ const isDynamic = children && !Array.isArray(children)
8
+ && typeof children === 'object';
9
+ const template = isDynamic
10
+ ? children
11
+ : undefined;
12
+ const [listData, , fullPath] = useDataBinding(template ? { path: template.path } : undefined, surface, dataContextPath, []);
13
+ let content = [];
14
+ if (Array.isArray(children)) {
15
+ content = children.map((childId) => {
16
+ const child = surface.components.get(childId);
17
+ if (!child)
18
+ return null;
19
+ // Propagate dataContextPath
20
+ const childWithContext = dataContextPath
21
+ ? { ...child, dataContextPath: dataContextPath }
22
+ : child;
23
+ return {
24
+ key: childId,
25
+ component: childWithContext,
26
+ };
27
+ });
28
+ }
29
+ else if (template) {
30
+ const items = Array.isArray(listData) ? listData : [];
31
+ content = items.map((item, index) => {
32
+ const componentId = template.componentId;
33
+ const child = surface.components.get(componentId);
34
+ if (!child)
35
+ return null;
36
+ const key = item && typeof item === 'object' && 'key' in item
37
+ ? String(item['key'])
38
+ : `${index}`;
39
+ const itemPath = `${fullPath}/${index}`;
40
+ const childWithContext = { ...child, dataContextPath: itemPath };
41
+ return {
42
+ key: key,
43
+ component: childWithContext,
44
+ };
45
+ });
46
+ }
47
+ return (_jsx("list", { className: `list list-${String(direction)} list-align-${String(align)}`, "scroll-orientation": direction === 'vertical' ? 'vertical' : 'horizontal', "list-type": 'single', "span-count": 1, children: content.map((item) => {
48
+ if (!item)
49
+ return null;
50
+ return (_jsx("list-item", { "item-key": item.key, children: _jsx(NodeRenderer, { component: item.component, surface: surface }) }, item.key));
51
+ }) }));
52
+ }
53
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/catalog/List/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ {
2
+ "Modal": {
3
+ "properties": {
4
+ "trigger": {
5
+ "type": "string",
6
+ "description": "The ID of the component that opens the modal when interacted with."
7
+ },
8
+ "content": {
9
+ "type": "string",
10
+ "description": "The ID of the component to display inside the modal."
11
+ }
12
+ },
13
+ "required": [
14
+ "trigger",
15
+ "content"
16
+ ]
17
+ }
18
+ }
@@ -0,0 +1,12 @@
1
+ import type { GenericComponentProps } from '../../store/types.js';
2
+ import '../../../styles/catalog/Modal.css';
3
+ /**
4
+ * @a2uiCatalog Modal
5
+ */
6
+ export interface ModalProps extends GenericComponentProps {
7
+ /** The ID of the component that opens the modal when interacted with. */
8
+ trigger: string;
9
+ /** The ID of the component to display inside the modal. */
10
+ content: string;
11
+ }
12
+ export declare function Modal(props: ModalProps): import('@lynx-js/react').ReactNode;
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@lynx-js/react/jsx-runtime";
2
+ // Copyright 2026 The Lynx Authors. All rights reserved.
3
+ // Licensed under the Apache License Version 2.0 that can be found in the
4
+ // LICENSE file in the root directory of this source tree.
5
+ import { DialogBackdrop, DialogContent, DialogRoot, DialogView, } from '@lynx-js/lynx-ui';
6
+ import { useState } from '@lynx-js/react';
7
+ import { NodeRenderer } from '../../react/A2UIRenderer.js';
8
+ import '../../../styles/catalog/Modal.css';
9
+ function childWithContext(child, dataContextPath) {
10
+ return child && dataContextPath
11
+ ? { ...child, dataContextPath }
12
+ : child;
13
+ }
14
+ export function Modal(props) {
15
+ const { dataContextPath, surface, } = props;
16
+ const [open, setOpen] = useState(false);
17
+ const compatibleProps = props;
18
+ const triggerId = compatibleProps.trigger ?? compatibleProps.entryPointChild;
19
+ const contentId = compatibleProps.content ?? compatibleProps.contentChild;
20
+ const trigger = childWithContext(triggerId ? surface.components.get(triggerId) : undefined, dataContextPath);
21
+ const content = childWithContext(contentId ? surface.components.get(contentId) : undefined, dataContextPath);
22
+ const handleOpen = () => {
23
+ setOpen(true);
24
+ };
25
+ return (_jsxs(DialogRoot, { show: open, onShowChange: (nextOpen) => {
26
+ setOpen(nextOpen);
27
+ }, children: [_jsx("view", { className: 'modal-trigger', bindtap: handleOpen, children: trigger
28
+ ? _jsx(NodeRenderer, { component: trigger, surface: surface })
29
+ : null }), _jsxs(DialogView, { className: 'modal-view', overlayLevel: 4, children: [_jsx(DialogBackdrop, { className: 'modal-backdrop', clickToClose: true, transition: true }), _jsx(DialogContent, { className: 'modal-content', transition: true, children: content
30
+ ? _jsx(NodeRenderer, { component: content, surface: surface })
31
+ : null })] })] }));
32
+ }
33
+ //# sourceMappingURL=index.js.map