@raintonic/formaui 0.3.1 → 0.9.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 (238) hide show
  1. package/CHANGELOG.md +80 -35
  2. package/README.md +22 -26
  3. package/fesm2022/raintonic-formaui-cdk-drag-drop.mjs +39 -41
  4. package/fesm2022/raintonic-formaui-cdk-drag-drop.mjs.map +1 -1
  5. package/fesm2022/raintonic-formaui-cdk-form-field.mjs +207 -3
  6. package/fesm2022/raintonic-formaui-cdk-form-field.mjs.map +1 -1
  7. package/fesm2022/raintonic-formaui-cdk-overlay.mjs +27 -2
  8. package/fesm2022/raintonic-formaui-cdk-overlay.mjs.map +1 -1
  9. package/fesm2022/raintonic-formaui-cdk-virtual-scroll.mjs +5 -12
  10. package/fesm2022/raintonic-formaui-cdk-virtual-scroll.mjs.map +1 -1
  11. package/fesm2022/raintonic-formaui-components-accordion.mjs +8 -5
  12. package/fesm2022/raintonic-formaui-components-accordion.mjs.map +1 -1
  13. package/fesm2022/raintonic-formaui-components-alert.mjs +16 -2
  14. package/fesm2022/raintonic-formaui-components-alert.mjs.map +1 -1
  15. package/fesm2022/raintonic-formaui-components-autocomplete.mjs +255 -462
  16. package/fesm2022/raintonic-formaui-components-autocomplete.mjs.map +1 -1
  17. package/fesm2022/raintonic-formaui-components-avatar.mjs +34 -59
  18. package/fesm2022/raintonic-formaui-components-avatar.mjs.map +1 -1
  19. package/fesm2022/raintonic-formaui-components-badge.mjs +2 -2
  20. package/fesm2022/raintonic-formaui-components-badge.mjs.map +1 -1
  21. package/fesm2022/raintonic-formaui-components-breadcrumb.mjs +4 -4
  22. package/fesm2022/raintonic-formaui-components-breadcrumb.mjs.map +1 -1
  23. package/fesm2022/raintonic-formaui-components-button-group.mjs +2 -2
  24. package/fesm2022/raintonic-formaui-components-button-group.mjs.map +1 -1
  25. package/fesm2022/raintonic-formaui-components-button.mjs +15 -20
  26. package/fesm2022/raintonic-formaui-components-button.mjs.map +1 -1
  27. package/fesm2022/raintonic-formaui-components-card.mjs +2 -2
  28. package/fesm2022/raintonic-formaui-components-card.mjs.map +1 -1
  29. package/fesm2022/raintonic-formaui-components-checkbox.mjs +2 -2
  30. package/fesm2022/raintonic-formaui-components-checkbox.mjs.map +1 -1
  31. package/fesm2022/raintonic-formaui-components-chip.mjs +97 -0
  32. package/fesm2022/raintonic-formaui-components-chip.mjs.map +1 -0
  33. package/fesm2022/raintonic-formaui-components-data-table.mjs +69 -29
  34. package/fesm2022/raintonic-formaui-components-data-table.mjs.map +1 -1
  35. package/fesm2022/raintonic-formaui-components-date-picker.mjs +223 -144
  36. package/fesm2022/raintonic-formaui-components-date-picker.mjs.map +1 -1
  37. package/fesm2022/raintonic-formaui-components-divider.mjs +2 -2
  38. package/fesm2022/raintonic-formaui-components-divider.mjs.map +1 -1
  39. package/fesm2022/raintonic-formaui-components-drawer.mjs +2 -2
  40. package/fesm2022/raintonic-formaui-components-drawer.mjs.map +1 -1
  41. package/fesm2022/raintonic-formaui-components-dropdown-menu.mjs +888 -0
  42. package/fesm2022/raintonic-formaui-components-dropdown-menu.mjs.map +1 -0
  43. package/fesm2022/raintonic-formaui-components-dual-tier-navigation.mjs +774 -0
  44. package/fesm2022/raintonic-formaui-components-dual-tier-navigation.mjs.map +1 -0
  45. package/fesm2022/raintonic-formaui-components-empty-state.mjs +2 -2
  46. package/fesm2022/raintonic-formaui-components-empty-state.mjs.map +1 -1
  47. package/fesm2022/raintonic-formaui-components-file-upload.mjs +2 -2
  48. package/fesm2022/raintonic-formaui-components-file-upload.mjs.map +1 -1
  49. package/fesm2022/raintonic-formaui-components-form-field.mjs +81 -50
  50. package/fesm2022/raintonic-formaui-components-form-field.mjs.map +1 -1
  51. package/fesm2022/raintonic-formaui-components-icon.mjs +2 -2
  52. package/fesm2022/raintonic-formaui-components-icon.mjs.map +1 -1
  53. package/fesm2022/raintonic-formaui-components-input.mjs +47 -12
  54. package/fesm2022/raintonic-formaui-components-input.mjs.map +1 -1
  55. package/fesm2022/raintonic-formaui-components-list.mjs +4 -4
  56. package/fesm2022/raintonic-formaui-components-list.mjs.map +1 -1
  57. package/fesm2022/raintonic-formaui-components-number-input.mjs +20 -12
  58. package/fesm2022/raintonic-formaui-components-number-input.mjs.map +1 -1
  59. package/fesm2022/raintonic-formaui-components-paginator.mjs +2 -2
  60. package/fesm2022/raintonic-formaui-components-paginator.mjs.map +1 -1
  61. package/fesm2022/raintonic-formaui-components-password-input.mjs +35 -110
  62. package/fesm2022/raintonic-formaui-components-password-input.mjs.map +1 -1
  63. package/fesm2022/raintonic-formaui-components-popover.mjs +3 -2
  64. package/fesm2022/raintonic-formaui-components-popover.mjs.map +1 -1
  65. package/fesm2022/raintonic-formaui-components-progressbar.mjs +3 -2
  66. package/fesm2022/raintonic-formaui-components-progressbar.mjs.map +1 -1
  67. package/fesm2022/raintonic-formaui-components-radio.mjs +5 -6
  68. package/fesm2022/raintonic-formaui-components-radio.mjs.map +1 -1
  69. package/fesm2022/raintonic-formaui-components-select.mjs +257 -412
  70. package/fesm2022/raintonic-formaui-components-select.mjs.map +1 -1
  71. package/fesm2022/raintonic-formaui-components-side-panel.mjs +2 -2
  72. package/fesm2022/raintonic-formaui-components-side-panel.mjs.map +1 -1
  73. package/fesm2022/raintonic-formaui-components-sidebar-nav-menu.mjs +525 -0
  74. package/fesm2022/raintonic-formaui-components-sidebar-nav-menu.mjs.map +1 -0
  75. package/fesm2022/raintonic-formaui-components-skeleton.mjs +2 -2
  76. package/fesm2022/raintonic-formaui-components-skeleton.mjs.map +1 -1
  77. package/fesm2022/raintonic-formaui-components-slider.mjs +2 -2
  78. package/fesm2022/raintonic-formaui-components-slider.mjs.map +1 -1
  79. package/fesm2022/raintonic-formaui-components-spinner.mjs +2 -2
  80. package/fesm2022/raintonic-formaui-components-spinner.mjs.map +1 -1
  81. package/fesm2022/raintonic-formaui-components-stepper.mjs +50 -45
  82. package/fesm2022/raintonic-formaui-components-stepper.mjs.map +1 -1
  83. package/fesm2022/raintonic-formaui-components-strength-meter.mjs +149 -0
  84. package/fesm2022/raintonic-formaui-components-strength-meter.mjs.map +1 -0
  85. package/fesm2022/raintonic-formaui-components-tab.mjs +2 -2
  86. package/fesm2022/raintonic-formaui-components-tab.mjs.map +1 -1
  87. package/fesm2022/raintonic-formaui-components-time-picker.mjs +194 -154
  88. package/fesm2022/raintonic-formaui-components-time-picker.mjs.map +1 -1
  89. package/fesm2022/raintonic-formaui-components-toggle-group.mjs +302 -0
  90. package/fesm2022/raintonic-formaui-components-toggle-group.mjs.map +1 -0
  91. package/fesm2022/raintonic-formaui-components-toggle.mjs +2 -2
  92. package/fesm2022/raintonic-formaui-components-toggle.mjs.map +1 -1
  93. package/fesm2022/raintonic-formaui-components-toolbar.mjs +2 -2
  94. package/fesm2022/raintonic-formaui-components-toolbar.mjs.map +1 -1
  95. package/fesm2022/raintonic-formaui-components-tooltip.mjs +10 -4
  96. package/fesm2022/raintonic-formaui-components-tooltip.mjs.map +1 -1
  97. package/fesm2022/raintonic-formaui-components-topbar.mjs +60 -0
  98. package/fesm2022/raintonic-formaui-components-topbar.mjs.map +1 -0
  99. package/fesm2022/raintonic-formaui-components-tree-select.mjs +59 -69
  100. package/fesm2022/raintonic-formaui-components-tree-select.mjs.map +1 -1
  101. package/fesm2022/raintonic-formaui-components-tree-table.mjs +2 -2
  102. package/fesm2022/raintonic-formaui-components-tree-table.mjs.map +1 -1
  103. package/fesm2022/raintonic-formaui-components-tree.mjs +31 -5
  104. package/fesm2022/raintonic-formaui-components-tree.mjs.map +1 -1
  105. package/fesm2022/raintonic-formaui-core.mjs +279 -1
  106. package/fesm2022/raintonic-formaui-core.mjs.map +1 -1
  107. package/fesm2022/raintonic-formaui-services-breakpoint.mjs +93 -0
  108. package/fesm2022/raintonic-formaui-services-breakpoint.mjs.map +1 -0
  109. package/fesm2022/raintonic-formaui-services-dialog.mjs +314 -16
  110. package/fesm2022/raintonic-formaui-services-dialog.mjs.map +1 -1
  111. package/fesm2022/raintonic-formaui-services-notification.mjs +93 -29
  112. package/fesm2022/raintonic-formaui-services-notification.mjs.map +1 -1
  113. package/fesm2022/raintonic-formaui-services-theme.mjs +46 -196
  114. package/fesm2022/raintonic-formaui-services-theme.mjs.map +1 -1
  115. package/fesm2022/raintonic-formaui.mjs +1 -1
  116. package/fesm2022/raintonic-formaui.mjs.map +1 -1
  117. package/llms-full.txt +2329 -450
  118. package/llms.txt +36 -33
  119. package/package.json +42 -19
  120. package/styles/fonts/Geist-Bold.woff2 +0 -0
  121. package/styles/fonts/Geist-Italic.woff2 +0 -0
  122. package/styles/fonts/Geist-Light.woff2 +0 -0
  123. package/styles/fonts/Geist-Medium.woff2 +0 -0
  124. package/styles/fonts/Geist-Regular.woff2 +0 -0
  125. package/styles/fonts/Geist-SemiBold.woff2 +0 -0
  126. package/styles/fonts/GeistMono-Regular.woff2 +0 -0
  127. package/styles/generated/_tokens.scss +906 -0
  128. package/styles/index.scss +11 -10
  129. package/styles/partials/_brand.scss +46 -0
  130. package/styles/partials/_constants.scss +22 -20
  131. package/styles/partials/_fonts.scss +54 -10
  132. package/styles/partials/_grid.scss +29 -18
  133. package/styles/partials/_mixins.scss +69 -27
  134. package/styles/partials/_motion.scss +28 -33
  135. package/styles/partials/_theme.scss +28 -255
  136. package/styles/partials/_type.scss +117 -0
  137. package/styles/partials/_typography.scss +45 -45
  138. package/styles/partials/_utilities.scss +198 -98
  139. package/styles/partials/components/_button.scss +144 -75
  140. package/styles/partials/components/_dialog.scss +181 -180
  141. package/styles/partials/components/_overlay.scss +87 -87
  142. package/styles/partials/themes/_dark.scss +3 -268
  143. package/styles/partials/themes/_light.scss +4 -268
  144. package/styles/styles.css +7744 -0
  145. package/styles/styles.entry.scss +3 -0
  146. package/styles/utilities.css +4802 -0
  147. package/styles/utilities.entry.scss +3 -0
  148. package/types/raintonic-formaui-cdk-drag-drop.d.ts +0 -1
  149. package/types/raintonic-formaui-cdk-drag-drop.d.ts.map +1 -1
  150. package/types/raintonic-formaui-cdk-form-field.d.ts +118 -2
  151. package/types/raintonic-formaui-cdk-form-field.d.ts.map +1 -1
  152. package/types/raintonic-formaui-cdk-overlay.d.ts +2 -0
  153. package/types/raintonic-formaui-cdk-overlay.d.ts.map +1 -1
  154. package/types/raintonic-formaui-cdk-virtual-scroll.d.ts +0 -1
  155. package/types/raintonic-formaui-cdk-virtual-scroll.d.ts.map +1 -1
  156. package/types/raintonic-formaui-components-accordion.d.ts +1 -1
  157. package/types/raintonic-formaui-components-accordion.d.ts.map +1 -1
  158. package/types/raintonic-formaui-components-alert.d.ts +6 -1
  159. package/types/raintonic-formaui-components-alert.d.ts.map +1 -1
  160. package/types/raintonic-formaui-components-autocomplete.d.ts +73 -116
  161. package/types/raintonic-formaui-components-autocomplete.d.ts.map +1 -1
  162. package/types/raintonic-formaui-components-avatar.d.ts +13 -31
  163. package/types/raintonic-formaui-components-avatar.d.ts.map +1 -1
  164. package/types/raintonic-formaui-components-button.d.ts +4 -10
  165. package/types/raintonic-formaui-components-button.d.ts.map +1 -1
  166. package/types/raintonic-formaui-components-chip.d.ts +43 -0
  167. package/types/raintonic-formaui-components-chip.d.ts.map +1 -0
  168. package/types/raintonic-formaui-components-data-table.d.ts +48 -11
  169. package/types/raintonic-formaui-components-data-table.d.ts.map +1 -1
  170. package/types/raintonic-formaui-components-date-picker.d.ts +59 -23
  171. package/types/raintonic-formaui-components-date-picker.d.ts.map +1 -1
  172. package/types/raintonic-formaui-components-dropdown-menu.d.ts +394 -0
  173. package/types/raintonic-formaui-components-dropdown-menu.d.ts.map +1 -0
  174. package/types/raintonic-formaui-components-dual-tier-navigation.d.ts +87 -0
  175. package/types/raintonic-formaui-components-dual-tier-navigation.d.ts.map +1 -0
  176. package/types/raintonic-formaui-components-form-field.d.ts +51 -21
  177. package/types/raintonic-formaui-components-form-field.d.ts.map +1 -1
  178. package/types/raintonic-formaui-components-input.d.ts +20 -11
  179. package/types/raintonic-formaui-components-input.d.ts.map +1 -1
  180. package/types/raintonic-formaui-components-number-input.d.ts +5 -3
  181. package/types/raintonic-formaui-components-number-input.d.ts.map +1 -1
  182. package/types/raintonic-formaui-components-password-input.d.ts +18 -32
  183. package/types/raintonic-formaui-components-password-input.d.ts.map +1 -1
  184. package/types/raintonic-formaui-components-popover.d.ts.map +1 -1
  185. package/types/raintonic-formaui-components-progressbar.d.ts +1 -1
  186. package/types/raintonic-formaui-components-progressbar.d.ts.map +1 -1
  187. package/types/raintonic-formaui-components-radio.d.ts +1 -2
  188. package/types/raintonic-formaui-components-radio.d.ts.map +1 -1
  189. package/types/raintonic-formaui-components-select.d.ts +107 -76
  190. package/types/raintonic-formaui-components-select.d.ts.map +1 -1
  191. package/types/raintonic-formaui-components-sidebar-nav-menu.d.ts +223 -0
  192. package/types/raintonic-formaui-components-sidebar-nav-menu.d.ts.map +1 -0
  193. package/types/raintonic-formaui-components-stepper.d.ts +4 -2
  194. package/types/raintonic-formaui-components-stepper.d.ts.map +1 -1
  195. package/types/raintonic-formaui-components-strength-meter.d.ts +78 -0
  196. package/types/raintonic-formaui-components-strength-meter.d.ts.map +1 -0
  197. package/types/raintonic-formaui-components-time-picker.d.ts +44 -24
  198. package/types/raintonic-formaui-components-time-picker.d.ts.map +1 -1
  199. package/types/raintonic-formaui-components-toggle-group.d.ts +100 -0
  200. package/types/raintonic-formaui-components-toggle-group.d.ts.map +1 -0
  201. package/types/raintonic-formaui-components-tooltip.d.ts +2 -1
  202. package/types/raintonic-formaui-components-tooltip.d.ts.map +1 -1
  203. package/types/raintonic-formaui-components-topbar.d.ts +48 -0
  204. package/types/raintonic-formaui-components-topbar.d.ts.map +1 -0
  205. package/types/raintonic-formaui-components-tree-select.d.ts +25 -9
  206. package/types/raintonic-formaui-components-tree-select.d.ts.map +1 -1
  207. package/types/raintonic-formaui-components-tree.d.ts +12 -1
  208. package/types/raintonic-formaui-components-tree.d.ts.map +1 -1
  209. package/types/raintonic-formaui-core.d.ts +243 -5
  210. package/types/raintonic-formaui-core.d.ts.map +1 -1
  211. package/types/raintonic-formaui-services-breakpoint.d.ts +44 -0
  212. package/types/raintonic-formaui-services-breakpoint.d.ts.map +1 -0
  213. package/types/raintonic-formaui-services-dialog.d.ts +141 -2
  214. package/types/raintonic-formaui-services-dialog.d.ts.map +1 -1
  215. package/types/raintonic-formaui-services-notification.d.ts +24 -2
  216. package/types/raintonic-formaui-services-notification.d.ts.map +1 -1
  217. package/types/raintonic-formaui-services-theme.d.ts +13 -103
  218. package/types/raintonic-formaui-services-theme.d.ts.map +1 -1
  219. package/types/raintonic-formaui.d.ts +1 -1
  220. package/fesm2022/raintonic-formaui-components-big-menu.mjs +0 -86
  221. package/fesm2022/raintonic-formaui-components-big-menu.mjs.map +0 -1
  222. package/fesm2022/raintonic-formaui-components-menu.mjs +0 -896
  223. package/fesm2022/raintonic-formaui-components-menu.mjs.map +0 -1
  224. package/fesm2022/raintonic-formaui-components-sidebar.mjs +0 -275
  225. package/fesm2022/raintonic-formaui-components-sidebar.mjs.map +0 -1
  226. package/fesm2022/raintonic-formaui-components-tag.mjs +0 -95
  227. package/fesm2022/raintonic-formaui-components-tag.mjs.map +0 -1
  228. package/styles/_fonts-entry.scss +0 -3
  229. package/styles/fonts/inter-tight-latin-italic.woff2 +0 -0
  230. package/styles/fonts/inter-tight-latin.woff2 +0 -0
  231. package/types/raintonic-formaui-components-big-menu.d.ts +0 -73
  232. package/types/raintonic-formaui-components-big-menu.d.ts.map +0 -1
  233. package/types/raintonic-formaui-components-menu.d.ts +0 -403
  234. package/types/raintonic-formaui-components-menu.d.ts.map +0 -1
  235. package/types/raintonic-formaui-components-sidebar.d.ts +0 -185
  236. package/types/raintonic-formaui-components-sidebar.d.ts.map +0 -1
  237. package/types/raintonic-formaui-components-tag.d.ts +0 -43
  238. package/types/raintonic-formaui-components-tag.d.ts.map +0 -1
