@zeyos/zx 2.1.0 → 2.2.1

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 (311) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.md +15 -0
  3. package/dist/types/compat/base.d.ts +156 -0
  4. package/dist/types/compat/globals.d.ts +20 -0
  5. package/dist/types/compat/index.d.ts +128 -0
  6. package/dist/types/compat/map/basic.d.ts +175 -0
  7. package/dist/types/compat/map/data.d.ts +102 -0
  8. package/dist/types/compat/map/date-time.d.ts +80 -0
  9. package/dist/types/compat/map/factory.d.ts +9 -0
  10. package/dist/types/compat/map/form.d.ts +98 -0
  11. package/dist/types/compat/map/helpers.d.ts +12 -0
  12. package/dist/types/compat/map/http.d.ts +36 -0
  13. package/dist/types/compat/map/layout.d.ts +106 -0
  14. package/dist/types/compat/map/options.d.ts +80 -0
  15. package/dist/types/compat/map/select.d.ts +95 -0
  16. package/dist/types/compat/map/stubs.d.ts +32 -0
  17. package/dist/types/compat/map/utilities.d.ts +37 -0
  18. package/dist/types/compat-entry.d.ts +5 -0
  19. package/dist/types/components/badge/badge.d.ts +46 -0
  20. package/dist/types/components/breadcrumb/breadcrumb.d.ts +200 -0
  21. package/dist/types/components/button/button.d.ts +42 -0
  22. package/dist/types/components/check-button/check-button.d.ts +98 -0
  23. package/dist/types/components/checklist/checklist.d.ts +143 -0
  24. package/dist/types/components/checklist/field-adapter.d.ts +5 -0
  25. package/dist/types/components/context-menu/context-menu.d.ts +130 -0
  26. package/dist/types/components/copy/copy-button.d.ts +48 -0
  27. package/dist/types/components/copy/copy-input.d.ts +91 -0
  28. package/dist/types/components/data-filter/data-filter.d.ts +250 -0
  29. package/dist/types/components/data-filter/filter-core.d.ts +52 -0
  30. package/dist/types/components/date-picker/date-picker.d.ts +137 -0
  31. package/dist/types/components/date-picker/date-range-picker.d.ts +350 -0
  32. package/dist/types/components/date-picker/field-adapter.d.ts +6 -0
  33. package/dist/types/components/date-picker/month-picker.d.ts +75 -0
  34. package/dist/types/components/date-picker/range-field-adapter.d.ts +7 -0
  35. package/dist/types/components/date-picker/time-picker.d.ts +127 -0
  36. package/dist/types/components/datebox/date-range-box.d.ts +218 -0
  37. package/dist/types/components/datebox/datebox.d.ts +160 -0
  38. package/dist/types/components/datebox/field-adapter.d.ts +5 -0
  39. package/dist/types/components/dialog/dialog.d.ts +284 -0
  40. package/dist/types/components/dropdown/dropdown.d.ts +118 -0
  41. package/dist/types/components/empty-state/empty-state.d.ts +38 -0
  42. package/dist/types/components/field/field.d.ts +231 -0
  43. package/dist/types/components/field-upload/field-adapter.d.ts +5 -0
  44. package/dist/types/components/field-upload/field-upload.d.ts +213 -0
  45. package/dist/types/components/fieldset/fieldset.d.ts +125 -0
  46. package/dist/types/components/finder/finder.d.ts +252 -0
  47. package/dist/types/components/form/form.d.ts +194 -0
  48. package/dist/types/components/groupbox/groupbox.d.ts +89 -0
  49. package/dist/types/components/layout/layout.d.ts +132 -0
  50. package/dist/types/components/loading/inline-loading.d.ts +86 -0
  51. package/dist/types/components/loading/progress-bar.d.ts +168 -0
  52. package/dist/types/components/loading/spinner.d.ts +34 -0
  53. package/dist/types/components/master-panel/master-panel.d.ts +112 -0
  54. package/dist/types/components/menu-button/menu-button.d.ts +142 -0
  55. package/dist/types/components/message/message.d.ts +212 -0
  56. package/dist/types/components/modal/modal.d.ts +105 -0
  57. package/dist/types/components/multi-value-editor/field-adapter.d.ts +5 -0
  58. package/dist/types/components/multi-value-editor/multi-value-editor.d.ts +66 -0
  59. package/dist/types/components/navigation-bar/navigation-bar.d.ts +229 -0
  60. package/dist/types/components/number-field/field-adapter.d.ts +5 -0
  61. package/dist/types/components/number-field/number-field.d.ts +292 -0
  62. package/dist/types/components/pagination/pagination.d.ts +267 -0
  63. package/dist/types/components/panel/panel.d.ts +194 -0
  64. package/dist/types/components/permission/permission.d.ts +93 -0
  65. package/dist/types/components/rating/field-adapter.d.ts +5 -0
  66. package/dist/types/components/rating/rating.d.ts +213 -0
  67. package/dist/types/components/search/search.d.ts +98 -0
  68. package/dist/types/components/select/field-adapter.d.ts +5 -0
  69. package/dist/types/components/select/filter.d.ts +11 -0
  70. package/dist/types/components/select/select.d.ts +235 -0
  71. package/dist/types/components/skeleton/skeleton.d.ts +97 -0
  72. package/dist/types/components/slider/field-adapter.d.ts +5 -0
  73. package/dist/types/components/slider/slider.d.ts +216 -0
  74. package/dist/types/components/split-view/split-view.d.ts +335 -0
  75. package/dist/types/components/stepper/stepper.d.ts +314 -0
  76. package/dist/types/components/stepper/steps.d.ts +131 -0
  77. package/dist/types/components/tabbox/tabbox.d.ts +230 -0
  78. package/dist/types/components/table/sort.d.ts +49 -0
  79. package/dist/types/components/table/table.d.ts +872 -0
  80. package/dist/types/components/tag-picker/field-adapter.d.ts +5 -0
  81. package/dist/types/components/tag-picker/tag-picker.d.ts +375 -0
  82. package/dist/types/components/timebox/field-adapter.d.ts +5 -0
  83. package/dist/types/components/timebox/timebox.d.ts +121 -0
  84. package/dist/types/components/toggle/field-adapter.d.ts +5 -0
  85. package/dist/types/components/toggle/toggle.d.ts +94 -0
  86. package/dist/types/components/toolbar/toolbar.d.ts +230 -0
  87. package/dist/types/components/tooltip/tooltip.d.ts +183 -0
  88. package/dist/types/components/tree/hierarchy.d.ts +113 -0
  89. package/dist/types/components/tree/tree.d.ts +383 -0
  90. package/dist/types/components/truncate/truncate.d.ts +61 -0
  91. package/dist/types/components/value-list/field-adapter.d.ts +5 -0
  92. package/dist/types/components/value-list/value-list.d.ts +143 -0
  93. package/dist/types/core/breakpoint.d.ts +68 -0
  94. package/dist/types/core/component.d.ts +115 -0
  95. package/dist/types/core/date.d.ts +50 -0
  96. package/dist/types/core/dom.d.ts +86 -0
  97. package/dist/types/core/export.d.ts +70 -0
  98. package/dist/types/core/fontawesome.d.ts +107 -0
  99. package/dist/types/core/format.d.ts +107 -0
  100. package/dist/types/core/http.d.ts +122 -0
  101. package/dist/types/core/i18n.d.ts +35 -0
  102. package/dist/types/core/icons.d.ts +137 -0
  103. package/dist/types/core/keyboard.d.ts +72 -0
  104. package/dist/types/core/position.d.ts +45 -0
  105. package/dist/types/core/storage.d.ts +46 -0
  106. package/dist/types/core/util.d.ts +117 -0
  107. package/dist/types/elements/define.d.ts +73 -0
  108. package/dist/types/elements/reflect.d.ts +27 -0
  109. package/dist/types/index.d.ts +79 -0
  110. package/dist/types/zeyos/connect.d.ts +65 -0
  111. package/dist/types/zeyos/form.d.ts +140 -0
  112. package/dist/types/zeyos/icons.d.ts +104 -0
  113. package/dist/types/zeyos/index.d.ts +12 -0
  114. package/dist/types/zeyos/modules.d.ts +110 -0
  115. package/dist/types/zeyos/query.d.ts +157 -0
  116. package/dist/types/zeyos/schema.d.ts +79 -0
  117. package/dist/types/zeyos/select.d.ts +167 -0
  118. package/dist/types/zeyos/table.d.ts +205 -0
  119. package/dist/zx-compat.esm.js +375 -39
  120. package/dist/zx-compat.esm.min.js +1 -1
  121. package/dist/zx-compat.global.js +372 -73
  122. package/dist/zx-compat.global.min.js +3 -3
  123. package/dist/zx-zeyos.esm.js +355 -49
  124. package/dist/zx-zeyos.esm.min.js +1 -1
  125. package/dist/zx.css +68 -6
  126. package/dist/zx.esm.js +359 -73
  127. package/dist/zx.esm.min.js +3 -3
  128. package/dist/zx.global.js +359 -73
  129. package/dist/zx.global.min.js +3 -3
  130. package/dist/zx.min.css +1 -1
  131. package/docs/api.json +48 -2
  132. package/docs/llms.md +31 -0
  133. package/package.json +37 -9
  134. package/src/compat/base.js +291 -0
  135. package/src/compat/globals.js +165 -0
  136. package/src/compat/index.js +84 -0
  137. package/src/compat/map/basic.js +464 -0
  138. package/src/compat/map/data.js +232 -0
  139. package/src/compat/map/date-time.js +177 -0
  140. package/src/compat/map/factory.js +45 -0
  141. package/src/compat/map/form.js +330 -0
  142. package/src/compat/map/helpers.js +46 -0
  143. package/src/compat/map/http.js +117 -0
  144. package/src/compat/map/layout.js +256 -0
  145. package/src/compat/map/options.js +267 -0
  146. package/src/compat/map/select.js +198 -0
  147. package/src/compat/map/stubs.js +26 -0
  148. package/src/compat/map/utilities.js +113 -0
  149. package/src/compat-entry.js +11 -0
  150. package/src/components/badge/badge.css +147 -0
  151. package/src/components/badge/badge.js +92 -0
  152. package/src/components/breadcrumb/breadcrumb.css +105 -0
  153. package/src/components/breadcrumb/breadcrumb.js +331 -0
  154. package/src/components/button/button.css +104 -0
  155. package/src/components/button/button.js +76 -0
  156. package/src/components/check-button/check-button.css +66 -0
  157. package/src/components/check-button/check-button.js +167 -0
  158. package/src/components/checklist/checklist.css +65 -0
  159. package/src/components/checklist/checklist.js +282 -0
  160. package/src/components/checklist/field-adapter.js +46 -0
  161. package/src/components/context-menu/context-menu.css +54 -0
  162. package/src/components/context-menu/context-menu.js +334 -0
  163. package/src/components/copy/copy-button.css +27 -0
  164. package/src/components/copy/copy-button.js +78 -0
  165. package/src/components/copy/copy-input.css +59 -0
  166. package/src/components/copy/copy-input.js +123 -0
  167. package/src/components/data-filter/data-filter.css +53 -0
  168. package/src/components/data-filter/data-filter.js +400 -0
  169. package/src/components/data-filter/filter-core.js +128 -0
  170. package/src/components/date-picker/date-picker.css +181 -0
  171. package/src/components/date-picker/date-picker.js +500 -0
  172. package/src/components/date-picker/date-range-picker.css +264 -0
  173. package/src/components/date-picker/date-range-picker.js +990 -0
  174. package/src/components/date-picker/field-adapter.js +36 -0
  175. package/src/components/date-picker/month-picker.js +223 -0
  176. package/src/components/date-picker/range-field-adapter.js +31 -0
  177. package/src/components/date-picker/time-picker.css +191 -0
  178. package/src/components/date-picker/time-picker.js +406 -0
  179. package/src/components/datebox/date-range-box.css +128 -0
  180. package/src/components/datebox/date-range-box.js +492 -0
  181. package/src/components/datebox/datebox.css +108 -0
  182. package/src/components/datebox/datebox.js +358 -0
  183. package/src/components/datebox/field-adapter.js +34 -0
  184. package/src/components/dialog/dialog.css +74 -0
  185. package/src/components/dialog/dialog.js +450 -0
  186. package/src/components/dropdown/dropdown.css +24 -0
  187. package/src/components/dropdown/dropdown.js +288 -0
  188. package/src/components/empty-state/empty-state.css +80 -0
  189. package/src/components/empty-state/empty-state.js +92 -0
  190. package/src/components/field/field.css +127 -0
  191. package/src/components/field/field.js +605 -0
  192. package/src/components/field-upload/field-adapter.js +21 -0
  193. package/src/components/field-upload/field-upload.css +108 -0
  194. package/src/components/field-upload/field-upload.js +475 -0
  195. package/src/components/fieldset/fieldset.css +37 -0
  196. package/src/components/fieldset/fieldset.js +307 -0
  197. package/src/components/finder/finder.css +98 -0
  198. package/src/components/finder/finder.js +509 -0
  199. package/src/components/form/form.css +32 -0
  200. package/src/components/form/form.js +302 -0
  201. package/src/components/groupbox/groupbox.css +51 -0
  202. package/src/components/groupbox/groupbox.js +199 -0
  203. package/src/components/layout/layout.css +117 -0
  204. package/src/components/layout/layout.js +136 -0
  205. package/src/components/loading/inline-loading.css +34 -0
  206. package/src/components/loading/inline-loading.js +140 -0
  207. package/src/components/loading/progress-bar.css +115 -0
  208. package/src/components/loading/progress-bar.js +259 -0
  209. package/src/components/loading/spinner.css +58 -0
  210. package/src/components/loading/spinner.js +57 -0
  211. package/src/components/master-panel/master-panel.css +51 -0
  212. package/src/components/master-panel/master-panel.js +203 -0
  213. package/src/components/menu-button/menu-button.css +49 -0
  214. package/src/components/menu-button/menu-button.js +294 -0
  215. package/src/components/message/message.css +122 -0
  216. package/src/components/message/message.js +499 -0
  217. package/src/components/modal/modal.css +47 -0
  218. package/src/components/modal/modal.js +203 -0
  219. package/src/components/multi-value-editor/field-adapter.js +44 -0
  220. package/src/components/multi-value-editor/multi-value-editor.css +56 -0
  221. package/src/components/multi-value-editor/multi-value-editor.js +170 -0
  222. package/src/components/navigation-bar/navigation-bar.css +130 -0
  223. package/src/components/navigation-bar/navigation-bar.js +450 -0
  224. package/src/components/number-field/field-adapter.js +40 -0
  225. package/src/components/number-field/number-field.css +77 -0
  226. package/src/components/number-field/number-field.js +545 -0
  227. package/src/components/pagination/pagination.css +95 -0
  228. package/src/components/pagination/pagination.js +481 -0
  229. package/src/components/panel/panel.css +123 -0
  230. package/src/components/panel/panel.js +336 -0
  231. package/src/components/permission/permission.css +47 -0
  232. package/src/components/permission/permission.js +198 -0
  233. package/src/components/rating/field-adapter.js +34 -0
  234. package/src/components/rating/rating.css +97 -0
  235. package/src/components/rating/rating.js +395 -0
  236. package/src/components/search/search.css +70 -0
  237. package/src/components/search/search.js +193 -0
  238. package/src/components/select/field-adapter.js +24 -0
  239. package/src/components/select/filter.js +39 -0
  240. package/src/components/select/select.css +180 -0
  241. package/src/components/select/select.js +663 -0
  242. package/src/components/skeleton/skeleton.css +76 -0
  243. package/src/components/skeleton/skeleton.js +139 -0
  244. package/src/components/slider/field-adapter.js +36 -0
  245. package/src/components/slider/slider.css +181 -0
  246. package/src/components/slider/slider.js +399 -0
  247. package/src/components/split-view/split-view.css +139 -0
  248. package/src/components/split-view/split-view.js +806 -0
  249. package/src/components/stepper/stepper.css +234 -0
  250. package/src/components/stepper/stepper.js +459 -0
  251. package/src/components/stepper/steps.js +131 -0
  252. package/src/components/tabbox/tabbox.css +281 -0
  253. package/src/components/tabbox/tabbox.js +484 -0
  254. package/src/components/table/sort.js +85 -0
  255. package/src/components/table/table.css +364 -0
  256. package/src/components/table/table.js +1711 -0
  257. package/src/components/tag-picker/field-adapter.js +35 -0
  258. package/src/components/tag-picker/tag-picker.css +169 -0
  259. package/src/components/tag-picker/tag-picker.js +837 -0
  260. package/src/components/timebox/field-adapter.js +24 -0
  261. package/src/components/timebox/timebox.css +51 -0
  262. package/src/components/timebox/timebox.js +276 -0
  263. package/src/components/toggle/field-adapter.js +24 -0
  264. package/src/components/toggle/toggle.css +66 -0
  265. package/src/components/toggle/toggle.js +150 -0
  266. package/src/components/toolbar/toolbar.css +81 -0
  267. package/src/components/toolbar/toolbar.js +511 -0
  268. package/src/components/tooltip/tooltip.css +36 -0
  269. package/src/components/tooltip/tooltip.js +420 -0
  270. package/src/components/tree/hierarchy.js +151 -0
  271. package/src/components/tree/tree.css +99 -0
  272. package/src/components/tree/tree.js +784 -0
  273. package/src/components/truncate/truncate.css +20 -0
  274. package/src/components/truncate/truncate.js +92 -0
  275. package/src/components/value-list/field-adapter.js +24 -0
  276. package/src/components/value-list/value-list.css +108 -0
  277. package/src/components/value-list/value-list.js +336 -0
  278. package/src/core/breakpoint.js +150 -0
  279. package/src/core/component.js +292 -0
  280. package/src/core/date.js +216 -0
  281. package/src/core/dom.js +260 -0
  282. package/src/core/export.js +204 -0
  283. package/src/core/fontawesome.js +177 -0
  284. package/src/core/format.js +283 -0
  285. package/src/core/http.js +246 -0
  286. package/src/core/i18n.js +83 -0
  287. package/src/core/icons.js +283 -0
  288. package/src/core/keyboard.js +240 -0
  289. package/src/core/position.js +177 -0
  290. package/src/core/storage.js +175 -0
  291. package/src/core/util.js +336 -0
  292. package/src/elements/define.js +715 -0
  293. package/src/elements/reflect.js +79 -0
  294. package/src/index.js +131 -0
  295. package/src/zeyos/connect.js +142 -0
  296. package/src/zeyos/form.js +254 -0
  297. package/src/zeyos/icons.js +92 -0
  298. package/src/zeyos/index.js +21 -0
  299. package/src/zeyos/modules.js +269 -0
  300. package/src/zeyos/query.js +199 -0
  301. package/src/zeyos/schema.js +474 -0
  302. package/src/zeyos/select.js +175 -0
  303. package/src/zeyos/table.js +272 -0
  304. package/styles/base.css +124 -0
  305. package/styles/icons.css +34 -0
  306. package/styles/tokens/dark.css +84 -0
  307. package/styles/tokens/density.css +9 -0
  308. package/styles/tokens/global.css +80 -0
  309. package/styles/tokens/modules.css +109 -0
  310. package/styles/tokens/semantic.css +49 -0
  311. package/styles/zx.css +61 -0
