@raintonic/formaui 0.9.0 → 0.9.3

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 (114) hide show
  1. package/fesm2022/raintonic-formaui-components-accordion.mjs +4 -4
  2. package/fesm2022/raintonic-formaui-components-accordion.mjs.map +1 -1
  3. package/fesm2022/raintonic-formaui-components-alert.mjs +2 -2
  4. package/fesm2022/raintonic-formaui-components-alert.mjs.map +1 -1
  5. package/fesm2022/raintonic-formaui-components-autocomplete.mjs +2 -2
  6. package/fesm2022/raintonic-formaui-components-autocomplete.mjs.map +1 -1
  7. package/fesm2022/raintonic-formaui-components-avatar.mjs +3 -3
  8. package/fesm2022/raintonic-formaui-components-avatar.mjs.map +1 -1
  9. package/fesm2022/raintonic-formaui-components-badge.mjs +2 -2
  10. package/fesm2022/raintonic-formaui-components-badge.mjs.map +1 -1
  11. package/fesm2022/raintonic-formaui-components-button-group.mjs +2 -2
  12. package/fesm2022/raintonic-formaui-components-button-group.mjs.map +1 -1
  13. package/fesm2022/raintonic-formaui-components-card.mjs +78 -8
  14. package/fesm2022/raintonic-formaui-components-card.mjs.map +1 -1
  15. package/fesm2022/raintonic-formaui-components-checkbox.mjs +2 -2
  16. package/fesm2022/raintonic-formaui-components-checkbox.mjs.map +1 -1
  17. package/fesm2022/raintonic-formaui-components-chip.mjs +2 -2
  18. package/fesm2022/raintonic-formaui-components-chip.mjs.map +1 -1
  19. package/fesm2022/raintonic-formaui-components-data-table.mjs +80 -11
  20. package/fesm2022/raintonic-formaui-components-data-table.mjs.map +1 -1
  21. package/fesm2022/raintonic-formaui-components-date-picker.mjs +4 -4
  22. package/fesm2022/raintonic-formaui-components-date-picker.mjs.map +1 -1
  23. package/fesm2022/raintonic-formaui-components-divider.mjs +2 -2
  24. package/fesm2022/raintonic-formaui-components-divider.mjs.map +1 -1
  25. package/fesm2022/raintonic-formaui-components-drawer.mjs +37 -6
  26. package/fesm2022/raintonic-formaui-components-drawer.mjs.map +1 -1
  27. package/fesm2022/raintonic-formaui-components-dropdown-menu.mjs +2 -2
  28. package/fesm2022/raintonic-formaui-components-dropdown-menu.mjs.map +1 -1
  29. package/fesm2022/raintonic-formaui-components-dual-tier-navigation.mjs +1 -1
  30. package/fesm2022/raintonic-formaui-components-dual-tier-navigation.mjs.map +1 -1
  31. package/fesm2022/raintonic-formaui-components-empty-state.mjs +2 -2
  32. package/fesm2022/raintonic-formaui-components-empty-state.mjs.map +1 -1
  33. package/fesm2022/raintonic-formaui-components-file-upload.mjs +2 -2
  34. package/fesm2022/raintonic-formaui-components-file-upload.mjs.map +1 -1
  35. package/fesm2022/raintonic-formaui-components-form-field.mjs +21 -2
  36. package/fesm2022/raintonic-formaui-components-form-field.mjs.map +1 -1
  37. package/fesm2022/raintonic-formaui-components-input.mjs +14 -0
  38. package/fesm2022/raintonic-formaui-components-input.mjs.map +1 -1
  39. package/fesm2022/raintonic-formaui-components-list.mjs +4 -4
  40. package/fesm2022/raintonic-formaui-components-list.mjs.map +1 -1
  41. package/fesm2022/raintonic-formaui-components-number-input.mjs +2 -2
  42. package/fesm2022/raintonic-formaui-components-number-input.mjs.map +1 -1
  43. package/fesm2022/raintonic-formaui-components-paginator.mjs +2 -2
  44. package/fesm2022/raintonic-formaui-components-paginator.mjs.map +1 -1
  45. package/fesm2022/raintonic-formaui-components-password-input.mjs +2 -2
  46. package/fesm2022/raintonic-formaui-components-password-input.mjs.map +1 -1
  47. package/fesm2022/raintonic-formaui-components-popover.mjs +2 -2
  48. package/fesm2022/raintonic-formaui-components-popover.mjs.map +1 -1
  49. package/fesm2022/raintonic-formaui-components-progressbar.mjs +2 -2
  50. package/fesm2022/raintonic-formaui-components-progressbar.mjs.map +1 -1
  51. package/fesm2022/raintonic-formaui-components-radio.mjs +4 -4
  52. package/fesm2022/raintonic-formaui-components-radio.mjs.map +1 -1
  53. package/fesm2022/raintonic-formaui-components-select.mjs +15 -7
  54. package/fesm2022/raintonic-formaui-components-select.mjs.map +1 -1
  55. package/fesm2022/raintonic-formaui-components-side-panel.mjs +40 -6
  56. package/fesm2022/raintonic-formaui-components-side-panel.mjs.map +1 -1
  57. package/fesm2022/raintonic-formaui-components-sidebar-nav-menu.mjs +4 -4
  58. package/fesm2022/raintonic-formaui-components-sidebar-nav-menu.mjs.map +1 -1
  59. package/fesm2022/raintonic-formaui-components-slider.mjs +2 -2
  60. package/fesm2022/raintonic-formaui-components-slider.mjs.map +1 -1
  61. package/fesm2022/raintonic-formaui-components-spinner.mjs +2 -2
  62. package/fesm2022/raintonic-formaui-components-spinner.mjs.map +1 -1
  63. package/fesm2022/raintonic-formaui-components-stepper.mjs +2 -2
  64. package/fesm2022/raintonic-formaui-components-stepper.mjs.map +1 -1
  65. package/fesm2022/raintonic-formaui-components-tab.mjs +2 -2
  66. package/fesm2022/raintonic-formaui-components-tab.mjs.map +1 -1
  67. package/fesm2022/raintonic-formaui-components-time-picker.mjs +2 -2
  68. package/fesm2022/raintonic-formaui-components-time-picker.mjs.map +1 -1
  69. package/fesm2022/raintonic-formaui-components-toggle-group.mjs +19 -8
  70. package/fesm2022/raintonic-formaui-components-toggle-group.mjs.map +1 -1
  71. package/fesm2022/raintonic-formaui-components-toolbar.mjs +10 -4
  72. package/fesm2022/raintonic-formaui-components-toolbar.mjs.map +1 -1
  73. package/fesm2022/raintonic-formaui-components-tooltip.mjs +102 -8
  74. package/fesm2022/raintonic-formaui-components-tooltip.mjs.map +1 -1
  75. package/fesm2022/raintonic-formaui-components-topbar.mjs +2 -2
  76. package/fesm2022/raintonic-formaui-components-topbar.mjs.map +1 -1
  77. package/fesm2022/raintonic-formaui-components-tree-select.mjs +2 -2
  78. package/fesm2022/raintonic-formaui-components-tree-select.mjs.map +1 -1
  79. package/fesm2022/raintonic-formaui-components-tree-table.mjs +2 -2
  80. package/fesm2022/raintonic-formaui-components-tree-table.mjs.map +1 -1
  81. package/fesm2022/raintonic-formaui-components-tree.mjs +4 -4
  82. package/fesm2022/raintonic-formaui-components-tree.mjs.map +1 -1
  83. package/fesm2022/raintonic-formaui-services-dialog.mjs +8 -4
  84. package/fesm2022/raintonic-formaui-services-dialog.mjs.map +1 -1
  85. package/fesm2022/raintonic-formaui.mjs +1 -1
  86. package/fesm2022/raintonic-formaui.mjs.map +1 -1
  87. package/llms-full.txt +72 -27
  88. package/package.json +1 -1
  89. package/styles/generated/_tokens.scss +9 -9
  90. package/styles/partials/components/_dialog.scss +24 -0
  91. package/styles/styles.css +24 -9
  92. package/types/raintonic-formaui-components-card.d.ts +46 -2
  93. package/types/raintonic-formaui-components-card.d.ts.map +1 -1
  94. package/types/raintonic-formaui-components-data-table.d.ts +50 -3
  95. package/types/raintonic-formaui-components-data-table.d.ts.map +1 -1
  96. package/types/raintonic-formaui-components-drawer.d.ts +20 -2
  97. package/types/raintonic-formaui-components-drawer.d.ts.map +1 -1
  98. package/types/raintonic-formaui-components-form-field.d.ts +10 -0
  99. package/types/raintonic-formaui-components-form-field.d.ts.map +1 -1
  100. package/types/raintonic-formaui-components-input.d.ts +9 -0
  101. package/types/raintonic-formaui-components-input.d.ts.map +1 -1
  102. package/types/raintonic-formaui-components-select.d.ts +8 -1
  103. package/types/raintonic-formaui-components-select.d.ts.map +1 -1
  104. package/types/raintonic-formaui-components-side-panel.d.ts +24 -2
  105. package/types/raintonic-formaui-components-side-panel.d.ts.map +1 -1
  106. package/types/raintonic-formaui-components-toggle-group.d.ts +1 -1
  107. package/types/raintonic-formaui-components-toggle-group.d.ts.map +1 -1
  108. package/types/raintonic-formaui-components-toolbar.d.ts +5 -1
  109. package/types/raintonic-formaui-components-toolbar.d.ts.map +1 -1
  110. package/types/raintonic-formaui-components-tooltip.d.ts +55 -4
  111. package/types/raintonic-formaui-components-tooltip.d.ts.map +1 -1
  112. package/types/raintonic-formaui-services-dialog.d.ts +12 -1
  113. package/types/raintonic-formaui-services-dialog.d.ts.map +1 -1
  114. package/types/raintonic-formaui.d.ts +1 -1
