@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,270 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, Component, signal, computed, HostListener, ContentChild, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';
3
+
4
+ /**
5
+ * # FuiCardHeader Component
6
+ *
7
+ * Header section for cards with optional title, subtitle, and additional content.
8
+ *
9
+ * ## Usage
10
+ * ```html
11
+ * <fui-card-header title="Card Title" subtitle="Optional subtitle">
12
+ * <button fuiButton variant="ghost">
13
+ * <fui-icon name="dots-three"></fui-icon>
14
+ * </button>
15
+ * </fui-card-header>
16
+ * ```
17
+ */
18
+ class FuiCardHeaderComponent {
19
+ /**
20
+ * Unique id for linking with aria-labelledby from the card
21
+ */
22
+ hostId = `fui-card-header-${Math.random().toString(36).slice(2)}`;
23
+ /**
24
+ * Main title text for the card header
25
+ */
26
+ title = input(...(ngDevMode ? [undefined, { debugName: "title" }] : /* istanbul ignore next */ []));
27
+ /**
28
+ * Optional subtitle text for the card header
29
+ */
30
+ subtitle = input(...(ngDevMode ? [undefined, { debugName: "subtitle" }] : /* istanbul ignore next */ []));
31
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: FuiCardHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
32
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: FuiCardHeaderComponent, isStandalone: true, selector: "fui-card-header", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "fui-card-header" }, ngImport: i0, template: "@if (title()) {\r\n <div class=\"fui-card-header__title\" [attr.id]=\"hostId\">\r\n {{ title() }}\r\n </div>\r\n}\r\n@if (subtitle()) {\r\n <div class=\"fui-card-header__subtitle\">\r\n {{ subtitle() }}\r\n </div>\r\n}\r\n<div class=\"fui-card-header__content\">\r\n <ng-content></ng-content>\r\n</div>\r\n" });
33
+ }
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: FuiCardHeaderComponent, decorators: [{
35
+ type: Component,
36
+ args: [{ selector: 'fui-card-header', standalone: true, imports: [], host: {
37
+ class: 'fui-card-header',
38
+ }, template: "@if (title()) {\r\n <div class=\"fui-card-header__title\" [attr.id]=\"hostId\">\r\n {{ title() }}\r\n </div>\r\n}\r\n@if (subtitle()) {\r\n <div class=\"fui-card-header__subtitle\">\r\n {{ subtitle() }}\r\n </div>\r\n}\r\n<div class=\"fui-card-header__content\">\r\n <ng-content></ng-content>\r\n</div>\r\n" }]
39
+ }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }] } });
40
+
41
+ /**
42
+ * # FuiCardActions Component
43
+ *
44
+ * Actions section for cards, typically containing buttons or other interactive elements.
45
+ *
46
+ * ## Usage
47
+ * ```html
48
+ * <fui-card-actions align="end">
49
+ * <button fuiButton variant="tertiary">Cancel</button>
50
+ * <button fuiButton variant="primary" color="primary">Save</button>
51
+ * </fui-card-actions>
52
+ * ```
53
+ *
54
+ * ### Paddingless Actions
55
+ * ```html
56
+ * <fui-card-actions align="start" paddingless="true">
57
+ * <button fuiButton variant="ghost">
58
+ * <fui-icon name="heart"></fui-icon>
59
+ * </button>
60
+ * </fui-card-actions>
61
+ * ```
62
+ */
63
+ class FuiCardActionsComponent {
64
+ /**
65
+ * Alignment of actions within the container
66
+ * @default 'end'
67
+ */
68
+ align = input('end', ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
69
+ /**
70
+ * Whether to remove padding from the actions container
71
+ * @default false
72
+ */
73
+ paddingless = input(false, ...(ngDevMode ? [{ debugName: "paddingless" }] : /* istanbul ignore next */ []));
74
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: FuiCardActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
75
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.6", type: FuiCardActionsComponent, isStandalone: true, selector: "fui-card-actions", inputs: { align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, paddingless: { classPropertyName: "paddingless", publicName: "paddingless", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.fui-card-actions--align-start": "align() === \"start\"", "class.fui-card-actions--align-center": "align() === \"center\"", "class.fui-card-actions--align-end": "align() === \"end\"", "class.fui-card-actions--paddingless": "paddingless()" }, classAttribute: "fui-card-actions" }, ngImport: i0, template: "<ng-content></ng-content>\r\n" });
76
+ }
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: FuiCardActionsComponent, decorators: [{
78
+ type: Component,
79
+ args: [{ selector: 'fui-card-actions', standalone: true, host: {
80
+ class: 'fui-card-actions',
81
+ '[class.fui-card-actions--align-start]': 'align() === "start"',
82
+ '[class.fui-card-actions--align-center]': 'align() === "center"',
83
+ '[class.fui-card-actions--align-end]': 'align() === "end"',
84
+ '[class.fui-card-actions--paddingless]': 'paddingless()',
85
+ }, template: "<ng-content></ng-content>\r\n" }]
86
+ }], propDecorators: { align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], paddingless: [{ type: i0.Input, args: [{ isSignal: true, alias: "paddingless", required: false }] }] } });
87
+
88
+ /**
89
+ * # FuiCard Component
90
+ *
91
+ * A flexible container component following Carbon Design System patterns.
92
+ * Provides a structured layout with optional header, content, and actions sections.
93
+ *
94
+ * ## Features
95
+ * - Multiple variants: elevated, outlined, flat
96
+ * - Configurable padding: none, sm, md, lg, xl
97
+ * - Structured content areas: header, content, actions
98
+ * - Clickable state support with hover animations
99
+ * - Disabled state support
100
+ * - Full accessibility support
101
+ * - Smooth motion transitions
102
+ *
103
+ * ## Usage
104
+ *
105
+ * ### Basic Card
106
+ * ```html
107
+ * <fui-card>
108
+ * <p>Card content goes here</p>
109
+ * </fui-card>
110
+ * ```
111
+ *
112
+ * ### Card with Header and Actions
113
+ * ```html
114
+ * <fui-card variant="outlined">
115
+ * <fui-card-header title="Card Title" subtitle="Optional subtitle">
116
+ * <button fuiButton variant="ghost" size="sm" [iconOnly]="true">
117
+ * <fui-icon name="overflow-menu-vertical"></fui-icon>
118
+ * </button>
119
+ * </fui-card-header>
120
+ *
121
+ * <p>Main card content</p>
122
+ *
123
+ * <fui-card-actions align="end">
124
+ * <button fuiButton variant="secondary" kind="ghost">Cancel</button>
125
+ * <button fuiButton variant="primary">Save</button>
126
+ * </fui-card-actions>
127
+ * </fui-card>
128
+ * ```
129
+ *
130
+ * ### Clickable Card
131
+ * ```html
132
+ * <fui-card [clickable]="true" (click)="handleCardClick()">
133
+ * <p>This entire card is clickable</p>
134
+ * </fui-card>
135
+ * ```
136
+ *
137
+ * @example
138
+ * ```typescript
139
+ * import { FuiCardComponent, FuiCardHeaderComponent, FuiCardActionsComponent } from '@raintonic/formaui/components/card';
140
+ *
141
+ * @Component({
142
+ * standalone: true,
143
+ * imports: [FuiCardComponent, FuiCardHeaderComponent, FuiCardActionsComponent],
144
+ * template: `
145
+ * <fui-card variant="elevated" padding="lg">
146
+ * <fui-card-header title="User Profile"></fui-card-header>
147
+ * <div class="user-info">
148
+ * <p>User details here...</p>
149
+ * </div>
150
+ * <fui-card-actions>
151
+ * <button fuiButton>Edit</button>
152
+ * </fui-card-actions>
153
+ * </fui-card>
154
+ * `
155
+ * })
156
+ * export class UserCardComponent {}
157
+ * ```
158
+ */
159
+ class FuiCardComponent {
160
+ /**
161
+ * Card variant that determines the visual style
162
+ * @default 'outlined'
163
+ */
164
+ variant = input('outlined', ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
165
+ /**
166
+ * Padding applied to card content
167
+ * @default 'lg'
168
+ */
169
+ padding = input('lg', ...(ngDevMode ? [{ debugName: "padding" }] : /* istanbul ignore next */ []));
170
+ /**
171
+ * Whether the card is clickable (adds hover effects and cursor pointer)
172
+ * @default false
173
+ */
174
+ clickable = input(false, ...(ngDevMode ? [{ debugName: "clickable" }] : /* istanbul ignore next */ []));
175
+ /**
176
+ * Whether the card is disabled
177
+ * @default false
178
+ */
179
+ disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
180
+ // Animation state
181
+ hovered = signal(false, ...(ngDevMode ? [{ debugName: "hovered" }] : /* istanbul ignore next */ []));
182
+ liftState = computed(() => this.clickable() && this.hovered() && !this.disabled() ? 'lifted' : 'idle', ...(ngDevMode ? [{ debugName: "liftState" }] : /* istanbul ignore next */ []));
183
+ // Projected content queries and ARIA label linkage
184
+ headerCmp;
185
+ actionsCmp;
186
+ headerId = '';
187
+ // Computed classes
188
+ computedClasses = computed(() => {
189
+ const classes = [`fui-card--${this.variant()}`, `fui-card--padding-${this.padding()}`];
190
+ if (this.clickable()) {
191
+ classes.push('fui-card--clickable');
192
+ }
193
+ if (this.disabled()) {
194
+ classes.push('fui-card--disabled');
195
+ }
196
+ if (this.hovered()) {
197
+ classes.push('fui-card--hovered');
198
+ }
199
+ return classes.join(' ');
200
+ }, ...(ngDevMode ? [{ debugName: "computedClasses" }] : /* istanbul ignore next */ []));
201
+ onMouseEnter() {
202
+ if (this.clickable() && !this.disabled()) {
203
+ this.hovered.set(true);
204
+ }
205
+ }
206
+ onMouseLeave() {
207
+ this.hovered.set(false);
208
+ }
209
+ onKeyDown(event) {
210
+ if (this.clickable() && !this.disabled() && (event.key === 'Enter' || event.key === ' ')) {
211
+ event.preventDefault();
212
+ event.target.click();
213
+ }
214
+ }
215
+ onClick(event) {
216
+ if (this.disabled()) {
217
+ event.stopImmediatePropagation();
218
+ event.preventDefault();
219
+ }
220
+ }
221
+ ngAfterContentInit() {
222
+ this.headerId = this.headerCmp ? this.headerCmp.hostId : '';
223
+ }
224
+ // Check if header content is projected
225
+ get hasHeader() {
226
+ return !!this.headerCmp;
227
+ }
228
+ // Check if actions content is projected
229
+ get hasActions() {
230
+ return !!this.actionsCmp;
231
+ }
232
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: FuiCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
233
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.6", type: FuiCardComponent, isStandalone: true, selector: "fui-card", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, padding: { classPropertyName: "padding", publicName: "padding", isSignal: true, isRequired: false, transformFunction: null }, clickable: { classPropertyName: "clickable", publicName: "clickable", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()", "keydown": "onKeyDown($event)", "click": "onClick($event)" }, properties: { "class": "computedClasses()", "attr.role": "clickable() ? \"button\" : \"region\"", "attr.tabindex": "clickable() && !disabled() ? \"0\" : null", "attr.aria-disabled": "disabled() ? \"true\" : null", "attr.aria-labelledby": "headerId" }, classAttribute: "fui-card" }, queries: [{ propertyName: "headerCmp", first: true, predicate: FuiCardHeaderComponent, descendants: true }, { propertyName: "actionsCmp", first: true, predicate: FuiCardActionsComponent, descendants: true }], ngImport: i0, template: "@if (hasHeader) {\r\n <div class=\"fui-card__header\">\r\n <ng-content select=\"fui-card-header, [rtCardHeader]\"></ng-content>\r\n </div>\r\n}\r\n\r\n<div class=\"fui-card__content\" [class.fui-card__content--no-padding]=\"padding() === 'none'\">\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n@if (hasActions) {\r\n <div class=\"fui-card__actions\">\r\n <ng-content select=\"fui-card-actions, [rtCardActions]\"></ng-content>\r\n </div>\r\n}\r\n", styles: [".fui-text-xs{font-size:var(--fui-font-size-01);font-style:normal;font-weight:var(--fui-font-weight-regular);line-height:var(--fui-line-height-text-xs);letter-spacing:.24px}.fui-text-sm{font-size:var(--fui-font-size-02);font-style:normal;font-weight:var(--fui-font-weight-regular);line-height:var(--fui-line-height-text-sm);letter-spacing:.56px}.fui-text-md{font-size:var(--fui-font-size-03);font-style:normal;font-weight:var(--fui-font-weight-regular);line-height:var(--fui-line-height-text-md)}.fui-text-lg{font-size:var(--fui-font-size-04);font-style:normal;font-weight:var(--fui-font-weight-regular);line-height:var(--fui-line-height-text-lg)}.fui-text-xl{font-size:var(--fui-font-size-05);font-style:normal;font-weight:var(--fui-font-weight-regular);line-height:var(--fui-line-height-text-xl)}.fui-display-xs{font-size:var(--fui-font-size-06);font-style:normal;font-weight:var(--fui-font-weight-regular);line-height:var(--fui-line-height-display-xs);letter-spacing:.48px}.fui-display-sm{font-size:var(--fui-font-size-07);font-style:normal;font-weight:var(--fui-font-weight-regular);line-height:var(--fui-line-height-display-sm)}.fui-display-md{font-size:var(--fui-font-size-08);font-style:normal;font-weight:var(--fui-font-weight-regular);line-height:var(--fui-line-height-display-md)}.fui-display-lg{font-size:var(--fui-font-size-09);font-style:normal;font-weight:var(--fui-font-weight-regular);line-height:var(--fui-line-height-display-lg)}.fui-display-xl{font-size:var(--fui-font-size-10);font-style:normal;font-weight:var(--fui-font-weight-regular);line-height:var(--fui-line-height-display-xl);letter-spacing:-1.2px}.fui-display-2xl{font-size:var(--fui-font-size-11);font-style:normal;font-weight:var(--fui-font-weight-regular);line-height:var(--fui-line-height-display-2xl);letter-spacing:-1.44px}.fui-code-01{font-family:var(--fui-font-family-mono);font-size:var(--fui-font-size-01);line-height:var(--fui-line-height-04)}.fui-code-02{font-family:var(--fui-font-family-mono);font-size:var(--fui-font-size-02);line-height:var(--fui-line-height-04)}.fui-font-light{font-weight:var(--fui-font-weight-light)}.fui-font-regular{font-weight:var(--fui-font-weight-regular)}.fui-font-medium{font-weight:var(--fui-font-weight-medium)}.fui-font-semibold{font-weight:var(--fui-font-weight-semibold)}.fui-font-bold{font-weight:var(--fui-font-weight-bold)}@keyframes fui-skeleton-pulse{0%{opacity:1}50%{opacity:.4}to{opacity:1}}@keyframes fui-spin{to{transform:rotate(360deg)}}@keyframes fui-shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-2px)}20%,40%,60%,80%{transform:translate(2px)}}.fui-motion-fade-in{transition:opacity var(--fui-duration-fast-02) var(--fui-ease-entrance) 0ms}.fui-motion-fade-out{transition:opacity var(--fui-duration-fast-01) var(--fui-ease-exit) 0ms}.fui-motion-slide-in-bottom{transition:transform var(--fui-duration-moderate-01) var(--fui-ease-entrance) 0ms;transform:translateY(0)}.fui-motion-slide-in-bottom.fui-motion-entering{transform:translateY(1rem)}.fui-motion-slide-in-top{transition:transform var(--fui-duration-moderate-01) var(--fui-ease-entrance) 0ms;transform:translateY(0)}.fui-motion-slide-in-top.fui-motion-entering{transform:translateY(-1rem)}.fui-motion-scale-in{transition:transform,opacity var(--fui-duration-moderate-01) var(--fui-ease-entrance) 0ms;transform:scale(1);opacity:1}.fui-motion-scale-in.fui-motion-entering{transform:scale(.95);opacity:0}.fui-no-motion{transition:none!important;animation:none!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@keyframes fui-pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes fui-slide-in{0%{transform:translate(120%)}to{transform:translate(0)}}.fui-slide-in{animation:fui-slide-in var(--fui-duration-moderate-01) var(--fui-ease-entrance)}.fui-card{--fui-card-bg: var(--fui-surface-00);--fui-card-border-color: var(--fui-border-color);--fui-card-header-padding: var(--fui-spacing-05) var(--fui-spacing-06);--fui-card-actions-gap: var(--fui-spacing-03);contain:layout style;display:flex;flex-direction:column;position:relative;border-radius:var(--fui-card-border-radius);background-color:var(--fui-card-bg);box-shadow:var(--fui-shadow-01);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow:hidden;transition:box-shadow,transform,border-color var(--fui-duration-moderate-01) var(--fui-ease-standard) 0ms}.fui-card--elevated{box-shadow:var(--fui-card-shadow);border:none}.fui-card--elevated.fui-card--hovered:not(.fui-card--disabled){box-shadow:var(--fui-card-shadow-hover)}.fui-card--outlined{border:1px solid var(--fui-border-color)}.fui-card--outlined.fui-card--hovered:not(.fui-card--disabled){border-color:var(--fui-border-color-strong)}.fui-card--flat{box-shadow:none;border:1px solid transparent}.fui-card--clickable{cursor:pointer;transition:transform var(--fui-duration-fast-02) var(--fui-ease-standard),box-shadow var(--fui-duration-fast-02) var(--fui-ease-standard)}.fui-card--clickable:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.fui-card--clickable:focus-visible{outline:2px solid var(--fui-primary);outline-offset:2px;transition:all var(--fui-duration-fast-02) var(--fui-ease-standard) 0ms}.fui-card--disabled{opacity:var(--fui-opacity-disabled);cursor:not-allowed}.fui-card--padding-none .fui-card__content{padding:0}.fui-card--padding-sm .fui-card__content{padding:var(--fui-spacing-04)}.fui-card--padding-md .fui-card__content{padding:var(--fui-spacing-05)}.fui-card--padding-lg .fui-card__content{padding:var(--fui-spacing-06)}.fui-card--padding-xl .fui-card__content{padding:var(--fui-spacing-07)}.fui-card__header{border-bottom:1px solid var(--fui-border-color);font-weight:var(--fui-font-weight-medium)}.fui-card__header:empty{display:none}.fui-card__content{flex:1;padding:var(--fui-card-padding)}.fui-card__content--no-padding{padding:0}.fui-card__content>:first-child{margin-top:0}.fui-card__content>:last-child{margin-bottom:0}.fui-card__actions{padding-bottom:0;display:flex;gap:var(--fui-spacing-03);align-items:center;justify-content:flex-end}.fui-card__actions:empty{display:none}.fui-card__actions--align-start{justify-content:flex-start}.fui-card__actions--align-center{justify-content:center}.fui-card__actions--align-end{justify-content:flex-end}.fui-card-header{padding:var(--fui-spacing-05) var(--fui-spacing-06);display:flex;flex-direction:column;gap:var(--fui-spacing-02)}.fui-card-header__title{color:var(--fui-text-primary);margin:0}.fui-card-header__subtitle{font-size:var(--fui-font-size-02);font-weight:var(--fui-font-weight-regular);line-height:var(--fui-line-height-02);color:var(--fui-text-secondary);margin:0}.fui-card-header__content:empty{margin-top:0}.fui-card-actions{display:flex;gap:var(--fui-spacing-03);align-items:center}.fui-card-actions--align-start{justify-content:flex-start}.fui-card-actions--align-center{justify-content:center}.fui-card-actions--align-end{justify-content:flex-end}.fui-card-actions--paddingless{padding:0}.fui-card-actions .fui-button+.fui-button{margin-left:var(--fui-spacing-03)}@media(min-width:576px){.fui-card--padding-sm .fui-card__content{padding:var(--fui-spacing-02)}.fui-card--padding-md .fui-card__content{padding:var(--fui-spacing-04)}.fui-card--padding-lg .fui-card__content{padding:var(--fui-spacing-06)}.fui-card__actions{padding:0 var(--fui-spacing-04) var(--fui-spacing-04);gap:var(--fui-spacing-02);flex-wrap:wrap}}.fui-card--horizontal{flex-direction:row}.fui-card--horizontal .fui-card__content{flex:1}.fui-card--horizontal .fui-card__actions{flex-direction:column;padding:var(--fui-spacing-05)}.fui-card__image{width:100%;height:auto;border-radius:var(--fui-card-border-radius) var(--fui-card-border-radius) 0 0}.fui-card__image:only-child{border-radius:var(--fui-card-border-radius)}.fui-card__media{position:relative;overflow:hidden;border-radius:var(--fui-card-border-radius) var(--fui-card-border-radius) 0 0}.fui-card__media img,.fui-card__media video{width:100%;height:auto;display:block}.fui-card__media:last-child{border-radius:0 0 var(--fui-card-border-radius) var(--fui-card-border-radius)}.fui-card__media:only-child{border-radius:var(--fui-card-border-radius)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
234
+ }
235
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImport: i0, type: FuiCardComponent, decorators: [{
236
+ type: Component,
237
+ args: [{ selector: 'fui-card', standalone: true, imports: [], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
238
+ class: 'fui-card',
239
+ '[class]': 'computedClasses()',
240
+ '[attr.role]': 'clickable() ? "button" : "region"',
241
+ '[attr.tabindex]': 'clickable() && !disabled() ? "0" : null',
242
+ '[attr.aria-disabled]': 'disabled() ? "true" : null',
243
+ '[attr.aria-labelledby]': 'headerId',
244
+ }, template: "@if (hasHeader) {\r\n <div class=\"fui-card__header\">\r\n <ng-content select=\"fui-card-header, [rtCardHeader]\"></ng-content>\r\n </div>\r\n}\r\n\r\n<div class=\"fui-card__content\" [class.fui-card__content--no-padding]=\"padding() === 'none'\">\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n@if (hasActions) {\r\n <div class=\"fui-card__actions\">\r\n <ng-content select=\"fui-card-actions, [rtCardActions]\"></ng-content>\r\n </div>\r\n}\r\n", styles: [".fui-text-xs{font-size:var(--fui-font-size-01);font-style:normal;font-weight:var(--fui-font-weight-regular);line-height:var(--fui-line-height-text-xs);letter-spacing:.24px}.fui-text-sm{font-size:var(--fui-font-size-02);font-style:normal;font-weight:var(--fui-font-weight-regular);line-height:var(--fui-line-height-text-sm);letter-spacing:.56px}.fui-text-md{font-size:var(--fui-font-size-03);font-style:normal;font-weight:var(--fui-font-weight-regular);line-height:var(--fui-line-height-text-md)}.fui-text-lg{font-size:var(--fui-font-size-04);font-style:normal;font-weight:var(--fui-font-weight-regular);line-height:var(--fui-line-height-text-lg)}.fui-text-xl{font-size:var(--fui-font-size-05);font-style:normal;font-weight:var(--fui-font-weight-regular);line-height:var(--fui-line-height-text-xl)}.fui-display-xs{font-size:var(--fui-font-size-06);font-style:normal;font-weight:var(--fui-font-weight-regular);line-height:var(--fui-line-height-display-xs);letter-spacing:.48px}.fui-display-sm{font-size:var(--fui-font-size-07);font-style:normal;font-weight:var(--fui-font-weight-regular);line-height:var(--fui-line-height-display-sm)}.fui-display-md{font-size:var(--fui-font-size-08);font-style:normal;font-weight:var(--fui-font-weight-regular);line-height:var(--fui-line-height-display-md)}.fui-display-lg{font-size:var(--fui-font-size-09);font-style:normal;font-weight:var(--fui-font-weight-regular);line-height:var(--fui-line-height-display-lg)}.fui-display-xl{font-size:var(--fui-font-size-10);font-style:normal;font-weight:var(--fui-font-weight-regular);line-height:var(--fui-line-height-display-xl);letter-spacing:-1.2px}.fui-display-2xl{font-size:var(--fui-font-size-11);font-style:normal;font-weight:var(--fui-font-weight-regular);line-height:var(--fui-line-height-display-2xl);letter-spacing:-1.44px}.fui-code-01{font-family:var(--fui-font-family-mono);font-size:var(--fui-font-size-01);line-height:var(--fui-line-height-04)}.fui-code-02{font-family:var(--fui-font-family-mono);font-size:var(--fui-font-size-02);line-height:var(--fui-line-height-04)}.fui-font-light{font-weight:var(--fui-font-weight-light)}.fui-font-regular{font-weight:var(--fui-font-weight-regular)}.fui-font-medium{font-weight:var(--fui-font-weight-medium)}.fui-font-semibold{font-weight:var(--fui-font-weight-semibold)}.fui-font-bold{font-weight:var(--fui-font-weight-bold)}@keyframes fui-skeleton-pulse{0%{opacity:1}50%{opacity:.4}to{opacity:1}}@keyframes fui-spin{to{transform:rotate(360deg)}}@keyframes fui-shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-2px)}20%,40%,60%,80%{transform:translate(2px)}}.fui-motion-fade-in{transition:opacity var(--fui-duration-fast-02) var(--fui-ease-entrance) 0ms}.fui-motion-fade-out{transition:opacity var(--fui-duration-fast-01) var(--fui-ease-exit) 0ms}.fui-motion-slide-in-bottom{transition:transform var(--fui-duration-moderate-01) var(--fui-ease-entrance) 0ms;transform:translateY(0)}.fui-motion-slide-in-bottom.fui-motion-entering{transform:translateY(1rem)}.fui-motion-slide-in-top{transition:transform var(--fui-duration-moderate-01) var(--fui-ease-entrance) 0ms;transform:translateY(0)}.fui-motion-slide-in-top.fui-motion-entering{transform:translateY(-1rem)}.fui-motion-scale-in{transition:transform,opacity var(--fui-duration-moderate-01) var(--fui-ease-entrance) 0ms;transform:scale(1);opacity:1}.fui-motion-scale-in.fui-motion-entering{transform:scale(.95);opacity:0}.fui-no-motion{transition:none!important;animation:none!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@keyframes fui-pulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes fui-slide-in{0%{transform:translate(120%)}to{transform:translate(0)}}.fui-slide-in{animation:fui-slide-in var(--fui-duration-moderate-01) var(--fui-ease-entrance)}.fui-card{--fui-card-bg: var(--fui-surface-00);--fui-card-border-color: var(--fui-border-color);--fui-card-header-padding: var(--fui-spacing-05) var(--fui-spacing-06);--fui-card-actions-gap: var(--fui-spacing-03);contain:layout style;display:flex;flex-direction:column;position:relative;border-radius:var(--fui-card-border-radius);background-color:var(--fui-card-bg);box-shadow:var(--fui-shadow-01);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow:hidden;transition:box-shadow,transform,border-color var(--fui-duration-moderate-01) var(--fui-ease-standard) 0ms}.fui-card--elevated{box-shadow:var(--fui-card-shadow);border:none}.fui-card--elevated.fui-card--hovered:not(.fui-card--disabled){box-shadow:var(--fui-card-shadow-hover)}.fui-card--outlined{border:1px solid var(--fui-border-color)}.fui-card--outlined.fui-card--hovered:not(.fui-card--disabled){border-color:var(--fui-border-color-strong)}.fui-card--flat{box-shadow:none;border:1px solid transparent}.fui-card--clickable{cursor:pointer;transition:transform var(--fui-duration-fast-02) var(--fui-ease-standard),box-shadow var(--fui-duration-fast-02) var(--fui-ease-standard)}.fui-card--clickable:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.fui-card--clickable:focus-visible{outline:2px solid var(--fui-primary);outline-offset:2px;transition:all var(--fui-duration-fast-02) var(--fui-ease-standard) 0ms}.fui-card--disabled{opacity:var(--fui-opacity-disabled);cursor:not-allowed}.fui-card--padding-none .fui-card__content{padding:0}.fui-card--padding-sm .fui-card__content{padding:var(--fui-spacing-04)}.fui-card--padding-md .fui-card__content{padding:var(--fui-spacing-05)}.fui-card--padding-lg .fui-card__content{padding:var(--fui-spacing-06)}.fui-card--padding-xl .fui-card__content{padding:var(--fui-spacing-07)}.fui-card__header{border-bottom:1px solid var(--fui-border-color);font-weight:var(--fui-font-weight-medium)}.fui-card__header:empty{display:none}.fui-card__content{flex:1;padding:var(--fui-card-padding)}.fui-card__content--no-padding{padding:0}.fui-card__content>:first-child{margin-top:0}.fui-card__content>:last-child{margin-bottom:0}.fui-card__actions{padding-bottom:0;display:flex;gap:var(--fui-spacing-03);align-items:center;justify-content:flex-end}.fui-card__actions:empty{display:none}.fui-card__actions--align-start{justify-content:flex-start}.fui-card__actions--align-center{justify-content:center}.fui-card__actions--align-end{justify-content:flex-end}.fui-card-header{padding:var(--fui-spacing-05) var(--fui-spacing-06);display:flex;flex-direction:column;gap:var(--fui-spacing-02)}.fui-card-header__title{color:var(--fui-text-primary);margin:0}.fui-card-header__subtitle{font-size:var(--fui-font-size-02);font-weight:var(--fui-font-weight-regular);line-height:var(--fui-line-height-02);color:var(--fui-text-secondary);margin:0}.fui-card-header__content:empty{margin-top:0}.fui-card-actions{display:flex;gap:var(--fui-spacing-03);align-items:center}.fui-card-actions--align-start{justify-content:flex-start}.fui-card-actions--align-center{justify-content:center}.fui-card-actions--align-end{justify-content:flex-end}.fui-card-actions--paddingless{padding:0}.fui-card-actions .fui-button+.fui-button{margin-left:var(--fui-spacing-03)}@media(min-width:576px){.fui-card--padding-sm .fui-card__content{padding:var(--fui-spacing-02)}.fui-card--padding-md .fui-card__content{padding:var(--fui-spacing-04)}.fui-card--padding-lg .fui-card__content{padding:var(--fui-spacing-06)}.fui-card__actions{padding:0 var(--fui-spacing-04) var(--fui-spacing-04);gap:var(--fui-spacing-02);flex-wrap:wrap}}.fui-card--horizontal{flex-direction:row}.fui-card--horizontal .fui-card__content{flex:1}.fui-card--horizontal .fui-card__actions{flex-direction:column;padding:var(--fui-spacing-05)}.fui-card__image{width:100%;height:auto;border-radius:var(--fui-card-border-radius) var(--fui-card-border-radius) 0 0}.fui-card__image:only-child{border-radius:var(--fui-card-border-radius)}.fui-card__media{position:relative;overflow:hidden;border-radius:var(--fui-card-border-radius) var(--fui-card-border-radius) 0 0}.fui-card__media img,.fui-card__media video{width:100%;height:auto;display:block}.fui-card__media:last-child{border-radius:0 0 var(--fui-card-border-radius) var(--fui-card-border-radius)}.fui-card__media:only-child{border-radius:var(--fui-card-border-radius)}\n"] }]
245
+ }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], padding: [{ type: i0.Input, args: [{ isSignal: true, alias: "padding", required: false }] }], clickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clickable", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], headerCmp: [{
246
+ type: ContentChild,
247
+ args: [FuiCardHeaderComponent]
248
+ }], actionsCmp: [{
249
+ type: ContentChild,
250
+ args: [FuiCardActionsComponent]
251
+ }], onMouseEnter: [{
252
+ type: HostListener,
253
+ args: ['mouseenter']
254
+ }], onMouseLeave: [{
255
+ type: HostListener,
256
+ args: ['mouseleave']
257
+ }], onKeyDown: [{
258
+ type: HostListener,
259
+ args: ['keydown', ['$event']]
260
+ }], onClick: [{
261
+ type: HostListener,
262
+ args: ['click', ['$event']]
263
+ }] } });
264
+
265
+ /**
266
+ * Generated bundle index. Do not edit.
267
+ */
268
+
269
+ export { FuiCardActionsComponent, FuiCardComponent, FuiCardHeaderComponent };
270
+ //# sourceMappingURL=raintonic-formaui-components-card.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"raintonic-formaui-components-card.mjs","sources":["../../../lib/components/card/card-header.component.ts","../../../lib/components/card/card-header.component.html","../../../lib/components/card/card-actions.component.ts","../../../lib/components/card/card-actions.component.html","../../../lib/components/card/card.component.ts","../../../lib/components/card/card.component.html","../../../lib/components/card/raintonic-formaui-components-card.ts"],"sourcesContent":["import { Component, input, InputSignal } from '@angular/core';\n\n/**\n * # FuiCardHeader Component\n *\n * Header section for cards with optional title, subtitle, and additional content.\n *\n * ## Usage\n * ```html\n * <fui-card-header title=\"Card Title\" subtitle=\"Optional subtitle\">\n * <button fuiButton variant=\"ghost\">\n * <fui-icon name=\"dots-three\"></fui-icon>\n * </button>\n * </fui-card-header>\n * ```\n */\n@Component({\n selector: 'fui-card-header',\n standalone: true,\n imports: [],\n templateUrl: './card-header.component.html',\n host: {\n class: 'fui-card-header',\n },\n})\nexport class FuiCardHeaderComponent {\n /**\n * Unique id for linking with aria-labelledby from the card\n */\n readonly hostId = `fui-card-header-${Math.random().toString(36).slice(2)}`;\n\n /**\n * Main title text for the card header\n */\n readonly title: InputSignal<string | undefined> = input<string>();\n\n /**\n * Optional subtitle text for the card header\n */\n readonly subtitle: InputSignal<string | undefined> = input<string>();\n}\n","@if (title()) {\r\n <div class=\"fui-card-header__title\" [attr.id]=\"hostId\">\r\n {{ title() }}\r\n </div>\r\n}\r\n@if (subtitle()) {\r\n <div class=\"fui-card-header__subtitle\">\r\n {{ subtitle() }}\r\n </div>\r\n}\r\n<div class=\"fui-card-header__content\">\r\n <ng-content></ng-content>\r\n</div>\r\n","import { Component, input, InputSignal } from '@angular/core';\n\n/**\n * # FuiCardActions Component\n *\n * Actions section for cards, typically containing buttons or other interactive elements.\n *\n * ## Usage\n * ```html\n * <fui-card-actions align=\"end\">\n * <button fuiButton variant=\"tertiary\">Cancel</button>\n * <button fuiButton variant=\"primary\" color=\"primary\">Save</button>\n * </fui-card-actions>\n * ```\n *\n * ### Paddingless Actions\n * ```html\n * <fui-card-actions align=\"start\" paddingless=\"true\">\n * <button fuiButton variant=\"ghost\">\n * <fui-icon name=\"heart\"></fui-icon>\n * </button>\n * </fui-card-actions>\n * ```\n */\n@Component({\n selector: 'fui-card-actions',\n standalone: true,\n templateUrl: './card-actions.component.html',\n host: {\n class: 'fui-card-actions',\n '[class.fui-card-actions--align-start]': 'align() === \"start\"',\n '[class.fui-card-actions--align-center]': 'align() === \"center\"',\n '[class.fui-card-actions--align-end]': 'align() === \"end\"',\n '[class.fui-card-actions--paddingless]': 'paddingless()',\n },\n})\nexport class FuiCardActionsComponent {\n /**\n * Alignment of actions within the container\n * @default 'end'\n */\n readonly align: InputSignal<'start' | 'center' | 'end'> = input<'start' | 'center' | 'end'>('end');\n\n /**\n * Whether to remove padding from the actions container\n * @default false\n */\n readonly paddingless: InputSignal<boolean> = input(false);\n}\n","<ng-content></ng-content>\r\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n ContentChild,\n HostListener,\n input,\n InputSignal,\n Signal,\n signal,\n ViewEncapsulation,\n WritableSignal,\n} from '@angular/core';\n\nimport { FuiCardHeaderComponent } from './card-header.component';\nimport { FuiCardActionsComponent } from './card-actions.component';\n\n/**\n * Available card variants following Carbon Design System patterns\n */\nexport type FuiCardVariant = 'elevated' | 'outlined' | 'flat';\n\n/**\n * Available padding options for card content\n */\nexport type FuiCardPadding = 'none' | 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * # FuiCard Component\n *\n * A flexible container component following Carbon Design System patterns.\n * Provides a structured layout with optional header, content, and actions sections.\n *\n * ## Features\n * - Multiple variants: elevated, outlined, flat\n * - Configurable padding: none, sm, md, lg, xl\n * - Structured content areas: header, content, actions\n * - Clickable state support with hover animations\n * - Disabled state support\n * - Full accessibility support\n * - Smooth motion transitions\n *\n * ## Usage\n *\n * ### Basic Card\n * ```html\n * <fui-card>\n * <p>Card content goes here</p>\n * </fui-card>\n * ```\n *\n * ### Card with Header and Actions\n * ```html\n * <fui-card variant=\"outlined\">\n * <fui-card-header title=\"Card Title\" subtitle=\"Optional subtitle\">\n * <button fuiButton variant=\"ghost\" size=\"sm\" [iconOnly]=\"true\">\n * <fui-icon name=\"overflow-menu-vertical\"></fui-icon>\n * </button>\n * </fui-card-header>\n *\n * <p>Main card content</p>\n *\n * <fui-card-actions align=\"end\">\n * <button fuiButton variant=\"secondary\" kind=\"ghost\">Cancel</button>\n * <button fuiButton variant=\"primary\">Save</button>\n * </fui-card-actions>\n * </fui-card>\n * ```\n *\n * ### Clickable Card\n * ```html\n * <fui-card [clickable]=\"true\" (click)=\"handleCardClick()\">\n * <p>This entire card is clickable</p>\n * </fui-card>\n * ```\n *\n * @example\n * ```typescript\n * import { FuiCardComponent, FuiCardHeaderComponent, FuiCardActionsComponent } from '@raintonic/formaui/components/card';\n *\n * @Component({\n * standalone: true,\n * imports: [FuiCardComponent, FuiCardHeaderComponent, FuiCardActionsComponent],\n * template: `\n * <fui-card variant=\"elevated\" padding=\"lg\">\n * <fui-card-header title=\"User Profile\"></fui-card-header>\n * <div class=\"user-info\">\n * <p>User details here...</p>\n * </div>\n * <fui-card-actions>\n * <button fuiButton>Edit</button>\n * </fui-card-actions>\n * </fui-card>\n * `\n * })\n * export class UserCardComponent {}\n * ```\n */\n@Component({\n selector: 'fui-card',\n standalone: true,\n imports: [],\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'fui-card',\n '[class]': 'computedClasses()',\n '[attr.role]': 'clickable() ? \"button\" : \"region\"',\n '[attr.tabindex]': 'clickable() && !disabled() ? \"0\" : null',\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\n '[attr.aria-labelledby]': 'headerId',\n },\n})\nexport class FuiCardComponent implements AfterContentInit {\n /**\n * Card variant that determines the visual style\n * @default 'outlined'\n */\n readonly variant: InputSignal<FuiCardVariant> = input<FuiCardVariant>('outlined');\n\n /**\n * Padding applied to card content\n * @default 'lg'\n */\n readonly padding: InputSignal<FuiCardPadding> = input<FuiCardPadding>('lg');\n\n /**\n * Whether the card is clickable (adds hover effects and cursor pointer)\n * @default false\n */\n readonly clickable: InputSignal<boolean> = input(false);\n\n /**\n * Whether the card is disabled\n * @default false\n */\n readonly disabled: InputSignal<boolean> = input(false);\n\n // Animation state\n readonly hovered: WritableSignal<boolean> = signal(false);\n readonly liftState: Signal<'idle' | 'lifted'> = computed(() =>\n this.clickable() && this.hovered() && !this.disabled() ? 'lifted' : 'idle',\n );\n\n // Projected content queries and ARIA label linkage\n @ContentChild(FuiCardHeaderComponent) headerCmp?: FuiCardHeaderComponent;\n @ContentChild(FuiCardActionsComponent) actionsCmp?: FuiCardActionsComponent;\n\n headerId = '';\n\n // Computed classes\n readonly computedClasses: Signal<string> = computed(() => {\n const classes: string[] = [`fui-card--${this.variant()}`, `fui-card--padding-${this.padding()}`];\n\n if (this.clickable()) {\n classes.push('fui-card--clickable');\n }\n\n if (this.disabled()) {\n classes.push('fui-card--disabled');\n }\n\n if (this.hovered()) {\n classes.push('fui-card--hovered');\n }\n\n return classes.join(' ');\n });\n\n @HostListener('mouseenter')\n onMouseEnter(): void {\n if (this.clickable() && !this.disabled()) {\n this.hovered.set(true);\n }\n }\n\n @HostListener('mouseleave')\n onMouseLeave(): void {\n this.hovered.set(false);\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent): void {\n if (this.clickable() && !this.disabled() && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault();\n (event.target as HTMLElement).click();\n }\n }\n\n @HostListener('click', ['$event'])\n onClick(event: MouseEvent): void {\n if (this.disabled()) {\n event.stopImmediatePropagation();\n event.preventDefault();\n }\n }\n\n ngAfterContentInit(): void {\n this.headerId = this.headerCmp ? this.headerCmp.hostId : '';\n }\n\n // Check if header content is projected\n get hasHeader(): boolean {\n return !!this.headerCmp;\n }\n\n // Check if actions content is projected\n get hasActions(): boolean {\n return !!this.actionsCmp;\n }\n}\n","@if (hasHeader) {\r\n <div class=\"fui-card__header\">\r\n <ng-content select=\"fui-card-header, [rtCardHeader]\"></ng-content>\r\n </div>\r\n}\r\n\r\n<div class=\"fui-card__content\" [class.fui-card__content--no-padding]=\"padding() === 'none'\">\r\n <ng-content></ng-content>\r\n</div>\r\n\r\n@if (hasActions) {\r\n <div class=\"fui-card__actions\">\r\n <ng-content select=\"fui-card-actions, [rtCardActions]\"></ng-content>\r\n </div>\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}