@exponential-at/ui 0.0.0-stage → 0.1.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 (251) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +54 -0
  3. package/README.md +360 -2
  4. package/catalog/a11y.json +668 -0
  5. package/catalog/basic-map.json +104 -0
  6. package/catalog/code.json +58 -0
  7. package/catalog/core.catalog.json +4752 -0
  8. package/catalog/core.schema.json +22667 -0
  9. package/catalog/host.json +64 -0
  10. package/catalog/layout.json +20 -0
  11. package/catalog/limits.json +9 -0
  12. package/catalog/locale.json +48 -0
  13. package/catalog/macros.json +3417 -0
  14. package/catalog/recipes.json +61 -0
  15. package/catalog/strings.json +72 -0
  16. package/catalog/style.json +128 -0
  17. package/catalog/theme.schema.json +42543 -0
  18. package/catalog/tokens.json +47 -0
  19. package/conformance/README.md +217 -0
  20. package/conformance/baseline.ts +101 -0
  21. package/conformance/browser-page.ts +146 -0
  22. package/conformance/browser-suites.ts +683 -0
  23. package/conformance/compare.ts +201 -0
  24. package/conformance/dom.ts +96 -0
  25. package/conformance/dump.ts +163 -0
  26. package/conformance/fonts.json +154 -0
  27. package/conformance/manifest.json +224 -0
  28. package/conformance/parity-compare.ts +191 -0
  29. package/conformance/parity-report.schema.json +73 -0
  30. package/conformance/parity.ts +412 -0
  31. package/conformance/pixel.ts +177 -0
  32. package/conformance/primitives-page.ts +49 -0
  33. package/conformance/report.schema.json +66 -0
  34. package/conformance/run.ts +118 -0
  35. package/dist/chunks/index-98npjvsd.js +3940 -0
  36. package/dist/chunks/index-98npjvsd.js.map +27 -0
  37. package/dist/chunks/index-gwkt14w3.js +7314 -0
  38. package/dist/chunks/index-gwkt14w3.js.map +10 -0
  39. package/dist/chunks/index-njt7yzzm.js +134 -0
  40. package/dist/chunks/index-njt7yzzm.js.map +9 -0
  41. package/dist/chunks/index-we7va6v6.js +7984 -0
  42. package/dist/chunks/index-we7va6v6.js.map +15 -0
  43. package/dist/chunks/index-xrm6f7wc.js +2563 -0
  44. package/dist/chunks/index-xrm6f7wc.js.map +10 -0
  45. package/dist/conformance.js +182749 -0
  46. package/dist/conformance.js.map +10 -0
  47. package/dist/entries/prompt.js +251 -0
  48. package/dist/entries/prompt.js.map +11 -0
  49. package/dist/entries/schema.js +1725 -0
  50. package/dist/entries/schema.js.map +11 -0
  51. package/dist/host/index.js +122 -0
  52. package/dist/host/index.js.map +9 -0
  53. package/dist/index.js +3213 -0
  54. package/dist/index.js.map +27 -0
  55. package/dist/types/src/a11y.d.ts +21 -0
  56. package/dist/types/src/animation.d.ts +76 -0
  57. package/dist/types/src/basic-map.d.ts +38 -0
  58. package/dist/types/src/builder.d.ts +50 -0
  59. package/dist/types/src/catalog.d.ts +54 -0
  60. package/dist/types/src/catalog.described.d.ts +33 -0
  61. package/dist/types/src/catalog.generated.d.ts +829 -0
  62. package/dist/types/src/chart.d.ts +46 -0
  63. package/dist/types/src/code.d.ts +44 -0
  64. package/dist/types/src/color.d.ts +20 -0
  65. package/dist/types/src/conformance.d.ts +39 -0
  66. package/dist/types/src/connector/app.d.ts +14 -0
  67. package/dist/types/src/connector/connector.d.ts +77 -0
  68. package/dist/types/src/connector/index.d.ts +4 -0
  69. package/dist/types/src/css.d.ts +29 -0
  70. package/dist/types/src/define.d.ts +66 -0
  71. package/dist/types/src/direction.d.ts +16 -0
  72. package/dist/types/src/dynamic.d.ts +159 -0
  73. package/dist/types/src/entries/prompt.d.ts +11 -0
  74. package/dist/types/src/entries/schema.d.ts +8 -0
  75. package/dist/types/src/expr.d.ts +71 -0
  76. package/dist/types/src/extension.d.ts +4 -0
  77. package/dist/types/src/format.d.ts +112 -0
  78. package/dist/types/src/geometry.d.ts +40 -0
  79. package/dist/types/src/host/contract.d.ts +188 -0
  80. package/dist/types/src/host/decoders.d.ts +61 -0
  81. package/dist/types/src/host/index.d.ts +11 -0
  82. package/dist/types/src/host/package.d.ts +58 -0
  83. package/dist/types/src/host/policy.d.ts +105 -0
  84. package/dist/types/src/host/router.d.ts +34 -0
  85. package/dist/types/src/host/runtime.d.ts +205 -0
  86. package/dist/types/src/host/sources.d.ts +15 -0
  87. package/dist/types/src/host/transports.d.ts +109 -0
  88. package/dist/types/src/index.d.ts +63 -0
  89. package/dist/types/src/layout.d.ts +20 -0
  90. package/dist/types/src/limits.d.ts +21 -0
  91. package/dist/types/src/list.d.ts +133 -0
  92. package/dist/types/src/locale.d.ts +22 -0
  93. package/dist/types/src/macros.d.ts +29 -0
  94. package/dist/types/src/overlay.d.ts +27 -0
  95. package/dist/types/src/prompt.d.ts +44 -0
  96. package/dist/types/src/recipes.d.ts +17 -0
  97. package/dist/types/src/reducer.d.ts +41 -0
  98. package/dist/types/src/resizable.d.ts +38 -0
  99. package/dist/types/src/schema.d.ts +7 -0
  100. package/dist/types/src/strings.d.ts +13 -0
  101. package/dist/types/src/style.d.ts +201 -0
  102. package/dist/types/src/test-preload.d.ts +1 -0
  103. package/dist/types/src/text-shimmer.d.ts +24 -0
  104. package/dist/types/src/theme-types.d.ts +162 -0
  105. package/dist/types/src/theme.d.ts +73 -0
  106. package/dist/types/src/themes.d.ts +22 -0
  107. package/dist/types/src/tree-guides.d.ts +17 -0
  108. package/dist/types/src/types.d.ts +314 -0
  109. package/dist/types/src/validate.d.ts +31 -0
  110. package/dist/types/src/web/base-css.d.ts +1 -0
  111. package/dist/types/src/web/box-css.d.ts +55 -0
  112. package/dist/types/src/web/coerce.d.ts +32 -0
  113. package/dist/types/src/web/data.d.ts +105 -0
  114. package/dist/types/src/web/dates.d.ts +12 -0
  115. package/dist/types/src/web/form.d.ts +44 -0
  116. package/dist/types/src/web/host-types.d.ts +119 -0
  117. package/dist/types/src/web/index.d.ts +28 -0
  118. package/dist/types/src/web/inputs.d.ts +55 -0
  119. package/dist/types/src/web/list.d.ts +13 -0
  120. package/dist/types/src/web/listbox.d.ts +14 -0
  121. package/dist/types/src/web/markdown.d.ts +96 -0
  122. package/dist/types/src/web/media.d.ts +62 -0
  123. package/dist/types/src/web/parts.d.ts +4 -0
  124. package/dist/types/src/web/primitives/alert-dialog.d.ts +10 -0
  125. package/dist/types/src/web/primitives/alert.d.ts +9 -0
  126. package/dist/types/src/web/primitives/avatar-color.d.ts +2 -0
  127. package/dist/types/src/web/primitives/avatar.d.ts +13 -0
  128. package/dist/types/src/web/primitives/badge.d.ts +10 -0
  129. package/dist/types/src/web/primitives/breadcrumb.d.ts +10 -0
  130. package/dist/types/src/web/primitives/button.d.ts +6 -0
  131. package/dist/types/src/web/primitives/calendar.d.ts +43 -0
  132. package/dist/types/src/web/primitives/card.d.ts +9 -0
  133. package/dist/types/src/web/primitives/checkbox.d.ts +5 -0
  134. package/dist/types/src/web/primitives/choice-tiles.d.ts +32 -0
  135. package/dist/types/src/web/primitives/cn.d.ts +3 -0
  136. package/dist/types/src/web/primitives/code-block.d.ts +24 -0
  137. package/dist/types/src/web/primitives/command.d.ts +134 -0
  138. package/dist/types/src/web/primitives/context-ring.d.ts +24 -0
  139. package/dist/types/src/web/primitives/dialog-arms.d.ts +6 -0
  140. package/dist/types/src/web/primitives/dialog.d.ts +24 -0
  141. package/dist/types/src/web/primitives/disclosure-header.d.ts +5 -0
  142. package/dist/types/src/web/primitives/dock.d.ts +42 -0
  143. package/dist/types/src/web/primitives/dropdown-menu.d.ts +14 -0
  144. package/dist/types/src/web/primitives/empty-state.d.ts +15 -0
  145. package/dist/types/src/web/primitives/glass-card.d.ts +4 -0
  146. package/dist/types/src/web/primitives/hover-card.d.ts +7 -0
  147. package/dist/types/src/web/primitives/icon-disc.d.ts +12 -0
  148. package/dist/types/src/web/primitives/index.d.ts +48 -0
  149. package/dist/types/src/web/primitives/input.d.ts +5 -0
  150. package/dist/types/src/web/primitives/kbd.d.ts +4 -0
  151. package/dist/types/src/web/primitives/label.d.ts +3 -0
  152. package/dist/types/src/web/primitives/menu-surface.d.ts +17 -0
  153. package/dist/types/src/web/primitives/meter.d.ts +21 -0
  154. package/dist/types/src/web/primitives/popover.d.ts +3 -0
  155. package/dist/types/src/web/primitives/progress-ring.d.ts +5 -0
  156. package/dist/types/src/web/primitives/progress.d.ts +8 -0
  157. package/dist/types/src/web/primitives/scroll-area.d.ts +49 -0
  158. package/dist/types/src/web/primitives/segmented-control.d.ts +5 -0
  159. package/dist/types/src/web/primitives/select.d.ts +47 -0
  160. package/dist/types/src/web/primitives/separator.d.ts +3 -0
  161. package/dist/types/src/web/primitives/sheet-chrome.d.ts +4 -0
  162. package/dist/types/src/web/primitives/sheet.d.ts +20 -0
  163. package/dist/types/src/web/primitives/skeleton.d.ts +3 -0
  164. package/dist/types/src/web/primitives/spinner.d.ts +3 -0
  165. package/dist/types/src/web/primitives/switch.d.ts +4 -0
  166. package/dist/types/src/web/primitives/table.d.ts +11 -0
  167. package/dist/types/src/web/primitives/tabs.d.ts +13 -0
  168. package/dist/types/src/web/primitives/textarea.d.ts +3 -0
  169. package/dist/types/src/web/primitives/toast.d.ts +163 -0
  170. package/dist/types/src/web/primitives/tooltip.d.ts +3 -0
  171. package/dist/types/src/web/primitives/truncate.d.ts +7 -0
  172. package/dist/types/src/web/primitives/typeahead-portal.d.ts +12 -0
  173. package/dist/types/src/web/share.d.ts +6 -0
  174. package/dist/types/src/web/table.d.ts +20 -0
  175. package/dist/types/src/web/theme-css.d.ts +69 -0
  176. package/dist/types/src/web/urls.d.ts +21 -0
  177. package/dist/web/index.js +2303 -0
  178. package/dist/web/index.js.map +26 -0
  179. package/dist/web/primitives/index.js +1450 -0
  180. package/dist/web/primitives/index.js.map +57 -0
  181. package/docs/components.generated.json +6238 -0
  182. package/docs/round-1-contract.md +679 -0
  183. package/docs/round-2-contract.md +476 -0
  184. package/docs/round-3-contract.md +174 -0
  185. package/docs/themes.generated.json +3503 -0
  186. package/fixtures/animations.json +2890 -0
  187. package/fixtures/bench-list.json +58 -0
  188. package/fixtures/bind-time.json +30664 -0
  189. package/fixtures/catalog-basic-map.json +1692 -0
  190. package/fixtures/catalog-components.json +9323 -0
  191. package/fixtures/catalog-extension.json +620 -0
  192. package/fixtures/catalog-macros.json +36370 -0
  193. package/fixtures/code-tokens.json +1993 -0
  194. package/fixtures/conformance-baseline.json +55544 -0
  195. package/fixtures/conformance-cases.json +49 -0
  196. package/fixtures/conformance-known.json +2123 -0
  197. package/fixtures/control-geometry.json +4200 -0
  198. package/fixtures/dashboard.data.json +74 -0
  199. package/fixtures/dashboard.json +752 -0
  200. package/fixtures/demo-surface.json +47 -0
  201. package/fixtures/format.json +870 -0
  202. package/fixtures/host-policy.json +1067 -0
  203. package/fixtures/host-router.json +1152 -0
  204. package/fixtures/host-transport.json +590 -0
  205. package/fixtures/interactions-round1.json +773 -0
  206. package/fixtures/kitchen-sink.expanded.json +10844 -0
  207. package/fixtures/kitchen-sink.json +3049 -0
  208. package/fixtures/layout-geometry-round1.json +7278 -0
  209. package/fixtures/layout-geometry.json +2072 -0
  210. package/fixtures/overlay-geometry.json +272 -0
  211. package/fixtures/primitive-specimens.json +58 -0
  212. package/fixtures/prompt-budget.json +33 -0
  213. package/fixtures/resizable.json +714 -0
  214. package/fixtures/round4-contract.json +2985 -0
  215. package/fixtures/specimens.json +9832 -0
  216. package/fixtures/style-conditions.json +336 -0
  217. package/fixtures/template-items.json +2215 -0
  218. package/fixtures/text-direction.json +309 -0
  219. package/fixtures/text-shimmer.json +96 -0
  220. package/fixtures/theme-extends.json +573 -0
  221. package/fixtures/theme-invalid.json +1296 -0
  222. package/fixtures/theme-recipes.json +58600 -0
  223. package/fixtures/theme-resolved.json +23949 -0
  224. package/fixtures/toast-stack.json +215 -0
  225. package/fixtures/tree-guides.json +224 -0
  226. package/fixtures/virtual-list.json +733 -0
  227. package/generated/ExponentialUICatalog.generated.kt +67 -0
  228. package/generated/ExponentialUICatalog.generated.swift +67 -0
  229. package/generated/ExponentialUIThemes.generated.kt +23 -0
  230. package/generated/ExponentialUIThemes.generated.swift +23 -0
  231. package/generated/catalog.descriptions.generated.rs +6 -0
  232. package/generated/catalog.generated.rs +80 -0
  233. package/generated/catalog.themes.generated.rs +34 -0
  234. package/generated/core.descriptions.json +2505 -0
  235. package/generated/core.runtime.json +3609 -0
  236. package/package.json +87 -4
  237. package/themes/exponential.recipes.json +49 -0
  238. package/themes/exponential.theme.json +755 -0
  239. package/themes/neutral.theme.json +5676 -0
  240. package/themes/orange.theme.json +43 -0
  241. package/themes/playful.theme.json +219 -0
  242. package/vendor/a2ui/LICENSE.txt +203 -0
  243. package/vendor/a2ui/README.md +27 -0
  244. package/vendor/a2ui/v0_9/basic_catalog.json +1387 -0
  245. package/vendor/a2ui/v0_9/basic_catalog_rules.txt +5 -0
  246. package/vendor/a2ui/v0_9/client_capabilities.json +97 -0
  247. package/vendor/a2ui/v0_9/client_to_server.json +104 -0
  248. package/vendor/a2ui/v0_9/common_types.json +315 -0
  249. package/vendor/a2ui/v0_9/server_to_client.json +132 -0
  250. package/vendor/json-render/LICENSE.txt +201 -0
  251. package/vendor/json-render/README.md +13 -0
