mn-angular-lib 1.0.154 → 1.0.155

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mn-angular-lib",
3
- "version": "1.0.154",
3
+ "version": "1.0.155",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^21.1.3",
6
6
  "@angular/core": "^21.1.3",
@@ -51,6 +51,44 @@
51
51
  overflow: hidden;
52
52
  }
53
53
 
54
+ /* Countdown bar: a hairline track pinned to the card's bottom edge whose fill drains over the
55
+ alert's lifetime, so the remaining time is visible rather than guessed. The bar runs the full
56
+ width and the card clips it (`overflow-hidden` on the card in the template), so its ends taper
57
+ along the card's rounded corners instead of cutting straight across them. The track's own
58
+ `overflow: hidden` is what clips the draining fill. */
59
+
60
+ .mn-alert-progress {
61
+ position: absolute;
62
+ left: 0;
63
+ right: 0;
64
+ bottom: 0;
65
+ height: 3px;
66
+ overflow: hidden;
67
+ background-color: color-mix(in srgb, currentColor 18%, transparent);
68
+ pointer-events: none;
69
+ }
70
+
71
+ .mn-alert-progress-bar {
72
+ display: block;
73
+ height: 100%;
74
+ background-color: currentColor;
75
+ opacity: 0.55;
76
+ transform-origin: left center;
77
+ /* Duration is bound per alert from the component; the rest of the timing lives here. */
78
+ animation-name: mn-alert-countdown;
79
+ animation-timing-function: linear;
80
+ animation-fill-mode: forwards;
81
+ }
82
+
83
+ @keyframes mn-alert-countdown {
84
+ from {
85
+ transform: scaleX(1);
86
+ }
87
+ to {
88
+ transform: scaleX(0);
89
+ }
90
+ }
91
+
54
92
  @media (prefers-reduced-motion: reduce) {
55
93
  .mn-alert-item {
56
94
  transition: none;
@@ -0,0 +1,14 @@
1
+ /* The keys are sized by Tailwind utilities in the template; this file exists for
2
+ the touch affordances that have no utility equivalent. */
3
+ :host {
4
+ display: block;
5
+ }
6
+
7
+ /* A kiosk key is hit with a fingertip, often repeatedly and fast. Suppressing the
8
+ long-press selection and the tap highlight keeps a rapid entry from selecting
9
+ the caption text or flashing a native overlay on every press. */
10
+ .mn-keyboard-key {
11
+ -webkit-tap-highlight-color: transparent;
12
+ user-select: none;
13
+ touch-action: manipulation;
14
+ }
@@ -78,6 +78,11 @@ type MnAlertConfig = {
78
78
  cssClasses?: Partial<Record<MnAlertKind, string>>;
79
79
  icons?: Partial<Record<MnAlertKind, unknown>>;
80
80
  fallbackDuration?: number | null;
81
+ /**
82
+ * How many alerts may be on screen at once. Showing one past this cap drops the oldest
83
+ * alert still visible, so a burst of alerts never grows into an unreadable stack.
84
+ */
85
+ maxVisible?: number;
81
86
  finalize?: (a: MnAlert) => MnAlert;
82
87
  };
83
88
  declare const MN_ALERT_CONFIG: InjectionToken<MnAlertConfig>;
@@ -116,9 +121,18 @@ declare class MnAlertService {
116
121
  declare class MnAlertStore {
117
122
  private readonly _alerts$;
118
123
  readonly alerts$: rxjs.Observable<MnAlert[]>;
124
+ /** Host configuration, when the app provided one. Only `maxVisible` is read here — the
125
+ * per-kind durations are resolved by {@link MnAlertService} before an alert reaches the store. */
126
+ private readonly cfg;
127
+ /** In-flight auto-dismiss timers keyed by alert id, so an alert that leaves early (dismissed
128
+ * by hand, or pushed out by the visible cap) never fires a stale timeout later. */
129
+ private readonly timers;
130
+ /** How many alerts stay on screen at once; showing more drops the oldest ones. */
131
+ private get maxVisible();
119
132
  show(partial: Omit<MnAlert, 'id'>): MnAlertId;
120
133
  dismiss(id: MnAlertId): void;
121
134
  clear(): void;
135
+ private clearTimer;
122
136
  static ɵfac: i0.ɵɵFactoryDeclaration<MnAlertStore, never>;
123
137
  static ɵprov: i0.ɵɵInjectableDeclaration<MnAlertStore>;
124
138
  }
@@ -205,6 +219,12 @@ declare class MnAlertOutletComponent {
205
219
  constructor();
206
220
  trackById: (_: number, v: MnAlertView) => string;
207
221
  getAlertClasses(a: MnAlert): string;
222
+ /**
223
+ * The lifetime (ms) to run the countdown bar over, or null when no bar should show: an alert
224
+ * that never auto-dismisses has nothing to count down, and one already leaving would only
225
+ * restart the animation mid-exit.
226
+ */
227
+ countdownDuration(v: MnAlertView): number | null;
208
228
  contextFor(a: MnAlert): {
209
229
  readonly $implicit: MnAlert;
210
230
  readonly alert: MnAlert;
@@ -1554,7 +1574,8 @@ declare class MnTextarea implements OnInit {
1554
1574
  * Mirrors the styling vocabulary of {@link mnInputFieldVariants} (size,
1555
1575
  * borderRadius, shadow, fullWidth, disabled) so a file input visually matches the
1556
1576
  * rest of the input family, and adds a `dropzone` toggle for the large dashed
1557
- * drop area used by the default display mode.
1577
+ * drop area used by the default display mode plus a `dragging` toggle for the
1578
+ * "release to drop" state while files hover over that dropzone.
1558
1579
  */
1559
1580
  declare const mnFileInputVariants: tailwind_variants.TVReturnType<{
1560
1581
  /** Inner padding scale of the clickable control. */
@@ -1587,11 +1608,15 @@ declare const mnFileInputVariants: tailwind_variants.TVReturnType<{
1587
1608
  dropzone: {
1588
1609
  true: string;
1589
1610
  };
1611
+ /** Highlighted "release to drop" appearance while files hover the dropzone. */
1612
+ dragging: {
1613
+ true: string;
1614
+ };
1590
1615
  /** Dimmed, non-interactive appearance. */
1591
1616
  disabled: {
1592
1617
  true: string;
1593
1618
  };
1594
- }, undefined, "bg-base-100 border-1 border-base-300 text-base-content text-sm outline-none transition-colors duration-300 ease-in-out", {
1619
+ }, undefined, "bg-base-100 border-1 border-base-300 text-base-content text-sm outline-none transition-all duration-300 ease-in-out", {
1595
1620
  /** Inner padding scale of the clickable control. */
1596
1621
  size: {
1597
1622
  sm: string;
@@ -1622,6 +1647,10 @@ declare const mnFileInputVariants: tailwind_variants.TVReturnType<{
1622
1647
  dropzone: {
1623
1648
  true: string;
1624
1649
  };
1650
+ /** Highlighted "release to drop" appearance while files hover the dropzone. */
1651
+ dragging: {
1652
+ true: string;
1653
+ };
1625
1654
  /** Dimmed, non-interactive appearance. */
1626
1655
  disabled: {
1627
1656
  true: string;
@@ -1657,11 +1686,15 @@ declare const mnFileInputVariants: tailwind_variants.TVReturnType<{
1657
1686
  dropzone: {
1658
1687
  true: string;
1659
1688
  };
1689
+ /** Highlighted "release to drop" appearance while files hover the dropzone. */
1690
+ dragging: {
1691
+ true: string;
1692
+ };
1660
1693
  /** Dimmed, non-interactive appearance. */
1661
1694
  disabled: {
1662
1695
  true: string;
1663
1696
  };
1664
- }, undefined, "bg-base-100 border-1 border-base-300 text-base-content text-sm outline-none transition-colors duration-300 ease-in-out", unknown, unknown, undefined>>;
1697
+ }, undefined, "bg-base-100 border-1 border-base-300 text-base-content text-sm outline-none transition-all duration-300 ease-in-out", unknown, unknown, undefined>>;
1665
1698
  /** Variant prop types derived from {@link mnFileInputVariants}. */
1666
1699
  type MnFileInputVariants = VariantProps<typeof mnFileInputVariants>;
1667
1700
 
@@ -1674,7 +1707,9 @@ type MnFileInputErrorMessageData = string | MnErrorMessageFn;
1674
1707
  */
1675
1708
  type MnFileInputErrorMessagesData = Partial<Record<string, MnFileInputErrorMessageData>>;
1676
1709
  /**
1677
- * Controls how the selected file(s) are presented.
1710
+ * Controls how the selected file(s) are presented. Every mode but `compact`
1711
+ * doubles as a drop target and shows a "release to drop" state while files are
1712
+ * dragged over it.
1678
1713
  * - `dropzone` — large dashed drop area with icon + hint, previews/rows below (default).
1679
1714
  * - `thumbnail` — grid of image tiles (file icon for non-images), with an add tile.
1680
1715
  * - `list` — compact rows of file icon + name + size + remove.
@@ -1694,6 +1729,11 @@ type MnFileInputProps = {
1694
1729
  label?: string;
1695
1730
  /** Hint shown inside the empty dropzone (overrides config when provided). */
1696
1731
  dropzoneHint?: string;
1732
+ /**
1733
+ * Hint that replaces {@link dropzoneHint} while files are dragged over the
1734
+ * dropzone (overrides config when provided).
1735
+ */
1736
+ dropActiveHint?: string;
1697
1737
  /** Label for the "choose/replace file" affordance (overrides config when provided). */
1698
1738
  replaceLabel?: string;
1699
1739
  /** Accessible label for the per-file remove button (overrides config when provided). */
@@ -1751,6 +1791,8 @@ type MnFileInputUIConfig = {
1751
1791
  ariaLabel?: string;
1752
1792
  /** Hint shown inside the empty dropzone. */
1753
1793
  dropzoneHint?: string;
1794
+ /** Hint shown inside the dropzone while files are dragged over it. */
1795
+ dropActiveHint?: string;
1754
1796
  /** Label for the "choose/replace file" affordance. */
1755
1797
  replaceLabel?: string;
1756
1798
  /** Accessible label for the per-file remove button. */
@@ -1782,6 +1824,10 @@ type MnFileDisplayItem = {
1782
1824
  * (and a file icon + name for non-images), supports single or multiple selection,
1783
1825
  * several display layouts, and client-side `accept` / `maxSize` / `maxFiles` limits.
1784
1826
  *
1827
+ * Every display mode but `compact` is also a real drop target: dragging files
1828
+ * over it switches the area to a highlighted "release to drop" state, and
1829
+ * dropping runs the files through the same validation as the file picker.
1830
+ *
1785
1831
  * The form control value is the plain selection: `File | null` (single) or
1786
1832
  * `File[]` (multiple). An optional `currentUrl`/`currentUrls` renders an
1787
1833
  * already-saved image; removing it leaves the value untouched and emits `cleared`.
@@ -1807,6 +1853,8 @@ declare class MnFileInput implements OnInit {
1807
1853
  protected uiConfig: MnFileInputUIConfig;
1808
1854
  /** Currently selected files (always an array internally). */
1809
1855
  protected readonly files: i0.WritableSignal<File[]>;
1856
+ /** True while files are dragged over the dropzone ("release to drop" state). */
1857
+ protected readonly isDragging: i0.WritableSignal<boolean>;
1810
1858
  /** Transient message for a rejected selection (accept/maxSize/maxFiles). */
1811
1859
  protected readonly internalError: i0.WritableSignal<string | null>;
1812
1860
  private readonly configService;
@@ -1824,6 +1872,11 @@ declare class MnFileInput implements OnInit {
1824
1872
  readonly displayItems: i0.Signal<MnFileDisplayItem[]>;
1825
1873
  /** Disabled state pushed by the forms API. */
1826
1874
  private formDisabled;
1875
+ /**
1876
+ * Nesting depth of the current drag, so that moving across child elements of
1877
+ * the dropzone does not flicker {@link isDragging} off and on again.
1878
+ */
1879
+ private dragDepth;
1827
1880
  /**
1828
1881
  * Built-in default error messages in English.
1829
1882
  * Used when `useBuiltInErrorMessages` is true (default); overridable per-field.
@@ -1833,6 +1886,11 @@ declare class MnFileInput implements OnInit {
1833
1886
  constructor();
1834
1887
  /** The effective display mode. */
1835
1888
  get displayMode(): MnFileInputDisplayMode;
1889
+ /**
1890
+ * Whether the current display mode acts as a drop target. `compact` is an
1891
+ * inline button sized for a form row, too small to aim a drag at.
1892
+ */
1893
+ get supportsDrop(): boolean;
1836
1894
  /** Whether the control is disabled (via props or the forms API). */
1837
1895
  get isDisabled(): boolean;
1838
1896
  /** Native `accept` attribute value, or null for no restriction when unset. */
@@ -1878,6 +1936,28 @@ declare class MnFileInput implements OnInit {
1878
1936
  * @param event The native change event from the hidden file input.
1879
1937
  */
1880
1938
  onFileSelected(event: Event): void;
1939
+ /**
1940
+ * Arms the "release to drop" state when a file drag enters the dropzone.
1941
+ * @param event The native dragenter event.
1942
+ */
1943
+ onDragEnter(event: DragEvent): void;
1944
+ /**
1945
+ * Keeps the drop target alive; without a prevented dragover the browser never
1946
+ * fires a drop event.
1947
+ * @param event The native dragover event.
1948
+ */
1949
+ onDragOver(event: DragEvent): void;
1950
+ /**
1951
+ * Disarms the "release to drop" state once the drag has left the dropzone
1952
+ * entirely (and not merely crossed into one of its children).
1953
+ * @param event The native dragleave event.
1954
+ */
1955
+ onDragLeave(event: DragEvent): void;
1956
+ /**
1957
+ * Accepts the dropped files through the same validation as the file picker.
1958
+ * @param event The native drop event.
1959
+ */
1960
+ onDrop(event: DragEvent): void;
1881
1961
  /**
1882
1962
  * Removes a newly-selected file by index.
1883
1963
  * @param index Index into the current selection.
@@ -1922,6 +2002,15 @@ declare class MnFileInput implements OnInit {
1922
2002
  * inputs: custom props > config > built-in > fallback > default.
1923
2003
  */
1924
2004
  private resolveMessage;
2005
+ /**
2006
+ * Whether a drag event should be treated as a file drop on this control.
2007
+ * Ignores disabled controls, modes without a drop target, and drags that
2008
+ * carry something other than files (selected text, a link, …) so the page
2009
+ * keeps its default behaviour.
2010
+ */
2011
+ private acceptsDrag;
2012
+ /** Clears the drag state and its nesting counter. */
2013
+ private resetDrag;
1925
2014
  /** Checks a file against the configured `accept` filter (extensions and MIME globs). */
1926
2015
  private matchesAccept;
1927
2016
  /** Formats a byte count as a human-readable size. */
@@ -2759,8 +2848,14 @@ declare class MnMultiSelect implements OnInit {
2759
2848
  /** Layout classes for the anchored popover panel. The mobile sheet is rendered by
2760
2849
  * mn-bottom-sheet instead, so it no longer needs a branch here. */
2761
2850
  readonly panelClasses = "fixed z-9999 bg-base-100 border border-base-300 rounded-md shadow-lg max-h-60 overflow-auto";
2851
+ /** Layout classes for the invisible click shield rendered under the anchored panel.
2852
+ * One step below the panel's z-index so the panel itself stays clickable, and above
2853
+ * any modal/drawer chrome (which tops out well under 9998). */
2854
+ readonly shieldClasses = "fixed inset-0 z-9998";
2762
2855
  /** The anchored popover panel currently moved into `document.body`, if any. */
2763
2856
  private movedPanel;
2857
+ /** The click shield currently moved into `document.body`, if any. */
2858
+ private movedShield;
2764
2859
  /** Option count at which the search input auto-enables when `searchable` is unset. */
2765
2860
  private static readonly DEFAULT_SEARCH_THRESHOLD;
2766
2861
  /** Tailwind's `sm` breakpoint — below this the panel renders as a bottom sheet.
@@ -2804,6 +2899,11 @@ declare class MnMultiSelect implements OnInit {
2804
2899
  * broken on iOS). Cleanup is handled when the query clears on close/destroy.
2805
2900
  */
2806
2901
  set dropdownRef(ref: ElementRef<HTMLElement> | undefined);
2902
+ /**
2903
+ * The click shield sitting under the anchored panel, portalled alongside it for the same
2904
+ * reason: `position: fixed` must resolve against the viewport, not a transformed ancestor.
2905
+ */
2906
+ set shieldRef(ref: ElementRef<HTMLElement> | undefined);
2807
2907
  /** Currently selected values */
2808
2908
  selectedValues: unknown[];
2809
2909
  isOpen: boolean;
@@ -2849,6 +2949,15 @@ declare class MnMultiSelect implements OnInit {
2849
2949
  * otherwise auto-enabled once the option count reaches the threshold.
2850
2950
  */
2851
2951
  get isSearchable(): boolean;
2952
+ /**
2953
+ * Dismisses the anchored panel from a shield click, and stops the event there.
2954
+ *
2955
+ * Swallowing it is the point: the shield spans the viewport, so the click would otherwise
2956
+ * land on whatever the panel was floating over. Inside a modal that is the modal's own
2957
+ * backdrop, and "close the dropdown" would double as "throw away the modal". A first click
2958
+ * that only dismisses the overlay is also how native selects and menus behave.
2959
+ */
2960
+ onShieldClick(event: Event): void;
2852
2961
  onDocumentClick(event: Event): void;
2853
2962
  /**
2854
2963
  * Records the sheet's opened height as its `min-height` floor. Measured on the next
@@ -3540,6 +3649,129 @@ declare class MnBottomSheet {
3540
3649
  static ɵcmp: i0.ɵɵComponentDeclaration<MnBottomSheet, "mn-bottom-sheet", never, { "showBackdrop": { "alias": "showBackdrop"; "required": false; }; "showGrabber": { "alias": "showGrabber"; "required": false; }; "dismissible": { "alias": "dismissible"; "required": false; }; "minHeightPx": { "alias": "minHeightPx"; "required": false; }; "maxHeightVh": { "alias": "maxHeightVh"; "required": false; }; "containerClass": { "alias": "containerClass"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaLabelledby": { "alias": "ariaLabelledby"; "required": false; }; "growWithKeyboard": { "alias": "growWithKeyboard"; "required": false; }; "dismissGuard": { "alias": "dismissGuard"; "required": false; }; }, { "dismiss": "dismiss"; }, never, ["*"], true, never>;
3541
3650
  }
3542
3651
 
3652
+ /**
3653
+ * Which keys a {@link MnKeyboard} renders.
3654
+ *
3655
+ * `alphanumeric` is the full QWERTY block with a digit row on top — the layout for
3656
+ * a field that accepts either a membership number or a name. `numeric` is a phone-
3657
+ * style 3x4 pad for digits only. `alpha` drops the digit row for name-only fields.
3658
+ */
3659
+ type MnKeyboardLayout = 'alphanumeric' | 'numeric' | 'alpha';
3660
+ /**
3661
+ * How a {@link MnKeyboard} presents itself.
3662
+ *
3663
+ * `inline` renders the keys in normal document flow. `sheet` mounts them in an
3664
+ * {@link MnBottomSheet}, so the keyboard rises from the bottom of the screen over
3665
+ * whatever the user was looking at and can be swiped away.
3666
+ */
3667
+ type MnKeyboardPresentation = 'inline' | 'sheet';
3668
+ /**
3669
+ * Labels for a {@link MnKeyboard}'s named keys.
3670
+ *
3671
+ * Supplied by the consumer rather than defaulted in the component: the library
3672
+ * ships no user-facing English, so the host app translates these in its own
3673
+ * bundles. The character keys need no labels — a digit and a letter read the same
3674
+ * in every supported language.
3675
+ */
3676
+ type MnKeyboardLabels = {
3677
+ /** The backspace key (also its accessible name). */
3678
+ backspace: string;
3679
+ /** The clear-everything key. */
3680
+ clear: string;
3681
+ /** The space key. */
3682
+ space: string;
3683
+ /** The confirm/submit key. */
3684
+ submit: string;
3685
+ /** Accessible name for the keyboard as a whole. */
3686
+ keyboard: string;
3687
+ };
3688
+
3689
+ /**
3690
+ * An on-screen keyboard for touch devices that have no keyboard of their own.
3691
+ *
3692
+ * It exists for unattended screens — a tablet on a wall, a kiosk by a door — where
3693
+ * the OS keyboard is either unavailable or unwanted, and where the same field may
3694
+ * need to take a membership number *or* a name. Hence one component with a
3695
+ * {@link layout} switch rather than a separate number pad and text pad.
3696
+ *
3697
+ * It is a controlled component: it never owns the text. The host passes {@link value}
3698
+ * and reacts to {@link valueChange}, exactly like a form control, so the same value
3699
+ * can also be filled by a barcode scanner or a real keyboard without this component
3700
+ * fighting it.
3701
+ *
3702
+ * With {@link presentation} set to `sheet` it mounts inside an {@link MnBottomSheet},
3703
+ * rising from the bottom of the screen and swipeable away — the shape a kiosk wants
3704
+ * so the keys do not permanently occupy half the display.
3705
+ *
3706
+ * The library ships no user-facing English, so every named key takes its caption
3707
+ * from {@link labels}.
3708
+ */
3709
+ declare class MnKeyboard {
3710
+ /** The current text. This component never mutates it — see {@link valueChange}. */
3711
+ value: string;
3712
+ /** Which keys to render. */
3713
+ layout: MnKeyboardLayout;
3714
+ /** Whether the keys sit in the page or rise from the bottom as a sheet. */
3715
+ presentation: MnKeyboardPresentation;
3716
+ /**
3717
+ * Captions and accessible names for the named keys.
3718
+ *
3719
+ * The defaults are language-neutral glyphs rather than words, so a consumer that
3720
+ * forgets to translate still ships no English (or Dutch) from the library. The
3721
+ * accessible name for the keyboard as a whole has no neutral glyph, so it
3722
+ * defaults to empty and the attribute is simply omitted until a host supplies one.
3723
+ */
3724
+ labels: MnKeyboardLabels;
3725
+ /** Whether letters are rendered (and typed) upper-case. */
3726
+ uppercase: boolean;
3727
+ /** Whether to offer a space key. Off for a field that can never contain one. */
3728
+ allowSpace: boolean;
3729
+ /** Whether to offer a submit key. */
3730
+ showSubmit: boolean;
3731
+ /** Whether the submit key is currently actionable. */
3732
+ submitDisabled: boolean;
3733
+ /** Hard cap on the text length, or null for none. */
3734
+ maxLength: number | null;
3735
+ /** Cap on the sheet height as a fraction of the viewport, in vh (sheet presentation only). */
3736
+ sheetMaxHeightVh: number;
3737
+ /** Emits the full text after every key press, so the host can drive its own field. */
3738
+ valueChange: EventEmitter<string>;
3739
+ /** Emits when the submit key is pressed. */
3740
+ submitted: EventEmitter<string>;
3741
+ /** Emits when a sheet-presented keyboard is swiped or tapped away. */
3742
+ dismissed: EventEmitter<void>;
3743
+ get hostClasses(): string;
3744
+ /** The character rows to render, driven by {@link layout}. */
3745
+ get rows(): readonly string[][];
3746
+ /** Whether the space key should be offered (never on a digits-only pad). */
3747
+ get spaceVisible(): boolean;
3748
+ /**
3749
+ * Appends a character, respecting {@link maxLength}.
3750
+ * @param key The character pressed.
3751
+ */
3752
+ press(key: string): void;
3753
+ /** Appends a space. */
3754
+ pressSpace(): void;
3755
+ /** Removes the last character. */
3756
+ backspace(): void;
3757
+ /** Empties the field. */
3758
+ clear(): void;
3759
+ /** Reports a submit press. The host decides what submitting means. */
3760
+ submit(): void;
3761
+ /** Reports that a sheet-presented keyboard was dismissed. */
3762
+ onDismiss(): void;
3763
+ /**
3764
+ * Emits a new value, clamped to {@link maxLength}.
3765
+ *
3766
+ * Clamping happens here rather than in each key handler so a paste-like burst
3767
+ * from a scanner and a tapped key are bounded the same way.
3768
+ * @param next The candidate text.
3769
+ */
3770
+ private emit;
3771
+ static ɵfac: i0.ɵɵFactoryDeclaration<MnKeyboard, never>;
3772
+ static ɵcmp: i0.ɵɵComponentDeclaration<MnKeyboard, "mn-keyboard", never, { "value": { "alias": "value"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; "presentation": { "alias": "presentation"; "required": false; }; "labels": { "alias": "labels"; "required": false; }; "uppercase": { "alias": "uppercase"; "required": false; }; "allowSpace": { "alias": "allowSpace"; "required": false; }; "showSubmit": { "alias": "showSubmit"; "required": false; }; "submitDisabled": { "alias": "submitDisabled"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "sheetMaxHeightVh": { "alias": "sheetMaxHeightVh"; "required": false; }; }, { "valueChange": "valueChange"; "submitted": "submitted"; "dismissed": "dismissed"; }, never, never, true, never>;
3773
+ }
3774
+
3543
3775
  declare const mnSelectVariants: tailwind_variants.TVReturnType<{
3544
3776
  shadow: {
3545
3777
  true: string;
@@ -5706,6 +5938,8 @@ type FileFieldConfig<TModel = unknown> = {
5706
5938
  displayMode?: 'dropzone' | 'thumbnail' | 'list' | 'compact';
5707
5939
  /** Hint shown inside the empty dropzone */
5708
5940
  dropzoneHint?: string;
5941
+ /** Hint shown inside the dropzone while files are dragged over it */
5942
+ dropActiveHint?: string;
5709
5943
  /** Label for the "choose/replace file" affordance */
5710
5944
  replaceLabel?: string;
5711
5945
  /** Accessible label for the per-file remove button */
@@ -6462,6 +6696,7 @@ type FormFieldView<TModel> = FormFieldConfig<TModel> & {
6462
6696
  multiple?: boolean;
6463
6697
  displayMode?: 'dropzone' | 'thumbnail' | 'list' | 'compact';
6464
6698
  dropzoneHint?: string;
6699
+ dropActiveHint?: string;
6465
6700
  replaceLabel?: string;
6466
6701
  removeLabel?: string;
6467
6702
  currentUrl?: string | null;
@@ -8768,5 +9003,5 @@ type MnPreviewMessage = {
8768
9003
  */
8769
9004
  declare function enableMnPreviewMode(configService: MnConfigService, langService: MnLanguageService, allowedOrigins?: string[]): void;
8770
9005
 
8771
- export { API_BASE_URL, ActionStyle, BackdropMode, BaseModalBuilder, CALENDAR_CONFIG, CALENDAR_DATE_FORMATTER, CalendarDayComponent, CalendarEventComponent, CalendarEventDefaultComponent, CalendarEventLayoutService, CalendarMonthComponent, CalendarUtility, CalendarView, CalendarViewComponent, CalendarWeekComponent, CloseMode, ColumnSortType, ConfirmationModalBuilder, ConfirmationTone, CrudService, CustomModalBuilder, DEFAULT_CALENDAR_CONFIG, DEFAULT_MN_ALERT_CONFIG, DefaultCalendarDateFormatter, FieldAppearance, FieldKind, FormLayoutMode, FormModalBuilder, KeyboardMode, MN_ALERT_CONFIG, MN_CALENDAR_COMPONENT_NAME, MN_CALENDAR_CONFIG, MN_CHECKBOX_CONFIG, MN_DATETIME_CONFIG, MN_DROPDOWN_CONFIG, MN_HAPTICS, MN_ICON_MAP, MN_INPUT_FIELD_CONFIG, MN_INSTANCE_ID, MN_LIB_DUAL_HORIZONTAL_IMAGE, MN_MODAL_ACTION_ICONS, MN_MULTI_SELECT_CONFIG, MN_SECTION_PATH, MN_SELECT_CONFIG, MN_TEXTAREA_CONFIG, MODAL_ACTION_ICON_SIZE, MODAL_ACTION_ICON_SIZE_SM, MnAlertOutletComponent, MnAlertService, MnAlertStore, MnBadge, MnBottomSheet, MnBreadcrumbs, MnButton, MnCheckbox, MnCollectionBase, MnCollectionPagination, MnCollectionState, MnConfigService, MnConfirmationBodyComponent, MnCustomBodyHostComponent, MnDateSelectorBar, MnDatetime, MnDropdown, MnDualHorizontalImage, MnFileInput, MnFormBodyComponent, MnGrid, MnHiddenBelowDirective, MnHttpService, MnIcon, MnIconAttributes, MnInformationCard, MnInputField, MnInstanceDirective, MnLanguageService, MnList, MnModalRef, MnModalService, MnModalShellComponent, MnMultiSelect, MnRichTextEditor, MnSectionDirective, MnSelect, MnSelectableCollectionBase, MnShowAboveDirective, MnShowBelowDirective, MnSkeleton, MnTabComponent, MnTable, MnTextarea, MnTranslatePipe, MnWizardBodyComponent, ModalBuilder, ModalCloseReason, ModalIntent, ModalKind, ModalSize, NavigationDirection, OptionState, SelectionMode, StepBuilder, StepState, SubmitMode, UpcomingEventRowComponent, UpcomingEventsComponent, ValidationCode, ValidationStatus, WizardFlowMode, WizardModalBuilder, dateTimeAdapter, defaultFilterPredicate, defaultIconForStyle, defaultTextAdapter, emptyFilterValue, enableMnPreviewMode, isFilterValueActive, isTranslatable, matchesColumnFilter, mnAlertVariants, mnBadgeVariants, mnBreadcrumbsVariants, mnButtonVariants, mnCheckboxVariants, mnCheckboxWrapperVariants, mnDatetimeVariants, mnDropdownTriggerVariants, mnFileInputVariants, mnIconVariants, mnInformationCardVariants, mnInputFieldVariants, mnMultiSelectVariants, mnSelectVariants, mnSkeletonVariants, mnTextareaVariants, numberAdapter, pickAdapter, provideMnAlerts, provideMnCalendarConfig, provideMnComponentConfig, provideMnConfig, provideMnLanguage, resolveCalendarConfig, resolveFilterableValue };
8772
- export type { AnimationOptions, ApiError, BaseModalConfig, CalendarButton, CalendarConfig, CalendarDateFormatter, CalendarEvent, CalendarEventData, CancellationActionConfig, CheckboxFieldConfig, ColorFieldConfig, ColorPreset, ColumnBase, ColumnDay, ColumnDefinition, ColumnFilterOption, ColumnFilterState, ColumnFilterType, ColumnFilterValue, ColumnSkeleton, ConfirmationActionConfig, ConfirmationModalConfig, CrudConfig, CurrentTimeCalendarEvent, CursorPaginationStrategy, CustomFieldConfig, CustomModalConfig, DateFieldConfig, DateSelectorBarLayout, DatetimeFieldConfig, DayTile, FailureResult, FieldDataSource, FieldRequiredCondition, FieldValidator, FieldVisibilityCondition, FileFieldConfig, FormFieldConfig, FormFieldGroup, FormModalConfig, FormRow, FormRowField, FormValidator, GridDataSource, GridLayout, GridSkeleton, HourRow, ListAppearance, ListDataSource, ListLabels, ListSkeleton, MnActionIcon, MnAlert, MnAlertConfig, MnAlertId, MnAlertKind, MnAlertTemplateContext, MnAlertVariants, MnBadgeTypes, MnBadgeVariants, MnBreadcrumbItem, MnBreadcrumbsData, MnBreadcrumbsVariants, MnButtonTypes, MnButtonVariants, MnCheckboxErrorMessageData, MnCheckboxErrorMessagesData, MnCheckboxProps, MnCheckboxUIConfig, MnCheckboxVariants, MnCheckboxWrapperVariants, MnCollectionDataSource, MnCollectionLabels, MnColumnFilter, MnConfigFile, MnConfigSettings, MnConfigValue, MnDatetimeErrorMessageData, MnDatetimeErrorMessagesData, MnDatetimeMode, MnDatetimeProps, MnDatetimeUIConfig, MnDatetimeVariants, MnDomAttrs, MnDropdownAction, MnDropdownActionColor, MnDropdownItem, MnDropdownProps, MnDropdownSeparator, MnDropdownTriggerVariants, MnDropdownUIConfig, MnDualHorizontalImageConfig, MnDualHorizontalImageTypes, MnErrorMessageData, MnErrorMessageFn, MnErrorMessagesData, MnFileDisplayItem, MnFileInputDisplayMode, MnFileInputErrorMessageData, MnFileInputErrorMessagesData, MnFileInputProps, MnFileInputUIConfig, MnFileInputVariants, MnHapticStyle, MnHapticsHandler, MnIconTypes, MnIconVariants, MnImageType, MnInformationCardBaseData, MnInformationCardData, MnInformationCardVariants, MnInputAdapter, MnInputBaseProps, MnInputDateTimeProps, MnInputFieldProps, MnInputFieldUIConfig, MnInputProps, MnInputType, MnInputVariants, MnLanguageConfig, MnMultiSelectErrorMessageData, MnMultiSelectErrorMessagesData, MnMultiSelectOption, MnMultiSelectProps, MnMultiSelectUIConfig, MnMultiSelectVariants, MnPageSlot, MnPreviewMessage, MnQueryParams, MnRichTextEditorControl, MnRichTextEditorLabels, MnRichTextEditorToolbar, MnRowValue, MnSelectErrorMessageData, MnSelectErrorMessagesData, MnSelectOption, MnSelectProps, MnSelectUIConfig, MnSelectVariants, MnSelectableCollectionDataSource, MnShowInput, MnSkeletonProps, MnSkeletonShape, MnSkeletonVariantProps, MnTabDataSource, MnTabItem, MnTableFilterLabels, MnTableRowAction, MnTextareaErrorMessageData, MnTextareaErrorMessagesData, MnTextareaProps, MnTextareaUIConfig, MnTextareaVariants, MnTranslatable, MnTranslationMap, MnTranslations, MnValidationErrorArgs, ModalCancelHandler, ModalCloseEvent, ModalConfig, ModalFooterAction, ModalI18nLabels, ModalInputMap, ModalPollingConfig, ModalRef, ModalResultHandler, ModalStepId, MonthItem, MultiSelectFieldConfig, MultiSelectTableFieldConfig, NumberFieldConfig, OffsetPaginationStrategy, PaginationMode, PaginationStrategy, PasswordFieldConfig, Primitive, QueryParams, QueryValue, RatingFieldConfig, Result, ResultMeta, SelectFieldConfig, SelectOption, SingleSelectTableFieldConfig, SliderFieldConfig, SortState, StepBodyConfig, StepGuard, StepValidator, SuccessResult, TableAppearance, TableDataSource, TableLabels, TextFieldConfig, TextareaFieldConfig, ValidationResult, WizardBeforeCompleteValidator, WizardModalConfig, WizardResult, WizardStepChangeEvent, WizardStepChangeHandler, WizardStepConfig };
9006
+ export { API_BASE_URL, ActionStyle, BackdropMode, BaseModalBuilder, CALENDAR_CONFIG, CALENDAR_DATE_FORMATTER, CalendarDayComponent, CalendarEventComponent, CalendarEventDefaultComponent, CalendarEventLayoutService, CalendarMonthComponent, CalendarUtility, CalendarView, CalendarViewComponent, CalendarWeekComponent, CloseMode, ColumnSortType, ConfirmationModalBuilder, ConfirmationTone, CrudService, CustomModalBuilder, DEFAULT_CALENDAR_CONFIG, DEFAULT_MN_ALERT_CONFIG, DefaultCalendarDateFormatter, FieldAppearance, FieldKind, FormLayoutMode, FormModalBuilder, KeyboardMode, MN_ALERT_CONFIG, MN_CALENDAR_COMPONENT_NAME, MN_CALENDAR_CONFIG, MN_CHECKBOX_CONFIG, MN_DATETIME_CONFIG, MN_DROPDOWN_CONFIG, MN_HAPTICS, MN_ICON_MAP, MN_INPUT_FIELD_CONFIG, MN_INSTANCE_ID, MN_LIB_DUAL_HORIZONTAL_IMAGE, MN_MODAL_ACTION_ICONS, MN_MULTI_SELECT_CONFIG, MN_SECTION_PATH, MN_SELECT_CONFIG, MN_TEXTAREA_CONFIG, MODAL_ACTION_ICON_SIZE, MODAL_ACTION_ICON_SIZE_SM, MnAlertOutletComponent, MnAlertService, MnAlertStore, MnBadge, MnBottomSheet, MnBreadcrumbs, MnButton, MnCheckbox, MnCollectionBase, MnCollectionPagination, MnCollectionState, MnConfigService, MnConfirmationBodyComponent, MnCustomBodyHostComponent, MnDateSelectorBar, MnDatetime, MnDropdown, MnDualHorizontalImage, MnFileInput, MnFormBodyComponent, MnGrid, MnHiddenBelowDirective, MnHttpService, MnIcon, MnIconAttributes, MnInformationCard, MnInputField, MnInstanceDirective, MnKeyboard, MnLanguageService, MnList, MnModalRef, MnModalService, MnModalShellComponent, MnMultiSelect, MnRichTextEditor, MnSectionDirective, MnSelect, MnSelectableCollectionBase, MnShowAboveDirective, MnShowBelowDirective, MnSkeleton, MnTabComponent, MnTable, MnTextarea, MnTranslatePipe, MnWizardBodyComponent, ModalBuilder, ModalCloseReason, ModalIntent, ModalKind, ModalSize, NavigationDirection, OptionState, SelectionMode, StepBuilder, StepState, SubmitMode, UpcomingEventRowComponent, UpcomingEventsComponent, ValidationCode, ValidationStatus, WizardFlowMode, WizardModalBuilder, dateTimeAdapter, defaultFilterPredicate, defaultIconForStyle, defaultTextAdapter, emptyFilterValue, enableMnPreviewMode, isFilterValueActive, isTranslatable, matchesColumnFilter, mnAlertVariants, mnBadgeVariants, mnBreadcrumbsVariants, mnButtonVariants, mnCheckboxVariants, mnCheckboxWrapperVariants, mnDatetimeVariants, mnDropdownTriggerVariants, mnFileInputVariants, mnIconVariants, mnInformationCardVariants, mnInputFieldVariants, mnMultiSelectVariants, mnSelectVariants, mnSkeletonVariants, mnTextareaVariants, numberAdapter, pickAdapter, provideMnAlerts, provideMnCalendarConfig, provideMnComponentConfig, provideMnConfig, provideMnLanguage, resolveCalendarConfig, resolveFilterableValue };
9007
+ export type { AnimationOptions, ApiError, BaseModalConfig, CalendarButton, CalendarConfig, CalendarDateFormatter, CalendarEvent, CalendarEventData, CancellationActionConfig, CheckboxFieldConfig, ColorFieldConfig, ColorPreset, ColumnBase, ColumnDay, ColumnDefinition, ColumnFilterOption, ColumnFilterState, ColumnFilterType, ColumnFilterValue, ColumnSkeleton, ConfirmationActionConfig, ConfirmationModalConfig, CrudConfig, CurrentTimeCalendarEvent, CursorPaginationStrategy, CustomFieldConfig, CustomModalConfig, DateFieldConfig, DateSelectorBarLayout, DatetimeFieldConfig, DayTile, FailureResult, FieldDataSource, FieldRequiredCondition, FieldValidator, FieldVisibilityCondition, FileFieldConfig, FormFieldConfig, FormFieldGroup, FormModalConfig, FormRow, FormRowField, FormValidator, GridDataSource, GridLayout, GridSkeleton, HourRow, ListAppearance, ListDataSource, ListLabels, ListSkeleton, MnActionIcon, MnAlert, MnAlertConfig, MnAlertId, MnAlertKind, MnAlertTemplateContext, MnAlertVariants, MnBadgeTypes, MnBadgeVariants, MnBreadcrumbItem, MnBreadcrumbsData, MnBreadcrumbsVariants, MnButtonTypes, MnButtonVariants, MnCheckboxErrorMessageData, MnCheckboxErrorMessagesData, MnCheckboxProps, MnCheckboxUIConfig, MnCheckboxVariants, MnCheckboxWrapperVariants, MnCollectionDataSource, MnCollectionLabels, MnColumnFilter, MnConfigFile, MnConfigSettings, MnConfigValue, MnDatetimeErrorMessageData, MnDatetimeErrorMessagesData, MnDatetimeMode, MnDatetimeProps, MnDatetimeUIConfig, MnDatetimeVariants, MnDomAttrs, MnDropdownAction, MnDropdownActionColor, MnDropdownItem, MnDropdownProps, MnDropdownSeparator, MnDropdownTriggerVariants, MnDropdownUIConfig, MnDualHorizontalImageConfig, MnDualHorizontalImageTypes, MnErrorMessageData, MnErrorMessageFn, MnErrorMessagesData, MnFileDisplayItem, MnFileInputDisplayMode, MnFileInputErrorMessageData, MnFileInputErrorMessagesData, MnFileInputProps, MnFileInputUIConfig, MnFileInputVariants, MnHapticStyle, MnHapticsHandler, MnIconTypes, MnIconVariants, MnImageType, MnInformationCardBaseData, MnInformationCardData, MnInformationCardVariants, MnInputAdapter, MnInputBaseProps, MnInputDateTimeProps, MnInputFieldProps, MnInputFieldUIConfig, MnInputProps, MnInputType, MnInputVariants, MnKeyboardLabels, MnKeyboardLayout, MnKeyboardPresentation, MnLanguageConfig, MnMultiSelectErrorMessageData, MnMultiSelectErrorMessagesData, MnMultiSelectOption, MnMultiSelectProps, MnMultiSelectUIConfig, MnMultiSelectVariants, MnPageSlot, MnPreviewMessage, MnQueryParams, MnRichTextEditorControl, MnRichTextEditorLabels, MnRichTextEditorToolbar, MnRowValue, MnSelectErrorMessageData, MnSelectErrorMessagesData, MnSelectOption, MnSelectProps, MnSelectUIConfig, MnSelectVariants, MnSelectableCollectionDataSource, MnShowInput, MnSkeletonProps, MnSkeletonShape, MnSkeletonVariantProps, MnTabDataSource, MnTabItem, MnTableFilterLabels, MnTableRowAction, MnTextareaErrorMessageData, MnTextareaErrorMessagesData, MnTextareaProps, MnTextareaUIConfig, MnTextareaVariants, MnTranslatable, MnTranslationMap, MnTranslations, MnValidationErrorArgs, ModalCancelHandler, ModalCloseEvent, ModalConfig, ModalFooterAction, ModalI18nLabels, ModalInputMap, ModalPollingConfig, ModalRef, ModalResultHandler, ModalStepId, MonthItem, MultiSelectFieldConfig, MultiSelectTableFieldConfig, NumberFieldConfig, OffsetPaginationStrategy, PaginationMode, PaginationStrategy, PasswordFieldConfig, Primitive, QueryParams, QueryValue, RatingFieldConfig, Result, ResultMeta, SelectFieldConfig, SelectOption, SingleSelectTableFieldConfig, SliderFieldConfig, SortState, StepBodyConfig, StepGuard, StepValidator, SuccessResult, TableAppearance, TableDataSource, TableLabels, TextFieldConfig, TextareaFieldConfig, ValidationResult, WizardBeforeCompleteValidator, WizardModalConfig, WizardResult, WizardStepChangeEvent, WizardStepChangeHandler, WizardStepConfig };