@vadem/ui 0.0.0-stage → 0.0.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 (289) hide show
  1. package/LICENSE-lucide.txt +43 -0
  2. package/README.md +19 -2
  3. package/fesm2022/vadem-ui-accordion.mjs +139 -0
  4. package/fesm2022/vadem-ui-accordion.mjs.map +1 -0
  5. package/fesm2022/vadem-ui-active-filters.mjs +355 -0
  6. package/fesm2022/vadem-ui-active-filters.mjs.map +1 -0
  7. package/fesm2022/vadem-ui-alert-dialog.mjs +433 -0
  8. package/fesm2022/vadem-ui-alert-dialog.mjs.map +1 -0
  9. package/fesm2022/vadem-ui-alert.mjs +266 -0
  10. package/fesm2022/vadem-ui-alert.mjs.map +1 -0
  11. package/fesm2022/vadem-ui-autocomplete.mjs +715 -0
  12. package/fesm2022/vadem-ui-autocomplete.mjs.map +1 -0
  13. package/fesm2022/vadem-ui-avatar.mjs +219 -0
  14. package/fesm2022/vadem-ui-avatar.mjs.map +1 -0
  15. package/fesm2022/vadem-ui-badge.mjs +86 -0
  16. package/fesm2022/vadem-ui-badge.mjs.map +1 -0
  17. package/fesm2022/vadem-ui-breadcrumbs.mjs +61 -0
  18. package/fesm2022/vadem-ui-breadcrumbs.mjs.map +1 -0
  19. package/fesm2022/vadem-ui-button.mjs +220 -0
  20. package/fesm2022/vadem-ui-button.mjs.map +1 -0
  21. package/fesm2022/vadem-ui-calendar.mjs +1314 -0
  22. package/fesm2022/vadem-ui-calendar.mjs.map +1 -0
  23. package/fesm2022/vadem-ui-card.mjs +271 -0
  24. package/fesm2022/vadem-ui-card.mjs.map +1 -0
  25. package/fesm2022/vadem-ui-character-count.mjs +269 -0
  26. package/fesm2022/vadem-ui-character-count.mjs.map +1 -0
  27. package/fesm2022/vadem-ui-chart.mjs +1984 -0
  28. package/fesm2022/vadem-ui-chart.mjs.map +1 -0
  29. package/fesm2022/vadem-ui-checkbox.mjs +67 -0
  30. package/fesm2022/vadem-ui-checkbox.mjs.map +1 -0
  31. package/fesm2022/vadem-ui-color-picker.mjs +815 -0
  32. package/fesm2022/vadem-ui-color-picker.mjs.map +1 -0
  33. package/fesm2022/vadem-ui-command.mjs +735 -0
  34. package/fesm2022/vadem-ui-command.mjs.map +1 -0
  35. package/fesm2022/vadem-ui-copy-button.mjs +375 -0
  36. package/fesm2022/vadem-ui-copy-button.mjs.map +1 -0
  37. package/fesm2022/vadem-ui-date-range-picker.mjs +1011 -0
  38. package/fesm2022/vadem-ui-date-range-picker.mjs.map +1 -0
  39. package/fesm2022/vadem-ui-description-list.mjs +59 -0
  40. package/fesm2022/vadem-ui-description-list.mjs.map +1 -0
  41. package/fesm2022/vadem-ui-dialog.mjs +587 -0
  42. package/fesm2022/vadem-ui-dialog.mjs.map +1 -0
  43. package/fesm2022/vadem-ui-dropzone.mjs +176 -0
  44. package/fesm2022/vadem-ui-dropzone.mjs.map +1 -0
  45. package/fesm2022/vadem-ui-editable-text.mjs +641 -0
  46. package/fesm2022/vadem-ui-editable-text.mjs.map +1 -0
  47. package/fesm2022/vadem-ui-empty-state.mjs +175 -0
  48. package/fesm2022/vadem-ui-empty-state.mjs.map +1 -0
  49. package/fesm2022/vadem-ui-expandable-text.mjs +244 -0
  50. package/fesm2022/vadem-ui-expandable-text.mjs.map +1 -0
  51. package/fesm2022/vadem-ui-field.mjs +583 -0
  52. package/fesm2022/vadem-ui-field.mjs.map +1 -0
  53. package/fesm2022/vadem-ui-file-preview.mjs +532 -0
  54. package/fesm2022/vadem-ui-file-preview.mjs.map +1 -0
  55. package/fesm2022/vadem-ui-file-size.mjs +83 -0
  56. package/fesm2022/vadem-ui-file-size.mjs.map +1 -0
  57. package/fesm2022/vadem-ui-form-error-summary.mjs +201 -0
  58. package/fesm2022/vadem-ui-form-error-summary.mjs.map +1 -0
  59. package/fesm2022/vadem-ui-icon.mjs +303 -0
  60. package/fesm2022/vadem-ui-icon.mjs.map +1 -0
  61. package/fesm2022/vadem-ui-input.mjs +120 -0
  62. package/fesm2022/vadem-ui-input.mjs.map +1 -0
  63. package/fesm2022/vadem-ui-kbd.mjs +286 -0
  64. package/fesm2022/vadem-ui-kbd.mjs.map +1 -0
  65. package/fesm2022/vadem-ui-keyboard.mjs +105 -0
  66. package/fesm2022/vadem-ui-keyboard.mjs.map +1 -0
  67. package/fesm2022/vadem-ui-locale.mjs +443 -0
  68. package/fesm2022/vadem-ui-locale.mjs.map +1 -0
  69. package/fesm2022/vadem-ui-menu.mjs +637 -0
  70. package/fesm2022/vadem-ui-menu.mjs.map +1 -0
  71. package/fesm2022/vadem-ui-navigation-list.mjs +130 -0
  72. package/fesm2022/vadem-ui-navigation-list.mjs.map +1 -0
  73. package/fesm2022/vadem-ui-number-input.mjs +264 -0
  74. package/fesm2022/vadem-ui-number-input.mjs.map +1 -0
  75. package/fesm2022/vadem-ui-otp-input.mjs +86 -0
  76. package/fesm2022/vadem-ui-otp-input.mjs.map +1 -0
  77. package/fesm2022/vadem-ui-pagination.mjs +353 -0
  78. package/fesm2022/vadem-ui-pagination.mjs.map +1 -0
  79. package/fesm2022/vadem-ui-password-input.mjs +213 -0
  80. package/fesm2022/vadem-ui-password-input.mjs.map +1 -0
  81. package/fesm2022/vadem-ui-popover.mjs +178 -0
  82. package/fesm2022/vadem-ui-popover.mjs.map +1 -0
  83. package/fesm2022/vadem-ui-progress.mjs +331 -0
  84. package/fesm2022/vadem-ui-progress.mjs.map +1 -0
  85. package/fesm2022/vadem-ui-radio.mjs +39 -0
  86. package/fesm2022/vadem-ui-radio.mjs.map +1 -0
  87. package/fesm2022/vadem-ui-range-slider.mjs +561 -0
  88. package/fesm2022/vadem-ui-range-slider.mjs.map +1 -0
  89. package/fesm2022/vadem-ui-rating.mjs +404 -0
  90. package/fesm2022/vadem-ui-rating.mjs.map +1 -0
  91. package/fesm2022/vadem-ui-relative-time.mjs +217 -0
  92. package/fesm2022/vadem-ui-relative-time.mjs.map +1 -0
  93. package/fesm2022/vadem-ui-reorder-list.mjs +601 -0
  94. package/fesm2022/vadem-ui-reorder-list.mjs.map +1 -0
  95. package/fesm2022/vadem-ui-scroll-area.mjs +65 -0
  96. package/fesm2022/vadem-ui-scroll-area.mjs.map +1 -0
  97. package/fesm2022/vadem-ui-search-input.mjs +307 -0
  98. package/fesm2022/vadem-ui-search-input.mjs.map +1 -0
  99. package/fesm2022/vadem-ui-segmented.mjs +297 -0
  100. package/fesm2022/vadem-ui-segmented.mjs.map +1 -0
  101. package/fesm2022/vadem-ui-select.mjs +1462 -0
  102. package/fesm2022/vadem-ui-select.mjs.map +1 -0
  103. package/fesm2022/vadem-ui-sidebar.mjs +493 -0
  104. package/fesm2022/vadem-ui-sidebar.mjs.map +1 -0
  105. package/fesm2022/vadem-ui-skeleton.mjs +106 -0
  106. package/fesm2022/vadem-ui-skeleton.mjs.map +1 -0
  107. package/fesm2022/vadem-ui-slider.mjs +60 -0
  108. package/fesm2022/vadem-ui-slider.mjs.map +1 -0
  109. package/fesm2022/vadem-ui-splitter.mjs +438 -0
  110. package/fesm2022/vadem-ui-splitter.mjs.map +1 -0
  111. package/fesm2022/vadem-ui-stat.mjs +369 -0
  112. package/fesm2022/vadem-ui-stat.mjs.map +1 -0
  113. package/fesm2022/vadem-ui-stepper.mjs +483 -0
  114. package/fesm2022/vadem-ui-stepper.mjs.map +1 -0
  115. package/fesm2022/vadem-ui-switch.mjs +45 -0
  116. package/fesm2022/vadem-ui-switch.mjs.map +1 -0
  117. package/fesm2022/vadem-ui-table.mjs +593 -0
  118. package/fesm2022/vadem-ui-table.mjs.map +1 -0
  119. package/fesm2022/vadem-ui-tabs.mjs +405 -0
  120. package/fesm2022/vadem-ui-tabs.mjs.map +1 -0
  121. package/fesm2022/vadem-ui-tag-input.mjs +685 -0
  122. package/fesm2022/vadem-ui-tag-input.mjs.map +1 -0
  123. package/fesm2022/vadem-ui-text-highlight.mjs +126 -0
  124. package/fesm2022/vadem-ui-text-highlight.mjs.map +1 -0
  125. package/fesm2022/vadem-ui-time-input.mjs +430 -0
  126. package/fesm2022/vadem-ui-time-input.mjs.map +1 -0
  127. package/fesm2022/vadem-ui-timeline.mjs +313 -0
  128. package/fesm2022/vadem-ui-timeline.mjs.map +1 -0
  129. package/fesm2022/vadem-ui-toast.mjs +397 -0
  130. package/fesm2022/vadem-ui-toast.mjs.map +1 -0
  131. package/fesm2022/vadem-ui-toolbar.mjs +396 -0
  132. package/fesm2022/vadem-ui-toolbar.mjs.map +1 -0
  133. package/fesm2022/vadem-ui-tooltip.mjs +218 -0
  134. package/fesm2022/vadem-ui-tooltip.mjs.map +1 -0
  135. package/fesm2022/vadem-ui-tree.mjs +551 -0
  136. package/fesm2022/vadem-ui-tree.mjs.map +1 -0
  137. package/fesm2022/vadem-ui-upload-list.mjs +408 -0
  138. package/fesm2022/vadem-ui-upload-list.mjs.map +1 -0
  139. package/fesm2022/vadem-ui.mjs +4 -0
  140. package/fesm2022/vadem-ui.mjs.map +1 -0
  141. package/fonts/jetbrains-mono/OFL.txt +93 -0
  142. package/fonts/jetbrains-mono/jetbrains-mono-cyrillic.woff2 +0 -0
  143. package/fonts/jetbrains-mono/jetbrains-mono-latin.woff2 +0 -0
  144. package/fonts/manrope/OFL.txt +93 -0
  145. package/fonts/manrope/manrope-cyrillic.woff2 +0 -0
  146. package/fonts/manrope/manrope-latin.woff2 +0 -0
  147. package/package.json +306 -3
  148. package/styles/base.css +160 -0
  149. package/styles/components/accordion.css +130 -0
  150. package/styles/components/active-filters.css +42 -0
  151. package/styles/components/alert-dialog.css +34 -0
  152. package/styles/components/alert.css +159 -0
  153. package/styles/components/autocomplete.css +97 -0
  154. package/styles/components/avatar.css +90 -0
  155. package/styles/components/badge.css +91 -0
  156. package/styles/components/breadcrumbs.css +94 -0
  157. package/styles/components/button.css +174 -0
  158. package/styles/components/calendar.css +186 -0
  159. package/styles/components/card.css +206 -0
  160. package/styles/components/character-count.css +41 -0
  161. package/styles/components/chart.css +308 -0
  162. package/styles/components/checkbox.css +115 -0
  163. package/styles/components/color-picker.css +158 -0
  164. package/styles/components/command.css +175 -0
  165. package/styles/components/copy-button.css +58 -0
  166. package/styles/components/date-range-picker.css +153 -0
  167. package/styles/components/description-list.css +69 -0
  168. package/styles/components/dialog.css +334 -0
  169. package/styles/components/dropzone.css +89 -0
  170. package/styles/components/editable-text.css +58 -0
  171. package/styles/components/empty-state.css +72 -0
  172. package/styles/components/expandable-text.css +24 -0
  173. package/styles/components/field.css +148 -0
  174. package/styles/components/file-preview.css +65 -0
  175. package/styles/components/form-error-summary.css +71 -0
  176. package/styles/components/icon.css +38 -0
  177. package/styles/components/index.css +80 -0
  178. package/styles/components/input.css +171 -0
  179. package/styles/components/kbd.css +42 -0
  180. package/styles/components/menu.css +168 -0
  181. package/styles/components/multi-select.css +156 -0
  182. package/styles/components/navigation-list.css +147 -0
  183. package/styles/components/number-input.css +33 -0
  184. package/styles/components/otp-input.css +26 -0
  185. package/styles/components/pagination.css +127 -0
  186. package/styles/components/password-input.css +20 -0
  187. package/styles/components/popover.css +93 -0
  188. package/styles/components/progress-ring.css +112 -0
  189. package/styles/components/progress.css +162 -0
  190. package/styles/components/radio.css +117 -0
  191. package/styles/components/range-slider.css +158 -0
  192. package/styles/components/rating.css +100 -0
  193. package/styles/components/reorder-list.css +143 -0
  194. package/styles/components/scroll-area.css +39 -0
  195. package/styles/components/search-input.css +25 -0
  196. package/styles/components/segmented.css +136 -0
  197. package/styles/components/select.css +257 -0
  198. package/styles/components/sidebar.css +105 -0
  199. package/styles/components/skeleton.css +83 -0
  200. package/styles/components/slider.css +132 -0
  201. package/styles/components/splitter.css +83 -0
  202. package/styles/components/stat.css +62 -0
  203. package/styles/components/stepper.css +236 -0
  204. package/styles/components/switch.css +107 -0
  205. package/styles/components/table.css +195 -0
  206. package/styles/components/tabs.css +198 -0
  207. package/styles/components/tag-input.css +138 -0
  208. package/styles/components/text-highlight.css +22 -0
  209. package/styles/components/time-input.css +96 -0
  210. package/styles/components/timeline.css +182 -0
  211. package/styles/components/toast.css +146 -0
  212. package/styles/components/toolbar.css +72 -0
  213. package/styles/components/tooltip.css +93 -0
  214. package/styles/components/tree.css +88 -0
  215. package/styles/components/upload-list.css +113 -0
  216. package/styles/fonts.css +67 -0
  217. package/styles/index.css +14 -0
  218. package/styles/reset.css +57 -0
  219. package/styles/tokens/primitives.css +364 -0
  220. package/styles/tokens/semantic.css +233 -0
  221. package/types/vadem-ui-accordion.d.ts +43 -0
  222. package/types/vadem-ui-active-filters.d.ts +73 -0
  223. package/types/vadem-ui-alert-dialog.d.ts +87 -0
  224. package/types/vadem-ui-alert.d.ts +64 -0
  225. package/types/vadem-ui-autocomplete.d.ts +156 -0
  226. package/types/vadem-ui-avatar.d.ts +59 -0
  227. package/types/vadem-ui-badge.d.ts +25 -0
  228. package/types/vadem-ui-breadcrumbs.d.ts +22 -0
  229. package/types/vadem-ui-button.d.ts +52 -0
  230. package/types/vadem-ui-calendar.d.ts +327 -0
  231. package/types/vadem-ui-card.d.ts +58 -0
  232. package/types/vadem-ui-character-count.d.ts +71 -0
  233. package/types/vadem-ui-chart.d.ts +452 -0
  234. package/types/vadem-ui-checkbox.d.ts +20 -0
  235. package/types/vadem-ui-color-picker.d.ts +171 -0
  236. package/types/vadem-ui-command.d.ts +145 -0
  237. package/types/vadem-ui-copy-button.d.ts +90 -0
  238. package/types/vadem-ui-date-range-picker.d.ts +216 -0
  239. package/types/vadem-ui-description-list.d.ts +15 -0
  240. package/types/vadem-ui-dialog.d.ts +174 -0
  241. package/types/vadem-ui-dropzone.d.ts +73 -0
  242. package/types/vadem-ui-editable-text.d.ts +141 -0
  243. package/types/vadem-ui-empty-state.d.ts +34 -0
  244. package/types/vadem-ui-expandable-text.d.ts +52 -0
  245. package/types/vadem-ui-field.d.ts +180 -0
  246. package/types/vadem-ui-file-preview.d.ts +108 -0
  247. package/types/vadem-ui-file-size.d.ts +18 -0
  248. package/types/vadem-ui-form-error-summary.d.ts +46 -0
  249. package/types/vadem-ui-icon.d.ts +152 -0
  250. package/types/vadem-ui-input.d.ts +31 -0
  251. package/types/vadem-ui-kbd.d.ts +66 -0
  252. package/types/vadem-ui-keyboard.d.ts +61 -0
  253. package/types/vadem-ui-locale.d.ts +241 -0
  254. package/types/vadem-ui-menu.d.ts +132 -0
  255. package/types/vadem-ui-navigation-list.d.ts +28 -0
  256. package/types/vadem-ui-number-input.d.ts +39 -0
  257. package/types/vadem-ui-otp-input.d.ts +15 -0
  258. package/types/vadem-ui-pagination.d.ts +96 -0
  259. package/types/vadem-ui-password-input.d.ts +36 -0
  260. package/types/vadem-ui-popover.d.ts +48 -0
  261. package/types/vadem-ui-progress.d.ts +95 -0
  262. package/types/vadem-ui-radio.d.ts +11 -0
  263. package/types/vadem-ui-range-slider.d.ts +136 -0
  264. package/types/vadem-ui-rating.d.ts +95 -0
  265. package/types/vadem-ui-relative-time.d.ts +58 -0
  266. package/types/vadem-ui-reorder-list.d.ts +120 -0
  267. package/types/vadem-ui-scroll-area.d.ts +13 -0
  268. package/types/vadem-ui-search-input.d.ts +58 -0
  269. package/types/vadem-ui-segmented.d.ts +76 -0
  270. package/types/vadem-ui-select.d.ts +303 -0
  271. package/types/vadem-ui-sidebar.d.ts +70 -0
  272. package/types/vadem-ui-skeleton.d.ts +28 -0
  273. package/types/vadem-ui-slider.d.ts +17 -0
  274. package/types/vadem-ui-splitter.d.ts +99 -0
  275. package/types/vadem-ui-stat.d.ts +101 -0
  276. package/types/vadem-ui-stepper.d.ts +108 -0
  277. package/types/vadem-ui-switch.d.ts +10 -0
  278. package/types/vadem-ui-table.d.ts +172 -0
  279. package/types/vadem-ui-tabs.d.ts +101 -0
  280. package/types/vadem-ui-tag-input.d.ts +170 -0
  281. package/types/vadem-ui-text-highlight.d.ts +27 -0
  282. package/types/vadem-ui-time-input.d.ts +47 -0
  283. package/types/vadem-ui-timeline.d.ts +54 -0
  284. package/types/vadem-ui-toast.d.ts +104 -0
  285. package/types/vadem-ui-toolbar.d.ts +80 -0
  286. package/types/vadem-ui-tooltip.d.ts +71 -0
  287. package/types/vadem-ui-tree.d.ts +123 -0
  288. package/types/vadem-ui-upload-list.d.ts +70 -0
  289. package/types/vadem-ui.d.ts +1 -0
