@baseline-ui/core 3.5.0 → 3.7.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.
Files changed (255) hide show
  1. package/dist/Accordion.mjs +1 -1
  2. package/dist/ActionButton.mjs +1 -1
  3. package/dist/ActionGroup.mjs +1 -1
  4. package/dist/ActionIconButton.mjs +1 -1
  5. package/dist/Actionable.mjs +1 -1
  6. package/dist/AlertDialog.mjs +1 -1
  7. package/dist/AudioPlayer.mjs +1 -1
  8. package/dist/Box.mjs +1 -1
  9. package/dist/Breadcrumbs.css +10 -0
  10. package/dist/Breadcrumbs.mjs +1 -0
  11. package/dist/ButtonSelect.mjs +1 -1
  12. package/dist/Calendar.css +1 -1
  13. package/dist/Calendar.mjs +1 -1
  14. package/dist/Checkbox.mjs +1 -1
  15. package/dist/ColorInput.mjs +1 -1
  16. package/dist/ColorSwatch.mjs +1 -1
  17. package/dist/ColorSwatchPicker.mjs +1 -1
  18. package/dist/ComboBox.mjs +1 -1
  19. package/dist/DateField.css +1 -1
  20. package/dist/DateField.mjs +1 -1
  21. package/dist/Dialog.mjs +1 -1
  22. package/dist/Disclosure.mjs +1 -1
  23. package/dist/DomNodeRenderer.mjs +1 -1
  24. package/dist/Drawer.mjs +1 -1
  25. package/dist/Editor.css +1 -1
  26. package/dist/Editor.mjs +1 -1
  27. package/dist/FileInput.mjs +1 -1
  28. package/dist/FileList.mjs +1 -1
  29. package/dist/FileUploader.mjs +1 -1
  30. package/dist/FrameProvider.mjs +1 -1
  31. package/dist/FreehandCanvas.mjs +1 -1
  32. package/dist/GridList.mjs +1 -1
  33. package/dist/I18nProvider.mjs +1 -1
  34. package/dist/Icon.mjs +1 -1
  35. package/dist/ImageDropZone.mjs +1 -1
  36. package/dist/ImageGallery.mjs +1 -1
  37. package/dist/InlineAlert.mjs +1 -1
  38. package/dist/InlineToolbar.mjs +2 -2
  39. package/dist/Kbd.mjs +1 -1
  40. package/dist/Link.mjs +1 -1
  41. package/dist/ListBox.mjs +1 -1
  42. package/dist/Markdown.css +1 -1
  43. package/dist/Markdown.mjs +1 -1
  44. package/dist/Menu.mjs +1 -1
  45. package/dist/MessageFormat.mjs +1 -1
  46. package/dist/Modal.mjs +1 -1
  47. package/dist/NumberInput.mjs +1 -1
  48. package/dist/Pagination.mjs +1 -1
  49. package/dist/PointPicker.mjs +1 -1
  50. package/dist/Popover.mjs +1 -1
  51. package/dist/Portal.mjs +1 -1
  52. package/dist/Preview.mjs +1 -1
  53. package/dist/ProgressBar.mjs +1 -1
  54. package/dist/RadioGroup.mjs +1 -1
  55. package/dist/Reaction.mjs +1 -1
  56. package/dist/ScrollControlButton.mjs +1 -1
  57. package/dist/SearchInput.mjs +1 -1
  58. package/dist/Select.mjs +1 -1
  59. package/dist/Slider.mjs +1 -1
  60. package/dist/StatusCard.mjs +1 -1
  61. package/dist/Stepper.mjs +1 -1
  62. package/dist/Switch.css +1 -1
  63. package/dist/Switch.mjs +1 -1
  64. package/dist/Table.mjs +1 -1
  65. package/dist/Tabs.mjs +1 -1
  66. package/dist/Tag.mjs +1 -1
  67. package/dist/TagGroup.mjs +1 -1
  68. package/dist/TaggedPagination.mjs +1 -1
  69. package/dist/Text.mjs +1 -1
  70. package/dist/TextInput.mjs +1 -1
  71. package/dist/ThemeProvider.mjs +1 -1
  72. package/dist/TimeField.mjs +1 -1
  73. package/dist/Toast.mjs +1 -1
  74. package/dist/ToggleButton.mjs +1 -1
  75. package/dist/ToggleIconButton.mjs +1 -1
  76. package/dist/Toolbar.mjs +1 -1
  77. package/dist/Tooltip.mjs +1 -1
  78. package/dist/TreeView.mjs +1 -1
  79. package/dist/UNSAFE_ListBox.mjs +1 -1
  80. package/dist/Virtualizer.mjs +1 -1
  81. package/dist/{chunk-UOWKAUCQ.mjs → chunk-23WMOYTQ.mjs} +2 -2
  82. package/dist/{chunk-7XLBV46W.mjs → chunk-2JRDTJWJ.mjs} +1 -1
  83. package/dist/chunk-3IPRT57V.mjs +10 -0
  84. package/dist/{chunk-O6FPWOHR.mjs → chunk-4QGZDJW4.mjs} +1 -1
  85. package/dist/{chunk-UO75BAPM.mjs → chunk-4Y4WKIL5.mjs} +1 -1
  86. package/dist/chunk-54ZKQAA3.mjs +10 -0
  87. package/dist/{chunk-GLAMJIYO.mjs → chunk-5EI2562M.mjs} +1 -1
  88. package/dist/{chunk-6GMU63H2.mjs → chunk-5GW36EQJ.mjs} +1 -1
  89. package/dist/{chunk-ZA2FH3MS.mjs → chunk-5ILCVLWY.mjs} +1 -1
  90. package/dist/{chunk-VXZT2JR2.mjs → chunk-5W6G3ZUT.mjs} +1 -1
  91. package/dist/{chunk-UYUYQFOW.mjs → chunk-5YKRWGEJ.mjs} +1 -1
  92. package/dist/{chunk-7BE6MOPW.mjs → chunk-6CEV43ZA.mjs} +2 -2
  93. package/dist/chunk-6DETJFO2.mjs +10 -0
  94. package/dist/chunk-6DYTFYPO.mjs +10 -0
  95. package/dist/{chunk-3DWFAHR2.mjs → chunk-6GV3YWV7.mjs} +1 -1
  96. package/dist/chunk-6TRBOQVN.mjs +10 -0
  97. package/dist/chunk-6Z3GYFG5.mjs +10 -0
  98. package/dist/chunk-73UBSCJ2.mjs +10 -0
  99. package/dist/{chunk-7XGNJE7J.mjs → chunk-7DCQF3EP.mjs} +1 -1
  100. package/dist/{chunk-MCN5JU6E.mjs → chunk-7YCV7MPI.mjs} +1 -1
  101. package/dist/{chunk-3M3WJHOI.mjs → chunk-AQTRFPF2.mjs} +1 -1
  102. package/dist/{chunk-HABKIEKC.mjs → chunk-B5VHU77N.mjs} +1 -1
  103. package/dist/{chunk-ONBEVR2G.mjs → chunk-BULEKXBD.mjs} +1 -1
  104. package/dist/chunk-CBV6KXGO.mjs +30 -0
  105. package/dist/chunk-CD5KKXIM.mjs +10 -0
  106. package/dist/{chunk-KW3BKIG4.mjs → chunk-DG5VNJOH.mjs} +1 -1
  107. package/dist/{chunk-O7XK2WIX.mjs → chunk-DIL5HL6K.mjs} +2 -2
  108. package/dist/{chunk-QWZBZ23U.mjs → chunk-EDMVODCD.mjs} +1 -1
  109. package/dist/{chunk-PYV5J322.mjs → chunk-EFFODO2N.mjs} +1 -1
  110. package/dist/{chunk-CTBCJZEG.mjs → chunk-EGYIHFEQ.mjs} +1 -1
  111. package/dist/{chunk-5VNC6UYE.mjs → chunk-F3THHK5C.mjs} +1 -1
  112. package/dist/chunk-F56P4EKI.mjs +10 -0
  113. package/dist/{chunk-NMK4W6K3.mjs → chunk-FJO6KCT5.mjs} +2 -2
  114. package/dist/{chunk-GL5GUKT7.mjs → chunk-FX3THTOK.mjs} +1 -1
  115. package/dist/{chunk-EL5OYHOX.mjs → chunk-G5MSZV5O.mjs} +2 -2
  116. package/dist/chunk-GJ6ZPLFR.mjs +10 -0
  117. package/dist/{chunk-JRCDMRIW.mjs → chunk-HTRO6BM5.mjs} +1 -1
  118. package/dist/{chunk-7MLFM55C.mjs → chunk-IDIZSV2Y.mjs} +1 -1
  119. package/dist/chunk-IGM72PUL.mjs +0 -0
  120. package/dist/{chunk-2M2LI4MI.mjs → chunk-IMXJCV7G.mjs} +1 -1
  121. package/dist/{chunk-43LOJ3SH.mjs → chunk-IN7BLI4M.mjs} +1 -1
  122. package/dist/{chunk-AFOW62QN.mjs → chunk-INFMXVHD.mjs} +1 -1
  123. package/dist/{chunk-5G6JNQQR.mjs → chunk-IVDIKT6F.mjs} +1 -1
  124. package/dist/{chunk-WFYFHANE.mjs → chunk-JHA7DIPG.mjs} +1 -1
  125. package/dist/{chunk-X5ZTXDQ4.mjs → chunk-JXCL5CUV.mjs} +1 -1
  126. package/dist/chunk-K3WFKO7R.mjs +10 -0
  127. package/dist/{chunk-TFSBTGTQ.mjs → chunk-KQOXSF4J.mjs} +1 -1
  128. package/dist/{chunk-LKSUUT3M.mjs → chunk-L45T2KGW.mjs} +1 -1
  129. package/dist/{chunk-7EQIV4GX.mjs → chunk-LDWNE2JT.mjs} +1 -1
  130. package/dist/{chunk-676DOXEK.mjs → chunk-LY2ZVEGJ.mjs} +2 -2
  131. package/dist/chunk-M3R4ZM34.mjs +10 -0
  132. package/dist/{chunk-USUPPN73.mjs → chunk-MJPCLLDU.mjs} +1 -1
  133. package/dist/{chunk-5W67PVZQ.mjs → chunk-MKHLBKSN.mjs} +2 -2
  134. package/dist/{chunk-LBHZV4BO.mjs → chunk-MURSKAKT.mjs} +1 -1
  135. package/dist/chunk-MYT5CSGX.mjs +10 -0
  136. package/dist/{chunk-2AKHB7Y5.mjs → chunk-NLVJYKSA.mjs} +1 -1
  137. package/dist/{chunk-5G7ABQYJ.mjs → chunk-NO3DNA2U.mjs} +1 -1
  138. package/dist/{chunk-DO5YROCG.mjs → chunk-NT2MFIKD.mjs} +1 -1
  139. package/dist/{chunk-7P7VZMTO.mjs → chunk-NWWH62TU.mjs} +1 -1
  140. package/dist/chunk-O6PPXOEX.mjs +10 -0
  141. package/dist/chunk-OBEPT4LR.mjs +10 -0
  142. package/dist/{chunk-DAI7V4TE.mjs → chunk-OPIPJTLG.mjs} +1 -1
  143. package/dist/{chunk-3KWSJRYK.mjs → chunk-P6V5EAYL.mjs} +1 -1
  144. package/dist/chunk-PCR5FD43.mjs +10 -0
  145. package/dist/{chunk-Z3ZMWJSV.mjs → chunk-PR3CD3UC.mjs} +2 -2
  146. package/dist/chunk-Q6R75IOP.mjs +10 -0
  147. package/dist/{chunk-6M7PJXEE.mjs → chunk-QIYZRQGP.mjs} +1 -1
  148. package/dist/{chunk-BAIVRB2I.mjs → chunk-QL7SC5BW.mjs} +1 -1
  149. package/dist/{chunk-X5ORCNAU.mjs → chunk-QUWRO3HT.mjs} +1 -1
  150. package/dist/{chunk-3UC5V5E3.mjs → chunk-RE7ZGPOY.mjs} +1 -1
  151. package/dist/chunk-RINS2TBF.mjs +10 -0
  152. package/dist/{chunk-SLFKSR3T.mjs → chunk-SAATXQOW.mjs} +1 -1
  153. package/dist/chunk-SSWWJZRE.mjs +10 -0
  154. package/dist/{chunk-D5VU5TED.mjs → chunk-SXZP556C.mjs} +1 -1
  155. package/dist/{chunk-2WA3KB7H.mjs → chunk-TDRN6VLD.mjs} +1 -1
  156. package/dist/{chunk-OWQRYRWF.mjs → chunk-TFBJ767L.mjs} +1 -1
  157. package/dist/{chunk-QXXKOFWM.mjs → chunk-TLU2GNUT.mjs} +1 -1
  158. package/dist/{chunk-GFKZXGWJ.mjs → chunk-UCDGZFQ7.mjs} +1 -1
  159. package/dist/{chunk-ABXTAFKP.mjs → chunk-UPCEZ32D.mjs} +1 -1
  160. package/dist/chunk-VE2UA2AH.mjs +0 -0
  161. package/dist/{chunk-JDIGAVFU.mjs → chunk-VIMSH5F5.mjs} +1 -1
  162. package/dist/chunk-VNWKXT3X.mjs +10 -0
  163. package/dist/chunk-VPVF5N62.mjs +10 -0
  164. package/dist/chunk-VQ2K6Q3G.mjs +10 -0
  165. package/dist/chunk-WDWBYTJG.mjs +10 -0
  166. package/dist/{chunk-LQHFBXCW.mjs → chunk-X3ACY7IY.mjs} +2 -2
  167. package/dist/chunk-XC2S3RLC.mjs +10 -0
  168. package/dist/{chunk-SI5WP6I7.mjs → chunk-XO7MAUFC.mjs} +1 -1
  169. package/dist/{chunk-AN26QORL.mjs → chunk-XVL2GXTB.mjs} +1 -1
  170. package/dist/{chunk-PLZ6ZFEO.mjs → chunk-YAI33K42.mjs} +1 -1
  171. package/dist/chunk-YEIRJNEA.mjs +10 -0
  172. package/dist/{chunk-LQ7PGSP4.mjs → chunk-YNJD34U4.mjs} +1 -1
  173. package/dist/{chunk-FGSVPRDN.mjs → chunk-YQKEP62C.mjs} +1 -1
  174. package/dist/{chunk-CENNHSIS.mjs → chunk-ZC5WXVNV.mjs} +1 -1
  175. package/dist/chunk-ZXN5VT4G.mjs +10 -0
  176. package/dist/{chunk-UPJHL37C.mjs → chunk-ZZ7YJ2FN.mjs} +1 -1
  177. package/dist/hooks/useDevice.mjs +1 -1
  178. package/dist/hooks/useI18n.mjs +1 -1
  179. package/dist/hooks/useIntersectionObserver.mjs +1 -1
  180. package/dist/hooks/useLiveInteractionModality.mjs +1 -1
  181. package/dist/hooks/useMedia.mjs +1 -1
  182. package/dist/hooks/useMutationObserver.mjs +1 -1
  183. package/dist/hooks/usePortalContainer.mjs +1 -1
  184. package/dist/hooks/usePreventFocus.mjs +1 -1
  185. package/dist/hooks/useResizeObserver.mjs +1 -1
  186. package/dist/hooks/useTextSelection.mjs +1 -1
  187. package/dist/index.css +1 -1
  188. package/dist/index.d.ts +305 -95
  189. package/dist/index.js +22 -21
  190. package/dist/index.mjs +1 -1
  191. package/dist/messageIds.mjs +1 -1
  192. package/dist/utils/colors.mjs +1 -1
  193. package/dist/utils/dom.mjs +1 -1
  194. package/dist/utils/isInShadowDOM.mjs +1 -1
  195. package/dist/utils/keyboards.mjs +1 -1
  196. package/dist/utils/selection.mjs +1 -0
  197. package/intl/ar.json +2 -0
  198. package/intl/cs.json +2 -0
  199. package/intl/cy.json +2 -0
  200. package/intl/da.json +2 -0
  201. package/intl/de.json +2 -0
  202. package/intl/el.json +2 -0
  203. package/intl/en-GB.json +2 -0
  204. package/intl/en.json +2 -0
  205. package/intl/es.json +2 -0
  206. package/intl/fi.json +2 -0
  207. package/intl/fr-CA.json +2 -0
  208. package/intl/fr.json +2 -0
  209. package/intl/he.json +2 -0
  210. package/intl/hr.json +2 -0
  211. package/intl/id.json +2 -0
  212. package/intl/it.json +2 -0
  213. package/intl/ja.json +2 -0
  214. package/intl/ko.json +2 -0
  215. package/intl/ms.json +2 -0
  216. package/intl/nb-NO.json +2 -0
  217. package/intl/nl.json +2 -0
  218. package/intl/pl.json +2 -0
  219. package/intl/pt-PT.json +2 -0
  220. package/intl/pt.json +2 -0
  221. package/intl/ru.json +2 -0
  222. package/intl/sk.json +2 -0
  223. package/intl/sl.json +2 -0
  224. package/intl/sv.json +2 -0
  225. package/intl/th.json +2 -0
  226. package/intl/tr.json +2 -0
  227. package/intl/uk.json +2 -0
  228. package/intl/zh-Hans.json +2 -0
  229. package/intl/zh-Hant.json +2 -0
  230. package/messages.json +8 -0
  231. package/package.json +4 -4
  232. package/sbom.json +6 -6
  233. package/dist/chunk-335C37NB.mjs +0 -10
  234. package/dist/chunk-46RUOB4U.mjs +0 -29
  235. package/dist/chunk-AMVX34SS.mjs +0 -10
  236. package/dist/chunk-AYQN3OH2.mjs +0 -10
  237. package/dist/chunk-BET5GVGQ.mjs +0 -10
  238. package/dist/chunk-FNCHBVLF.mjs +0 -10
  239. package/dist/chunk-IHES52NR.mjs +0 -10
  240. package/dist/chunk-NMGKHMH3.mjs +0 -10
  241. package/dist/chunk-OMWMNUTI.mjs +0 -10
  242. package/dist/chunk-R6Q7UMQS.mjs +0 -10
  243. package/dist/chunk-SBGZCLF4.mjs +0 -10
  244. package/dist/chunk-T6J7G3YL.mjs +0 -10
  245. package/dist/chunk-TTVYMCU3.mjs +0 -10
  246. package/dist/chunk-UH6QIGD3.mjs +0 -10
  247. package/dist/chunk-UYAFH4CW.mjs +0 -10
  248. package/dist/chunk-X7CKWYUD.mjs +0 -10
  249. package/dist/chunk-XQC3DSTW.mjs +0 -10
  250. package/dist/chunk-Y3HXPORF.mjs +0 -10
  251. package/dist/chunk-YFBMCK5O.mjs +0 -10
  252. package/dist/chunk-YMYMFVW4.mjs +0 -10
  253. package/dist/chunk-YQHHE5AT.mjs +0 -10
  254. package/dist/chunk-YYU46XNM.mjs +0 -10
  255. /package/dist/{chunk-MAJ74VNE.mjs → chunk-HMAVZPRE.mjs} +0 -0
