forty-cdk 0.3.0 → 0.4.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.
package/listbox/README.md CHANGED
@@ -153,6 +153,30 @@ Drag an option past a small threshold to reorder; a short press without movement
153
153
  | `[forListboxReorder]` | `data-dragging` | present \| absent | On the container while any drag (pointer or keyboard) is in flight. |
154
154
  | `[forListboxOption]` | `data-dragging` | present \| absent | On the lifted option for the duration of the drag. |
155
155
 
156
+ ### Localizing reorder announcements
157
+
158
+ While a reorder is in flight, `[forListboxReorder]` announces lift / move / drop / cancel through an off-screen live region. The phrasing is English by default; override it per injector scope with `provideForListboxDefaults` so screen readers speak the consumer's language. `index` / `total` are 1-based.
159
+
160
+ ```ts
161
+ import { provideForListboxDefaults } from 'forty-cdk/listbox';
162
+
163
+ provideForListboxDefaults({
164
+ reorderAnnounceLift: (label, index, total) => `${label} levantado. ${index} de ${total}.`,
165
+ reorderAnnounceMove: (label, index, total) =>
166
+ `${label} movido a la posición ${index} de ${total}.`,
167
+ reorderAnnounceDrop: (label, index, total) =>
168
+ `${label} soltado en la posición ${index} de ${total}.`,
169
+ reorderAnnounceCancel: (label) => `Movimiento de ${label} cancelado.`,
170
+ });
171
+ ```
172
+
173
+ | Default | Type | Description |
174
+ | ----------------------- | --------------------------------------------------------- | ----------------------------------------------- |
175
+ | `reorderAnnounceLift` | `(label: string, index: number, total: number) => string` | Announced when an option is lifted for reorder. |
176
+ | `reorderAnnounceMove` | `(label: string, index: number, total: number) => string` | Announced when the drop position changes. |
177
+ | `reorderAnnounceDrop` | `(label: string, index: number, total: number) => string` | Announced on a committed drop. |
178
+ | `reorderAnnounceCancel` | `(label: string) => string` | Announced when the reorder is cancelled. |
179
+
156
180
  ## Object values
157
181
 
158
182
  Real apps usually have richer option models — `{ id, name, ... }` — where the comparison key differs from what you'd serialize for a form. `[forListbox]` is generic over `T` to support that without forcing the consumer to stringify and re-hydrate.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "forty-cdk",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Headless / styleless UI primitives for Angular with WAI-ARIA accessibility built in.",