@@ -0,0 +1,95 @@
1
+ import * as i0 from "@angular/core";
2
+ import { OnInit, Signal } from "@angular/core";
3
+ import { FormValueControl } from "@angular/forms/signals";
4
+ type VdRatingSize = 'sm' | 'md' | 'lg';
5
+ /** Whole-star rating. The legend names the group; Field supplies hints/errors. */
6
+ export declare class VdRating implements FormValueControl<number>, OnInit {
7
+ readonly value: import("@angular/core").ModelSignal<number>;
8
+ readonly label: import("@angular/core").InputSignal<string>;
9
+ readonly starLabel: import("@angular/core").InputSignal<((value: number) => string) | undefined>;
10
+ /** Text inputs resolved against the active VD_LOCALE. */
11
+ protected readonly t: Signal<Pick<{
12
+ starLabel: (value: number) => string;
13
+ }, "starLabel">>;
14
+ readonly size: import("@angular/core").InputSignal<VdRatingSize>;
15
+ readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
16
+ readonly readonly: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
17
+ readonly invalid: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
18
+ readonly touched: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
19
+ readonly required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
20
+ readonly touch: import("@angular/core").OutputEmitterRef<void>;
21
+ readonly controlId: string;
22
+ protected readonly labelId: string;
23
+ protected readonly stars: number[];
24
+ protected readonly preview: import("@angular/core").WritableSignal<number>;
25
+ protected readonly selected: Signal<number>;
26
+ protected readonly filled: Signal<number>;
27
+ protected readonly field: import("@vadem/ui/field").VdFieldContext | null;
28
+ private readonly host;
29
+ private readonly injector;
30
+ private readonly destroyRef;
31
+ private readonly formBound;
32
+ private readonly ngSource;
33
+ private readonly ngState;
34
+ protected readonly isDisabled: Signal<boolean>;
35
+ protected readonly locked: Signal<boolean>;
36
+ protected readonly isRequired: Signal<boolean>;
37
+ protected readonly showInvalid: Signal<boolean>;
38
+ constructor();
39
+ ngOnInit(): void;
40
+ protected choose(value: number): void;
41
+ protected onKeydown(event: KeyboardEvent, star: number): void;
42
+ protected onFocusOut(event: FocusEvent): void;
43
+ static ɵfac: i0.ɵɵFactoryDeclaration<VdRating, never>;
44
+ static ɵcmp: i0.ɵɵComponentDeclaration<VdRating, "vd-rating", never, {
45
+ "value": {
46
+ "alias": "value";
47
+ "required": false;
48
+ "isSignal": true;
49
+ };
50
+ "label": {
51
+ "alias": "label";
52
+ "required": true;
53
+ "isSignal": true;
54
+ };
55
+ "starLabel": {
56
+ "alias": "starLabel";
57
+ "required": false;
58
+ "isSignal": true;
59
+ };
60
+ "size": {
61
+ "alias": "size";
62
+ "required": false;
63
+ "isSignal": true;
64
+ };
65
+ "disabled": {
66
+ "alias": "disabled";
67
+ "required": false;
68
+ "isSignal": true;
69
+ };
70
+ "readonly": {
71
+ "alias": "readonly";
72
+ "required": false;
73
+ "isSignal": true;
74
+ };
75
+ "invalid": {
76
+ "alias": "invalid";
77
+ "required": false;
78
+ "isSignal": true;
79
+ };
80
+ "touched": {
81
+ "alias": "touched";
82
+ "required": false;
83
+ "isSignal": true;
84
+ };
85
+ "required": {
86
+ "alias": "required";
87
+ "required": false;
88
+ "isSignal": true;
89
+ };
90
+ }, {
91
+ "value": "valueChange";
92
+ "touch": "touch";
93
+ }, never, never, true, never>;
94
+ }
95
+ export type { VdRatingSize };
@@ -0,0 +1,58 @@
1
+ import * as i0 from "@angular/core";
2
+ import { PipeTransform } from "@angular/core";
3
+ export declare class VdRelativeTimePipe implements PipeTransform {
4
+ private readonly texts;
5
+ transform(value: number | null | undefined, now: number | null | undefined, locale?: string, justNowText?: string, unknownText?: string): string;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<VdRelativeTimePipe, never>;
7
+ static ɵpipe: i0.ɵɵPipeDeclaration<VdRelativeTimePipe, "vdRelativeTime", true>;
8
+ }
9
+ export declare class VdRelativeTime {
10
+ readonly vdRelativeTime: import("@angular/core").InputSignal<number | null | undefined>;
11
+ readonly now: import("@angular/core").InputSignal<number>;
12
+ readonly locale: import("@angular/core").InputSignal<string | undefined>;
13
+ readonly justNowText: import("@angular/core").InputSignal<string | undefined>;
14
+ readonly unknownText: import("@angular/core").InputSignal<string | undefined>;
15
+ private readonly texts;
16
+ private readonly t;
17
+ protected readonly valid: import("@angular/core").Signal<boolean>;
18
+ protected readonly datetime: import("@angular/core").Signal<string | null>;
19
+ protected readonly text: import("@angular/core").Signal<string>;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<VdRelativeTime, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<VdRelativeTime, "time[vdRelativeTime]", never, {
22
+ "vdRelativeTime": {
23
+ "alias": "vdRelativeTime";
24
+ "required": false;
25
+ "isSignal": true;
26
+ };
27
+ "now": {
28
+ "alias": "now";
29
+ "required": true;
30
+ "isSignal": true;
31
+ };
32
+ "locale": {
33
+ "alias": "locale";
34
+ "required": false;
35
+ "isSignal": true;
36
+ };
37
+ "justNowText": {
38
+ "alias": "justNowText";
39
+ "required": false;
40
+ "isSignal": true;
41
+ };
42
+ "unknownText": {
43
+ "alias": "unknownText";
44
+ "required": false;
45
+ "isSignal": true;
46
+ };
47
+ }, {}, never, never, true, never>;
48
+ }
49
+ interface VdRelativeTimeOptions {
50
+ readonly locale?: string;
51
+ readonly justNowText?: string;
52
+ readonly unknownText?: string;
53
+ }
54
+ /** Epoch milliseconds only, constrained to the native time element's four-digit year range. */
55
+ declare function vdRelativeTimeValid(value: number | null | undefined): value is number;
56
+ /** Elapsed-duration labels; callers own the clock and refresh cadence. */
57
+ export declare function vdFormatRelativeTime(value: number | null | undefined, now: number | null | undefined, options?: VdRelativeTimeOptions): string;
58
+ export type { VdRelativeTimeOptions };
@@ -0,0 +1,120 @@
1
+ import * as i0 from "@angular/core";
2
+ interface VdReorderListItem {
3
+ readonly id: string;
4
+ readonly label: string;
5
+ readonly description?: string;
6
+ }
7
+ interface VdReorderListChange {
8
+ readonly id: string;
9
+ readonly fromIndex: number;
10
+ readonly toIndex: number;
11
+ readonly method: 'buttons' | 'pointer';
12
+ }
13
+ export declare class VdReorderList {
14
+ readonly items: import("@angular/core").ModelSignal<readonly VdReorderListItem[]>;
15
+ readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
16
+ readonly label: import("@angular/core").InputSignal<string | undefined>;
17
+ readonly instructions: import("@angular/core").InputSignal<string | undefined>;
18
+ readonly upText: import("@angular/core").InputSignal<string | undefined>;
19
+ readonly downText: import("@angular/core").InputSignal<string | undefined>;
20
+ readonly emptyText: import("@angular/core").InputSignal<string | undefined>;
21
+ readonly invalidText: import("@angular/core").InputSignal<string | undefined>;
22
+ readonly movedText: import("@angular/core").InputSignal<((label: string, position: number, total: number) => string) | undefined>;
23
+ readonly canceledText: import("@angular/core").InputSignal<((label: string) => string) | undefined>;
24
+ readonly reordered: import("@angular/core").OutputEmitterRef<VdReorderListChange>;
25
+ protected readonly t: import("@angular/core").Signal<Pick<{
26
+ label: string;
27
+ instructions: string;
28
+ upText: string;
29
+ downText: string;
30
+ emptyText: string;
31
+ invalidText: string;
32
+ movedText: (label: string, position: number, total: number) => string;
33
+ canceledText: (label: string) => string;
34
+ }, "label" | "instructions" | "upText" | "downText" | "emptyText" | "invalidText" | "movedText" | "canceledText">>;
35
+ protected readonly valid: import("@angular/core").Signal<boolean>;
36
+ protected readonly instructionsId: string;
37
+ protected readonly draggingId: import("@angular/core").WritableSignal<string | null>;
38
+ protected readonly drop: import("@angular/core").WritableSignal<{
39
+ id: string;
40
+ edge: "before" | "after";
41
+ } | null>;
42
+ protected readonly messages: import("@angular/core").WritableSignal<readonly {
43
+ serial: number;
44
+ text: string;
45
+ }[]>;
46
+ private readonly host;
47
+ private drag;
48
+ private focus;
49
+ private serial;
50
+ constructor();
51
+ protected move(id: string, delta: number): void;
52
+ private commit;
53
+ protected start(event: PointerEvent, id: string): void;
54
+ protected pointerMove(event: PointerEvent): void;
55
+ protected end(event: PointerEvent): void;
56
+ protected pointerCancel(event: PointerEvent): void;
57
+ protected key(event: KeyboardEvent): void;
58
+ private target;
59
+ private finish;
60
+ private announce;
61
+ private list;
62
+ private rows;
63
+ static ɵfac: i0.ɵɵFactoryDeclaration<VdReorderList, never>;
64
+ static ɵcmp: i0.ɵɵComponentDeclaration<VdReorderList, "vd-reorder-list", never, {
65
+ "items": {
66
+ "alias": "items";
67
+ "required": false;
68
+ "isSignal": true;
69
+ };
70
+ "disabled": {
71
+ "alias": "disabled";
72
+ "required": false;
73
+ "isSignal": true;
74
+ };
75
+ "label": {
76
+ "alias": "label";
77
+ "required": false;
78
+ "isSignal": true;
79
+ };
80
+ "instructions": {
81
+ "alias": "instructions";
82
+ "required": false;
83
+ "isSignal": true;
84
+ };
85
+ "upText": {
86
+ "alias": "upText";
87
+ "required": false;
88
+ "isSignal": true;
89
+ };
90
+ "downText": {
91
+ "alias": "downText";
92
+ "required": false;
93
+ "isSignal": true;
94
+ };
95
+ "emptyText": {
96
+ "alias": "emptyText";
97
+ "required": false;
98
+ "isSignal": true;
99
+ };
100
+ "invalidText": {
101
+ "alias": "invalidText";
102
+ "required": false;
103
+ "isSignal": true;
104
+ };
105
+ "movedText": {
106
+ "alias": "movedText";
107
+ "required": false;
108
+ "isSignal": true;
109
+ };
110
+ "canceledText": {
111
+ "alias": "canceledText";
112
+ "required": false;
113
+ "isSignal": true;
114
+ };
115
+ }, {
116
+ "items": "itemsChange";
117
+ "reordered": "reordered";
118
+ }, never, never, true, never>;
119
+ }
120
+ export type { VdReorderListChange, VdReorderListItem };
@@ -0,0 +1,13 @@
1
+ import * as i0 from "@angular/core";
2
+ /** A named native scroll viewport; the browser owns all scrolling and descendant keys. */
3
+ export declare class VdScrollArea {
4
+ readonly label: import("@angular/core").InputSignal<string>;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<VdScrollArea, never>;
6
+ static ɵdir: i0.ɵɵDirectiveDeclaration<VdScrollArea, "[vdScrollArea]", never, {
7
+ "label": {
8
+ "alias": "label";
9
+ "required": true;
10
+ "isSignal": true;
11
+ };
12
+ }, {}, never, never, true, never>;
13
+ }
@@ -0,0 +1,58 @@
1
+ import { VdInput } from "@vadem/ui/input";
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Native `input[type=search]`: value, forms accessor and the `search` event stay native.
5
+ * Adds consistent Escape-to-clear and a clear action. Spec: specs/search-input.md
6
+ */
7
+ export declare class VdSearchInput extends VdInput {
8
+ readonly element: HTMLInputElement;
9
+ /** Emits after the value was cleared by the button or Escape. */
10
+ readonly cleared: import("@angular/core").OutputEmitterRef<void>;
11
+ private readonly document;
12
+ private readonly hasValue;
13
+ readonly filled: import("@angular/core").Signal<boolean>;
14
+ private readonly editable;
15
+ readonly canClear: import("@angular/core").Signal<boolean>;
16
+ constructor();
17
+ protected sync(): void;
18
+ /** Escape clears a non-empty field; an empty field lets Escape reach outer handlers (dialogs). */
19
+ protected onEscape(event: Event): void;
20
+ clear(): void;
21
+ /** Pointer activation keeps the caret in the field. */
22
+ preserveFocus(event: MouseEvent): void;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<VdSearchInput, never>;
24
+ static ɵdir: i0.ɵɵDirectiveDeclaration<VdSearchInput, "input[type=search][vdSearchInput]", ["vdSearchInput"], {}, {
25
+ "cleared": "cleared";
26
+ }, never, never, true, never>;
27
+ }
28
+ export declare class VdSearchInputGroup {
29
+ /** Shows a spinner while results load; the field stays editable. */
30
+ readonly loading: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
31
+ readonly clearLabel: import("@angular/core").InputSignal<string | undefined>;
32
+ readonly loadingLabel: import("@angular/core").InputSignal<string | undefined>;
33
+ /** Text inputs resolved against the active VD_LOCALE. */
34
+ protected readonly t: import("@angular/core").Signal<Pick<{
35
+ clearLabel: string;
36
+ loadingLabel: string;
37
+ }, "clearLabel" | "loadingLabel">>;
38
+ protected readonly control: import("@angular/core").Signal<VdSearchInput | undefined>;
39
+ static ɵfac: i0.ɵɵFactoryDeclaration<VdSearchInputGroup, never>;
40
+ static ɵcmp: i0.ɵɵComponentDeclaration<VdSearchInputGroup, "vd-search-input", never, {
41
+ "loading": {
42
+ "alias": "loading";
43
+ "required": false;
44
+ "isSignal": true;
45
+ };
46
+ "clearLabel": {
47
+ "alias": "clearLabel";
48
+ "required": false;
49
+ "isSignal": true;
50
+ };
51
+ "loadingLabel": {
52
+ "alias": "loadingLabel";
53
+ "required": false;
54
+ "isSignal": true;
55
+ };
56
+ }, {}, ["control"], ["input[vdSearchInput]", "[slot=end]"], true, never>;
57
+ }
58
+ export declare const VD_SEARCH_INPUT: readonly [typeof VdSearchInputGroup, typeof VdSearchInput];
@@ -0,0 +1,76 @@
1
+ import { ControlValueAccessor } from "@angular/forms";
2
+ import * as i0 from "@angular/core";
3
+ type VdSegmentedSize = 'sm' | 'md';
4
+ /**
5
+ * Single choice among a few options, shown as a segmented control. Each segment is a native
6
+ * radio sharing one `name`, so arrow keys, Tab, RTL and form semantics come from the platform.
7
+ * Spec: specs/segmented.md
8
+ */
9
+ export declare class VdSegmented implements ControlValueAccessor {
10
+ /** Selected segment value (two-way). */
11
+ readonly value: import("@angular/core").ModelSignal<string | null>;
12
+ readonly size: import("@angular/core").InputSignal<VdSegmentedSize>;
13
+ readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
14
+ /** Shared radio `name`. */
15
+ readonly name: string;
16
+ private readonly formDisabled;
17
+ readonly isDisabled: import("@angular/core").Signal<boolean>;
18
+ private onChange;
19
+ private onTouched;
20
+ select(value: string): void;
21
+ protected onFocusOut(event: FocusEvent): void;
22
+ writeValue(value: string | null): void;
23
+ registerOnChange(fn: (value: string | null) => void): void;
24
+ registerOnTouched(fn: () => void): void;
25
+ setDisabledState(disabled: boolean): void;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<VdSegmented, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<VdSegmented, "vd-segmented", never, {
28
+ "value": {
29
+ "alias": "value";
30
+ "required": false;
31
+ "isSignal": true;
32
+ };
33
+ "size": {
34
+ "alias": "size";
35
+ "required": false;
36
+ "isSignal": true;
37
+ };
38
+ "disabled": {
39
+ "alias": "disabled";
40
+ "required": false;
41
+ "isSignal": true;
42
+ };
43
+ }, {
44
+ "value": "valueChange";
45
+ }, never, ["*"], true, never>;
46
+ }
47
+ /** One option of `vd-segmented`. Icon-only segments need `aria-label`. */
48
+ export declare class VdSegment {
49
+ readonly value: import("@angular/core").InputSignal<string>;
50
+ readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
51
+ readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
52
+ protected readonly group: VdSegmented;
53
+ /** The radio isn't inside a <label>; the visible text names it. */
54
+ protected readonly labelId: string;
55
+ protected readonly checked: import("@angular/core").Signal<boolean>;
56
+ protected readonly isDisabled: import("@angular/core").Signal<boolean>;
57
+ static ɵfac: i0.ɵɵFactoryDeclaration<VdSegment, never>;
58
+ static ɵcmp: i0.ɵɵComponentDeclaration<VdSegment, "vd-segment", never, {
59
+ "value": {
60
+ "alias": "value";
61
+ "required": true;
62
+ "isSignal": true;
63
+ };
64
+ "disabled": {
65
+ "alias": "disabled";
66
+ "required": false;
67
+ "isSignal": true;
68
+ };
69
+ "ariaLabel": {
70
+ "alias": "aria-label";
71
+ "required": false;
72
+ "isSignal": true;
73
+ };
74
+ }, {}, never, ["*"], true, never>;
75
+ }
76
+ export type { VdSegmentedSize };