@baseline-ui/core 1.2.0 → 2.1.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/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import React__default, { ReactNode, AriaAttributes, DOMAttributes as DOMAttributes$1, AriaRole, CSSProperties, HTMLAttributeAnchorTarget, HTMLAttributeReferrerPolicy, ClipboardEventHandler, CompositionEventHandler, ReactEventHandler, FormEventHandler, MouseEventHandler, TouchEventHandler, PointerEventHandler, UIEventHandler, WheelEventHandler, AnimationEventHandler, TransitionEventHandler, ReactElement, MouseEvent, FocusEvent, SyntheticEvent, KeyboardEvent as KeyboardEvent$2, JSX, HTMLAttributes, RefObject as RefObject$1, LabelHTMLAttributes, ElementType, JSXElementConstructor, ButtonHTMLAttributes, AnchorHTMLAttributes, InputHTMLAttributes, SVGProps, Ref, MutableRefObject, Key as Key$1, KeyboardEventHandler, Dispatch, SetStateAction } from 'react';
3
+ import { CalendarDate, CalendarDateTime, ZonedDateTime, DateDuration, CalendarIdentifier, Calendar as Calendar$1, Time, DateFormatter } from '@internationalized/date';
3
4
  import { Theme, Sprinkles } from '@baseline-ui/tokens';
4
5
  import { PanelImperativeHandle, PanelProps as PanelProps$1, SeparatorProps as SeparatorProps$2 } from 'react-resizable-panels';
5
6
  import * as react_jsx_runtime from 'react/jsx-runtime';