@@ -0,0 +1,2072 @@
1
+ {
2
+ "$comment": "VAPP-87: the LAYOUT GEOMETRY contract. `surface` = the VAPP-4 spike kitchen sink (spikes/vapp-layout on exp/VAPP-4, 48 nodes: flex rows/columns with wrap + grow/shrink/basis, a grid with gridTemplateAreas + fr + minmax and a 600 px surface breakpoint, an absolute badge overlay, 16:9 media, min/max + percentages + gap, :pressed buttons) rewritten in the core vocabulary: every container is a Box with the spike's style (its palette/semantic tokens mapped onto the core colour tokens; the card hairline is PAINT, never a border), every leaf names the nearest native. In GEOMETRY mode a renderer replaces every leaf's content with a fixed box of `measures[id]` (the spike's FixedMeasure: 8 px per character, 20 px lines, the control sizes below) and lays the containers out for real; `cases` are taffy's frames (x, y, w, h relative to the root) at 900 and 390 px, LTR and RTL — the React renderer in headless Chromium matches them within 1 px (Blink's 1/64 px LayoutUnit is the only delta), and the Rust core (VAPP-86) must reproduce them exactly. Rules that make CSS agree with taffy: every node restates box-sizing border-box / display flex / flex-direction row / position relative, min-width stays auto, chrome stays out of layout, overflow hidden becomes clip. Leaf components are irrelevant to the geometry (only measures matter) and keep the real renderers honest.",
3
+ "measure": {
4
+ "charWidth": 8,
5
+ "lineHeight": 20,
6
+ "tolerancePx": 1
7
+ },
8
+ "measures": {
9
+ "hdr-avatar": {
10
+ "w": 32,
11
+ "h": 32
12
+ },
13
+ "hdr-title": {
14
+ "w": 96,
15
+ "h": 20
16
+ },
17
+ "hdr-sub": {
18
+ "w": 376,
19
+ "h": 20
20
+ },
21
+ "hdr-badge": {
22
+ "w": 20,
23
+ "h": 20
24
+ },
25
+ "hdr-scan": {
26
+ "w": 88,
27
+ "h": 36
28
+ },
29
+ "nav-heading": {
30
+ "w": 56,
31
+ "h": 20
32
+ },
33
+ "row-1": {
34
+ "w": 184,
35
+ "h": 32
36
+ },
37
+ "row-2": {
38
+ "w": 176,
39
+ "h": 32
40
+ },
41
+ "row-3": {
42
+ "w": 160,
43
+ "h": 32
44
+ },
45
+ "nav-div": {
46
+ "w": 0,
47
+ "h": 1
48
+ },
49
+ "nav-toggle": {
50
+ "w": 44,
51
+ "h": 24
52
+ },
53
+ "main-heading": {
54
+ "w": 48,
55
+ "h": 20
56
+ },
57
+ "media-img": {
58
+ "w": 320,
59
+ "h": 180
60
+ },
61
+ "media-badge": {
62
+ "w": 52,
63
+ "h": 28
64
+ },
65
+ "main-md": {
66
+ "w": 528,
67
+ "h": 80
68
+ },
69
+ "main-progress": {
70
+ "w": 160,
71
+ "h": 8
72
+ },
73
+ "pill-1": {
74
+ "w": 44,
75
+ "h": 28
76
+ },
77
+ "pill-2": {
78
+ "w": 68,
79
+ "h": 28
80
+ },
81
+ "pill-3": {
82
+ "w": 52,
83
+ "h": 28
84
+ },
85
+ "pill-4": {
86
+ "w": 84,
87
+ "h": 28
88
+ },
89
+ "footer-more": {
90
+ "w": 56,
91
+ "h": 36
92
+ },
93
+ "form-heading": {
94
+ "w": 88,
95
+ "h": 20
96
+ },
97
+ "echo-field": {
98
+ "w": 160,
99
+ "h": 36
100
+ },
101
+ "form-body": {
102
+ "w": 160,
103
+ "h": 72
104
+ },
105
+ "form-sub": {
106
+ "w": 160,
107
+ "h": 36
108
+ },
109
+ "form-cancel": {
110
+ "w": 72,
111
+ "h": 36
112
+ },
113
+ "form-send": {
114
+ "w": 56,
115
+ "h": 36
116
+ },
117
+ "fx-1-t": {
118
+ "w": 144,
119
+ "h": 20
120
+ },
121
+ "fx-2-t": {
122
+ "w": 112,
123
+ "h": 20
124
+ },
125
+ "fx-3-t": {
126
+ "w": 128,
127
+ "h": 20
128
+ },
129
+ "fx-4-t": {
130
+ "w": 24,
131
+ "h": 20
132
+ }
133
+ },
134
+ "surface": {
135
+ "id": "root",
136
+ "component": "Box",
137
+ "style": {
138
+ "display": "flex",
139
+ "flexDirection": "column",
140
+ "gap": 16,
141
+ "padding": 16,
142
+ "width": "100%",
143
+ "backgroundColor": "$color.background",
144
+ "direction": "ltr"
145
+ },
146
+ "children": [
147
+ {
148
+ "id": "header",
149
+ "component": "Box",
150
+ "style": {
151
+ "display": "flex",
152
+ "flexDirection": "row",
153
+ "alignItems": "center",
154
+ "gap": 12
155
+ },
156
+ "children": [
157
+ {
158
+ "id": "hdr-avatar",
159
+ "component": "Avatar",
160
+ "props": {
161
+ "name": "Alex Chen"
162
+ }
163
+ },
164
+ {
165
+ "id": "hdr-text",
166
+ "component": "Box",
167
+ "style": {
168
+ "display": "flex",
169
+ "flexDirection": "column",
170
+ "flexGrow": 1,
171
+ "flexShrink": 1,
172
+ "minWidth": 0,
173
+ "gap": 2
174
+ },
175
+ "children": [
176
+ {
177
+ "id": "hdr-title",
178
+ "component": "Text",
179
+ "props": {
180
+ "text": "Reddit radar",
181
+ "variant": "title"
182
+ }
183
+ },
184
+ {
185
+ "id": "hdr-sub",
186
+ "component": "Text",
187
+ "props": {
188
+ "text": "Kitchen sink · one taffy layout on every client",
189
+ "variant": "muted"
190
+ }
191
+ }
192
+ ]
193
+ },
194
+ {
195
+ "id": "hdr-badge",
196
+ "component": "Text",
197
+ "props": {
198
+ "text": "3",
199
+ "variant": "caption"
200
+ }
201
+ },
202
+ {
203
+ "id": "hdr-scan",
204
+ "component": "Button",
205
+ "props": {
206
+ "label": "Scan now",
207
+ "variant": "default"
208
+ },
209
+ "style": {
210
+ "flexShrink": 0,
211
+ ":pressed": {
212
+ "opacity": 0.6
213
+ }
214
+ }
215
+ }
216
+ ]
217
+ },
218
+ {
219
+ "id": "grid",
220
+ "component": "Box",
221
+ "style": {
222
+ "display": "grid",
223
+ "gap": 12,
224
+ "gridTemplateColumns": "1fr",
225
+ "gridTemplateAreas": [
226
+ "nav",
227
+ "main",
228
+ "footer"
229
+ ],
230
+ "@media (min-width: 600px)": {
231
+ "gridTemplateColumns": "minmax(180px, 1fr) 2fr",
232
+ "gridTemplateRows": "auto auto",
233
+ "gridTemplateAreas": [
234
+ "nav main",
235
+ "nav footer"
236
+ ]
237
+ }
238
+ },
239
+ "children": [
240
+ {
241
+ "id": "nav-card",
242
+ "component": "Box",
243
+ "style": {
244
+ "gridArea": "nav",
245
+ "display": "flex",
246
+ "flexDirection": "column",
247
+ "gap": 8,
248
+ "padding": 12,
249
+ "backgroundColor": "$color.card",
250
+ "borderRadius": 16
251
+ },
252
+ "children": [
253
+ {
254
+ "id": "nav-heading",
255
+ "component": "Text",
256
+ "props": {
257
+ "text": "Sources",
258
+ "variant": "label"
259
+ }
260
+ },
261
+ {
262
+ "id": "row-1",
263
+ "component": "Text",
264
+ "props": {
265
+ "text": "r/selfhosted 312 posts",
266
+ "lines": 1
267
+ }
268
+ },
269
+ {
270
+ "id": "row-2",
271
+ "component": "Text",
272
+ "props": {
273
+ "text": "r/opensource 88 posts",
274
+ "lines": 1
275
+ }
276
+ },
277
+ {
278
+ "id": "row-3",
279
+ "component": "Text",
280
+ "props": {
281
+ "text": "r/webdev 1.2k posts",
282
+ "lines": 1
283
+ }
284
+ },
285
+ {
286
+ "id": "nav-div",
287
+ "component": "Skeleton",
288
+ "props": {
289
+ "height": "1px"
290
+ }
291
+ },
292
+ {
293
+ "id": "nav-toggle",
294
+ "component": "Switch",
295
+ "props": {
296
+ "label": "Auto-scan",
297
+ "name": "nav-toggle",
298
+ "checked": true
299
+ }
300
+ }
301
+ ]
302
+ },
303
+ {
304
+ "id": "main-card",
305
+ "component": "Box",
306
+ "style": {
307
+ "gridArea": "main",
308
+ "display": "flex",
309
+ "flexDirection": "column",
310
+ "gap": 10,
311
+ "padding": 12,
312
+ "minWidth": 0,
313
+ "backgroundColor": "$color.card",
314
+ "borderRadius": 16
315
+ },
316
+ "children": [
317
+ {
318
+ "id": "main-heading",
319
+ "component": "Text",
320
+ "props": {
321
+ "text": "Drafts",
322
+ "variant": "label"
323
+ }
324
+ },
325
+ {
326
+ "id": "media",
327
+ "component": "Box",
328
+ "style": {
329
+ "position": "relative",
330
+ "width": "100%",
331
+ "aspectRatio": 1.7777778,
332
+ "borderRadius": 12,
333
+ "overflow": "hidden",
334
+ "backgroundColor": "$color.info"
335
+ },
336
+ "children": [
337
+ {
338
+ "id": "media-img",
339
+ "component": "Image",
340
+ "props": {
341
+ "alt": "Cover"
342
+ },
343
+ "style": {
344
+ "width": "100%",
345
+ "height": "100%"
346
+ }
347
+ },
348
+ {
349
+ "id": "media-badge",
350
+ "component": "Button",
351
+ "props": {
352
+ "label": "LIVE",
353
+ "variant": "outline",
354
+ "size": "sm"
355
+ },
356
+ "style": {
357
+ "position": "absolute",
358
+ "top": 8,
359
+ "right": 8
360
+ }
361
+ }
362
+ ]
363
+ },
364
+ {
365
+ "id": "main-md",
366
+ "component": "Markdown",
367
+ "props": {
368
+ "text": "**Looking for a Linear alternative** — self-hostable, with agents.\n\n- Draft reply ready\n- 2 sources cited"
369
+ },
370
+ "style": {
371
+ "minWidth": 0
372
+ }
373
+ },
374
+ {
375
+ "id": "main-progress",
376
+ "component": "Skeleton",
377
+ "props": {
378
+ "height": "8px"
379
+ },
380
+ "style": {
381
+ "width": "100%"
382
+ }
383
+ }
384
+ ]
385
+ },
386
+ {
387
+ "id": "footer-card",
388
+ "component": "Box",
389
+ "style": {
390
+ "gridArea": "footer",
391
+ "display": "flex",
392
+ "flexDirection": "row",
393
+ "flexWrap": "wrap",
394
+ "alignItems": "center",
395
+ "gap": 8,
396
+ "padding": 12,
397
+ "minWidth": 0,
398
+ "backgroundColor": "$color.card",
399
+ "borderRadius": 16
400
+ },
401
+ "children": [
402
+ {
403
+ "id": "pill-1",
404
+ "component": "Button",
405
+ "props": {
406
+ "label": "All",
407
+ "variant": "outline",
408
+ "size": "sm"
409
+ }
410
+ },
411
+ {
412
+ "id": "pill-2",
413
+ "component": "Button",
414
+ "props": {
415
+ "label": "Drafts",
416
+ "variant": "outline",
417
+ "size": "sm"
418
+ }
419
+ },
420
+ {
421
+ "id": "pill-3",
422
+ "component": "Button",
423
+ "props": {
424
+ "label": "Sent",
425
+ "variant": "outline",
426
+ "size": "sm"
427
+ }
428
+ },
429
+ {
430
+ "id": "pill-4",
431
+ "component": "Button",
432
+ "props": {
433
+ "label": "Archived",
434
+ "variant": "outline",
435
+ "size": "sm"
436
+ }
437
+ },
438
+ {
439
+ "id": "footer-spacer",
440
+ "component": "Box",
441
+ "style": {
442
+ "flexGrow": 1,
443
+ "flexBasis": 120,
444
+ "minWidth": 40,
445
+ "height": 1
446
+ }
447
+ },
448
+ {
449
+ "id": "footer-more",
450
+ "component": "Button",
451
+ "props": {
452
+ "label": "More",
453
+ "variant": "ghost"
454
+ },
455
+ "style": {
456
+ ":pressed": {
457
+ "opacity": 0.6
458
+ }
459
+ }
460
+ }
461
+ ]
462
+ }
463
+ ]
464
+ },
465
+ {
466
+ "id": "form",
467
+ "component": "Box",
468
+ "style": {
469
+ "display": "flex",
470
+ "flexDirection": "column",
471
+ "gap": 10,
472
+ "padding": 12,
473
+ "backgroundColor": "$color.card",
474
+ "borderRadius": 16
475
+ },
476
+ "children": [
477
+ {
478
+ "id": "form-heading",
479
+ "component": "Text",
480
+ "props": {
481
+ "text": "Draft reply",
482
+ "variant": "label"
483
+ }
484
+ },
485
+ {
486
+ "id": "echo-field",
487
+ "component": "Input",
488
+ "props": {
489
+ "label": "",
490
+ "name": "echo-field",
491
+ "placeholder": "Title (echoes after 150 ms)"
492
+ },
493
+ "style": {
494
+ "width": "100%"
495
+ }
496
+ },
497
+ {
498
+ "id": "form-body",
499
+ "component": "Textarea",
500
+ "props": {
501
+ "label": "",
502
+ "name": "form-body",
503
+ "placeholder": "Body"
504
+ },
505
+ "style": {
506
+ "width": "100%",
507
+ "minHeight": 72
508
+ }
509
+ },
510
+ {
511
+ "id": "form-row",
512
+ "component": "Box",
513
+ "style": {
514
+ "display": "flex",
515
+ "flexDirection": "row",
516
+ "flexWrap": "wrap",
517
+ "alignItems": "center",
518
+ "gap": 8
519
+ },
520
+ "children": [
521
+ {
522
+ "id": "form-sub",
523
+ "component": "Select",
524
+ "props": {
525
+ "name": "form-sub",
526
+ "options": [
527
+ {
528
+ "label": "r/selfhosted",
529
+ "value": "r/selfhosted"
530
+ },
531
+ {
532
+ "label": "r/opensource",
533
+ "value": "r/opensource"
534
+ },
535
+ {
536
+ "label": "r/webdev",
537
+ "value": "r/webdev"
538
+ }
539
+ ],
540
+ "value": "r/selfhosted"
541
+ },
542
+ "style": {
543
+ "flexGrow": 1,
544
+ "flexBasis": 160,
545
+ "maxWidth": 320
546
+ }
547
+ },
548
+ {
549
+ "id": "form-actions",
550
+ "component": "Box",
551
+ "style": {
552
+ "display": "flex",
553
+ "flexDirection": "row",
554
+ "gap": 8,
555
+ "marginLeft": "auto"
556
+ },
557
+ "children": [
558
+ {
559
+ "id": "form-cancel",
560
+ "component": "Button",
561
+ "props": {
562
+ "label": "Cancel",
563
+ "variant": "outline"
564
+ },
565
+ "style": {
566
+ ":pressed": {
567
+ "opacity": 0.6
568
+ }
569
+ }
570
+ },
571
+ {
572
+ "id": "form-send",
573
+ "component": "Button",
574
+ "props": {
575
+ "label": "Send",
576
+ "variant": "default"
577
+ },
578
+ "style": {
579
+ ":pressed": {
580
+ "opacity": 0.6
581
+ }
582
+ }
583
+ }
584
+ ]
585
+ }
586
+ ]
587
+ }
588
+ ]
589
+ },
590
+ {
591
+ "id": "flex-demo",
592
+ "component": "Box",
593
+ "style": {
594
+ "display": "flex",
595
+ "flexDirection": "row",
596
+ "flexWrap": "wrap",
597
+ "gap": 8
598
+ },
599
+ "children": [
600
+ {
601
+ "id": "fx-1",
602
+ "component": "Box",
603
+ "style": {
604
+ "flexBasis": "30%",
605
+ "flexGrow": 1,
606
+ "minWidth": 96,
607
+ "height": 40,
608
+ "borderRadius": 8,
609
+ "backgroundColor": "$color.success",
610
+ "display": "flex",
611
+ "alignItems": "center",
612
+ "justifyContent": "center"
613
+ },
614
+ "children": [
615
+ {
616
+ "id": "fx-1-t",
617
+ "component": "Text",
618
+ "props": {
619
+ "text": "basis 30% · grow 1",
620
+ "variant": "caption"
621
+ }
622
+ }
623
+ ]
624
+ },
625
+ {
626
+ "id": "fx-2",
627
+ "component": "Box",
628
+ "style": {
629
+ "width": 160,
630
+ "flexShrink": 0,
631
+ "height": 40,
632
+ "borderRadius": 8,
633
+ "backgroundColor": "$color.warning",
634
+ "display": "flex",
635
+ "alignItems": "center",
636
+ "justifyContent": "center"
637
+ },
638
+ "children": [
639
+ {
640
+ "id": "fx-2-t",
641
+ "component": "Text",
642
+ "props": {
643
+ "text": "160 · shrink 0",
644
+ "variant": "caption"
645
+ }
646
+ }
647
+ ]
648
+ },
649
+ {
650
+ "id": "fx-3",
651
+ "component": "Box",
652
+ "style": {
653
+ "flexGrow": 2,
654
+ "flexBasis": 80,
655
+ "maxWidth": "50%",
656
+ "height": 40,
657
+ "borderRadius": 8,
658
+ "backgroundColor": "$color.destructive",
659
+ "display": "flex",
660
+ "alignItems": "center",
661
+ "justifyContent": "center"
662
+ },
663
+ "children": [
664
+ {
665
+ "id": "fx-3-t",
666
+ "component": "Text",
667
+ "props": {
668
+ "text": "grow 2 · max 50%",
669
+ "variant": "caption"
670
+ }
671
+ }
672
+ ]
673
+ },
674
+ {
675
+ "id": "fx-4",
676
+ "component": "Box",
677
+ "style": {
678
+ "width": "25%",
679
+ "minWidth": 64,
680
+ "height": 40,
681
+ "borderRadius": 8,
682
+ "backgroundColor": "$color.warning",
683
+ "display": "flex",
684
+ "alignItems": "center",
685
+ "justifyContent": "center"
686
+ },
687
+ "children": [
688
+ {
689
+ "id": "fx-4-t",
690
+ "component": "Text",
691
+ "props": {
692
+ "text": "25%",
693
+ "variant": "caption"
694
+ }
695
+ }
696
+ ]
697
+ }
698
+ ]
699
+ }
700
+ ]
701
+ },
702
+ "cases": {
703
+ "390": {
704
+ "width": 390,
705
+ "direction": "ltr",
706
+ "frames": [
707
+ {
708
+ "id": "root",
709
+ "x": 0,
710
+ "y": 0,
711
+ "w": 390,
712
+ "h": 1102.875
713
+ },
714
+ {
715
+ "id": "header",
716
+ "x": 16,
717
+ "y": 16,
718
+ "w": 358,
719
+ "h": 42
720
+ },
721
+ {
722
+ "id": "hdr-avatar",
723
+ "x": 16,
724
+ "y": 21,
725
+ "w": 32,
726
+ "h": 32
727
+ },
728
+ {
729
+ "id": "hdr-text",
730
+ "x": 60,
731
+ "y": 16,
732
+ "w": 182,
733
+ "h": 42
734
+ },
735
+ {
736
+ "id": "hdr-title",
737
+ "x": 60,
738
+ "y": 16,
739
+ "w": 182,
740
+ "h": 20
741
+ },
742
+ {
743
+ "id": "hdr-sub",
744
+ "x": 60,
745
+ "y": 38,
746
+ "w": 182,
747
+ "h": 20
748
+ },
749
+ {
750
+ "id": "hdr-badge",
751
+ "x": 254,
752
+ "y": 27,
753
+ "w": 20,
754
+ "h": 20
755
+ },
756
+ {
757
+ "id": "hdr-scan",
758
+ "x": 286,
759
+ "y": 19,
760
+ "w": 88,
761
+ "h": 36
762
+ },
763
+ {
764
+ "id": "grid",
765
+ "x": 16,
766
+ "y": 74,
767
+ "w": 358,
768
+ "h": 674.875
769
+ },
770
+ {
771
+ "id": "nav-card",
772
+ "x": 16,
773
+ "y": 74,
774
+ "w": 358,
775
+ "h": 205
776
+ },
777
+ {
778
+ "id": "nav-heading",
779
+ "x": 28,
780
+ "y": 86,
781
+ "w": 334,
782
+ "h": 20
783
+ },
784
+ {
785
+ "id": "row-1",
786
+ "x": 28,
787
+ "y": 114,
788
+ "w": 334,
789
+ "h": 32
790
+ },
791
+ {
792
+ "id": "row-2",
793
+ "x": 28,
794
+ "y": 154,
795
+ "w": 334,
796
+ "h": 32
797
+ },
798
+ {
799
+ "id": "row-3",
800
+ "x": 28,
801
+ "y": 194,
802
+ "w": 334,
803
+ "h": 32
804
+ },
805
+ {
806
+ "id": "nav-div",
807
+ "x": 28,
808
+ "y": 234,
809
+ "w": 334,
810
+ "h": 1
811
+ },
812
+ {
813
+ "id": "nav-toggle",
814
+ "x": 28,
815
+ "y": 243,
816
+ "w": 334,
817
+ "h": 24
818
+ },
819
+ {
820
+ "id": "main-card",
821
+ "x": 16,
822
+ "y": 291,
823
+ "w": 358,
824
+ "h": 349.875
825
+ },
826
+ {
827
+ "id": "main-heading",
828
+ "x": 28,
829
+ "y": 303,
830
+ "w": 334,
831
+ "h": 20
832
+ },
833
+ {
834
+ "id": "media",
835
+ "x": 28,
836
+ "y": 333,
837
+ "w": 334,
838
+ "h": 187.875
839
+ },
840
+ {
841
+ "id": "media-img",
842
+ "x": 28,
843
+ "y": 333,
844
+ "w": 334,
845
+ "h": 187.875
846
+ },
847
+ {
848
+ "id": "media-badge",
849
+ "x": 302,
850
+ "y": 341,
851
+ "w": 52,
852
+ "h": 28
853
+ },
854
+ {
855
+ "id": "main-md",
856
+ "x": 28,
857
+ "y": 530.875,
858
+ "w": 334,
859
+ "h": 80
860
+ },
861
+ {
862
+ "id": "main-progress",
863
+ "x": 28,
864
+ "y": 620.875,
865
+ "w": 334,
866
+ "h": 8
867
+ },
868
+ {
869
+ "id": "footer-card",
870
+ "x": 16,
871
+ "y": 652.875,
872
+ "w": 358,
873
+ "h": 96
874
+ },
875
+ {
876
+ "id": "pill-1",
877
+ "x": 28,
878
+ "y": 664.875,
879
+ "w": 44,
880
+ "h": 28
881
+ },
882
+ {
883
+ "id": "pill-2",
884
+ "x": 80,
885
+ "y": 664.875,
886
+ "w": 68,
887
+ "h": 28
888
+ },
889
+ {
890
+ "id": "pill-3",
891
+ "x": 156,
892
+ "y": 664.875,
893
+ "w": 52,
894
+ "h": 28
895
+ },
896
+ {
897
+ "id": "pill-4",
898
+ "x": 216,
899
+ "y": 664.875,
900
+ "w": 84,
901
+ "h": 28
902
+ },
903
+ {
904
+ "id": "footer-spacer",
905
+ "x": 28,
906
+ "y": 718.375,
907
+ "w": 270,
908
+ "h": 1
909
+ },
910
+ {
911
+ "id": "footer-more",
912
+ "x": 306,
913
+ "y": 700.875,
914
+ "w": 56,
915
+ "h": 36
916
+ },
917
+ {
918
+ "id": "form",
919
+ "x": 16,
920
+ "y": 764.875,
921
+ "w": 358,
922
+ "h": 218
923
+ },
924
+ {
925
+ "id": "form-heading",
926
+ "x": 28,
927
+ "y": 776.875,
928
+ "w": 334,
929
+ "h": 20
930
+ },
931
+ {
932
+ "id": "echo-field",
933
+ "x": 28,
934
+ "y": 806.875,
935
+ "w": 334,
936
+ "h": 36
937
+ },
938
+ {
939
+ "id": "form-body",
940
+ "x": 28,
941
+ "y": 852.875,
942
+ "w": 334,
943
+ "h": 72
944
+ },
945
+ {
946
+ "id": "form-row",
947
+ "x": 28,
948
+ "y": 934.875,
949
+ "w": 334,
950
+ "h": 36
951
+ },
952
+ {
953
+ "id": "form-sub",
954
+ "x": 28,
955
+ "y": 934.875,
956
+ "w": 190,
957
+ "h": 36
958
+ },
959
+ {
960
+ "id": "form-actions",
961
+ "x": 226,
962
+ "y": 934.875,
963
+ "w": 136,
964
+ "h": 36
965
+ },
966
+ {
967
+ "id": "form-cancel",
968
+ "x": 226,
969
+ "y": 934.875,
970
+ "w": 72,
971
+ "h": 36
972
+ },
973
+ {
974
+ "id": "form-send",
975
+ "x": 306,
976
+ "y": 934.875,
977
+ "w": 56,
978
+ "h": 36
979
+ },
980
+ {
981
+ "id": "flex-demo",
982
+ "x": 16,
983
+ "y": 998.875,
984
+ "w": 358,
985
+ "h": 88
986
+ },
987
+ {
988
+ "id": "fx-1",
989
+ "x": 16,
990
+ "y": 998.875,
991
+ "w": 190,
992
+ "h": 40
993
+ },
994
+ {
995
+ "id": "fx-1-t",
996
+ "x": 39,
997
+ "y": 1008.875,
998
+ "w": 144,
999
+ "h": 20
1000
+ },
1001
+ {
1002
+ "id": "fx-2",
1003
+ "x": 214,
1004
+ "y": 998.875,
1005
+ "w": 160,
1006
+ "h": 40
1007
+ },
1008
+ {
1009
+ "id": "fx-2-t",
1010
+ "x": 238,
1011
+ "y": 1008.875,
1012
+ "w": 112,
1013
+ "h": 20
1014
+ },
1015
+ {
1016
+ "id": "fx-3",
1017
+ "x": 16,
1018
+ "y": 1046.875,
1019
+ "w": 179,
1020
+ "h": 40
1021
+ },
1022
+ {
1023
+ "id": "fx-3-t",
1024
+ "x": 41.5,
1025
+ "y": 1056.875,
1026
+ "w": 128,
1027
+ "h": 20
1028
+ },
1029
+ {
1030
+ "id": "fx-4",
1031
+ "x": 203,
1032
+ "y": 1046.875,
1033
+ "w": 89.5,
1034
+ "h": 40
1035
+ },
1036
+ {
1037
+ "id": "fx-4-t",
1038
+ "x": 235.75,
1039
+ "y": 1056.875,
1040
+ "w": 24,
1041
+ "h": 20
1042
+ }
1043
+ ]
1044
+ },
1045
+ "900": {
1046
+ "width": 900,
1047
+ "direction": "ltr",
1048
+ "frames": [
1049
+ {
1050
+ "id": "root",
1051
+ "x": 0,
1052
+ "y": 0,
1053
+ "w": 900,
1054
+ "h": 921.5
1055
+ },
1056
+ {
1057
+ "id": "header",
1058
+ "x": 16,
1059
+ "y": 16,
1060
+ "w": 868,
1061
+ "h": 42
1062
+ },
1063
+ {
1064
+ "id": "hdr-avatar",
1065
+ "x": 16,
1066
+ "y": 21,
1067
+ "w": 32,
1068
+ "h": 32
1069
+ },
1070
+ {
1071
+ "id": "hdr-text",
1072
+ "x": 60,
1073
+ "y": 16,
1074
+ "w": 692,
1075
+ "h": 42
1076
+ },
1077
+ {
1078
+ "id": "hdr-title",
1079
+ "x": 60,
1080
+ "y": 16,
1081
+ "w": 692,
1082
+ "h": 20
1083
+ },
1084
+ {
1085
+ "id": "hdr-sub",
1086
+ "x": 60,
1087
+ "y": 38,
1088
+ "w": 692,
1089
+ "h": 20
1090
+ },
1091
+ {
1092
+ "id": "hdr-badge",
1093
+ "x": 764,
1094
+ "y": 27,
1095
+ "w": 20,
1096
+ "h": 20
1097
+ },
1098
+ {
1099
+ "id": "hdr-scan",
1100
+ "x": 796,
1101
+ "y": 19,
1102
+ "w": 88,
1103
+ "h": 36
1104
+ },
1105
+ {
1106
+ "id": "grid",
1107
+ "x": 16,
1108
+ "y": 74,
1109
+ "w": 868,
1110
+ "h": 541.5
1111
+ },
1112
+ {
1113
+ "id": "nav-card",
1114
+ "x": 16,
1115
+ "y": 74,
1116
+ "w": 285.3333435058594,
1117
+ "h": 541.5
1118
+ },
1119
+ {
1120
+ "id": "nav-heading",
1121
+ "x": 28,
1122
+ "y": 86,
1123
+ "w": 261.3333435058594,
1124
+ "h": 20
1125
+ },
1126
+ {
1127
+ "id": "row-1",
1128
+ "x": 28,
1129
+ "y": 114,
1130
+ "w": 261.3333435058594,
1131
+ "h": 32
1132
+ },
1133
+ {
1134
+ "id": "row-2",
1135
+ "x": 28,
1136
+ "y": 154,
1137
+ "w": 261.3333435058594,
1138
+ "h": 32
1139
+ },
1140
+ {
1141
+ "id": "row-3",
1142
+ "x": 28,
1143
+ "y": 194,
1144
+ "w": 261.3333435058594,
1145
+ "h": 32
1146
+ },
1147
+ {
1148
+ "id": "nav-div",
1149
+ "x": 28,
1150
+ "y": 234,
1151
+ "w": 261.3333435058594,
1152
+ "h": 1
1153
+ },
1154
+ {
1155
+ "id": "nav-toggle",
1156
+ "x": 28,
1157
+ "y": 243,
1158
+ "w": 261.3333435058594,
1159
+ "h": 24
1160
+ },
1161
+ {
1162
+ "id": "main-card",
1163
+ "x": 313.3333435058594,
1164
+ "y": 74,
1165
+ "w": 570.6666259765625,
1166
+ "h": 469.5
1167
+ },
1168
+ {
1169
+ "id": "main-heading",
1170
+ "x": 325.3333435058594,
1171
+ "y": 86,
1172
+ "w": 546.6666259765625,
1173
+ "h": 20
1174
+ },
1175
+ {
1176
+ "id": "media",
1177
+ "x": 325.3333435058594,
1178
+ "y": 116,
1179
+ "w": 546.6666259765625,
1180
+ "h": 307.4999694824219
1181
+ },
1182
+ {
1183
+ "id": "media-img",
1184
+ "x": 325.3333435058594,
1185
+ "y": 116,
1186
+ "w": 546.6666259765625,
1187
+ "h": 307.4999694824219
1188
+ },
1189
+ {
1190
+ "id": "media-badge",
1191
+ "x": 812,
1192
+ "y": 124,
1193
+ "w": 52,
1194
+ "h": 28
1195
+ },
1196
+ {
1197
+ "id": "main-md",
1198
+ "x": 325.3333435058594,
1199
+ "y": 433.4999694824219,
1200
+ "w": 546.6666259765625,
1201
+ "h": 80
1202
+ },
1203
+ {
1204
+ "id": "main-progress",
1205
+ "x": 325.3333435058594,
1206
+ "y": 523.5,
1207
+ "w": 546.6666259765625,
1208
+ "h": 8
1209
+ },
1210
+ {
1211
+ "id": "footer-card",
1212
+ "x": 313.3333435058594,
1213
+ "y": 555.5,
1214
+ "w": 570.6666259765625,
1215
+ "h": 60
1216
+ },
1217
+ {
1218
+ "id": "pill-1",
1219
+ "x": 325.3333435058594,
1220
+ "y": 571.5,
1221
+ "w": 44,
1222
+ "h": 28
1223
+ },
1224
+ {
1225
+ "id": "pill-2",
1226
+ "x": 377.3333435058594,
1227
+ "y": 571.5,
1228
+ "w": 68,
1229
+ "h": 28
1230
+ },
1231
+ {
1232
+ "id": "pill-3",
1233
+ "x": 453.3333435058594,
1234
+ "y": 571.5,
1235
+ "w": 52,
1236
+ "h": 28
1237
+ },
1238
+ {
1239
+ "id": "pill-4",
1240
+ "x": 513.3333740234375,
1241
+ "y": 571.5,
1242
+ "w": 84,
1243
+ "h": 28
1244
+ },
1245
+ {
1246
+ "id": "footer-spacer",
1247
+ "x": 605.3333740234375,
1248
+ "y": 585,
1249
+ "w": 202.6666259765625,
1250
+ "h": 1
1251
+ },
1252
+ {
1253
+ "id": "footer-more",
1254
+ "x": 816,
1255
+ "y": 567.5,
1256
+ "w": 56,
1257
+ "h": 36
1258
+ },
1259
+ {
1260
+ "id": "form",
1261
+ "x": 16,
1262
+ "y": 631.5,
1263
+ "w": 868,
1264
+ "h": 218
1265
+ },
1266
+ {
1267
+ "id": "form-heading",
1268
+ "x": 28,
1269
+ "y": 643.5,
1270
+ "w": 844,
1271
+ "h": 20
1272
+ },
1273
+ {
1274
+ "id": "echo-field",
1275
+ "x": 28,
1276
+ "y": 673.5,
1277
+ "w": 844,
1278
+ "h": 36
1279
+ },
1280
+ {
1281
+ "id": "form-body",
1282
+ "x": 28,
1283
+ "y": 719.5,
1284
+ "w": 844,
1285
+ "h": 72
1286
+ },
1287
+ {
1288
+ "id": "form-row",
1289
+ "x": 28,
1290
+ "y": 801.5,
1291
+ "w": 844,
1292
+ "h": 36
1293
+ },
1294
+ {
1295
+ "id": "form-sub",
1296
+ "x": 28,
1297
+ "y": 801.5,
1298
+ "w": 320,
1299
+ "h": 36
1300
+ },
1301
+ {
1302
+ "id": "form-actions",
1303
+ "x": 736,
1304
+ "y": 801.5,
1305
+ "w": 136,
1306
+ "h": 36
1307
+ },
1308
+ {
1309
+ "id": "form-cancel",
1310
+ "x": 736,
1311
+ "y": 801.5,
1312
+ "w": 72,
1313
+ "h": 36
1314
+ },
1315
+ {
1316
+ "id": "form-send",
1317
+ "x": 816,
1318
+ "y": 801.5,
1319
+ "w": 56,
1320
+ "h": 36
1321
+ },
1322
+ {
1323
+ "id": "flex-demo",
1324
+ "x": 16,
1325
+ "y": 865.5,
1326
+ "w": 868,
1327
+ "h": 40
1328
+ },
1329
+ {
1330
+ "id": "fx-1",
1331
+ "x": 16,
1332
+ "y": 865.5,
1333
+ "w": 302.6000061035156,
1334
+ "h": 40
1335
+ },
1336
+ {
1337
+ "id": "fx-1-t",
1338
+ "x": 95.30000305175781,
1339
+ "y": 875.5,
1340
+ "w": 144,
1341
+ "h": 20
1342
+ },
1343
+ {
1344
+ "id": "fx-2",
1345
+ "x": 326.6000061035156,
1346
+ "y": 865.5,
1347
+ "w": 160,
1348
+ "h": 40
1349
+ },
1350
+ {
1351
+ "id": "fx-2-t",
1352
+ "x": 350.6000061035156,
1353
+ "y": 875.5,
1354
+ "w": 112,
1355
+ "h": 20
1356
+ },
1357
+ {
1358
+ "id": "fx-3",
1359
+ "x": 494.6000061035156,
1360
+ "y": 865.5,
1361
+ "w": 164.39999389648438,
1362
+ "h": 40
1363
+ },
1364
+ {
1365
+ "id": "fx-3-t",
1366
+ "x": 512.7999877929688,
1367
+ "y": 875.5,
1368
+ "w": 128,
1369
+ "h": 20
1370
+ },
1371
+ {
1372
+ "id": "fx-4",
1373
+ "x": 667,
1374
+ "y": 865.5,
1375
+ "w": 217,
1376
+ "h": 40
1377
+ },
1378
+ {
1379
+ "id": "fx-4-t",
1380
+ "x": 763.5,
1381
+ "y": 875.5,
1382
+ "w": 24,
1383
+ "h": 20
1384
+ }
1385
+ ]
1386
+ },
1387
+ "900-rtl": {
1388
+ "width": 900,
1389
+ "direction": "rtl",
1390
+ "frames": [
1391
+ {
1392
+ "id": "root",
1393
+ "x": 0,
1394
+ "y": 0,
1395
+ "w": 900,
1396
+ "h": 921.5
1397
+ },
1398
+ {
1399
+ "id": "header",
1400
+ "x": 16,
1401
+ "y": 16,
1402
+ "w": 868,
1403
+ "h": 42
1404
+ },
1405
+ {
1406
+ "id": "hdr-avatar",
1407
+ "x": 852,
1408
+ "y": 21,
1409
+ "w": 32,
1410
+ "h": 32
1411
+ },
1412
+ {
1413
+ "id": "hdr-text",
1414
+ "x": 148,
1415
+ "y": 16,
1416
+ "w": 692,
1417
+ "h": 42
1418
+ },
1419
+ {
1420
+ "id": "hdr-title",
1421
+ "x": 148,
1422
+ "y": 16,
1423
+ "w": 692,
1424
+ "h": 20
1425
+ },
1426
+ {
1427
+ "id": "hdr-sub",
1428
+ "x": 148,
1429
+ "y": 38,
1430
+ "w": 692,
1431
+ "h": 20
1432
+ },
1433
+ {
1434
+ "id": "hdr-badge",
1435
+ "x": 116,
1436
+ "y": 27,
1437
+ "w": 20,
1438
+ "h": 20
1439
+ },
1440
+ {
1441
+ "id": "hdr-scan",
1442
+ "x": 16,
1443
+ "y": 19,
1444
+ "w": 88,
1445
+ "h": 36
1446
+ },
1447
+ {
1448
+ "id": "grid",
1449
+ "x": 16,
1450
+ "y": 74,
1451
+ "w": 868,
1452
+ "h": 541.5
1453
+ },
1454
+ {
1455
+ "id": "nav-card",
1456
+ "x": 598.6666870117188,
1457
+ "y": 74,
1458
+ "w": 285.33331298828125,
1459
+ "h": 541.5
1460
+ },
1461
+ {
1462
+ "id": "nav-heading",
1463
+ "x": 610.6666870117188,
1464
+ "y": 86,
1465
+ "w": 261.33331298828125,
1466
+ "h": 20
1467
+ },
1468
+ {
1469
+ "id": "row-1",
1470
+ "x": 610.6666870117188,
1471
+ "y": 114,
1472
+ "w": 261.33331298828125,
1473
+ "h": 32
1474
+ },
1475
+ {
1476
+ "id": "row-2",
1477
+ "x": 610.6666870117188,
1478
+ "y": 154,
1479
+ "w": 261.33331298828125,
1480
+ "h": 32
1481
+ },
1482
+ {
1483
+ "id": "row-3",
1484
+ "x": 610.6666870117188,
1485
+ "y": 194,
1486
+ "w": 261.33331298828125,
1487
+ "h": 32
1488
+ },
1489
+ {
1490
+ "id": "nav-div",
1491
+ "x": 610.6666870117188,
1492
+ "y": 234,
1493
+ "w": 261.33331298828125,
1494
+ "h": 1
1495
+ },
1496
+ {
1497
+ "id": "nav-toggle",
1498
+ "x": 610.6666870117188,
1499
+ "y": 243,
1500
+ "w": 261.33331298828125,
1501
+ "h": 24
1502
+ },
1503
+ {
1504
+ "id": "main-card",
1505
+ "x": 16,
1506
+ "y": 74,
1507
+ "w": 570.6666870117188,
1508
+ "h": 469.5
1509
+ },
1510
+ {
1511
+ "id": "main-heading",
1512
+ "x": 28,
1513
+ "y": 86,
1514
+ "w": 546.6666870117188,
1515
+ "h": 20
1516
+ },
1517
+ {
1518
+ "id": "media",
1519
+ "x": 28,
1520
+ "y": 116,
1521
+ "w": 546.6666870117188,
1522
+ "h": 307.5
1523
+ },
1524
+ {
1525
+ "id": "media-img",
1526
+ "x": 28,
1527
+ "y": 116,
1528
+ "w": 546.6666870117188,
1529
+ "h": 307.5
1530
+ },
1531
+ {
1532
+ "id": "media-badge",
1533
+ "x": 514.6666870117188,
1534
+ "y": 124,
1535
+ "w": 52,
1536
+ "h": 28
1537
+ },
1538
+ {
1539
+ "id": "main-md",
1540
+ "x": 28,
1541
+ "y": 433.5,
1542
+ "w": 546.6666870117188,
1543
+ "h": 80
1544
+ },
1545
+ {
1546
+ "id": "main-progress",
1547
+ "x": 28,
1548
+ "y": 523.5,
1549
+ "w": 546.6666870117188,
1550
+ "h": 8
1551
+ },
1552
+ {
1553
+ "id": "footer-card",
1554
+ "x": 16,
1555
+ "y": 555.5,
1556
+ "w": 570.6666870117188,
1557
+ "h": 60
1558
+ },
1559
+ {
1560
+ "id": "pill-1",
1561
+ "x": 530.6666870117188,
1562
+ "y": 571.5,
1563
+ "w": 44,
1564
+ "h": 28
1565
+ },
1566
+ {
1567
+ "id": "pill-2",
1568
+ "x": 454.66668701171875,
1569
+ "y": 571.5,
1570
+ "w": 68,
1571
+ "h": 28
1572
+ },
1573
+ {
1574
+ "id": "pill-3",
1575
+ "x": 394.66668701171875,
1576
+ "y": 571.5,
1577
+ "w": 52,
1578
+ "h": 28
1579
+ },
1580
+ {
1581
+ "id": "pill-4",
1582
+ "x": 302.66668701171875,
1583
+ "y": 571.5,
1584
+ "w": 84,
1585
+ "h": 28
1586
+ },
1587
+ {
1588
+ "id": "footer-spacer",
1589
+ "x": 92,
1590
+ "y": 585,
1591
+ "w": 202.66668701171875,
1592
+ "h": 1
1593
+ },
1594
+ {
1595
+ "id": "footer-more",
1596
+ "x": 28,
1597
+ "y": 567.5,
1598
+ "w": 56,
1599
+ "h": 36
1600
+ },
1601
+ {
1602
+ "id": "form",
1603
+ "x": 16,
1604
+ "y": 631.5,
1605
+ "w": 868,
1606
+ "h": 218
1607
+ },
1608
+ {
1609
+ "id": "form-heading",
1610
+ "x": 28,
1611
+ "y": 643.5,
1612
+ "w": 844,
1613
+ "h": 20
1614
+ },
1615
+ {
1616
+ "id": "echo-field",
1617
+ "x": 28,
1618
+ "y": 673.5,
1619
+ "w": 844,
1620
+ "h": 36
1621
+ },
1622
+ {
1623
+ "id": "form-body",
1624
+ "x": 28,
1625
+ "y": 719.5,
1626
+ "w": 844,
1627
+ "h": 72
1628
+ },
1629
+ {
1630
+ "id": "form-row",
1631
+ "x": 28,
1632
+ "y": 801.5,
1633
+ "w": 844,
1634
+ "h": 36
1635
+ },
1636
+ {
1637
+ "id": "form-sub",
1638
+ "x": 552,
1639
+ "y": 801.5,
1640
+ "w": 320,
1641
+ "h": 36
1642
+ },
1643
+ {
1644
+ "id": "form-actions",
1645
+ "x": 408,
1646
+ "y": 801.5,
1647
+ "w": 136,
1648
+ "h": 36
1649
+ },
1650
+ {
1651
+ "id": "form-cancel",
1652
+ "x": 472,
1653
+ "y": 801.5,
1654
+ "w": 72,
1655
+ "h": 36
1656
+ },
1657
+ {
1658
+ "id": "form-send",
1659
+ "x": 408,
1660
+ "y": 801.5,
1661
+ "w": 56,
1662
+ "h": 36
1663
+ },
1664
+ {
1665
+ "id": "flex-demo",
1666
+ "x": 16,
1667
+ "y": 865.5,
1668
+ "w": 868,
1669
+ "h": 40
1670
+ },
1671
+ {
1672
+ "id": "fx-1",
1673
+ "x": 581.4000244140625,
1674
+ "y": 865.5,
1675
+ "w": 302.6000061035156,
1676
+ "h": 40
1677
+ },
1678
+ {
1679
+ "id": "fx-1-t",
1680
+ "x": 660.7000122070312,
1681
+ "y": 875.5,
1682
+ "w": 144,
1683
+ "h": 20
1684
+ },
1685
+ {
1686
+ "id": "fx-2",
1687
+ "x": 413.4000244140625,
1688
+ "y": 865.5,
1689
+ "w": 160,
1690
+ "h": 40
1691
+ },
1692
+ {
1693
+ "id": "fx-2-t",
1694
+ "x": 437.4000244140625,
1695
+ "y": 875.5,
1696
+ "w": 112,
1697
+ "h": 20
1698
+ },
1699
+ {
1700
+ "id": "fx-3",
1701
+ "x": 241.00003051757812,
1702
+ "y": 865.5,
1703
+ "w": 164.39999389648438,
1704
+ "h": 40
1705
+ },
1706
+ {
1707
+ "id": "fx-3-t",
1708
+ "x": 259.20001220703125,
1709
+ "y": 875.5,
1710
+ "w": 128,
1711
+ "h": 20
1712
+ },
1713
+ {
1714
+ "id": "fx-4",
1715
+ "x": 16.000030517578125,
1716
+ "y": 865.5,
1717
+ "w": 217,
1718
+ "h": 40
1719
+ },
1720
+ {
1721
+ "id": "fx-4-t",
1722
+ "x": 112.50003051757812,
1723
+ "y": 875.5,
1724
+ "w": 24,
1725
+ "h": 20
1726
+ }
1727
+ ]
1728
+ },
1729
+ "390-rtl": {
1730
+ "width": 390,
1731
+ "direction": "rtl",
1732
+ "frames": [
1733
+ {
1734
+ "id": "root",
1735
+ "x": 0,
1736
+ "y": 0,
1737
+ "w": 390,
1738
+ "h": 1102.875
1739
+ },
1740
+ {
1741
+ "id": "header",
1742
+ "x": 16,
1743
+ "y": 16,
1744
+ "w": 358,
1745
+ "h": 42
1746
+ },
1747
+ {
1748
+ "id": "hdr-avatar",
1749
+ "x": 342,
1750
+ "y": 21,
1751
+ "w": 32,
1752
+ "h": 32
1753
+ },
1754
+ {
1755
+ "id": "hdr-text",
1756
+ "x": 148,
1757
+ "y": 16,
1758
+ "w": 182,
1759
+ "h": 42
1760
+ },
1761
+ {
1762
+ "id": "hdr-title",
1763
+ "x": 148,
1764
+ "y": 16,
1765
+ "w": 182,
1766
+ "h": 20
1767
+ },
1768
+ {
1769
+ "id": "hdr-sub",
1770
+ "x": 148,
1771
+ "y": 38,
1772
+ "w": 182,
1773
+ "h": 20
1774
+ },
1775
+ {
1776
+ "id": "hdr-badge",
1777
+ "x": 116,
1778
+ "y": 27,
1779
+ "w": 20,
1780
+ "h": 20
1781
+ },
1782
+ {
1783
+ "id": "hdr-scan",
1784
+ "x": 16,
1785
+ "y": 19,
1786
+ "w": 88,
1787
+ "h": 36
1788
+ },
1789
+ {
1790
+ "id": "grid",
1791
+ "x": 16,
1792
+ "y": 74,
1793
+ "w": 358,
1794
+ "h": 674.875
1795
+ },
1796
+ {
1797
+ "id": "nav-card",
1798
+ "x": 16,
1799
+ "y": 74,
1800
+ "w": 358,
1801
+ "h": 205
1802
+ },
1803
+ {
1804
+ "id": "nav-heading",
1805
+ "x": 28,
1806
+ "y": 86,
1807
+ "w": 334,
1808
+ "h": 20
1809
+ },
1810
+ {
1811
+ "id": "row-1",
1812
+ "x": 28,
1813
+ "y": 114,
1814
+ "w": 334,
1815
+ "h": 32
1816
+ },
1817
+ {
1818
+ "id": "row-2",
1819
+ "x": 28,
1820
+ "y": 154,
1821
+ "w": 334,
1822
+ "h": 32
1823
+ },
1824
+ {
1825
+ "id": "row-3",
1826
+ "x": 28,
1827
+ "y": 194,
1828
+ "w": 334,
1829
+ "h": 32
1830
+ },
1831
+ {
1832
+ "id": "nav-div",
1833
+ "x": 28,
1834
+ "y": 234,
1835
+ "w": 334,
1836
+ "h": 1
1837
+ },
1838
+ {
1839
+ "id": "nav-toggle",
1840
+ "x": 28,
1841
+ "y": 243,
1842
+ "w": 334,
1843
+ "h": 24
1844
+ },
1845
+ {
1846
+ "id": "main-card",
1847
+ "x": 16,
1848
+ "y": 291,
1849
+ "w": 358,
1850
+ "h": 349.875
1851
+ },
1852
+ {
1853
+ "id": "main-heading",
1854
+ "x": 28,
1855
+ "y": 303,
1856
+ "w": 334,
1857
+ "h": 20
1858
+ },
1859
+ {
1860
+ "id": "media",
1861
+ "x": 28,
1862
+ "y": 333,
1863
+ "w": 334,
1864
+ "h": 187.875
1865
+ },
1866
+ {
1867
+ "id": "media-img",
1868
+ "x": 28,
1869
+ "y": 333,
1870
+ "w": 334,
1871
+ "h": 187.875
1872
+ },
1873
+ {
1874
+ "id": "media-badge",
1875
+ "x": 302,
1876
+ "y": 341,
1877
+ "w": 52,
1878
+ "h": 28
1879
+ },
1880
+ {
1881
+ "id": "main-md",
1882
+ "x": 28,
1883
+ "y": 530.875,
1884
+ "w": 334,
1885
+ "h": 80
1886
+ },
1887
+ {
1888
+ "id": "main-progress",
1889
+ "x": 28,
1890
+ "y": 620.875,
1891
+ "w": 334,
1892
+ "h": 8
1893
+ },
1894
+ {
1895
+ "id": "footer-card",
1896
+ "x": 16,
1897
+ "y": 652.875,
1898
+ "w": 358,
1899
+ "h": 96
1900
+ },
1901
+ {
1902
+ "id": "pill-1",
1903
+ "x": 318,
1904
+ "y": 664.875,
1905
+ "w": 44,
1906
+ "h": 28
1907
+ },
1908
+ {
1909
+ "id": "pill-2",
1910
+ "x": 242,
1911
+ "y": 664.875,
1912
+ "w": 68,
1913
+ "h": 28
1914
+ },
1915
+ {
1916
+ "id": "pill-3",
1917
+ "x": 182,
1918
+ "y": 664.875,
1919
+ "w": 52,
1920
+ "h": 28
1921
+ },
1922
+ {
1923
+ "id": "pill-4",
1924
+ "x": 90,
1925
+ "y": 664.875,
1926
+ "w": 84,
1927
+ "h": 28
1928
+ },
1929
+ {
1930
+ "id": "footer-spacer",
1931
+ "x": 92,
1932
+ "y": 718.375,
1933
+ "w": 270,
1934
+ "h": 1
1935
+ },
1936
+ {
1937
+ "id": "footer-more",
1938
+ "x": 28,
1939
+ "y": 700.875,
1940
+ "w": 56,
1941
+ "h": 36
1942
+ },
1943
+ {
1944
+ "id": "form",
1945
+ "x": 16,
1946
+ "y": 764.875,
1947
+ "w": 358,
1948
+ "h": 218
1949
+ },
1950
+ {
1951
+ "id": "form-heading",
1952
+ "x": 28,
1953
+ "y": 776.875,
1954
+ "w": 334,
1955
+ "h": 20
1956
+ },
1957
+ {
1958
+ "id": "echo-field",
1959
+ "x": 28,
1960
+ "y": 806.875,
1961
+ "w": 334,
1962
+ "h": 36
1963
+ },
1964
+ {
1965
+ "id": "form-body",
1966
+ "x": 28,
1967
+ "y": 852.875,
1968
+ "w": 334,
1969
+ "h": 72
1970
+ },
1971
+ {
1972
+ "id": "form-row",
1973
+ "x": 28,
1974
+ "y": 934.875,
1975
+ "w": 334,
1976
+ "h": 36
1977
+ },
1978
+ {
1979
+ "id": "form-sub",
1980
+ "x": 172,
1981
+ "y": 934.875,
1982
+ "w": 190,
1983
+ "h": 36
1984
+ },
1985
+ {
1986
+ "id": "form-actions",
1987
+ "x": 28,
1988
+ "y": 934.875,
1989
+ "w": 136,
1990
+ "h": 36
1991
+ },
1992
+ {
1993
+ "id": "form-cancel",
1994
+ "x": 92,
1995
+ "y": 934.875,
1996
+ "w": 72,
1997
+ "h": 36
1998
+ },
1999
+ {
2000
+ "id": "form-send",
2001
+ "x": 28,
2002
+ "y": 934.875,
2003
+ "w": 56,
2004
+ "h": 36
2005
+ },
2006
+ {
2007
+ "id": "flex-demo",
2008
+ "x": 16,
2009
+ "y": 998.875,
2010
+ "w": 358,
2011
+ "h": 88
2012
+ },
2013
+ {
2014
+ "id": "fx-1",
2015
+ "x": 184,
2016
+ "y": 998.875,
2017
+ "w": 190,
2018
+ "h": 40
2019
+ },
2020
+ {
2021
+ "id": "fx-1-t",
2022
+ "x": 207,
2023
+ "y": 1008.875,
2024
+ "w": 144,
2025
+ "h": 20
2026
+ },
2027
+ {
2028
+ "id": "fx-2",
2029
+ "x": 16,
2030
+ "y": 998.875,
2031
+ "w": 160,
2032
+ "h": 40
2033
+ },
2034
+ {
2035
+ "id": "fx-2-t",
2036
+ "x": 40,
2037
+ "y": 1008.875,
2038
+ "w": 112,
2039
+ "h": 20
2040
+ },
2041
+ {
2042
+ "id": "fx-3",
2043
+ "x": 195,
2044
+ "y": 1046.875,
2045
+ "w": 179,
2046
+ "h": 40
2047
+ },
2048
+ {
2049
+ "id": "fx-3-t",
2050
+ "x": 220.5,
2051
+ "y": 1056.875,
2052
+ "w": 128,
2053
+ "h": 20
2054
+ },
2055
+ {
2056
+ "id": "fx-4",
2057
+ "x": 97.5,
2058
+ "y": 1046.875,
2059
+ "w": 89.5,
2060
+ "h": 40
2061
+ },
2062
+ {
2063
+ "id": "fx-4-t",
2064
+ "x": 130.25,
2065
+ "y": 1056.875,
2066
+ "w": 24,
2067
+ "h": 20
2068
+ }
2069
+ ]
2070
+ }
2071
+ }
2072
+ }