package/llms-full.txt CHANGED
@@ -358,6 +358,12 @@ A container for grouping related content with an optional header and actions slo
358
358
  |------|------|---------|----------|
359
359
  | align | 'start' \| 'center' \| 'end' | 'end' | no |
360
360
 
361
+ #### FuiCardActionsDirective
362
+
363
+ - **Selector**: `[fuiCardActions]`
364
+
365
+ No public inputs or outputs.
366
+
361
367
  #### FuiCardHeaderComponent
362
368
 
363
369
  - **Selector**: `fui-card-header`
@@ -369,6 +375,12 @@ A container for grouping related content with an optional header and actions slo
369
375
  | title | string | - | no |
370
376
  | subtitle | string | - | no |
371
377
 
378
+ #### FuiCardHeaderDirective
379
+
380
+ - **Selector**: `[fuiCardHeader]`
381
+
382
+ No public inputs or outputs.
383
+
372
384
  ---
373
385
 
374
386
  ## checkbox
@@ -514,6 +526,7 @@ A feature-rich data grid for tabular data: column configuration, sticky columns,
514
526
  | sortChange | { field: string; direction: 'ASC' \| 'DESC' } \| null |
515
527
  | filtersChange | ColumnFilter[] |
516
528
  | rowDblClick | T |
529
+ | rowClick | T |
517
530
 
518
531
  ### Usage
519
532
 
@@ -536,7 +549,7 @@ rows: User[] = [ /* ... */ ];
536
549
  ```
537
550
 
538
551
  ```html
539
- <!-- Full: sort, filters, double-click handler, custom trackBy -->
552
+ <!-- Full: sort, filters, click + double-click handlers, custom trackBy -->
540
553
  <fui-advanced-data-table
541
554
  [config]="tableConfig"
542
555
  [data]="rows()"
@@ -544,9 +557,13 @@ rows: User[] = [ /* ... */ ];
544
557
  [filters]="activeFilters()"
545
558
  [trackBy]="trackById"
546
559
  [enableRowHighlight]="true"
560
+ [enableDblClick]="true"
561
+ [rowClickable]="true"
547
562
  (sortChange)="currentSort.set($event)"
548
563
  (filtersChange)="activeFilters.set($event)"
549
- (rowDblClick)="openDetails($event)" />
564
+ (rowClick)="selectRow($event)"
565
+ (rowDblClick)="openDetails($event)"
566
+ />
550
567
  ```
551
568
 
552
569
  ```typescript
@@ -560,6 +577,7 @@ trackById = (_: number, row: User) => row.id;
560
577
  - **Integration:** Pass `config: AdvancedDataTableConfig` (required) and `data: T[]`. Column types drive cell rendering — `'label'` columns render a `fui-badge` using the per-column `labels` config.
561
578
  - **Sticky columns:** `stickyColumnStart: true` on consecutive leading columns pins them at the start; `stickyColumnEnd: true` on consecutive trailing columns pins them at the end. The first non-sticky column breaks the streak.
562
579
  - **Sort/filter:** State is fully controlled — the component emits `sortChange` and `filtersChange` but does not mutate `data`. Apply sort and filter server-side or client-side in the parent.
580
+ - **Row clicks:** `rowClick` emits the row on single-click, `rowDblClick` on double-click. By default `rowClick` fires **instantly** (no lag). Set `enableDblClick: true` when the table also handles double-clicks — single clicks are then debounced ~250ms so a double-click resolves to `rowDblClick` only, without also firing `rowClick`. Set `rowClickable: true` to show a pointer cursor on single-click tables (`enableRowHighlight` already implies the cursor).
563
581
  - **Row selection:** Enable via `config.areRowsSelectable: true`. Selected indices are tracked internally; use `enableRowHighlight` separately for click-to-highlight without selection checkboxes.
564
582
  - Performance: pass a stable `[trackBy]` for large datasets — the default tracks by index, which invalidates rows when the array is reordered.
565
583
 
@@ -747,17 +765,31 @@ A panel that slides in from an edge of the screen to present complementary conte
747
765
  <nav>...</nav>
748
766
  </fui-drawer>
749
767
  <button fuiButton (click)="drawer.toggle()">Toggle</button>
