@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,104 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { OnDestroy, TemplateRef } from '@angular/core';
3
+ import { Observable } from 'rxjs';
4
+
5
+ /** Tree node data model (hierarchical) */
6
+ interface FuiTreeNode<T = any> {
7
+ data: T;
8
+ children?: FuiTreeNode<T>[];
9
+ expanded?: boolean;
10
+ selected?: boolean;
11
+ disabled?: boolean;
12
+ leaf?: boolean;
13
+ }
14
+ /** Flat node (internal representation for flat rendering) */
15
+ interface FuiFlatTreeNode<T = any> {
16
+ origin: FuiTreeNode<T>;
17
+ level: number;
18
+ expandable: boolean;
19
+ expanded: boolean;
20
+ selected: boolean;
21
+ disabled: boolean;
22
+ visible: boolean;
23
+ loading: boolean;
24
+ _flatIndex: number;
25
+ }
26
+ /** Selection mode for the tree */
27
+ type FuiTreeSelectionMode = 'none' | 'single' | 'multi' | 'checkbox';
28
+ /** Event emitted when a node is selected or unselected */
29
+ interface FuiTreeNodeEvent<T = any> {
30
+ node: FuiTreeNode<T>;
31
+ flatNode: FuiFlatTreeNode<T>;
32
+ }
33
+ /** Event emitted when a node is dragged and dropped */
34
+ interface FuiTreeDragDropEvent<T = any> {
35
+ dragNode: FuiTreeNode<T>;
36
+ dropNode: FuiTreeNode<T> | null;
37
+ dropPosition: 'before' | 'after' | 'inside';
38
+ dragIndex: number;
39
+ dropIndex: number;
40
+ }
41
+
42
+ declare class FuiTreeComponent<T = any> implements OnDestroy {
43
+ readonly nodes: _angular_core.InputSignal<FuiTreeNode<T>[]>;
44
+ readonly selectionMode: _angular_core.InputSignal<FuiTreeSelectionMode>;
45
+ readonly loadChildren: _angular_core.InputSignal<((node: FuiTreeNode<T>) => Observable<FuiTreeNode<T>[]>) | null>;
46
+ readonly nodeTemplate: _angular_core.InputSignal<TemplateRef<any> | null>;
47
+ readonly draggable: _angular_core.InputSignal<boolean>;
48
+ readonly virtualScroll: _angular_core.InputSignal<boolean>;
49
+ readonly virtualItemSize: _angular_core.InputSignal<number>;
50
+ readonly filter: _angular_core.InputSignal<string>;
51
+ readonly nodeSelect: _angular_core.OutputEmitterRef<FuiTreeNodeEvent<T>>;
52
+ readonly nodeUnselect: _angular_core.OutputEmitterRef<FuiTreeNodeEvent<T>>;
53
+ readonly nodeExpand: _angular_core.OutputEmitterRef<FuiTreeNodeEvent<T>>;
54
+ readonly nodeCollapse: _angular_core.OutputEmitterRef<FuiTreeNodeEvent<T>>;
55
+ readonly nodeDrop: _angular_core.OutputEmitterRef<FuiTreeDragDropEvent<T>>;
56
+ readonly filterChange: _angular_core.OutputEmitterRef<string>;
57
+ private readonly _flattener;
58
+ private readonly _subscriptions;
59
+ /** Refresh counter to trigger re-flatten after mutations */
60
+ private readonly _refreshCounter;
61
+ readonly flatNodes: _angular_core.Signal<FuiFlatTreeNode<T>[]>;
62
+ readonly checkboxStates: _angular_core.Signal<Map<FuiTreeNode<T>, "checked" | "unchecked" | "indeterminate">>;
63
+ readonly focusedIndex: _angular_core.WritableSignal<number>;
64
+ ngOnDestroy(): void;
65
+ expandAll(): void;
66
+ collapseAll(): void;
67
+ selectNode(node: FuiTreeNode<T>): void;
68
+ getSelectedNodes(): FuiTreeNode<T>[];
69
+ onNodeToggle(flatNode: FuiFlatTreeNode<T>): void;
70
+ onNodeSelect(flatNode: FuiFlatTreeNode<T>): void;
71
+ onCheckboxChange(flatNode: FuiFlatTreeNode<T>): void;
72
+ _onKeydown(event: KeyboardEvent): void;
73
+ private _filterNodes;
74
+ private _nodeMatchesFilter;
75
+ private _setExpandedRecursive;
76
+ private _clearSelectionRecursive;
77
+ private _setSelectedRecursive;
78
+ private _collectSelectedRecursive;
79
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FuiTreeComponent<any>, never>;
80
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FuiTreeComponent<any>, "fui-tree", never, { "nodes": { "alias": "nodes"; "required": true; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "loadChildren": { "alias": "loadChildren"; "required": false; "isSignal": true; }; "nodeTemplate": { "alias": "nodeTemplate"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualItemSize": { "alias": "virtualItemSize"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; }, { "nodeSelect": "nodeSelect"; "nodeUnselect": "nodeUnselect"; "nodeExpand": "nodeExpand"; "nodeCollapse": "nodeCollapse"; "nodeDrop": "nodeDrop"; "filterChange": "filterChange"; }, never, never, true, never>;
81
+ }
82
+
83
+ declare class FuiTreeNodeComponent {
84
+ readonly flatNode: _angular_core.InputSignal<FuiFlatTreeNode<any>>;
85
+ readonly selectionMode: _angular_core.InputSignal<FuiTreeSelectionMode>;
86
+ readonly nodeTemplate: _angular_core.InputSignal<TemplateRef<any> | null>;
87
+ readonly checkboxState: _angular_core.InputSignal<"checked" | "unchecked" | "indeterminate">;
88
+ readonly focused: _angular_core.InputSignal<boolean>;
89
+ readonly toggle: _angular_core.OutputEmitterRef<void>;
90
+ readonly select: _angular_core.OutputEmitterRef<void>;
91
+ readonly checkboxChange: _angular_core.OutputEmitterRef<void>;
92
+ readonly indentPx = 24;
93
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FuiTreeNodeComponent, never>;
94
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FuiTreeNodeComponent, "fui-tree-node", never, { "flatNode": { "alias": "flatNode"; "required": true; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "nodeTemplate": { "alias": "nodeTemplate"; "required": false; "isSignal": true; }; "checkboxState": { "alias": "checkboxState"; "required": false; "isSignal": true; }; "focused": { "alias": "focused"; "required": false; "isSignal": true; }; }, { "toggle": "toggle"; "select": "select"; "checkboxChange": "checkboxChange"; }, never, never, true, never>;
95
+ }
96
+
97
+ declare class FuiTreeFlattener<T = any> {
98
+ flatten(nodes: FuiTreeNode<T>[], hasLoadChildren?: boolean): FuiFlatTreeNode<T>[];
99
+ calculateCheckboxStates(nodes: FuiTreeNode<T>[]): Map<FuiTreeNode<T>, 'checked' | 'unchecked' | 'indeterminate'>;
100
+ }
101
+
102
+ export { FuiTreeComponent, FuiTreeFlattener, FuiTreeNodeComponent };
103
+ export type { FuiFlatTreeNode, FuiTreeDragDropEvent, FuiTreeNode, FuiTreeNodeEvent, FuiTreeSelectionMode };
104
+ //# sourceMappingURL=raintonic-formaui-components-tree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raintonic-formaui-components-tree.d.ts","sources":["../../../lib/components/tree/tree.types.ts","../../../lib/components/tree/fui-tree.component.ts","../../../lib/components/tree/fui-tree-node.component.ts","../../../lib/components/tree/tree-flattener.ts"],"mappings":";;;;AAAA;AACM,UAAW,WAAW;;AAE1B,eAAW,WAAW;;;;;AAKvB;AAED;AACM,UAAW,eAAe;AAC9B,YAAQ,WAAW;;;;;;;;;AASpB;AAED;AACM,KAAM,oBAAoB;AAEhC;AACM,UAAW,gBAAgB;AAC/B,UAAM,WAAW;AACjB,cAAU,eAAe;AAC1B;AAED;AACM,UAAW,oBAAoB;AACnC,cAAU,WAAW;AACrB,cAAU,WAAW;AACrB;;;AAGD;;AChBD,cAea,gBAAgB,qBAAqB,SAAS;oBAC3C,aAAA,CAAA,WAAA,CAAA,WAAA;4BACQ,aAAA,CAAA,WAAA,CAAA,oBAAA;AACtB,2BAAqB,aAAA,CAAA,WAAA,SAAiB,WAAW,QAAQ,UAAU,CAAC,WAAW;2BAC1D,aAAA,CAAA,WAAA,CAAA,WAAA;wBACH,aAAA,CAAA,WAAA;4BACI,aAAA,CAAA,WAAA;8BACE,aAAA,CAAA,WAAA;qBACT,aAAA,CAAA,WAAA;yBAEI,aAAA,CAAA,gBAAA,CAAA,gBAAA;2BACE,aAAA,CAAA,gBAAA,CAAA,gBAAA;yBACF,aAAA,CAAA,gBAAA,CAAA,gBAAA;2BACE,aAAA,CAAA,gBAAA,CAAA,gBAAA;uBACJ,aAAA,CAAA,gBAAA,CAAA,oBAAA;2BACI,aAAA,CAAA,gBAAA;AAErB;AACA;;AAGA;wBAEkB,aAAA,CAAA,MAAA,CAAA,eAAA;6BAWK,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,WAAA;2BAQF,aAAA,CAAA,cAAA;AAErB;AAQA;AAKA;qBAKiB,WAAW;AAa5B,wBAAoB,WAAW;2BAQR,eAAe;2BAmCf,eAAe;+BA2BX,eAAe;AAsB1C,sBAAkB,aAAa;AAyG/B;AAqBA;AAgBA;AASA;AASA;AASA;oDAhVW,gBAAgB;sDAAhB,gBAAgB;AA0V5B;;AC1XD,cAoBa,oBAAoB;uBACd,aAAA,CAAA,WAAA,CAAA,eAAA;4BACK,aAAA,CAAA,WAAA,CAAA,oBAAA;2BACD,aAAA,CAAA,WAAA,CAAA,WAAA;4BACC,aAAA,CAAA,WAAA;sBACN,aAAA,CAAA,WAAA;qBAED,aAAA,CAAA,gBAAA;qBACA,aAAA,CAAA,gBAAA;6BACQ,aAAA,CAAA,gBAAA;;oDATZ,oBAAoB;sDAApB,oBAAoB;AAYhC;;ACpCD,cAAa,gBAAgB;AAC3B,mBAAe,WAAW,mCAAiC,eAAe;mCAgC3C,WAAW,QAAQ,GAAG,CAAC,WAAW;AAiClE;;;;","names":[]}
@@ -0,0 +1,115 @@
1
+ import { Observable, Subject } from 'rxjs';
2
+ import { NgControl, FormControl, FormGroupDirective, NgForm } from '@angular/forms';
3
+ import * as i0 from '@angular/core';
4
+ import { InjectionToken, Signal } from '@angular/core';
5
+
6
+ /**
7
+ * Interface for form field controls following Angular Material patterns
8
+ * This interface should be implemented by any component that can be used inside fui-form-field
9
+ */
10
+ interface FuiFormFieldControl<T = unknown> {
11
+ /**
12
+ * Stream that emits whenever the state of the control changes
13
+ */
14
+ readonly stateChanges: Observable<void>;
15
+ /**
16
+ * The value of the control
17
+ */
18
+ readonly value: Signal<T | null>;
19
+ /**
20
+ * The placeholder for this control
21
+ */
22
+ readonly placeholder: Signal<string>;
23
+ /**
24
+ * The NgControl for this control (non-reactive)
25
+ */
26
+ readonly ngControl: NgControl | null;
27
+ /**
28
+ * Whether the control is focused
29
+ */
30
+ readonly focused: Signal<boolean>;
31
+ /**
32
+ * Whether the control is empty
33
+ */
34
+ readonly empty: Signal<boolean>;
35
+ /**
36
+ * Whether the control is required
37
+ */
38
+ readonly required: Signal<boolean>;
39
+ /**
40
+ * Whether the control is disabled
41
+ */
42
+ readonly disabled: Signal<boolean>;
43
+ /**
44
+ * Whether the control is in an error state
45
+ */
46
+ readonly errorState: Signal<boolean>;
47
+ /**
48
+ * The aria-describedby attribute on the control
49
+ */
50
+ readonly controlType?: string;
51
+ /**
52
+ * The element ID for the control
53
+ */
54
+ readonly id: string;
55
+ /**
56
+ * Handles a click on the control's container
57
+ */
58
+ onContainerClick(event: MouseEvent): void;
59
+ /**
60
+ * Sets the list of element IDs that describe the control
61
+ */
62
+ setDescribedByIds(ids: string[]): void;
63
+ /**
64
+ * Sets the read-only state of the control (propagated from form-field)
65
+ */
66
+ setReadOnly?(readOnly: boolean): void;
67
+ }
68
+ /**
69
+ * Injection token used to provide the form field control to the form field
70
+ */
71
+ declare const FUI_FORM_FIELD_CONTROL: InjectionToken<FuiFormFieldControl<unknown>>;
72
+
73
+ /**
74
+ * Error state matcher that follows Angular Material patterns
75
+ * Determines when to show error messages
76
+ */
77
+ interface ErrorStateMatcher {
78
+ isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean;
79
+ }
80
+ /**
81
+ * Default error state matcher implementation
82
+ * Shows errors when control is invalid and either touched or form is submitted
83
+ */
84
+ declare class DefaultErrorStateMatcher implements ErrorStateMatcher {
85
+ isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean;
86
+ static ɵfac: i0.ɵɵFactoryDeclaration<DefaultErrorStateMatcher, never>;
87
+ static ɵprov: i0.ɵɵInjectableDeclaration<DefaultErrorStateMatcher>;
88
+ }
89
+ /**
90
+ * Interface for components that can display error state
91
+ */
92
+ interface CanUpdateErrorState {
93
+ readonly stateChanges: Subject<void>;
94
+ errorState: boolean;
95
+ errorStateMatcher: ErrorStateMatcher | null;
96
+ updateErrorState(): void;
97
+ }
98
+ /**
99
+ * Mixin to add error state handling to a component
100
+ */
101
+ type Constructor<T = object> = new (...args: any[]) => T;
102
+ interface HasErrorState {
103
+ _defaultErrorStateMatcher: ErrorStateMatcher;
104
+ _parentForm: NgForm | FormGroupDirective | null;
105
+ _parentFormGroup: FormGroupDirective | null;
106
+ ngControl: NgControl | null;
107
+ }
108
+ /**
109
+ * Mixin that adds error state handling
110
+ */
111
+ declare function mixinErrorState<T extends Constructor<HasErrorState>>(base: T): Constructor<CanUpdateErrorState> & T;
112
+
113
+ export { DefaultErrorStateMatcher, FUI_FORM_FIELD_CONTROL, mixinErrorState };
114
+ export type { CanUpdateErrorState, Constructor, ErrorStateMatcher, FuiFormFieldControl, HasErrorState };
115
+ //# sourceMappingURL=raintonic-formaui-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raintonic-formaui-core.d.ts","sources":["../../../lib/core/form-field-control.ts","../../../lib/core/error-state.ts"],"mappings":";;;;;AAIA;;;AAGG;AACG,UAAW,mBAAmB;AAClC;;AAEG;AACH,2BAAuB,UAAU;AAEjC;;AAEG;oBACa,MAAM;AAEtB;;AAEG;AACH,0BAAsB,MAAM;AAE5B;;AAEG;AACH,wBAAoB,SAAS;AAE7B;;AAEG;AACH,sBAAkB,MAAM;AAExB;;AAEG;AACH,oBAAgB,MAAM;AAEtB;;AAEG;AACH,uBAAmB,MAAM;AAEzB;;AAEG;AACH,uBAAmB,MAAM;AAEzB;;AAEG;AACH,yBAAqB,MAAM;AAE3B;;AAEG;AACH;AAEA;;AAEG;AACH;AAEA;;AAEG;AACH,4BAAwB,UAAU;AAElC;;AAEG;AACH;AAEA;;AAEG;AACH;AACD;AAED;;AAEG;AACH,cAAa,sBAAsB,EAAA,cAAA,CAAA,mBAAA;;AC/EnC;;;AAGG;UACc,iBAAiB;AAChC,0BAAsB,WAAW,eAAe,kBAAkB,GAAG,MAAM;AAC5E;AAED;;;AAGG;AACH,cACa,wBAAyB,YAAW,iBAAiB;AAChE,0BAAsB,WAAW,eAAe,kBAAkB,GAAG,MAAM;yCADhE,wBAAwB;6CAAxB,wBAAwB;AAKpC;AAED;;AAEG;UACc,mBAAmB;AAClC,2BAAuB,OAAO;;AAE9B,uBAAmB,iBAAiB;;AAErC;AAED;;AAEG;AAEG,KAAM,WAAW;UAEN,aAAa;+BACD,iBAAiB;AAC5C,iBAAa,MAAM,GAAG,kBAAkB;AACxC,sBAAkB,kBAAkB;AACpC,eAAW,SAAS;AACrB;AAED;;AAEG;AACH,iBAAgB,eAAe,WAAW,WAAW,CAAC,aAAa,aAAa,WAAW,CAAC,mBAAmB;;;;","names":[]}
@@ -0,0 +1,451 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, ViewContainerRef, Injector, Type, TemplateRef, AfterViewInit, OnDestroy } from '@angular/core';
3
+ import { Observable } from 'rxjs';
4
+ import { FuiOverlayRef } from '@raintonic/formaui/cdk/overlay';
5
+ import * as _raintonic_formaui_services_dialog from '@raintonic/formaui/services/dialog';
6
+
7
+ /**
8
+ * Injection token for dialog data passed to the dialog component
9
+ */
10
+ declare const FUI_DIALOG_DATA: InjectionToken<unknown>;
11
+ /**
12
+ * Injection token for the dialog scroll strategy
13
+ */
14
+ declare const FUI_DIALOG_DEFAULT_OPTIONS: InjectionToken<FuiDialogConfig<unknown>>;
15
+ /**
16
+ * Role attribute for the dialog
17
+ */
18
+ type FuiDialogRole = 'dialog' | 'alertdialog';
19
+ /**
20
+ * Configuration for opening a dialog
21
+ */
22
+ interface FuiDialogConfig<D = unknown> {
23
+ /** ID for the dialog. If omitted, a unique one will be generated */
24
+ id?: string;
25
+ /** Role attribute for the dialog element */
26
+ role?: FuiDialogRole;
27
+ /** CSS class(es) to apply to the overlay pane */
28
+ panelClass?: string | string[];
29
+ /** Whether the dialog has a backdrop */
30
+ hasBackdrop?: boolean;
31
+ /** CSS class(es) to apply to the backdrop */
32
+ backdropClass?: string | string[];
33
+ /** Whether the user can close the dialog by clicking on the backdrop */
34
+ disableClose?: boolean;
35
+ /** Width of the dialog */
36
+ width?: string;
37
+ /** Height of the dialog */
38
+ height?: string;
39
+ /** Min-width of the dialog */
40
+ minWidth?: string | number;
41
+ /** Min-height of the dialog */
42
+ minHeight?: string | number;
43
+ /** Max-width of the dialog. Defaults to 80vw */
44
+ maxWidth?: string | number;
45
+ /** Max-height of the dialog */
46
+ maxHeight?: string | number;
47
+ /** Position of the dialog */
48
+ position?: FuiDialogPosition;
49
+ /** Data to pass to the dialog component */
50
+ data?: D | null;
51
+ /** Layout direction for the dialog content */
52
+ direction?: 'ltr' | 'rtl';
53
+ /** ARIA label for the dialog */
54
+ ariaLabel?: string | null;
55
+ /** ID of the element that labels the dialog */
56
+ ariaLabelledBy?: string | null;
57
+ /** ID of the element that describes the dialog */
58
+ ariaDescribedBy?: string | null;
59
+ /** Whether to focus the first focusable element on open */
60
+ autoFocus?: FuiAutoFocusTarget | string | boolean;
61
+ /** Whether to restore focus to the previously focused element on close */
62
+ restoreFocus?: boolean;
63
+ /** Whether the dialog should close when the user goes backwards/forwards in history */
64
+ closeOnNavigation?: boolean;
65
+ /** Duration of the enter animation in ms */
66
+ enterAnimationDuration?: string | number;
67
+ /** Duration of the exit animation in ms */
68
+ exitAnimationDuration?: string | number;
69
+ /** Alternate ViewContainerRef to use for creating the dialog */
70
+ viewContainerRef?: ViewContainerRef;
71
+ /** Injector used for the dialog component */
72
+ injector?: Injector;
73
+ /** Component to instantiate as the dialog container (internal use) */
74
+ containerComponent?: Type<FuiDialogContainerBase>;
75
+ /** Whether to delay the focus trap */
76
+ delayFocusTrap?: boolean;
77
+ }
78
+ /**
79
+ * Target for auto focus within the dialog
80
+ */
81
+ type FuiAutoFocusTarget = 'dialog' | 'first-tabbable' | 'first-heading';
82
+ /**
83
+ * Position of the dialog
84
+ */
85
+ interface FuiDialogPosition {
86
+ /** Override for the dialog's top position */
87
+ top?: string;
88
+ /** Override for the dialog's bottom position */
89
+ bottom?: string;
90
+ /** Override for the dialog's left position */
91
+ left?: string;
92
+ /** Override for the dialog's right position */
93
+ right?: string;
94
+ }
95
+ /**
96
+ * State of the dialog animation
97
+ */
98
+ type FuiDialogState = 'void' | 'enter' | 'exit';
99
+ /**
100
+ * Base interface for dialog container
101
+ */
102
+ interface FuiDialogContainerBase {
103
+ /** Starts the dialog exit animation */
104
+ _startExitAnimation(): void;
105
+ }
106
+ /**
107
+ * Reference to an opened dialog
108
+ */
109
+ interface IFuiDialogRef<T = unknown, R = unknown> {
110
+ /** Unique ID for this dialog instance */
111
+ readonly id: string;
112
+ /** The component instance if the dialog was created with a component */
113
+ readonly componentInstance: T | null;
114
+ /** Whether the user is allowed to close the dialog */
115
+ disableClose: boolean;
116
+ /** Observable that emits when the dialog has been opened */
117
+ readonly afterOpened: Observable<void>;
118
+ /** Observable that emits when the dialog has started closing */
119
+ readonly beforeClosed: Observable<R | undefined>;
120
+ /** Observable that emits when the dialog has finished closing */
121
+ readonly afterClosed: Observable<R | undefined>;
122
+ /** Observable that emits when the backdrop is clicked */
123
+ readonly backdropClick: Observable<MouseEvent>;
124
+ /** Observable that emits when a keydown event occurs on the overlay */
125
+ readonly keydownEvents: Observable<KeyboardEvent>;
126
+ /**
127
+ * Closes the dialog with an optional result
128
+ * @param dialogResult Result to return to the dialog opener
129
+ */
130
+ close(dialogResult?: R): void;
131
+ /**
132
+ * Updates the dialog's position
133
+ * @param position New position configuration
134
+ */
135
+ updatePosition(position?: FuiDialogPosition): void;
136
+ /**
137
+ * Updates the dialog's dimensions
138
+ * @param width New width
139
+ * @param height New height
140
+ */
141
+ updateSize(width?: string, height?: string): void;
142
+ /**
143
+ * Adds CSS classes to the dialog panel
144
+ * @param classes Classes to add
145
+ */
146
+ addPanelClass(classes: string | string[]): void;
147
+ /**
148
+ * Removes CSS classes from the dialog panel
149
+ * @param classes Classes to remove
150
+ */
151
+ removePanelClass(classes: string | string[]): void;
152
+ /**
153
+ * Gets the current state of the dialog's lifecycle
154
+ */
155
+ getState(): FuiDialogState;
156
+ }
157
+ /**
158
+ * Result from opening a dialog
159
+ */
160
+ interface FuiDialogOpenResult<T, R> {
161
+ /** Reference to the opened dialog */
162
+ dialogRef: IFuiDialogRef<T, R>;
163
+ /** Reference to the component instance if dialog was created with a component */
164
+ componentRef?: T;
165
+ }
166
+ type FuiConfirmDialogVariant = 'info' | 'warning' | 'danger';
167
+ interface FuiConfirmDialogConfig {
168
+ title: string;
169
+ message: string;
170
+ confirmText?: string;
171
+ cancelText?: string;
172
+ variant?: FuiConfirmDialogVariant;
173
+ }
174
+
175
+ /**
176
+ * # FuiDialogRefImpl
177
+ *
178
+ * Implementation of the FuiDialogRef interface. This class manages the lifecycle
179
+ * of an individual dialog instance, providing methods to close, update position/size,
180
+ * and observe dialog events.
181
+ *
182
+ * ## Features
183
+ * - Dialog result handling
184
+ * - Position and size updates
185
+ * - Event observables (backdrop click, keydown, lifecycle)
186
+ * - CSS class management
187
+ * - Focus management integration
188
+ */
189
+ declare class FuiDialogRef<T = unknown, R = unknown> implements IFuiDialogRef<T, R> {
190
+ private readonly _overlayRef;
191
+ private _config;
192
+ private readonly _id;
193
+ private _componentInstance;
194
+ private _result;
195
+ private _state;
196
+ private readonly _afterOpened;
197
+ private readonly _beforeClosed;
198
+ private readonly _afterClosed;
199
+ disableClose: boolean;
200
+ constructor(_overlayRef: FuiOverlayRef, _config: FuiDialogConfig, id?: string);
201
+ /** Unique ID for this dialog instance */
202
+ get id(): string;
203
+ /** The component instance if the dialog was created with a component */
204
+ get componentInstance(): T | null;
205
+ /** Sets the component instance (internal use) */
206
+ set componentInstance(instance: T | null);
207
+ /** Observable that emits when the dialog has been opened */
208
+ get afterOpened(): Observable<void>;
209
+ /** Observable that emits when the dialog has started closing */
210
+ get beforeClosed(): Observable<R | undefined>;
211
+ /** Observable that emits when the dialog has finished closing */
212
+ get afterClosed(): Observable<R | undefined>;
213
+ /** Observable that emits when the backdrop is clicked */
214
+ get backdropClick(): Observable<MouseEvent>;
215
+ /** Observable that emits when a keydown event occurs on the overlay */
216
+ get keydownEvents(): Observable<KeyboardEvent>;
217
+ /**
218
+ * Closes the dialog with an optional result
219
+ */
220
+ close(dialogResult?: R): void;
221
+ /**
222
+ * Updates the dialog's position
223
+ */
224
+ updatePosition(position?: FuiDialogPosition): void;
225
+ /**
226
+ * Updates the dialog's dimensions
227
+ */
228
+ updateSize(width?: string, height?: string): void;
229
+ /**
230
+ * Adds CSS classes to the dialog panel
231
+ */
232
+ addPanelClass(classes: string | string[]): void;
233
+ /**
234
+ * Removes CSS classes from the dialog panel
235
+ */
236
+ removePanelClass(classes: string | string[]): void;
237
+ /**
238
+ * Gets the current state of the dialog's lifecycle
239
+ */
240
+ getState(): FuiDialogState;
241
+ /**
242
+ * Notifies that the dialog has been opened (internal use)
243
+ */
244
+ _notifyOpened(): void;
245
+ private _setupEventHandlers;
246
+ private _finishDialogClose;
247
+ private _parseAnimationDuration;
248
+ private _generateId;
249
+ }
250
+
251
+ /**
252
+ * # FuiDialogService
253
+ *
254
+ * Service for opening modal dialogs. This service provides a comprehensive
255
+ * dialog system similar to Angular Material's MatDialog, built on top of
256
+ * the FuiOverlayService.
257
+ *
258
+ * ## Features
259
+ * - Open dialogs with components or templates
260
+ * - Pass data to dialog components
261
+ * - Configure positioning, sizing, and behavior
262
+ * - Get results from dialogs via observables
263
+ * - Manage multiple open dialogs
264
+ * - Automatic focus management and accessibility
265
+ *
266
+ * ## Usage
267
+ *
268
+ * ### Opening a Component Dialog
269
+ * ```typescript
270
+ * const dialogRef = this.dialog.open(MyDialogComponent, {
271
+ * width: '400px',
272
+ * data: { name: 'John' }
273
+ * });
274
+ *
275
+ * dialogRef.afterClosed().subscribe(result => {
276
+ * console.log('Dialog result:', result);
277
+ * });
278
+ * ```
279
+ *
280
+ * ### Opening a Template Dialog
281
+ * ```typescript
282
+ * const dialogRef = this.dialog.open(myTemplateRef, {
283
+ * width: '300px',
284
+ * hasBackdrop: true
285
+ * });
286
+ * ```
287
+ *
288
+ * ### Accessing Data in Dialog Component
289
+ * ```typescript
290
+ * export class MyDialogComponent {
291
+ * private readonly data = inject(FUI_DIALOG_DATA);
292
+ * private readonly dialogRef = inject(FuiDialogRef);
293
+ *
294
+ * onClose() {
295
+ * this.dialogRef.close('result');
296
+ * }
297
+ * }
298
+ * ```
299
+ */
300
+ declare class FuiDialogService {
301
+ private readonly _overlayService;
302
+ private readonly _environmentInjector;
303
+ private readonly _injector;
304
+ private readonly _appRef;
305
+ private readonly _openDialogs;
306
+ private readonly _afterOpenedSubject;
307
+ private readonly _afterAllClosedSubject;
308
+ private _nextUniqueId;
309
+ /**
310
+ * Observable that emits when a dialog is opened
311
+ */
312
+ readonly afterOpened: Observable<IFuiDialogRef>;
313
+ /**
314
+ * Observable that emits when all dialogs are closed
315
+ */
316
+ readonly afterAllClosed: Observable<void>;
317
+ /**
318
+ * Gets all currently open dialogs
319
+ */
320
+ get openDialogs(): IFuiDialogRef[];
321
+ /**
322
+ * Opens a dialog containing the given component or template
323
+ * @param componentOrTemplateRef Component type or TemplateRef to display
324
+ * @param config Configuration options for the dialog
325
+ * @returns Reference to the opened dialog
326
+ */
327
+ open<T, D = unknown, R = unknown>(componentOrTemplateRef: Type<T> | TemplateRef<T>, config?: FuiDialogConfig<D>): FuiDialogRef<T, R>;
328
+ /**
329
+ * Closes all open dialogs
330
+ */
331
+ closeAll(): void;
332
+ /**
333
+ * Gets a dialog by its ID
334
+ * @param id Dialog ID
335
+ * @returns The dialog reference or undefined
336
+ */
337
+ getDialogById(id: string): IFuiDialogRef | undefined;
338
+ private _createOverlay;
339
+ private _getOverlayConfig;
340
+ private _getBackdropClass;
341
+ private _getPanelClass;
342
+ private _attachDialogContainer;
343
+ private _createDialogRef;
344
+ private _attachComponentContent;
345
+ private _attachTemplateContent;
346
+ private _removeOpenDialog;
347
+ private _getAfterAllClosed;
348
+ /**
349
+ * Opens a confirmation dialog and returns an Observable<boolean>.
350
+ * Resolves to `true` when confirmed, `false` when cancelled, ESC, or backdrop click.
351
+ */
352
+ confirm(config: FuiConfirmDialogConfig): Observable<boolean>;
353
+ private _applyConfigDefaults;
354
+ static ɵfac: i0.ɵɵFactoryDeclaration<FuiDialogService, never>;
355
+ static ɵprov: i0.ɵɵInjectableDeclaration<FuiDialogService>;
356
+ }
357
+
358
+ /**
359
+ * # FuiDialogContainerComponent
360
+ *
361
+ * Internal container component that hosts the dialog content. This component
362
+ * handles focus trapping, animations, and accessibility attributes.
363
+ *
364
+ * ## Features
365
+ * - Focus trapping within the dialog
366
+ * - Configurable ARIA attributes
367
+ * - Enter/exit animations
368
+ * - Focus restoration on close
369
+ */
370
+ declare class FuiDialogContainerComponent implements FuiDialogContainerBase, AfterViewInit, OnDestroy {
371
+ private readonly _document;
372
+ private readonly _elementRef;
373
+ private _dialogContainer;
374
+ /** Configuration for the dialog */
375
+ config: FuiDialogConfig;
376
+ /** The previously focused element before the dialog was opened */
377
+ private _elementFocusedBeforeDialogWasOpened;
378
+ /** Animation state of the dialog */
379
+ readonly animationState: i0.WritableSignal<"void" | "enter" | "exit">;
380
+ /** Whether the dialog is currently animating */
381
+ readonly isAnimating: i0.Signal<boolean>;
382
+ ngAfterViewInit(): void;
383
+ ngOnDestroy(): void;
384
+ /**
385
+ * Handles keydown events for focus trap cycling within the dialog.
386
+ * Tab loops from last to first focusable element, Shift+Tab from first to last.
387
+ */
388
+ _onKeydown(event: KeyboardEvent): void;
389
+ /**
390
+ * Initializes the dialog container with the given configuration
391
+ */
392
+ _initializeWithConfig(config: FuiDialogConfig): void;
393
+ /**
394
+ * Starts the enter animation
395
+ */
396
+ _startEnterAnimation(): void;
397
+ /**
398
+ * Starts the exit animation
399
+ */
400
+ _startExitAnimation(): void;
401
+ /**
402
+ * Gets the native element of the container
403
+ */
404
+ _getHostElement(): HTMLElement;
405
+ /**
406
+ * Saves the element that was focused before the dialog opened and traps focus
407
+ */
408
+ private _trapFocus;
409
+ /**
410
+ * Focuses the first tabbable element within the dialog
411
+ */
412
+ private _focusFirstTabbableElement;
413
+ /**
414
+ * Focuses the first heading element within the dialog
415
+ */
416
+ private _focusFirstHeading;
417
+ /**
418
+ * Focuses an element matching the given selector
419
+ */
420
+ private _focusBySelector;
421
+ /**
422
+ * Gets all focusable elements within the dialog
423
+ */
424
+ private _getFocusableElements;
425
+ /**
426
+ * Restores focus to the element that was focused before the dialog opened
427
+ */
428
+ private _restoreFocus;
429
+ static ɵfac: i0.ɵɵFactoryDeclaration<FuiDialogContainerComponent, never>;
430
+ static ɵcmp: i0.ɵɵComponentDeclaration<FuiDialogContainerComponent, "fui-dialog-container", never, {}, {}, never, ["*"], true, never>;
431
+ }
432
+
433
+ declare class FuiConfirmDialogComponent {
434
+ private readonly data;
435
+ private readonly dialogRef;
436
+ readonly title: string;
437
+ readonly message: string;
438
+ readonly confirmText: string;
439
+ readonly cancelText: string;
440
+ readonly variant: _raintonic_formaui_services_dialog.FuiConfirmDialogVariant;
441
+ readonly icon: i0.Signal<"info" | "warning-diamond" | "warning-octagon">;
442
+ readonly confirmButtonVariant: i0.Signal<"danger" | "primary">;
443
+ onConfirm(): void;
444
+ onCancel(): void;
445
+ static ɵfac: i0.ɵɵFactoryDeclaration<FuiConfirmDialogComponent, never>;
446
+ static ɵcmp: i0.ɵɵComponentDeclaration<FuiConfirmDialogComponent, "fui-confirm-dialog", never, {}, {}, never, never, true, never>;
447
+ }
448
+
449
+ export { FUI_DIALOG_DATA, FUI_DIALOG_DEFAULT_OPTIONS, FuiConfirmDialogComponent, FuiDialogContainerComponent, FuiDialogRef, FuiDialogService };
450
+ export type { FuiAutoFocusTarget, FuiConfirmDialogConfig, FuiConfirmDialogVariant, FuiDialogConfig, FuiDialogContainerBase, FuiDialogOpenResult, FuiDialogPosition, FuiDialogRole, FuiDialogState, IFuiDialogRef };
451
+ //# sourceMappingURL=raintonic-formaui-services-dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raintonic-formaui-services-dialog.d.ts","sources":["../../../lib/services/dialog/dialog.types.ts","../../../lib/services/dialog/dialog-ref.ts","../../../lib/services/dialog/dialog.service.ts","../../../lib/services/dialog/dialog-container.component.ts","../../../lib/services/dialog/confirm-dialog.component.ts"],"mappings":"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","names":["_angular_core"]}