@raintonic/formaui 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +145 -0
  3. package/fesm2022/raintonic-formaui-cdk-drag-drop.mjs +806 -0
  4. package/fesm2022/raintonic-formaui-cdk-drag-drop.mjs.map +1 -0
  5. package/fesm2022/raintonic-formaui-cdk-form-field.mjs +86 -0
  6. package/fesm2022/raintonic-formaui-cdk-form-field.mjs.map +1 -0
  7. package/fesm2022/raintonic-formaui-cdk-overlay.mjs +1757 -0
  8. package/fesm2022/raintonic-formaui-cdk-overlay.mjs.map +1 -0
  9. package/fesm2022/raintonic-formaui-cdk-virtual-scroll.mjs +287 -0
  10. package/fesm2022/raintonic-formaui-cdk-virtual-scroll.mjs.map +1 -0
  11. package/fesm2022/raintonic-formaui-components-accordion.mjs +217 -0
  12. package/fesm2022/raintonic-formaui-components-accordion.mjs.map +1 -0
  13. package/fesm2022/raintonic-formaui-components-alert.mjs +161 -0
  14. package/fesm2022/raintonic-formaui-components-alert.mjs.map +1 -0
  15. package/fesm2022/raintonic-formaui-components-autocomplete.mjs +726 -0
  16. package/fesm2022/raintonic-formaui-components-autocomplete.mjs.map +1 -0
  17. package/fesm2022/raintonic-formaui-components-avatar.mjs +92 -0
  18. package/fesm2022/raintonic-formaui-components-avatar.mjs.map +1 -0
  19. package/fesm2022/raintonic-formaui-components-badge.mjs +107 -0
  20. package/fesm2022/raintonic-formaui-components-badge.mjs.map +1 -0
  21. package/fesm2022/raintonic-formaui-components-big-menu.mjs +68 -0
  22. package/fesm2022/raintonic-formaui-components-big-menu.mjs.map +1 -0
  23. package/fesm2022/raintonic-formaui-components-breadcrumb.mjs +55 -0
  24. package/fesm2022/raintonic-formaui-components-breadcrumb.mjs.map +1 -0
  25. package/fesm2022/raintonic-formaui-components-button-group.mjs +103 -0
  26. package/fesm2022/raintonic-formaui-components-button-group.mjs.map +1 -0
  27. package/fesm2022/raintonic-formaui-components-button.mjs +241 -0
  28. package/fesm2022/raintonic-formaui-components-button.mjs.map +1 -0
  29. package/fesm2022/raintonic-formaui-components-card.mjs +270 -0
  30. package/fesm2022/raintonic-formaui-components-card.mjs.map +1 -0
  31. package/fesm2022/raintonic-formaui-components-checkbox.mjs +295 -0
  32. package/fesm2022/raintonic-formaui-components-checkbox.mjs.map +1 -0
  33. package/fesm2022/raintonic-formaui-components-data-table.mjs +631 -0
  34. package/fesm2022/raintonic-formaui-components-data-table.mjs.map +1 -0
  35. package/fesm2022/raintonic-formaui-components-date-picker.mjs +1331 -0
  36. package/fesm2022/raintonic-formaui-components-date-picker.mjs.map +1 -0
  37. package/fesm2022/raintonic-formaui-components-divider.mjs +41 -0
  38. package/fesm2022/raintonic-formaui-components-divider.mjs.map +1 -0
  39. package/fesm2022/raintonic-formaui-components-drawer.mjs +190 -0
  40. package/fesm2022/raintonic-formaui-components-drawer.mjs.map +1 -0
  41. package/fesm2022/raintonic-formaui-components-dynamic-form.mjs +266 -0
  42. package/fesm2022/raintonic-formaui-components-dynamic-form.mjs.map +1 -0
  43. package/fesm2022/raintonic-formaui-components-empty-state.mjs +33 -0
  44. package/fesm2022/raintonic-formaui-components-empty-state.mjs.map +1 -0
  45. package/fesm2022/raintonic-formaui-components-file-upload.mjs +246 -0
  46. package/fesm2022/raintonic-formaui-components-file-upload.mjs.map +1 -0
  47. package/fesm2022/raintonic-formaui-components-form-field.mjs +482 -0
  48. package/fesm2022/raintonic-formaui-components-form-field.mjs.map +1 -0
  49. package/fesm2022/raintonic-formaui-components-icon.mjs +117 -0
  50. package/fesm2022/raintonic-formaui-components-icon.mjs.map +1 -0
  51. package/fesm2022/raintonic-formaui-components-input.mjs +327 -0
  52. package/fesm2022/raintonic-formaui-components-input.mjs.map +1 -0
  53. package/fesm2022/raintonic-formaui-components-list.mjs +149 -0
  54. package/fesm2022/raintonic-formaui-components-list.mjs.map +1 -0
  55. package/fesm2022/raintonic-formaui-components-menu.mjs +896 -0
  56. package/fesm2022/raintonic-formaui-components-menu.mjs.map +1 -0
  57. package/fesm2022/raintonic-formaui-components-number-input.mjs +345 -0
  58. package/fesm2022/raintonic-formaui-components-number-input.mjs.map +1 -0
  59. package/fesm2022/raintonic-formaui-components-paginator.mjs +139 -0
  60. package/fesm2022/raintonic-formaui-components-paginator.mjs.map +1 -0
  61. package/fesm2022/raintonic-formaui-components-password-input.mjs +306 -0
  62. package/fesm2022/raintonic-formaui-components-password-input.mjs.map +1 -0
  63. package/fesm2022/raintonic-formaui-components-popover.mjs +451 -0
  64. package/fesm2022/raintonic-formaui-components-popover.mjs.map +1 -0
  65. package/fesm2022/raintonic-formaui-components-progressbar.mjs +148 -0
  66. package/fesm2022/raintonic-formaui-components-progressbar.mjs.map +1 -0
  67. package/fesm2022/raintonic-formaui-components-radio.mjs +260 -0
  68. package/fesm2022/raintonic-formaui-components-radio.mjs.map +1 -0
  69. package/fesm2022/raintonic-formaui-components-select.mjs +1011 -0
  70. package/fesm2022/raintonic-formaui-components-select.mjs.map +1 -0
  71. package/fesm2022/raintonic-formaui-components-side-panel.mjs +150 -0
  72. package/fesm2022/raintonic-formaui-components-side-panel.mjs.map +1 -0
  73. package/fesm2022/raintonic-formaui-components-sidebar.mjs +257 -0
  74. package/fesm2022/raintonic-formaui-components-sidebar.mjs.map +1 -0
  75. package/fesm2022/raintonic-formaui-components-skeleton.mjs +50 -0
  76. package/fesm2022/raintonic-formaui-components-skeleton.mjs.map +1 -0
  77. package/fesm2022/raintonic-formaui-components-slider.mjs +347 -0
  78. package/fesm2022/raintonic-formaui-components-slider.mjs.map +1 -0
  79. package/fesm2022/raintonic-formaui-components-spinner.mjs +63 -0
  80. package/fesm2022/raintonic-formaui-components-spinner.mjs.map +1 -0
  81. package/fesm2022/raintonic-formaui-components-stepper.mjs +317 -0
  82. package/fesm2022/raintonic-formaui-components-stepper.mjs.map +1 -0
  83. package/fesm2022/raintonic-formaui-components-tab.mjs +197 -0
  84. package/fesm2022/raintonic-formaui-components-tab.mjs.map +1 -0
  85. package/fesm2022/raintonic-formaui-components-tag.mjs +78 -0
  86. package/fesm2022/raintonic-formaui-components-tag.mjs.map +1 -0
  87. package/fesm2022/raintonic-formaui-components-time-picker.mjs +644 -0
  88. package/fesm2022/raintonic-formaui-components-time-picker.mjs.map +1 -0
  89. package/fesm2022/raintonic-formaui-components-toggle.mjs +171 -0
  90. package/fesm2022/raintonic-formaui-components-toggle.mjs.map +1 -0
  91. package/fesm2022/raintonic-formaui-components-toolbar.mjs +140 -0
  92. package/fesm2022/raintonic-formaui-components-toolbar.mjs.map +1 -0
  93. package/fesm2022/raintonic-formaui-components-tooltip.mjs +555 -0
  94. package/fesm2022/raintonic-formaui-components-tooltip.mjs.map +1 -0
  95. package/fesm2022/raintonic-formaui-components-tree-select.mjs +314 -0
  96. package/fesm2022/raintonic-formaui-components-tree-select.mjs.map +1 -0
  97. package/fesm2022/raintonic-formaui-components-tree-table.mjs +103 -0
  98. package/fesm2022/raintonic-formaui-components-tree-table.mjs.map +1 -0
  99. package/fesm2022/raintonic-formaui-components-tree.mjs +430 -0
  100. package/fesm2022/raintonic-formaui-components-tree.mjs.map +1 -0
  101. package/fesm2022/raintonic-formaui-core.mjs +62 -0
  102. package/fesm2022/raintonic-formaui-core.mjs.map +1 -0
  103. package/fesm2022/raintonic-formaui-services-dialog.mjs +798 -0
  104. package/fesm2022/raintonic-formaui-services-dialog.mjs.map +1 -0
  105. package/fesm2022/raintonic-formaui-services-notification.mjs +391 -0
  106. package/fesm2022/raintonic-formaui-services-notification.mjs.map +1 -0
  107. package/fesm2022/raintonic-formaui-services-theme.mjs +248 -0
  108. package/fesm2022/raintonic-formaui-services-theme.mjs.map +1 -0
  109. package/fesm2022/raintonic-formaui-test-utils.mjs +66 -0
  110. package/fesm2022/raintonic-formaui-test-utils.mjs.map +1 -0
  111. package/fesm2022/raintonic-formaui.mjs +15 -0
  112. package/fesm2022/raintonic-formaui.mjs.map +1 -0
  113. package/llms-full.txt +1627 -0
  114. package/llms.txt +60 -0
  115. package/package.json +251 -0
  116. package/styles/_fonts-entry.scss +3 -0
  117. package/styles/fonts/dm-mono-400-latin.woff2 +0 -0
  118. package/styles/fonts/inter-tight-latin-italic.woff2 +0 -0
  119. package/styles/fonts/inter-tight-latin.woff2 +0 -0
  120. package/styles/index.scss +127 -0
  121. package/styles/partials/_constants.scss +29 -0
  122. package/styles/partials/_fonts.scss +36 -0
  123. package/styles/partials/_grid.scss +171 -0
  124. package/styles/partials/_mixins.scss +145 -0
  125. package/styles/partials/_motion.scss +252 -0
  126. package/styles/partials/_theme.scss +275 -0
  127. package/styles/partials/_typography.scss +112 -0
  128. package/styles/partials/_utilities.scss +480 -0
  129. package/styles/partials/themes/_dark.scss +254 -0
  130. package/styles/partials/themes/_light.scss +254 -0
  131. package/types/raintonic-formaui-cdk-drag-drop.d.ts +196 -0
  132. package/types/raintonic-formaui-cdk-drag-drop.d.ts.map +1 -0
  133. package/types/raintonic-formaui-cdk-form-field.d.ts +62 -0
  134. package/types/raintonic-formaui-cdk-form-field.d.ts.map +1 -0
  135. package/types/raintonic-formaui-cdk-overlay.d.ts +843 -0
  136. package/types/raintonic-formaui-cdk-overlay.d.ts.map +1 -0
  137. package/types/raintonic-formaui-cdk-virtual-scroll.d.ts +112 -0
  138. package/types/raintonic-formaui-cdk-virtual-scroll.d.ts.map +1 -0
  139. package/types/raintonic-formaui-components-accordion.d.ts +124 -0
  140. package/types/raintonic-formaui-components-accordion.d.ts.map +1 -0
  141. package/types/raintonic-formaui-components-alert.d.ts +143 -0
  142. package/types/raintonic-formaui-components-alert.d.ts.map +1 -0
  143. package/types/raintonic-formaui-components-autocomplete.d.ts +193 -0
  144. package/types/raintonic-formaui-components-autocomplete.d.ts.map +1 -0
  145. package/types/raintonic-formaui-components-avatar.d.ts +52 -0
  146. package/types/raintonic-formaui-components-avatar.d.ts.map +1 -0
  147. package/types/raintonic-formaui-components-badge.d.ts +47 -0
  148. package/types/raintonic-formaui-components-badge.d.ts.map +1 -0
  149. package/types/raintonic-formaui-components-big-menu.d.ts +62 -0
  150. package/types/raintonic-formaui-components-big-menu.d.ts.map +1 -0
  151. package/types/raintonic-formaui-components-breadcrumb.d.ts +26 -0
  152. package/types/raintonic-formaui-components-breadcrumb.d.ts.map +1 -0
  153. package/types/raintonic-formaui-components-button-group.d.ts +61 -0
  154. package/types/raintonic-formaui-components-button-group.d.ts.map +1 -0
  155. package/types/raintonic-formaui-components-button.d.ts +116 -0
  156. package/types/raintonic-formaui-components-button.d.ts.map +1 -0
  157. package/types/raintonic-formaui-components-card.d.ts +191 -0
  158. package/types/raintonic-formaui-components-card.d.ts.map +1 -0
  159. package/types/raintonic-formaui-components-checkbox.d.ts +132 -0
  160. package/types/raintonic-formaui-components-checkbox.d.ts.map +1 -0
  161. package/types/raintonic-formaui-components-data-table.d.ts +368 -0
  162. package/types/raintonic-formaui-components-data-table.d.ts.map +1 -0
  163. package/types/raintonic-formaui-components-date-picker.d.ts +341 -0
  164. package/types/raintonic-formaui-components-date-picker.d.ts.map +1 -0
  165. package/types/raintonic-formaui-components-divider.d.ts +21 -0
  166. package/types/raintonic-formaui-components-divider.d.ts.map +1 -0
  167. package/types/raintonic-formaui-components-drawer.d.ts +48 -0
  168. package/types/raintonic-formaui-components-drawer.d.ts.map +1 -0
  169. package/types/raintonic-formaui-components-dynamic-form.d.ts +412 -0
  170. package/types/raintonic-formaui-components-dynamic-form.d.ts.map +1 -0
  171. package/types/raintonic-formaui-components-empty-state.d.ts +14 -0
  172. package/types/raintonic-formaui-components-empty-state.d.ts.map +1 -0
  173. package/types/raintonic-formaui-components-file-upload.d.ts +77 -0
  174. package/types/raintonic-formaui-components-file-upload.d.ts.map +1 -0
  175. package/types/raintonic-formaui-components-form-field.d.ts +271 -0
  176. package/types/raintonic-formaui-components-form-field.d.ts.map +1 -0
  177. package/types/raintonic-formaui-components-icon.d.ts +61 -0
  178. package/types/raintonic-formaui-components-icon.d.ts.map +1 -0
  179. package/types/raintonic-formaui-components-input.d.ts +149 -0
  180. package/types/raintonic-formaui-components-input.d.ts.map +1 -0
  181. package/types/raintonic-formaui-components-list.d.ts +48 -0
  182. package/types/raintonic-formaui-components-list.d.ts.map +1 -0
  183. package/types/raintonic-formaui-components-menu.d.ts +403 -0
  184. package/types/raintonic-formaui-components-menu.d.ts.map +1 -0
  185. package/types/raintonic-formaui-components-number-input.d.ts +127 -0
  186. package/types/raintonic-formaui-components-number-input.d.ts.map +1 -0
  187. package/types/raintonic-formaui-components-paginator.d.ts +37 -0
  188. package/types/raintonic-formaui-components-paginator.d.ts.map +1 -0
  189. package/types/raintonic-formaui-components-password-input.d.ts +111 -0
  190. package/types/raintonic-formaui-components-password-input.d.ts.map +1 -0
  191. package/types/raintonic-formaui-components-popover.d.ts +131 -0
  192. package/types/raintonic-formaui-components-popover.d.ts.map +1 -0
  193. package/types/raintonic-formaui-components-progressbar.d.ts +111 -0
  194. package/types/raintonic-formaui-components-progressbar.d.ts.map +1 -0
  195. package/types/raintonic-formaui-components-radio.d.ts +95 -0
  196. package/types/raintonic-formaui-components-radio.d.ts.map +1 -0
  197. package/types/raintonic-formaui-components-select.d.ts +307 -0
  198. package/types/raintonic-formaui-components-select.d.ts.map +1 -0
  199. package/types/raintonic-formaui-components-side-panel.d.ts +51 -0
  200. package/types/raintonic-formaui-components-side-panel.d.ts.map +1 -0
  201. package/types/raintonic-formaui-components-sidebar.d.ts +174 -0
  202. package/types/raintonic-formaui-components-sidebar.d.ts.map +1 -0
  203. package/types/raintonic-formaui-components-skeleton.d.ts +20 -0
  204. package/types/raintonic-formaui-components-skeleton.d.ts.map +1 -0
  205. package/types/raintonic-formaui-components-slider.d.ts +108 -0
  206. package/types/raintonic-formaui-components-slider.d.ts.map +1 -0
  207. package/types/raintonic-formaui-components-spinner.d.ts +42 -0
  208. package/types/raintonic-formaui-components-spinner.d.ts.map +1 -0
  209. package/types/raintonic-formaui-components-stepper.d.ts +126 -0
  210. package/types/raintonic-formaui-components-stepper.d.ts.map +1 -0
  211. package/types/raintonic-formaui-components-tab.d.ts +96 -0
  212. package/types/raintonic-formaui-components-tab.d.ts.map +1 -0
  213. package/types/raintonic-formaui-components-tag.d.ts +34 -0
  214. package/types/raintonic-formaui-components-tag.d.ts.map +1 -0
  215. package/types/raintonic-formaui-components-time-picker.d.ts +172 -0
  216. package/types/raintonic-formaui-components-time-picker.d.ts.map +1 -0
  217. package/types/raintonic-formaui-components-toggle.d.ts +70 -0
  218. package/types/raintonic-formaui-components-toggle.d.ts.map +1 -0
  219. package/types/raintonic-formaui-components-toolbar.d.ts +128 -0
  220. package/types/raintonic-formaui-components-toolbar.d.ts.map +1 -0
  221. package/types/raintonic-formaui-components-tooltip.d.ts +268 -0
  222. package/types/raintonic-formaui-components-tooltip.d.ts.map +1 -0
  223. package/types/raintonic-formaui-components-tree-select.d.ts +80 -0
  224. package/types/raintonic-formaui-components-tree-select.d.ts.map +1 -0
  225. package/types/raintonic-formaui-components-tree-table.d.ts +90 -0
  226. package/types/raintonic-formaui-components-tree-table.d.ts.map +1 -0
  227. package/types/raintonic-formaui-components-tree.d.ts +104 -0
  228. package/types/raintonic-formaui-components-tree.d.ts.map +1 -0
  229. package/types/raintonic-formaui-core.d.ts +115 -0
  230. package/types/raintonic-formaui-core.d.ts.map +1 -0
  231. package/types/raintonic-formaui-services-dialog.d.ts +451 -0
  232. package/types/raintonic-formaui-services-dialog.d.ts.map +1 -0
  233. package/types/raintonic-formaui-services-notification.d.ts +221 -0
  234. package/types/raintonic-formaui-services-notification.d.ts.map +1 -0
  235. package/types/raintonic-formaui-services-theme.d.ts +126 -0
  236. package/types/raintonic-formaui-services-theme.d.ts.map +1 -0
  237. package/types/raintonic-formaui-test-utils.d.ts +24 -0
  238. package/types/raintonic-formaui-test-utils.d.ts.map +1 -0
  239. package/types/raintonic-formaui.d.ts +4 -0
  240. package/types/raintonic-formaui.d.ts.map +1 -0