@@ -0,0 +1,394 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { OnDestroy, ElementRef, AfterViewInit } from '@angular/core';
3
+ import * as i1 from '@raintonic/formaui/cdk/form-field';
4
+ import { FuiPopupOverlayDirective } from '@raintonic/formaui/cdk/form-field';
5
+
6
+ /**
7
+ * Available dropdown-menu positions relative to the trigger element
8
+ */
9
+ type FuiDropdownMenuPosition = 'top-start' | 'top' | 'top-end' | 'bottom-start' | 'bottom' | 'bottom-end' | 'left-start' | 'left' | 'left-end' | 'right-start' | 'right' | 'right-end';
10
+ declare const FUI_DROPDOWN_MENU_POSITIONS: readonly ["top-start", "top", "top-end", "bottom-start", "bottom", "bottom-end", "left-start", "left", "left-end", "right-start", "right", "right-end"];
11
+ /**
12
+ * Available dropdown-menu sizes
13
+ */
14
+ type FuiDropdownMenuSize = 'sm' | 'md' | 'lg';
15
+ declare const FUI_DROPDOWN_MENU_SIZES: readonly ["sm", "md", "lg"];
16
+ /**
17
+ * # FuiDropdownMenu Component
18
+ *
19
+ * A dropdown menu component that provides a list of options or actions.
20
+ * Designed to work with external triggers using the fuiDropdownMenuTrigger directive.
21
+ *
22
+ * ## Features
23
+ * - Multiple positioning options relative to trigger
24
+ * - Keyboard navigation (Arrow keys, Enter, Escape)
25
+ * - Click outside to close
26
+ * - Full accessibility support (ARIA attributes, focus management)
27
+ * - Customizable size variants
28
+ * - Auto-positioning with collision detection
29
+ * - Portal attachment to document body to avoid clipping issues
30
+ *
31
+ * ## Usage
32
+ *
33
+ * ### Basic DropdownMenu with External Trigger
34
+ * ```html
35
+ * <button fuiButton fuiDropdownMenuTrigger [fuiDropdownMenuTriggerFor]="menu">
36
+ * Open Menu
37
+ * </button>
38
+ * <fui-dropdown-menu #menu>
39
+ * <fui-dropdown-menu-item>Option 1</fui-dropdown-menu-item>
40
+ * <fui-dropdown-menu-item>Option 2</fui-dropdown-menu-item>
41
+ * </fui-dropdown-menu>
42
+ * ```
43
+ *
44
+ * ### DropdownMenu with Custom Position
45
+ * ```html
46
+ * <button fuiButton fuiDropdownMenuTrigger [fuiDropdownMenuTriggerFor]="menu">
47
+ * Open Menu
48
+ * </button>
49
+ * <fui-dropdown-menu #menu position="top-start" size="lg">
50
+ * <fui-dropdown-menu-item>Profile</fui-dropdown-menu-item>
51
+ * <fui-dropdown-menu-item variant="danger">Logout</fui-dropdown-menu-item>
52
+ * </fui-dropdown-menu>
53
+ * ```
54
+ *
55
+ * ### DropdownMenu without Portal (for special cases)
56
+ * ```html
57
+ * <button fuiButton fuiDropdownMenuTrigger [fuiDropdownMenuTriggerFor]="menu">
58
+ * Open Menu
59
+ * </button>
60
+ * <fui-dropdown-menu #menu [attachToBody]="false">
61
+ * <fui-dropdown-menu-item>Option 1</fui-dropdown-menu-item>
62
+ * <fui-dropdown-menu-item>Option 2</fui-dropdown-menu-item>
63
+ * </fui-dropdown-menu>
64
+ * ```
65
+ *
66
+ * ### DropdownMenu with Data Passed from Trigger
67
+ * ```html
68
+ * <button fuiButton fuiDropdownMenuTrigger
69
+ * [fuiDropdownMenuTriggerFor]="dynamicMenu"
70
+ * [menuTriggerData]="{ user: currentUser, items: menuItems }">
71
+ * Open Menu
72
+ * </button>
73
+ * <fui-dropdown-menu #dynamicMenu>
74
+ * <!-- Access data in component using menu.menuData() -->
75
+ * </fui-dropdown-menu>
76
+ * ```
77
+ *
78
+ * ```typescript
79
+ * @Component({
80
+ * template: `
81
+ * <fui-dropdown-menu #menu>
82
+ * <fui-dropdown-menu-item *ngFor="let item of menu.menuData()?.items">
83
+ * {{ item.label }}
84
+ * </fui-dropdown-menu-item>
85
+ * </fui-dropdown-menu>
86
+ * `
87
+ * })
88
+ * export class MyComponent { }
89
+ * ```
90
+ */
91
+ declare class FuiDropdownMenuComponent implements OnDestroy {
92
+ /**
93
+ * Menu position relative to the trigger element
94
+ * @default 'bottom-start'
95
+ */
96
+ readonly position: _angular_core.InputSignal<FuiDropdownMenuPosition>;
97
+ /**
98
+ * Menu size variant
99
+ * @default 'md'
100
+ */
101
+ readonly size: _angular_core.InputSignal<FuiDropdownMenuSize>;
102
+ /**
103
+ * Whether the menu should close when clicking outside
104
+ * @default true
105
+ */
106
+ readonly closeOnClickOutside: _angular_core.InputSignalWithTransform<boolean, unknown>;
107
+ /**
108
+ * Whether the menu is disabled
109
+ * @default false
110
+ */
111
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
112
+ /**
113
+ * Whether to attach the menu panel to the document body to avoid clipping issues
114
+ * @default true
115
+ */
116
+ readonly attachToBody: _angular_core.InputSignalWithTransform<boolean, unknown>;
117
+ /**
118
+ * Emitted when the menu open state changes
119
+ */
120
+ readonly openChange: _angular_core.OutputEmitterRef<boolean>;
121
+ /**
122
+ * Emitted when a menu item is selected
123
+ */
124
+ readonly itemSelected: _angular_core.OutputEmitterRef<Event>;
125
+ protected readonly _isOpen: _angular_core.WritableSignal<boolean>;
126
+ protected readonly _animationState: _angular_core.WritableSignal<"void" | "enter" | "leave">;
127
+ private readonly _triggerElement;
128
+ private readonly _menuData;
129
+ private _previousFocusedElement;
130
+ private _closeAnimationTimeout;
131
+ readonly computedClasses: _angular_core.Signal<string>;
132
+ private readonly _destroyRef;
133
+ private readonly _elementRef;
134
+ private readonly _overlayService;
135
+ readonly _popup: FuiPopupOverlayDirective;
136
+ menuPanel?: ElementRef<HTMLElement>;
137
+ private readonly _menuItems;
138
+ constructor();
139
+ /**
140
+ * Whether the menu is currently open
141
+ */
142
+ isOpen(): boolean;
143
+ /**
144
+ * Opens the menu
145
+ */
146
+ open(): void;
147
+ /**
148
+ * Closes the menu
149
+ */
150
+ close(): void;
151
+ /**
152
+ * Toggles the menu open/closed state
153
+ */
154
+ toggle(): void;
155
+ /**
156
+ * Sets the trigger element for positioning (called by trigger directive)
157
+ */
158
+ setTriggerElement(element: HTMLElement): void;
159
+ /**
160
+ * Gets the menu data passed from the trigger
161
+ * Returns a signal containing the data
162
+ */
163
+ menuData(): unknown;
164
+ /**
165
+ * Sets the menu data (called by trigger directive)
166
+ * @param data The data to pass to the menu
167
+ */
168
+ setMenuData(data: unknown): void;
169
+ onDocumentKeydown(event: KeyboardEvent): void;
170
+ onMenuClick(event: Event): void;
171
+ ngOnDestroy(): void;
172
+ private _openMenu;
173
+ private _closeMenu;
174
+ private _getPositionsForMenuPosition;
175
+ private _restoreFocus;
176
+ private _getMenuItems;
177
+ /** @internal Called by FuiDropdownMenuTriggerDirective */
178
+ _focusFirstItem(): void;
179
+ /** @internal Called by FuiDropdownMenuTriggerDirective */
180
+ _focusLastItem(): void;
181
+ private _focusNextItem;
182
+ private _focusPreviousItem;
183
+ /**
184
+ * Focuses a menu item and updates roving tabindex across all items.
185
+ */
186
+ private _focusItem;
187
+ /**
188
+ * Resets all items to tabindex="-1" when the menu closes.
189
+ */
190
+ private _resetRovingTabindex;
191
+ /**
192
+ * Updates roving tabindex: sets tabindex="0" on the target item
193
+ * and tabindex="-1" on all other items.
194
+ */
195
+ private _updateRovingTabindex;
196
+ private _startCloseAnimation;
197
+ private _clearCloseTimeout;
198
+ /**
199
+ * Checks if this menu's overlay is the topmost (most recently opened) overlay.
200
+ * This ensures that only the topmost menu responds to keyboard events when
201
+ * multiple menus are open (e.g., nested menus).
202
+ */
203
+ private _isTopmostOverlay;
204
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FuiDropdownMenuComponent, never>;
205
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FuiDropdownMenuComponent, "fui-dropdown-menu", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "closeOnClickOutside": { "alias": "closeOnClickOutside"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "attachToBody": { "alias": "attachToBody"; "required": false; "isSignal": true; }; }, { "openChange": "openChange"; "itemSelected": "itemSelected"; }, ["_menuItems"], ["*"], true, [{ directive: typeof i1.FuiPopupOverlayDirective; inputs: { "positions": "positions"; "panelClass": "panelClass"; "backdropClass": "backdropClass"; "scrollStrategy": "scrollStrategy"; "minWidthFromTrigger": "minWidthFromTrigger"; "closeOnEscape": "closeOnEscape"; "closeOnBackdrop": "closeOnBackdrop"; "viewportMargin": "viewportMargin"; }; outputs: { "openedChange": "openedChange"; "escapeKey": "escapeKey"; "backdropClick": "backdropClick"; }; }]>;
206
+ }
207
+
208
+ /**
209
+ * Available dropdown-menu item variants
210
+ */
211
+ type DropdownMenuItemVariant = 'default' | 'danger';
212
+ declare const DROPDOWN_MENU_ITEM_VARIANTS: readonly ["default", "danger"];
213
+ /**
214
+ * # FuiDropdownMenuItem Component
215
+ *
216
+ * A menu item component designed to be used within fui-dropdown-menu.
217
+ * Provides consistent styling and behavior for menu options.
218
+ *
219
+ * ## Features
220
+ * - Default and danger variants
221
+ * - Full accessibility support (ARIA attributes, keyboard navigation)
222
+ * - Icon support with proper spacing
223
+ * - Disabled state support
224
+ * - Hover and focus states
225
+ * - Keyboard activation (Enter and Space)
226
+ *
227
+ * ## Usage
228
+ *
229
+ * ### Basic Menu Item
230
+ * ```html
231
+ * <fui-dropdown-menu-item>Profile</fui-dropdown-menu-item>
232
+ * ```
233
+ *
234
+ * ### Menu Item with Icon
235
+ * ```html
236
+ * <fui-dropdown-menu-item>
237
+ * <fui-icon name="user" fuiPrefix></fui-icon>
238
+ * Profile
239
+ * </fui-dropdown-menu-item>
240
+ * ```
241
+ *
242
+ * ### Danger Menu Item
243
+ * ```html
244
+ * <fui-dropdown-menu-item variant="danger">
245
+ * <fui-icon name="trash" fuiPrefix></fui-icon>
246
+ * Delete Account
247
+ * </fui-dropdown-menu-item>
248
+ * ```
249
+ *
250
+ * ### Disabled Menu Item
251
+ * ```html
252
+ * <fui-dropdown-menu-item [disabled]="true">
253
+ * Unavailable Option
254
+ * </fui-dropdown-menu-item>
255
+ * ```
256
+ *
257
+ * @example
258
+ * ```typescript
259
+ * import { FuiDropdownMenuItemComponent } from '@raintonic/formaui/components/dropdown-menu';
260
+ *
261
+ * @Component({
262
+ * standalone: true,
263
+ * imports: [FuiDropdownMenuItemComponent],
264
+ * templateUrl: './my-component.component.html',
265
+ * styleUrl: './my-component.component.scss'
266
+ * })
267
+ * export class MyComponent {
268
+ * onItemClick(event: Event) {
269
+ * console.log('Menu item clicked:', event);
270
+ * }
271
+ * }
272
+ * ```
273
+ */
274
+ declare class FuiDropdownMenuItemComponent {
275
+ /**
276
+ * Menu item variant that determines the visual style
277
+ * @default 'default'
278
+ */
279
+ readonly variant: _angular_core.InputSignalWithTransform<DropdownMenuItemVariant, string>;
280
+ /**
281
+ * Whether the menu item is disabled
282
+ * @default false
283
+ */
284
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
285
+ /**
286
+ * Emitted when the menu item is clicked or activated
287
+ */
288
+ readonly selected: _angular_core.OutputEmitterRef<Event>;
289
+ /**
290
+ * Internal tabindex for roving tabindex pattern.
291
+ * Managed by the parent FuiDropdownMenuComponent.
292
+ * @internal
293
+ */
294
+ readonly tabIndex: _angular_core.WritableSignal<string>;
295
+ readonly computedClasses: _angular_core.Signal<string>;
296
+ /** @internal */ readonly _elementRef: ElementRef<HTMLElement>;
297
+ private readonly _renderer;
298
+ onClick(event: Event): void;
299
+ onKeydown(event: KeyboardEvent): void;
300
+ /**
301
+ * Focuses the menu item
302
+ */
303
+ focus(): void;
304
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FuiDropdownMenuItemComponent, never>;
305
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FuiDropdownMenuItemComponent, "fui-dropdown-menu-item", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "selected": "selected"; }, never, ["*"], true, never>;
306
+ }
307
+
308
+ /**
309
+ * # fuiDropdownMenuTrigger Directive
310
+ *
311
+ * A directive that marks an element as a dropdown menu trigger, similar to Angular Material's matMenuTriggerFor.
312
+ * This directive should be used in conjunction with FuiDropdownMenuComponent.
313
+ *
314
+ * ## Usage
315
+ *
316
+ * ### Basic Usage
317
+ * ```html
318
+ * <button fuiDropdownMenuTrigger [fuiDropdownMenuTriggerFor]="menu">Open Menu</button>
319
+ * <fui-dropdown-menu #menu>
320
+ * <fui-dropdown-menu-item>Option 1</fui-dropdown-menu-item>
321
+ * <fui-dropdown-menu-item>Option 2</fui-dropdown-menu-item>
322
+ * </fui-dropdown-menu>
323
+ * ```
324
+ *
325
+ * ### With Menu Reference
326
+ * ```html
327
+ * <button fuiDropdownMenuTrigger [fuiDropdownMenuTriggerFor]="userMenu">
328
+ * <fui-icon name="user"></fui-icon>
329
+ * User Menu
330
+ * </button>
331
+ *
332
+ * <fui-dropdown-menu #userMenu position="bottom-end">
333
+ * <fui-dropdown-menu-item>Profile</fui-dropdown-menu-item>
334
+ * <fui-dropdown-menu-item>Settings</fui-dropdown-menu-item>
335
+ * <fui-dropdown-menu-item variant="danger">Logout</fui-dropdown-menu-item>
336
+ * </fui-dropdown-menu>
337
+ * ```
338
+ *
339
+ * ### Passing Data to Menu
340
+ * ```html
341
+ * <button fuiDropdownMenuTrigger
342
+ * [fuiDropdownMenuTriggerFor]="dynamicMenu"
343
+ * [menuTriggerData]="{ user: currentUser, role: 'admin' }">
344
+ * Open Menu
345
+ * </button>
346
+ *
347
+ * <fui-dropdown-menu #dynamicMenu>
348
+ * <!-- Access menu data in your component via menu.menuData() -->
349
+ * </fui-dropdown-menu>
350
+ * ```
351
+ *
352
+ * @example
353
+ * ```typescript
354
+ * import { FuiDropdownMenuTriggerDirective, FuiDropdownMenuComponent, FuiDropdownMenuItemComponent } from '@raintonic/formaui/components/dropdown-menu';
355
+ *
356
+ * @Component({
357
+ * standalone: true,
358
+ * imports: [FuiDropdownMenuTriggerDirective, FuiDropdownMenuComponent, FuiDropdownMenuItemComponent],
359
+ * template: `
360
+ * <button fuiDropdownMenuTrigger [fuiDropdownMenuTriggerFor]="menu">Open Menu</button>
361
+ * <fui-dropdown-menu #menu>
362
+ * <fui-dropdown-menu-item>Option 1</fui-dropdown-menu-item>
363
+ * <fui-dropdown-menu-item>Option 2</fui-dropdown-menu-item>
364
+ * </fui-dropdown-menu>
365
+ * `
366
+ * })
367
+ * export class MyComponent { }
368
+ * ```
369
+ */
370
+ declare class FuiDropdownMenuTriggerDirective implements AfterViewInit {
371
+ private readonly _elementRef;
372
+ /** The menu instance that this trigger should open */
373
+ readonly fuiDropdownMenuTriggerFor: _angular_core.InputSignal<FuiDropdownMenuComponent | null | undefined>;
374
+ /**
375
+ * Data to be passed to the menu.
376
+ * Can be accessed in the menu component or menu items.
377
+ * Similar to Angular Material's matMenuTriggerData.
378
+ */
379
+ readonly menuTriggerData: _angular_core.InputSignal<unknown>;
380
+ /** The menu instance that this trigger is associated with */
381
+ menu: FuiDropdownMenuComponent | null;
382
+ constructor();
383
+ ngAfterViewInit(): void;
384
+ onClick(event: Event): void;
385
+ onKeydown(event: KeyboardEvent): void;
386
+ /** Gets the trigger element */
387
+ getElement(): HTMLElement;
388
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FuiDropdownMenuTriggerDirective, never>;
389
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FuiDropdownMenuTriggerDirective, "[fuiDropdownMenuTrigger]", never, { "fuiDropdownMenuTriggerFor": { "alias": "fuiDropdownMenuTriggerFor"; "required": false; "isSignal": true; }; "menuTriggerData": { "alias": "menuTriggerData"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
390
+ }
391
+
392
+ export { DROPDOWN_MENU_ITEM_VARIANTS, FUI_DROPDOWN_MENU_POSITIONS, FUI_DROPDOWN_MENU_SIZES, FuiDropdownMenuComponent, FuiDropdownMenuItemComponent, FuiDropdownMenuTriggerDirective };
393
+ export type { DropdownMenuItemVariant, FuiDropdownMenuPosition, FuiDropdownMenuSize };
394
+ //# sourceMappingURL=raintonic-formaui-components-dropdown-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raintonic-formaui-components-dropdown-menu.d.ts","sources":["../../../lib/components/dropdown-menu/dropdown-menu.component.ts","../../../lib/components/dropdown-menu/dropdown-menu-item.component.ts","../../../lib/components/dropdown-menu/dropdown-menu-trigger.directive.ts"],"mappings":";;;;;AAsBA;;AAEG;AACG,KAAM,uBAAuB;AAcnC,cAAa,2BAA2B;AAexC;;AAEG;AACG,KAAM,mBAAmB;AAE/B,cAAa,uBAAuB;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0EG;AACH,cA2Ba,wBAAyB,YAAW,SAAS;AACxD;;;AAGG;uBACc,aAAA,CAAA,WAAA,CAAA,uBAAA;AAEjB;;;AAGG;mBACU,aAAA,CAAA,WAAA,CAAA,mBAAA;AAEb;;;AAGG;kCACyB,aAAA,CAAA,wBAAA;AAE5B;;;AAGG;uBACc,aAAA,CAAA,wBAAA;AAEjB;;;AAGG;2BACkB,aAAA,CAAA,wBAAA;AAErB;;AAEG;yBACgB,aAAA,CAAA,gBAAA;AAEnB;;AAEG;2BACkB,aAAA,CAAA,gBAAA,CAAA,KAAA;AAGrB,gCAA0B,aAAA,CAAA,cAAA;AAC1B,wCAAkC,aAAA,CAAA,cAAA;AAClC;AACA;;;8BAKwB,aAAA,CAAA,MAAA;AAexB;AACA;AAEA;qBACe,wBAAA;AAG4B,gBAAY,UAAU,CAAC,WAAW;AAG7E;;AAiCA;;AAEG;AACH;AAIA;;AAEG;AACH;AAKA;;AAEG;AACH;AAIA;;AAEG;AACH;AAQA;;AAEG;AACH,+BAA2B,WAAW;AAItC;;;AAGG;AACH;AAIA;;;AAGG;AACH;AAKA,6BAAyB,aAAa;AAkCtC,uBAAmB,KAAK;AAYxB;AAUA;AA0DA;AAaA;AAqEA;AAWA;;AAQA;;AAQA;AAOA;AAWA;AAWA;;AAEG;AACH;AAKA;;AAEG;AACH;AAOA;;;AAGG;AACH;AAWA;AAcA;AAOA;;;;AAIG;AACH;oDA5dW,wBAAwB;sDAAxB,wBAAwB,miBAAA,EAAA,CAAA,wBAAA;AAyepC;;AC/nBD;;AAEG;KACS,uBAAuB;AAEnC,cAAa,2BAA2B;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DG;AACH,cAaa,4BAA4B;AACvC;;;AAGG;sBACa,aAAA,CAAA,wBAAA,CAAA,uBAAA;AAKhB;;;AAGG;uBACc,aAAA,CAAA,wBAAA;AAEjB;;AAEG;uBACc,aAAA,CAAA,gBAAA,CAAA,KAAA;AAEjB;;;;AAIG;uBACc,aAAA,CAAA,cAAA;8BAGO,aAAA,CAAA,MAAA;2CAUe,UAAU,CAAC,WAAW;AAC7D;AAGA,mBAAe,KAAK;AAWpB,qBAAiB,aAAa;AAgB9B;;AAEG;AACH;oDAzEW,4BAA4B;sDAA5B,4BAA4B;AA4ExC;;ACvKD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DG;AACH,cAQa,+BAAgC,YAAW,aAAa;AACnE;;wCAGkC,aAAA,CAAA,WAAA,CAAA,wBAAA;AAElC;;;;AAIG;8BACqB,aAAA,CAAA,WAAA;;AAGxB,UAAM,wBAAwB;;AAc9B;AAWA,mBAAe,KAAK;AAkBpB,qBAAiB,aAAa;;AA6C9B,kBAAc,WAAW;oDAtGd,+BAA+B;sDAA/B,+BAA+B;AAyG3C;;;;","names":[]}
@@ -0,0 +1,87 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { MenuItem } from '@raintonic/formaui/core';
3
+
4
+ declare class FuiDualTierNavigationComponent {
5
+ private readonly _injector;
6
+ readonly items: _angular_core.InputSignal<MenuItem[]>;
7
+ readonly ariaLabel: _angular_core.InputSignal<string>;
8
+ readonly itemClick: _angular_core.OutputEmitterRef<MenuItem>;
9
+ readonly _readyItems: _angular_core.Signal<MenuItem[]>;
10
+ readonly _expandedId: _angular_core.WritableSignal<string | undefined>;
11
+ readonly _expandedItem: _angular_core.Signal<MenuItem | undefined>;
12
+ private _findItemById;
13
+ _closeFlyout(): void;
14
+ _onItemClick(item: MenuItem): void;
15
+ _onToggle(event: Event, item: MenuItem): void;
16
+ _onTriggerKeydown(event: KeyboardEvent, item: MenuItem): void;
17
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FuiDualTierNavigationComponent, never>;
18
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FuiDualTierNavigationComponent, "fui-dual-tier-navigation", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; }, never, never, true, never>;
19
+ }
20
+
21
+ /**
22
+ * Renders a single top-level trigger item for the dual-tier navigation bar.
23
+ * Extracted so the main component stays under 200 lines.
24
+ */
25
+ declare class DualTierNavTriggerComponent {
26
+ readonly item: _angular_core.InputSignal<MenuItem>;
27
+ readonly isExpanded: _angular_core.InputSignal<boolean>;
28
+ readonly flyoutId: _angular_core.InputSignal<string>;
29
+ readonly itemClick: _angular_core.OutputEmitterRef<MenuItem>;
30
+ readonly toggle: _angular_core.OutputEmitterRef<Event>;
31
+ readonly keydown: _angular_core.OutputEmitterRef<KeyboardEvent>;
32
+ readonly hasChildren: _angular_core.Signal<boolean>;
33
+ onClick(event: Event): void;
34
+ onKeydown(event: KeyboardEvent): void;
35
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DualTierNavTriggerComponent, never>;
36
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DualTierNavTriggerComponent, "fui-dual-tier-nav-trigger", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; "isExpanded": { "alias": "isExpanded"; "required": false; "isSignal": true; }; "flyoutId": { "alias": "flyoutId"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; "toggle": "toggle"; "keydown": "keydown"; }, never, never, true, never>;
37
+ }
38
+
39
+ declare class DualTierNavSubmenuComponent {
40
+ private readonly _injector;
41
+ readonly title: _angular_core.InputSignal<string>;
42
+ readonly items: _angular_core.InputSignal<MenuItem[]>;
43
+ readonly showHeader: _angular_core.InputSignal<boolean>;
44
+ readonly closable: _angular_core.InputSignal<boolean>;
45
+ readonly itemClick: _angular_core.OutputEmitterRef<MenuItem>;
46
+ readonly closePanel: _angular_core.OutputEmitterRef<void>;
47
+ readonly visibleItems: _angular_core.Signal<MenuItem[]>;
48
+ readonly _expanded: _angular_core.WritableSignal<Set<string>>;
49
+ constructor();
50
+ _hasChildren(item: MenuItem): boolean;
51
+ _isExpanded(item: MenuItem): boolean;
52
+ _onClose(): void;
53
+ _onClickItem(item: MenuItem): void;
54
+ _onToggleExpand(item: MenuItem, toggleSourceEl?: HTMLElement): void;
55
+ _onListKeydown(event: KeyboardEvent): void;
56
+ _onItemKeydown(event: KeyboardEvent, item: MenuItem): void;
57
+ private _focusItem;
58
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DualTierNavSubmenuComponent, never>;
59
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DualTierNavSubmenuComponent, "fui-dual-tier-nav-submenu", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "showHeader": { "alias": "showHeader"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; "closePanel": "closePanel"; }, never, never, true, never>;
60
+ }
61
+
62
+ declare class DualTierNavSubmenuHeaderComponent {
63
+ readonly title: _angular_core.InputSignal<string>;
64
+ readonly closable: _angular_core.InputSignal<boolean>;
65
+ readonly close: _angular_core.OutputEmitterRef<void>;
66
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DualTierNavSubmenuHeaderComponent, never>;
67
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DualTierNavSubmenuHeaderComponent, "fui-dual-tier-nav-submenu-header", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; }, { "close": "close"; }, never, never, true, never>;
68
+ }
69
+
70
+ declare class DualTierNavSubmenuItemComponent {
71
+ readonly item: _angular_core.InputSignal<MenuItem>;
72
+ readonly isExpanded: _angular_core.InputSignal<boolean>;
73
+ readonly clickItem: _angular_core.OutputEmitterRef<MenuItem>;
74
+ readonly toggleExpand: _angular_core.OutputEmitterRef<{
75
+ item: MenuItem;
76
+ sourceEl?: HTMLElement;
77
+ }>;
78
+ readonly keydown: _angular_core.OutputEmitterRef<KeyboardEvent>;
79
+ hasChildren(): boolean;
80
+ _onClick(event: Event): void;
81
+ _onKeydown(event: KeyboardEvent): void;
82
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DualTierNavSubmenuItemComponent, never>;
83
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DualTierNavSubmenuItemComponent, "fui-dual-tier-nav-submenu-item", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; "isExpanded": { "alias": "isExpanded"; "required": false; "isSignal": true; }; }, { "clickItem": "clickItem"; "toggleExpand": "toggleExpand"; "keydown": "keydown"; }, never, never, true, never>;
84
+ }
85
+
86
+ export { DualTierNavSubmenuComponent, DualTierNavSubmenuHeaderComponent, DualTierNavSubmenuItemComponent, DualTierNavTriggerComponent, FuiDualTierNavigationComponent };
87
+ //# sourceMappingURL=raintonic-formaui-components-dual-tier-navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raintonic-formaui-components-dual-tier-navigation.d.ts","sources":["../../../lib/components/dual-tier-navigation/dual-tier-navigation.component.ts","../../../lib/components/dual-tier-navigation/dual-tier-navigation-trigger.component.ts","../../../lib/components/dual-tier-navigation/dual-tier-navigation-submenu.component.ts","../../../lib/components/dual-tier-navigation/dual-tier-navigation-submenu-header.component.ts","../../../lib/components/dual-tier-navigation/dual-tier-navigation-submenu-item.component.ts"],"mappings":";;;AAeA,cAyGa,8BAA8B;AACzC;oBAEc,aAAA,CAAA,WAAA,CAAA,QAAA;wBACI,aAAA,CAAA,WAAA;wBACA,aAAA,CAAA,gBAAA,CAAA,QAAA;0BAEE,aAAA,CAAA,MAAA,CAAA,QAAA;0BAgBA,aAAA,CAAA,cAAA;4BAEE,aAAA,CAAA,MAAA,CAAA,QAAA;AAMtB;AAWA;AAaA,uBAAmB,QAAQ;qBAIV,KAAK,QAAQ,QAAQ;6BAMb,aAAa,QAAQ,QAAQ;oDAjE3C,8BAA8B;sDAA9B,8BAA8B;AAoI1C;;ACtPD;;;AAGG;AACH,cA8Ja,2BAA2B;mBACzB,aAAA,CAAA,WAAA,CAAA,QAAA;yBACM,aAAA,CAAA,WAAA;uBACF,aAAA,CAAA,WAAA;wBACC,aAAA,CAAA,gBAAA,CAAA,QAAA;qBACH,aAAA,CAAA,gBAAA,CAAA,KAAA;sBACC,aAAA,CAAA,gBAAA,CAAA,aAAA;0BAEI,aAAA,CAAA,MAAA;AAEpB,mBAAe,KAAK;AAcpB,qBAAiB,aAAa;oDAxBnB,2BAA2B;sDAA3B,2BAA2B;AA+BvC;;ACvLD,cA4Fa,2BAA2B;AACtC;oBAEc,aAAA,CAAA,WAAA;oBACA,aAAA,CAAA,WAAA,CAAA,QAAA;yBACK,aAAA,CAAA,WAAA;uBACF,aAAA,CAAA,WAAA;wBACC,aAAA,CAAA,gBAAA,CAAA,QAAA;yBACC,aAAA,CAAA,gBAAA;2BAEE,aAAA,CAAA,MAAA,CAAA,QAAA;wBACH,aAAA,CAAA,cAAA,CAAA,GAAA;;AAgBlB,uBAAmB,QAAQ;AAI3B,sBAAkB,QAAQ;AAI1B;AAIA,uBAAmB,QAAQ;0BAIL,QAAQ,mBAAmB,WAAW;AAyB5D,0BAAsB,aAAa;0BAmCb,aAAa,QAAQ,QAAQ;AAiBnD;oDAxHW,2BAA2B;sDAA3B,2BAA2B;AAkIvC;;AC3OD,cA4Da,iCAAiC;oBAC9B,aAAA,CAAA,WAAA;uBACG,aAAA,CAAA,WAAA;oBACH,aAAA,CAAA,gBAAA;oDAHH,iCAAiC;sDAAjC,iCAAiC;AAI7C;;AC9DD,cAgJa,+BAA+B;mBAC7B,aAAA,CAAA,WAAA,CAAA,QAAA;yBACM,aAAA,CAAA,WAAA;wBACD,aAAA,CAAA,gBAAA,CAAA,QAAA;AAClB,2BAAqB,aAAA,CAAA,gBAAA;cAAkB,QAAQ;mBAAa,WAAW;AAAM;sBAC7D,aAAA,CAAA,gBAAA,CAAA,aAAA;AAEhB;AAIA,oBAAgB,KAAK;AAcrB,sBAAkB,aAAa;oDAzBpB,+BAA+B;sDAA/B,+BAA+B;AAqD3C;;;;","names":[]}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Signal, InputSignal, QueryList, ElementRef, WritableSignal } from '@angular/core';
2
+ import { Signal, InjectionToken, ElementRef, InputSignal, QueryList, WritableSignal } from '@angular/core';
3
3
  import * as _raintonic_formaui_core from '@raintonic/formaui/core';