package/dist/index.d.ts CHANGED
@@ -6340,7 +6340,7 @@ declare const capitalize: (str: string) => string;
6340
6340
  * Without DOMParser (on the server) it only strips tags: entities are not
6341
6341
  * decoded, script or style content is kept, and the result is not sanitized.
6342
6342
  */
6343
- declare const getPlainText: (text: string) => string;
6343
+ declare const getPlainText$1: (text: string) => string;
6344
6344
 
6345
6345
  /**
6346
6346
  * Checks whether a given DOM node is inside an iframe.
@@ -7098,8 +7098,6 @@ interface MenuPropsBase extends MenuPopoverProps, Omit<MenuTriggerProps, "trigge
7098
7098
  * @default "press"
7099
7099
  */
7100
7100
  trigger?: "press" | "longPress";
7101
- /** The `className` property assigned to the root element of the component. */
7102
- className?: string;
7103
7101
  /** The `className` property assigned to the content element of the component. */
7104
7102
  contentClassName?: string;
7105
7103
  /**
@@ -7635,6 +7633,8 @@ declare const IconSlider: React__default.ForwardRefExoticComponent<IconSliderPro
7635
7633
  interface SwitchProps extends Omit<AriaSwitchProps, "children" | "isRequired" | "validate" | "validationBehavior" | "validationState" | "isInvalid" | "aria-errormessage" | "onClick" | "onPress" | "onPressStart" | "onPressEnd" | "onPressUp" | "onPressChange">, StylingProps {
7636
7634
  /** The label to display next to the switch. */