768
+
769
+ <!-- Custom title markup in the header -->
770
+ <fui-drawer [opened]="isOpen" title="Details">
771
+ <span fuiDrawerTitle>Custom <em>title</em> markup</span>
772
+ <p>Drawer body content goes here.</p>
773
+ </fui-drawer>
750
774
  ```
751
775
 
752
776
  ### Notes
753
777
 
754
778
  - **Accessibility:** Renders as `role="dialog"` and sets `aria-modal="true"` while open. The visible `title` is exposed as `aria-label` unless `ariaLabel`/`ariaLabelledBy` are provided. Implements a focus trap (Tab/Shift+Tab cycle within the panel), focuses the first tabbable element on open, and restores focus to the previously focused element on close.
755
779
  - **Open state:** `opened` is an input with matching `openedChange` output (two-way `[(opened)]`). The component also exposes imperative `open()`, `close()`, and `toggle()` methods, and emits `closed` when dismissed.
756
- - **Content projection:** Default `<ng-content>` fills the body; project a footer via the `drawerFooter` attribute. The header (title + close button) renders automatically when `title` or `showCloseButton` is set.
780
+ - **Content projection:** Default `<ng-content>` fills the body; project a footer via the `drawerFooter` attribute, and custom title markup via the `fuiDrawerTitle` attribute. The header (title + close button) renders automatically when `title`, `showCloseButton`, or a projected `fuiDrawerTitle` is present. A projected `fuiDrawerTitle` visually replaces the string `title`; keep the `title` input set so it still provides the accessible name.
757
781
  - **Dismissal:** `closeOnBackdropClick` (default `true`) closes on backdrop click and `closeOnEsc` (default `true`) closes on Escape. `hasBackdrop` toggles the backdrop element.
758
782
  - **Sizing:** `size` accepts named tokens `sm` (320px), `md` (480px, default), `lg` (640px), `full` (100%), or any custom CSS length string applied along the drawer's main axis.
759
783
  - **i18n:** The close button label comes from `FuiDrawerIntl.closeAriaLabel` ("Close drawer"), overridable via the injectable intl service.
760
784
 
785
+ ### Sub-components
786
+
787
+ #### FuiDrawerTitle
788
+
789
+ - **Selector**: `[fuiDrawerTitle]`
790
+
791
+ No public inputs or outputs.
792
+
761
793
  ---
762
794
 
763
795
  ## dropdown-menu
@@ -1493,7 +1525,7 @@ No public inputs or outputs.
1493
1525
 
1494
1526
  ## side-panel
1495
1527
 
1496
- A slide-in side panel overlay with optional backdrop, focus trapping, and keyboard dismiss. Renders from the right edge of the viewport with configurable width and top offset.
1528
+ A slide-in side panel overlay with optional backdrop, focus trapping, and keyboard dismiss. Renders from the right edge of the viewport with configurable width and top offset. A projected `fuiSidePanelTitle` element visually replaces the string `title` in the header; the `title` input still provides the accessible name via `aria-label`.
1497
1529
 
1498
1530
  - **Import**: `import { FuiSidePanelComponent } from 'formaui/components/side-panel'`
1499
1531
  - **Selector**: `fui-side-panel`
@@ -1511,6 +1543,14 @@ A slide-in side panel overlay with optional backdrop, focus trapping, and keyboa
1511
1543
  |------|------|
1512
1544
  | closed | void |
1513
1545
 
1546
+ ### Sub-components
1547
+
1548
+ #### FuiSidePanelTitle
1549
+
1550
+ - **Selector**: `[fuiSidePanelTitle]`
1551
+
1552
+ No public inputs or outputs.
1553
+
1514
1554
  ---
1515
1555
 
1516
1556
  ## sidebar-nav-menu
@@ -1908,6 +1948,13 @@ A selection control that renders as a row of connected toggle buttons. Like radi
1908
1948
  List
1909
1949
  </fui-toggle-item>
1910
1950
  </fui-toggle-group>
1951
+
1952
+ <!-- Dynamic items from a backend list via @for -->
1953
+ <fui-toggle-group [formControl]="materialType" aria-label="Tipologia">
1954
+ @for (type of materialTypes; track type.id) {
1955
+ <fui-toggle-item [value]="type.id">{{ type.label }}</fui-toggle-item>
1956
+ }
1957
+ </fui-toggle-group>
1911
1958
  ```
1912
1959
 
1913
1960
  ### Notes
@@ -1915,6 +1962,7 @@ A selection control that renders as a row of connected toggle buttons. Like radi
1915
1962
  - **Accessibility:** The group uses `role="radiogroup"` with each item using `role="radio"` + `aria-checked`. This matches the single-selection semantics: screen readers announce items as "1 of N" and the selection-follows-focus navigation is correct for a radio pattern. Keyboard navigation: Arrow Left/Right, Home, End, Enter, and Space. Only the selected item (or first if none) is in the tab order (roving tabindex). Provide `aria-label` or `aria-labelledby` on the group for context.
1916
1963
  - **Integration:** `fui-toggle-group` is the `ControlValueAccessor` — bind `formControl`, `formControlName`, or `ngModel` on the **group**, not on individual items. `name` is auto-generated if omitted and propagated to child items.
1917
1964
  - **Value type:** `value` on each item is typed `unknown` — use any primitive or object. Comparison is strict `===`.
1965
+ - **Dynamic items:** Items can be generated with `@for` from a dynamic/async list. `value` is an optional input (not `input.required`) so items whose `[value]` binding is applied after creation do not throw `NG0950` ("Input 'value' is required but no value is available yet"). Always provide `[value]` — an item left without a value never matches the group selection.
1918
1966
  - **Single selection only:** Exactly one item is selected at a time. Cannot deselect all — the current value always stays selected (like radio).
1919
1967
  - Emits `change: FuiToggleGroupChange` (`{ source, value }`) on the group.
1920
1968
 
@@ -1928,10 +1976,10 @@ A selection control that renders as a row of connected toggle buttons. Like radi
1928
1976
 
1929
1977
  | Name | Type | Default | Required |
1930
1978
  |------|------|---------|----------|
1979
+ | value | unknown | - | no |
1931
1980
  | disabled | boolean | false | no |
1932
1981
  | aria-label | string \| null | null | no |
1933
1982
  | aria-labelledby | string \| null | null | no |
1934
- | value | unknown | - | yes |
1935
1983
 
1936
1984
  ---
1937
1985
 
@@ -1976,6 +2024,7 @@ A contextual label attached to any element. Shows on hover, focus, click, or man
1976
2024
  | content | string | - | yes |
1977
2025
  | position | TooltipPosition | - | yes |
1978
2026
  | size | TooltipSize | - | yes |
2027
+ | textAlign | TooltipTextAlign | - | yes |
1979
2028
  | maxWidth | string | - | yes |
1980
2029
  | arrow | boolean | - | yes |
1981
2030
  | tooltipId | string | - | yes |
@@ -1994,25 +2043,19 @@ A contextual label attached to any element. Shows on hover, focus, click, or man
1994
2043
  fuiTooltip="Permanently removes the item"
1995
2044
  fuiTooltipPosition="top-end"
1996
2045
  fuiTooltipSize="lg"
1997
- [fuiTooltipShowDelay]="300">
2046
+ [fuiTooltipShowDelay]="300"
2047
+ >
1998
2048
  Delete
1999
2049
  </button>
2000
2050
 
2051
+ <!-- Text alignment (left | center | right) -->
2052
+ <button fuiButton fuiTooltip="Centered multi-line tooltip text" fuiTooltipTextAlign="center">Info</button>
2053
+
2001
2054
  <!-- Click trigger -->