4
4
  import { FuiIntlBase } from '@raintonic/formaui/core';
5
5
 
@@ -73,17 +73,41 @@ declare class FuiSuffixDirective {
73
73
  declare class FuiFormFieldIntl extends FuiIntlBase {
74
74
  copyAriaLabel: string;
75
75
  copiedAriaLabel: string;
76
+ copyTooltip: string;
77
+ copiedTooltip: string;
76
78
  static ɵfac: i0.ɵɵFactoryDeclaration<FuiFormFieldIntl, never>;
77
79
  static ɵprov: i0.ɵɵInjectableDeclaration<FuiFormFieldIntl>;
78
80
  }
79
81
 
82
+ /**
83
+ * Interface exposed by FuiFormFieldComponent for child controls.
84
+ *
85
+ * Child controls (select, autocomplete, date-picker) inject this token to
86
+ * access the form-field's overlay origin element — typically the wrapper
87
+ * container whose width the overlay panel should match.
88
+ */
89
+ interface FuiFormFieldParent {
90
+ /**
91
+ * Returns the element that should be used as the width reference for
92
+ * overlay panels (e.g. select dropdown, autocomplete panel).
93
+ * This is typically the form-field wrapper element so the overlay
94
+ * correctly spans prefix/suffix areas.
95
+ */
96
+ getConnectedOverlayOrigin(): ElementRef<HTMLElement>;
97
+ }
98
+ /**
99
+ * Injection token for the parent form-field component.
100
+ * Child controls inject this (via @Optional()) to coordinate with the
101
+ * containing form-field without coupling to the component class directly.
102
+ */
103
+ declare const FUI_FORM_FIELD: InjectionToken<FuiFormFieldParent>;
104
+
80
105
  /**
81
106
  * Available form field appearance modes.
82
107
  * - `'outline'` — default bordered appearance (Carbon Design System style)
83
108
  * - `'fill'` — filled background with bottom-border only
84
- * - `'float'` — floating-label that animates above the input on focus / value
85
109
  */
86
- type FormFieldAppearance = 'outline' | 'fill' | 'float';
110
+ type FormFieldAppearance = 'outline' | 'fill';
87
111
  /**
88
112
  * # FormField Component
89
113
  *
@@ -162,20 +186,14 @@ type FormFieldAppearance = 'outline' | 'fill' | 'float';
162
186
  * }
163
187
  * ```
164
188
  */
165
- declare class FuiFormFieldComponent {
189
+ declare class FuiFormFieldComponent implements FuiFormFieldParent {
166
190
  readonly intl: FuiFormFieldIntl;
167
191
  private readonly _cdr;
168
- /**
169
- * Whether the form field is in read-only mode.
170
- * When true, hides the input and shows a plain text value instead.
171
- * @default false
172
- */
173
- readonly readOnly: InputSignal<boolean>;
192
+ private readonly _elementRef;
174
193
  /**
175
194
  * Visual appearance variant.
176
195
  * - `'outline'` (default): bordered input with label above
177
196
  * - `'fill'`: filled background with bottom-border accent
178
- * - `'float'`: label floats from inside the input to above it on focus/value
179
197
  */
180
198
  readonly appearance: InputSignal<FormFieldAppearance>;
181
199
  /**
@@ -187,28 +205,40 @@ declare class FuiFormFieldComponent {
187
205
  _prefixes?: QueryList<FuiPrefixDirective>;
188
206
  _suffixes?: QueryList<FuiSuffixDirective>;
189
207
  _connectionContainerRef?: ElementRef<HTMLElement>;
190
- hideSubscript: InputSignal<boolean>;
208
+ private readonly _wrapperRef?;
209
+ hideSubscript: i0.InputSignalWithTransform<boolean, unknown>;
210
+ readonly strengthMeter: Signal<_raintonic_formaui_core.FuiStrengthMeter | undefined>;
191
211
  readonly displayValue: Signal<string>;
192
212
  readonly isFocused: Signal<boolean>;
193
213
  readonly hasError: Signal<boolean>;
194
214
  readonly isDisabled: Signal<boolean>;
215
+ readonly isReadonly: Signal<boolean>;
195
216
  readonly isEmpty: Signal<boolean>;
196
217
  readonly isRequired: Signal<boolean>;
197
- /**
198
- * Whether the floating label should be in its "floated" (raised) position.
199
- * Only meaningful when `appearance === 'float'`. True when the field is
200
- * focused or contains a non-empty value.
201
- */
202
- readonly shouldFloat: Signal<boolean>;
218
+ /** Whether the projected control is a fui-number-input (needs zero horizontal padding) */
219
+ readonly isNumberInput: Signal<boolean>;
203
220
  /** Whether control-specific icons (dropdown caret, calendar) should be hidden in readOnly mode */
204
221
  readonly hideControlIcons: Signal<boolean>;
222
+ /** Whether the copy button should appear in read-only mode.
223
+ * Delegates to the control's `readonlyCopyEnabled()` method.
224
+ * Only plain inputs (`fuiInput`) opt in — defaults to `false`. */
225
+ readonly showCopyButton: Signal<boolean>;
205
226
  /** Whether the "copied" feedback indicator is active */
206
227
  readonly copied: WritableSignal<boolean>;
207
228
  private _copiedTimeout;
208
229
  readonly labelId: string;
209
230
  readonly hintId: string;
231
+ /** Whether the strength meter should be shown. Visible only when the control
232
+ * has a non-empty value (i.e. the user has typed something). */
233
+ readonly showStrengthMeter: Signal<boolean>;
210
234
  readonly errorId: string;
211
235
  constructor();
236
+ /**
237
+ * Returns the element that overlay panels (select, autocomplete, date-picker)
238
+ * should use as their width reference. This is the form-field wrapper which
239
+ * spans the full width including prefix/suffix areas.
240
+ */
241
+ getConnectedOverlayOrigin(): ElementRef<HTMLElement>;
212
242
  /**
213
243
  * Handles click on the form field container
214
244
  */
@@ -238,7 +268,7 @@ declare class FuiFormFieldComponent {
238
268
  */
239
269
  hasSuffix(): boolean;
240
270
  static ɵfac: i0.ɵɵFactoryDeclaration<FuiFormFieldComponent, never>;
241
- static ɵcmp: i0.ɵɵComponentDeclaration<FuiFormFieldComponent, "fui-form-field", never, { "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "hideRequiredMarker": { "alias": "hideRequiredMarker"; "required": false; "isSignal": true; }; "hideSubscript": { "alias": "hideSubscript"; "required": false; "isSignal": true; }; }, {}, ["control", "_prefixes", "_suffixes"], ["fui-label", "[fuiPrefix]", "*", "[fuiSuffix]", "fui-error", "fui-hint"], true, never>;
271
+ static ɵcmp: i0.ɵɵComponentDeclaration<FuiFormFieldComponent, "fui-form-field", never, { "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "hideRequiredMarker": { "alias": "hideRequiredMarker"; "required": false; "isSignal": true; }; "hideSubscript": { "alias": "hideSubscript"; "required": false; "isSignal": true; }; }, {}, ["control", "strengthMeter", "_prefixes", "_suffixes"], ["fui-label", "[fuiPrefix]", "*", "[fuiSuffix]", "fui-error", "fui-hint", "fui-strength-meter"], true, never>;
242
272
  }
243
273
 
244
274
  /**
@@ -276,6 +306,6 @@ declare class FuiLabelComponent {
276
306
  static ɵcmp: i0.ɵɵComponentDeclaration<FuiLabelComponent, "fui-label", never, {}, {}, never, ["*"], true, never>;
277
307
  }
278
308
 
279
- export { FuiErrorComponent, FuiFormFieldComponent, FuiFormFieldIntl, FuiHintComponent, FuiLabelComponent, FuiPrefixDirective, FuiSuffixDirective };
280
- export type { FormFieldAppearance };
309
+ export { FUI_FORM_FIELD, FuiErrorComponent, FuiFormFieldComponent, FuiFormFieldIntl, FuiHintComponent, FuiLabelComponent, FuiPrefixDirective, FuiSuffixDirective };
310
+ export type { FormFieldAppearance, FuiFormFieldParent };
281
311
  //# sourceMappingURL=raintonic-formaui-components-form-field.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"raintonic-formaui-components-form-field.d.ts","sources":["../../../lib/components/form-field/error.component.ts","../../../lib/components/form-field/prefix.directive.ts","../../../lib/components/form-field/suffix.directive.ts","../../../lib/components/form-field/form-field.intl.ts","../../../lib/components/form-field/form-field.component.ts","../../../lib/components/form-field/hint.component.ts","../../../lib/components/form-field/label.component.ts"],"mappings":";;;;;AAGA;;;;;;;;;;;;;;;;AAgBG;AACH,cAWa,iBAAiB;AAC5B;;;;AAIG;kBACSA,EAAA,CAAA,WAAA;AAEZ;AAEA;;AAEG;oCAC6B,MAAM;yCAb3B,iBAAiB;2CAAjB,iBAAiB;AAsC7B;;ACnED;;;;;;;;;;;AAWG;AACH,cAOa,kBAAkB;yCAAlB,kBAAkB;2CAAlB,kBAAkB;AAAG;;ACnBlC;;;;;;;;;;;AAWG;AACH,cAOa,kBAAkB;yCAAlB,kBAAkB;2CAAlB,kBAAkB;AAAG;;AClBlC,cACa,gBAAiB,SAAQ,WAAW;AAC/C;AACA;yCAFW,gBAAgB;6CAAhB,gBAAgB;AAG5B;;ACoBD;;;;;AAKG;AACG,KAAM,mBAAmB;AAE/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6EG;AACH,cAuBa,qBAAqB;mBACnB,gBAAA;AACb;AAEA;;;;AAIG;AACH,uBAAmB,WAAW;AAE9B;;;;;AAKG;yBACgB,WAAA,CAAA,mBAAA;AAEnB;;;AAGG;AACH,iCAA6B,WAAW;AAGxC,aAAO,MAAA,CAAA,uBAAA,CAAA,mBAAA;AAEqD,gBAAY,SAAS,CAAC,kBAAkB;AACxC,gBAAY,SAAS,CAAC,kBAAkB;AAChD,8BAA0B,UAAU,CAAC,WAAW;AAEpG,mBAAa,WAAA;AAIb,2BAAuB,MAAM;AAmB7B,wBAAoB,MAAM;AAG1B,uBAAmB,MAAM;AAGzB,yBAAqB,MAAM;AAG3B,sBAAkB,MAAM;AAGxB,yBAAqB,MAAM;AAI3B;;;;AAIG;AACH,0BAAsB,MAAM;;AAM5B,+BAA2B,MAAM;;AAOjC,qBAAiB,cAAc;;;;;;AAuC/B;;AAEG;AACH,4BAAwB,UAAU;AAOlC;;AAEG;AACH;AAcA;;AAEG;;AAOH;;AAEG;AACH;AAoBA;;AAEG;AACH;AASA;;AAEG;AACH;AAIA;;AAEG;AACH;yCAjNW,qBAAqB;2CAArB,qBAAqB;AAoNjC;;AC1VD;;;;;;;;;;;;AAYG;AACH,cAQa,gBAAgB;yCAAhB,gBAAgB;2CAAhB,gBAAgB;AAAG;;ACrBhC;;;;;;;;;;;AAWG;AACH,cAQa,iBAAiB;yCAAjB,iBAAiB;2CAAjB,iBAAiB;AAAG;;;;","names":["_angular_core"]}
1
+ {"version":3,"file":"raintonic-formaui-components-form-field.d.ts","sources":["../../../lib/components/form-field/error.component.ts","../../../lib/components/form-field/prefix.directive.ts","../../../lib/components/form-field/suffix.directive.ts","../../../lib/components/form-field/form-field.intl.ts","../../../lib/components/form-field/form-field-tokens.ts","../../../lib/components/form-field/form-field.component.ts","../../../lib/components/form-field/hint.component.ts","../../../lib/components/form-field/label.component.ts"],"mappings":";;;;;AAGA;;;;;;;;;;;;;;;;AAgBG;AACH,cAWa,iBAAiB;AAC5B;;;;AAIG;kBACSA,EAAA,CAAA,WAAA;AAEZ;AAEA;;AAEG;oCAC6B,MAAM;yCAb3B,iBAAiB;2CAAjB,iBAAiB;AAsC7B;;ACnED;;;;;;;;;;;AAWG;AACH,cAOa,kBAAkB;yCAAlB,kBAAkB;2CAAlB,kBAAkB;AAAG;;ACnBlC;;;;;;;;;;;AAWG;AACH,cAOa,kBAAkB;yCAAlB,kBAAkB;2CAAlB,kBAAkB;AAAG;;AClBlC,cACa,gBAAiB,SAAQ,WAAW;AAC/C;AACA;AACA;AACA;yCAJW,gBAAgB;6CAAhB,gBAAgB;AAK5B;;ACND;;;;;;AAMG;UACc,kBAAkB;AACjC;;;;;AAKG;AACH,iCAA6B,UAAU,CAAC,WAAW;AACpD;AAED;;;;AAIG;AACH,cAAa,cAAc,EAAA,cAAA,CAAA,kBAAA;;ACO3B;;;;AAIG;KACS,mBAAmB;AAE/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6EG;AACH,cA4Ba,qBAAsB,YAAW,kBAAkB;mBACjD,gBAAA;AACb;AACA;AAEA;;;;AAIG;yBACgB,WAAA,CAAA,mBAAA;AAEnB;;;AAGG;AACH,iCAA6B,WAAW;AAGxC,aAAO,MAAA,CAAA,uBAAA,CAAA,mBAAA;AAEqD,gBAAY,SAAS,CAAC,kBAAkB;AACxC,gBAAY,SAAS,CAAC,kBAAkB;AAChD,8BAA0B,UAAU,CAAC,WAAW;AAC5D;AAExC,mBAAaA,EAAA,CAAA,wBAAA;4BAGS,MAAA,CAAA,uBAAA,CAAA,gBAAA;AAItB,2BAAuB,MAAM;AAmB7B,wBAAoB,MAAM;AAG1B,uBAAmB,MAAM;AAGzB,yBAAqB,MAAM;AAG3B,yBAAqB,MAAM;AAG3B,sBAAkB,MAAM;AAGxB,yBAAqB,MAAM;;AAK3B,4BAAwB,MAAM;;AAK9B,+BAA2B,MAAM;AAMjC;;AAEmE;AACnE,6BAAyB,MAAM;;AAM/B,qBAAiB,cAAc;;;;AAO/B;AACgE;AAChE,gCAA4B,MAAM;;;AA8BlC;;;;AAIG;AACH,iCAA6B,UAAU,CAAC,WAAW;AAInD;;AAEG;AACH,4BAAwB,UAAU;AAOlC;;AAEG;AACH;AAcA;;AAEG;;AAOH;;AAEG;AACH;AAoBA;;AAEG;AACH;AASA;;AAEG;AACH;AAIA;;AAEG;AACH;yCA7NW,qBAAqB;2CAArB,qBAAqB;AAgOjC;;AC/WD;;;;;;;;;;;;AAYG;AACH,cAQa,gBAAgB;yCAAhB,gBAAgB;2CAAhB,gBAAgB;AAAG;;ACrBhC;;;;;;;;;;;AAWG;AACH,cAQa,iBAAiB;yCAAjB,iBAAiB;2CAAjB,iBAAiB;AAAG;;;;","names":["_angular_core"]}