7637
7635
  label?: React__default.ReactNode;
7636
+ /** Helper text shown below the label and announced as its accessible description. */
7637
+ description?: string;
7638
7638
  /** The position of the label. */
7639
7639
  labelPosition?: "top" | "left";
7640
7640
  /** The status label to display next to the switch. */
@@ -9600,6 +9600,10 @@ interface RichTextEditorText {
9600
9600
  underline?: boolean;
9601
9601
  color?: string;
9602
9602
  backgroundColor?: string;
9603
+ /** CSS value, passed through opaquely. */
9604
+ fontFamily?: string;
9605
+ /** CSS value, passed through opaquely. */
9606
+ fontSize?: string;
9603
9607
  }
9604
9608
  interface RichTextEditorLink {
9605
9609
  type: typeof LINK;
@@ -9619,9 +9623,16 @@ interface RichTextEditorMentionInput {
9619
9623
  type RichTextEditorInline = RichTextEditorText | RichTextEditorLink | RichTextEditorMention | RichTextEditorMentionInput;
9620
9624
  interface RichTextEditorParagraph {
9621
9625
  type: typeof PARAGRAPH;
9626
+ /** CSS `text-align` value, passed through opaquely. */
9627
+ textAlign?: string;
9622
9628
  children: RichTextEditorInline[];
9623
9629
  }
9624
9630
  type RichTextEditorDoc = RichTextEditorParagraph[];
9631
+ /**
9632
+ * Returns the document as plain text, without formatting. Paragraphs are
9633
+ * separated by `"\n"` and a mention contributes its display name.
9634
+ */
9635
+ declare function getPlainText(doc: RichTextEditorDoc): string;
9625
9636
 
9626
9637
  interface ModelPoint {
9627
9638
  /** [paragraphIndex, inlineIndex within paragraph.children] */
@@ -9633,16 +9644,37 @@ interface ModelRange {
9633
9644
  anchor: ModelPoint;
9634
9645
  focus: ModelPoint;
9635
9646
  }
9647
+ /**
9648
+ * Compares two points in document order: `-1` when `a` comes before `b`, `1`
9649
+ * when it comes after, `0` when they are the same point.
9650
+ */
9651
+ declare function comparePoints(a: ModelPoint, b: ModelPoint): -1 | 0 | 1;
9652
+ /** The point at the very start of the document. */
9653
+ declare function docStart(doc: RichTextEditorDoc): ModelPoint;
9654
+ /** The point at the very end of the document. */
9655
+ declare function docEnd(doc: RichTextEditorDoc): ModelPoint;
9636
9656
 
9637
9657
  type MarkName = "bold" | "italic" | "underline";
9638
- /** Marks shared by all text content covered by a range. */
9658
+ /**
9659
+ * Formatting at a selection. Over a range, `bold`, `italic` and `underline` are
9660
+ * `true` when every covered text run has the mark, `false` when none does, and
9661
+ * absent when the runs differ. At a collapsed caret, and with no selection,
9662
+ * they are always `true` or `false`, and reflect marks toggled for the next
9663
+ * typed text. A value mark is its value when every covered run shares it,
9664
+ * absent when none has one, and `null` when the runs differ.
9665
+ */
9639
9666
  interface ActiveMarks {
9640
- bold?: true;
9641
- italic?: true;
9642
- underline?: true;
9643
- color?: string;
9644
- backgroundColor?: string;
9667
+ bold?: boolean;
9668
+ italic?: boolean;
9669
+ underline?: boolean;
9670
+ color?: string | null;
9671
+ backgroundColor?: string | null;
9672
+ fontFamily?: string | null;
9673
+ fontSize?: string | null;
9645
9674
  }
9675
+ type ValueMarkKey = "color" | "backgroundColor" | "fontFamily" | "fontSize";
9676
+ /** A CSS property the engine reads back from HTML and the DOM. */
9677
+ type EditorStyle = ValueMarkKey | "textAlign";
9646
9678
 
9647
9679
  /**
9648
9680
  * EditorCore.ts — framework-free orchestrator for the rich-text editor.
@@ -9662,6 +9694,14 @@ interface ActiveMarks {
9662
9694
  * - Identity-diffing: commands that return the same `doc` reference are no-ops.
9663
9695
  */
9664
9696
 
9697
+ interface SelectOptions {
9698
+ /**
9699
+ * Whether to focus the editor before writing the selection. Defaults to
9700
+ * true. With false an unfocused editor stays unfocused and applies the
9701
+ * range when it next gains focus.
9702
+ */
9703
+ focus?: boolean;
9704
+ }
9665
9705
  interface SelectionState {
9666
9706
  /** Active marks at the current selection (merged with pendingMarks). */
9667
9707
  marks: ActiveMarks;
@@ -9676,6 +9716,8 @@ interface SelectionState {
9676
9716
  interface EditorCoreOptions {
9677
9717
  /** Called after each user-visible document change; receives serialized HTML. */
9678
9718
  onChange?: (html: string) => void;
9719
+ /** Called alongside `onChange` with the document model after each user-visible change. */
9720
+ onDocChange?: (doc: RichTextEditorDoc) => void;
9679
9721
  /** Called when the selection changes. */
9680
9722
  onSelectionChange?: (state: SelectionState) => void;
9681
9723
  /**
@@ -9707,6 +9749,34 @@ interface EditorCoreOptions {
9707
9749
  * selection). Defaults to enabled.
9708
9750
  */
9709
9751
  autoLink?: () => boolean;
9752
+ /**
9753
+ * Runs on a paste after the target, read-only and composition guards. A
9754
+ * returned doc is inserted at the caret as a fragment; `null` swallows the
9755
+ * paste; `undefined` falls through to the built-in paste pipeline. A throw
9756
+ * swallows the paste and is rethrown asynchronously.
9757
+ */
9758
+ onPaste?: (event: ClipboardEvent) => RichTextEditorDoc | null | undefined;
9759
+ /**
9760
+ * Runs on `copy` and `cut` with the fragment the selection covers, or an
9761
+ * empty document when the selection is collapsed. Return true after writing
9762
+ * the clipboard: the engine then calls `preventDefault()` and, for `cut` with
9763
+ * a selection, deletes it.
9764
+ */
9765
+ onCopy?: (event: ClipboardEvent, fragment: RichTextEditorDoc) => boolean;
9766
+ /**
9767
+ * Maximum document length, counted as `docLength` counts it. Typing, pasting,
9768
+ * soft breaks and IME input stop at the limit; a selection being replaced
9769
+ * counts as free space. Undefined means unlimited.
9770
+ */
9771
+ maxLength?: () => number | undefined;
9772
+ /**
9773
+ * The CSS properties read from HTML the engine parses: `setValue`. A style
9774
+ * missing here is dropped from that HTML. The DOM the engine renders itself
9775
+ * is always read back in full after native input, and pasted and dropped
9776
+ * HTML always reads only `color` and `backgroundColor`; use `onPaste` to
9777
+ * bring in more. Undefined means `color` and `backgroundColor`.
9778
+ */
9779
+ htmlStyles?: () => readonly EditorStyle[] | undefined;
9710
9780
  /** When this returns true all mutation inputs are blocked (preventDefault'd). */
9711
9781
  isReadOnly?: () => boolean;
9712
9782
  /**
@@ -9717,13 +9787,20 @@ interface EditorCoreOptions {
9717
9787
  * leaving a consumer free to wire their own. Defaults to enabled.
9718
9788
  */
9719
9789
  areKeyboardShortcutsEnabled?: () => boolean;
9790
+ /**
9791
+ * Whether Enter splits the paragraph instead of inserting a soft break.
9792
+ * Shift+Enter always inserts a soft break.
9793
+ *
9794
+ * @default false
9795
+ */
9796
+ enterInsertsParagraph?: () => boolean;
9720
9797
  }
9721
9798
  /** Names of commands that EditorCore can dispatch via exec(). */
9722
- type CommandName = "toggleMark" | "setMarkValue" | "wrapLink" | "updateLinkUrl" | "unwrapLink" | "deleteRange" | "insertText" | "insertFragment" | "insertSoftBreak" | "insertMentionInput" | "confirmMention" | "removeMentionInput";
9799
+ type CommandName = "toggleMark" | "setMarkValue" | "wrapLink" | "updateLinkUrl" | "unwrapLink" | "deleteRange" | "insertText" | "insertFragment" | "insertSoftBreak" | "insertParagraph" | "insertMentionInput" | "confirmMention" | "removeMentionInput";
9723
9800
  /** Argument tuple for each command (beyond doc + range which are implicit). */
9724
9801
  interface CommandArgs {
9725
9802
  toggleMark: [mark: MarkName];
9726
- setMarkValue: [key: "color" | "backgroundColor", value?: string];
9803
+ setMarkValue: [key: ValueMarkKey, value?: string];
9727
9804
  wrapLink: [url: string];
9728
9805
  updateLinkUrl: [url: string];
9729
9806
  unwrapLink: [];
@@ -9731,6 +9808,7 @@ interface CommandArgs {
9731
9808
  insertText: [text: string];
9732
9809
  insertFragment: [fragment: RichTextEditorDoc];
9733
9810
  insertSoftBreak: [];
9811
+ insertParagraph: [];
9734
9812
  insertMentionInput: [];
9735
9813
  confirmMention: [user: {
9736
9814
  id: string;
@@ -9752,33 +9830,12 @@ declare class EditorCore {
9752
9830
  * editor's own edits, so re-sending an unchanged `value` still reverts it.
9753
9831
  */
9754
9832
  private lastAppliedValue;
9755
- private cachedRange;
9756
- /**
9757
- * A doc replacement landed while the editor was unfocused, so `cachedRange`
9758
- * was never written to the DOM. Replayed by the focus handler.
9759
- */
9760
- private needsSelectionRestore;
9833
+ /** Doc last applied by {@link setDoc}; cleared on own edits like `lastAppliedValue`. */
9834
+ private lastAppliedDoc;
9835
+ private readonly selection;
9761
9836
  private composing;
9762
- private pending;
9763
- /**
9764
- * Number of upcoming selectionchange events that must NOT clear pending marks.
9765
- *
9766
- * handleSelectionChange normally clears pending the moment the caret leaves
9767
- * pending.caretOffset. But a single user keystroke (and insertSoftBreak)
9768
- * triggers our own writeSelection, which the browser reports back as one or
9769
- * more selectionchange events — and in shadow DOM (notably Chromium and
9770
- * Firefox) one of those can arrive with the post-keystroke caret offset before
9771
- * syncFromDom has updated pending.caretOffset to match. Without this guard,
9772
- * that transient mismatch clears pending mid-typing, the toolbar flips off,
9773
- * and the next character is no longer colored. We absorb a small burst of
9774
- * these self-inflicted events (a single boolean is not enough — shadow DOM can
9775
- * emit several per action) and re-sync caretOffset to the real caret as they
9776
- * arrive, so a genuine later caret move still clears pending correctly.
9777
- *
9778
- * Confirmed load-bearing: removing it makes the shadow-DOM "color buttons stay
9779
- * active while typing" CT flake/time out in Chromium.
9780
- */
9781
- private preservePendingSelectionChanges;
9837
+ private enterHasShift;
9838
+ private readonly pendingMarks;
9782
9839
  private history;
9783
9840
  private opts;
9784
9841
  private el;
@@ -9798,19 +9855,18 @@ declare class EditorCore {
9798
9855
  attach(el: HTMLElement): () => void;
9799
9856
  private readonly handleBeforeInputBound;
9800
9857
  private readonly handleInputBound;
9858
+ private isClipboardTargetInEditor;
9801
9859
  private readonly handlePasteBound;
9860
+ private readonly handleCopyBound;
9861
+ private readonly handleKeyDownBound;
9862
+ private readonly handleDocumentKeyDownBound;
9802
9863
  private readonly handlePointerDownBound;
9803
9864
  private readonly handleFocusBound;
9804
9865
  private readonly handleCompositionStartBound;
9805
9866
  private readonly handleCompositionEndBound;
9806
9867
  private readonly handleSelectionChangeBound;
9807
- /**
9808
- * Synchronously refreshes cachedRange from the live DOM selection when that
9809
- * selection is inside the editor. Leaves cachedRange untouched when the
9810
- * selection is elsewhere (dialogs, toolbar popovers) or unreadable.
9811
- */
9812
- private refreshSelectionFromDom;
9813
- getDoc(): RichTextEditorDoc;
9868
+ /** The full document, or the normalized fragment `range` covers. */
9869
+ getDoc(range?: ModelRange): RichTextEditorDoc;
9814
9870
  getValue(): string;
9815
9871
  /**
9816
9872
  * Sets the document from an HTML string (controlled entry point).
@@ -9823,53 +9879,89 @@ declare class EditorCore {
9823
9879
  setValue(html: string, opts?: {
9824
9880
  emit?: boolean;
9825
9881
  }): void;
9882
+ /**
9883
+ * Sets the document from a model (controlled entry point), the counterpart of
9884
+ * {@link setValue}: normalizes, keeps the caret offset, records no history and
9885
+ * emits only with `emit: true`.
9886
+ *
9887
+ * SKIPS (no-op) when `doc` is the current document, the object last applied
9888
+ * here, or has the same content as the current document.
9889
+ */
9890
+ setDoc(doc: RichTextEditorDoc, opts?: {
9891
+ emit?: boolean;
9892
+ }): void;
9893
+ private replaceDoc;
9826
9894
  private static docHasMentionInput;
9827
9895
  /**
9828
9896
  * Dispatches a named command at the current selection.
9829
9897
  *
9830
9898
  * Identity-diff: if the command returns the same `doc` reference (no-op),
9831
- * nothing changes — except for `toggleMark` on a collapsed selection, which
9832
- * sets pendingMarks and emits onSelectionChange.
9899
+ * nothing changes — except for `toggleMark` and `setMarkValue` on a collapsed
9900
+ * selection, which set pendingMarks and emit onSelectionChange.
9833
9901
  */
9834
9902
  exec<K extends CommandName>(name: K, ...args: CommandArgs[K]): void;
9903
+ /** `args` cut to what fits under maxLength, or null when nothing does. */
9904
+ private fitToCapacity;
9905
+ private maxLength;
9906
+ private clampToMaxLength;
9907
+ /**
9908
+ * Where text inserted over the last known range ends in `read`; the fallback
9909
+ * when the DOM caret cannot be read.
9910
+ */
9911
+ private insertionEnd;
9912
+ /** Characters that can still be inserted over `range`; undefined when unlimited. */
9913
+ private capacity;
9835
9914
  undo(): void;
9836
9915
  redo(): void;
9837
9916
  canUndo(): boolean;
9838
9917
  canRedo(): boolean;
9839
9918
  focus(): void;
9840
- private hasFocus;
9841
9919
  setCaretPosition(absoluteOffset: number): void;
9842
9920
  /**
9843
9921
  * Restores a model selection: focuses the editor and writes the range to
9844
- * both the DOM and cachedRange. Used by toolbar popovers (e.g. the color
9922
+ * both the DOM and the editor selection. Used by toolbar popovers (e.g. the color
9845
9923
  * picker) that captured the selection before taking focus — on Firefox,
9846
9924
  * refocusing a contenteditable collapses its DOM selection, so the range
9847
9925
  * must be re-applied explicitly before dispatching a command.
9926
+ *
9927
+ * With `focus: false` an unfocused editor keeps focus where it is: the
9928
+ * range scopes the next command and is written to the DOM when the editor
9929
+ * regains focus. A toolbar input that formats the whole document on Enter
9930
+ * relies on this, since focusing the editor during the keydown would let
9931
+ * the key's default action insert a paragraph.
9848
9932
  */
9849
- select(range: ModelRange): void;
9933
+ select(range: ModelRange, options?: SelectOptions): void;
9850
9934
  selectStart(): void;
9851
9935
  selectEnd(): void;
9936
+ /** Selects the whole document. */
9937
+ selectAll(options?: SelectOptions): void;
9938
+ /**
9939
+ * The selection state computed now, from the live DOM selection when it is
9940
+ * inside the editor and otherwise from the last known range.
9941
+ */
9852
9942
  getSelectionState(): SelectionState;
9853
9943
  private buildSelectionState;
9854
- private mergePendingMarks;
9944
+ private notifyChange;
9945
+ private emitSelectionChange;
9855
9946
  /**
9856
- * Toggle a pending boolean mark for the collapsed-caret case.
9857
- *
9858
- * We store the FULL effective marks snapshot (base + toggle) so that
9859
- * applyPendingMarks can apply them directly to the just-typed range.
9860
- * Toggling the same mark a second time returns to the base state.
9947
+ * Every document change ends here: applies the doc and range, renders,
9948
+ * places the selection and notifies consumers, per `source`.
9861
9949
  */
9862
- private setPendingMark;
9950
+ private commit;
9863
9951
  /**
9864
- * Set or clear a pending color/backgroundColor mark for the collapsed-caret case.
9865
- * `value === undefined` removes that key from the pending snapshot.
9952
+ * Native typing at the limit would insert at the caret and then lose its tail
9953
+ * when syncFromDom cuts from the document's end; insert the part that fits
9954
+ * through the model instead. Returns whether it handled the event.
9866
9955
  */
9867
- private setPendingColorMark;
9868
- private emitSelectionChange;
9956
+ private insertOverflowingText;
9957
+ private handleNativeInsert;
9869
9958
  /**
9870
- * Applies a doc+range change, re-renders if attached, emits events.
9959
+ * Spellcheck and autocorrect replace a word natively, which can drop the
9960
+ * replaced run's marks; replaces it through the model instead. Returns
9961
+ * whether it handled the event.
9871
9962
  */
9872
- private applyDocChange;
9963
+ private replaceTargetText;
9964
+ private breakCommand;
9873
9965
  private handleBeforeInput;
9874
9966
  /**
9875
9967
  * Returns true when the current caret position is preceded by a word boundary
@@ -9877,6 +9969,7 @@ declare class EditorCore {
9877
9969
  */
9878
9970
  private shouldTriggerMention;
9879
9971
  private lastCharOf;
9972
+ private allowedStyles;
9880
9973
  private autoLinkEnabled;
9881
9974
  /**
9882
9975
  * Gates {@link findAutoLinkBeforeCaret} on the feature being enabled and no
@@ -9897,7 +9990,8 @@ declare class EditorCore {
9897
9990
  * Wraps a previously-detected token span (absolute offsets in the CURRENT
9898
9991
  * doc) in a link, recording its own history entry and leaving the caret where
9899
9992
  * it is (wrapLink is length-preserving). Called right after the delimiter that
9900
- * triggered the conversion has been inserted.
9993
+ * triggered the conversion has been inserted; does nothing when that insert
9994
+ * was refused and left the document at `docBefore`.
9901
9995
  */
9902
9996
  private applyAutoLink;
9903
9997
  private handlePasteInput;
@@ -9908,24 +10002,9 @@ declare class EditorCore {
9908
10002
  * back into a model doc and reconciles with internal state.
9909
10003
  */
9910
10004
  private syncFromDom;
9911
- /**
9912
- * Apply pending marks to the text that was just typed.
9913
- *
9914
- * The just-typed range is determined by diffing the pre-input caret absolute
9915
- * offset against the post-input caret absolute offset.
9916
- */
9917
- private applyPendingMarks;
9918
- /**
9919
- * Applies the pending mark snapshot to the [preOffset, postOffset] range,
9920
- * re-deriving the range from absolute offsets before each command (commands
9921
- * may split nodes and stale a ModelRange). Returns the resulting doc by
9922
- * identity when no mark changed.
9923
- */
9924
- private applyPendingMarkSnapshot;
9925
10005
  private handleSelectionChange;
9926
10006
  private dispatchCommand;
9927
10007
  private collapsedAtDocEnd;
9928
- private rangesEqual;
9929
10008
  }
9930
10009
 
9931
10010
  /**
@@ -9969,23 +10048,63 @@ interface EditorState {
9969
10048
  redo: EditorCore["redo"];
9970
10049
  getValue: EditorCore["getValue"];
9971
10050
  setValue: EditorCore["setValue"];
10051
+ getDoc: EditorCore["getDoc"];
10052
+ setDoc: EditorCore["setDoc"];
10053
+ selectAll: EditorCore["selectAll"];
10054
+ /**
10055
+ * Selects `range`, focusing the editor first unless `options.focus` is
10056
+ * false. Does nothing until the editor is attached to an element.
10057
+ */
10058
+ select: EditorCore["select"];
10059
+ /**
10060
+ * The selection state computed now. Unlike the reactive
10061
+ * {@link selectionState}, which updates on the next render, this reflects a
10062
+ * selection made in the same tick, for example right after {@link select}.
10063
+ */
10064
+ getSelectionState: EditorCore["getSelectionState"];
9972
10065
  exec: EditorCore["exec"];
9973
10066
  /** Whether `mark` is active at the current selection. */
9974
10067
  isMarkActive: (mark: MarkName) => boolean;
9975
10068
  /** Toggle a boolean mark (bold/italic/underline). */
9976
10069
  toggleMark: (mark: MarkName) => void;
9977
- /** Set or clear a color mark; omit `value` to clear. */
9978
- setMark: (key: "color" | "backgroundColor", value?: string) => void;
10070
+ /** Set or clear a value mark (color or font); omit `value` to clear. */
10071
+ setMark: (key: ValueMarkKey, value?: string) => void;
9979
10072
  }
9980
10073
  /**
9981
10074
  * Options for {@link useEditor}. Combines the engine callbacks with the
9982
10075
  * React-managed props the hook owns the lifecycle for.
9983
10076
  */
9984
- interface UseEditorOptions extends Pick<EditorCoreOptions, "onChange" | "onSelectionChange" | "onMentionTrigger" | "onMentionInputRemoved" | "canStartMention" | "resolveMention" | "isReadOnly"> {
10077
+ interface UseEditorOptions extends Pick<EditorCoreOptions, "onChange" | "onDocChange" | "onPaste" | "onCopy" | "onSelectionChange" | "onMentionTrigger" | "onMentionInputRemoved" | "canStartMention" | "resolveMention" | "isReadOnly"> {
9985
10078
  /** Controlled value (provide with `onChange`). */
9986
10079
  value?: string;
9987
10080
  /** Initial value for uncontrolled use (applied once on mount). */
9988
10081
  defaultValue?: string;
10082
+ /**
10083
+ * Controlled document model (provide with `onDocChange`). Throws when
10084
+ * combined with `value`, `defaultValue` or `defaultDoc`.
10085
+ */
10086
+ doc?: RichTextEditorDoc;
10087
+ /** Initial document model for uncontrolled use (applied once on mount). */
10088
+ defaultDoc?: RichTextEditorDoc;
10089
+ /**
10090
+ * Maximum document length, counted as `docLength` counts it (a paragraph
10091
+ * separator is one character). Typing, pasting, soft breaks and IME input
10092
+ * stop at the limit; replacing a selection frees its characters. Must be a
10093
+ * finite integer of at least 0; anything else throws.
10094
+ */
10095
+ maxLength?: number;
10096
+ /**
10097
+ * The CSS properties the editor keeps when it parses `value`,
10098
+ * `defaultValue` and `setValue` HTML. Font marks and paragraph `textAlign`
10099
+ * in that HTML survive only when listed. Everything else is unaffected: a
10100
+ * `doc`/`defaultDoc`, marks set with `setMark` and text typed or edited
10101
+ * natively keep every style the document carries. Pasted and dropped HTML
10102
+ * always keeps only `color` and `backgroundColor`, since HTML from other
10103
+ * apps carries their fonts and sizes; use `onPaste` to bring in more.
10104
+ *
10105
+ * @default ["color", "backgroundColor"]
10106
+ */
10107
+ htmlStyles?: readonly EditorStyle[];
9989
10108
  /** When true, the editor is read-only and selection is cleared. */
9990
10109
  isDisabled?: boolean;
9991
10110
  /**
@@ -10002,6 +10121,13 @@ interface UseEditorOptions extends Pick<EditorCoreOptions, "onChange" | "onSelec
10002
10121
  * @default true
10003
10122
  */
10004
10123
  autoLink?: boolean;
10124
+ /**
10125
+ * Whether Enter splits the paragraph instead of inserting a soft break.
10126
+ * Shift+Enter always inserts a soft break.
10127
+ *
10128
+ * @default false
10129
+ */
10130
+ enterInsertsParagraph?: boolean;
10005
10131
  }
10006
10132
 
10007
10133
  /**
@@ -10043,6 +10169,8 @@ interface EditableProps {
10043
10169
  suppressContentEditableWarning: true;
10044
10170
  role: "textbox";
10045
10171
  "aria-multiline": true;
10172
+ /** Marks the editable root for styling and querying the rendered content. */
10173
+ "data-editor-root": "true";
10046
10174
  onKeyDown?: KeyboardEventHandler;
10047
10175
  onKeyUp?: KeyboardEventHandler;
10048
10176
  }
@@ -10360,7 +10488,7 @@ interface ImageGalleryProps extends StylingProps, Omit<UNSAFE_ListBoxProps, "ite
10360
10488
  /**
10361
10489
  * The aspect ratio of the images.
10362
10490
  *
10363
- * @default 16 / 9
10491
+ * @default 3 / 4
10364
10492
  */
10365
10493
  aspectRatio?: number;
10366
10494
  /**
@@ -10397,11 +10525,12 @@ interface ImageGalleryProps extends StylingProps, Omit<UNSAFE_ListBoxProps, "ite
10397
10525
  isSelected: boolean;
10398
10526
  }) => Dimension);
10399
10527
  /**
10400
- * The title of the delete confirmation modal.
10528
+ * The title of the delete confirmation modal. A function receives the keys
10529
+ * about to be deleted, or `"all"` when the delete comes from Select All.
10401
10530
  *
10402
10531
  * @default "Are you sure you want to delete this item?"
10403
10532
  */
10404
- deleteConfirmationTitle?: string | ((selectedKeys: Selection$1) => string);
10533
+ deleteConfirmationTitle?: string | ((keys: Selection$1) => string);
10405
10534
  /**
10406
10535
  * Overrides the label of the button that permanently deletes the selected
10407
10536
  * image(s), and the accessible label of each image's individual delete
@@ -10666,9 +10795,14 @@ type GridListProps = Omit<StylingProps & ListProps<ListOption> & AriaGridListOpt
10666
10795
  };
10667
10796
  }, ref: React__default.Ref<HTMLLIElement>) => React__default.JSX.Element;
10668
10797
  /**
10669
- * Enables editing mode which disables keydown event capturing, useful
10670
- * when you may want the internal `GridList` from taking away focus from
10671
- * child input due to type-ahead
10798
+ * Enables editing mode for an inline input inside a row. While editing,
10799
+ * the grid's own keyboard handling skips every key except Enter and
10800
+ * Escape, so type-ahead and arrow, Home, End, PageUp and PageDown
10801
+ * navigation do not move focus out of the input. Keys still reach the
10802
+ * input's own handlers. They also reach `onKeyDown` handlers on
10803
+ * ancestors and document-level listeners, except an Enter or Escape the
10804
+ * grid acts on, such as Enter selecting the row or Escape clearing the
10805
+ * selection.
10672
10806
  *
10673
10807
  * @default false
10674
10808
  */
@@ -11160,11 +11294,23 @@ declare const DeviceProviderContext: React__default.Context<{
11160
11294
  }>;
11161
11295
  declare const DeviceProvider: React__default.FC<DeviceProviderProps>;
11162
11296
 
11163
- interface TaggedPaginationProps extends StylingProps, Pick<PaginationProps, "isDisabled" | "decrementAriaLabel" | "incrementAriaLabel">, Pick<AriaTextFieldOptions<"input">, "onBlur" | "onKeyDown" | "isDisabled" | "isReadOnly" | "label"> {
11164
- /** Whether the decrement button is disabled. */
11297
+ interface TaggedPaginationProps extends StylingProps, Pick<PaginationProps, "isDisabled">, Pick<AriaTextFieldOptions<"input">, "onBlur" | "onKeyDown" | "isDisabled" | "isReadOnly" | "label"> {
11298
+ /** Whether the decrement button and ArrowDown are disabled. */
11165
11299
  isDecrementButtonDisabled?: boolean;
11166
- /** Whether the increment button is disabled. */
11300
+ /** Whether the increment button and ArrowUp are disabled. */
11167
11301
  isIncrementButtonDisabled?: boolean;
11302
+ /**
11303
+ * The accessible name and tooltip of the decrement button.
11304
+ *
11305
+ * @default "Previous Page"
11306
+ */
11307
+ decrementAriaLabel?: string;
11308
+ /**
11309
+ * The accessible name and tooltip of the increment button.
11310
+ *
11311
+ * @default "Next Page"
11312
+ */
11313
+ incrementAriaLabel?: string;
11168
11314
  /**
11169
11315
  * Determines the size of the component.
11170
11316
  *
@@ -11173,12 +11319,16 @@ interface TaggedPaginationProps extends StylingProps, Pick<PaginationProps, "isD
11173
11319
  size?: "xs" | "sm" | "md";
11174
11320
  /** The label for the component. */
11175
11321
  label?: React__default.ReactNode;
11176
- /** The aria-label for the description. */
11322
+ /**
11323
+ * The aria-label for the description.
11324
+ *
11325
+ * @deprecated Has no effect.
11326
+ */
11177
11327
  descriptionAriaLabel?: string;
11178
11328
  /**
11179
11329
  * The type of the input field.
11180
11330
  *
11181
- * @default "number"
11331
+ * @default "text"
11182
11332
  */
11183
11333
  type?: "number" | "text";
11184
11334
  /** The minimum value of the component. */
@@ -11769,6 +11919,66 @@ interface FileUploaderProps extends Omit<StylingProps, keyof BlockProps> {
11769
11919
 
11770
11920
  declare const FileUploader: React__default.ForwardRefExoticComponent<FileUploaderProps & React__default.RefAttributes<HTMLDivElement>>;
11771
11921
 
11922
+ interface BreadcrumbsProps extends Omit<StylingProps, keyof BlockProps>, AriaLabelingProps {
11923
+ /** The `id` of the root element. */
11924
+ id?: string;
11925
+ /** The `Breadcrumb` items to render, from the root to the current page. */
11926
+ children: React__default.ReactNode;
11927
+ /** Handler that is called with the `id` of a breadcrumb when it is pressed. */
11928
+ onAction?: (key: Key) => void;
11929
+ /**
11930
+ * The `id`s of the breadcrumbs that are disabled. Only the link is disabled:
11931
+ * unlike `isDisabled`, the list item gets no `data-disabled` attribute.
11932
+ */
11933
+ disabledKeys?: Iterable<Key>;
11934
+ /**
11935
+ * Whether every breadcrumb is disabled.
11936
+ *
11937
+ * @default false
11938
+ */
11939
+ isDisabled?: boolean;
11940
+ /**
11941
+ * The element rendered between breadcrumbs. It is hidden from assistive
11942
+ * technology. Pass `null`, `false` or `""` to render no separator.
11943
+ *
11944
+ * @default A caret icon pointing toward the current page
11945
+ */
11946
+ separator?: React__default.ReactNode;
11947
+ }
11948
+ interface BreadcrumbProps extends Omit<StylingProps, keyof BlockProps> {
11949
+ /**
11950
+ * A unique id for the breadcrumb, passed to `onAction` when its link is
11951
+ * pressed.
11952
+ */
11953
+ id: Key;
11954
+ /** The text of the breadcrumb. */
11955
+ label?: string;
11956
+ /**
11957
+ * A URL that the breadcrumb links to, rendering it as a real link. The
11958
+ * current and disabled breadcrumbs are not rendered as links.
11959
+ */
11960
+ href?: string;
11961
+ /** An icon rendered before the label. */
11962
+ icon?: React__default.FC<IconProps>;
11963
+ /**
11964
+ * The accessible name of the breadcrumb. Required for an icon-only
11965
+ * breadcrumb, which has no `label`.
11966
+ */
11967
+ "aria-label"?: string;
11968
+ /**
11969
+ * Custom content that replaces the breadcrumb link, such as a `Select` or a
11970
+ * `Menu`. It is rendered as is, so `label`, `icon`, `aria-label` and `href`
11971
+ * are ignored, `onAction` is not called for it, and the content stays
11972
+ * interactive when it is the last breadcrumb. It does not receive
11973
+ * `disabledKeys`, `isDisabled` or the current-page marking, so handle those
11974
+ * in the content itself.
11975
+ */
11976
+ children?: React__default.ReactNode;
11977
+ }
11978
+
11979
+ declare const Breadcrumbs: React__default.ForwardRefExoticComponent<BreadcrumbsProps & React__default.RefAttributes<HTMLElement>>;
11980
+ declare const Breadcrumb: React__default.ForwardRefExoticComponent<BreadcrumbProps & React__default.RefAttributes<HTMLLIElement>>;
11981
+
11772
11982
  /**
11773
11983
  * A hook that creates an IntersectionObserver and observes a target element.
11774
11984
  *
@@ -11955,7 +12165,7 @@ declare function useIsFirstRender(): boolean;
11955
12165
  * const uncovered = messageIds.filter((id) => !(id in ourCatalog.en));
11956
12166
  * ```;
11957
12167
  */
11958
- 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.tag.remove", "bui.toolbar.more", "bui.treeView.collapse", "bui.treeView.expand", "bui.treeView.rename", "bui.useMedia.paused", "bui.useMedia.playing"];
12168
+ 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.tag.remove", "bui.taggedPagination.nextPage", "bui.taggedPagination.prevPage", "bui.toolbar.more", "bui.treeView.collapse", "bui.treeView.expand", "bui.treeView.rename", "bui.useMedia.paused", "bui.useMedia.playing"];
11959
12169
  type MessageId = (typeof messageIds)[number];
11960
12170
  /**
11961
12171
  * Maps each deprecated bare id — the last dot-segment of a namespaced id — to
@@ -12385,5 +12595,5 @@ declare namespace reactStately {
12385
12595
  export type { reactStately_Color as Color, reactStately_ListData as ListData, reactStately_TreeData as TreeData };
12386
12596
  }
12387
12597
 
12388
- 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, createMessageFormatter, 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 };
12389
- 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, CreateMessageFormatterOptions, 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, MessageIssue, MessageIssueCode, 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, TreeItemRenderState, TreeListItem, TreeViewProps, UNSAFE_ListBoxProps, UseEditableOptions, UseEditorOptions, UseTableDragAndDropOptions, VirtualizerProps };
12598
+ export { Accordion, AccordionItem, ActionButton, ActionGroup, ActionGroupItem, ActionIconButton, Actionable, AlertDialog, AudioPlayer, Autocomplete, Avatar, Box, Breadcrumb, Breadcrumbs, 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, comparePoints, createMessageFormatter, defineMessages, destroyAnnouncer, devWarnOnce, directionVar, disableAnimations, docEnd, docStart, enableAnimations, filterDOMProps, filterTruthyValues, findFocusableElements, getAbsoluteBounds, getAbsolutePosition, getActiveElement, getPlainText as getDocPlainText, getHTMLElement, getOsSpecificKeyboardShortcutLabel, getOwnerDocument, getPlainText$1 as 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 };
12599
+ export type { AccordionItemProps, AccordionProps, ActionButtonProps, ActionGroupProps, ActionIconButtonProps, ActionableProps, ActiveMarks, AlertDialogProps, AudioPlayerProps, AutocompleteProps, AvatarProps, BlockProps, BoundaryAxis, BoxProps, BreadcrumbProps, BreadcrumbsProps, ButtonSelectProps, CalendarHeaderVariant, CalendarProps, CalendarSize, CellProps, CheckboxProps, CodeProps, ColorInputProps, ColorPreset, ColorSwatchPickerProps, ColorSwatchProps, ColumnProps, ComboBoxProps, CommandArgs, CommandName, CreateMessageFormatterOptions, DateFieldPickerType, DateFieldProps, DateFormatProps, Device, DeviceProviderProps, DialogProps, DialogTitleProps, DisclosureProps, DomNodeRendererProps, DrawerProps, EditableProps, EditorCoreOptions, EditorHandle, EditorProps, EditorProviderProps, EditorState, EditorStyle, 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, MessageIssue, MessageIssueCode, 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, SelectOptions, 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, TreeItemRenderState, TreeListItem, TreeViewProps, UNSAFE_ListBoxProps, UseEditableOptions, UseEditorOptions, UseTableDragAndDropOptions, ValueMarkKey, VirtualizerProps };