5
5
  "keywords": [
6
6
  "angular",
package/tree/README.md CHANGED
@@ -706,3 +706,30 @@ Pair it with the root's `--for-tree-drop-level` (the resolved depth) to indent t
706
706
  Advanced consumers can read the same resolved position programmatically: `[forTreeNodeDrag]` exposes a read-only `dropIndicator: Signal<ForTreeDropIndicator | null>` on `ForTreeNodeDragContext` (`{ anchor, position, level }`, `null` when idle).
707
707
 
708
708
  On lift the dragged node's subtree is collapsed (and restored on drop / cancel). This keeps the drop geometry tractable and structurally prevents dropping a node into its own descendant; `[canDrop]` adds consumer-defined vetoes on top.
709
+
710
+ ### Localizing drag announcements
711
+
712
+ While a drag is in flight, `[forTreeNodeDrag]` announces lift / move / drop / cancel / invalid-drop through an off-screen live region. The phrasing is English by default; override it per injector scope with `provideForTreeDefaults` so screen readers speak the consumer's language. `position` / `total` are 1-based, and `parentLabel` is `null` when the node lands at the root — phrase the root-vs-parent distinction in your own language.
713
+
714
+ ```ts
715
+ import { provideForTreeDefaults } from 'forty-cdk/tree';
716
+
717
+ provideForTreeDefaults({
718
+ dragAnnounceLift: (label) =>
719
+ `${label} levantado. Usa las flechas para mover, Espacio para soltar, Escape para cancelar.`,
720
+ dragAnnounceMove: (label, parentLabel, position, total) =>
721
+ `${label}: ${parentLabel ? `dentro de ${parentLabel}, ` : 'en la raíz, '}posición ${position} de ${total}.`,
722
+ dragAnnounceDrop: (label, parentLabel, position, total) =>
723
+ `${label} soltado ${parentLabel ? `dentro de ${parentLabel}, ` : 'en la raíz, '}posición ${position} de ${total}.`,
724
+ dragAnnounceCancel: (label) => `Cancelado. ${label} vuelve a su posición original.`,
725
+ dragAnnounceInvalid: (label) => `No se puede soltar ${label} aquí.`,
726
+ });
727
+ ```
728
+
729
+ | Default | Type | Description |
730
+ | --------------------- | ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
731
+ | `dragAnnounceLift` | `(label: string) => string` | Announced when a node is picked up for drag. |
732
+ | `dragAnnounceMove` | `(label: string, parentLabel: string \| null, position: number, total: number) => string` | Announced on each intermediate move while a node is lifted. |
733
+ | `dragAnnounceDrop` | `(label: string, parentLabel: string \| null, position: number, total: number) => string` | Announced when a node is committed to its new position. |
734
+ | `dragAnnounceCancel` | `(label: string) => string` | Announced when a lift is cancelled and the node returns to origin. |
735
+ | `dragAnnounceInvalid` | `(label: string) => string` | Announced when a `canDrop` veto rejects the attempted drop. |
@@ -61,7 +61,7 @@ declare class ForCheckbox extends FormUiControlBase implements FormCheckboxContr
61
61
  * `'indeterminate'`. Exposed so `ForCheckboxIndicator` can mirror it without
62
62
  * re-deriving the same mapping.
63
63
  */
64
- readonly dataState: _angular_core.Signal<"checked" | "indeterminate" | "unchecked">;
64
+ readonly dataState: _angular_core.Signal<"checked" | "unchecked" | "indeterminate">;
65
65
  constructor();
66
66
  protected onClick(): void;
67
67
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ForCheckbox, never>;
@@ -902,7 +902,7 @@ declare class ForComboboxOption<T = string> {
902
902
  /** True when this option is the current activedescendant. Reflected as `data-highlighted`. */
903
903
  readonly highlighted: _angular_core.Signal<boolean>;
904
904
  readonly effectiveDisabled: _angular_core.Signal<boolean>;
905
- protected readonly ariaSelected: _angular_core.Signal<"true" | "false">;
905
+ protected readonly ariaSelected: _angular_core.Signal<"false" | "true">;
906
906
  /** Reflects `aria-posinset` (1-based) when virtualizing. Falls back to DOM order otherwise. */
907
907
  protected readonly ariaPosInSet: _angular_core.Signal<string | null>;
908
908
  /** Reflects `aria-setsize` when the consumer wires up `[totalCount]`. */
@@ -1497,6 +1497,32 @@ interface PlayFlipConfig {
1497
1497
  */
1498
1498
  declare function playFlip(config: PlayFlipConfig): void;
1499
1499
 
1500
+ /**
1501
+ * Per-directive pointer drag-start guard shared by `ForDraggable` and
1502
+ * `ForFreeDrag`: tracks `[forDragHandle]` elements, decides whether a
1503
+ * `pointerdown` may begin a drag (left mouse button only; if any handle is
1504
+ * registered the press must originate inside one), and derives the
1505
+ * `touch-action` style that suppresses native scrolling on a handle-less host.
1506
+ */
1507
+ interface PointerHandleGuard {
1508
+ /** `'none'` while the host should suppress native touch scrolling, else `null`. */
1509
+ readonly touchAction: Signal<'none' | null>;
1510
+ /** Register a `[forDragHandle]` element. */
1511
+ register(el: HTMLElement): void;
1512
+ /** Unregister a previously registered handle element. */
1513
+ unregister(el: HTMLElement): void;
1514
+ /** Whether a `pointerdown` event is allowed to start a drag. */
1515
+ canStart(event: PointerEvent): boolean;
1516
+ }
1517
+ /**
1518
+ * Builds a {@link PointerHandleGuard}. Call from a directive's injection
1519
+ * context (field initializer or constructor) so `touchAction`'s `computed`
1520
+ * registers correctly.
1521
+ *
1522
+ * @param disabled Signal reporting whether dragging is currently disabled.
1523
+ */
1524
+ declare function createPointerHandleGuard(disabled: Signal<boolean>): PointerHandleGuard;
1525
+
1500
1526
  /**
1501
1527
  * Shared keyboard resolvers for container-level drag-reorder coordinators
1502
1528
  * (`ForTreeNodeDrag`, `ForListboxReorder`). Framework-free and unit-testable in
@@ -5770,5 +5796,5 @@ interface WindowReorderResult {
5770
5796
  */
5771
5797
  declare function translateWindowReorder(windowIndices: readonly number[], previousIndex: number, currentIndex: number): WindowReorderResult;
5772
5798
 
5773
- export { ANCHORED_POSITIONING_DEFAULTS, BodyScrollLock, CloseReasonState, Collection, DEFAULT_POINTER_SUPPRESSION_MS, DRAG_DEAD_ZONE_PX, DismissableLayer, DismissableLayerStack, FLIP_ANIMATING_ATTR, FOR_DATE_ADAPTER, FOR_FIELDSET_CONTEXT, FOR_FIELD_CONTEXT, FOR_HOST_ROVING_CONTEXT, FOR_ID_SALT, FOR_MENU_CONTEXT, FOR_TIME_VALUE_SOURCE, ForDateTimeLiteralBase, ForDateTimeSegmentBase, ForDrawerScaleCoordinator, ForDrawerStack, ForVisuallyHidden, FormUiControlBase, IdGenerator, InertSiblingsStack, InitialFocusState, ListboxOverlayController, LiveAnnouncer, MENU_POSITIONING_DEFAULTS, MODAL_PEER_ATTRIBUTE, MenuItemList, MenuOverlay, MenuOverlayHost, OverlayContextInjector, OverlayManagerCore, OverlayRef, PreviewController, RovingTabindex, SegmentEditor, SelectionModel, SkipDelayCoordinator, TextValueControlBase, Typeahead, VISUALLY_HIDDEN_STYLE, VirtualizedNavigator, adoptHostId, assertTimeCapable, attachPointerGrace, attachSwipeDismiss, buildDragSlots, buildSubmenuGracePolygon, clamp, clampPreviewPosition, clampToBounds, clampToRange, compareDateOf, composeWithTime, computeFlatHierarchy, computeScrollVelocity, createAutoScroller, createDebouncedAction, createDefaults, createDragPreview, createHoverIntent, createKeyboardDragMediator, createMenuItemList, createMenuOverlay, createPointerDragSession, createPointerSuppression, createTemplatePreview, createVetoableEvent, createVetoableNativeEvent, dayPeriodNames, defaultItemToFormValue, emitVetoableEvent, emitVetoableNativeEvent, fencePlaceholderIndex, findScrollContainer, findTypeaheadMatch, firstEnabledHost, flipDelta, foldSnapshotOnTotalCountTransition, forceCloseWhenDisabled, from12, gapFromPointerY, hostId, indexOfSlot, injectDateAdapter, injectDismissableLayer, injectElementSize, injectFieldWiring, injectFloating, injectFocusVisible, injectHasFocusableContent, injectHiddenInput, injectHovered, injectMediaQuery, injectMenuContext, injectModalShell, injectOverlayShell, injectPauseController, injectPortal, injectPrefersReducedMotion, injectPressed, injectTextDirection, injectTypeahead, isDragLiftKey, isInArray, isPointInPolygon, isRequiredInputUnset, isScrollableAtEdge, levelFromPointerX, localeSeparators, mirrorUnfocusedValue, moveGridIndex, moveIndex, nextEnabledHandle, parseLocaleNumber, placeholderInsertion, playFlip, provideForIdSalt, tryReadHandle as readEntryGuarded, reconcileRovingActive, reflectDisabled, registerA11yDescription, registerA11yName, registerCollectionHandle, registerHandle, resolveConfigClass, resolveDropIndicator, resolveDropTarget, resolveGraceSide, resolveGridNavigation, resolveHostId, resolveHourCycle, resolveLiftedDragControl, resolveListNavigation, resolveSnapTarget, resolveTreeDrop, resolveTreeExpandCollapse, resolveTreegridExpandCollapse, roundToStepPrecision, secondsOfDay, serializeISODate, serializeISOTime, singleSelected, snapToStep, startPointerResize, stepSlot, timeSentinel, to12, toFloatingPositioner, toggleInArray, translateWindowReorder, tryReadHandle, wrapPreview };
5774
- export type { A11yDescriptionOwner, A11yLabelOwner, AnchoredPositioningContext, AutoScrollVelocity, AutoScroller, AutoScrollerConfig, CollectionHandle, DateAdapter, DateSegmentType, DateSerializeGranularity, DebouncedAction, DisableableHandle, DismissableLayerActivateOptions, DragPreview, DragRect, DragSlot, DrawerStackHandle, DrawerStackNode, DropContainerGeometry, DropTarget, EditableSpec, ElementBox, ExpandCollapseAction, FieldControlHandle, FieldSegment, FieldSpec, FlipDelta, FlipRect, FloatingAlign, FloatingConfig, FloatingSide, ForDrawerScaleConfig, ForDrawerSide, ForFieldContext, ForFieldsetContext, ForMenuCloseReason, ForMenuContext, ForMenuItemHandle, ForceCloseWhenDisabledOptions, GraceRect, GridNavigationAction, GridNavigationOptions, HiddenInputConfig, HostRovingContext, HostRovingItemHandle, HoverIntentCoordinator, HoverIntentOptions, HoverIntentScheduler, HoveredOptions, InertSiblingsHandle, KeyboardDragMediatorConfig, ListNavigationAction, ListNavigationOptions, ListOrientation, ListboxOverlayControllerDeps, ListboxOverlayEmitTargets, ListboxOverlayOptionHandle, LiteralSpec, LocaleSeparators, MenuActivationModality, MenuItemHandle, MenuOverlayCloseReason, MenuOverlayHooks, MenuOverlayItemHandle, MenuSiblingNavigator, ModalShellConfig, ModalShellDismissConfig, ModalShellHandle, ModalShellInitialFocusConfig, MoveGridIndexOptions, MoveIndexOptions, NextEnabledHandleOptions, OverlayManagerConfig, OverlayManagerEntry, OverlayManagerOutlet, OverlayManagerOutletHost, OverlayShellConfig, OverlayShellDismissConfig, OverlayShellInitialFocusConfig, OverlayShellInitialFocusMove, OverlayShellPositionerConfig, OverlayShellReturnFocusConfig, PauseController, PauseControllerOptions, PlaceholderInsertion, PlayFlipConfig, Point, PointerDragSession, PointerDragSessionOptions, PointerResizeConfig, PointerSuppression, Polygon, PortalConfig, PressedOptions, PreviewControllerOptions, PreviewPoint, PreviewSize, RegistrationScheduling, ResolveSnapTargetOptions, SegmentEditorContext, SegmentEditorHost, SegmentHandle, SegmentParts, SegmentType, SelectionModelOptions, SkipDelayCoordinatorDefaults, SnapResolution, SwipeDirection, SwipeDismissOptions, SwipeEventDetail, TimeCapableDateAdapter, TimeSegmentType, TimeSerializeGranularity, TimeValueSource, TreeDropIndicator, TreeDropRow, TreeDropTarget, TreeExpandCollapseOptions, TypeaheadMatchQuery, TypeaheadOptions, VetoableEvent, VetoableNativeEvent, VirtualizedNavigatorAccessors, VirtualizedNavigatorDeps, VirtualizedNavigatorEntry, VirtualizedNavigatorOptions, WindowReorderResult, WritingDirection };
5799
+ export { ANCHORED_POSITIONING_DEFAULTS, BodyScrollLock, CloseReasonState, Collection, DEFAULT_POINTER_SUPPRESSION_MS, DRAG_DEAD_ZONE_PX, DismissableLayer, DismissableLayerStack, FLIP_ANIMATING_ATTR, FOR_DATE_ADAPTER, FOR_FIELDSET_CONTEXT, FOR_FIELD_CONTEXT, FOR_HOST_ROVING_CONTEXT, FOR_ID_SALT, FOR_MENU_CONTEXT, FOR_TIME_VALUE_SOURCE, ForDateTimeLiteralBase, ForDateTimeSegmentBase, ForDrawerScaleCoordinator, ForDrawerStack, ForVisuallyHidden, FormUiControlBase, IdGenerator, InertSiblingsStack, InitialFocusState, ListboxOverlayController, LiveAnnouncer, MENU_POSITIONING_DEFAULTS, MODAL_PEER_ATTRIBUTE, MenuItemList, MenuOverlay, MenuOverlayHost, OverlayContextInjector, OverlayManagerCore, OverlayRef, PreviewController, RovingTabindex, SegmentEditor, SelectionModel, SkipDelayCoordinator, TextValueControlBase, Typeahead, VISUALLY_HIDDEN_STYLE, VirtualizedNavigator, adoptHostId, assertTimeCapable, attachPointerGrace, attachSwipeDismiss, buildDragSlots, buildSubmenuGracePolygon, clamp, clampPreviewPosition, clampToBounds, clampToRange, compareDateOf, composeWithTime, computeFlatHierarchy, computeScrollVelocity, createAutoScroller, createDebouncedAction, createDefaults, createDragPreview, createHoverIntent, createKeyboardDragMediator, createMenuItemList, createMenuOverlay, createPointerDragSession, createPointerHandleGuard, createPointerSuppression, createTemplatePreview, createVetoableEvent, createVetoableNativeEvent, dayPeriodNames, defaultItemToFormValue, emitVetoableEvent, emitVetoableNativeEvent, fencePlaceholderIndex, findScrollContainer, findTypeaheadMatch, firstEnabledHost, flipDelta, foldSnapshotOnTotalCountTransition, forceCloseWhenDisabled, from12, gapFromPointerY, hostId, indexOfSlot, injectDateAdapter, injectDismissableLayer, injectElementSize, injectFieldWiring, injectFloating, injectFocusVisible, injectHasFocusableContent, injectHiddenInput, injectHovered, injectMediaQuery, injectMenuContext, injectModalShell, injectOverlayShell, injectPauseController, injectPortal, injectPrefersReducedMotion, injectPressed, injectTextDirection, injectTypeahead, isDragLiftKey, isInArray, isPointInPolygon, isRequiredInputUnset, isScrollableAtEdge, levelFromPointerX, localeSeparators, mirrorUnfocusedValue, moveGridIndex, moveIndex, nextEnabledHandle, parseLocaleNumber, placeholderInsertion, playFlip, provideForIdSalt, tryReadHandle as readEntryGuarded, reconcileRovingActive, reflectDisabled, registerA11yDescription, registerA11yName, registerCollectionHandle, registerHandle, resolveConfigClass, resolveDropIndicator, resolveDropTarget, resolveGraceSide, resolveGridNavigation, resolveHostId, resolveHourCycle, resolveLiftedDragControl, resolveListNavigation, resolveSnapTarget, resolveTreeDrop, resolveTreeExpandCollapse, resolveTreegridExpandCollapse, roundToStepPrecision, secondsOfDay, serializeISODate, serializeISOTime, singleSelected, snapToStep, startPointerResize, stepSlot, timeSentinel, to12, toFloatingPositioner, toggleInArray, translateWindowReorder, tryReadHandle, wrapPreview };
5800
+ export type { A11yDescriptionOwner, A11yLabelOwner, AnchoredPositioningContext, AutoScrollVelocity, AutoScroller, AutoScrollerConfig, CollectionHandle, DateAdapter, DateSegmentType, DateSerializeGranularity, DebouncedAction, DisableableHandle, DismissableLayerActivateOptions, DragPreview, DragRect, DragSlot, DrawerStackHandle, DrawerStackNode, DropContainerGeometry, DropTarget, EditableSpec, ElementBox, ExpandCollapseAction, FieldControlHandle, FieldSegment, FieldSpec, FlipDelta, FlipRect, FloatingAlign, FloatingConfig, FloatingSide, ForDrawerScaleConfig, ForDrawerSide, ForFieldContext, ForFieldsetContext, ForMenuCloseReason, ForMenuContext, ForMenuItemHandle, ForceCloseWhenDisabledOptions, GraceRect, GridNavigationAction, GridNavigationOptions, HiddenInputConfig, HostRovingContext, HostRovingItemHandle, HoverIntentCoordinator, HoverIntentOptions, HoverIntentScheduler, HoveredOptions, InertSiblingsHandle, KeyboardDragMediatorConfig, ListNavigationAction, ListNavigationOptions, ListOrientation, ListboxOverlayControllerDeps, ListboxOverlayEmitTargets, ListboxOverlayOptionHandle, LiteralSpec, LocaleSeparators, MenuActivationModality, MenuItemHandle, MenuOverlayCloseReason, MenuOverlayHooks, MenuOverlayItemHandle, MenuSiblingNavigator, ModalShellConfig, ModalShellDismissConfig, ModalShellHandle, ModalShellInitialFocusConfig, MoveGridIndexOptions, MoveIndexOptions, NextEnabledHandleOptions, OverlayManagerConfig, OverlayManagerEntry, OverlayManagerOutlet, OverlayManagerOutletHost, OverlayShellConfig, OverlayShellDismissConfig, OverlayShellInitialFocusConfig, OverlayShellInitialFocusMove, OverlayShellPositionerConfig, OverlayShellReturnFocusConfig, PauseController, PauseControllerOptions, PlaceholderInsertion, PlayFlipConfig, Point, PointerDragSession, PointerDragSessionOptions, PointerHandleGuard, PointerResizeConfig, PointerSuppression, Polygon, PortalConfig, PressedOptions, PreviewControllerOptions, PreviewPoint, PreviewSize, RegistrationScheduling, ResolveSnapTargetOptions, SegmentEditorContext, SegmentEditorHost, SegmentHandle, SegmentParts, SegmentType, SelectionModelOptions, SkipDelayCoordinatorDefaults, SnapResolution, SwipeDirection, SwipeDismissOptions, SwipeEventDetail, TimeCapableDateAdapter, TimeSegmentType, TimeSerializeGranularity, TimeValueSource, TreeDropIndicator, TreeDropRow, TreeDropTarget, TreeExpandCollapseOptions, TypeaheadMatchQuery, TypeaheadOptions, VetoableEvent, VetoableNativeEvent, VirtualizedNavigatorAccessors, VirtualizedNavigatorDeps, VirtualizedNavigatorEntry, VirtualizedNavigatorOptions, WindowReorderResult, WritingDirection };
@@ -465,6 +465,26 @@ interface ForListboxDefaults {
465
465
  * focus.
466
466
  */
467
467
  selectionFollowsFocus: boolean;
468
+ /**
469
+ * `[forListboxReorder]` announcement when an option is lifted for reorder.
470
+ * `index` and `total` are 1-based. Override to localize.
471
+ */
472
+ reorderAnnounceLift: (label: string, index: number, total: number) => string;
473
+ /**
474
+ * `[forListboxReorder]` announcement when the reorder drop position changes.
475
+ * `index` and `total` are 1-based. Override to localize.
476
+ */
477
+ reorderAnnounceMove: (label: string, index: number, total: number) => string;
478
+ /**
479
+ * `[forListboxReorder]` announcement on a committed reorder drop. `index` and
480
+ * `total` are 1-based. Override to localize.
481
+ */
482
+ reorderAnnounceDrop: (label: string, index: number, total: number) => string;
483
+ /**
484
+ * `[forListboxReorder]` announcement when a reorder is cancelled. Override to
485
+ * localize.
486
+ */
487
+ reorderAnnounceCancel: (label: string) => string;
468
488
  }
469
489
  /** Token holding the resolved listbox defaults for the current scope. */
470
490
  declare const FOR_LISTBOX_DEFAULTS: _angular_core.InjectionToken<ForListboxDefaults>;
@@ -1,7 +1,7 @@
1
1
  import * as forty_cdk_core from 'forty-cdk/core';
2
2
  import { WritingDirection } from 'forty-cdk/core';
3
3
  import * as _angular_core from '@angular/core';
4
- import { InjectionToken, Signal, Provider } from '@angular/core';
4
+ import { InjectionToken, Signal, ElementRef, Provider } from '@angular/core';
5
5
  import * as forty_cdk_table from 'forty-cdk/table';
6
6
  import * as i1 from 'forty-cdk/drag-drop';
7
7
 
@@ -371,6 +371,13 @@ declare class ForTableRow implements ForTableRowContext {
371
371
  */
372
372
  declare class ForTableHeaderCell {
373
373
  protected readonly ctx: forty_cdk_table.ForTableContext;
374
+ /**
375
+ * The header cell's host element (`role="columnheader"`). Exposed so a descendant
376
+ * `[forTableColumnResizer]` can resolve the enclosing cell through DI to measure its
377
+ * base width — robust to `hostDirectives` composition, where the `[forTableHeaderCell]`
378
+ * selector attribute is not reflected onto the wrapper's host element.
379
+ */
380
+ readonly el: ElementRef<HTMLElement>;
374
381
  /** Column identifier, reflected as `data-column`. Required by later phases (sort, resize, reorder). */
375
382
  readonly name: _angular_core.InputSignal<string>;
376
383
  /**
@@ -504,6 +504,34 @@ interface ForTreeDefaults {
504
504
  * unless the UX truly benefits from selection following focus.
505
505
  */
506
506
  selectionFollowsFocus: boolean;
507
+ /**
508
+ * `[forTreeNodeDrag]` announcement when a node is picked up for drag
509
+ * (assertive). Override to localize.
510
+ */
511
+ dragAnnounceLift: (label: string) => string;
512
+ /**
513
+ * `[forTreeNodeDrag]` announcement on each intermediate move while a node is
514
+ * lifted (polite). `position` / `total` are 1-based; `parentLabel` is `null`
515
+ * at the root, so the consumer phrases the root-vs-parent distinction in
516
+ * their own language. Override to localize.
517
+ */
518
+ dragAnnounceMove: (label: string, parentLabel: string | null, position: number, total: number) => string;
519
+ /**
520
+ * `[forTreeNodeDrag]` announcement when a node is committed to its new
521
+ * position (assertive). `position` / `total` are 1-based; `parentLabel` is
522
+ * `null` at the root. Override to localize.
523
+ */
524
+ dragAnnounceDrop: (label: string, parentLabel: string | null, position: number, total: number) => string;
525
+ /**
526
+ * `[forTreeNodeDrag]` announcement when a lift is cancelled and the node
527
+ * returns to its origin (assertive). Override to localize.
528
+ */
529
+ dragAnnounceCancel: (label: string) => string;
530
+ /**
531
+ * `[forTreeNodeDrag]` announcement when a `canDrop` veto rejects the
532
+ * attempted drop (assertive). Override to localize.
533
+ */
534
+ dragAnnounceInvalid: (label: string) => string;
507
535
  }
508
536
  /** Token holding the resolved tree defaults for the current scope. */
509
537
  declare const FOR_TREE_DEFAULTS: _angular_core.InjectionToken<ForTreeDefaults>;