@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,212 @@
1
+ import { Component } from '../../core/component.js';
2
+ export type MessageKind = 'info' | 'success' | 'warning' | 'error';
3
+ export type MessageShowOptions = {
4
+ /**
5
+ * Message intent (`danger` aliases `error`).
6
+ */
7
+ kind?: MessageKind | 'danger';
8
+ /**
9
+ * Auto-dismiss delay in milliseconds; zero persists.
10
+ */
11
+ timeout?: number;
12
+ /**
13
+ * Whether to render a close button.
14
+ */
15
+ closable?: boolean;
16
+ };
17
+ export type MessageOptions = {
18
+ /**
19
+ * Default message intent.
20
+ */
21
+ kind?: MessageKind | 'danger';
22
+ /**
23
+ * Default auto-dismiss delay.
24
+ */
25
+ timeout?: number;
26
+ /**
27
+ * Default close-button visibility.
28
+ */
29
+ closable?: boolean;
30
+ /**
31
+ * Maximum number of visible messages.
32
+ */
33
+ maxVisible?: number;
34
+ };
35
+ export type MessageHandle = {
36
+ close: () => void;
37
+ };
38
+ export type ProgressHandle = {
39
+ /**
40
+ * Updates progress and optional text.
41
+ */
42
+ update: (pct: number, text?: string) => void;
43
+ /**
44
+ * Completes and dismisses the progress message.
45
+ */
46
+ done: () => void;
47
+ /**
48
+ * Marks progress as failed and dismisses it later.
49
+ */
50
+ fail: (text?: string) => void;
51
+ };
52
+ /** @typedef {'info'|'success'|'warning'|'error'} MessageKind */
53
+ /**
54
+ * @typedef {Object} MessageShowOptions
55
+ * @property {MessageKind|'danger'} [kind='info'] Message intent (`danger` aliases `error`).
56
+ * @property {number} [timeout=4000] Auto-dismiss delay in milliseconds; zero persists.
57
+ * @property {boolean} [closable=true] Whether to render a close button.
58
+ */
59
+ /**
60
+ * @typedef {Object} MessageOptions
61
+ * @property {MessageKind|'danger'} [kind='info'] Default message intent.
62
+ * @property {number} [timeout=4000] Default auto-dismiss delay.
63
+ * @property {boolean} [closable=true] Default close-button visibility.
64
+ * @property {number} [maxVisible=5] Maximum number of visible messages.
65
+ */
66
+ /** @typedef {{close: () => void}} MessageHandle */
67
+ /**
68
+ * @typedef {Object} ProgressHandle
69
+ * @property {(pct: number, text?: string) => void} update Updates progress and optional text.
70
+ * @property {() => void} done Completes and dismisses the progress message.
71
+ * @property {(text?: string) => void} fail Marks progress as failed and dismisses it later.
72
+ */
73
+ /**
74
+ * Small FIFO admission queue used by message regions.
75
+ * @template T
76
+ */
77
+ export declare class MessageQueue<T> {
78
+ #private;
79
+ /**
80
+ * @param {number} [limit=5] Maximum active item count.
81
+ * @param {(item: T) => void} [onActivate=()=>{}] Called when an item becomes active.
82
+ */
83
+ constructor(limit?: number, onActivate?: (item: T) => void);
84
+ /**
85
+ * Adds an item, activating it immediately when capacity allows.
86
+ * @param {T} item Item to add.
87
+ * @returns {'active'|'pending'} Initial queue location.
88
+ */
89
+ enqueue(item: T): 'active' | 'pending';
90
+ /**
91
+ * Removes an item and promotes the oldest pending item when needed.
92
+ * @param {T} item Item to remove.
93
+ * @returns {'active'|'pending'|null} Previous location, or null when absent.
94
+ */
95
+ remove(item: T): 'active' | 'pending' | null;
96
+ /**
97
+ * Reports whether an item is active.
98
+ * @param {T} item Item to inspect.
99
+ * @returns {boolean}
100
+ */
101
+ isActive(item: T): boolean;
102
+ /**
103
+ * Removes every item without activation callbacks.
104
+ * @returns {{active: T[], pending: T[]}} Removed items.
105
+ */
106
+ clear(): {
107
+ active: T[];
108
+ pending: T[];
109
+ };
110
+ /** @returns {number} */
111
+ get activeCount(): number;
112
+ /** @returns {number} */
113
+ get pendingCount(): number;
114
+ }
115
+ /**
116
+ * Inline message area and static toast service.
117
+ * @extends {Component<MessageOptions>}
118
+ */
119
+ export declare class Message extends Component<MessageOptions> {
120
+ #private;
121
+ _createdRoot: boolean;
122
+ _original: {
123
+ attributes: [string, string][];
124
+ children: Node[];
125
+ };
126
+ _entries: Set<any>;
127
+ _queue: MessageQueue<any>;
128
+ _cleaned: boolean;
129
+ static cssName: string;
130
+ /** @type {Readonly<MessageOptions>} */
131
+ static defaults: Readonly<MessageOptions>;
132
+ /** @returns {HTMLElement} */
133
+ render(): HTMLElement;
134
+ /**
135
+ * Shows a message in this inline region.
136
+ * @param {string|Node} msg Text or DOM content.
137
+ * @param {MessageShowOptions} [options={}] Display options.
138
+ * @returns {MessageHandle}
139
+ */
140
+ show(msg: string | Node, options?: MessageShowOptions): MessageHandle;
141
+ /**
142
+ * Shows a floating informational toast.
143
+ * @param {string|Node} msg Text or DOM content.
144
+ * @param {MessageShowOptions} [options={}] Display options.
145
+ * @returns {MessageHandle}
146
+ */
147
+ static info(msg: string | Node, options?: MessageShowOptions): MessageHandle;
148
+ /**
149
+ * Shows a floating success toast.
150
+ * @param {string|Node} msg Text or DOM content.
151
+ * @param {MessageShowOptions} [options={}] Display options.
152
+ * @returns {MessageHandle}
153
+ */
154
+ static success(msg: string | Node, options?: MessageShowOptions): MessageHandle;
155
+ /**
156
+ * Shows a floating warning toast.
157
+ * @param {string|Node} msg Text or DOM content.
158
+ * @param {MessageShowOptions} [options={}] Display options.
159
+ * @returns {MessageHandle}
160
+ */
161
+ static warning(msg: string | Node, options?: MessageShowOptions): MessageHandle;
162
+ /**
163
+ * Shows a floating error toast.
164
+ * @param {string|Node} msg Text or DOM content.
165
+ * @param {MessageShowOptions} [options={}] Display options.
166
+ * @returns {MessageHandle}
167
+ */
168
+ static error(msg: string | Node, options?: MessageShowOptions): MessageHandle;
169
+ /**
170
+ * Shows a floating toast.
171
+ * @param {string|Node} msg Text or DOM content.
172
+ * @param {MessageShowOptions} [options={}] Display options.
173
+ * @returns {MessageHandle}
174
+ */
175
+ static show(msg: string | Node, options?: MessageShowOptions): MessageHandle;
176
+ /**
177
+ * Shows a floating progress status.
178
+ * @param {string} text Initial status text.
179
+ * @returns {ProgressHandle}
180
+ */
181
+ static progress(text: string): ProgressHandle;
182
+ /** @returns {void} */
183
+ destroy(): void;
184
+ /** @param {string} text @returns {ProgressHandle} */
185
+ _progress(text: string): ProgressHandle;
186
+ /**
187
+ * @param {string|Node} msg
188
+ * @param {{kind: MessageKind, timeout: number, closable: boolean}} settings
189
+ * @param {{pct: number, text: string}|null} [progress=null]
190
+ * @returns {any}
191
+ */
192
+ _createEntry(msg: string | Node, settings: {
193
+ kind: MessageKind;
194
+ timeout: number;
195
+ closable: boolean;
196
+ }, progress?: {
197
+ pct: number;
198
+ text: string;
199
+ } | null): any;
200
+ /** @param {any} entry @returns {void} */
201
+ _activate(entry: any): void;
202
+ /** @param {any} entry @returns {void} */
203
+ _schedule(entry: any): void;
204
+ /** @param {any} entry @returns {void} */
205
+ _pause(entry: any): void;
206
+ /** @param {any} entry @returns {void} */
207
+ _resume(entry: any): void;
208
+ /** @param {any} entry @returns {void} */
209
+ _close(entry: any): void;
210
+ /** @param {any} entry @returns {void} */
211
+ _finish(entry: any): void;
212
+ }
@@ -0,0 +1,105 @@
1
+ import { Component } from '../../core/component.js';
2
+ export type ModalOptions = {
3
+ /**
4
+ * Modal content.
5
+ */
6
+ content?: Node | string | number | {
7
+ toElement: () => Node | null;
8
+ } | null;
9
+ /**
10
+ * CSS width, or a pixel width when numeric.
11
+ */
12
+ width?: string | number;
13
+ /**
14
+ * Whether Escape may close the modal.
15
+ */
16
+ closable?: boolean;
17
+ /**
18
+ * Whether a backdrop click closes the modal.
19
+ */
20
+ lightDismiss?: boolean;
21
+ /**
22
+ * Whether to destroy the modal after it closes.
23
+ */
24
+ destroyOnClose?: boolean;
25
+ /**
26
+ * Open event listener.
27
+ */
28
+ onopen?: (event: CustomEvent<Record<string, never>>) => void;
29
+ /**
30
+ * Close event listener.
31
+ */
32
+ onclose?: (event: CustomEvent<{
33
+ result: unknown;
34
+ }>) => void;
35
+ /**
36
+ * Cancel event listener.
37
+ */
38
+ oncancel?: (event: CustomEvent<Record<string, never>>) => void;
39
+ };
40
+ /**
41
+ * @typedef {Object} ModalOptions
42
+ * @property {Node|string|number|{toElement: () => Node|null}|null} [content=null] Modal content.
43
+ * @property {string|number} [width='auto'] CSS width, or a pixel width when numeric.
44
+ * @property {boolean} [closable=true] Whether Escape may close the modal.
45
+ * @property {boolean} [lightDismiss=false] Whether a backdrop click closes the modal.
46
+ * @property {boolean} [destroyOnClose=false] Whether to destroy the modal after it closes.
47
+ * @property {(event: CustomEvent<Record<string, never>>) => void} [onopen] Open event listener.
48
+ * @property {(event: CustomEvent<{result: unknown}>) => void} [onclose] Close event listener.
49
+ * @property {(event: CustomEvent<Record<string, never>>) => void} [oncancel] Cancel event listener.
50
+ */
51
+ /**
52
+ * Thin native-dialog overlay with lifecycle-safe content and dismissal behavior.
53
+ * The constructor always creates and appends a new dialog; its target argument is ignored.
54
+ * @fires Modal#open
55
+ * @fires Modal#close
56
+ * @fires Modal#cancel
57
+ * @extends {Component<ModalOptions>}
58
+ */
59
+ export declare class Modal extends Component<ModalOptions> {
60
+ #private;
61
+ static cssName: string;
62
+ /** @type {Readonly<ModalOptions>} */
63
+ static defaults: Readonly<ModalOptions>;
64
+ /**
65
+ * Creates a modal appended to `document.body`.
66
+ * @param {Element|string|null} [_target=null] Ignored; Modal always owns its root dialog.
67
+ * @param {ModalOptions} [options={}] Modal options.
68
+ */
69
+ constructor(_target?: Element | string | null, options?: ModalOptions);
70
+ /**
71
+ * Creates the owned native dialog.
72
+ * @returns {HTMLDialogElement}
73
+ */
74
+ render(): HTMLDialogElement;
75
+ /**
76
+ * Opens the modal in the browser top layer.
77
+ * @returns {this}
78
+ * @fires Modal#open
79
+ */
80
+ open(): this;
81
+ /**
82
+ * Closes the modal with an optional result.
83
+ * @param {unknown} [result] Result included in the close event.
84
+ * @returns {this}
85
+ */
86
+ close(result?: unknown): this;
87
+ /**
88
+ * Replaces the modal content without interpreting strings as HTML.
89
+ * @param {Node|string|number|{toElement: () => Node|null}|null} content Content to display.
90
+ * @returns {this}
91
+ */
92
+ setContent(content: Node | string | number | {
93
+ toElement: () => Node | null;
94
+ } | null): this;
95
+ /**
96
+ * Reports whether the native dialog is open.
97
+ * @returns {boolean}
98
+ */
99
+ isOpen(): boolean;
100
+ /**
101
+ * Closes and removes the owned dialog. Safe to call repeatedly.
102
+ * @returns {void}
103
+ */
104
+ destroy(): void;
105
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Registers the MultiValueEditor-backed `multivalueeditor` field type.
3
+ * @returns {void}
4
+ */
5
+ export declare function registerMultiValueEditorFieldAdapter(): void;
@@ -0,0 +1,66 @@
1
+ import { Component } from '../../core/component.js';
2
+ export type MultiValueEditorOptions = {
3
+ /**
4
+ * Initial ordered values.
5
+ */
6
+ values?: unknown[];
7
+ /**
8
+ * Allowed values; null uses text inputs.
9
+ */
10
+ options?: unknown[] | Record<string, string> | null;
11
+ /**
12
+ * Add-row button text.
13
+ */
14
+ addLabel?: string;
15
+ };
16
+ /**
17
+ * @typedef {Object} MultiValueEditorOptions
18
+ * @property {unknown[]} [values=[]] Initial ordered values.
19
+ * @property {unknown[]|Record<string, string>|null} [options=null] Allowed values; null uses text inputs.
20
+ * @property {string} [addLabel='Add value'] Add-row button text.
21
+ */
22
+ /**
23
+ * Ordered value editor with explicit editable rows and controls.
24
+ * @fires MultiValueEditor#change
25
+ * @extends {Component<MultiValueEditorOptions>}
26
+ */
27
+ export declare class MultiValueEditor extends Component<MultiValueEditorOptions> {
28
+ _values: string[];
29
+ _ownedNodes: any[];
30
+ _rows: HTMLElement;
31
+ _add: HTMLElement;
32
+ static cssName: string;
33
+ /** @type {MultiValueEditorOptions} */
34
+ static defaults: MultiValueEditorOptions;
35
+ /** @returns {HTMLElement} */
36
+ render(): HTMLElement;
37
+ /**
38
+ * Returns a copy of the ordered values.
39
+ * @returns {string[]}
40
+ */
41
+ getValues(): string[];
42
+ /**
43
+ * Replaces all rows.
44
+ * @param {unknown[]} values New ordered values.
45
+ * @param {{silent?: boolean}} [options={}] Set `silent` to suppress `change`.
46
+ * @returns {this}
47
+ */
48
+ setValues(values: unknown[], { silent }?: {
49
+ silent?: boolean;
50
+ }): this;
51
+ /** @param {number} [focusIndex=-1] @returns {void} */
52
+ _renderRows(focusIndex?: number): void;
53
+ /** @param {MouseEvent} event @returns {void} */
54
+ _handleClick(event: MouseEvent): void;
55
+ /** @param {Event} event @returns {void} */
56
+ _handleChange(event: Event): void;
57
+ /** @returns {void} */
58
+ _emitChange(): void;
59
+ /** @returns {void} */
60
+ destroy(): void;
61
+ }
62
+ /**
63
+ * Ordered values changed event.
64
+ * @event MultiValueEditor#change
65
+ * @type {CustomEvent<{values: string[]}>
66
+ */
@@ -0,0 +1,229 @@
1
+ import { Component } from '../../core/component.js';
2
+ import { MenuButton } from '../menu-button/menu-button.js';
3
+ export type NavigationPanelContent = Node | Component | (() => Node | Component);
4
+ export type NavigationItem = {
5
+ /**
6
+ * Stable item name.
7
+ */
8
+ name: string;
9
+ /**
10
+ * Visible item title.
11
+ */
12
+ title: string;
13
+ /**
14
+ * Optional badge text.
15
+ */
16
+ badge?: string | null;
17
+ /**
18
+ * Optional panel content; its presence enables tab semantics.
19
+ */
20
+ content?: NavigationPanelContent;
21
+ /**
22
+ * Optional link destination for plain navigation.
23
+ */
24
+ href?: string;
25
+ /**
26
+ * Whether the item is unavailable.
27
+ */
28
+ disabled?: boolean;
29
+ /**
30
+ * Selection callback.
31
+ */
32
+ onselect?: (name: string, item: NavigationItem, navigation: NavigationBar) => void;
33
+ };
34
+ export type NavigationActionDescriptor = {
35
+ /**
36
+ * Visible button label.
37
+ */
38
+ label?: string;
39
+ /**
40
+ * Icon name from the kernel icon set.
41
+ */
42
+ icon?: string | null;
43
+ /**
44
+ * Visual intent.
45
+ */
46
+ kind?: 'default' | 'primary' | 'danger' | 'ghost';
47
+ /**
48
+ * Control size.
49
+ */
50
+ size?: 'md' | 'sm';
51
+ /**
52
+ * Whether the action is disabled.
53
+ */
54
+ disabled?: boolean;
55
+ /**
56
+ * Native title text.
57
+ */
58
+ title?: string;
59
+ /**
60
+ * Click callback.
61
+ */
62
+ onclick?: (event: MouseEvent) => void;
63
+ };
64
+ export type NavigationAction = Element | NavigationActionDescriptor;
65
+ export type NavigationBarOptions = {
66
+ /**
67
+ * Brand or application title.
68
+ */
69
+ title?: string;
70
+ /**
71
+ * Navigation items.
72
+ */
73
+ items?: NavigationItem[];
74
+ /**
75
+ * Initially active item, or the first enabled item.
76
+ */
77
+ active?: string | null;
78
+ /**
79
+ * Right-aligned action elements or descriptors.
80
+ */
81
+ actions?: NavigationAction[];
82
+ /**
83
+ * Change callback.
84
+ */
85
+ onchange?: (event: CustomEvent<{
86
+ name: string;
87
+ }>) => void;
88
+ };
89
+ export type NavigationRecord = {
90
+ /**
91
+ * Normalized item definition.
92
+ */
93
+ definition: NavigationItem;
94
+ /**
95
+ * Rendered link or button.
96
+ */
97
+ item: HTMLElement;
98
+ /**
99
+ * Badge element.
100
+ */
101
+ badge: HTMLElement;
102
+ /**
103
+ * Optional tab panel.
104
+ */
105
+ panel: HTMLElement | null;
106
+ /**
107
+ * Whether panel content has been mounted.
108
+ */
109
+ built: boolean;
110
+ };
111
+ /** @typedef {Node|Component|(() => Node|Component)} NavigationPanelContent */
112
+ /**
113
+ * @typedef {Object} NavigationItem
114
+ * @property {string} name Stable item name.
115
+ * @property {string} title Visible item title.
116
+ * @property {string|null} [badge=null] Optional badge text.
117
+ * @property {NavigationPanelContent} [content] Optional panel content; its presence enables tab semantics.
118
+ * @property {string} [href] Optional link destination for plain navigation.
119
+ * @property {boolean} [disabled=false] Whether the item is unavailable.
120
+ * @property {(name: string, item: NavigationItem, navigation: NavigationBar) => void} [onselect] Selection callback.
121
+ */
122
+ /**
123
+ * @typedef {Object} NavigationActionDescriptor
124
+ * @property {string} [label=''] Visible button label.
125
+ * @property {string|null} [icon=null] Icon name from the kernel icon set.
126
+ * @property {'default'|'primary'|'danger'|'ghost'} [kind='default'] Visual intent.
127
+ * @property {'md'|'sm'} [size='md'] Control size.
128
+ * @property {boolean} [disabled=false] Whether the action is disabled.
129
+ * @property {string} [title] Native title text.
130
+ * @property {(event: MouseEvent) => void} [onclick] Click callback.
131
+ */
132
+ /** @typedef {Element|NavigationActionDescriptor} NavigationAction */
133
+ /**
134
+ * @typedef {Object} NavigationBarOptions
135
+ * @property {string} [title=''] Brand or application title.
136
+ * @property {NavigationItem[]} [items=[]] Navigation items.
137
+ * @property {string|null} [active=null] Initially active item, or the first enabled item.
138
+ * @property {NavigationAction[]} [actions=[]] Right-aligned action elements or descriptors.
139
+ * @property {(event: CustomEvent<{name: string}>) => void} [onchange] Change callback.
140
+ */
141
+ /**
142
+ * @typedef {Object} NavigationRecord
143
+ * @property {NavigationItem} definition Normalized item definition.
144
+ * @property {HTMLElement} item Rendered link or button.
145
+ * @property {HTMLElement} badge Badge element.
146
+ * @property {HTMLElement|null} panel Optional tab panel.
147
+ * @property {boolean} built Whether panel content has been mounted.
148
+ */
149
+ /**
150
+ * Responsive application navigation with MenuButton overflow.
151
+ * @fires NavigationBar#change
152
+ * @extends {Component<NavigationBarOptions>}
153
+ */
154
+ export declare class NavigationBar extends Component<NavigationBarOptions> {
155
+ _overflow: MenuButton;
156
+ _createdRoot: boolean;
157
+ _original: {
158
+ attributes: Array<[string, string]>;
159
+ children: Node[];
160
+ };
161
+ _cleaned: boolean;
162
+ /** @type {NavigationRecord[]} */
163
+ _items: NavigationRecord[];
164
+ _activeName: string;
165
+ _tabMode: boolean;
166
+ static cssName: string;
167
+ /** @type {Readonly<NavigationBarOptions>} */
168
+ static defaults: Readonly<NavigationBarOptions>;
169
+ /**
170
+ * Creates or enhances an application navigation bar.
171
+ * @param {Element|string|null} target Existing container, selector, or null.
172
+ * @param {NavigationBarOptions} [options={}] Navigation options.
173
+ */
174
+ constructor(target: Element | string | null, options?: NavigationBarOptions);
175
+ /** @returns {HTMLElement} */
176
+ render(): HTMLElement;
177
+ /**
178
+ * Replaces the brand or application title.
179
+ * @param {string} title Next title.
180
+ * @returns {this}
181
+ */
182
+ setTitle(title: string): this;
183
+ /**
184
+ * Replaces navigation items.
185
+ * @param {NavigationItem[]} list Item definitions.
186
+ * @returns {this}
187
+ */
188
+ setItems(list: NavigationItem[]): this;
189
+ /**
190
+ * Selects a navigation item.
191
+ * @param {string} name Item name.
192
+ * @returns {this}
193
+ * @fires NavigationBar#change
194
+ */
195
+ setActive(name: string): this;
196
+ /**
197
+ * Sets or clears an item badge.
198
+ * @param {string} name Item name.
199
+ * @param {string|null} text Badge text, or null to remove it.
200
+ * @returns {this}
201
+ */
202
+ setBadge(name: string, text: string | null): this;
203
+ /**
204
+ * Replaces right-aligned application actions.
205
+ * @param {NavigationAction[]} list Action elements or button descriptors.
206
+ * @returns {this}
207
+ */
208
+ setActions(list: NavigationAction[]): this;
209
+ /** @returns {void} */
210
+ destroy(): void;
211
+ /** @param {NavigationItem} definition @returns {void} */
212
+ _appendItem(definition: NavigationItem): void;
213
+ /** @param {NavigationRecord} record @returns {void} */
214
+ _applyActive(record: NavigationRecord): void;
215
+ /** @param {NavigationRecord} record @returns {void} */
216
+ _ensurePanel(record: NavigationRecord): void;
217
+ /** @param {KeyboardEvent} event @returns {void} */
218
+ _onTabKeydown(event: KeyboardEvent): void;
219
+ /** @returns {void} */
220
+ _syncOverflow(): void;
221
+ /** @param {NavigationRecord} record @returns {void} */
222
+ _focusTab(record: NavigationRecord): void;
223
+ /** @returns {NavigationRecord[]} */
224
+ _enabledItems(): NavigationRecord[];
225
+ /** @param {string} name @returns {NavigationRecord|null} */
226
+ _find(name: string): NavigationRecord | null;
227
+ /** @param {string} name @returns {NavigationRecord} */
228
+ _require(name: string): NavigationRecord;
229
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Registers the NumberField-backed `number` field type.
3
+ * @returns {void}
4
+ */
5
+ export declare function registerNumberFieldAdapter(): void;