forty-cdk 0.1.0 → 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.
@@ -651,12 +651,16 @@ class Collection {
651
651
  */
652
652
  /**
653
653
  * Maps a keyboard event to a 1D navigation action, or `null` if the key is
654
- * not handled by the configured orientation.
654
+ * not handled by the configured orientation. `'both'` and `'mixed'` accept
655
+ * every arrow direction and map each to a linear `next` / `previous` step —
656
+ * `'mixed'` models a visually-wrapped grid as a 1D DOM sequence, so there is no
657
+ * separate row/column keyboard step.
655
658
  */
656
659
  function resolveListNavigation(event, options) {
657
660
  const { orientation, dir = 'ltr', pageKeys = false } = options;
658
- const acceptsVertical = orientation === 'vertical' || orientation === 'both';
659
- const acceptsHorizontal = orientation === 'horizontal' || orientation === 'both';
661
+ const acceptsBothAxes = orientation === 'both' || orientation === 'mixed';
662
+ const acceptsVertical = orientation === 'vertical' || acceptsBothAxes;
663
+ const acceptsHorizontal = orientation === 'horizontal' || acceptsBothAxes;
660
664
  switch (event.key) {
661
665
  case 'Home':
662
666
  return 'first';
@@ -2768,6 +2772,7 @@ class ForSearch extends TextValueControlBase {
2768
2772
  */
2769
2773
  clear() {
2770
2774
  this.value.set('');
2775
+ this.#host.nativeElement.value = '';
2771
2776
  }
2772
2777
  /**
2773
2778
  * Moves focus to the native input element. Called by `[forSearchClear]`
@@ -6789,6 +6794,32 @@ class ForTooltip {
6789
6794
  this.#disarmContentGrace();
6790
6795
  this.#hoverIntent.cancelPending();
6791
6796
  }
6797
+ /**
6798
+ * Imperatively opens the tooltip — for programmatic control beyond hover and
6799
+ * focus (e.g. a design-system wrapper driving the tooltip from a
6800
+ * text-truncation observer). Schedules the show after the resolved
6801
+ * `openDelay` (instant when the delay is `0` or the scope's skip-delay window
6802
+ * is active) and applies the same gates as a hover / focus open: a no-op
6803
+ * while `disabled`, and a no-op under `showOnOverflow` when the trigger's own
6804
+ * text is not truncated. For an instant, unconditional open that bypasses the
6805
+ * delay and both gates, write the `[(open)]` model directly (`open.set(true)`).
6806
+ */
6807
+ show() {
6808
+ if (this.#suppressedByOverflow()) {
6809
+ return;
6810
+ }
6811
+ this.#hoverIntent.scheduleOpen();
6812
+ }
6813
+ /**
6814
+ * Imperatively closes the tooltip, mirroring a hover-leave / blur close:
6815
+ * schedules the hide after the resolved `closeDelay` (instant when the delay
6816
+ * is `0`) and disarms the hoverable-content grace bridge. For an instant
6817
+ * close that ignores `closeDelay`, write the `[(open)]` model directly
6818
+ * (`open.set(false)`).
6819
+ */
6820
+ hide() {
6821
+ this.scheduleClose('hover');
6822
+ }
6792
6823
  /** Close only when no keep-alive source (trigger hover/focus, content hover) is active. */
6793
6824
  #scheduleCloseIfInactive() {
6794
6825
  if (this.#triggerHovered || this.#triggerFocused || this.#contentHovered) {
@@ -23763,6 +23794,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImpor
23763
23794
  * Per-toast classes: a config's `class` / `classList` is applied to the
23764
23795
  * rendered toast root, merged with the directive's own host attributes.
23765
23796
  *
23797
+ * Enter / exit animations: a toast renders inside this viewport's `@for`, so a
23798
+ * `[animate.leave]` on the row defers the unmount natively — the toast stays
23799
+ * mounted until its exit animation settles. Supply the class per-toast with
23800
+ * `show({ animateLeave })` or set a viewport-wide default with `[animateLeave]`
23801
+ * (per-toast wins); `[animateEnter]` mirrors it for class-applied entrances.
23802
+ *
23766
23803
  * Hotkey: pressing the configured `hotkey` (default `F6`) anywhere in the
23767
23804
  * document focuses the first toast. Override per-viewport with `[hotkey]`
23768
23805
  * or globally with `provideForToastDefaults({ hotkey: '…' })`. The listener
@@ -23828,6 +23865,23 @@ class ForToastViewport {
23828
23865
  * that doesn't override `swipeThreshold` in its own config.
23829
23866
  */
23830
23867
  swipeThreshold = input(50, { ...(ngDevMode ? { debugName: "swipeThreshold" } : /* istanbul ignore next */ {}), transform: numberAttribute });
23868
+ /**
23869
+ * Default `animate.enter` class applied to every programmatic toast that
23870
+ * doesn't set `animateEnter` in its own config. Empty (default) plays no
23871
+ * class-applied enter animation — a plain CSS `@keyframes` on `[forToast]`
23872
+ * already runs on mount without it.
23873
+ */
23874
+ animateEnter = input('', /* @ts-ignore */
23875
+ ...(ngDevMode ? [{ debugName: "animateEnter" }] : /* istanbul ignore next */ []));
23876
+ /**
23877
+ * Default `animate.leave` class applied to every programmatic toast that
23878
+ * doesn't set `animateLeave` in its own config. Empty (default) unmounts the
23879
+ * toast synchronously on dismiss; set it (or per-toast `animateLeave`) to
23880
+ * keep the toast mounted until its exit animation settles before it leaves
23881
+ * the DOM.
23882
+ */
23883
+ animateLeave = input('', /* @ts-ignore */
23884
+ ...(ngDevMode ? [{ debugName: "animateLeave" }] : /* istanbul ignore next */ []));
23831
23885
  defaultDuration = computed(() => this.#manager.defaultDuration(), /* @ts-ignore */
23832
23886
  ...(ngDevMode ? [{ debugName: "defaultDuration" }] : /* istanbul ignore next */ []));
23833
23887
  /**
@@ -23908,12 +23962,30 @@ class ForToastViewport {
23908
23962
  toastClass(toast) {
23909
23963
  return resolveConfigClass(toast.config) ?? '';
23910
23964
  }
23965
+ /**
23966
+ * `animate.enter` class for a toast row: its per-toast `animateEnter` config
23967
+ * when set, otherwise the viewport-level `[animateEnter]`. Empty when neither
23968
+ * is set.
23969
+ */
23970
+ toastAnimateEnter(toast) {
23971
+ return toast.config.animateEnter ?? this.animateEnter();
23972
+ }
23973
+ /**
23974
+ * `animate.leave` class for a toast row: its per-toast `animateLeave` config
23975
+ * when set, otherwise the viewport-level `[animateLeave]`. Empty when neither
23976
+ * is set, which keeps the toast's unmount synchronous on dismiss.
23977
+ */
23978
+ toastAnimateLeave(toast) {
23979
+ return toast.config.animateLeave ?? this.animateLeave();
23980
+ }
23911
23981
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ForToastViewport, deps: [], target: i0.ɵɵFactoryTarget.Component });
23912
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.2", type: ForToastViewport, isStandalone: true, selector: "for-toast-viewport, [forToastViewport]", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, region: { classPropertyName: "region", publicName: "region", isSignal: true, isRequired: false, transformFunction: null }, hotkey: { classPropertyName: "hotkey", publicName: "hotkey", isSignal: true, isRequired: false, transformFunction: null }, maxVisible: { classPropertyName: "maxVisible", publicName: "maxVisible", isSignal: true, isRequired: false, transformFunction: null }, swipeDirection: { classPropertyName: "swipeDirection", publicName: "swipeDirection", isSignal: true, isRequired: false, transformFunction: null }, swipeThreshold: { classPropertyName: "swipeThreshold", publicName: "swipeThreshold", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "region", "tabindex": "-1" }, properties: { "attr.aria-label": "label()", "attr.data-region": "region()", "attr.data-toast-count": "visible().length" } }, exportAs: ["forToastViewport"], ngImport: i0, template: `
23982
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.2", type: ForToastViewport, isStandalone: true, selector: "for-toast-viewport, [forToastViewport]", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, region: { classPropertyName: "region", publicName: "region", isSignal: true, isRequired: false, transformFunction: null }, hotkey: { classPropertyName: "hotkey", publicName: "hotkey", isSignal: true, isRequired: false, transformFunction: null }, maxVisible: { classPropertyName: "maxVisible", publicName: "maxVisible", isSignal: true, isRequired: false, transformFunction: null }, swipeDirection: { classPropertyName: "swipeDirection", publicName: "swipeDirection", isSignal: true, isRequired: false, transformFunction: null }, swipeThreshold: { classPropertyName: "swipeThreshold", publicName: "swipeThreshold", isSignal: true, isRequired: false, transformFunction: null }, animateEnter: { classPropertyName: "animateEnter", publicName: "animateEnter", isSignal: true, isRequired: false, transformFunction: null }, animateLeave: { classPropertyName: "animateLeave", publicName: "animateLeave", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "region", "tabindex": "-1" }, properties: { "attr.aria-label": "label()", "attr.data-region": "region()", "attr.data-toast-count": "visible().length" } }, exportAs: ["forToastViewport"], ngImport: i0, template: `
23913
23983
  @for (toast of visible(); track toast.id; let i = $index) {
23914
23984
  <div
23915
23985
  forToast
23916
23986
  [class]="toastClass(toast)"
23987
+ [animate.enter]="toastAnimateEnter(toast)"
23988
+ [animate.leave]="toastAnimateLeave(toast)"
23917
23989
  [variant]="toast.config.variant ?? 'info'"
23918
23990
  [duration]="toast.config.duration ?? defaultDuration()"
23919
23991
  [closable]="toast.config.closable !== false"
@@ -23977,6 +24049,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImpor
23977
24049
  <div
23978
24050
  forToast
23979
24051
  [class]="toastClass(toast)"
24052
+ [animate.enter]="toastAnimateEnter(toast)"
24053
+ [animate.leave]="toastAnimateLeave(toast)"
23980
24054
  [variant]="toast.config.variant ?? 'info'"
23981
24055
  [duration]="toast.config.duration ?? defaultDuration()"
23982
24056
  [closable]="toast.config.closable !== false"
@@ -24013,7 +24087,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImpor
24013
24087
  }
24014
24088
  `,
24015
24089
  }]
24016
- }], ctorParameters: () => [], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], region: [{ type: i0.Input, args: [{ isSignal: true, alias: "region", required: false }] }], hotkey: [{ type: i0.Input, args: [{ isSignal: true, alias: "hotkey", required: false }] }], maxVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxVisible", required: false }] }], swipeDirection: [{ type: i0.Input, args: [{ isSignal: true, alias: "swipeDirection", required: false }] }], swipeThreshold: [{ type: i0.Input, args: [{ isSignal: true, alias: "swipeThreshold", required: false }] }] } });
24090
+ }], ctorParameters: () => [], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], region: [{ type: i0.Input, args: [{ isSignal: true, alias: "region", required: false }] }], hotkey: [{ type: i0.Input, args: [{ isSignal: true, alias: "hotkey", required: false }] }], maxVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxVisible", required: false }] }], swipeDirection: [{ type: i0.Input, args: [{ isSignal: true, alias: "swipeDirection", required: false }] }], swipeThreshold: [{ type: i0.Input, args: [{ isSignal: true, alias: "swipeThreshold", required: false }] }], animateEnter: [{ type: i0.Input, args: [{ isSignal: true, alias: "animateEnter", required: false }] }], animateLeave: [{ type: i0.Input, args: [{ isSignal: true, alias: "animateLeave", required: false }] }] } });
24017
24091
 
24018
24092
  /**
24019
24093
  * Headless static separator implementing the
@@ -29412,7 +29486,7 @@ function resolveLiftGap(rows, visibleAfter, visibleIdx, mode) {
29412
29486
  return gap < 0 ? rows.length : gap;
29413
29487
  }
29414
29488
 
29415
- const POINTER_ARM_THRESHOLD_PX$1 = 5;
29489
+ const POINTER_ARM_THRESHOLD_PX$2 = 5;
29416
29490
  /** InjectionToken for the `[forTreeNodeDrag]` coordinator. */
29417
29491
  const FOR_TREE_NODE_DRAG_CONTEXT = new InjectionToken('FOR_TREE_NODE_DRAG_CONTEXT');
29418
29492
  /**
@@ -29478,7 +29552,7 @@ class ForTreeNodeDrag {
29478
29552
  this.#pointerSession = createPointerDragSession({
29479
29553
  host: this.#hostEl,
29480
29554
  document: this.#document,
29481
- armThreshold: POINTER_ARM_THRESHOLD_PX$1,
29555
+ armThreshold: POINTER_ARM_THRESHOLD_PX$2,
29482
29556
  canStart: (event) => this.#canStartPointer(event),
29483
29557
  onLift: (event) => this.#onPointerLift(event),
29484
29558
  onMove: (event) => this.#onPointerMove(event),
@@ -38520,6 +38594,9 @@ function clampedDistance(rect, x, y) {
38520
38594
  return Math.hypot(x - cx, y - cy);
38521
38595
  }
38522
38596
  function insertionIndex(itemRects, x, y, orientation, dir) {
38597
+ if (orientation === 'mixed') {
38598
+ return mixedInsertionIndex(itemRects, x, y, dir);
38599
+ }
38523
38600
  for (let i = 0; i < itemRects.length; i++) {
38524
38601
  const r = itemRects[i];
38525
38602
  const past = orientation === 'vertical'
@@ -38533,13 +38610,51 @@ function insertionIndex(itemRects, x, y, orientation, dir) {
38533
38610
  }
38534
38611
  return itemRects.length;
38535
38612
  }
38613
+ function mixedInsertionIndex(itemRects, x, y, dir) {
38614
+ if (isSingleRow(itemRects)) {
38615
+ return insertionIndex(itemRects, x, y, 'horizontal', dir);
38616
+ }
38617
+ if (isSingleColumn(itemRects)) {
38618
+ return insertionIndex(itemRects, x, y, 'vertical', dir);
38619
+ }
38620
+ for (let i = 0; i < itemRects.length; i++) {
38621
+ const r = itemRects[i];
38622
+ const beforeRow = y < r.top;
38623
+ const withinRow = y <= r.bottom;
38624
+ const pastColumn = dir === 'rtl' ? x > (r.left + r.right) / 2 : x < (r.left + r.right) / 2;
38625
+ if (beforeRow || (withinRow && pastColumn)) {
38626
+ return i;
38627
+ }
38628
+ }
38629
+ return itemRects.length;
38630
+ }
38631
+ function isSingleRow(itemRects) {
38632
+ let maxTop = -Infinity;
38633
+ let minBottom = Infinity;
38634
+ for (const r of itemRects) {
38635
+ maxTop = Math.max(maxTop, r.top);
38636
+ minBottom = Math.min(minBottom, r.bottom);
38637
+ }
38638
+ return maxTop < minBottom;
38639
+ }
38640
+ function isSingleColumn(itemRects) {
38641
+ let maxLeft = -Infinity;
38642
+ let minRight = Infinity;
38643
+ for (const r of itemRects) {
38644
+ maxLeft = Math.max(maxLeft, r.left);
38645
+ minRight = Math.min(minRight, r.right);
38646
+ }
38647
+ return maxLeft < minRight;
38648
+ }
38536
38649
  /**
38537
38650
  * Resolves the drop target container and insertion index from a pointer position.
38538
38651
  *
38539
38652
  * @param point Viewport pointer coordinates.
38540
38653
  * @param containers Ordered `[source, ...connected]` container geometries.
38541
- * @param orientation List axis — `'horizontal'` or `'vertical'`.
38542
- * @param dir Writing direction for horizontal insertion-index math.
38654
+ * @param orientation List axis — `'horizontal'`, `'vertical'`, or `'mixed'` (2D resolution for
38655
+ * wrapping grids of uniformly-sized items, considering both axes). `'mixed'` reduces to the
38656
+ * single-axis result when the items form a single row or a single column.
38657
+ * @param dir Writing direction for horizontal / mixed insertion-index math.
38543
38658
  * @returns The resolved `DropTarget`, or `null` when `containers` is empty.
38544
38659
  */
38545
38660
  function resolveDropTarget(point, containers, orientation, dir) {
@@ -38580,7 +38695,7 @@ const FOR_DRAGGABLE_CONTEXT = new InjectionToken('FOR_DRAGGABLE_CONTEXT');
38580
38695
  function injectDraggableContext(piece) {
38581
38696
  const ctx = inject(FOR_DRAGGABLE_CONTEXT, { optional: true });
38582
38697
  if (!ctx) {
38583
- throw new Error(`[forty-cdk/drag-drop] ${piece} must be used inside a [forDraggable] element.`);
38698
+ throw new Error(`[forty-cdk/drag-drop] ${piece} must be used inside a [forDraggable] or [forFreeDrag] element.`);
38584
38699
  }
38585
38700
  return ctx;
38586
38701
  }
@@ -39052,9 +39167,16 @@ class ForDropList {
39052
39167
  #prefersReducedMotion = injectPrefersReducedMotion();
39053
39168
  #defaultOrientation = inject(FOR_DROP_LIST_DEFAULT_ORIENTATION, { optional: true }) ?? 'vertical';
39054
39169
  /**
39055
- * Layout orientation of the list. Affects which arrow keys move focus and the lifted item.
39056
- * Defaults to `'vertical'`, or to `FOR_DROP_LIST_DEFAULT_ORIENTATION` when an in-scope
39057
- * provider sets it (e.g. `ForTableColumnReorder` defaults it to `'horizontal'`).
39170
+ * Layout orientation of the list. Affects which arrow keys move focus and the lifted item, and
39171
+ * how a pointer drag resolves the live drop index. Defaults to `'vertical'`, or to
39172
+ * `FOR_DROP_LIST_DEFAULT_ORIENTATION` when an in-scope provider sets it (e.g.
39173
+ * `ForTableColumnReorder` defaults it to `'horizontal'`).
39174
+ *
39175
+ * `'mixed'` is for wrapping grids (`flex-wrap` / CSS grid) of uniformly-sized items: the drop
39176
+ * index is resolved in 2D so an item flowing across rows lands in the slot under the pointer's
39177
+ * row and column, and every arrow key steps the lifted item linearly in DOM order. A `'mixed'`
39178
+ * list that happens to render as a single row or single column resolves identically to
39179
+ * `'horizontal'` / `'vertical'`.
39058
39180
  */
39059
39181
  orientation = input(this.#defaultOrientation, /* @ts-ignore */
39060
39182
  ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
@@ -39502,7 +39624,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImpor
39502
39624
  }]
39503
39625
  }], ctorParameters: () => [] });
39504
39626
 
39505
- const POINTER_ARM_THRESHOLD_PX = 5;
39627
+ const POINTER_ARM_THRESHOLD_PX$1 = 5;
39506
39628
  /**
39507
39629
  * Marks an element as a draggable item inside a `[forDropList]`. Handles
39508
39630
  * keyboard and pointer interaction for lift, move, drop, and cancel.
@@ -39574,7 +39696,7 @@ class ForDraggable {
39574
39696
  this.#pointerSession = createPointerDragSession({
39575
39697
  host: this.#host.nativeElement,
39576
39698
  document: this.#document,
39577
- armThreshold: POINTER_ARM_THRESHOLD_PX,
39699
+ armThreshold: POINTER_ARM_THRESHOLD_PX$1,
39578
39700
  cancelOnEscape: true,
39579
39701
  capturePointer: true,
39580
39702
  canStart: (event) => this.#canStartPointer(event),
@@ -39747,6 +39869,184 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImpor
39747
39869
  }]
39748
39870
  }], ctorParameters: () => [], propDecorators: { previewTpl: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ForDragPreview), { isSignal: true }] }], placeholderTpl: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ForDragPlaceholder), { isSignal: true }] }], dragData: [{ type: i0.Input, args: [{ isSignal: true, alias: "dragData", required: true }] }], dragDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "dragDisabled", required: false }] }], dragStart: [{ type: i0.Output, args: ["dragStart"] }], dragEnd: [{ type: i0.Output, args: ["dragEnd"] }] } });
39749
39871
 
39872
+ const POINTER_ARM_THRESHOLD_PX = 5;
39873
+ /**
39874
+ * Standalone free-drag directive: repositions its host (or a resolved `rootElement`) by pointer
39875
+ * drag via a CSS `transform: translate(...)`, with **no** `[forDropList]` dependency. Unlike
39876
+ * `[forDraggable]`, it never commits a reorder — it only moves an arbitrary element around,
39877
+ * optionally confined to a `boundary` and locked to one axis. Composes the shared
39878
+ * `createPointerDragSession` transport and accepts `[forDragHandle]` children.
39879
+ *
39880
+ * Pointer-only: there is no WAI-ARIA APG pattern for "freely reposition an element", so this is
39881
+ * a documented headless exception (see `.claude/rules/conventions.md`). It owns no role or ARIA
39882
+ * state and must not destroy the moved element's semantics — the consumer keeps the moved
39883
+ * element operable at its default position (e.g. a repositionable dialog stays usable by
39884
+ * keyboard); dragging is a pointer convenience, not the only way to use it.
39885
+ */
39886
+ class ForFreeDrag {
39887
+ #host = inject(ElementRef);
39888
+ #document = inject(DOCUMENT);
39889
+ #destroyRef = inject(DestroyRef);
39890
+ #isBrowser = isPlatformBrowser(inject(PLATFORM_ID));
39891
+ #handles = new Set();
39892
+ #lift = signal(null, /* @ts-ignore */
39893
+ ...(ngDevMode ? [{ debugName: "#lift" }] : /* istanbul ignore next */ []));
39894
+ #pointerSession = null;
39895
+ /** When true, the element can't be dragged (it stays focusable; the transform doesn't change). */
39896
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
39897
+ /**
39898
+ * The element actually moved: an `HTMLElement`, or a selector resolved via `closest()` from the
39899
+ * host. `null` (the default) moves the host itself. Mirrors CDK's `cdkDragRootElement` — drag a
39900
+ * child handle, move an ancestor (e.g. drag a whole dialog by its header).
39901
+ */
39902
+ rootElement = input(null, /* @ts-ignore */
39903
+ ...(ngDevMode ? [{ debugName: "rootElement" }] : /* istanbul ignore next */ []));
39904
+ /**
39905
+ * Confine movement within an `HTMLElement`, a `closest()` selector resolved from the host, or
39906
+ * `null` (the default) for unbounded movement. Unlike `[forDropList]`'s boundary (which clamps a
39907
+ * floating clone), this clamps the **real moved element** so its box stays fully inside.
39908
+ */
39909
+ boundary = input(null, /* @ts-ignore */
39910
+ ...(ngDevMode ? [{ debugName: "boundary" }] : /* istanbul ignore next */ []));
39911
+ /**
39912
+ * Constrain movement to one axis. `'x'` pins the element at its lift-time `y` (horizontal-only);
39913
+ * `'y'` pins it at its lift-time `x` (vertical-only). `null` (the default) is free.
39914
+ */
39915
+ lockAxis = input(null, /* @ts-ignore */
39916
+ ...(ngDevMode ? [{ debugName: "lockAxis" }] : /* istanbul ignore next */ []));
39917
+ /** Two-way translate offset (px) from the element's natural position. Controllable / restorable. */
39918
+ position = model({ x: 0, y: 0 }, /* @ts-ignore */
39919
+ ...(ngDevMode ? [{ debugName: "position" }] : /* istanbul ignore next */ []));
39920
+ /** Emitted when a pointer drag starts, with the lift-time position. */
39921
+ dragStart = output();
39922
+ /**
39923
+ * Emitted on every armed move with the live position. (Non-native verb — `dragMove`, not
39924
+ * `drag` / `dragMoved` — so `@angular-eslint/no-output-native` stays clear.)
39925
+ */
39926
+ dragMove = output();
39927
+ /** Emitted when the drag ends, with the final position. */
39928
+ dragEnd = output();
39929
+ /** True while a pointer drag is armed. Reflected as `data-dragging`. */
39930
+ dragging = computed(() => this.#lift() !== null, /* @ts-ignore */
39931
+ ...(ngDevMode ? [{ debugName: "dragging" }] : /* istanbul ignore next */ []));
39932
+ touchAction = computed(() => !this.disabled() && this.#handles.size === 0 ? 'none' : null, /* @ts-ignore */
39933
+ ...(ngDevMode ? [{ debugName: "touchAction" }] : /* istanbul ignore next */ []));
39934
+ constructor() {
39935
+ if (this.#isBrowser) {
39936
+ effect(() => {
39937
+ const { x, y } = this.position();
39938
+ const el = this.#resolvedRoot();
39939
+ el.style.transform = x === 0 && y === 0 ? '' : `translate(${x}px, ${y}px)`;
39940
+ });
39941
+ this.#pointerSession = createPointerDragSession({
39942
+ host: this.#host.nativeElement,
39943
+ document: this.#document,
39944
+ armThreshold: POINTER_ARM_THRESHOLD_PX,
39945
+ cancelOnEscape: true,
39946
+ capturePointer: true,
39947
+ canStart: (event) => this.#canStartPointer(event),
39948
+ onLift: (event) => this.#onLift(event),
39949
+ onMove: (event) => this.#onMove(event),
39950
+ onCommit: () => this.#onCommit(),
39951
+ onCancel: () => this.#onCancel(),
39952
+ });
39953
+ this.#destroyRef.onDestroy(() => this.#pointerSession?.destroy());
39954
+ }
39955
+ }
39956
+ registerHandle(el) {
39957
+ this.#handles.add(el);
39958
+ }
39959
+ unregisterHandle(el) {
39960
+ this.#handles.delete(el);
39961
+ }
39962
+ #resolvedRoot = computed(() => {
39963
+ const root = this.rootElement();
39964
+ const host = this.#host.nativeElement;
39965
+ if (root === null) {
39966
+ return host;
39967
+ }
39968
+ return typeof root === 'string' ? (host.closest(root) ?? host) : root;
39969
+ }, /* @ts-ignore */
39970
+ ...(ngDevMode ? [{ debugName: "#resolvedRoot" }] : /* istanbul ignore next */ []));
39971
+ #resolveBoundary() {
39972
+ const boundary = this.boundary();
39973
+ if (boundary === null) {
39974
+ return null;
39975
+ }
39976
+ return typeof boundary === 'string'
39977
+ ? this.#host.nativeElement.closest(boundary)
39978
+ : boundary;
39979
+ }
39980
+ #canStartPointer(event) {
39981
+ if (this.disabled()) {
39982
+ return false;
39983
+ }
39984
+ if (event.pointerType === 'mouse' && event.button !== 0) {
39985
+ return false;
39986
+ }
39987
+ if (this.#handles.size === 0) {
39988
+ return true;
39989
+ }
39990
+ const target = event.target;
39991
+ return target !== null && [...this.#handles].some((h) => h.contains(target));
39992
+ }
39993
+ #onLift(event) {
39994
+ const rect = this.#resolvedRoot().getBoundingClientRect();
39995
+ const position = this.position();
39996
+ this.#lift.set({
39997
+ point: { x: event.clientX, y: event.clientY },
39998
+ position,
39999
+ topLeft: { x: rect.left, y: rect.top },
40000
+ natural: { x: rect.left - position.x, y: rect.top - position.y },
40001
+ size: { width: rect.width, height: rect.height },
40002
+ });
40003
+ this.dragStart.emit(position);
40004
+ return true;
40005
+ }
40006
+ #onMove(event) {
40007
+ const lift = this.#lift();
40008
+ if (!lift) {
40009
+ return;
40010
+ }
40011
+ const desired = {
40012
+ x: lift.topLeft.x + (event.clientX - lift.point.x),
40013
+ y: lift.topLeft.y + (event.clientY - lift.point.y),
40014
+ };
40015
+ const boundaryRect = this.#resolveBoundary()?.getBoundingClientRect() ?? null;
40016
+ const clamped = clampPreviewPosition(desired, lift.size, boundaryRect, this.lockAxis(), lift.topLeft);
40017
+ const next = { x: clamped.x - lift.natural.x, y: clamped.y - lift.natural.y };
40018
+ this.position.set(next);
40019
+ this.dragMove.emit(next);
40020
+ }
40021
+ #onCommit() {
40022
+ this.#lift.set(null);
40023
+ this.dragEnd.emit(this.position());
40024
+ }
40025
+ #onCancel() {
40026
+ const lift = this.#lift();
40027
+ if (lift) {
40028
+ this.position.set(lift.position);
40029
+ }
40030
+ this.#lift.set(null);
40031
+ this.dragEnd.emit(this.position());
40032
+ }
40033
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ForFreeDrag, deps: [], target: i0.ɵɵFactoryTarget.Directive });
40034
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.2", type: ForFreeDrag, isStandalone: true, selector: "[forFreeDrag]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, rootElement: { classPropertyName: "rootElement", publicName: "rootElement", isSignal: true, isRequired: false, transformFunction: null }, boundary: { classPropertyName: "boundary", publicName: "boundary", isSignal: true, isRequired: false, transformFunction: null }, lockAxis: { classPropertyName: "lockAxis", publicName: "lockAxis", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { position: "positionChange", dragStart: "dragStart", dragMove: "dragMove", dragEnd: "dragEnd" }, host: { properties: { "attr.data-dragging": "dragging() ? '' : null", "attr.data-disabled": "disabled() ? '' : null", "style.touch-action": "touchAction()" } }, providers: [{ provide: FOR_DRAGGABLE_CONTEXT, useExisting: ForFreeDrag }], exportAs: ["forFreeDrag"], ngImport: i0 });
40035
+ }
40036
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: ForFreeDrag, decorators: [{
40037
+ type: Directive,
40038
+ args: [{
40039
+ selector: '[forFreeDrag]',
40040
+ exportAs: 'forFreeDrag',
40041
+ providers: [{ provide: FOR_DRAGGABLE_CONTEXT, useExisting: ForFreeDrag }],
40042
+ host: {
40043
+ '[attr.data-dragging]': "dragging() ? '' : null",
40044
+ '[attr.data-disabled]': "disabled() ? '' : null",
40045
+ '[style.touch-action]': 'touchAction()',
40046
+ },
40047
+ }]
40048
+ }], ctorParameters: () => [], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], rootElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "rootElement", required: false }] }], boundary: [{ type: i0.Input, args: [{ isSignal: true, alias: "boundary", required: false }] }], lockAxis: [{ type: i0.Input, args: [{ isSignal: true, alias: "lockAxis", required: false }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }, { type: i0.Output, args: ["positionChange"] }], dragStart: [{ type: i0.Output, args: ["dragStart"] }], dragMove: [{ type: i0.Output, args: ["dragMove"] }], dragEnd: [{ type: i0.Output, args: ["dragEnd"] }] } });
40049
+
39750
40050
  /**
39751
40051
  * Optional drag handle inside a `[forDraggable]`. When at least one handle is present on an item, a pointer
39752
40052
  * drag may only start from within a handle (keyboard dragging is unaffected). Apply on a child element.
@@ -43010,5 +43310,5 @@ function provideForFileUploadDefaults(defaults = {}) {
43010
43310
  * Generated bundle index. Do not edit.
43011
43311
  */
43012
43312
 
43013
- export { DEFAULT_DATE_FIELD_SEGMENT_LABELS, DEFAULT_TIME_FIELD_SEGMENT_LABELS, DEFAULT_TOAST_REGION, FOR_ACCORDION_CONTEXT, FOR_ACCORDION_DEFAULTS, FOR_ACCORDION_ITEM_CONTEXT, FOR_ASPECT_RATIO_DEFAULTS, FOR_AVATAR_CONTEXT, FOR_AVATAR_DEFAULTS, FOR_BREADCRUMBS_DEFAULTS, FOR_BUTTON_DEFAULTS, FOR_CALENDAR_CONTEXT, FOR_CALENDAR_DEFAULTS, FOR_CAROUSEL_CONTEXT, FOR_CAROUSEL_DEFAULTS, FOR_CHECKBOX, FOR_CHECKBOX_DEFAULTS, FOR_CHECKBOX_HOST_DIRECTIVE_INPUTS, FOR_CHECKBOX_HOST_DIRECTIVE_OUTPUTS, FOR_COMBOBOX_CONTEXT, FOR_COMBOBOX_DEFAULTS, FOR_COMBOBOX_HOST_DIRECTIVE_INPUTS, FOR_COMBOBOX_HOST_DIRECTIVE_OUTPUTS, FOR_COMBOBOX_OPTION, FOR_CONTEXT_MENU_CONTEXT, FOR_CONTEXT_MENU_DEFAULTS, FOR_DATE_ADAPTER, FOR_DATE_FIELD_CONTEXT, FOR_DATE_FIELD_DEFAULTS, FOR_DATE_FIELD_HOST_DIRECTIVE_INPUTS, FOR_DATE_FIELD_HOST_DIRECTIVE_OUTPUTS, FOR_DATE_PICKER_CONTEXT, FOR_DATE_PICKER_DEFAULTS, FOR_DATE_PICKER_HOST_DIRECTIVE_INPUTS, FOR_DATE_PICKER_HOST_DIRECTIVE_OUTPUTS, FOR_DIALOG_CONTEXT, FOR_DIALOG_DATA, FOR_DIALOG_DEFAULTS, FOR_DISCLOSURE_CONTEXT, FOR_DISCLOSURE_DEFAULTS, FOR_DRAG_DROP_CONTEXT, FOR_DRAG_DROP_DEFAULTS, FOR_DRAWER_CONTEXT, FOR_DRAWER_DATA, FOR_DRAWER_DEFAULTS, FOR_DROPDOWN_MENU_DEFAULTS, FOR_DROP_LIST_DEFAULT_ORIENTATION, FOR_DROP_LIST_GROUP, FOR_FIELDSET_CONTEXT, FOR_FIELDSET_DEFAULTS, FOR_FIELD_CONTEXT, FOR_FIELD_DEFAULTS, FOR_FILE_UPLOAD_CONTEXT, FOR_FILE_UPLOAD_DEFAULTS, FOR_HOVER_CARD_CONTEXT, FOR_HOVER_CARD_DEFAULTS, FOR_ID_SALT, FOR_INPUT_DEFAULTS, FOR_INPUT_HOST_DIRECTIVE_INPUTS, FOR_INPUT_HOST_DIRECTIVE_OUTPUTS, FOR_LISTBOX_CONTEXT, FOR_LISTBOX_DEFAULTS, FOR_LISTBOX_HOST_DIRECTIVE_INPUTS, FOR_LISTBOX_HOST_DIRECTIVE_OUTPUTS, FOR_LISTBOX_OPTION, FOR_MENUBAR_CONTEXT, FOR_MENUBAR_DEFAULTS, FOR_MENU_CHECKBOX_ITEM, FOR_MENU_CONTEXT, FOR_MENU_DEFAULTS, FOR_MENU_GROUP_CONTEXT, FOR_MENU_RADIO_GROUP_CONTEXT, FOR_MENU_RADIO_ITEM, FOR_METER_CONTEXT, FOR_METER_DEFAULTS, FOR_NAVIGATION_MENU_CONTEXT, FOR_NAVIGATION_MENU_DEFAULTS, FOR_NAVIGATION_MENU_ITEM_CONTEXT, FOR_NUMBER_INPUT_DEFAULTS, FOR_NUMBER_INPUT_GROUP, FOR_NUMBER_INPUT_HOST_DIRECTIVE_INPUTS, FOR_NUMBER_INPUT_HOST_DIRECTIVE_OUTPUTS, FOR_OTP_INPUT_CONTEXT, FOR_OTP_INPUT_DEFAULTS, FOR_OTP_INPUT_HOST_DIRECTIVE_INPUTS, FOR_OTP_INPUT_HOST_DIRECTIVE_OUTPUTS, FOR_PAGINATION_CONTEXT, FOR_PAGINATION_DEFAULTS, FOR_PANE_RESIZER_DEFAULTS, FOR_POPOVER_CONTEXT, FOR_POPOVER_DEFAULTS, FOR_PROGRESS_CONTEXT, FOR_PROGRESS_DEFAULTS, FOR_RADIO, FOR_RADIO_GROUP_CONTEXT, FOR_RADIO_GROUP_DEFAULTS, FOR_RADIO_GROUP_HOST_DIRECTIVE_INPUTS, FOR_RADIO_GROUP_HOST_DIRECTIVE_OUTPUTS, FOR_SCROLL_AREA_CONTEXT, FOR_SCROLL_AREA_DEFAULTS, FOR_SEARCH_DEFAULTS, FOR_SEARCH_HOST_DIRECTIVE_INPUTS, FOR_SEARCH_HOST_DIRECTIVE_OUTPUTS, FOR_SELECT_CONTEXT, FOR_SELECT_DEFAULTS, FOR_SELECT_HOST_DIRECTIVE_INPUTS, FOR_SELECT_HOST_DIRECTIVE_OUTPUTS, FOR_SELECT_OPTION, FOR_SEPARATOR_DEFAULTS, FOR_SLIDER_CONTEXT, FOR_SLIDER_DEFAULTS, FOR_SLIDER_HOST_DIRECTIVE_INPUTS, FOR_SLIDER_HOST_DIRECTIVE_OUTPUTS, FOR_STEPPER_CONTEXT, FOR_STEPPER_DEFAULTS, FOR_STEPPER_ITEM_CONTEXT, FOR_SWITCH_DEFAULTS, FOR_SWITCH_HOST_DIRECTIVE_INPUTS, FOR_SWITCH_HOST_DIRECTIVE_OUTPUTS, FOR_TABLE_CONTEXT, FOR_TABLE_DEFAULTS, FOR_TABS_CONTEXT, FOR_TABS_DEFAULTS, FOR_TEXTAREA_HOST_DIRECTIVE_INPUTS, FOR_TEXTAREA_HOST_DIRECTIVE_OUTPUTS, FOR_TIME_FIELD_CONTEXT, FOR_TIME_FIELD_DEFAULTS, FOR_TIME_FIELD_HOST_DIRECTIVE_INPUTS, FOR_TIME_FIELD_HOST_DIRECTIVE_OUTPUTS, FOR_TIME_PICKER_CONTEXT, FOR_TIME_PICKER_DEFAULTS, FOR_TIME_PICKER_HOST_DIRECTIVE_INPUTS, FOR_TIME_PICKER_HOST_DIRECTIVE_OUTPUTS, FOR_TIME_VALUE_SOURCE, FOR_TOAST_CONTEXT, FOR_TOAST_DEFAULTS, FOR_TOGGLE_DEFAULTS, FOR_TOGGLE_GROUP_CONTEXT, FOR_TOGGLE_GROUP_HOST_DIRECTIVE_INPUTS, FOR_TOGGLE_GROUP_HOST_DIRECTIVE_OUTPUTS, FOR_TOGGLE_HOST_DIRECTIVE_INPUTS, FOR_TOGGLE_HOST_DIRECTIVE_OUTPUTS, FOR_TOOLBAR_CONTEXT, FOR_TOOLBAR_DEFAULTS, FOR_TOOLTIP_CONTEXT, FOR_TOOLTIP_DEFAULTS, FOR_TREE_CONTAINER_CONTEXT, FOR_TREE_CONTEXT, FOR_TREE_DEFAULTS, FOR_TREE_ITEM_CONTEXT, FOR_TREE_NODE_DRAG_CONTEXT, ForAccordion, ForAccordionContent, ForAccordionItem, ForAccordionTrigger, ForAspectRatio, ForAvatar, ForAvatarFallback, ForAvatarImage, ForBreadcrumbItem, ForBreadcrumbSeparator, ForBreadcrumbs, ForButton, ForCalendar, ForCalendarCell, ForCalendarGrid, ForCalendarGridHeader, ForCalendarHeading, ForCalendarMonthCell, ForCalendarMonthGrid, ForCalendarMonthSelect, ForCalendarNextButton, ForCalendarPrevButton, ForCalendarViewTrigger, ForCalendarYearCell, ForCalendarYearGrid, ForCalendarYearSelect, ForCarousel, ForCarouselDrag, ForCarouselIndicator, ForCarouselIndicators, ForCarouselNext, ForCarouselPrevious, ForCarouselRotationControl, ForCarouselSlide, ForCarouselTrack, ForCarouselViewport, ForCheckbox, ForCheckboxIndicator, ForCombobox, ForComboboxAnchor, ForComboboxChip, ForComboboxChipRemove, ForComboboxChips, ForComboboxClear, ForComboboxContent, ForComboboxEmpty, ForComboboxGroup, ForComboboxGroupLabel, ForComboboxIndicator, ForComboboxInput, ForComboboxList, ForComboboxOption, ForComboboxSeparator, ForComboboxStatus, ForComboboxTrigger, ForContextMenu, ForContextMenuTrigger, ForDateField, ForDateFieldLiteral, ForDateFieldSegment, ForDatePicker, ForDatePickerAnchor, ForDatePickerContent, ForDatePickerTrigger, ForDatePickerValue, ForDialog, ForDialogBackdrop, ForDialogClose, ForDialogDescription, ForDialogManager, ForDialogRef, ForDialogTitle, ForDialogTrigger, ForDisclosure, ForDisclosureContent, ForDisclosureTrigger, ForDragHandle, ForDragPlaceholder, ForDragPreview, ForDraggable, ForDrawer, ForDrawerBackdrop, ForDrawerClose, ForDrawerDescription, ForDrawerHandle, ForDrawerManager, ForDrawerRef, ForDrawerTitle, ForDrawerTrigger, ForDrawerWrapper, ForDropList, ForDropListGroup, ForDropdownMenu, ForDropdownMenuTrigger, ForField, ForFieldControl, ForFieldDescription, ForFieldError, ForFieldset, ForFieldsetLegend, ForFileUpload, ForFileUploadInput, ForFileUploadTrigger, ForHoverCard, ForHoverCardArrow, ForHoverCardContent, ForHoverCardTrigger, ForInput, ForLabel, ForListbox, ForListboxGroup, ForListboxGroupLabel, ForListboxOption, ForListboxOptionIndicator, ForMenuCheckboxItem, ForMenuContent, ForMenuGroup, ForMenuGroupLabel, ForMenuItem, ForMenuItemIndicator, ForMenuRadioGroup, ForMenuRadioItem, ForMenuSeparator, ForMenuSub, ForMenuSubTrigger, ForMenubar, ForMenubarTrigger, ForMeter, ForMeterIndicator, ForNavigationMenu, ForNavigationMenuContent, ForNavigationMenuIndicator, ForNavigationMenuItem, ForNavigationMenuLink, ForNavigationMenuList, ForNavigationMenuTrigger, ForNavigationMenuViewport, ForNumberInput, ForNumberInputDecrement, ForNumberInputGroup, ForNumberInputIncrement, ForOtpInput, ForOtpInputSlot, ForPagination, ForPaginationItem, ForPaginationNext, ForPaginationPrevious, ForPaneResizer, ForPopover, ForPopoverAnchor, ForPopoverArrow, ForPopoverClose, ForPopoverContent, ForPopoverDescription, ForPopoverTitle, ForPopoverTrigger, ForProgress, ForProgressIndicator, ForRadio, ForRadioGroup, ForRadioIndicator, ForScrollArea, ForScrollAreaContent, ForScrollAreaCorner, ForScrollAreaScrollbar, ForScrollAreaThumb, ForScrollAreaViewport, ForSearch, ForSearchClear, ForSelect, ForSelectAnchor, ForSelectContent, ForSelectGroup, ForSelectGroupLabel, ForSelectIndicator, ForSelectOption, ForSelectSeparator, ForSelectTrigger, ForSelectValue, ForSeparator, ForSlider, ForSliderRange, ForSliderThumb, ForSliderTrack, ForStepper, ForStepperCompletedContent, ForStepperContent, ForStepperIndicator, ForStepperItem, ForStepperList, ForStepperNext, ForStepperPrevious, ForStepperProgress, ForStepperSeparator, ForStepperTrigger, ForSwitch, ForTable, ForTableCell, ForTableColumnReorder, ForTableColumnResizer, ForTableHeaderCell, ForTableHeaderRow, ForTableRow, ForTableRowReorder, ForTableRowSelector, ForTableSelectAll, ForTableSortHeader, ForTabs, ForTabsContent, ForTabsList, ForTabsTrigger, ForTextarea, ForTimeField, ForTimeFieldLiteral, ForTimeFieldSegment, ForTimePicker, ForTimePickerAnchor, ForTimePickerContent, ForTimePickerOption, ForTimePickerTrigger, ForTimePickerValue, ForToast, ForToastAction, ForToastClose, ForToastDescription, ForToastManager, ForToastRef, ForToastTitle, ForToastViewport, ForToggle, ForToggleGroup, ForToggleGroupItem, ForToolbar, ForToolbarButton, ForToolbarLink, ForToolbarSeparator, ForTooltip, ForTooltipArrow, ForTooltipContent, ForTooltipTrigger, ForTree, ForTreeGroup, ForTreeItem, ForTreeItemCheckbox, ForTreeItemCheckboxIndicator, ForTreeItemLabel, ForTreeItemToggle, ForTreeNodeDrag, ForTreeNodeDragHandle, NativeDateAdapter, OTP_REGEXP_ONLY_CHARS, OTP_REGEXP_ONLY_DIGITS, OTP_REGEXP_ONLY_DIGITS_AND_CHARS, assertTimeCapable, buildTimeSlots, expandToReveal, forSingleValueField, injectDateAdapter, injectDialogData, injectDrawerData, injectFieldWiring, injectNumberInputGroup, moveItemInArray, moveTreeNode, provideForAccordionDefaults, provideForAspectRatioDefaults, provideForAvatarDefaults, provideForBreadcrumbsDefaults, provideForButtonDefaults, provideForCalendarDefaults, provideForCarouselDefaults, provideForCheckboxDefaults, provideForComboboxDefaults, provideForContextMenuDefaults, provideForDateFieldDefaults, provideForDatePickerDefaults, provideForDialogDefaults, provideForDisclosureDefaults, provideForDragDropDefaults, provideForDrawerDefaults, provideForDropdownMenuDefaults, provideForFieldDefaults, provideForFieldsetDefaults, provideForFileUploadDefaults, provideForHoverCardDefaults, provideForIdSalt, provideForInputDefaults, provideForListboxDefaults, provideForMenuDefaults, provideForMenubarDefaults, provideForMeterDefaults, provideForNavigationMenuDefaults, provideForNumberInputDefaults, provideForOtpInputDefaults, provideForPaginationDefaults, provideForPaneResizerDefaults, provideForPopoverDefaults, provideForProgressDefaults, provideForRadioGroupDefaults, provideForScrollAreaDefaults, provideForSearchDefaults, provideForSelectDefaults, provideForSeparatorDefaults, provideForSliderDefaults, provideForStepperDefaults, provideForSwitchDefaults, provideForTableDefaults, provideForTabsDefaults, provideForTimeFieldDefaults, provideForTimePickerDefaults, provideForToastDefaults, provideForToggleDefaults, provideForToolbarDefaults, provideForTooltipDefaults, provideForTreeDefaults, provideNativeDateAdapter, transferArrayItem };
43313
+ export { DEFAULT_DATE_FIELD_SEGMENT_LABELS, DEFAULT_TIME_FIELD_SEGMENT_LABELS, DEFAULT_TOAST_REGION, FOR_ACCORDION_CONTEXT, FOR_ACCORDION_DEFAULTS, FOR_ACCORDION_ITEM_CONTEXT, FOR_ASPECT_RATIO_DEFAULTS, FOR_AVATAR_CONTEXT, FOR_AVATAR_DEFAULTS, FOR_BREADCRUMBS_DEFAULTS, FOR_BUTTON_DEFAULTS, FOR_CALENDAR_CONTEXT, FOR_CALENDAR_DEFAULTS, FOR_CAROUSEL_CONTEXT, FOR_CAROUSEL_DEFAULTS, FOR_CHECKBOX, FOR_CHECKBOX_DEFAULTS, FOR_CHECKBOX_HOST_DIRECTIVE_INPUTS, FOR_CHECKBOX_HOST_DIRECTIVE_OUTPUTS, FOR_COMBOBOX_CONTEXT, FOR_COMBOBOX_DEFAULTS, FOR_COMBOBOX_HOST_DIRECTIVE_INPUTS, FOR_COMBOBOX_HOST_DIRECTIVE_OUTPUTS, FOR_COMBOBOX_OPTION, FOR_CONTEXT_MENU_CONTEXT, FOR_CONTEXT_MENU_DEFAULTS, FOR_DATE_ADAPTER, FOR_DATE_FIELD_CONTEXT, FOR_DATE_FIELD_DEFAULTS, FOR_DATE_FIELD_HOST_DIRECTIVE_INPUTS, FOR_DATE_FIELD_HOST_DIRECTIVE_OUTPUTS, FOR_DATE_PICKER_CONTEXT, FOR_DATE_PICKER_DEFAULTS, FOR_DATE_PICKER_HOST_DIRECTIVE_INPUTS, FOR_DATE_PICKER_HOST_DIRECTIVE_OUTPUTS, FOR_DIALOG_CONTEXT, FOR_DIALOG_DATA, FOR_DIALOG_DEFAULTS, FOR_DISCLOSURE_CONTEXT, FOR_DISCLOSURE_DEFAULTS, FOR_DRAG_DROP_CONTEXT, FOR_DRAG_DROP_DEFAULTS, FOR_DRAWER_CONTEXT, FOR_DRAWER_DATA, FOR_DRAWER_DEFAULTS, FOR_DROPDOWN_MENU_DEFAULTS, FOR_DROP_LIST_DEFAULT_ORIENTATION, FOR_DROP_LIST_GROUP, FOR_FIELDSET_CONTEXT, FOR_FIELDSET_DEFAULTS, FOR_FIELD_CONTEXT, FOR_FIELD_DEFAULTS, FOR_FILE_UPLOAD_CONTEXT, FOR_FILE_UPLOAD_DEFAULTS, FOR_HOVER_CARD_CONTEXT, FOR_HOVER_CARD_DEFAULTS, FOR_ID_SALT, FOR_INPUT_DEFAULTS, FOR_INPUT_HOST_DIRECTIVE_INPUTS, FOR_INPUT_HOST_DIRECTIVE_OUTPUTS, FOR_LISTBOX_CONTEXT, FOR_LISTBOX_DEFAULTS, FOR_LISTBOX_HOST_DIRECTIVE_INPUTS, FOR_LISTBOX_HOST_DIRECTIVE_OUTPUTS, FOR_LISTBOX_OPTION, FOR_MENUBAR_CONTEXT, FOR_MENUBAR_DEFAULTS, FOR_MENU_CHECKBOX_ITEM, FOR_MENU_CONTEXT, FOR_MENU_DEFAULTS, FOR_MENU_GROUP_CONTEXT, FOR_MENU_RADIO_GROUP_CONTEXT, FOR_MENU_RADIO_ITEM, FOR_METER_CONTEXT, FOR_METER_DEFAULTS, FOR_NAVIGATION_MENU_CONTEXT, FOR_NAVIGATION_MENU_DEFAULTS, FOR_NAVIGATION_MENU_ITEM_CONTEXT, FOR_NUMBER_INPUT_DEFAULTS, FOR_NUMBER_INPUT_GROUP, FOR_NUMBER_INPUT_HOST_DIRECTIVE_INPUTS, FOR_NUMBER_INPUT_HOST_DIRECTIVE_OUTPUTS, FOR_OTP_INPUT_CONTEXT, FOR_OTP_INPUT_DEFAULTS, FOR_OTP_INPUT_HOST_DIRECTIVE_INPUTS, FOR_OTP_INPUT_HOST_DIRECTIVE_OUTPUTS, FOR_PAGINATION_CONTEXT, FOR_PAGINATION_DEFAULTS, FOR_PANE_RESIZER_DEFAULTS, FOR_POPOVER_CONTEXT, FOR_POPOVER_DEFAULTS, FOR_PROGRESS_CONTEXT, FOR_PROGRESS_DEFAULTS, FOR_RADIO, FOR_RADIO_GROUP_CONTEXT, FOR_RADIO_GROUP_DEFAULTS, FOR_RADIO_GROUP_HOST_DIRECTIVE_INPUTS, FOR_RADIO_GROUP_HOST_DIRECTIVE_OUTPUTS, FOR_SCROLL_AREA_CONTEXT, FOR_SCROLL_AREA_DEFAULTS, FOR_SEARCH_DEFAULTS, FOR_SEARCH_HOST_DIRECTIVE_INPUTS, FOR_SEARCH_HOST_DIRECTIVE_OUTPUTS, FOR_SELECT_CONTEXT, FOR_SELECT_DEFAULTS, FOR_SELECT_HOST_DIRECTIVE_INPUTS, FOR_SELECT_HOST_DIRECTIVE_OUTPUTS, FOR_SELECT_OPTION, FOR_SEPARATOR_DEFAULTS, FOR_SLIDER_CONTEXT, FOR_SLIDER_DEFAULTS, FOR_SLIDER_HOST_DIRECTIVE_INPUTS, FOR_SLIDER_HOST_DIRECTIVE_OUTPUTS, FOR_STEPPER_CONTEXT, FOR_STEPPER_DEFAULTS, FOR_STEPPER_ITEM_CONTEXT, FOR_SWITCH_DEFAULTS, FOR_SWITCH_HOST_DIRECTIVE_INPUTS, FOR_SWITCH_HOST_DIRECTIVE_OUTPUTS, FOR_TABLE_CONTEXT, FOR_TABLE_DEFAULTS, FOR_TABS_CONTEXT, FOR_TABS_DEFAULTS, FOR_TEXTAREA_HOST_DIRECTIVE_INPUTS, FOR_TEXTAREA_HOST_DIRECTIVE_OUTPUTS, FOR_TIME_FIELD_CONTEXT, FOR_TIME_FIELD_DEFAULTS, FOR_TIME_FIELD_HOST_DIRECTIVE_INPUTS, FOR_TIME_FIELD_HOST_DIRECTIVE_OUTPUTS, FOR_TIME_PICKER_CONTEXT, FOR_TIME_PICKER_DEFAULTS, FOR_TIME_PICKER_HOST_DIRECTIVE_INPUTS, FOR_TIME_PICKER_HOST_DIRECTIVE_OUTPUTS, FOR_TIME_VALUE_SOURCE, FOR_TOAST_CONTEXT, FOR_TOAST_DEFAULTS, FOR_TOGGLE_DEFAULTS, FOR_TOGGLE_GROUP_CONTEXT, FOR_TOGGLE_GROUP_HOST_DIRECTIVE_INPUTS, FOR_TOGGLE_GROUP_HOST_DIRECTIVE_OUTPUTS, FOR_TOGGLE_HOST_DIRECTIVE_INPUTS, FOR_TOGGLE_HOST_DIRECTIVE_OUTPUTS, FOR_TOOLBAR_CONTEXT, FOR_TOOLBAR_DEFAULTS, FOR_TOOLTIP_CONTEXT, FOR_TOOLTIP_DEFAULTS, FOR_TREE_CONTAINER_CONTEXT, FOR_TREE_CONTEXT, FOR_TREE_DEFAULTS, FOR_TREE_ITEM_CONTEXT, FOR_TREE_NODE_DRAG_CONTEXT, ForAccordion, ForAccordionContent, ForAccordionItem, ForAccordionTrigger, ForAspectRatio, ForAvatar, ForAvatarFallback, ForAvatarImage, ForBreadcrumbItem, ForBreadcrumbSeparator, ForBreadcrumbs, ForButton, ForCalendar, ForCalendarCell, ForCalendarGrid, ForCalendarGridHeader, ForCalendarHeading, ForCalendarMonthCell, ForCalendarMonthGrid, ForCalendarMonthSelect, ForCalendarNextButton, ForCalendarPrevButton, ForCalendarViewTrigger, ForCalendarYearCell, ForCalendarYearGrid, ForCalendarYearSelect, ForCarousel, ForCarouselDrag, ForCarouselIndicator, ForCarouselIndicators, ForCarouselNext, ForCarouselPrevious, ForCarouselRotationControl, ForCarouselSlide, ForCarouselTrack, ForCarouselViewport, ForCheckbox, ForCheckboxIndicator, ForCombobox, ForComboboxAnchor, ForComboboxChip, ForComboboxChipRemove, ForComboboxChips, ForComboboxClear, ForComboboxContent, ForComboboxEmpty, ForComboboxGroup, ForComboboxGroupLabel, ForComboboxIndicator, ForComboboxInput, ForComboboxList, ForComboboxOption, ForComboboxSeparator, ForComboboxStatus, ForComboboxTrigger, ForContextMenu, ForContextMenuTrigger, ForDateField, ForDateFieldLiteral, ForDateFieldSegment, ForDatePicker, ForDatePickerAnchor, ForDatePickerContent, ForDatePickerTrigger, ForDatePickerValue, ForDialog, ForDialogBackdrop, ForDialogClose, ForDialogDescription, ForDialogManager, ForDialogRef, ForDialogTitle, ForDialogTrigger, ForDisclosure, ForDisclosureContent, ForDisclosureTrigger, ForDragHandle, ForDragPlaceholder, ForDragPreview, ForDraggable, ForDrawer, ForDrawerBackdrop, ForDrawerClose, ForDrawerDescription, ForDrawerHandle, ForDrawerManager, ForDrawerRef, ForDrawerTitle, ForDrawerTrigger, ForDrawerWrapper, ForDropList, ForDropListGroup, ForDropdownMenu, ForDropdownMenuTrigger, ForField, ForFieldControl, ForFieldDescription, ForFieldError, ForFieldset, ForFieldsetLegend, ForFileUpload, ForFileUploadInput, ForFileUploadTrigger, ForFreeDrag, ForHoverCard, ForHoverCardArrow, ForHoverCardContent, ForHoverCardTrigger, ForInput, ForLabel, ForListbox, ForListboxGroup, ForListboxGroupLabel, ForListboxOption, ForListboxOptionIndicator, ForMenuCheckboxItem, ForMenuContent, ForMenuGroup, ForMenuGroupLabel, ForMenuItem, ForMenuItemIndicator, ForMenuRadioGroup, ForMenuRadioItem, ForMenuSeparator, ForMenuSub, ForMenuSubTrigger, ForMenubar, ForMenubarTrigger, ForMeter, ForMeterIndicator, ForNavigationMenu, ForNavigationMenuContent, ForNavigationMenuIndicator, ForNavigationMenuItem, ForNavigationMenuLink, ForNavigationMenuList, ForNavigationMenuTrigger, ForNavigationMenuViewport, ForNumberInput, ForNumberInputDecrement, ForNumberInputGroup, ForNumberInputIncrement, ForOtpInput, ForOtpInputSlot, ForPagination, ForPaginationItem, ForPaginationNext, ForPaginationPrevious, ForPaneResizer, ForPopover, ForPopoverAnchor, ForPopoverArrow, ForPopoverClose, ForPopoverContent, ForPopoverDescription, ForPopoverTitle, ForPopoverTrigger, ForProgress, ForProgressIndicator, ForRadio, ForRadioGroup, ForRadioIndicator, ForScrollArea, ForScrollAreaContent, ForScrollAreaCorner, ForScrollAreaScrollbar, ForScrollAreaThumb, ForScrollAreaViewport, ForSearch, ForSearchClear, ForSelect, ForSelectAnchor, ForSelectContent, ForSelectGroup, ForSelectGroupLabel, ForSelectIndicator, ForSelectOption, ForSelectSeparator, ForSelectTrigger, ForSelectValue, ForSeparator, ForSlider, ForSliderRange, ForSliderThumb, ForSliderTrack, ForStepper, ForStepperCompletedContent, ForStepperContent, ForStepperIndicator, ForStepperItem, ForStepperList, ForStepperNext, ForStepperPrevious, ForStepperProgress, ForStepperSeparator, ForStepperTrigger, ForSwitch, ForTable, ForTableCell, ForTableColumnReorder, ForTableColumnResizer, ForTableHeaderCell, ForTableHeaderRow, ForTableRow, ForTableRowReorder, ForTableRowSelector, ForTableSelectAll, ForTableSortHeader, ForTabs, ForTabsContent, ForTabsList, ForTabsTrigger, ForTextarea, ForTimeField, ForTimeFieldLiteral, ForTimeFieldSegment, ForTimePicker, ForTimePickerAnchor, ForTimePickerContent, ForTimePickerOption, ForTimePickerTrigger, ForTimePickerValue, ForToast, ForToastAction, ForToastClose, ForToastDescription, ForToastManager, ForToastRef, ForToastTitle, ForToastViewport, ForToggle, ForToggleGroup, ForToggleGroupItem, ForToolbar, ForToolbarButton, ForToolbarLink, ForToolbarSeparator, ForTooltip, ForTooltipArrow, ForTooltipContent, ForTooltipTrigger, ForTree, ForTreeGroup, ForTreeItem, ForTreeItemCheckbox, ForTreeItemCheckboxIndicator, ForTreeItemLabel, ForTreeItemToggle, ForTreeNodeDrag, ForTreeNodeDragHandle, NativeDateAdapter, OTP_REGEXP_ONLY_CHARS, OTP_REGEXP_ONLY_DIGITS, OTP_REGEXP_ONLY_DIGITS_AND_CHARS, assertTimeCapable, buildTimeSlots, expandToReveal, forSingleValueField, injectDateAdapter, injectDialogData, injectDrawerData, injectFieldWiring, injectNumberInputGroup, moveItemInArray, moveTreeNode, provideForAccordionDefaults, provideForAspectRatioDefaults, provideForAvatarDefaults, provideForBreadcrumbsDefaults, provideForButtonDefaults, provideForCalendarDefaults, provideForCarouselDefaults, provideForCheckboxDefaults, provideForComboboxDefaults, provideForContextMenuDefaults, provideForDateFieldDefaults, provideForDatePickerDefaults, provideForDialogDefaults, provideForDisclosureDefaults, provideForDragDropDefaults, provideForDrawerDefaults, provideForDropdownMenuDefaults, provideForFieldDefaults, provideForFieldsetDefaults, provideForFileUploadDefaults, provideForHoverCardDefaults, provideForIdSalt, provideForInputDefaults, provideForListboxDefaults, provideForMenuDefaults, provideForMenubarDefaults, provideForMeterDefaults, provideForNavigationMenuDefaults, provideForNumberInputDefaults, provideForOtpInputDefaults, provideForPaginationDefaults, provideForPaneResizerDefaults, provideForPopoverDefaults, provideForProgressDefaults, provideForRadioGroupDefaults, provideForScrollAreaDefaults, provideForSearchDefaults, provideForSelectDefaults, provideForSeparatorDefaults, provideForSliderDefaults, provideForStepperDefaults, provideForSwitchDefaults, provideForTableDefaults, provideForTabsDefaults, provideForTimeFieldDefaults, provideForTimePickerDefaults, provideForToastDefaults, provideForToggleDefaults, provideForToolbarDefaults, provideForTooltipDefaults, provideForTreeDefaults, provideNativeDateAdapter, transferArrayItem };
43014
43314
  //# sourceMappingURL=forty-cdk.mjs.map