@@ -1705,369 +1706,6 @@ declare function useButton(props: AriaButtonOptions<'input'>, ref: RefObject$1<H
1705
1706
  declare function useButton(props: AriaButtonOptions<'span'>, ref: RefObject$1<HTMLSpanElement | null>): ButtonAria<HTMLAttributes<HTMLSpanElement>>;
1706
1707
  declare function useButton(props: AriaButtonOptions<ElementType>, ref: RefObject$1<Element | null>): ButtonAria<DOMAttributes>;
1707
1708
 
1708
- /** A CalendarDate represents a date without any time components in a specific calendar system. */
1709
- declare class CalendarDate {
1710
- #private;
1711
- /** The calendar system associated with this date, e.g. Gregorian. */
1712
- readonly calendar: Calendar$1;
1713
- /** The calendar era for this date, e.g. "BC" or "AD". */
1714
- readonly era: string;
1715
- /** The year of this date within the era. */
1716
- readonly year: number;
1717
- /**
1718
- * The month number within the year. Note that some calendar systems such as Hebrew
1719
- * may have a variable number of months per year. Therefore, month numbers may not
1720
- * always correspond to the same month names in different years.
1721
- */
1722
- readonly month: number;
1723
- /** The day number within the month. */
1724
- readonly day: number;
1725
- constructor(year: number, month: number, day: number);
1726
- constructor(era: string, year: number, month: number, day: number);
1727
- constructor(calendar: Calendar$1, year: number, month: number, day: number);
1728
- constructor(calendar: Calendar$1, era: string, year: number, month: number, day: number);
1729
- /** Returns a copy of this date. */
1730
- copy(): CalendarDate;
1731
- /** Returns a new `CalendarDate` with the given duration added to it. */
1732
- add(duration: DateDuration): CalendarDate;
1733
- /** Returns a new `CalendarDate` with the given duration subtracted from it. */
1734
- subtract(duration: DateDuration): CalendarDate;
1735
- /**
1736
- * Returns a new `CalendarDate` with the given fields set to the provided values. Other fields
1737
- * will be constrained accordingly.
1738
- */
1739
- set(fields: DateFields): CalendarDate;
1740
- /**
1741
- * Returns a new `CalendarDate` with the given field adjusted by a specified amount.
1742
- * When the resulting value reaches the limits of the field, it wraps around.
1743
- */
1744
- cycle(field: DateField$1, amount: number, options?: CycleOptions): CalendarDate;
1745
- /**
1746
- * Converts the date to a native JavaScript Date object, with the time set to midnight in the
1747
- * given time zone.
1748
- */
1749
- toDate(timeZone: string): Date;
1750
- /** Converts the date to an ISO 8601 formatted string. */
1751
- toString(): string;
1752
- /**
1753
- * Compares this date with another. A negative result indicates that this date is before the given
1754
- * one, and a positive date indicates that it is after.
1755
- */
1756
- compare(b: AnyCalendarDate): number;
1757
- }
1758
- /** A Time represents a clock time without any date components. */
1759
- declare class Time {
1760
- #private;
1761
- /** The hour, numbered from 0 to 23. */
1762
- readonly hour: number;
1763
- /** The minute in the hour. */
1764
- readonly minute: number;
1765
- /** The second in the minute. */
1766
- readonly second: number;
1767
- /** The millisecond in the second. */
1768
- readonly millisecond: number;
1769
- constructor(hour?: number, minute?: number, second?: number, millisecond?: number);
1770
- /** Returns a copy of this time. */
1771
- copy(): Time;
1772
- /** Returns a new `Time` with the given duration added to it. */
1773
- add(duration: TimeDuration): Time;
1774
- /** Returns a new `Time` with the given duration subtracted from it. */
1775
- subtract(duration: TimeDuration): Time;
1776
- /**
1777
- * Returns a new `Time` with the given fields set to the provided values. Other fields will be
1778
- * constrained accordingly.
1779
- */
1780
- set(fields: TimeFields): Time;
1781
- /**
1782
- * Returns a new `Time` with the given field adjusted by a specified amount.
1783
- * When the resulting value reaches the limits of the field, it wraps around.
1784
- */
1785
- cycle(field: TimeField$1, amount: number, options?: CycleTimeOptions): Time;
1786
- /** Converts the time to an ISO 8601 formatted string. */
1787
- toString(): string;
1788
- /**
1789
- * Compares this time with another. A negative result indicates that this time is before the given
1790
- * one, and a positive time indicates that it is after.
1791
- */
1792
- compare(b: AnyTime): number;
1793
- }
1794
- /** A CalendarDateTime represents a date and time without a time zone, in a specific calendar system. */
1795
- declare class CalendarDateTime {
1796
- #private;
1797
- /** The calendar system associated with this date, e.g. Gregorian. */
1798
- readonly calendar: Calendar$1;
1799
- /** The calendar era for this date, e.g. "BC" or "AD". */
1800
- readonly era: string;
1801
- /** The year of this date within the era. */
1802
- readonly year: number;
1803
- /**
1804
- * The month number within the year. Note that some calendar systems such as Hebrew
1805
- * may have a variable number of months per year. Therefore, month numbers may not
1806
- * always correspond to the same month names in different years.
1807
- */
1808
- readonly month: number;
1809
- /** The day number within the month. */
1810
- readonly day: number;
1811
- /** The hour in the day, numbered from 0 to 23. */
1812
- readonly hour: number;
1813
- /** The minute in the hour. */
1814
- readonly minute: number;
1815
- /** The second in the minute. */
1816
- readonly second: number;
1817
- /** The millisecond in the second. */
1818
- readonly millisecond: number;
1819
- constructor(year: number, month: number, day: number, hour?: number, minute?: number, second?: number, millisecond?: number);
1820
- constructor(era: string, year: number, month: number, day: number, hour?: number, minute?: number, second?: number, millisecond?: number);
1821
- constructor(calendar: Calendar$1, year: number, month: number, day: number, hour?: number, minute?: number, second?: number, millisecond?: number);
1822
- constructor(calendar: Calendar$1, era: string, year: number, month: number, day: number, hour?: number, minute?: number, second?: number, millisecond?: number);
1823
- /** Returns a copy of this date. */
1824
- copy(): CalendarDateTime;
1825
- /** Returns a new `CalendarDateTime` with the given duration added to it. */
1826
- add(duration: DateTimeDuration): CalendarDateTime;
1827
- /** Returns a new `CalendarDateTime` with the given duration subtracted from it. */
1828
- subtract(duration: DateTimeDuration): CalendarDateTime;
1829
- /**
1830
- * Returns a new `CalendarDateTime` with the given fields set to the provided values. Other fields
1831
- * will be constrained accordingly.
1832
- */
1833
- set(fields: DateFields & TimeFields): CalendarDateTime;
1834
- /**
1835
- * Returns a new `CalendarDateTime` with the given field adjusted by a specified amount.
1836
- * When the resulting value reaches the limits of the field, it wraps around.
1837
- */
1838
- cycle(field: DateField$1 | TimeField$1, amount: number, options?: CycleTimeOptions): CalendarDateTime;
1839
- /** Converts the date to a native JavaScript Date object in the given time zone. */
1840
- toDate(timeZone: string, disambiguation?: Disambiguation): Date;
1841
- /** Converts the date to an ISO 8601 formatted string. */
1842
- toString(): string;
1843
- /**
1844
- * Compares this date with another. A negative result indicates that this date is before the given
1845
- * one, and a positive date indicates that it is after.
1846
- */
1847
- compare(b: CalendarDate | CalendarDateTime | ZonedDateTime): number;
1848
- }
1849
- /** A ZonedDateTime represents a date and time in a specific time zone and calendar system. */
1850
- declare class ZonedDateTime {
1851
- #private;
1852
- /** The calendar system associated with this date, e.g. Gregorian. */
1853
- readonly calendar: Calendar$1;
1854
- /** The calendar era for this date, e.g. "BC" or "AD". */
1855
- readonly era: string;
1856
- /** The year of this date within the era. */
1857
- readonly year: number;
1858
- /**
1859
- * The month number within the year. Note that some calendar systems such as Hebrew
1860
- * may have a variable number of months per year. Therefore, month numbers may not
1861
- * always correspond to the same month names in different years.
1862
- */
1863
- readonly month: number;
1864
- /** The day number within the month. */
1865
- readonly day: number;
1866
- /** The hour in the day, numbered from 0 to 23. */
1867
- readonly hour: number;
1868
- /** The minute in the hour. */
1869
- readonly minute: number;
1870
- /** The second in the minute. */
1871
- readonly second: number;
1872
- /** The millisecond in the second. */
1873
- readonly millisecond: number;
1874
- /** The IANA time zone identifier that this date and time is represented in. */
1875
- readonly timeZone: string;
1876
- /** The UTC offset for this time, in milliseconds. */
1877
- readonly offset: number;
1878
- constructor(year: number, month: number, day: number, timeZone: string, offset: number, hour?: number, minute?: number, second?: number, millisecond?: number);
1879
- constructor(era: string, year: number, month: number, day: number, timeZone: string, offset: number, hour?: number, minute?: number, second?: number, millisecond?: number);
1880
- constructor(calendar: Calendar$1, year: number, month: number, day: number, timeZone: string, offset: number, hour?: number, minute?: number, second?: number, millisecond?: number);
1881
- constructor(calendar: Calendar$1, era: string, year: number, month: number, day: number, timeZone: string, offset: number, hour?: number, minute?: number, second?: number, millisecond?: number);
1882
- /** Returns a copy of this date. */
1883
- copy(): ZonedDateTime;
1884
- /** Returns a new `ZonedDateTime` with the given duration added to it. */
1885
- add(duration: DateTimeDuration): ZonedDateTime;
1886
- /** Returns a new `ZonedDateTime` with the given duration subtracted from it. */
1887
- subtract(duration: DateTimeDuration): ZonedDateTime;
1888
- /**
1889
- * Returns a new `ZonedDateTime` with the given fields set to the provided values. Other fields
1890
- * will be constrained accordingly.
1891
- */
1892
- set(fields: DateFields & TimeFields, disambiguation?: Disambiguation): ZonedDateTime;
1893
- /**
1894
- * Returns a new `ZonedDateTime` with the given field adjusted by a specified amount.
1895
- * When the resulting value reaches the limits of the field, it wraps around.
1896
- */
1897
- cycle(field: DateField$1 | TimeField$1, amount: number, options?: CycleTimeOptions): ZonedDateTime;
1898
- /** Converts the date to a native JavaScript Date object. */
1899
- toDate(): Date;
1900
- /**
1901
- * Converts the date to an ISO 8601 formatted string, including the UTC offset and time zone
1902
- * identifier.
1903
- */
1904
- toString(): string;
1905
- /** Converts the date to an ISO 8601 formatted string in UTC. */
1906
- toAbsoluteString(): string;
1907
- /**
1908
- * Compares this date with another. A negative result indicates that this date is before the given
1909
- * one, and a positive date indicates that it is after.
1910
- */
1911
- compare(b: CalendarDate | CalendarDateTime | ZonedDateTime): number;
1912
- }
1913
-
1914
- /** An interface that is compatible with any object with date fields. */
1915
- interface AnyCalendarDate {
1916
- readonly calendar: Calendar$1;
1917
- readonly era: string;
1918
- readonly year: number;
1919
- readonly month: number;
1920
- readonly day: number;
1921
- copy(): this;
1922
- }
1923
- /** An interface that is compatible with any object with time fields. */
1924
- interface AnyTime {
1925
- readonly hour: number;
1926
- readonly minute: number;
1927
- readonly second: number;
1928
- readonly millisecond: number;
1929
- copy(): this;
1930
- }
1931
- type CalendarIdentifier = 'gregory' | 'buddhist' | 'chinese' | 'coptic' | 'dangi' | 'ethioaa' | 'ethiopic' | 'hebrew' | 'indian' | 'islamic' | 'islamic-umalqura' | 'islamic-tbla' | 'islamic-civil' | 'islamic-rgsa' | 'iso8601' | 'japanese' | 'persian' | 'roc';
1932
- /**
1933
- * The Calendar interface represents a calendar system, including information
1934
- * about how days, months, years, and eras are organized, and methods to perform
1935
- * arithmetic on dates.
1936
- */
1937
- interface Calendar$1 {
1938
- /**
1939
- * A string identifier for the calendar, as defined by Unicode CLDR. See
1940
- * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/supportedValuesOf#supported_calendar_types).
1941
- */
1942
- identifier: CalendarIdentifier;
1943
- /** Creates a CalendarDate in this calendar from the given Julian day number. */
1944
- fromJulianDay(jd: number): CalendarDate;
1945
- /** Converts a date in this calendar to a Julian day number. */
1946
- toJulianDay(date: AnyCalendarDate): number;
1947
- /** Returns the number of days in the month of the given date. */
1948
- getDaysInMonth(date: AnyCalendarDate): number;
1949
- /** Returns the number of months in the year of the given date. */
1950
- getMonthsInYear(date: AnyCalendarDate): number;
1951
- /** Returns the number of years in the era of the given date. */
1952
- getYearsInEra(date: AnyCalendarDate): number;
1953
- /** Returns a list of era identifiers for the calendar. */
1954
- getEras(): string[];
1955
- /**
1956
- * Returns the minimum month number of the given date's year.
1957
- * Normally, this is 1, but in some calendars such as the Japanese,
1958
- * eras may begin in the middle of a year.
1959
- */
1960
- getMinimumMonthInYear?(date: AnyCalendarDate): number;
1961
- /**
1962
- * Returns the minimum day number of the given date's month.
1963
- * Normally, this is 1, but in some calendars such as the Japanese,
1964
- * eras may begin in the middle of a month.
1965
- */
1966
- getMinimumDayInMonth?(date: AnyCalendarDate): number;
1967
- /** Returns the maximum months across all years. */
1968
- getMaximumMonthsInYear(): number;
1969
- /** Returns the maximum days across all months. */
1970
- getMaximumDaysInMonth(): number;
1971
- /**
1972
- * Returns a date that is the first day of the month for the given date.
1973
- * This is used to determine the month that the given date falls in, if
1974
- * the calendar has months that do not align with the standard calendar months
1975
- * (e.g. fiscal calendars).
1976
- */
1977
- getFormattableMonth?(date: AnyCalendarDate): CalendarDate;
1978
- /** Returns whether the given calendar is the same as this calendar. */
1979
- isEqual?(calendar: Calendar$1): boolean;
1980
- /** @private */
1981
- balanceDate?(date: AnyCalendarDate): void;
1982
- /** @private */
1983
- balanceYearMonth?(date: AnyCalendarDate, previousDate: AnyCalendarDate): void;
1984
- /** @private */
1985
- constrainDate?(date: AnyCalendarDate): void;
1986
- /** @private */
1987
- isInverseEra?(date: AnyCalendarDate): boolean;
1988
- }
1989
- /** Represents an amount of time in calendar-specific units, for use when performing arithmetic. */
1990
- interface DateDuration {
1991
- /** The number of years to add or subtract. */
1992
- years?: number;
1993
- /** The number of months to add or subtract. */
1994
- months?: number;
1995
- /** The number of weeks to add or subtract. */
1996
- weeks?: number;
1997
- /** The number of days to add or subtract. */
1998
- days?: number;
1999
- }
2000
- /** Represents an amount of time, for use whe performing arithmetic. */
2001
- interface TimeDuration {
2002
- /** The number of hours to add or subtract. */
2003
- hours?: number;
2004
- /** The number of minutes to add or subtract. */
2005
- minutes?: number;
2006
- /** The number of seconds to add or subtract. */
2007
- seconds?: number;
2008
- /** The number of milliseconds to add or subtract. */
2009
- milliseconds?: number;
2010
- }
2011
- /**
2012
- * Represents an amount of time with both date and time components, for use when performing
2013
- * arithmetic.
2014
- */
2015
- interface DateTimeDuration extends DateDuration, TimeDuration {
2016
- }
2017
- interface DateFields {
2018
- era?: string;
2019
- year?: number;
2020
- month?: number;
2021
- day?: number;
2022
- }
2023
- interface TimeFields {
2024
- hour?: number;
2025
- minute?: number;
2026
- second?: number;
2027
- millisecond?: number;
2028
- }
2029
- type DateField$1 = keyof DateFields;
2030
- type TimeField$1 = keyof TimeFields;
2031
- type Disambiguation = 'compatible' | 'earlier' | 'later' | 'reject';
2032
- interface CycleOptions {
2033
- /** Whether to round the field value to the nearest interval of the amount. */
2034
- round?: boolean;
2035
- }
2036
- interface CycleTimeOptions extends CycleOptions {
2037
- /**
2038
- * Whether to use 12 or 24 hour time. If 12 hour time is chosen, the resulting value
2039
- * will remain in the same day period as the original value (e.g. if the value is AM,
2040
- * the resulting value also be AM).
2041
- *
2042
- * @default 24
2043
- */
2044
- hourCycle?: 12 | 24;
2045
- }
2046
-
2047
- interface DateRangeFormatPart extends Intl.DateTimeFormatPart {
2048
- source: 'startRange' | 'endRange' | 'shared';
2049
- }
2050
- /** A wrapper around Intl.DateTimeFormat that fixes various browser bugs, and polyfills new features. */
2051
- declare class DateFormatter implements Intl.DateTimeFormat {
2052
- private formatter;
2053
- private options;
2054
- private resolvedHourCycle;
2055
- constructor(locale: string, options?: Intl.DateTimeFormatOptions);
2056
- /**
2057
- * Formats a date as a string according to the locale and format options passed to the
2058
- * constructor.
2059
- */
2060
- format(value: Date): string;
2061
- /** Formats a date to an array of parts such as separators, numbers, punctuation, and more. */
2062
- formatToParts(value: Date): Intl.DateTimeFormatPart[];
2063
- /** Formats a date range as a string. */
2064
- formatRange(start: Date, end: Date): string;
2065
- /** Formats a date range as an array of parts. */
2066
- formatRangeToParts(start: Date, end: Date): DateRangeFormatPart[];
2067
- /** Returns the resolved formatting options based on the values passed to the constructor. */
2068
- resolvedOptions(): Intl.ResolvedDateTimeFormatOptions;
2069
- }
2070
-
2071
1709
  type DateValue$1 = CalendarDate | CalendarDateTime | ZonedDateTime;
2072
1710
  type MappedDateValue$1<T> = T extends ZonedDateTime ? ZonedDateTime : T extends CalendarDateTime ? CalendarDateTime : T extends CalendarDate ? CalendarDate : never;
2073
1711
  type PageBehavior = 'single' | 'visible';
@@ -6417,8 +6055,8 @@ declare function calculateFontSizeToFitWidth({ text, maxWidth, initialFontSize,
6417
6055
  declare function isFocusableElement(element: HTMLElement): boolean;
6418
6056
  declare function findFocusableElements(element: HTMLElement): NodeListOf<Element>;
6419
6057
  /**
6420
- * Returns the active element of the given node, resolving through a shadow root
6421
- * when the node lives in one.
6058
+ * Returns the active element of the given node. A closed shadow root cannot be
6059
+ * pierced, so focus held inside one resolves to its host.
6422
6060
  */
6423
6061
  declare function getActiveElement(node?: Node): Element | null;
6424
6062
  /**
@@ -6560,16 +6198,7 @@ declare const getPlainText: (text: string) => string;
6560
6198
  */
6561
6199
  declare function isInIframe(el: Node): boolean;
6562
6200
 
6563
- /**
6564
- * Checks whether a given node is inside a Shadow DOM.
6565
- *
6566
- * This function uses `getRootNode()` to determine if the node's root is a
6567
- * `ShadowRoot`, which indicates that the node is part of a shadow tree.
6568
- *
6569
- * @param {Node} node - The DOM node to check.
6570
- * @returns {boolean} `true` if the node is inside a Shadow DOM, `false`
6571
- * otherwise.
6572
- */
6201
+ /** Checks whether a given node is inside a Shadow DOM. */
6573
6202
  declare function isInShadowDOM(element: Node | null | undefined): boolean;
6574
6203
 
6575
6204
  /**
@@ -6963,9 +6592,16 @@ interface ActionButtonProps extends ActionButtonSharedProps {
6963
6592
  /**
6964
6593
  * The button's variant.
6965
6594
  *
6595
+ * The `success`, `warning` and `error` variants carry a support colour. Each
6596
+ * comes in three emphasis levels, mirroring `primary`/`secondary`/`tertiary`:
6597
+ * the bare name is the filled treatment, `-secondary` is a tinted fill and
6598
+ * `-tertiary` is an outline that fills with the support colour on hover and
6599
+ * on keyboard focus. When disabled, all three drop the support colour and
6600
+ * render in the neutral disabled treatment.
6601
+ *
6966
6602
  * @default primary
6967
6603
  */
6968
- variant?: "primary" | "secondary" | "tertiary" | "ghost" | "popover" | "toolbar" | "success" | "warning" | "error";
6604
+ variant?: "primary" | "secondary" | "tertiary" | "ghost" | "popover" | "toolbar" | "success" | "success-secondary" | "success-tertiary" | "warning" | "warning-secondary" | "warning-tertiary" | "error" | "error-secondary" | "error-tertiary";
6969
6605
  /** The button's label. */
6970
6606
  label: React__default.ReactNode;
6971
6607
  /** The button's icon before the label. */
@@ -7197,13 +6833,20 @@ declare const Popover: React__default.FC<PopoverProps>;
7197
6833
 
7198
6834
  type MenuOption = Omit<ListOption, "description"> & {
7199
6835
  keyboardShortcut?: string;
6836
+ /**
6837
+ * Nested menu items. When present, this option becomes a submenu trigger that
6838
+ * opens a nested menu instead of acting as a leaf action. Recursive: a submenu
6839
+ * may itself contain leaf options, sections, or deeper submenus.
6840
+ */
6841
+ items?: MenuItem[];
7200
6842
  };
7201
6843
  type MenuSection = Omit<ListSection, "children"> & {
7202
- children: MenuOption[];
6844
+ children: Omit<MenuOption, "items">[];
7203
6845
  };
7204
6846
  type MenuItem = MenuOption | MenuSection;
7205
6847
  type MenuPopoverProps = Pick<PopoverContentProps, "isNonModal" | "placement" | "shouldUpdatePosition" | "shouldFlip" | "boundaryElement" | "boundaryAxis" | "horizontalBoundaryBehavior" | "crossOffset" | "offset" | "portalContainer">;
7206
- interface MenuProps extends MenuPopoverProps, MenuTriggerProps, Omit<AriaMenuProps<MenuItem>, "children">, Omit<AriaMenuTriggerProps, "type"> {
6848
+ type MenuSelectionKeys = "selectionMode" | "selectedKeys" | "defaultSelectedKeys" | "onSelectionChange";
6849
+ interface MenuPropsBase extends MenuPopoverProps, MenuTriggerProps, Omit<AriaMenuProps<MenuItem>, "children" | MenuSelectionKeys>, Omit<AriaMenuTriggerProps, "type"> {
7207
6850
  /** The `className` property assigned to the root element of the component. */
7208
6851
  className?: string;
7209
6852
  /** The `className` property assigned to the content element of the component. */
@@ -7211,34 +6854,15 @@ interface MenuProps extends MenuPopoverProps, MenuTriggerProps, Omit<AriaMenuPro
7211
6854
  /** The `className` property assigned to the item element of the component. */
7212
6855
  itemClassName?: string;
7213
6856
  /**
7214
- * A list of items to render in the menu. Items have the following shape:
6857
+ * A list of items to render in the menu. See `MenuItem`.
7215
6858
  *
7216
- * ```ts
7217
- * export type MenuOption = {
7218
- * id: string;
7219
- * label: string;
7220
- * keyboardShortcut?: string;
7221
- * icon?: React.FC<IconProps>;
7222
- * };
7223
- *
7224
- * export type MenuSection = {
7225
- * id: string;
7226
- * title?: string;
7227
- * type: "section";
7228
- * children: MenuOption[];
7229
- * };
7230
- *
7231
- * export type MenuItem = MenuOption | MenuSection;
7232
- * ```
6859
+ * A `MenuSection` may opt into independent selection by listing its id in the
6860
+ * object form of `selectionMode` (e.g. `selectionMode={{ view: "single" }}`).
7233
6861
  */
7234
6862
  items: MenuItem[];
7235
6863
  /**
7236
6864
  * A function that renders the trigger element of the component. The default
7237
6865
  * implementation renders an `ActionButton` component.
7238
- *
7239
- * ```tsx
7240
- * <Menu renderTrigger={({ buttonProps, ref }) => <ActionButton {...buttonProps} label="Label" ref={ref} />
7241
- * ```
7242
6866
  */
7243
6867
  renderTrigger?: (options: {
7244
6868
  buttonProps: ActionButtonProps & {
@@ -7252,6 +6876,30 @@ interface MenuProps extends MenuPopoverProps, MenuTriggerProps, Omit<AriaMenuPro
7252
6876
  */
7253
6877
  triggerLabel?: React__default.ReactNode | ((isOpen: boolean) => React__default.ReactNode);
7254
6878
  }
6879
+ interface MenuProps extends MenuPropsBase {
6880
+ /**
6881
+ * `"single"`/`"multiple"` select the whole menu. A record keyed by section id
6882
+ * makes each listed section an independent selection group.
6883
+ */
6884
+ selectionMode?: "none" | "single" | "multiple" | Record<string, "single" | "multiple">;
6885
+ /**
6886
+ * A menu-wide selection (`"all"` or an iterable of keys) or a per-section
6887
+ * record of `Selection`. The iterable form preserves the pre-existing
6888
+ * `AriaMenuProps.selectedKeys` shape (arrays stay assignable).
6889
+ */
6890
+ selectedKeys?: "all" | Iterable<Key> | Record<string, Selection$1>;
6891
+ /** Initial selection, in the same flat-or-per-section shape as `selectedKeys`. */
6892
+ defaultSelectedKeys?: "all" | Iterable<Key> | Record<string, "all" | Iterable<Key>>;
6893
+ /**
6894
+ * Fires on user selection. In per-section mode, the second argument carries
6895
+ * the `sectionId` of the section whose selection changed; it is `undefined`
6896
+ * in menu-wide mode. Typed optional so existing one-arg handlers stay
6897
+ * assignable.
6898
+ */
6899
+ onSelectionChange?: (keys: Selection$1, meta?: {
6900
+ sectionId: string;
6901
+ }) => void;
6902
+ }
7255
6903
 
7256
6904
  declare const DefaultListOption: React__default.ForwardRefExoticComponent<DefaultListOptionProps & React__default.RefAttributes<HTMLLIElement>>;
7257
6905
  interface DefaultListOptionProps {
@@ -7524,19 +7172,19 @@ interface ColorInputProps extends OverlayTriggerProps$1, StylingProps, Pick<Colo
7524
7172
  /**
7525
7173
  * The label to show on the add color button.
7526
7174
  *
7527
- * @default Add color
7175
+ * @default Add Color
7528
7176
  */
7529
7177
  addColorButtonLabel?: string;
7530
7178
  /**
7531
7179
  * The label to show on the remove color button.
7532
7180
  *
7533
- * @default Remove color
7181
+ * @default Remove Color
7534
7182
  */
7535
7183
  removeColorButtonLabel?: string;
7536
7184
  /**
7537
7185
  * The label to show on the custom colors section.
7538
7186
  *
7539
- * @default Custom colors
7187
+ * @default Custom Colors
7540
7188
  */
7541
7189
  customColorsLabel?: string;
7542
7190
  /**
@@ -7845,7 +7493,7 @@ interface InputMessage {
7845
7493
  /** The warning message to display when the input is in a warning state. */
7846
7494
  warningMessage?: string;
7847
7495
  }
7848
- interface TextInputProps extends Omit<AriaTextFieldProps, "validationState" | "isInvalid" | "description" | "errorMessage">, StylingProps, InputMessage, Pick<SharedInputProps, "validationState" | "variant" | "labelPosition" | "isMultiLine"> {
7496
+ interface TextInputBaseProps extends StylingProps, InputMessage, Pick<SharedInputProps, "validationState" | "variant" | "labelPosition"> {
7849
7497
  /** The style object to apply to the input element */
7850
7498
  inputStyle?: React__default.CSSProperties;
7851
7499
  /** The class name to apply to the input element */
@@ -7856,8 +7504,29 @@ interface TextInputProps extends Omit<AriaTextFieldProps, "validationState" | "i
7856
7504
  */
7857
7505
  rows?: number;
7858
7506
  }
7507
+ interface SingleLineTextInputProps extends Omit<AriaTextFieldProps, "validationState" | "isInvalid" | "description" | "errorMessage">, TextInputBaseProps {
7508
+ /**
7509
+ * Whether the input renders as a resizable multi-line `<textarea>` instead of
7510
+ * a single-line `<input>`. Relaxes the fixed single-line height and top-aligns
7511
+ * the status icon.
7512
+ *
7513
+ * @default false
7514
+ */
7515
+ isMultiLine?: false;
7516
+ }
7517
+ interface MultiLineTextInputProps extends Omit<AriaTextFieldProps<HTMLTextAreaElement>, "validationState" | "isInvalid" | "description" | "errorMessage">, TextInputBaseProps {
7518
+ /**
7519
+ * Whether the input renders as a resizable multi-line `<textarea>` instead of
7520
+ * a single-line `<input>`. Relaxes the fixed single-line height and top-aligns
7521
+ * the status icon.
7522
+ */
7523
+ isMultiLine: true;
7524
+ }
7525
+ type TextInputProps = SingleLineTextInputProps | MultiLineTextInputProps;
7859
7526
 
7860
7527
  interface FileInputProps extends InputMessage, FileTriggerProps, Pick<SharedInputProps, "validationState" | "labelPosition"> {
7528
+ /** The id applied to the root element of the component. */
7529
+ id?: string;
7861
7530
  /** The className applied to the root element of the component. */
7862
7531
  className?: string;
7863
7532
  /** The style applied to the root element of the component. */
@@ -8058,7 +7727,12 @@ interface I18nProviderProps extends I18nProviderProps$1 {
8058
7727
  children: React__default.ReactNode;
8059
7728
  locale?: string;
8060
7729
  /**
8061
- * @default true
7730
+ * Whether to `console.warn` about message ids that resolve through the
7731
+ * deprecated bare-id fallback or fall all the way through to their
7732
+ * `defaultMessage`. These warnings are development guidance, so they are off
7733
+ * in production builds — pass `true` to opt back in.
7734
+ *
7735
+ * @default process.env.NODE_ENV !== "production"
8062
7736
  */
8063
7737
  shouldLogMissingMessages?: boolean;
8064
7738
  }
@@ -8241,25 +7915,57 @@ interface CollectionOptionRenderProps {
8241
7915
  /**
8242
7916
  * The custom render function for the listbox options.
8243
7917
  *
7918
+ * Replaces the option's entire contents, including the default selection
7919
+ * indicator — render your own affordance from `options.isSelected` if you
7920
+ * need one. Selection and keyboard behavior are unaffected.
7921
+ *
7922
+ * Reading component state here works, at the cost of rebuilding every cached option and
7923
+ * section whenever the function's identity changes — see {@link UNSAFE_ListBoxProps.items}
7924
+ * for when that cost applies.
7925
+ *
8244
7926
  * @param item ListOption
8245
7927
  * @param options ListBoxItemRenderProps
8246
7928
  */
8247
7929
  renderOption?: (item: ListOption, options: ListBoxItemRenderProps) => React__default.ReactNode;
8248
- /** The CSS class name for the option. */
7930
+ /**
7931
+ * A CSS class name added to the option's built-in classes.
7932
+ *
7933
+ * Compared by identity, so an inline function or an unmemoized value rebuilds every
7934
+ * cached option and section on each render. A plain string is compared by value.
7935
+ */
8249
7936
  optionClassName?: string | ((item: ListOption, renderProps: ListBoxItemRenderProps) => string | undefined);
8250
- /** The style of the option. */
7937
+ /**
7938
+ * The style of the option.
7939
+ *
7940
+ * Compared by identity, so an inline function or object literal rebuilds every cached
7941
+ * option and section on each render — memoize it to avoid that.
7942
+ */
8251
7943
  optionStyle?: React__default.CSSProperties | ((item: ListOption, renderProps: ListBoxItemRenderProps) => React__default.CSSProperties | undefined);
8252
7944
  }
8253
7945
  interface CollectionSectionRenderProps {
8254
7946
  /**
8255
7947
  * The custom render function for the listbox sections.
8256
7948
  *
7949
+ * Reading component state here works, at the cost of rebuilding every cached option and
7950
+ * section whenever the function's identity changes — see {@link UNSAFE_ListBoxProps.items}
7951
+ * for when that cost applies.
7952
+ *
8257
7953
  * @param section ListSection
8258
7954
  */
8259
7955
  renderSectionHeader?: (section: ListSection) => React__default.ReactNode;
8260
- /** The CSS class name for the section. */
7956
+ /**
7957
+ * The CSS class name for the section.
7958
+ *
7959
+ * Compared by identity, so an inline function or an unmemoized value rebuilds every
7960
+ * cached option and section on each render. A plain string is compared by value.
7961
+ */
8261
7962
  sectionClassName?: string | ((section: ListSection) => string | undefined);
8262
- /** The style of the section. */
7963
+ /**
7964
+ * The style of the section.
7965
+ *
7966
+ * Compared by identity, so an inline function or object literal rebuilds every cached
7967
+ * option and section on each render — memoize it to avoid that.
7968
+ */
8263
7969
  sectionStyle?: React__default.CSSProperties | ((section: ListSection) => React__default.CSSProperties | undefined);
8264
7970
  /**
8265
7971
  * Whether to show each section title when provided.
@@ -8275,7 +7981,7 @@ interface CollectionSectionRenderProps {
8275
7981
  withSectionHeaderPadding?: boolean;
8276
7982
  }
8277
7983
  type CollectionRenderProps = CollectionOptionRenderProps & CollectionSectionRenderProps;
8278
- interface UNSAFE_ListBoxProps extends StylingProps, Omit<AriaListBoxProps<ListItem> & AriaListBoxOptions<ListItem>, "children" | "linkBehavior" | "isVirtualized" | "keyboardDelegate" | "items">, Pick<ListBoxProps$1<ListItem>, "dragAndDropHooks" | "orientation" | "layout">, CollectionRenderProps {
7984
+ interface UNSAFE_ListBoxProps extends StylingProps, Omit<AriaListBoxProps<ListItem> & AriaListBoxOptions<ListItem>, "children" | "linkBehavior" | "isVirtualized" | "keyboardDelegate" | "items">, Pick<ListBoxProps$1<ListItem>, "dragAndDropHooks" | "orientation" | "layout" | "dependencies">, CollectionRenderProps {
8279
7985
  /**
8280
7986
  * The items to render in the listbox. Items have the following shape:
8281
7987
  *
@@ -8296,6 +8002,11 @@ interface UNSAFE_ListBoxProps extends StylingProps, Omit<AriaListBoxProps<ListIt
8296
8002
  *
8297
8003
  * type ListItem = ListOption | ListSection;
8298
8004
  * ```
8005
+ *
8006
+ * Rendered options and sections are cached per item object. Building this array inline
8007
+ * (`items={data.map(...)}`) produces new item objects every render, so nothing is ever
8008
+ * reused and the customisation props cost nothing; memoize it and the cache applies,
8009
+ * which is when their identity starts to matter.
8299
8010
  */
8300
8011
  items?: ListItem[];
8301
8012
  /** The label for the listbox. */
@@ -8686,7 +8397,7 @@ type FreehandCanvasPoint = [x: number, y: number, pressure?: number];
8686
8397
 
8687
8398
  declare const FreehandCanvas: React__default.ForwardRefExoticComponent<FreehandCanvasProps & React__default.RefAttributes<HTMLDivElement>>;
8688
8399
 
8689
- type TextProps<T extends keyof React__default.JSX.IntrinsicElements = "span"> = StylingProps & React__default.ComponentProps<T> & {
8400
+ type TextProps<T extends keyof React__default.JSX.IntrinsicElements = "span"> = StylingProps & Omit<React__default.ComponentProps<T>, "slot"> & {
8690
8401
  /**
8691
8402
  * The type of text to render.
8692
8403
  *
@@ -8707,6 +8418,13 @@ type TextProps<T extends keyof React__default.JSX.IntrinsicElements = "span"> =
8707
8418
  * @default "span"
8708
8419
  */
8709
8420
  elementType?: React__default.ElementType;
8421
+ /**
8422
+ * A slot name that wires this text into a parent container's context —
8423
+ * e.g. `slot="description"` or `slot="label"` — so the container can
8424
+ * associate it via `aria-describedby` / `aria-labelledby` without manually
8425
+ * threading an `id`. Pass `null` to opt out of an ambient slot.
8426
+ */
8427
+ slot?: string | null;
8710
8428
  };
8711
8429
 
8712
8430
  declare const Text: React__default.ForwardRefExoticComponent<Omit<TextProps, "ref"> & React__default.RefAttributes<HTMLSpanElement>>;
@@ -9924,7 +9642,11 @@ interface ImageGalleryProps extends StylingProps, Omit<UNSAFE_ListBoxProps, "ite
9924
9642
  }) => React__default.JSX.Element;
9925
9643
  /** The dimensions of the grid. */
9926
9644
  imageContainerStyle?: React__default.CSSProperties;
9927
- /** The dimensions of the image. */
9645
+ /**
9646
+ * The dimensions of the image.
9647
+ *
9648
+ * @default { width: imageWidth, aspectRatio }
9649
+ */
9928
9650
  imageDimensions?: Dimension | ((item: Item, options: {
9929
9651
  isSelected: boolean;
9930
9652
  }) => Dimension);
@@ -9989,7 +9711,7 @@ interface ButtonSelectProps extends StylingProps, Pick<SelectProps<"single">, "i
9989
9711
 
9990
9712
  declare const ButtonSelect: React__default.ForwardRefExoticComponent<ButtonSelectProps & React__default.RefAttributes<HTMLDivElement>>;
9991
9713
 
9992
- interface ComboBoxProps extends StylingProps, Omit<AriaComboBoxOptions<ListItem>, "items" | "children" | "inputRef" | "popoverRef" | "listBoxRef" | "buttonRef" | "validationState" | "errorMessage" | "description">, Omit<AriaComboBoxProps<ListItem>, "items" | "children" | "errorMessage" | "description" | "validationState">, Omit<UNSAFE_ListBoxProps, "autoFocus" | "onBlur" | "onFocus" | "onSelectionChange" | "selectionBehavior" | "selectionMode" | "selectedKeys" | "defaultSelectedKeys" | "renderDropIndicator" | "renderDragPreview" | "dropIndicatorClassName" | "dropIndicatorStyle" | "dragAndDropHooks" | "orientation" | "layout" | "renderSectionHeader" | "showSectionHeader" | "withSectionHeaderPadding" | "listBoxHandle" | "sectionClassName" | "sectionStyle">, AriaValidationProps, Omit<ComboBoxStateOptions<ListItem>, "items" | "children" | "errorMessage" | "description" | "validationState" | "selectedKey">, InputMessage, Pick<ActionIconButtonProps, "tooltip">, Pick<ColorInputProps, "onTriggerPress"> {
9714
+ interface ComboBoxProps extends StylingProps, Omit<AriaComboBoxOptions<ListItem>, "items" | "children" | "inputRef" | "popoverRef" | "listBoxRef" | "buttonRef" | "validationState" | "errorMessage" | "description">, Omit<AriaComboBoxProps<ListItem>, "items" | "children" | "errorMessage" | "description" | "validationState">, Omit<UNSAFE_ListBoxProps, "autoFocus" | "onBlur" | "onFocus" | "onSelectionChange" | "selectionBehavior" | "selectionMode" | "selectedKeys" | "defaultSelectedKeys" | "renderDropIndicator" | "renderDragPreview" | "dropIndicatorClassName" | "dropIndicatorStyle" | "dragAndDropHooks" | "dependencies" | "orientation" | "layout" | "renderSectionHeader" | "showSectionHeader" | "withSectionHeaderPadding" | "listBoxHandle" | "sectionClassName" | "sectionStyle">, AriaValidationProps, Omit<ComboBoxStateOptions<ListItem>, "items" | "children" | "errorMessage" | "description" | "validationState" | "selectedKey">, InputMessage, Pick<ActionIconButtonProps, "tooltip">, Pick<ColorInputProps, "onTriggerPress"> {
9993
9715
  /** ID of the initially selected item */
9994
9716
  defaultSelectedKey?: string;
9995
9717
  /**
@@ -10016,7 +9738,12 @@ interface ComboBoxProps extends StylingProps, Omit<AriaComboBoxOptions<ListItem>
10016
9738
  inputStyle?: React__default.CSSProperties;
10017
9739
  /** The class name to apply to the input element */
10018
9740
  inputClassName?: string;
10019
- /** Optional label for the toggle button */
9741
+ /**
9742
+ * Accessible name for the toggle button. Not rendered visually.
9743
+ *
9744
+ * A blank string is treated as unset, keeping the built-in name. Setting this
9745
+ * overrides any `aria-labelledby` the toggle would otherwise inherit.
9746
+ */
10020
9747
  toggleLabel?: string;
10021
9748
  filterItems?: boolean;
10022
9749
  onInputChange?: (value: string) => void;
@@ -10058,18 +9785,32 @@ interface ComboBoxProps extends StylingProps, Omit<AriaComboBoxOptions<ListItem>
10058
9785
  */
10059
9786
  inputType?: "text" | "number";
10060
9787
  /**
10061
- * The minimum value for the input field. This is only valid when `inputType`
10062
- * is set to `number`.
9788
+ * The minimum value for the input field. Only applies when `inputType="number"`.
9789
+ *
9790
+ * Requires `onValueChange` or `onInputSubmit` to receive and apply the clamped value.
10063
9791
  */
10064
9792
  minValue?: number;
10065
9793
  /**
10066
- * The maximum value for the input field. This is only valid when `inputType`
10067
- * is set to `number`.
9794
+ * The maximum value for the input field. Only applies when `inputType="number"`.
9795
+ *
9796
+ * Requires `onValueChange` or `onInputSubmit` to receive and apply the clamped value.
10068
9797
  */
10069
9798
  maxValue?: number;
10070
9799
  /** Listener to call when the input value is submitted */
10071
9800
  onInputSubmit?: (value: string) => void;
10072
- /** Listener to call when the selected value changes */
9801
+ /**
9802
+ * Listener to call when the selected value changes.
9803
+ *
9804
+ * Also called when the selected item's label changes after selection (e.g. the consumer
9805
+ * relabels the item, or an async collection resolves), so the reported `value` converges on
9806
+ * the item's current label once the field settles. While the user has unsubmitted text, a
9807
+ * label-only change is deferred; it is reported on the next selection, submit, or blur that
9808
+ * settles the input back onto the selection. With a controlled `inputValue` the consumer owns
9809
+ * that sync, so a deferred label is only reported once they settle the input themselves.
9810
+ *
9811
+ * Do not relabel the selected item from inside this callback — the new label re-triggers the
9812
+ * listener, which loops unless the relabel is idempotent.
9813
+ */
10073
9814
  onValueChange?: (option: {
10074
9815
  value?: string;
10075
9816
  key?: string | null;
@@ -11318,6 +11059,11 @@ interface I18nResult<T extends LocalizedStrings[keyof LocalizedStrings]> {
11318
11059
  interface MessageDescriptor {
11319
11060
  id: string;
11320
11061
  defaultMessage?: string;
11062
+ /**
11063
+ * Translator context. Build-time only — the published bundle is stripped of
11064
+ * it, and nothing reads it at runtime.
11065
+ */
11066
+ description?: string;
11321
11067
  }
11322
11068
  /**
11323
11069
  * Defines a set of messages for use with the `useI18n` hook.
@@ -11325,10 +11071,10 @@ interface MessageDescriptor {
11325
11071
  * @param messages An object containing message descriptors.
11326
11072
  * @returns An object containing the message descriptors with their keys as
11327
11073
  * property names.
11074
+ * @remarks Registers each `defaultMessage` so the no-catalog path can format it
11075
+ * as ICU rather than rendering the template verbatim.
11328
11076
  */
11329
- declare const defineMessages: <T extends Record<string, {
11330
- id: string;
11331
- }>>(messages: T) => T;
11077
+ declare const defineMessages: <T extends Record<string, MessageDescriptor>>(messages: T) => T;
11332
11078
 
11333
11079
  /**
11334
11080
  * A hook that uses a MutationObserver to watch for changes to the DOM.
@@ -11471,6 +11217,47 @@ declare function usePreventFocus({ ref, isDisabled, }: {
11471
11217
  isDisabled?: boolean;
11472
11218
  }): void;
11473
11219
 
11220
+ /**
11221
+ * Every message id Baseline UI can ask an `I18nProvider` to resolve.
11222
+ *
11223
+ * Use it to derive translation coverage instead of maintaining a hand-written
11224
+ * copy that goes stale on each upgrade:
11225
+ *
11226
+ * @example
11227
+ * ```ts
11228
+ * import { messageIds } from "@baseline-ui/core";
11229
+ *
11230
+ * const uncovered = messageIds.filter((id) => !(id in ourCatalog.en));
11231
+ * ```;
11232
+ */
11233
+ declare const messageIds: readonly ["bui.alertDialog.close", "bui.audioPlayer.audioTimeline", "bui.audioPlayer.pause", "bui.audioPlayer.play", "bui.buttonSelect.more", "bui.buttonSelect.moreWithLabel", "bui.calendar.nextMonth", "bui.calendar.nextYear", "bui.calendar.previousMonth", "bui.calendar.previousYear", "bui.calendar.selectMonth", "bui.calendar.selectYear", "bui.colorInput.add", "bui.colorInput.addColor", "bui.colorInput.cancel", "bui.colorInput.colorFormat", "bui.colorInput.colorPresets", "bui.colorInput.customColors", "bui.colorInput.indeterminate", "bui.colorInput.newColor", "bui.colorInput.noColor", "bui.colorInput.removeColor", "bui.colorInput.transparent", "bui.colorSwatch.none", "bui.dateField.openCalendar", "bui.drawer.close", "bui.editor.action", "bui.editor.addLink", "bui.editor.backgroundColor", "bui.editor.bold", "bui.editor.cancel", "bui.editor.close", "bui.editor.copy", "bui.editor.cut", "bui.editor.editLink", "bui.editor.fontColor", "bui.editor.help", "bui.editor.italic", "bui.editor.linkAnnotation", "bui.editor.mention", "bui.editor.openHelpDialog", "bui.editor.paste", "bui.editor.redo", "bui.editor.removeLink", "bui.editor.save", "bui.editor.selectAll", "bui.editor.shortcut", "bui.editor.submit", "bui.editor.toolbarFocus", "bui.editor.underline", "bui.editor.undo", "bui.fileList.loading", "bui.fileList.removeHint", "bui.freehandCanvas.redo", "bui.freehandCanvas.undo", "bui.imageDropZone.selectImage", "bui.imageGallery.cancel", "bui.imageGallery.delete", "bui.imageGallery.loading", "bui.inlineAlert.close", "bui.pagination.goToPage", "bui.pagination.nextPage", "bui.pagination.pageXofY", "bui.pagination.prevPage", "bui.select.clear", "bui.select.more", "bui.select.search", "bui.select.selectAll", "bui.stepper.completed", "bui.stepper.label", "bui.stepper.step", "bui.table.loading", "bui.toolbar.more", "bui.treeView.collapse", "bui.treeView.expand", "bui.treeView.rename", "bui.useMedia.paused", "bui.useMedia.playing"];
11234
+ type MessageId = (typeof messageIds)[number];
11235
+ /**
11236
+ * Maps each deprecated bare id — the last dot-segment of a namespaced id — to
11237
+ * every id that claims it, so a catalog keyed the old way can be re-keyed
11238
+ * mechanically. Each key is kept alongside the ids it maps to: a bare key may
11239
+ * also be one your own app looks up, and the namespaced entry is what Baseline
11240
+ * UI resolves against either way.
11241
+ *
11242
+ * @example
11243
+ * ```ts
11244
+ * import { legacyMessageIdMap } from "@baseline-ui/core";
11245
+ *
11246
+ * const migrated = Object.fromEntries(
11247
+ * Object.entries(oldCatalog).flatMap(([key, value]) => [
11248
+ * [key, value],
11249
+ * ...(legacyMessageIdMap[key] ?? []).map((id) => [id, value]),
11250
+ * ]),
11251
+ * );
11252
+ * ```;
11253
+ *
11254
+ * @remarks An entry with more than one id is ambiguous: overriding that bare id
11255
+ * overrides every component listed, which forecloses any language where the
11256
+ * word inflects differently per context. Those need a per-id translation.
11257
+ * The bare-id fallback is deprecated and will be removed in a future major.
11258
+ */
11259
+ declare const legacyMessageIdMap: Readonly<Partial<Record<string, readonly MessageId[]>>>;
11260
+
11474
11261
  type Assertiveness = 'assertive' | 'polite';
11475
11262
  type Message = string | {
11476
11263
  'aria-labelledby': string;
@@ -11537,5 +11324,5 @@ declare namespace reactStately {
11537
11324
  export type { reactStately_Color as Color, reactStately_ListData as ListData, reactStately_TreeData as TreeData };
11538
11325
  }
11539
11326
 
11540
- export { Accordion, AccordionItem, ActionButton, ActionGroup, ActionGroupItem, ActionIconButton, Actionable, AlertDialog, AudioPlayer, Autocomplete, Avatar, Box, ButtonSelect, Calendar, Cell, Checkbox, Code, ColorInput, ColorSwatch, ColorSwatchPicker, Column, ComboBox, DateField, DateFormat, DefaultListOption, DeviceProvider, DeviceProviderContext, Dialog, DialogTitle, Disclosure, DomNodeRenderer, Drawer, EMPTY_SELECTION_STATE, Editor, EditorCore, EditorProvider, FileInput, FileList$1 as FileList, FileUploader, FocusScope, Focusable, FrameProvider, FreehandCanvas, GlobalToastRegion, GridLayout, GridList, Group, I18nProvider, Icon, IconColorInput, IconColorInputButton, IconSelect, IconSlider, ImageDropZone, ImageGallery, InlineAlert, Kbd, Link, ListBox, ListLayout, LocaleAwareGridLayout, Markdown, Menu, MessageFormat, Modal, ModalClose, ModalContent, ModalTrigger, NumberFormat, NumberInput, Pagination, Panel, PanelGroup, PanelResizeHandle, PointPicker, PointPickerContent, PointPickerDisplay, Popover, PopoverContent, PopoverTrigger, Portal, PortalContainerProvider, Pressable, Preview, ProgressBar, ProgressSpinner, REACT_ARIA_INCOMPATIBLE_KEYS, RadioGroup, RangeCalendar, Reaction, Row, ScrollControlButton, SearchInput, Select, Separator, Size, Skeleton, Slider, StatusCard, Stepper, Switch, TabItem, Table, TableBody, TableHeader, TableLayout, Tabs, Tag, TagGroup, TaggedPagination, Text, TextInput, ThemeProvider, TimeField, ToastQueue, ToggleButton, ToggleIconButton, Toolbar, Tooltip, TreeView, UNSAFE_ListBox, reactAria as UNSAFE_aria, reactStately as UNSAFE_stately, VIRTUALIZER_LAYOUT_DEFAULT_OPTIONS, Virtualizer, VisuallyHidden, WaterfallLayout, announce, areColorsEqual, booleanOrObjectToConfig, calculateFontSizeToFitWidth, capitalize, clamp, classNames, cleanKeyFromGlobImport, clearAnnouncer, defineMessages, destroyAnnouncer, devWarnOnce, directionVar, disableAnimations, enableAnimations, filterDOMProps, filterTruthyValues, findFocusableElements, getAbsoluteBounds, getAbsolutePosition, getActiveElement, getHTMLElement, getOsSpecificKeyboardShortcutLabel, getOwnerDocument, getPlainText, getSvgPathFromStroke, getTextDimensions, handleEditorShortcut, iconMap, invariant, isFocusableElement, isInIframe, isInShadowDOM, isInputThatOpensKeyboard, isInsideOverlayContent, isRect, isUrl, lightenColor, mergeProps, mergeRefs, onDropOrPaste, parseColor, safeSpreadProps, useCollator, useDateFormatter, useDevice, useDragAndDrop, useEditable, useEditor, useEditorContext, useFilter, useFocusRing, useFocusVisible, useFrameDimensions, useI18n, useId, useImage, useInteractionModality, useIntersectionObserver, useIsFirstRender, useKeyboard, useListData, useLiveInteractionModality, useLocalStorage, useLocale, useMutationObserver, useNumberFormatter, useObjectRef, usePointProximity, usePortalContainer, usePreventFocus, useResizeObserver, useTableDragAndDrop, useTextSelection, useUndoRedo, useUserPreferences };
11541
- export type { AccordionItemProps, AccordionProps, ActionButtonProps, ActionGroupProps, ActionIconButtonProps, ActionableProps, ActiveMarks, AlertDialogProps, AudioPlayerProps, AutocompleteProps, AvatarProps, BlockProps, BoundaryAxis, BoxProps, ButtonSelectProps, CalendarHeaderVariant, CalendarProps, CalendarSize, CellProps, CheckboxProps, CodeProps, ColorInputProps, ColorPreset, ColorSwatchPickerProps, ColorSwatchProps, ColumnProps, ComboBoxProps, CommandArgs, CommandName, DateFieldPickerType, DateFieldProps, DateFormatProps, Device, DeviceProviderProps, DialogProps, DialogTitleProps, DisclosureProps, DomNodeRendererProps, DrawerProps, EditableProps, EditorCoreOptions, EditorHandle, EditorProps, EditorProviderProps, EditorState, FileInputProps, FileListItem, FileListProps, FileUploaderProps, FocusableProps, FrameProviderProps, FreehandCanvasProps, GridListProps, GroupProps, HorizontalBoundaryBehavior, I18nProviderProps, I18nResult, IconColorInputProps, IconComponentProps$1 as IconComponentProps, IconProps, IconSelectProps, IconSliderProps, ImageDropZoneProps, ImageGalleryProps, ImperativePanelGroupHandle, ImperativePanelHandle, InlineAlertProps, IntersectionObserverOptions, KbdProps, Key, LinkProps, ListBoxProps, ListHandle$1 as ListHandle, ListOption, MarkName, MarkdownProps, MenuItem, MenuProps, MessageDescriptor, MessageFormatProps, MessageFormatter, ModalContentProps, ModalProps, ModelPoint, ModelRange, NumberFormatProps, NumberInputProps, PaginationProps, PanelGroupProps, PanelProps, PanelResizeHandleProps, PointPickerContentProps, PointPickerDisplayProps, PointPickerProps, PopoverContentHandle, PopoverContentProps, PopoverProps, PopoverTriggerProps, PortalProps, PressEvent, PreviewProps, ProgressBarProps, ProgressSpinnerProps, RadioGroupProps, RangeCalendarProps, ReactAriaIncompatibleKey, ReactionProps, Rect, ResizeObserverOptions, RichTextEditorDoc, RichTextEditorInline, RichTextEditorLink, RichTextEditorMention, RichTextEditorMentionInput, RichTextEditorParagraph, RichTextEditorText, RowProps, SVGRProps, SafeDOMAttributes, ScrollControlButtonProps, SearchInputProps, SelectProps, SelectionState, SeparatorProps, SetValue, SkeletonProps, SliderProps, StatusCardProps, StepperItem, StepperProps, StylingProps, SwitchProps, TabItemProps, TableBodyProps, TableHeaderProps, TableProps, TabsProps, TagGroupProps, TagProps, TagVariant, TaggedPaginationProps, TextInputProps, TextProps, TextSelectionProps, ThemeProviderProps, TimeFieldProps, ToastProps, ToggleButtonProps, ToggleIconButtonProps, ToolbarProps, TooltipProps, TreeListItem, TreeViewProps, UNSAFE_ListBoxProps, UseEditableOptions, UseEditorOptions, UseTableDragAndDropOptions, VirtualizerProps };
11327
+ export { Accordion, AccordionItem, ActionButton, ActionGroup, ActionGroupItem, ActionIconButton, Actionable, AlertDialog, AudioPlayer, Autocomplete, Avatar, Box, ButtonSelect, Calendar, Cell, Checkbox, Code, ColorInput, ColorSwatch, ColorSwatchPicker, Column, ComboBox, DateField, DateFormat, DefaultListOption, DeviceProvider, DeviceProviderContext, Dialog, DialogTitle, Disclosure, DomNodeRenderer, Drawer, EMPTY_SELECTION_STATE, Editor, EditorCore, EditorProvider, FileInput, FileList$1 as FileList, FileUploader, FocusScope, Focusable, FrameProvider, FreehandCanvas, GlobalToastRegion, GridLayout, GridList, Group, I18nProvider, Icon, IconColorInput, IconColorInputButton, IconSelect, IconSlider, ImageDropZone, ImageGallery, InlineAlert, Kbd, Link, ListBox, ListLayout, LocaleAwareGridLayout, Markdown, Menu, MessageFormat, Modal, ModalClose, ModalContent, ModalTrigger, NumberFormat, NumberInput, Pagination, Panel, PanelGroup, PanelResizeHandle, PointPicker, PointPickerContent, PointPickerDisplay, Popover, PopoverContent, PopoverTrigger, Portal, PortalContainerProvider, Pressable, Preview, ProgressBar, ProgressSpinner, REACT_ARIA_INCOMPATIBLE_KEYS, RadioGroup, RangeCalendar, Reaction, Row, ScrollControlButton, SearchInput, Select, Separator, Size, Skeleton, Slider, StatusCard, Stepper, Switch, TabItem, Table, TableBody, TableHeader, TableLayout, Tabs, Tag, TagGroup, TaggedPagination, Text, TextInput, ThemeProvider, TimeField, ToastQueue, ToggleButton, ToggleIconButton, Toolbar, Tooltip, TreeView, UNSAFE_ListBox, reactAria as UNSAFE_aria, reactStately as UNSAFE_stately, VIRTUALIZER_LAYOUT_DEFAULT_OPTIONS, Virtualizer, VisuallyHidden, WaterfallLayout, announce, areColorsEqual, booleanOrObjectToConfig, calculateFontSizeToFitWidth, capitalize, clamp, classNames, cleanKeyFromGlobImport, clearAnnouncer, defineMessages, destroyAnnouncer, devWarnOnce, directionVar, disableAnimations, enableAnimations, filterDOMProps, filterTruthyValues, findFocusableElements, getAbsoluteBounds, getAbsolutePosition, getActiveElement, getHTMLElement, getOsSpecificKeyboardShortcutLabel, getOwnerDocument, getPlainText, getSvgPathFromStroke, getTextDimensions, handleEditorShortcut, iconMap, invariant, isFocusableElement, isInIframe, isInShadowDOM, isInputThatOpensKeyboard, isInsideOverlayContent, isRect, isUrl, legacyMessageIdMap, lightenColor, mergeProps, mergeRefs, messageIds, onDropOrPaste, parseColor, safeSpreadProps, useCollator, useDateFormatter, useDevice, useDragAndDrop, useEditable, useEditor, useEditorContext, useFilter, useFocusRing, useFocusVisible, useFrameDimensions, useI18n, useId, useImage, useInteractionModality, useIntersectionObserver, useIsFirstRender, useKeyboard, useListData, useLiveInteractionModality, useLocalStorage, useLocale, useMutationObserver, useNumberFormatter, useObjectRef, usePointProximity, usePortalContainer, usePreventFocus, useResizeObserver, useTableDragAndDrop, useTextSelection, useUndoRedo, useUserPreferences };
11328
+ export type { AccordionItemProps, AccordionProps, ActionButtonProps, ActionGroupProps, ActionIconButtonProps, ActionableProps, ActiveMarks, AlertDialogProps, AudioPlayerProps, AutocompleteProps, AvatarProps, BlockProps, BoundaryAxis, BoxProps, ButtonSelectProps, CalendarHeaderVariant, CalendarProps, CalendarSize, CellProps, CheckboxProps, CodeProps, ColorInputProps, ColorPreset, ColorSwatchPickerProps, ColorSwatchProps, ColumnProps, ComboBoxProps, CommandArgs, CommandName, DateFieldPickerType, DateFieldProps, DateFormatProps, Device, DeviceProviderProps, DialogProps, DialogTitleProps, DisclosureProps, DomNodeRendererProps, DrawerProps, EditableProps, EditorCoreOptions, EditorHandle, EditorProps, EditorProviderProps, EditorState, FileInputProps, FileListItem, FileListProps, FileUploaderProps, FocusableProps, FrameProviderProps, FreehandCanvasProps, GridListProps, GroupProps, HorizontalBoundaryBehavior, I18nProviderProps, I18nResult, IconColorInputProps, IconComponentProps$1 as IconComponentProps, IconProps, IconSelectProps, IconSliderProps, ImageDropZoneProps, ImageGalleryProps, ImperativePanelGroupHandle, ImperativePanelHandle, InlineAlertProps, IntersectionObserverOptions, KbdProps, Key, LinkProps, ListBoxProps, ListHandle$1 as ListHandle, ListOption, MarkName, MarkdownProps, MenuItem, MenuProps, MessageDescriptor, MessageFormatProps, MessageFormatter, MessageId, ModalContentProps, ModalProps, ModelPoint, ModelRange, NumberFormatProps, NumberInputProps, PaginationProps, PanelGroupProps, PanelProps, PanelResizeHandleProps, PointPickerContentProps, PointPickerDisplayProps, PointPickerProps, PopoverContentHandle, PopoverContentProps, PopoverProps, PopoverTriggerProps, PortalProps, PressEvent, PreviewProps, ProgressBarProps, ProgressSpinnerProps, RadioGroupProps, RangeCalendarProps, ReactAriaIncompatibleKey, ReactionProps, Rect, ResizeObserverOptions, RichTextEditorDoc, RichTextEditorInline, RichTextEditorLink, RichTextEditorMention, RichTextEditorMentionInput, RichTextEditorParagraph, RichTextEditorText, RowProps, SVGRProps, SafeDOMAttributes, ScrollControlButtonProps, SearchInputProps, SelectProps, SelectionState, SeparatorProps, SetValue, SkeletonProps, SliderProps, StatusCardProps, StepperItem, StepperProps, StylingProps, SwitchProps, TabItemProps, TableBodyProps, TableHeaderProps, TableProps, TabsProps, TagGroupProps, TagProps, TagVariant, TaggedPaginationProps, TextInputProps, TextProps, TextSelectionProps, ThemeProviderProps, TimeFieldProps, ToastProps, ToggleButtonProps, ToggleIconButtonProps, ToolbarProps, TooltipProps, TreeListItem, TreeViewProps, UNSAFE_ListBoxProps, UseEditableOptions, UseEditorOptions, UseTableDragAndDropOptions, VirtualizerProps };