@@ -0,0 +1,167 @@
1
+ import { Select } from '../index.js';
2
+ export type ZeyosSelectOptions = {
3
+ /**
4
+ * Resource fields or aliased projections.
5
+ */
6
+ fields?: string[] | Record<string, string>;
7
+ /**
8
+ * Display-label field or reader.
9
+ */
10
+ labelKey?: string | ((item: Record<string, unknown>) => string);
11
+ /**
12
+ * Value field or reader.
13
+ */
14
+ valueKey?: string | ((item: Record<string, unknown>) => unknown);
15
+ /**
16
+ * Indexed text fields described to the query builder.
17
+ */
18
+ searchFields?: string[];
19
+ /**
20
+ * Maximum rows returned for one query.
21
+ */
22
+ limit?: number;
23
+ /**
24
+ * Persistent ZeyOS field predicates.
25
+ */
26
+ filters?: Record<string, unknown>;
27
+ /**
28
+ * Initially selected id or record.
29
+ */
30
+ value?: unknown;
31
+ /**
32
+ * Optional seed records.
33
+ */
34
+ items?: Record<string, unknown>[];
35
+ /**
36
+ * Option renderer.
37
+ */
38
+ renderItem?: ((item: Record<string, unknown>) => Node | string) | null;
39
+ /**
40
+ * Selected-value renderer.
41
+ */
42
+ renderValue?: ((item: Record<string, unknown>) => string) | null;
43
+ /**
44
+ * Whether interaction is disabled.
45
+ */
46
+ disabled?: boolean;
47
+ /**
48
+ * Empty control text.
49
+ */
50
+ placeholder?: string;
51
+ /**
52
+ * Whether selection may be cleared.
53
+ */
54
+ clearable?: boolean;
55
+ /**
56
+ * Minimum async query length.
57
+ */
58
+ minQuery?: number;
59
+ /**
60
+ * Async query delay in milliseconds.
61
+ */
62
+ debounce?: number;
63
+ /**
64
+ * Maximum option-list height in pixels.
65
+ */
66
+ listHeight?: number;
67
+ /**
68
+ * Optional group reader.
69
+ */
70
+ groupKey?: string | ((item: Record<string, unknown>) => unknown) | null;
71
+ /**
72
+ * Local messages.
73
+ */
74
+ msg?: Record<string, string> | Record<string, Record<string, string>>;
75
+ /**
76
+ * Change listener.
77
+ */
78
+ onchange?: (event: CustomEvent<Record<string, unknown>>) => void;
79
+ /**
80
+ * Open listener.
81
+ */
82
+ onopen?: (event: CustomEvent<Record<string, unknown>>) => void;
83
+ /**
84
+ * Close listener.
85
+ */
86
+ onclose?: (event: CustomEvent<Record<string, unknown>>) => void;
87
+ /**
88
+ * Query listener.
89
+ */
90
+ onquery?: (event: CustomEvent<Record<string, unknown>>) => void;
91
+ /**
92
+ * Loaded listener.
93
+ */
94
+ onloaded?: (event: CustomEvent<Record<string, unknown>>) => void;
95
+ };
96
+ export type ZeyosListResult = {
97
+ /**
98
+ * Normalized records.
99
+ */
100
+ data: Record<string, unknown>[];
101
+ /**
102
+ * Optional server-side count.
103
+ */
104
+ count?: number;
105
+ };
106
+ /**
107
+ * @typedef {Object} ZeyosSelectOptions
108
+ * @property {string[]|Record<string, string>} [fields] Resource fields or aliased projections.
109
+ * @property {string|((item: Record<string, unknown>) => string)} [labelKey] Display-label field or reader.
110
+ * @property {string|((item: Record<string, unknown>) => unknown)} [valueKey='ID'] Value field or reader.
111
+ * @property {string[]} [searchFields] Indexed text fields described to the query builder.
112
+ * @property {number} [limit=50] Maximum rows returned for one query.
113
+ * @property {Record<string, unknown>} [filters] Persistent ZeyOS field predicates.
114
+ * @property {unknown} [value=null] Initially selected id or record.
115
+ * @property {Record<string, unknown>[]} [items=[]] Optional seed records.
116
+ * @property {((item: Record<string, unknown>) => Node|string)|null} [renderItem=null] Option renderer.
117
+ * @property {((item: Record<string, unknown>) => string)|null} [renderValue=null] Selected-value renderer.
118
+ * @property {boolean} [disabled=false] Whether interaction is disabled.
119
+ * @property {string} [placeholder=''] Empty control text.
120
+ * @property {boolean} [clearable=false] Whether selection may be cleared.
121
+ * @property {number} [minQuery=0] Minimum async query length.
122
+ * @property {number} [debounce=200] Async query delay in milliseconds.
123
+ * @property {number} [listHeight=280] Maximum option-list height in pixels.
124
+ * @property {string|((item: Record<string, unknown>) => unknown)|null} [groupKey=null] Optional group reader.
125
+ * @property {Record<string, string>|Record<string, Record<string, string>>} [msg] Local messages.
126
+ * @property {(event: CustomEvent<Record<string, unknown>>) => void} [onchange] Change listener.
127
+ * @property {(event: CustomEvent<Record<string, unknown>>) => void} [onopen] Open listener.
128
+ * @property {(event: CustomEvent<Record<string, unknown>>) => void} [onclose] Close listener.
129
+ * @property {(event: CustomEvent<Record<string, unknown>>) => void} [onquery] Query listener.
130
+ * @property {(event: CustomEvent<Record<string, unknown>>) => void} [onloaded] Loaded listener.
131
+ */
132
+ /**
133
+ * @typedef {Object} ZeyosListResult
134
+ * @property {Record<string, unknown>[]} data Normalized records.
135
+ * @property {number} [count] Optional server-side count.
136
+ */
137
+ /**
138
+ * Builds the DOM-free Zx Select options used by {@link zeyosSelect}. The generated async filter
139
+ * sends full-text input as `query`, keeps predicates under `filters` (plural), and normalizes both
140
+ * array and `{data,count}` responses.
141
+ * @param {Record<string, any>} client Injected ZeyOS client instance.
142
+ * @param {string} resource Resource name such as `accounts`.
143
+ * @param {ZeyosSelectOptions} [opts={}] Query and Select options.
144
+ * @returns {Record<string, any>} Plain Zx Select options.
145
+ */
146
+ export declare function buildZeyosSelectConfig(client: Record<string, any>, resource: string, opts?: ZeyosSelectOptions): Record<string, any>;
147
+ /**
148
+ * Creates an async Zx Select backed by the injected client's generated list operation. A non-null
149
+ * initial id is hydrated through the resource get operation; await `select.ready` when code must
150
+ * wait for that label before presenting the control.
151
+ * @param {Record<string, any>} client Injected ZeyOS client instance.
152
+ * @param {string} resource Resource name such as `accounts`.
153
+ * @param {ZeyosSelectOptions} [opts={}] Query and Select options.
154
+ * @returns {Select & {ready: Promise<Select>}} Configured Select with an initial-value readiness promise.
155
+ */
156
+ export declare function zeyosSelect(client: Record<string, any>, resource: string, opts?: ZeyosSelectOptions): Select & {
157
+ ready: Promise<Select>;
158
+ };
159
+ /**
160
+ * Normalizes list output without importing the client package. If the injected client exposes its
161
+ * own `normalizeListResult`, that implementation wins; otherwise arrays and `.data` are handled
162
+ * locally and numeric string counts are accepted.
163
+ * @param {Record<string, any>} client Injected ZeyOS client instance.
164
+ * @param {unknown} result Generated list-operation result.
165
+ * @returns {ZeyosListResult} Normalized rows and optional count.
166
+ */
167
+ export declare function normalizeZeyosListResult(client: Record<string, any>, result: unknown): ZeyosListResult;
@@ -0,0 +1,205 @@
1
+ import { Table } from '../index.js';
2
+ export type ZeyosTableOptions = {
3
+ /**
4
+ * Curated ordered field allow-list.
5
+ */
6
+ fields?: string[];
7
+ /**
8
+ * Per-field label overrides.
9
+ */
10
+ labels?: Record<string, string>;
11
+ /**
12
+ * Row id accessor.
13
+ */
14
+ rowId?: string | ((row: Record<string, unknown>) => unknown);
15
+ /**
16
+ * Server page size.
17
+ */
18
+ pageSize?: number;
19
+ /**
20
+ * Initial server sort.
21
+ */
22
+ sort?: {
23
+ id: string;
24
+ dir: 'asc' | 'desc';
25
+ } | null;
26
+ /**
27
+ * Initial ZeyOS predicates.
28
+ */
29
+ filters?: Record<string, unknown>;
30
+ /**
31
+ * Initial full-text query.
32
+ */
33
+ search?: string;
34
+ /**
35
+ * Row selection mode.
36
+ */
37
+ selectable?: false | 'single' | 'multi';
38
+ /**
39
+ * Table scroll-region height.
40
+ */
41
+ height?: number | string | null;
42
+ /**
43
+ * Row activation callback.
44
+ */
45
+ onRowClick?: (row: Record<string, unknown>, event: CustomEvent<Record<string, unknown>>) => void;
46
+ };
47
+ export type ZeyosTableConfig = {
48
+ /**
49
+ * Ordered normalized schema metadata.
50
+ */
51
+ fieldMeta: Record<string, any>[];
52
+ /**
53
+ * Generated Zx columns.
54
+ */
55
+ columns: Record<string, any>[];
56
+ /**
57
+ * API projection including row ids/entity labels.
58
+ */
59
+ projection: Record<string, string>;
60
+ /**
61
+ * Plain Zx Table options.
62
+ */
63
+ tableOptions: Record<string, any>;
64
+ };
65
+ export type ZeyosTableLoadOptions = {
66
+ /**
67
+ * Replacement full-text query.
68
+ */
69
+ search?: string;
70
+ /**
71
+ * Replacement ZeyOS predicates.
72
+ */
73
+ filters?: Record<string, unknown>;
74
+ /**
75
+ * Zero-based page; pages above zero append rows.
76
+ */
77
+ page?: number;
78
+ };
79
+ export type ZeyosTableLoadResult = {
80
+ /**
81
+ * Loaded page rows.
82
+ */
83
+ data: Record<string, unknown>[];
84
+ /**
85
+ * Server count when supplied.
86
+ */
87
+ count: number | null;
88
+ /**
89
+ * Loaded zero-based page.
90
+ */
91
+ page: number;
92
+ /**
93
+ * Whether another page is available.
94
+ */
95
+ hasMore: boolean;
96
+ /**
97
+ * Request passed to the list operation.
98
+ */
99
+ query: Record<string, unknown>;
100
+ };
101
+ export type ZeyosTableBinding = {
102
+ /**
103
+ * Generated Zx table.
104
+ */
105
+ table: Table;
106
+ /**
107
+ * Loads/reloads a server page.
108
+ */
109
+ load: (options?: ZeyosTableLoadOptions) => Promise<ZeyosTableLoadResult>;
110
+ /**
111
+ * Replaces search and reloads page zero.
112
+ */
113
+ setSearch: (search: string) => Promise<ZeyosTableLoadResult>;
114
+ /**
115
+ * Replaces predicates and reloads page zero.
116
+ */
117
+ setFilters: (filters: Record<string, unknown>) => Promise<ZeyosTableLoadResult>;
118
+ /**
119
+ * Appends the next page when available.
120
+ */
121
+ loadMore: () => Promise<ZeyosTableLoadResult>;
122
+ /**
123
+ * Current server count.
124
+ */
125
+ count: number | null;
126
+ /**
127
+ * Current zero-based page.
128
+ */
129
+ page: number;
130
+ /**
131
+ * Whether another page is available.
132
+ */
133
+ hasMore: boolean;
134
+ /**
135
+ * Destroys the generated table.
136
+ */
137
+ destroy: () => void;
138
+ };
139
+ /**
140
+ * @typedef {Object} ZeyosTableOptions
141
+ * @property {string[]} [fields] Curated ordered field allow-list.
142
+ * @property {Record<string, string>} [labels] Per-field label overrides.
143
+ * @property {string|((row: Record<string, unknown>) => unknown)} [rowId='ID'] Row id accessor.
144
+ * @property {number} [pageSize=50] Server page size.
145
+ * @property {{id: string, dir: 'asc'|'desc'}|null} [sort=null] Initial server sort.
146
+ * @property {Record<string, unknown>} [filters] Initial ZeyOS predicates.
147
+ * @property {string} [search=''] Initial full-text query.
148
+ * @property {false|'single'|'multi'} [selectable=false] Row selection mode.
149
+ * @property {number|string|null} [height=null] Table scroll-region height.
150
+ * @property {(row: Record<string, unknown>, event: CustomEvent<Record<string, unknown>>) => void} [onRowClick] Row activation callback.
151
+ */
152
+ /**
153
+ * @typedef {Object} ZeyosTableConfig
154
+ * @property {Record<string, any>[]} fieldMeta Ordered normalized schema metadata.
155
+ * @property {Record<string, any>[]} columns Generated Zx columns.
156
+ * @property {Record<string, string>} projection API projection including row ids/entity labels.
157
+ * @property {Record<string, any>} tableOptions Plain Zx Table options.
158
+ */
159
+ /**
160
+ * @typedef {Object} ZeyosTableLoadOptions
161
+ * @property {string} [search] Replacement full-text query.
162
+ * @property {Record<string, unknown>} [filters] Replacement ZeyOS predicates.
163
+ * @property {number} [page=0] Zero-based page; pages above zero append rows.
164
+ */
165
+ /**
166
+ * @typedef {Object} ZeyosTableLoadResult
167
+ * @property {Record<string, unknown>[]} data Loaded page rows.
168
+ * @property {number|null} count Server count when supplied.
169
+ * @property {number} page Loaded zero-based page.
170
+ * @property {boolean} hasMore Whether another page is available.
171
+ * @property {Record<string, unknown>} query Request passed to the list operation.
172
+ */
173
+ /**
174
+ * @typedef {Object} ZeyosTableBinding
175
+ * @property {Table} table Generated Zx table.
176
+ * @property {(options?: ZeyosTableLoadOptions) => Promise<ZeyosTableLoadResult>} load Loads/reloads a server page.
177
+ * @property {(search: string) => Promise<ZeyosTableLoadResult>} setSearch Replaces search and reloads page zero.
178
+ * @property {(filters: Record<string, unknown>) => Promise<ZeyosTableLoadResult>} setFilters Replaces predicates and reloads page zero.
179
+ * @property {() => Promise<ZeyosTableLoadResult>} loadMore Appends the next page when available.
180
+ * @property {number|null} count Current server count.
181
+ * @property {number} page Current zero-based page.
182
+ * @property {boolean} hasMore Whether another page is available.
183
+ * @property {() => void} destroy Destroys the generated table.
184
+ */
185
+ /**
186
+ * Builds the DOM-free schema-derived columns and Table options used by {@link zeyosTable}. Entity
187
+ * projections include an `<field>_label` alias from a real label field on the referenced resource.
188
+ * Amount fields use each row's real `currency` value for display while retaining the WP14 typed
189
+ * column strategy and right alignment.
190
+ * @param {Record<string, any>} client Injected ZeyOS client instance.
191
+ * @param {string} resource Resource name such as `transactions`.
192
+ * @param {ZeyosTableOptions} [opts={}] Schema, table, and initial query options.
193
+ * @returns {ZeyosTableConfig} Plain columns, projection, and Table options.
194
+ */
195
+ export declare function buildZeyosTableConfig(client: Record<string, any>, resource: string, opts?: ZeyosTableOptions): ZeyosTableConfig;
196
+ /**
197
+ * Generates a server-backed Zx Table. Sorting automatically reloads page zero. `load({page: 0})`
198
+ * replaces data, higher pages append it, and `loadMore()` uses `limit`/`offset` plus the returned
199
+ * count. DataFilter callers can map state with `dataFilterStateToFilters` before `setFilters()`.
200
+ * @param {Record<string, any>} client Injected ZeyOS client instance.
201
+ * @param {string} resource Resource name such as `transactions`.
202
+ * @param {ZeyosTableOptions} [opts={}] Schema, table, and initial query options.
203
+ * @returns {ZeyosTableBinding} Generated table and server-state methods/getters.
204
+ */
205
+ export declare function zeyosTable(client: Record<string, any>, resource: string, opts?: ZeyosTableOptions): ZeyosTableBinding;