@@ -0,0 +1,132 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { DoCheck, OnDestroy, OutputEmitterRef, Signal, ElementRef } from '@angular/core';
3
+ import { ControlValueAccessor, NgControl } from '@angular/forms';
4
+ import { Subject } from 'rxjs';
5
+ import { ErrorStateMatcher } from '@raintonic/formaui/core';
6
+
7
+ /**
8
+ * Checkbox label position
9
+ */
10
+ type FuiCheckboxLabelPosition = 'before' | 'after';
11
+ /**
12
+ * Checkbox change event interface (compatible with MatCheckboxChange)
13
+ */
14
+ interface FuiCheckboxChange {
15
+ /** The source checkbox of the event. */
16
+ source: FuiCheckboxComponent;
17
+ /** The new `checked` value of the checkbox. */
18
+ checked: boolean;
19
+ }
20
+ /**
21
+ * # FuiCheckbox Component
22
+ *
23
+ * A checkbox component with full Angular Reactive Forms support.
24
+ * Compatible with Angular Material's mat-checkbox interface.
25
+ *
26
+ * ## Features
27
+ * - Full Reactive Forms integration (ControlValueAccessor)
28
+ * - Indeterminate state support
29
+ * - Label position configuration (before/after)
30
+ * - Built-in validation and error display
31
+ * - Disabled state
32
+ * - Full accessibility support (ARIA)
33
+ * - Compatible with mat-checkbox interface
34
+ *
35
+ * ## Usage
36
+ *
37
+ * ### Basic Checkbox
38
+ * ```html
39
+ * <fui-checkbox>Accept terms</fui-checkbox>
40
+ * ```
41
+ *
42
+ * ### With Reactive Forms
43
+ * ```html
44
+ * <form [formGroup]="form">
45
+ * <fui-checkbox formControlName="acceptTerms">
46
+ * I accept the terms and conditions
47
+ * </fui-checkbox>
48
+ * </form>
49
+ * ```
50
+ *
51
+ * ### Indeterminate State
52
+ * ```html
53
+ * <fui-checkbox [indeterminate]="true">
54
+ * Select all
55
+ * </fui-checkbox>
56
+ * ```
57
+ *
58
+ * ### Label Position
59
+ * ```html
60
+ * <fui-checkbox labelPosition="before">
61
+ * Label before checkbox
62
+ * </fui-checkbox>
63
+ * ```
64
+ */
65
+ declare class FuiCheckboxComponent implements ControlValueAccessor, DoCheck, OnDestroy {
66
+ static nextId: number;
67
+ readonly controlType = "fui-checkbox";
68
+ readonly readonlyInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
69
+ readonly checkedInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
70
+ readonly disabledInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
71
+ readonly indeterminateInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
72
+ readonly requiredInput: _angular_core.InputSignalWithTransform<boolean, unknown>;
73
+ readonly labelPosition: _angular_core.InputSignal<FuiCheckboxLabelPosition>;
74
+ readonly name: _angular_core.InputSignal<string | null>;
75
+ readonly value: _angular_core.InputSignal<string>;
76
+ readonly ariaLabel: _angular_core.InputSignal<string | null>;
77
+ readonly ariaLabelledby: _angular_core.InputSignal<string | null>;
78
+ readonly ariaDescribedby: _angular_core.InputSignal<string | null>;
79
+ readonly disableRipple: _angular_core.InputSignalWithTransform<boolean, unknown>;
80
+ readonly tabIndex: _angular_core.InputSignal<number>;
81
+ readonly errorStateMatcher: _angular_core.InputSignal<ErrorStateMatcher | null>;
82
+ readonly change: OutputEmitterRef<FuiCheckboxChange>;
83
+ readonly indeterminateChange: OutputEmitterRef<boolean>;
84
+ private readonly _checked;
85
+ private readonly _indeterminate;
86
+ private readonly _focused;
87
+ private readonly _disabled;
88
+ readonly checked: Signal<boolean>;
89
+ readonly indeterminate: Signal<boolean>;
90
+ readonly focused: Signal<boolean>;
91
+ readonly stateChanges: Subject<void>;
92
+ private _uid;
93
+ readonly id: string;
94
+ readonly inputId: string;
95
+ private readonly _errorState;
96
+ readonly errorState: Signal<boolean>;
97
+ private _parentForm;
98
+ private _parentFormGroup;
99
+ private _defaultErrorStateMatcher;
100
+ private readonly _ngControlRef;
101
+ get ngControl(): NgControl | null;
102
+ private readonly _required;
103
+ readonly required: Signal<boolean>;
104
+ private readonly _ngControlDisabled;
105
+ readonly disabled: Signal<boolean>;
106
+ readonly inputElement: Signal<ElementRef<HTMLInputElement> | undefined>;
107
+ private _onChange;
108
+ private _onTouched;
109
+ private _formControlInitialized;
110
+ constructor();
111
+ ngDoCheck(): void;
112
+ ngOnDestroy(): void;
113
+ writeValue(value: boolean): void;
114
+ registerOnChange(fn: (value: boolean) => void): void;
115
+ registerOnTouched(fn: () => void): void;
116
+ setDisabledState(isDisabled: boolean): void;
117
+ onInputChange(event: Event): void;
118
+ onFocus(): void;
119
+ onBlur(): void;
120
+ /** Toggles the `checked` state of the checkbox. */
121
+ toggle(): void;
122
+ /** Focuses the checkbox. */
123
+ focus(): void;
124
+ /** Sets the indeterminate state programmatically. */
125
+ setIndeterminate(value: boolean): void;
126
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FuiCheckboxComponent, never>;
127
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FuiCheckboxComponent, "fui-checkbox", never, { "readonlyInput": { "alias": "readonly"; "required": false; "isSignal": true; }; "checkedInput": { "alias": "checked"; "required": false; "isSignal": true; }; "disabledInput": { "alias": "disabled"; "required": false; "isSignal": true; }; "indeterminateInput": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "requiredInput": { "alias": "required"; "required": false; "isSignal": true; }; "labelPosition": { "alias": "labelPosition"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; "ariaDescribedby": { "alias": "aria-describedby"; "required": false; "isSignal": true; }; "disableRipple": { "alias": "disableRipple"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; "isSignal": true; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; "isSignal": true; }; }, { "change": "change"; "indeterminateChange": "indeterminateChange"; }, never, ["*", "*"], true, never>;
128
+ }
129
+
130
+ export { FuiCheckboxComponent };
131
+ export type { FuiCheckboxChange, FuiCheckboxLabelPosition };
132
+ //# sourceMappingURL=raintonic-formaui-components-checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raintonic-formaui-components-checkbox.d.ts","sources":["../../../lib/components/checkbox/checkbox.component.ts"],"mappings":";;;;;;AAyBA;;AAEG;KACS,wBAAwB;AAEpC;;AAEG;UACc,iBAAiB;;YAExB,oBAAoB;;;AAG7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CG;AACH,cA4Ba,oBAAqB,YAAW,oBAAoB,EAAE,OAAO,EAAE,SAAS;;;4BAM7D,aAAA,CAAA,wBAAA;2BAID,aAAA,CAAA,wBAAA;4BAIC,aAAA,CAAA,wBAAA;iCAIK,aAAA,CAAA,wBAAA;4BAIL,aAAA,CAAA,wBAAA;4BAIA,aAAA,CAAA,WAAA,CAAA,wBAAA;mBACT,aAAA,CAAA,WAAA;oBACC,aAAA,CAAA,WAAA;wBACI,aAAA,CAAA,WAAA;6BACK,aAAA,CAAA,WAAA;8BACC,aAAA,CAAA,WAAA;4BACF,aAAA,CAAA,wBAAA;uBACL,aAAA,CAAA,WAAA;gCACS,aAAA,CAAA,WAAA,CAAA,iBAAA;AAG1B,qBAAiB,gBAAgB,CAAC,iBAAiB;AACnD,kCAA8B,gBAAgB;AAG9C;AACA;AACA;AACA;AAGA,sBAAkB,MAAM;AACxB,4BAAwB,MAAM;AAC9B,sBAAkB,MAAM;2BAGH,OAAA;;;;AAMrB;yBACmB,MAAA;;;;AAMnB;AAEA,qBAAiB,SAAS;AAK1B;AACA,uBAAmB,MAAM;AAGzB;AACA,uBAAmB,MAAM;AAKzB,2BAAuB,MAAM,CAAC,UAAU,CAAC,gBAAgB;;;;;AA8DzD;AAgBA;AAKA;;AAUA;AAIA;AAMA,yBAAqB,KAAK;AA6B1B;AAOA;;AAWA;;AAqBA;;AAKA;oDAlQW,oBAAoB;sDAApB,oBAAoB;AAyQhC;;;;","names":[]}
@@ -0,0 +1,368 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { FuiMenuComponent } from '@raintonic/formaui/components/menu';
3
+
4
+ /**
5
+ * Label configuration for badge rendering in table cells.
6
+ * Mirrors IIndexConfigurationLabel from @zero/api-models — duplicated
7
+ * intentionally because FormaUI cannot depend on api-models.
8
+ */
9
+ interface AdvancedDataTableLabelConfig {
10
+ value: string;
11
+ label: string;
12
+ color: string;
13
+ icon?: string;
14
+ }
15
+ /**
16
+ * Configuration for a table header column
17
+ */
18
+ interface AdvancedDataTableHeader {
19
+ /**
20
+ * Whether this column should be sticky at the start
21
+ * Only applies to columns at the start of the array until first false is encountered
22
+ */
23
+ stickyColumnStart?: boolean;
24
+ /**
25
+ * Whether this column should be sticky at the end
26
+ * First true value makes all following columns sticky
27
+ */
28
+ stickyColumnEnd?: boolean;
29
+ /**
30
+ * Display label for the column header
31
+ */
32
+ label: string;
33
+ /**
34
+ * Data type of the column (e.g., 'string', 'number', 'date', 'boolean')
35
+ */
36
+ type: string;
37
+ /**
38
+ * Property path in the data object (e.g., 'user.name', 'address.city')
39
+ * Format: <entityName>.<property>, can have multiple levels for nested objects
40
+ */
41
+ field: string;
42
+ /**
43
+ * Whether this column supports sorting
44
+ */
45
+ hasSort?: boolean;
46
+ /**
47
+ * Whether this column supports filtering
48
+ */
49
+ hasFilter?: boolean;
50
+ labels?: AdvancedDataTableLabelConfig[];
51
+ }
52
+ /**
53
+ * Configuration for the advanced data table
54
+ */
55
+ /**
56
+ * Processed header with computed sticky positioning
57
+ */
58
+ interface ProcessedDataTableHeader extends AdvancedDataTableHeader {
59
+ isStartSticky: boolean;
60
+ isEndSticky: boolean;
61
+ isLastStartSticky: boolean;
62
+ isFirstEndSticky: boolean;
63
+ startStickyPosition: number;
64
+ endStickyPosition: number;
65
+ }
66
+ interface AdvancedDataTableConfig {
67
+ /**
68
+ * Whether the table header should be sticky
69
+ */
70
+ headerSticky?: boolean;
71
+ /**
72
+ * Array of header column configurations
73
+ */
74
+ headers: AdvancedDataTableHeader[];
75
+ /**
76
+ * Whether rows can be selected via checkboxes
77
+ */
78
+ areRowsSelectable?: boolean;
79
+ }
80
+ /**
81
+ * Filter operator types
82
+ */
83
+ declare enum FilterOperator {
84
+ CONTAINS = "CONTAINS",
85
+ START_WITH = "START_WITH",
86
+ END_WITH = "END_WITH",
87
+ EQUAL = "EQUAL",
88
+ NOT_EQUAL = "NOT_EQUAL",
89
+ GREATER = "GREATER",
90
+ GREATER_EQUAL = "GREATER_EQUAL",
91
+ LOWER = "LOWER",
92
+ LOWER_EQUAL = "LOWER_EQUAL",
93
+ BETWEEN = "BETWEEN",
94
+ IS_TRUE = "IS_TRUE",
95
+ IS_FALSE = "IS_FALSE"
96
+ }
97
+ /**
98
+ * Filter configuration for a column
99
+ */
100
+ interface ColumnFilter {
101
+ field: string;
102
+ operator: FilterOperator;
103
+ value: string | number | boolean | Date | (string | number | Date)[];
104
+ }
105
+ /**
106
+ * Filter operator option
107
+ */
108
+ interface FilterOperatorOption {
109
+ value: FilterOperator;
110
+ label: string;
111
+ requiresInput: boolean;
112
+ requiresSecondInput: boolean;
113
+ }
114
+ /**
115
+ * @component FuiAdvancedDataTableComponent
116
+ * @selector fui-advanced-data-table
117
+ * @description A feature-rich data table with configurable columns, sticky headers/columns,
118
+ * row selection via checkboxes, sorting, column filtering, row highlighting, and badge-based label rendering.
119
+ *
120
+ * @input config - (required) Table configuration including headers, sticky settings, and row selectability.
121
+ * @input data - Array of row data objects. Default [].
122
+ * @input enableRowHighlight - Whether clicking a row toggles highlight. Default false.
123
+ * @input tableAriaLabel - Accessible label for the table element. Default 'Data table'.
124
+ * @input emptyMessage - Message shown when data is empty. Default 'Nessun dato disponibile'.
125
+ * @input sort - Current sort state: { field, direction } or null.
126
+ * @input filters - Array of active column filters.
127
+ * @output sortChange - Emits when the user changes sort direction on a column.
128
+ * @output filtersChange - Emits when filters are applied or cleared.
129
+ * @output rowDblClick - Emits the row data object on double-click.
130
+ *
131
+ * @example
132
+ * <fui-advanced-data-table
133
+ * [config]="tableConfig"
134
+ * [data]="rows"
135
+ * [sort]="currentSort"
136
+ * (sortChange)="onSort($event)"
137
+ * (filtersChange)="onFilter($event)"
138
+ * (rowDblClick)="onRowOpen($event)">
139
+ * </fui-advanced-data-table>
140
+ */
141
+ declare class FuiAdvancedDataTableComponent<T = Record<string, unknown>> {
142
+ /**
143
+ * Table configuration
144
+ */
145
+ readonly config: _angular_core.InputSignal<AdvancedDataTableConfig>;
146
+ /**
147
+ * Data to display in the table
148
+ */
149
+ readonly data: _angular_core.InputSignal<T[]>;
150
+ /**
151
+ * Track-by function for row rendering performance.
152
+ * Defaults to tracking by index.
153
+ */
154
+ readonly trackBy: _angular_core.InputSignal<(index: number, item: T) => unknown>;
155
+ /**
156
+ * Enable click-to-highlight feature for rows
157
+ */
158
+ readonly enableRowHighlight: _angular_core.InputSignal<boolean>;
159
+ /**
160
+ * Accessible label for the table
161
+ */
162
+ readonly tableAriaLabel: _angular_core.InputSignal<string>;
163
+ private _liveAnnouncer?;
164
+ /**
165
+ * Message shown when the data array is empty. Pass empty string to hide.
166
+ */
167
+ readonly emptyMessage: _angular_core.InputSignal<string>;
168
+ /**
169
+ * Current sort configuration
170
+ */
171
+ readonly sort: _angular_core.InputSignal<{
172
+ field: string;
173
+ direction: "ASC" | "DESC";
174
+ } | null>;
175
+ /**
176
+ * Event emitted when sort changes
177
+ */
178
+ readonly sortChange: _angular_core.OutputEmitterRef<{
179
+ field: string;
180
+ direction: "ASC" | "DESC";
181
+ } | null>;
182
+ /**
183
+ * Current filters
184
+ */
185
+ readonly filters: _angular_core.InputSignal<ColumnFilter[]>;
186
+ /**
187
+ * Event emitted when filters change
188
+ */
189
+ readonly filtersChange: _angular_core.OutputEmitterRef<ColumnFilter[]>;
190
+ /**
191
+ * Row dblClick event
192
+ */
193
+ readonly rowDblClick: _angular_core.OutputEmitterRef<T>;
194
+ /**
195
+ * Internal state for selected row indices
196
+ */
197
+ readonly selectedRows: _angular_core.WritableSignal<Set<unknown>>;
198
+ /**
199
+ * Internal state for highlighted row indices
200
+ */
201
+ readonly highlightedRows: _angular_core.WritableSignal<Set<unknown>>;
202
+ /**
203
+ * Temporary filter state while editing filter menu
204
+ */
205
+ tempFilterOperator: FilterOperator | null;
206
+ tempFilterValue: string;
207
+ tempFilterValue2: string;
208
+ /**
209
+ * Whether all rows are selected
210
+ */
211
+ readonly allRowsSelected: _angular_core.Signal<boolean>;
212
+ /**
213
+ * Whether some (but not all) rows are selected
214
+ */
215
+ readonly someRowsSelected: _angular_core.Signal<boolean>;
216
+ /**
217
+ * Computed headers with sticky information
218
+ */
219
+ readonly processedHeaders: _angular_core.Signal<{
220
+ isStartSticky: boolean;
221
+ isEndSticky: boolean;
222
+ isLastStartSticky: boolean;
223
+ isFirstEndSticky: boolean;
224
+ startStickyPosition: number;
225
+ endStickyPosition: number;
226
+ /**
227
+ * Whether this column should be sticky at the start
228
+ * Only applies to columns at the start of the array until first false is encountered
229
+ */
230
+ stickyColumnStart?: boolean;
231
+ /**
232
+ * Whether this column should be sticky at the end
233
+ * First true value makes all following columns sticky
234
+ */
235
+ stickyColumnEnd?: boolean;
236
+ /**
237
+ * Display label for the column header
238
+ */
239
+ label: string;
240
+ /**
241
+ * Data type of the column (e.g., 'string', 'number', 'date', 'boolean')
242
+ */
243
+ type: string;
244
+ /**
245
+ * Property path in the data object (e.g., 'user.name', 'address.city')
246
+ * Format: <entityName>.<property>, can have multiple levels for nested objects
247
+ */
248
+ field: string;
249
+ /**
250
+ * Whether this column supports sorting
251
+ */
252
+ hasSort?: boolean;
253
+ /**
254
+ * Whether this column supports filtering
255
+ */
256
+ hasFilter?: boolean;
257
+ labels?: AdvancedDataTableLabelConfig[];
258
+ }[]>;
259
+ /**
260
+ * Get header classes
261
+ */
262
+ getHeaderClasses(header: ProcessedDataTableHeader): string;
263
+ /**
264
+ * Get cell classes
265
+ */
266
+ getCellClasses(header: ProcessedDataTableHeader): string;
267
+ /**
268
+ * Get header styles for sticky positioning
269
+ */
270
+ getHeaderStyles(header: ProcessedDataTableHeader): Record<string, string>;
271
+ /**
272
+ * Get cell styles for sticky positioning
273
+ */
274
+ getCellStyles(header: ProcessedDataTableHeader): Record<string, string>;
275
+ /**
276
+ * Extract value from nested object using dot notation
277
+ */
278
+ getCellValue(row: T, columnPath: string): unknown;
279
+ /**
280
+ * Format cell value based on type
281
+ */
282
+ formatCellValue(value: unknown, type: string): string;
283
+ /**
284
+ * Toggle all rows selection
285
+ */
286
+ toggleAllRows(): void;
287
+ /**
288
+ * Toggle single row selection
289
+ */
290
+ toggleRow(index: number): void;
291
+ /**
292
+ * Check if a row is selected
293
+ */
294
+ isRowSelected(index: number): boolean;
295
+ /**
296
+ * Toggle row highlight (only if enableRowHighlight is true)
297
+ */
298
+ toggleRowHighlight(index: number): void;
299
+ /**
300
+ * Check if a row is highlighted
301
+ */
302
+ isRowHighlighted(index: number): boolean;
303
+ /**
304
+ * Get ARIA sort value for a column header
305
+ */
306
+ getAriaSortValue(field: string): 'ascending' | 'descending' | 'none' | null;
307
+ /**
308
+ * Handle sort button click
309
+ * Cycles through: ASC → DESC → null (no sort)
310
+ */
311
+ onSortClick(field: string): void;
312
+ /**
313
+ * Get sort icon classes for a header
314
+ */
315
+ getSortIconClasses(field: string): string;
316
+ /**
317
+ * Get available filter operators for a column type
318
+ */
319
+ getFilterOperators(type: string): FilterOperatorOption[];
320
+ getLabelConfig(value: unknown, labels: AdvancedDataTableLabelConfig[]): AdvancedDataTableLabelConfig | null;
321
+ /**
322
+ * Initialize filter form for a field
323
+ * Called when menu is opened
324
+ */
325
+ initFilterForm(field: string, type: string): void;
326
+ /**
327
+ * Reset filter form
328
+ */
329
+ resetFilterForm(): void;
330
+ /**
331
+ * Apply filter for a field
332
+ */
333
+ applyFilter(field: string, type: string, menu?: FuiMenuComponent): void;
334
+ /**
335
+ * Clear filter for a field
336
+ */
337
+ clearFilter(field: string, menu?: FuiMenuComponent): void;
338
+ /**
339
+ * Parse value by column type
340
+ */
341
+ private parseValueByType;
342
+ /**
343
+ * Announce a message to screen readers via live region
344
+ */
345
+ private _announce;
346
+ /**
347
+ * Check if a field has an active filter
348
+ */
349
+ hasActiveFilter(field: string): boolean;
350
+ /**
351
+ * Get filter icon classes
352
+ */
353
+ getFilterIconClasses(field: string): string;
354
+ /**
355
+ * Check if current operator requires second input
356
+ */
357
+ requiresSecondInput(type: string): boolean;
358
+ /**
359
+ * Check if current operator requires any input
360
+ */
361
+ requiresInput(type: string): boolean;
362
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FuiAdvancedDataTableComponent<any>, never>;
363
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FuiAdvancedDataTableComponent<any>, "fui-advanced-data-table", never, { "config": { "alias": "config"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; "enableRowHighlight": { "alias": "enableRowHighlight"; "required": false; "isSignal": true; }; "tableAriaLabel": { "alias": "tableAriaLabel"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "sort": { "alias": "sort"; "required": false; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; }, { "sortChange": "sortChange"; "filtersChange": "filtersChange"; "rowDblClick": "rowDblClick"; }, never, never, true, never>;
364
+ }
365
+
366
+ export { FilterOperator, FuiAdvancedDataTableComponent };
367
+ export type { AdvancedDataTableConfig, AdvancedDataTableHeader, AdvancedDataTableLabelConfig, ColumnFilter, ProcessedDataTableHeader };
368
+ //# sourceMappingURL=raintonic-formaui-components-data-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raintonic-formaui-components-data-table.d.ts","sources":["../../../lib/components/data-table/advanced-data-table.component.ts"],"mappings":";;;AAuBA;;;;AAIG;UACc,4BAA4B;;;;;AAK5C;AAED;;AAEG;UACc,uBAAuB;AACtC;;;AAGG;;AAGH;;;AAGG;;AAGH;;AAEG;;AAGH;;AAEG;;AAGH;;;AAGG;;AAGH;;AAEG;;AAGH;;AAEG;;AAGH,aAAS,4BAA4B;AACtC;AAED;;AAEG;AACH;;AAEG;AACG,UAAW,wBAAyB,SAAQ,uBAAuB;;;;;;;AAOxE;UAEgB,uBAAuB;AACtC;;AAEG;;AAGH;;AAEG;aACM,uBAAuB;AAEhC;;AAEG;;AAEJ;AAED;;AAEG;AACH,aAAY,cAAc;AAExB;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AAGA;AACA;AACD;AAED;;AAEG;UACc,YAAY;;cAEjB,cAAc;AACxB,uCAAmC,IAAI,sBAAsB,IAAI;AAClE;AAED;;AAEG;AACH,UAAU,oBAAoB;WACrB,cAAc;;;;AAItB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BG;AACH,cAyBa,6BAA6B,KAAK,MAAM;AACnD;;AAEG;qBACY,aAAA,CAAA,WAAA,CAAA,uBAAA;AAEf;;AAEG;mBACU,aAAA,CAAA,WAAA;AAEb;;;AAGG;sBACa,aAAA,CAAA,WAAA;AAEhB;;AAEG;iCACwB,aAAA,CAAA,WAAA;AAE3B;;AAEG;6BACoB,aAAA,CAAA,WAAA;;AAIvB;;AAEG;2BACkB,aAAA,CAAA,WAAA;AAErB;;AAEG;AACH,mBAAa,aAAA,CAAA,WAAA;;AAAqC;AAA+B;AAEjF;;AAEG;AACH,yBAAmB,aAAA,CAAA,gBAAA;;AAAsC;AAA2B;AAEpF;;AAEG;sBACa,aAAA,CAAA,WAAA,CAAA,YAAA;AAEhB;;AAEG;4BACmB,aAAA,CAAA,gBAAA,CAAA,YAAA;AAEtB;;AAEG;0BACiB,aAAA,CAAA,gBAAA;AAEpB;;AAEG;2BACkB,aAAA,CAAA,cAAA,CAAA,GAAA;AAErB;;AAEG;8BACqB,aAAA,CAAA,cAAA,CAAA,GAAA;AAExB;;AAEG;AACH,wBAAoB,cAAc;AAClC;AACA;AAEA;;AAEG;8BACqB,aAAA,CAAA,MAAA;AAKxB;;AAEG;+BACsB,aAAA,CAAA,MAAA;AAKzB;;AAEG;AACH,+BAAyB,aAAA,CAAA,MAAA;;;;;;;AAtQzB;;;AAGG;;AAGH;;;AAGG;;AAGH;;AAEG;;AAGH;;AAEG;;AAGH;;;AAGG;;AAGH;;AAEG;;AAGH;;AAEG;;AAGM,iBAAA,4BAA4B;AA0RlC;AAEH;;AAEG;AACH,6BAAyB,wBAAwB;AAiBjD;;AAEG;AACH,2BAAuB,wBAAwB;AAiB/C;;AAEG;4BACqB,wBAAwB,GAAG,MAAM;AAWzD;;AAEG;0BACmB,wBAAwB,GAAG,MAAM;AAIvD;;AAEG;;AAiBH;;AAEG;;AAuBH;;AAEG;AACH;AAUA;;AAEG;AACH;AAUA;;AAEG;AACH;AAIA;;AAEG;AACH;AAcA;;AAEG;AACH;AAIA;;AAEG;;AAWH;;;AAGG;AACH;AAkBA;;AAEG;AACH;AAeA;;AAEG;AACH,sCAAkC,oBAAoB;AA2DtD,2CAAuC,4BAA4B,KAAK,4BAA4B;AAIpG;;;AAGG;;AA8BH;;AAEG;AACH;AAMA;;AAEG;AACH,oDAAgD,gBAAgB;AAkChE;;AAEG;sCAC+B,gBAAgB;AAQlD;;AAEG;AACH;AAeA;;AAEG;AACH;AAMA;;AAEG;AACH;AAIA;;AAEG;AACH;AAQA;;AAEG;AACH;AAQA;;AAEG;AACH;oDAzkBW,6BAA6B;sDAA7B,6BAA6B;AAglBzC;;;;","names":[]}