2002
- <span
2003
- fuiTooltip="Copied!"
2004
- fuiTooltipTrigger="click"
2005
- fuiTooltipPosition="bottom">
2006
- Click to copy
2007
- </span>
2055
+ <span fuiTooltip="Copied!" fuiTooltipTrigger="click" fuiTooltipPosition="bottom"> Click to copy </span>
2008
2056
 
2009
2057
  <!-- Manual control via a boolean input -->
2010
- <div
2011
- fuiTooltip="Saved"
2012
- fuiTooltipTrigger="manual"
2013
- [fuiTooltipShow]="justSaved()">
2014
- Save button
2015
- </div>
2058
+ <div fuiTooltip="Saved" fuiTooltipTrigger="manual" [fuiTooltipShow]="justSaved()">Save button</div>
2016
2059
  ```
2017
2060
 
2018
2061
  ### Notes
@@ -2021,6 +2064,7 @@ A contextual label attached to any element. Shows on hover, focus, click, or man
2021
2064
  - **Integration:** Pure attribute directive — no wrapper or parent required. Renders a `FuiTooltipComponent` via the CDK overlay, so it breaks out of clipping ancestors (`overflow: hidden`, transforms, etc.).
2022
2065
  - **Triggers:** `hover` (default, includes focus), `focus`, `click` (toggle), `manual` (bind `[fuiTooltipShow]`). Hover over the tooltip itself keeps it open while pointer is inside.
2023
2066
  - **Positions:** 12 variants — `top`, `top-start`, `top-end`, `bottom`, `bottom-start`, `bottom-end`, `left`, `left-start`, `left-end`, `right`, `right-start`, `right-end`. The overlay auto-flips if the preferred position overflows the viewport.
2067
+ - **Text alignment:** `fuiTooltipTextAlign` — `left` (default), `center`, or `right`. Most visible on multi-line content.
2024
2068
  - Delays: `fuiTooltipShowDelay` defaults to 500ms; `fuiTooltipHideDelay` to 0. Set to 0/small values for snappier hover.
2025
2069
 
2026
2070
  ### Sub-components
@@ -2035,6 +2079,7 @@ A contextual label attached to any element. Shows on hover, focus, click, or man
2035
2079
  |------|------|---------|----------|
2036
2080
  | fuiTooltipPosition | TooltipPosition | 'top' | no |
2037
2081
  | fuiTooltipSize | TooltipSize | 'md' | no |
2082
+ | fuiTooltipTextAlign | TooltipTextAlign | 'left' | no |
2038
2083
  | fuiTooltipTrigger | TooltipTrigger | 'hover' | no |
2039
2084
  | fuiTooltipShowDelay | number | 500 | no |
2040
2085
  | fuiTooltipHideDelay | number | 0 | no |
@@ -2583,7 +2628,7 @@ nodes: FuiTreeTableNode<FileRow>[] = [
2583
2628
  | --fui-primary-100 | #B3A4E9 |
2584
2629
  | --fui-primary-110 | #C2B5EF |
2585
2630
  | --fui-primary-bg | var(--fui-primary-60) |
2586
- | --fui-primary-muted | var(--fui-primary-10) |
2631
+ | --fui-primary-muted | var(--fui-primary-20) |
2587
2632
  | --fui-primary-bg-hover | var(--fui-primary-70) |
2588
2633
  | --fui-primary-bg-pressed | var(--fui-primary-80) |
2589
2634
  | --fui-primary-bg-disabled | var(--fui-primary-30) |
@@ -3354,18 +3399,18 @@ nodes: FuiTreeTableNode<FileRow>[] = [
3354
3399
  | --fui-fill-success | var(--fui-success-60) |
3355
3400
  | --fui-fill-warning | var(--fui-warning-60) |
3356
3401
  | --fui-fill-info | var(--fui-info-60) |
3357
- | --fui-fill-error-hover | var(--fui-error-110) |
3358
- | --fui-fill-success-hover | var(--fui-success-110) |
3359
- | --fui-fill-warning-hover | var(--fui-warning-110) |
3360
- | --fui-fill-info-hover | var(--fui-info-110) |
3402
+ | --fui-fill-error-hover | var(--fui-error-70) |
3403
+ | --fui-fill-success-hover | var(--fui-success-70) |
3404
+ | --fui-fill-warning-hover | var(--fui-warning-70) |
3405
+ | --fui-fill-info-hover | var(--fui-info-70) |
3361
3406
  | --fui-fill-error | var(--fui-error-60) |
3362
3407
  | --fui-fill-success | var(--fui-success-60) |
3363
3408
  | --fui-fill-warning | var(--fui-warning-60) |
3364
3409
  | --fui-fill-info | var(--fui-info-60) |
3365
- | --fui-fill-error-hover | var(--fui-error-110) |
3366
- | --fui-fill-success-hover | var(--fui-success-110) |
3367
- | --fui-fill-warning-hover | var(--fui-warning-110) |
3368
- | --fui-fill-info-hover | var(--fui-info-110) |
3410
+ | --fui-fill-error-hover | var(--fui-error-70) |
3411
+ | --fui-fill-success-hover | var(--fui-success-70) |
3412
+ | --fui-fill-warning-hover | var(--fui-warning-70) |
3413
+ | --fui-fill-info-hover | var(--fui-info-70) |
3369
3414
 
3370
3415
  ### State
3371
3416
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@raintonic/formaui",
3
- "version": "0.9.0",
3
+ "version": "0.9.3",
4
4
  "description": "A modern Angular UI component library with theming support",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -474,10 +474,10 @@
474
474
  --fui-fill-success: var(--fui-success-60);
475
475
  --fui-fill-warning: var(--fui-warning-60);
476
476
  --fui-fill-info: var(--fui-info-60);
477
- --fui-fill-error-hover: var(--fui-error-110);
478
- --fui-fill-success-hover: var(--fui-success-110);
479
- --fui-fill-warning-hover: var(--fui-warning-110);
480
- --fui-fill-info-hover: var(--fui-info-110);
477
+ --fui-fill-error-hover: var(--fui-error-70);
478
+ --fui-fill-success-hover: var(--fui-success-70);
479
+ --fui-fill-warning-hover: var(--fui-warning-70);
480
+ --fui-fill-info-hover: var(--fui-info-70);
481
481
  --fui-primary-bg: var(--fui-primary-60);
482
482
  --fui-primary-muted: var(--fui-primary-10);
483
483
  --fui-primary-bg-hover: var(--fui-primary-70);
@@ -865,12 +865,12 @@
865
865
  --fui-fill-success: var(--fui-success-60);
866
866
  --fui-fill-warning: var(--fui-warning-60);
867
867
  --fui-fill-info: var(--fui-info-60);
868
- --fui-fill-error-hover: var(--fui-error-110);
869
- --fui-fill-success-hover: var(--fui-success-110);
870
- --fui-fill-warning-hover: var(--fui-warning-110);
871
- --fui-fill-info-hover: var(--fui-info-110);
868
+ --fui-fill-error-hover: var(--fui-error-70);
869
+ --fui-fill-success-hover: var(--fui-success-70);
870
+ --fui-fill-warning-hover: var(--fui-warning-70);
871
+ --fui-fill-info-hover: var(--fui-info-70);
872
872
  --fui-primary-bg: var(--fui-primary-60);
873
- --fui-primary-muted: var(--fui-primary-10);
873
+ --fui-primary-muted: var(--fui-primary-20);
874
874
  --fui-primary-bg-hover: var(--fui-primary-70);
875
875
  --fui-primary-bg-pressed: var(--fui-primary-80);
876
876
  --fui-primary-bg-disabled: var(--fui-primary-30);
@@ -8,6 +8,7 @@
8
8
  // Component tokens with fallbacks
9
9
  :root {
10
10
  --fui-dialog-backdrop-color: rgba(0, 0, 0, 0.3);
11
+ --fui-dialog-container-padding: var(--fui-spacing-9);
11
12
  --fui-dialog-title-padding: var(--fui-spacing-9) var(--fui-spacing-9) 0;
12
13
  --fui-dialog-title-font-size: var(--fui-text-xl);
13
14
  --fui-dialog-title-font-weight: var(--fui-weight-medium);
@@ -53,6 +54,29 @@
53
54
  }
54
55
  }
55
56
 
57
+ .fui-dialog-panel.fui-dialog-container--flush {
58
+ --fui-dialog-container-padding: 0;
59
+ }
60
+
61
+ // The dialog container now owns the outer padding (--fui-dialog-container-padding).
62
+ // The optional .fui-dialog-title / -content / -actions utility classes carry
63
+ // their own edge padding for use in a flush container, so inside a padded
64
+ // (non-flush) container the two would stack into double padding. Drop the
65
+ // utility classes' edge padding here, keeping only the inter-section gaps.
66
+ .fui-dialog-panel:not(.fui-dialog-container--flush) {
67
+ .fui-dialog-title {
68
+ padding: 0 0 var(--fui-spacing-9);
69
+ }
70
+
71
+ .fui-dialog-content {
72
+ padding: 0;
73
+ }
74
+
75
+ .fui-dialog-actions {
76
+ padding: var(--fui-spacing-4) 0 0;
77
+ }
78
+ }
79
+
56
80
  // Dialog container host
57
81
  .fui-dialog-container-host {
58
82
  display: block;
package/styles/styles.css CHANGED
@@ -474,10 +474,10 @@
474
474
  --fui-fill-success: var(--fui-success-60);
475
475
  --fui-fill-warning: var(--fui-warning-60);
476
476
  --fui-fill-info: var(--fui-info-60);
477
- --fui-fill-error-hover: var(--fui-error-110);
478
- --fui-fill-success-hover: var(--fui-success-110);
479
- --fui-fill-warning-hover: var(--fui-warning-110);
480
- --fui-fill-info-hover: var(--fui-info-110);
477
+ --fui-fill-error-hover: var(--fui-error-70);
478
+ --fui-fill-success-hover: var(--fui-success-70);
479
+ --fui-fill-warning-hover: var(--fui-warning-70);
480
+ --fui-fill-info-hover: var(--fui-info-70);
481
481
  --fui-primary-bg: var(--fui-primary-60);
482
482
  --fui-primary-muted: var(--fui-primary-10);
483
483
  --fui-primary-bg-hover: var(--fui-primary-70);
@@ -866,12 +866,12 @@
866
866
  --fui-fill-success: var(--fui-success-60);
867
867
  --fui-fill-warning: var(--fui-warning-60);
868
868
  --fui-fill-info: var(--fui-info-60);
869
- --fui-fill-error-hover: var(--fui-error-110);
870
- --fui-fill-success-hover: var(--fui-success-110);
871
- --fui-fill-warning-hover: var(--fui-warning-110);
872
- --fui-fill-info-hover: var(--fui-info-110);
869
+ --fui-fill-error-hover: var(--fui-error-70);
870
+ --fui-fill-success-hover: var(--fui-success-70);
871
+ --fui-fill-warning-hover: var(--fui-warning-70);
872
+ --fui-fill-info-hover: var(--fui-info-70);
873
873
  --fui-primary-bg: var(--fui-primary-60);
874
- --fui-primary-muted: var(--fui-primary-10);
874
+ --fui-primary-muted: var(--fui-primary-20);
875
875
  --fui-primary-bg-hover: var(--fui-primary-70);
876
876
  --fui-primary-bg-pressed: var(--fui-primary-80);
877
877
  --fui-primary-bg-disabled: var(--fui-primary-30);
@@ -7447,6 +7447,7 @@
7447
7447
  */
7448
7448
  :root {
7449
7449
  --fui-dialog-backdrop-color: rgba(0, 0, 0, 0.3);
7450
+ --fui-dialog-container-padding: var(--fui-spacing-9);
7450
7451
  --fui-dialog-title-padding: var(--fui-spacing-9) var(--fui-spacing-9) 0;
7451
7452
  --fui-dialog-title-font-size: var(--fui-text-xl);
7452
7453
  --fui-dialog-title-font-weight: var(--fui-weight-medium);
@@ -7484,6 +7485,20 @@
7484
7485
  animation: fui-dialog-panel-exit var(--fui-duration-base) var(--fui-ease-in) forwards;
7485
7486
  }
7486
7487
 
7488
+ .fui-dialog-panel.fui-dialog-container--flush {
7489
+ --fui-dialog-container-padding: 0;
7490
+ }
7491
+
7492
+ .fui-dialog-panel:not(.fui-dialog-container--flush) .fui-dialog-title {
7493
+ padding: 0 0 var(--fui-spacing-9);
7494
+ }
7495
+ .fui-dialog-panel:not(.fui-dialog-container--flush) .fui-dialog-content {
7496
+ padding: 0;
7497
+ }
7498
+ .fui-dialog-panel:not(.fui-dialog-container--flush) .fui-dialog-actions {
7499
+ padding: var(--fui-spacing-4) 0 0;
7500
+ }
7501
+
7487
7502
  .fui-dialog-container-host {
7488
7503
  display: block;
7489
7504
  width: 100%;
@@ -69,6 +69,48 @@ declare class FuiCardActionsComponent {
69
69
  static ɵcmp: i0.ɵɵComponentDeclaration<FuiCardActionsComponent, "fui-card-actions", never, { "align": { "alias": "align"; "required": false; "isSignal": true; }; "paddingless": { "alias": "paddingless"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
70
70
  }
71
71
 
72
+ /**
73
+ * # FuiCardHeader Directive
74
+ *
75
+ * Marker directive for projecting a custom element into the card header region
76
+ * without using the {@link FuiCardHeaderComponent}. Apply it to any element to
77
+ * have `<fui-card>` treat it as header content.
78
+ *
79
+ * ## Usage
80
+ * ```html
81
+ * <fui-card>
82
+ * <div fuiCardHeader>My full-width header</div>
83
+ * <p>Content</p>
84
+ * </fui-card>
85
+ * ```
86
+ */
87
+ declare class FuiCardHeaderDirective {
88
+ static ɵfac: i0.ɵɵFactoryDeclaration<FuiCardHeaderDirective, never>;
89
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FuiCardHeaderDirective, "[fuiCardHeader]", never, {}, {}, never, never, true, never>;
90
+ }
91
+
92
+ /**
93
+ * # FuiCardActions Directive
94
+ *
95
+ * Marker directive for projecting a custom element into the card actions region
96
+ * without using the {@link FuiCardActionsComponent}. Apply it to any element to
97
+ * have `<fui-card>` treat it as actions content.
98
+ *
99
+ * ## Usage
100
+ * ```html
101
+ * <fui-card>
102
+ * <p>Content</p>
103
+ * <div fuiCardActions>
104
+ * <button fuiButton>OK</button>
105
+ * </div>
106
+ * </fui-card>
107
+ * ```
108
+ */
109
+ declare class FuiCardActionsDirective {
110
+ static ɵfac: i0.ɵɵFactoryDeclaration<FuiCardActionsDirective, never>;
111
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FuiCardActionsDirective, "[fuiCardActions]", never, {}, {}, never, never, true, never>;
112
+ }
113
+
72
114
  /**
73
115
  * Available card variants following Carbon Design System patterns
74
116
  */
@@ -173,6 +215,8 @@ declare class FuiCardComponent implements AfterContentInit {
173
215
  readonly liftState: Signal<'idle' | 'lifted'>;
174
216
  headerCmp?: FuiCardHeaderComponent;
175
217
  actionsCmp?: FuiCardActionsComponent;
218
+ headerDir?: FuiCardHeaderDirective;
219
+ actionsDir?: FuiCardActionsDirective;
176
220
  headerId: string;
177
221
  readonly computedClasses: Signal<string>;
178
222
  onMouseEnter(): void;
@@ -183,9 +227,9 @@ declare class FuiCardComponent implements AfterContentInit {
183
227
  get hasHeader(): boolean;
184
228
  get hasActions(): boolean;
185
229
  static ɵfac: i0.ɵɵFactoryDeclaration<FuiCardComponent, never>;
186
- static ɵcmp: i0.ɵɵComponentDeclaration<FuiCardComponent, "fui-card", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "padding": { "alias": "padding"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, ["headerCmp", "actionsCmp"], ["fui-card-header, [rtCardHeader]", "*", "fui-card-actions, [rtCardActions]"], true, never>;
230
+ static ɵcmp: i0.ɵɵComponentDeclaration<FuiCardComponent, "fui-card", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "padding": { "alias": "padding"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, ["headerCmp", "actionsCmp", "headerDir", "actionsDir"], ["fui-card-header, [fuiCardHeader]", "*", "fui-card-actions, [fuiCardActions]"], true, never>;
187
231
  }
188
232
 
189
- export { FuiCardActionsComponent, FuiCardComponent, FuiCardHeaderComponent };
233
+ export { FuiCardActionsComponent, FuiCardActionsDirective, FuiCardComponent, FuiCardHeaderComponent, FuiCardHeaderDirective };
190
234
  export type { FuiCardPadding, FuiCardVariant };
191
235
  //# sourceMappingURL=raintonic-formaui-components-card.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"raintonic-formaui-components-card.d.ts","sources":["../../../lib/components/card/card-header.component.ts","../../../lib/components/card/card-actions.component.ts","../../../lib/components/card/card.component.ts"],"mappings":";;;AAEA;;;;;;;;;;;;;AAaG;AACH,cASa,sBAAsB;AACjC;;AAEG;;AAGH;;AAEG;oBACa,WAAW;AAE3B;;AAEG;uBACgB,WAAW;yCAdnB,sBAAsB;2CAAtB,sBAAsB;AAelC;;ACtCD;;;;;;;;;;;;;;;;;;;;;AAqBG;AACH,cAYa,uBAAuB;AAClC;;;AAGG;oBACa,WAAW;AAE3B;;;AAGG;AACH,0BAAsB,WAAW;yCAXtB,uBAAuB;2CAAvB,uBAAuB;AAYnC;;AC9BD;;AAEG;AACG,KAAM,cAAc;AAE1B;;AAEG;AACG,KAAM,cAAc;AAE1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEG;AACH,cAiBa,gBAAiB,YAAW,gBAAgB;AACvD;;;AAGG;AACH,sBAAkB,WAAW,CAAC,cAAc;AAE5C;;;AAGG;AACH,sBAAkB,WAAW,CAAC,cAAc;AAE5C;;;AAGG;AACH,wBAAoB,WAAW;AAE/B;;;AAGG;AACH,uBAAmB,WAAW;AAG9B,sBAAkB,cAAc;wBACZ,MAAM;gBAKwB,sBAAsB;iBACpB,uBAAuB;AAE3E;AAGA,8BAA0B,MAAM;AAmBhC;AAOA;AAKA,qBAAiB,aAAa;AAQ9B,mBAAe,UAAU;AAOzB;;;yCApFW,gBAAgB;2CAAhB,gBAAgB;AAiG5B;;;;","names":[]}
1
+ {"version":3,"file":"raintonic-formaui-components-card.d.ts","sources":["../../../lib/components/card/card-header.component.ts","../../../lib/components/card/card-actions.component.ts","../../../lib/components/card/card-header.directive.ts","../../../lib/components/card/card-actions.directive.ts","../../../lib/components/card/card.component.ts"],"mappings":";;;AAEA;;;;;;;;;;;;;AAaG;AACH,cASa,sBAAsB;AACjC;;AAEG;;AAGH;;AAEG;oBACa,WAAW;AAE3B;;AAEG;uBACgB,WAAW;yCAdnB,sBAAsB;2CAAtB,sBAAsB;AAelC;;ACtCD;;;;;;;;;;;;;;;;;;;;;AAqBG;AACH,cAYa,uBAAuB;AAClC;;;AAGG;oBACa,WAAW;AAE3B;;;AAGG;AACH,0BAAsB,WAAW;yCAXtB,uBAAuB;2CAAvB,uBAAuB;AAYnC;;AC9CD;;;;;;;;;;;;;;AAcG;AACH,cAOa,sBAAsB;yCAAtB,sBAAsB;2CAAtB,sBAAsB;AAAG;;ACtBtC;;;;;;;;;;;;;;;;AAgBG;AACH,cAOa,uBAAuB;yCAAvB,uBAAuB;2CAAvB,uBAAuB;AAAG;;ACNvC;;AAEG;AACG,KAAM,cAAc;AAE1B;;AAEG;AACG,KAAM,cAAc;AAE1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEG;AACH,cAiBa,gBAAiB,YAAW,gBAAgB;AACvD;;;AAGG;AACH,sBAAkB,WAAW,CAAC,cAAc;AAE5C;;;AAGG;AACH,sBAAkB,WAAW,CAAC,cAAc;AAE5C;;;AAGG;AACH,wBAAoB,WAAW;AAE/B;;;AAGG;AACH,uBAAmB,WAAW;AAG9B,sBAAkB,cAAc;wBACZ,MAAM;gBAKwB,sBAAsB;iBACpB,uBAAuB;gBACzB,sBAAsB;iBACpB,uBAAuB;AAE3E;AAGA,8BAA0B,MAAM;AAmBhC;AAOA;AAKA,qBAAiB,aAAa;AAQ9B,mBAAe,UAAU;AAOzB;;;yCAtFW,gBAAgB;2CAAhB,gBAAgB;AAmG5B;;;;","names":[]}
@@ -1,7 +1,8 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { AfterViewInit, OnDestroy } from '@angular/core';
3
- import { FuiIntlBase } from '@raintonic/formaui/core';
3
+ import { FuiBadgeVariant, FuiBadgeSize } from '@raintonic/formaui/components/badge';
4
4
  import { FuiDropdownMenuComponent } from '@raintonic/formaui/components/dropdown-menu';
5
+ import { FuiIntlBase } from '@raintonic/formaui/core';
5
6
 
6
7
  declare class FuiDataTableIntl extends FuiIntlBase {
7
8
  tableAriaLabel: string;
@@ -30,8 +31,10 @@ declare class FuiDataTableIntl extends FuiIntlBase {
30
31
  interface AdvancedDataTableLabelConfig {
31
32
  value: string;
32
33
  label: string;
33
- color: string;
34
+ variant?: FuiBadgeVariant;
35
+ color?: string;
34
36
  icon?: string;
37
+ size?: FuiBadgeSize;
35
38
  }
36
39
  /**
37
40
  * Supported column data types for advanced data table.
@@ -166,6 +169,8 @@ interface FilterOperatorOption {
166
169
  * @output sortChange - Emits when the user changes sort direction on a column.
167
170
  * @output filtersChange - Emits when filters are applied or cleared.
168
171
  * @output rowDblClick - Emits the row data object on double-click.
172
+ * @output rowClick - Emits the row data object on single-click (debounced so a
173
+ * double-click does not also emit a single click).
169
174
  *
170
175
  * @example
171
176
  * <fui-advanced-data-table
@@ -174,6 +179,7 @@ interface FilterOperatorOption {
174
179
  * [sort]="currentSort"
175
180
  * (sortChange)="onSort($event)"
176
181
  * (filtersChange)="onFilter($event)"
182
+ * (rowClick)="onRowSelect($event)"
177
183
  * (rowDblClick)="onRowOpen($event)">
178
184
  * </fui-advanced-data-table>
179
185
  */
@@ -200,6 +206,20 @@ declare class FuiAdvancedDataTableComponent<T = Record<string, unknown>> impleme
200
206
  * Enable click-to-highlight feature for rows
201
207
  */
202
208
  readonly enableRowHighlight: _angular_core.InputSignal<boolean>;
209
+ /**
210
+ * Enable double-click handling (`rowDblClick`). When true, single clicks are
211
+ * debounced by ROW_CLICK_DELAY so a double-click resolves to `rowDblClick`
212
+ * only. When false (default) single clicks fire instantly — no lag — because
213
+ * there is no double-click to disambiguate from.
214
+ */
215
+ readonly enableDblClick: _angular_core.InputSignal<boolean>;
216
+ /**
217
+ * Marks rows as clickable for single-click actions (e.g. open detail). Purely
218
+ * a visual affordance: shows a pointer cursor. `rowClick` is emitted
219
+ * regardless; this only controls the cursor. Highlight-enabled rows already
220
+ * show the pointer.
221
+ */
222
+ readonly rowClickable: _angular_core.InputSignal<boolean>;
203
223
  /**
204
224
  * Wraps the table in a bordered, rounded container — alternative to the
205
225
  * default full-width index look. Default false.
@@ -268,6 +288,15 @@ declare class FuiAdvancedDataTableComponent<T = Record<string, unknown>> impleme
268
288
  * Row dblClick event
269
289
  */
270
290
  readonly rowDblClick: _angular_core.OutputEmitterRef<T>;
291
+ /**
292
+ * Row single-click event. Debounced by ROW_CLICK_DELAY so a double-click does
293
+ * NOT also emit a single click (the pending emit is cancelled by rowDblClick).
294
+ */
295
+ readonly rowClick: _angular_core.OutputEmitterRef<T>;
296
+ /** Delay (ms) used to disambiguate a single click from a double click. */
297
+ private static readonly ROW_CLICK_DELAY;
298
+ /** Pending single-click emit; cancelled when a double-click follows. */
299
+ private rowClickTimer;
271
300
  /**
272
301
  * Internal state for selected row indices
273
302
  */
@@ -369,6 +398,24 @@ declare class FuiAdvancedDataTableComponent<T = Record<string, unknown>> impleme
369
398
  * Check if a row is selected
370
399
  */
371
400
  isRowSelected(index: number): boolean;
401
+ /**
402
+ * Handle a row single click.
403
+ *
404
+ * When `enableDblClick` is false (default) the highlight toggle and `rowClick`
405
+ * emit fire immediately — instant response, no lag.
406
+ *
407
+ * When `enableDblClick` is true, both are debounced by ROW_CLICK_DELAY so a
408
+ * double-click resolves cleanly to `rowDblClick` only — `onRowDblClick`
409
+ * cancels the pending timer. Toggling on the raw click would otherwise fire
410
+ * twice per double-click (two native `click` events precede `dblclick`),
411
+ * flipping the highlight back to its original state.
412
+ */
413
+ onRowClick(index: number, row: T): void;
414
+ /**
415
+ * Handle a row double click. Cancels any pending single-click emit before
416
+ * emitting `rowDblClick`.
417
+ */
418
+ onRowDblClick(row: T): void;
372
419
  /**
373
420
  * Toggle row highlight (only if enableRowHighlight is true)
374
421
  */
@@ -437,7 +484,7 @@ declare class FuiAdvancedDataTableComponent<T = Record<string, unknown>> impleme
437
484
  */
438
485
  requiresInput(type: AdvancedDataTableColumnType): boolean;
439
486
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FuiAdvancedDataTableComponent<any>, never>;
440
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FuiAdvancedDataTableComponent<any>, "fui-advanced-data-table", never, { "config": { "alias": "config"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; "enableRowHighlight": { "alias": "enableRowHighlight"; "required": false; "isSignal": true; }; "boxed": { "alias": "boxed"; "required": false; "isSignal": true; }; "density": { "alias": "density"; "required": false; "isSignal": true; }; "rowActions": { "alias": "rowActions"; "required": false; "isSignal": true; }; "tableAriaLabel": { "alias": "tableAriaLabel"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "sort": { "alias": "sort"; "required": false; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; }, { "sortChange": "sortChange"; "filtersChange": "filtersChange"; "rowDblClick": "rowDblClick"; }, never, never, true, never>;
487
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FuiAdvancedDataTableComponent<any>, "fui-advanced-data-table", never, { "config": { "alias": "config"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; "enableRowHighlight": { "alias": "enableRowHighlight"; "required": false; "isSignal": true; }; "enableDblClick": { "alias": "enableDblClick"; "required": false; "isSignal": true; }; "rowClickable": { "alias": "rowClickable"; "required": false; "isSignal": true; }; "boxed": { "alias": "boxed"; "required": false; "isSignal": true; }; "density": { "alias": "density"; "required": false; "isSignal": true; }; "rowActions": { "alias": "rowActions"; "required": false; "isSignal": true; }; "tableAriaLabel": { "alias": "tableAriaLabel"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "sort": { "alias": "sort"; "required": false; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; }, { "sortChange": "sortChange"; "filtersChange": "filtersChange"; "rowDblClick": "rowDblClick"; "rowClick": "rowClick"; }, never, never, true, never>;
441
488
  }
442
489
 
443
490
  export { FilterOperator, FuiAdvancedDataTableComponent, FuiDataTableIntl };
@@ -1 +1 @@
1
- {"version":3,"file":"raintonic-formaui-components-data-table.d.ts","sources":["../../../lib/components/data-table/data-table.intl.ts","../../../lib/components/data-table/advanced-data-table.component.ts"],"mappings":"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","names":[]}
1
+ {"version":3,"file":"raintonic-formaui-components-data-table.d.ts","sources":["../../../lib/components/data-table/data-table.intl.ts","../../../lib/components/data-table/advanced-data-table.component.ts"],"mappings":"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","names":[]}
@@ -37,6 +37,8 @@ declare class FuiDrawerComponent {
37
37
  private _lastInputValue;
38
38
  private _previouslyFocusedElement;
39
39
  readonly drawerPanel: Signal<ElementRef<HTMLElement> | undefined>;
40
+ private readonly _projectedTitle;
41
+ readonly _hasProjectedTitle: Signal<boolean>;
40
42
  readonly _sizeValue: Signal<string>;
41
43
  readonly _isHorizontal: Signal<boolean>;
42
44
  constructor();
@@ -49,9 +51,25 @@ declare class FuiDrawerComponent {
49
51
  private _focusFirstTabbable;
50
52
  private _getAllFocusableElements;
51
53
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FuiDrawerComponent, never>;
52
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FuiDrawerComponent, "fui-drawer", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "opened": { "alias": "opened"; "required": false; "isSignal": true; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; "isSignal": true; }; "closeOnBackdropClick": { "alias": "closeOnBackdropClick"; "required": false; "isSignal": true; }; "closeOnEsc": { "alias": "closeOnEsc"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "showCloseButton": { "alias": "showCloseButton"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; "isSignal": true; }; }, { "openedChange": "openedChange"; "closed": "closed"; }, never, ["*", "[drawerFooter]"], true, never>;
54
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FuiDrawerComponent, "fui-drawer", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "opened": { "alias": "opened"; "required": false; "isSignal": true; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; "isSignal": true; }; "closeOnBackdropClick": { "alias": "closeOnBackdropClick"; "required": false; "isSignal": true; }; "closeOnEsc": { "alias": "closeOnEsc"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "showCloseButton": { "alias": "showCloseButton"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; "isSignal": true; }; }, { "openedChange": "openedChange"; "closed": "closed"; }, ["_projectedTitle"], ["[fuiDrawerTitle]", "*", "[drawerFooter]"], true, never>;
53
55
  }
54
56
 
55
- export { DRAWER_SIZES, FuiDrawerComponent, FuiDrawerIntl };
57
+ /**
58
+ * Marker directive for projecting custom markup into the drawer header title
59
+ * area. Apply the `fuiDrawerTitle` attribute to the element you want rendered
60
+ * as the title. When present, it visually replaces the string `title`, which
61
+ * still provides the drawer's accessible name.
62
+ *
63
+ * @example
64
+ * <fui-drawer title="Details">
65
+ * <span fuiDrawerTitle>Custom <em>title</em> markup</span>
66
+ * </fui-drawer>
67
+ */
68
+ declare class FuiDrawerTitle {
69
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FuiDrawerTitle, never>;
70
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FuiDrawerTitle, "[fuiDrawerTitle]", never, {}, {}, never, never, true, never>;
71
+ }
72
+
73
+ export { DRAWER_SIZES, FuiDrawerComponent, FuiDrawerIntl, FuiDrawerTitle };
56
74
  export type { DrawerMode, DrawerPosition, DrawerSize };
57
75
  //# sourceMappingURL=raintonic-formaui-components-drawer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"raintonic-formaui-components-drawer.d.ts","sources":["../../../lib/components/drawer/drawer.types.ts","../../../lib/components/drawer/drawer.intl.ts","../../../lib/components/drawer/drawer.component.ts"],"mappings":";;;;AAAM,KAAM,cAAc;KACd,UAAU;AAChB,KAAM,UAAU;AAEtB,cAAa,YAAY,EAAE,MAAM,CAAC,UAAU;;ACD5C,cACa,aAAc,SAAQ,WAAW;AAC5C;oDADW,aAAa;wDAAb,aAAa;AAEzB;;ACkBD,cAuBa,kBAAkB;AAC7B;mBACa,aAAA;AACb;uBAGiB,aAAA,CAAA,WAAA,CAAA,cAAA;mBACJ,aAAA,CAAA,WAAA,CAAA,UAAA;mBACA,aAAA,CAAA,WAAA;qBACE,aAAA,CAAA,wBAAA;0BACK,aAAA,CAAA,wBAAA;mCACS,aAAA,CAAA,wBAAA;yBACV,aAAA,CAAA,wBAAA;oBACL,aAAA,CAAA,WAAA;8BACU,aAAA,CAAA,wBAAA;;wBAGN,aAAA,CAAA,WAAA;;6BAGK,aAAA,CAAA,WAAA;2BAGF,aAAA,CAAA,gBAAA;qBACN,aAAA,CAAA,gBAAA;AAGf,sBAAkB,cAAc;AAChC,yBAAqB,cAAc;;;AASnC,0BAAsB,MAAM,CAAC,UAAU,CAAC,WAAW;AAGnD,yBAAqB,MAAM;AAK3B,4BAAwB,MAAM;;AAuB9B,qBAAiB,aAAa;AAkC9B;AAOA;AAQA;AAQA;AAUA;AAUA;AAcA;oDA/JW,kBAAkB;sDAAlB,kBAAkB;AA+K9B;;;;","names":[]}
1
+ {"version":3,"file":"raintonic-formaui-components-drawer.d.ts","sources":["../../../lib/components/drawer/drawer.types.ts","../../../lib/components/drawer/drawer.intl.ts","../../../lib/components/drawer/drawer.component.ts","../../../lib/components/drawer/drawer-title.directive.ts"],"mappings":";;;;AAAM,KAAM,cAAc;KACd,UAAU;AAChB,KAAM,UAAU;AAEtB,cAAa,YAAY,EAAE,MAAM,CAAC,UAAU;;ACD5C,cACa,aAAc,SAAQ,WAAW;AAC5C;oDADW,aAAa;wDAAb,aAAa;AAEzB;;ACoBD,cAuBa,kBAAkB;AAC7B;mBACa,aAAA;AACb;uBAGiB,aAAA,CAAA,WAAA,CAAA,cAAA;mBACJ,aAAA,CAAA,WAAA,CAAA,UAAA;mBACA,aAAA,CAAA,WAAA;qBACE,aAAA,CAAA,wBAAA;0BACK,aAAA,CAAA,wBAAA;mCACS,aAAA,CAAA,wBAAA;yBACV,aAAA,CAAA,wBAAA;oBACL,aAAA,CAAA,WAAA;8BACU,aAAA,CAAA,wBAAA;;wBAGN,aAAA,CAAA,WAAA;;6BAGK,aAAA,CAAA,WAAA;2BAGF,aAAA,CAAA,gBAAA;qBACN,aAAA,CAAA,gBAAA;AAGf,sBAAkB,cAAc;AAChC,yBAAqB,cAAc;;;AASnC,0BAAsB,MAAM,CAAC,UAAU,CAAC,WAAW;AAGnD;AACA,iCAA6B,MAAM;AAGnC,yBAAqB,MAAM;AAK3B,4BAAwB,MAAM;;AAyB9B,qBAAiB,aAAa;AAkC9B;AAOA;AAQA;AAQA;AAUA;AAUA;AAcA;oDArKW,kBAAkB;sDAAlB,kBAAkB;AAqL9B;;ACpOD;;;;;;;;;;AAUG;AACH,cAOa,cAAc;oDAAd,cAAc;sDAAd,cAAc;AAAG;;;;","names":[]}